- Project Milestones -
-- Track progress across custom flows for your team. Find the right - balance for the user, privacy and security. -
-diff --git a/.eslintrc.cjs b/.eslintrc.cjs
new file mode 100644
index 000000000..d6c953795
--- /dev/null
+++ b/.eslintrc.cjs
@@ -0,0 +1,18 @@
+module.exports = {
+ root: true,
+ env: { browser: true, es2020: true },
+ extends: [
+ 'eslint:recommended',
+ 'plugin:@typescript-eslint/recommended',
+ 'plugin:react-hooks/recommended',
+ ],
+ ignorePatterns: ['dist', '.eslintrc.cjs'],
+ parser: '@typescript-eslint/parser',
+ plugins: ['react-refresh'],
+ rules: {
+ 'react-refresh/only-export-components': [
+ 'warn',
+ { allowConstantExport: true },
+ ],
+ },
+}
diff --git a/.vscode/settings.json b/.vscode/settings.json
deleted file mode 100644
index fae8e3d8a..000000000
--- a/.vscode/settings.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "typescript.tsdk": "node_modules/typescript/lib",
- "typescript.enablePromptUseWorkspaceTsdk": true
-}
diff --git a/CHANGELOG.md b/CHANGELOG.md
deleted file mode 100644
index 4495fa2b9..000000000
--- a/CHANGELOG.md
+++ /dev/null
@@ -1,56 +0,0 @@
-# CHANGELOG.md
-
-## [5.0.0] - 2025-02-04
-
-- Updgrade to Tailwind v4
-- Update dependencies
-
-## [4.1.0] - 2024-12-08
-
-- Update dependencies + Upgrade to Next.js 15
-
-## [4.0.0] - 2024-09-11
-
-Redesign the entire template
-
-## [3.3.0] - 2023-12-08
-
-Update to Next.js 14
-Update dependencies
-
-## [3.2.2] - 2023-10-04
-
-Update Twitter icon
-Update dependencies
-
-## [3.2.0] - 2023-05-31
-
-Update dependencies and fix some issues
-
-## [3.1.0] - 2023-05-07
-
-Modal video improvements
-
-## [3.0.0] - 2023-04-12
-
-Conversion to Next.js
-
-## [2.0.3] - 2023-03-28
-
-Fix video
-
-## [2.0.2] - 2023-03-28
-
-Add self-hosted video
-
-## [2.0.1] - 2023-02-16
-
-Remove header links
-
-## [2.0.0] - 2023-02-16
-
-Replace Cruip CSS with Tailwind CSS
-
-## [1.0.0] - 2020-04-07
-
-First release
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 000000000..d30945f4a
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2024 Leopoldo Miranda
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/README.md b/README.md
index 47d74c1f2..656ee64de 100644
--- a/README.md
+++ b/README.md
@@ -1,93 +1,5 @@
-# Free React / Next.js landing page template
+CAPES.APP
-
+Every superhero needs a cape - Set your business to autopilot.
-**Open** is a **free React / Next.js landing page template built with Tailwind CSS** for developers/makers who want to create a quick and professional landing page for their open source projects, SaaS products, online services, and more.
-
-**UPDATE 2025-02-04** Added Tailwind v4 support!
-
-Use it for whatever you want, and be sure to reach us out on [Twitter](https://twitter.com/Cruip_com) if you build anything cool/useful with it.
-
-Created and maintained with ❤️ by [Cruip.com](https://cruip.com).
-
-_Version 1.0.0 built with the Cruip CSS is available [here](https://github.com/cruip/open-react-template/releases/tag/1.0.0)._
-_Version 2.0.3 built with Tailwind CSS and React + Vite is available [here](https://github.com/cruip/open-react-template/releases/tag/2.0.3)._
-_Version 3.3.0 (before redesign) built with Tailwind CSS and Next.js is available [here](https://github.com/cruip/open-react-template/releases/tag/3.3.0)._
-
-## Live demo
-
-Check the live demo here 👉️ [https://open.cruip.com/](https://open.cruip.com/)
-
-## Open PRO
-
-[](https://cruip.com/)
-
-## Design files
-
-If you need the design files, you can download them from Figma's Community 👉 https://bit.ly/401KSUS
-
-## Usage
-
-This is a [Next.js](https://nextjs.org/) project bootstrapped with [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app).
-
-### Getting Started
-
-First, run the development server:
-
-```bash
-npm run dev
-# or
-pnpm dev (recommended)
-# or
-yarn dev
-```
-
-Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.
-
-You can start editing the page by modifying `app/page.tsx`. The page auto-updates as you edit the file.
-
-[API routes](https://nextjs.org/docs/api-routes/introduction) can be accessed on [http://localhost:3000/api/hello](http://localhost:3000/api/hello). This endpoint can be edited in `pages/api/hello.ts`.
-
-The `pages/api` directory is mapped to `/api/*`. Files in this directory are treated as [API routes](https://nextjs.org/docs/api-routes/introduction) instead of React pages.
-
-This project uses [`next/font`](https://nextjs.org/docs/basic-features/font-optimization) to automatically optimize and load Inter, a custom Google Font.
-
-### Learn More
-
-To learn more about Next.js, take a look at the following resources:
-
-- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API.
-- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial.
-
-You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js/) - your feedback and contributions are welcome!
-
-### Deploy on Vercel
-
-The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js.
-
-Check out our [Next.js deployment documentation](https://nextjs.org/docs/deployment) for more details.
-
-### Support notes
-
-This template has been developed with the App Router (`app`) and React Server Components. If you’re unfamiliar with these beta features, you can find more information about them on the Next.js beta documentation page. So, please note that any request dealing with React (e.g. extra features, customisations, et cetera) is to be considered out of the support scope.
-
-For more information about what support covers, please see our (FAQs)[https://cruip.com/faq/].
-
-## Credits
-
-- [Nucleo](https://nucleoapp.com/)
-
-## Terms and License
-
-- Released under the [GPL](https://www.gnu.org/licenses/gpl-3.0.html).
-- Copyright 2024 [Cruip](https://cruip.com/).
-- Use it for personal and commercial projects, but please don’t republish, redistribute, or resell the template.
-- Attribution is not required, although it is really appreciated.
-
-## About Us
-
-We're an Italian developer/designer duo creating high-quality design/code resources for developers, makers, and startups.
-
-## Stay in the loop
-
-If you would like to know when we release new resources, you can follow [@pacovitiello](https://x.com/pacovitiello) and [@DavidePacilio](https://x.com/DavidePacilio) on X, or you can subscribe to our [newsletter](https://cruip.com/newsletter/).
+The one-stop solution for creators, coaches, teachers, and professionals to build, grow, and manage their digital business.
diff --git a/app/(auth)/layout.tsx b/app/(auth)/layout.tsx
deleted file mode 100644
index cbf25ea2f..000000000
--- a/app/(auth)/layout.tsx
+++ /dev/null
@@ -1,15 +0,0 @@
-import PageIllustration from "@/components/page-illustration";
-
-export default function AuthLayout({
- children,
-}: {
- children: React.ReactNode;
-}) {
- return (
-
- Reset your password
-
-
- Welcome back
-
-
- Create an account
-
-
- Open AI reads and understands your files, and with nothing more - than a single line of feedback, so you can go further than the - speed of thought. -
-- Track progress across custom flows for your team. Find the right - balance for the user, privacy and security. -
-- Track progress across custom flows for your team. Find the right - balance for the user, privacy and security. -
-- Track progress across custom flows for your team. Find the right - balance for the user, privacy and security. -
-- Track progress across custom flows for your team. Find the right - balance for the user, privacy and security. -
-- Track progress across custom flows for your team. Find the right - balance for the user, privacy and security. -
-- Track progress across custom flows for your team. Find the right - balance for the user, privacy and security. -
-- Our landing page template works on all devices, so you only have - to set it up once, and get beautiful results forever. -
-- We provide tech-first solutions that empower decision-makers to - build healthier and happier workspaces from anywhere in the world. -
-- Simple and elegant interface to start collaborating with your team - in minutes. It seamlessly integrates with your code and your - favorite programming languages. -
-- Streamline the product development flow with a content - platform that's aligned across specs and insights. -
-- Streamline the product development flow with a content - platform that's aligned across specs and insights. -
-- Streamline the product development flow with a content - platform that's aligned across specs and insights. -
-o(xe,Vt)?(R[V]=xe,R[Qe]=I,V=Qe):(R[V]=Vt,R[Ee]=I,V=Ee);else if(Qeo(xe,I))R[V]=xe,R[Qe]=I,V=Qe;else break e}}return j}function o(R,j){var I=R.sortIndex-j.sortIndex;return I!==0?I:R.id-j.id}if(typeof performance=="object"&&typeof performance.now=="function"){var i=performance;e.unstable_now=function(){return i.now()}}else{var s=Date,a=s.now();e.unstable_now=function(){return s.now()-a}}var l=[],u=[],c=1,d=null,f=3,x=!1,w=!1,g=!1,C=typeof setTimeout=="function"?setTimeout:null,p=typeof clearTimeout=="function"?clearTimeout:null,m=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function v(R){for(var j=n(u);j!==null;){if(j.callback===null)r(u);else if(j.startTime<=R)r(u),j.sortIndex=j.expirationTime,t(l,j);else break;j=n(u)}}function S(R){if(g=!1,v(R),!w)if(n(l)!==null)w=!0,Se(E);else{var j=n(u);j!==null&&U(S,j.startTime-R)}}function E(R,j){w=!1,g&&(g=!1,p(T),T=-1),x=!0;var I=f;try{for(v(j),d=n(l);d!==null&&(!(d.expirationTime>j)||R&&!D());){var V=d.callback;if(typeof V=="function"){d.callback=null,f=d.priorityLevel;var Q=V(d.expirationTime<=j);j=e.unstable_now(),typeof Q=="function"?d.callback=Q:d===n(l)&&r(l),v(j)}else r(l);d=n(l)}if(d!==null)var mt=!0;else{var Ee=n(u);Ee!==null&&U(S,Ee.startTime-j),mt=!1}return mt}finally{d=null,f=I,x=!1}}var P=!1,k=null,T=-1,N=5,M=-1;function D(){return!(e.unstable_now()-MR||125 V?(R.sortIndex=I,t(u,R),n(l)===null&&R===n(u)&&(g?(p(T),T=-1):g=!0,U(S,I-V))):(R.sortIndex=Q,t(l,R),w||x||(w=!0,Se(E))),R},e.unstable_shouldYield=D,e.unstable_wrapCallback=function(R){var j=f;return function(){var I=f;f=j;try{return R.apply(this,arguments)}finally{f=I}}}})(ym);vm.exports=ym;var Ax=vm.exports;/** + * @license React + * react-dom.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var jx=y,Je=Ax;function b(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n "u"||typeof window.document>"u"||typeof window.document.createElement>"u"),yl=Object.prototype.hasOwnProperty,Lx=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,rf={},of={};function Dx(e){return yl.call(of,e)?!0:yl.call(rf,e)?!1:Lx.test(e)?of[e]=!0:(rf[e]=!0,!1)}function Ix(e,t,n,r){if(n!==null&&n.type===0)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return r?!1:n!==null?!n.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function Ox(e,t,n,r){if(t===null||typeof t>"u"||Ix(e,t,n,r))return!0;if(r)return!1;if(n!==null)switch(n.type){case 3:return!t;case 4:return t===!1;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}function Ue(e,t,n,r,o,i,s){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=r,this.attributeNamespace=o,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=i,this.removeEmptyString=s}var Ne={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){Ne[e]=new Ue(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];Ne[t]=new Ue(t,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){Ne[e]=new Ue(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){Ne[e]=new Ue(e,2,!1,e,null,!1,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){Ne[e]=new Ue(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){Ne[e]=new Ue(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){Ne[e]=new Ue(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){Ne[e]=new Ue(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){Ne[e]=new Ue(e,5,!1,e.toLowerCase(),null,!1,!1)});var Ku=/[\-:]([a-z])/g;function Gu(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var t=e.replace(Ku,Gu);Ne[t]=new Ue(t,1,!1,e,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var t=e.replace(Ku,Gu);Ne[t]=new Ue(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(e){var t=e.replace(Ku,Gu);Ne[t]=new Ue(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){Ne[e]=new Ue(e,1,!1,e.toLowerCase(),null,!1,!1)});Ne.xlinkHref=new Ue("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){Ne[e]=new Ue(e,1,!1,e.toLowerCase(),null,!0,!0)});function Yu(e,t,n,r){var o=Ne.hasOwnProperty(t)?Ne[t]:null;(o!==null?o.type!==0:r||!(2 a||o[s]!==i[a]){var l=` +`+o[s].replace(" at new "," at ");return e.displayName&&l.includes(" ")&&(l=l.replace(" ",e.displayName)),l}while(1<=s&&0<=a);break}}}finally{Ta=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?po(e):""}function _x(e){switch(e.tag){case 5:return po(e.type);case 16:return po("Lazy");case 13:return po("Suspense");case 19:return po("SuspenseList");case 0:case 2:case 15:return e=Na(e.type,!1),e;case 11:return e=Na(e.type.render,!1),e;case 1:return e=Na(e.type,!0),e;default:return""}}function Sl(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case dr:return"Fragment";case cr:return"Portal";case xl:return"Profiler";case Qu:return"StrictMode";case wl:return"Suspense";case Cl:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case Cm:return(e.displayName||"Context")+".Consumer";case wm:return(e._context.displayName||"Context")+".Provider";case Xu:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case Zu:return t=e.displayName||null,t!==null?t:Sl(e.type)||"Memo";case ln:t=e._payload,e=e._init;try{return Sl(e(t))}catch{}}return null}function Vx(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=t.render,e=e.displayName||e.name||"",t.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return Sl(t);case 8:return t===Qu?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t}return null}function Sn(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function Em(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function Fx(e){var t=Em(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&typeof n<"u"&&typeof n.get=="function"&&typeof n.set=="function"){var o=n.get,i=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return o.call(this)},set:function(s){r=""+s,i.call(this,s)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(s){r=""+s},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function ki(e){e._valueTracker||(e._valueTracker=Fx(e))}function km(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=Em(e)?e.checked?"true":"false":e.value),e=r,e!==n?(t.setValue(e),!0):!1}function fs(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}function El(e,t){var n=t.checked;return ae({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??e._wrapperState.initialChecked})}function af(e,t){var n=t.defaultValue==null?"":t.defaultValue,r=t.checked!=null?t.checked:t.defaultChecked;n=Sn(t.value!=null?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:t.type==="checkbox"||t.type==="radio"?t.checked!=null:t.value!=null}}function Pm(e,t){t=t.checked,t!=null&&Yu(e,"checked",t,!1)}function kl(e,t){Pm(e,t);var n=Sn(t.value),r=t.type;if(n!=null)r==="number"?(n===0&&e.value===""||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if(r==="submit"||r==="reset"){e.removeAttribute("value");return}t.hasOwnProperty("value")?Pl(e,t.type,n):t.hasOwnProperty("defaultValue")&&Pl(e,t.type,Sn(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function lf(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!(r!=="submit"&&r!=="reset"||t.value!==void 0&&t.value!==null))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}n=e.name,n!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,n!==""&&(e.name=n)}function Pl(e,t,n){(t!=="number"||fs(e.ownerDocument)!==e)&&(n==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var ho=Array.isArray;function Nr(e,t,n,r){if(e=e.options,t){t={};for(var o=0;o "+t.valueOf().toString()+"",t=Pi.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function Io(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var wo={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},zx=["Webkit","ms","Moz","O"];Object.keys(wo).forEach(function(e){zx.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),wo[t]=wo[e]})});function Mm(e,t,n){return t==null||typeof t=="boolean"||t===""?"":n||typeof t!="number"||t===0||wo.hasOwnProperty(e)&&wo[e]?(""+t).trim():t+"px"}function Rm(e,t){e=e.style;for(var n in t)if(t.hasOwnProperty(n)){var r=n.indexOf("--")===0,o=Mm(n,t[n],r);n==="float"&&(n="cssFloat"),r?e.setProperty(n,o):e[n]=o}}var Bx=ae({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function bl(e,t){if(t){if(Bx[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(b(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(b(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(b(61))}if(t.style!=null&&typeof t.style!="object")throw Error(b(62))}}function Ml(e,t){if(e.indexOf("-")===-1)return typeof t.is=="string";switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var Rl=null;function qu(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var Al=null,br=null,Mr=null;function df(e){if(e=pi(e)){if(typeof Al!="function")throw Error(b(280));var t=e.stateNode;t&&(t=qs(t),Al(e.stateNode,e.type,t))}}function Am(e){br?Mr?Mr.push(e):Mr=[e]:br=e}function jm(){if(br){var e=br,t=Mr;if(Mr=br=null,df(e),t)for(e=0;e >>=0,e===0?32:31-(qx(e)/Jx|0)|0}var Ti=64,Ni=4194304;function mo(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function gs(e,t){var n=e.pendingLanes;if(n===0)return 0;var r=0,o=e.suspendedLanes,i=e.pingedLanes,s=n&268435455;if(s!==0){var a=s&~o;a!==0?r=mo(a):(i&=s,i!==0&&(r=mo(i)))}else s=n&~o,s!==0?r=mo(s):i!==0&&(r=mo(i));if(r===0)return 0;if(t!==0&&t!==r&&!(t&o)&&(o=r&-r,i=t&-t,o>=i||o===16&&(i&4194240)!==0))return t;if(r&4&&(r|=n&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=r;0 n;n++)t.push(e);return t}function di(e,t,n){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-Ct(t),e[t]=n}function rw(e,t){var n=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var r=e.eventTimes;for(e=e.expirationTimes;0 =So),wf=" ",Cf=!1;function qm(e,t){switch(e){case"keyup":return Aw.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Jm(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var fr=!1;function Lw(e,t){switch(e){case"compositionend":return Jm(t);case"keypress":return t.which!==32?null:(Cf=!0,wf);case"textInput":return e=t.data,e===wf&&Cf?null:e;default:return null}}function Dw(e,t){if(fr)return e==="compositionend"||!sc&&qm(e,t)?(e=Xm(),Zi=rc=fn=null,fr=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1 =t)return{node:n,offset:t-e};e=r}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=Pf(n)}}function rg(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?rg(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function og(){for(var e=window,t=fs();t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch{n=!1}if(n)e=t.contentWindow;else break;t=fs(e.document)}return t}function ac(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}function Uw(e){var t=og(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&rg(n.ownerDocument.documentElement,n)){if(r!==null&&ac(n)){if(t=r.start,e=r.end,e===void 0&&(e=t),"selectionStart"in n)n.selectionStart=t,n.selectionEnd=Math.min(e,n.value.length);else if(e=(t=n.ownerDocument||document)&&t.defaultView||window,e.getSelection){e=e.getSelection();var o=n.textContent.length,i=Math.min(r.start,o);r=r.end===void 0?i:Math.min(r.end,o),!e.extend&&i>r&&(o=r,r=i,i=o),o=Tf(n,i);var s=Tf(n,r);o&&s&&(e.rangeCount!==1||e.anchorNode!==o.node||e.anchorOffset!==o.offset||e.focusNode!==s.node||e.focusOffset!==s.offset)&&(t=t.createRange(),t.setStart(o.node,o.offset),e.removeAllRanges(),i>r?(e.addRange(t),e.extend(s.node,s.offset)):(t.setEnd(s.node,s.offset),e.addRange(t)))}}for(t=[],e=n;e=e.parentNode;)e.nodeType===1&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof n.focus=="function"&&n.focus(),n=0;n =document.documentMode,pr=null,_l=null,ko=null,Vl=!1;function Nf(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;Vl||pr==null||pr!==fs(r)||(r=pr,"selectionStart"in r&&ac(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),ko&&Bo(ko,r)||(ko=r,r=xs(_l,"onSelect"),0 gr||(e.current=Wl[gr],Wl[gr]=null,gr--)}function G(e,t){gr++,Wl[gr]=e.current,e.current=t}var En={},De=Nn(En),Ke=Nn(!1),Yn=En;function Or(e,t){var n=e.type.contextTypes;if(!n)return En;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var o={},i;for(i in n)o[i]=t[i];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=o),o}function Ge(e){return e=e.childContextTypes,e!=null}function Cs(){J(Ke),J(De)}function Df(e,t,n){if(De.current!==En)throw Error(b(168));G(De,t),G(Ke,n)}function pg(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,typeof r.getChildContext!="function")return n;r=r.getChildContext();for(var o in r)if(!(o in t))throw Error(b(108,Vx(e)||"Unknown",o));return ae({},n,r)}function Ss(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||En,Yn=De.current,G(De,e),G(Ke,Ke.current),!0}function If(e,t,n){var r=e.stateNode;if(!r)throw Error(b(169));n?(e=pg(e,t,Yn),r.__reactInternalMemoizedMergedChildContext=e,J(Ke),J(De),G(De,e)):J(Ke),G(Ke,n)}var Ut=null,Js=!1,Ba=!1;function hg(e){Ut===null?Ut=[e]:Ut.push(e)}function t2(e){Js=!0,hg(e)}function bn(){if(!Ba&&Ut!==null){Ba=!0;var e=0,t=W;try{var n=Ut;for(W=1;e >=s,o-=s,Wt=1<<32-Ct(t)+o|n< T?(N=k,k=null):N=k.sibling;var M=f(p,k,v[T],S);if(M===null){k===null&&(k=N);break}e&&k&&M.alternate===null&&t(p,k),m=i(M,m,T),P===null?E=M:P.sibling=M,P=M,k=N}if(T===v.length)return n(p,k),ee&&On(p,T),E;if(k===null){for(;T T?(N=k,k=null):N=k.sibling;var D=f(p,k,M.value,S);if(D===null){k===null&&(k=N);break}e&&k&&D.alternate===null&&t(p,k),m=i(D,m,T),P===null?E=D:P.sibling=D,P=D,k=N}if(M.done)return n(p,k),ee&&On(p,T),E;if(k===null){for(;!M.done;T++,M=v.next())M=d(p,M.value,S),M!==null&&(m=i(M,m,T),P===null?E=M:P.sibling=M,P=M);return ee&&On(p,T),E}for(k=r(p,k);!M.done;T++,M=v.next())M=x(k,p,T,M.value,S),M!==null&&(e&&M.alternate!==null&&k.delete(M.key===null?T:M.key),m=i(M,m,T),P===null?E=M:P.sibling=M,P=M);return e&&k.forEach(function(O){return t(p,O)}),ee&&On(p,T),E}function C(p,m,v,S){if(typeof v=="object"&&v!==null&&v.type===dr&&v.key===null&&(v=v.props.children),typeof v=="object"&&v!==null){switch(v.$$typeof){case Ei:e:{for(var E=v.key,P=m;P!==null;){if(P.key===E){if(E=v.type,E===dr){if(P.tag===7){n(p,P.sibling),m=o(P,v.props.children),m.return=p,p=m;break e}}else if(P.elementType===E||typeof E=="object"&&E!==null&&E.$$typeof===ln&&Vf(E)===P.type){n(p,P.sibling),m=o(P,v.props),m.ref=so(p,P,v),m.return=p,p=m;break e}n(p,P);break}else t(p,P);P=P.sibling}v.type===dr?(m=Hn(v.props.children,p.mode,S,v.key),m.return=p,p=m):(S=is(v.type,v.key,v.props,null,p.mode,S),S.ref=so(p,m,v),S.return=p,p=S)}return s(p);case cr:e:{for(P=v.key;m!==null;){if(m.key===P)if(m.tag===4&&m.stateNode.containerInfo===v.containerInfo&&m.stateNode.implementation===v.implementation){n(p,m.sibling),m=o(m,v.children||[]),m.return=p,p=m;break e}else{n(p,m);break}else t(p,m);m=m.sibling}m=Qa(v,p.mode,S),m.return=p,p=m}return s(p);case ln:return P=v._init,C(p,m,P(v._payload),S)}if(ho(v))return w(p,m,v,S);if(to(v))return g(p,m,v,S);Di(p,v)}return typeof v=="string"&&v!==""||typeof v=="number"?(v=""+v,m!==null&&m.tag===6?(n(p,m.sibling),m=o(m,v),m.return=p,p=m):(n(p,m),m=Ya(v,p.mode,S),m.return=p,p=m),s(p)):n(p,m)}return C}var Vr=yg(!0),xg=yg(!1),Ps=Nn(null),Ts=null,xr=null,dc=null;function fc(){dc=xr=Ts=null}function pc(e){var t=Ps.current;J(Ps),e._currentValue=t}function Gl(e,t,n){for(;e!==null;){var r=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,r!==null&&(r.childLanes|=t)):r!==null&&(r.childLanes&t)!==t&&(r.childLanes|=t),e===n)break;e=e.return}}function Ar(e,t){Ts=e,dc=xr=null,e=e.dependencies,e!==null&&e.firstContext!==null&&(e.lanes&t&&(He=!0),e.firstContext=null)}function ft(e){var t=e._currentValue;if(dc!==e)if(e={context:e,memoizedValue:t,next:null},xr===null){if(Ts===null)throw Error(b(308));xr=e,Ts.dependencies={lanes:0,firstContext:e}}else xr=xr.next=e;return t}var zn=null;function hc(e){zn===null?zn=[e]:zn.push(e)}function wg(e,t,n,r){var o=t.interleaved;return o===null?(n.next=n,hc(t)):(n.next=o.next,o.next=n),t.interleaved=n,Qt(e,r)}function Qt(e,t){e.lanes|=t;var n=e.alternate;for(n!==null&&(n.lanes|=t),n=e,e=e.return;e!==null;)e.childLanes|=t,n=e.alternate,n!==null&&(n.childLanes|=t),n=e,e=e.return;return n.tag===3?n.stateNode:null}var un=!1;function mc(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function Cg(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function Kt(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function yn(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,B&2){var o=r.pending;return o===null?t.next=t:(t.next=o.next,o.next=t),r.pending=t,Qt(e,n)}return o=r.interleaved,o===null?(t.next=t,hc(r)):(t.next=o.next,o.next=t),r.interleaved=t,Qt(e,n)}function Ji(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,(n&4194240)!==0)){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,ec(e,n)}}function Ff(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var o=null,i=null;if(n=n.firstBaseUpdate,n!==null){do{var s={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};i===null?o=i=s:i=i.next=s,n=n.next}while(n!==null);i===null?o=i=t:i=i.next=t}else o=i=t;n={baseState:r.baseState,firstBaseUpdate:o,lastBaseUpdate:i,shared:r.shared,effects:r.effects},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function Ns(e,t,n,r){var o=e.updateQueue;un=!1;var i=o.firstBaseUpdate,s=o.lastBaseUpdate,a=o.shared.pending;if(a!==null){o.shared.pending=null;var l=a,u=l.next;l.next=null,s===null?i=u:s.next=u,s=l;var c=e.alternate;c!==null&&(c=c.updateQueue,a=c.lastBaseUpdate,a!==s&&(a===null?c.firstBaseUpdate=u:a.next=u,c.lastBaseUpdate=l))}if(i!==null){var d=o.baseState;s=0,c=u=l=null,a=i;do{var f=a.lane,x=a.eventTime;if((r&f)===f){c!==null&&(c=c.next={eventTime:x,lane:0,tag:a.tag,payload:a.payload,callback:a.callback,next:null});e:{var w=e,g=a;switch(f=t,x=n,g.tag){case 1:if(w=g.payload,typeof w=="function"){d=w.call(x,d,f);break e}d=w;break e;case 3:w.flags=w.flags&-65537|128;case 0:if(w=g.payload,f=typeof w=="function"?w.call(x,d,f):w,f==null)break e;d=ae({},d,f);break e;case 2:un=!0}}a.callback!==null&&a.lane!==0&&(e.flags|=64,f=o.effects,f===null?o.effects=[a]:f.push(a))}else x={eventTime:x,lane:f,tag:a.tag,payload:a.payload,callback:a.callback,next:null},c===null?(u=c=x,l=d):c=c.next=x,s|=f;if(a=a.next,a===null){if(a=o.shared.pending,a===null)break;f=a,a=f.next,f.next=null,o.lastBaseUpdate=f,o.shared.pending=null}}while(!0);if(c===null&&(l=d),o.baseState=l,o.firstBaseUpdate=u,o.lastBaseUpdate=c,t=o.shared.interleaved,t!==null){o=t;do s|=o.lane,o=o.next;while(o!==t)}else i===null&&(o.shared.lanes=0);Zn|=s,e.lanes=s,e.memoizedState=d}}function zf(e,t,n){if(e=t.effects,t.effects=null,e!==null)for(t=0;t n?n:4,e(!0);var r=Ua.transition;Ua.transition={};try{e(!1),t()}finally{W=n,Ua.transition=r}}function Vg(){return pt().memoizedState}function i2(e,t,n){var r=wn(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},Fg(e))zg(t,n);else if(n=wg(e,t,n,r),n!==null){var o=Be();St(n,e,r,o),Bg(n,t,r)}}function s2(e,t,n){var r=wn(e),o={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(Fg(e))zg(t,o);else{var i=e.alternate;if(e.lanes===0&&(i===null||i.lanes===0)&&(i=t.lastRenderedReducer,i!==null))try{var s=t.lastRenderedState,a=i(s,n);if(o.hasEagerState=!0,o.eagerState=a,kt(a,s)){var l=t.interleaved;l===null?(o.next=o,hc(t)):(o.next=l.next,l.next=o),t.interleaved=o;return}}catch{}finally{}n=wg(e,t,o,r),n!==null&&(o=Be(),St(n,e,r,o),Bg(n,t,r))}}function Fg(e){var t=e.alternate;return e===se||t!==null&&t===se}function zg(e,t){Po=Ms=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function Bg(e,t,n){if(n&4194240){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,ec(e,n)}}var Rs={readContext:ft,useCallback:Me,useContext:Me,useEffect:Me,useImperativeHandle:Me,useInsertionEffect:Me,useLayoutEffect:Me,useMemo:Me,useReducer:Me,useRef:Me,useState:Me,useDebugValue:Me,useDeferredValue:Me,useTransition:Me,useMutableSource:Me,useSyncExternalStore:Me,useId:Me,unstable_isNewReconciler:!1},a2={readContext:ft,useCallback:function(e,t){return Mt().memoizedState=[e,t===void 0?null:t],e},useContext:ft,useEffect:$f,useImperativeHandle:function(e,t,n){return n=n!=null?n.concat([e]):null,ts(4194308,4,Lg.bind(null,t,e),n)},useLayoutEffect:function(e,t){return ts(4194308,4,e,t)},useInsertionEffect:function(e,t){return ts(4,2,e,t)},useMemo:function(e,t){var n=Mt();return t=t===void 0?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=Mt();return t=n!==void 0?n(t):t,r.memoizedState=r.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},r.queue=e,e=e.dispatch=i2.bind(null,se,e),[r.memoizedState,e]},useRef:function(e){var t=Mt();return e={current:e},t.memoizedState=e},useState:Bf,useDebugValue:Ec,useDeferredValue:function(e){return Mt().memoizedState=e},useTransition:function(){var e=Bf(!1),t=e[0];return e=o2.bind(null,e[1]),Mt().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=se,o=Mt();if(ee){if(n===void 0)throw Error(b(407));n=n()}else{if(n=t(),Ce===null)throw Error(b(349));Xn&30||Pg(r,t,n)}o.memoizedState=n;var i={value:n,getSnapshot:t};return o.queue=i,$f(Ng.bind(null,r,i,e),[e]),r.flags|=2048,Qo(9,Tg.bind(null,r,i,n,t),void 0,null),n},useId:function(){var e=Mt(),t=Ce.identifierPrefix;if(ee){var n=Ht,r=Wt;n=(r&~(1<<32-Ct(r)-1)).toString(32)+n,t=":"+t+"R"+n,n=Go++,0 <\/script>",e=e.removeChild(e.firstChild)):typeof r.is=="string"?e=s.createElement(n,{is:r.is}):(e=s.createElement(n),n==="select"&&(s=e,r.multiple?s.multiple=!0:r.size&&(s.size=r.size))):e=s.createElementNS(e,n),e[Rt]=t,e[Wo]=r,Zg(e,t,!1,!1),t.stateNode=e;e:{switch(s=Ml(n,r),n){case"dialog":Z("cancel",e),Z("close",e),o=r;break;case"iframe":case"object":case"embed":Z("load",e),o=r;break;case"video":case"audio":for(o=0;o Br&&(t.flags|=128,r=!0,ao(i,!1),t.lanes=4194304)}else{if(!r)if(e=bs(s),e!==null){if(t.flags|=128,r=!0,n=e.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),ao(i,!0),i.tail===null&&i.tailMode==="hidden"&&!s.alternate&&!ee)return Re(t),null}else 2*he()-i.renderingStartTime>Br&&n!==1073741824&&(t.flags|=128,r=!0,ao(i,!1),t.lanes=4194304);i.isBackwards?(s.sibling=t.child,t.child=s):(n=i.last,n!==null?n.sibling=s:t.child=s,i.last=s)}return i.tail!==null?(t=i.tail,i.rendering=t,i.tail=t.sibling,i.renderingStartTime=he(),t.sibling=null,n=re.current,G(re,r?n&1|2:n&1),t):(Re(t),null);case 22:case 23:return Mc(),r=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==r&&(t.flags|=8192),r&&t.mode&1?Xe&1073741824&&(Re(t),t.subtreeFlags&6&&(t.flags|=8192)):Re(t),null;case 24:return null;case 25:return null}throw Error(b(156,t.tag))}function m2(e,t){switch(uc(t),t.tag){case 1:return Ge(t.type)&&Cs(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return Fr(),J(Ke),J(De),yc(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 5:return vc(t),null;case 13:if(J(re),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(b(340));_r()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return J(re),null;case 4:return Fr(),null;case 10:return pc(t.type._context),null;case 22:case 23:return Mc(),null;case 24:return null;default:return null}}var Oi=!1,je=!1,g2=typeof WeakSet=="function"?WeakSet:Set,A=null;function wr(e,t){var n=e.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(r){ue(e,t,r)}else n.current=null}function nu(e,t,n){try{n()}catch(r){ue(e,t,r)}}var Jf=!1;function v2(e,t){if(Fl=vs,e=og(),ac(e)){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{n=(n=e.ownerDocument)&&n.defaultView||window;var r=n.getSelection&&n.getSelection();if(r&&r.rangeCount!==0){n=r.anchorNode;var o=r.anchorOffset,i=r.focusNode;r=r.focusOffset;try{n.nodeType,i.nodeType}catch{n=null;break e}var s=0,a=-1,l=-1,u=0,c=0,d=e,f=null;t:for(;;){for(var x;d!==n||o!==0&&d.nodeType!==3||(a=s+o),d!==i||r!==0&&d.nodeType!==3||(l=s+r),d.nodeType===3&&(s+=d.nodeValue.length),(x=d.firstChild)!==null;)f=d,d=x;for(;;){if(d===e)break t;if(f===n&&++u===o&&(a=s),f===i&&++c===r&&(l=s),(x=d.nextSibling)!==null)break;d=f,f=d.parentNode}d=x}n=a===-1||l===-1?null:{start:a,end:l}}else n=null}n=n||{start:0,end:0}}else n=null;for(zl={focusedElem:e,selectionRange:n},vs=!1,A=t;A!==null;)if(t=A,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,A=e;else for(;A!==null;){t=A;try{var w=t.alternate;if(t.flags&1024)switch(t.tag){case 0:case 11:case 15:break;case 1:if(w!==null){var g=w.memoizedProps,C=w.memoizedState,p=t.stateNode,m=p.getSnapshotBeforeUpdate(t.elementType===t.type?g:yt(t.type,g),C);p.__reactInternalSnapshotBeforeUpdate=m}break;case 3:var v=t.stateNode.containerInfo;v.nodeType===1?v.textContent="":v.nodeType===9&&v.documentElement&&v.removeChild(v.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(b(163))}}catch(S){ue(t,t.return,S)}if(e=t.sibling,e!==null){e.return=t.return,A=e;break}A=t.return}return w=Jf,Jf=!1,w}function To(e,t,n){var r=t.updateQueue;if(r=r!==null?r.lastEffect:null,r!==null){var o=r=r.next;do{if((o.tag&e)===e){var i=o.destroy;o.destroy=void 0,i!==void 0&&nu(t,n,i)}o=o.next}while(o!==r)}}function na(e,t){if(t=t.updateQueue,t=t!==null?t.lastEffect:null,t!==null){var n=t=t.next;do{if((n.tag&e)===e){var r=n.create;n.destroy=r()}n=n.next}while(n!==t)}}function ru(e){var t=e.ref;if(t!==null){var n=e.stateNode;switch(e.tag){case 5:e=n;break;default:e=n}typeof t=="function"?t(e):t.current=e}}function ev(e){var t=e.alternate;t!==null&&(e.alternate=null,ev(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[Rt],delete t[Wo],delete t[Ul],delete t[Jw],delete t[e2])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function tv(e){return e.tag===5||e.tag===3||e.tag===4}function ep(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||tv(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function ou(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.nodeType===8?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(n.nodeType===8?(t=n.parentNode,t.insertBefore(e,n)):(t=n,t.appendChild(e)),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=ws));else if(r!==4&&(e=e.child,e!==null))for(ou(e,t,n),e=e.sibling;e!==null;)ou(e,t,n),e=e.sibling}function iu(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(r!==4&&(e=e.child,e!==null))for(iu(e,t,n),e=e.sibling;e!==null;)iu(e,t,n),e=e.sibling}var ke=null,xt=!1;function nn(e,t,n){for(n=n.child;n!==null;)nv(e,t,n),n=n.sibling}function nv(e,t,n){if(jt&&typeof jt.onCommitFiberUnmount=="function")try{jt.onCommitFiberUnmount(Ys,n)}catch{}switch(n.tag){case 5:je||wr(n,t);case 6:var r=ke,o=xt;ke=null,nn(e,t,n),ke=r,xt=o,ke!==null&&(xt?(e=ke,n=n.stateNode,e.nodeType===8?e.parentNode.removeChild(n):e.removeChild(n)):ke.removeChild(n.stateNode));break;case 18:ke!==null&&(xt?(e=ke,n=n.stateNode,e.nodeType===8?za(e.parentNode,n):e.nodeType===1&&za(e,n),Fo(e)):za(ke,n.stateNode));break;case 4:r=ke,o=xt,ke=n.stateNode.containerInfo,xt=!0,nn(e,t,n),ke=r,xt=o;break;case 0:case 11:case 14:case 15:if(!je&&(r=n.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){o=r=r.next;do{var i=o,s=i.destroy;i=i.tag,s!==void 0&&(i&2||i&4)&&nu(n,t,s),o=o.next}while(o!==r)}nn(e,t,n);break;case 1:if(!je&&(wr(n,t),r=n.stateNode,typeof r.componentWillUnmount=="function"))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(a){ue(n,t,a)}nn(e,t,n);break;case 21:nn(e,t,n);break;case 22:n.mode&1?(je=(r=je)||n.memoizedState!==null,nn(e,t,n),je=r):nn(e,t,n);break;default:nn(e,t,n)}}function tp(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var n=e.stateNode;n===null&&(n=e.stateNode=new g2),t.forEach(function(r){var o=T2.bind(null,e,r);n.has(r)||(n.add(r),r.then(o,o))})}}function gt(e,t){var n=t.deletions;if(n!==null)for(var r=0;r o&&(o=s),r&=~i}if(r=o,r=he()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*x2(r/1960))-r,10 e?16:e,pn===null)var r=!1;else{if(e=pn,pn=null,Ls=0,B&6)throw Error(b(331));var o=B;for(B|=4,A=e.current;A!==null;){var i=A,s=i.child;if(A.flags&16){var a=i.deletions;if(a!==null){for(var l=0;l he()-Nc?Wn(e,0):Tc|=n),Ye(e,t)}function cv(e,t){t===0&&(e.mode&1?(t=Ni,Ni<<=1,!(Ni&130023424)&&(Ni=4194304)):t=1);var n=Be();e=Qt(e,t),e!==null&&(di(e,t,n),Ye(e,n))}function P2(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),cv(e,n)}function T2(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,o=e.memoizedState;o!==null&&(n=o.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(b(314))}r!==null&&r.delete(t),cv(e,n)}var dv;dv=function(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps||Ke.current)He=!0;else{if(!(e.lanes&n)&&!(t.flags&128))return He=!1,p2(e,t,n);He=!!(e.flags&131072)}else He=!1,ee&&t.flags&1048576&&mg(t,ks,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;ns(e,t),e=t.pendingProps;var o=Or(t,De.current);Ar(t,n),o=wc(null,t,r,e,o,n);var i=Cc();return t.flags|=1,typeof o=="object"&&o!==null&&typeof o.render=="function"&&o.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,Ge(r)?(i=!0,Ss(t)):i=!1,t.memoizedState=o.state!==null&&o.state!==void 0?o.state:null,mc(t),o.updater=ta,t.stateNode=o,o._reactInternals=t,Ql(t,r,e,n),t=ql(null,t,r,!0,i,n)):(t.tag=0,ee&&i&&lc(t),Ve(null,t,o,n),t=t.child),t;case 16:r=t.elementType;e:{switch(ns(e,t),e=t.pendingProps,o=r._init,r=o(r._payload),t.type=r,o=t.tag=b2(r),e=yt(r,e),o){case 0:t=Zl(null,t,r,e,n);break e;case 1:t=Xf(null,t,r,e,n);break e;case 11:t=Yf(null,t,r,e,n);break e;case 14:t=Qf(null,t,r,yt(r.type,e),n);break e}throw Error(b(306,r,""))}return t;case 0:return r=t.type,o=t.pendingProps,o=t.elementType===r?o:yt(r,o),Zl(e,t,r,o,n);case 1:return r=t.type,o=t.pendingProps,o=t.elementType===r?o:yt(r,o),Xf(e,t,r,o,n);case 3:e:{if(Yg(t),e===null)throw Error(b(387));r=t.pendingProps,i=t.memoizedState,o=i.element,Cg(e,t),Ns(t,r,null,n);var s=t.memoizedState;if(r=s.element,i.isDehydrated)if(i={element:r,isDehydrated:!1,cache:s.cache,pendingSuspenseBoundaries:s.pendingSuspenseBoundaries,transitions:s.transitions},t.updateQueue.baseState=i,t.memoizedState=i,t.flags&256){o=zr(Error(b(423)),t),t=Zf(e,t,r,n,o);break e}else if(r!==o){o=zr(Error(b(424)),t),t=Zf(e,t,r,n,o);break e}else for(Ze=vn(t.stateNode.containerInfo.firstChild),qe=t,ee=!0,wt=null,n=xg(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(_r(),r===o){t=Xt(e,t,n);break e}Ve(e,t,r,n)}t=t.child}return t;case 5:return Sg(t),e===null&&Kl(t),r=t.type,o=t.pendingProps,i=e!==null?e.memoizedProps:null,s=o.children,Bl(r,o)?s=null:i!==null&&Bl(r,i)&&(t.flags|=32),Gg(e,t),Ve(e,t,s,n),t.child;case 6:return e===null&&Kl(t),null;case 13:return Qg(e,t,n);case 4:return gc(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=Vr(t,null,r,n):Ve(e,t,r,n),t.child;case 11:return r=t.type,o=t.pendingProps,o=t.elementType===r?o:yt(r,o),Yf(e,t,r,o,n);case 7:return Ve(e,t,t.pendingProps,n),t.child;case 8:return Ve(e,t,t.pendingProps.children,n),t.child;case 12:return Ve(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,o=t.pendingProps,i=t.memoizedProps,s=o.value,G(Ps,r._currentValue),r._currentValue=s,i!==null)if(kt(i.value,s)){if(i.children===o.children&&!Ke.current){t=Xt(e,t,n);break e}}else for(i=t.child,i!==null&&(i.return=t);i!==null;){var a=i.dependencies;if(a!==null){s=i.child;for(var l=a.firstContext;l!==null;){if(l.context===r){if(i.tag===1){l=Kt(-1,n&-n),l.tag=2;var u=i.updateQueue;if(u!==null){u=u.shared;var c=u.pending;c===null?l.next=l:(l.next=c.next,c.next=l),u.pending=l}}i.lanes|=n,l=i.alternate,l!==null&&(l.lanes|=n),Gl(i.return,n,t),a.lanes|=n;break}l=l.next}}else if(i.tag===10)s=i.type===t.type?null:i.child;else if(i.tag===18){if(s=i.return,s===null)throw Error(b(341));s.lanes|=n,a=s.alternate,a!==null&&(a.lanes|=n),Gl(s,n,t),s=i.sibling}else s=i.child;if(s!==null)s.return=i;else for(s=i;s!==null;){if(s===t){s=null;break}if(i=s.sibling,i!==null){i.return=s.return,s=i;break}s=s.return}i=s}Ve(e,t,o.children,n),t=t.child}return t;case 9:return o=t.type,r=t.pendingProps.children,Ar(t,n),o=ft(o),r=r(o),t.flags|=1,Ve(e,t,r,n),t.child;case 14:return r=t.type,o=yt(r,t.pendingProps),o=yt(r.type,o),Qf(e,t,r,o,n);case 15:return Hg(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,o=t.pendingProps,o=t.elementType===r?o:yt(r,o),ns(e,t),t.tag=1,Ge(r)?(e=!0,Ss(t)):e=!1,Ar(t,n),$g(t,r,o),Ql(t,r,o,n),ql(null,t,r,!0,e,n);case 19:return Xg(e,t,n);case 22:return Kg(e,t,n)}throw Error(b(156,t.tag))};function fv(e,t){return Fm(e,t)}function N2(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function at(e,t,n,r){return new N2(e,t,n,r)}function Ac(e){return e=e.prototype,!(!e||!e.isReactComponent)}function b2(e){if(typeof e=="function")return Ac(e)?1:0;if(e!=null){if(e=e.$$typeof,e===Xu)return 11;if(e===Zu)return 14}return 2}function Cn(e,t){var n=e.alternate;return n===null?(n=at(e.tag,t,e.key,e.mode),n.elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=e.flags&14680064,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function is(e,t,n,r,o,i){var s=2;if(r=e,typeof e=="function")Ac(e)&&(s=1);else if(typeof e=="string")s=5;else e:switch(e){case dr:return Hn(n.children,o,i,t);case Qu:s=8,o|=8;break;case xl:return e=at(12,n,t,o|2),e.elementType=xl,e.lanes=i,e;case wl:return e=at(13,n,t,o),e.elementType=wl,e.lanes=i,e;case Cl:return e=at(19,n,t,o),e.elementType=Cl,e.lanes=i,e;case Sm:return oa(n,o,i,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case wm:s=10;break e;case Cm:s=9;break e;case Xu:s=11;break e;case Zu:s=14;break e;case ln:s=16,r=null;break e}throw Error(b(130,e==null?e:typeof e,""))}return t=at(s,n,t,o),t.elementType=e,t.type=r,t.lanes=i,t}function Hn(e,t,n,r){return e=at(7,e,r,t),e.lanes=n,e}function oa(e,t,n,r){return e=at(22,e,r,t),e.elementType=Sm,e.lanes=n,e.stateNode={isHidden:!1},e}function Ya(e,t,n){return e=at(6,e,null,t),e.lanes=n,e}function Qa(e,t,n){return t=at(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function M2(e,t,n,r,o){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=Ma(0),this.expirationTimes=Ma(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Ma(0),this.identifierPrefix=r,this.onRecoverableError=o,this.mutableSourceEagerHydrationData=null}function jc(e,t,n,r,o,i,s,a,l){return e=new M2(e,t,n,a,l),t===1?(t=1,i===!0&&(t|=8)):t=0,i=at(3,null,null,t),e.current=i,i.stateNode=e,i.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},mc(i),e}function R2(e,t,n){var r=3 "u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(gv)}catch(e){console.error(e)}}gv(),gm.exports=et;var Oc=gm.exports;const vv=om(Oc);var up=Oc;vl.createRoot=up.createRoot,vl.hydrateRoot=up.hydrateRoot;function cp(e,t){if(typeof e=="function")return e(t);e!=null&&(e.current=t)}function _c(...e){return t=>{let n=!1;const r=e.map(o=>{const i=cp(o,t);return!n&&typeof i=="function"&&(n=!0),i});if(n)return()=>{for(let o=0;o {const{children:i,...s}=r,a=y.Children.toArray(i),l=a.find(V2);if(l){const u=l.props.children,c=a.map(d=>d===l?y.Children.count(u)>1?y.Children.only(null):y.isValidElement(u)?u.props.children:null:d);return h.jsx(t,{...s,ref:o,children:y.isValidElement(u)?y.cloneElement(u,void 0,c):null})}return h.jsx(t,{...s,ref:o,children:i})});return n.displayName=`${e}.Slot`,n}var I2=Zo("Slot");function O2(e){const t=y.forwardRef((n,r)=>{const{children:o,...i}=n;if(y.isValidElement(o)){const s=z2(o),a=F2(i,o.props);return o.type!==y.Fragment&&(a.ref=r?_c(r,s):s),y.cloneElement(o,a)}return y.Children.count(o)>1?y.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var _2=Symbol("radix.slottable");function V2(e){return y.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===_2}function F2(e,t){const n={...t};for(const r in t){const o=e[r],i=t[r];/^on[A-Z]/.test(r)?o&&i?n[r]=(...a)=>{i(...a),o(...a)}:o&&(n[r]=o):r==="style"?n[r]={...o,...i}:r==="className"&&(n[r]=[o,i].filter(Boolean).join(" "))}return{...e,...n}}function z2(e){var r,o;let t=(r=Object.getOwnPropertyDescriptor(e.props,"ref"))==null?void 0:r.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=(o=Object.getOwnPropertyDescriptor(e,"ref"))==null?void 0:o.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}function yv(e){var t,n,r="";if(typeof e=="string"||typeof e=="number")r+=e;else if(typeof e=="object")if(Array.isArray(e))for(t=0;t typeof e=="boolean"?"".concat(e):e===0?"0":e,fp=B2,ua=(e,t)=>n=>{var r;if((t==null?void 0:t.variants)==null)return fp(e,n==null?void 0:n.class,n==null?void 0:n.className);const{variants:o,defaultVariants:i}=t,s=Object.keys(o).map(u=>{const c=n==null?void 0:n[u],d=i==null?void 0:i[u];if(c===null)return null;const f=dp(c)||dp(d);return o[u][f]}),a=n&&Object.entries(n).reduce((u,c)=>{let[d,f]=c;return f===void 0||(u[d]=f),u},{}),l=t==null||(r=t.compoundVariants)===null||r===void 0?void 0:r.reduce((u,c)=>{let{class:d,className:f,...x}=c;return Object.entries(x).every(w=>{let[g,C]=w;return Array.isArray(C)?C.includes({...i,...a}[g]):{...i,...a}[g]===C})?[...u,d,f]:u},[]);return fp(e,s,l,n==null?void 0:n.class,n==null?void 0:n.className)};function xv(e){var t,n,r="";if(typeof e=="string"||typeof e=="number")r+=e;else if(typeof e=="object")if(Array.isArray(e)){var o=e.length;for(t=0;t {const t=H2(e),{conflictingClassGroups:n,conflictingClassGroupModifiers:r}=e;return{getClassGroupId:s=>{const a=s.split(Vc);return a[0]===""&&a.length!==1&&a.shift(),wv(a,t)||W2(s)},getConflictingClassGroupIds:(s,a)=>{const l=n[s]||[];return a&&r[s]?[...l,...r[s]]:l}}},wv=(e,t)=>{var s;if(e.length===0)return t.classGroupId;const n=e[0],r=t.nextPart.get(n),o=r?wv(e.slice(1),r):void 0;if(o)return o;if(t.validators.length===0)return;const i=e.join(Vc);return(s=t.validators.find(({validator:a})=>a(i)))==null?void 0:s.classGroupId},pp=/^\[(.+)\]$/,W2=e=>{if(pp.test(e)){const t=pp.exec(e)[1],n=t==null?void 0:t.substring(0,t.indexOf(":"));if(n)return"arbitrary.."+n}},H2=e=>{const{theme:t,prefix:n}=e,r={nextPart:new Map,validators:[]};return G2(Object.entries(e.classGroups),n).forEach(([i,s])=>{cu(s,r,i,t)}),r},cu=(e,t,n,r)=>{e.forEach(o=>{if(typeof o=="string"){const i=o===""?t:hp(t,o);i.classGroupId=n;return}if(typeof o=="function"){if(K2(o)){cu(o(r),t,n,r);return}t.validators.push({validator:o,classGroupId:n});return}Object.entries(o).forEach(([i,s])=>{cu(s,hp(t,i),n,r)})})},hp=(e,t)=>{let n=e;return t.split(Vc).forEach(r=>{n.nextPart.has(r)||n.nextPart.set(r,{nextPart:new Map,validators:[]}),n=n.nextPart.get(r)}),n},K2=e=>e.isThemeGetter,G2=(e,t)=>t?e.map(([n,r])=>{const o=r.map(i=>typeof i=="string"?t+i:typeof i=="object"?Object.fromEntries(Object.entries(i).map(([s,a])=>[t+s,a])):i);return[n,o]}):e,Y2=e=>{if(e<1)return{get:()=>{},set:()=>{}};let t=0,n=new Map,r=new Map;const o=(i,s)=>{n.set(i,s),t++,t>e&&(t=0,r=n,n=new Map)};return{get(i){let s=n.get(i);if(s!==void 0)return s;if((s=r.get(i))!==void 0)return o(i,s),s},set(i,s){n.has(i)?n.set(i,s):o(i,s)}}},Cv="!",Q2=e=>{const{separator:t,experimentalParseClassName:n}=e,r=t.length===1,o=t[0],i=t.length,s=a=>{const l=[];let u=0,c=0,d;for(let C=0;C c?d-c:void 0;return{modifiers:l,hasImportantModifier:x,baseClassName:w,maybePostfixModifierPosition:g}};return n?a=>n({className:a,parseClassName:s}):s},X2=e=>{if(e.length<=1)return e;const t=[];let n=[];return e.forEach(r=>{r[0]==="["?(t.push(...n.sort(),r),n=[]):n.push(r)}),t.push(...n.sort()),t},Z2=e=>({cache:Y2(e.cacheSize),parseClassName:Q2(e),...U2(e)}),q2=/\s+/,J2=(e,t)=>{const{parseClassName:n,getClassGroupId:r,getConflictingClassGroupIds:o}=t,i=[],s=e.trim().split(q2);let a="";for(let l=s.length-1;l>=0;l-=1){const u=s[l],{modifiers:c,hasImportantModifier:d,baseClassName:f,maybePostfixModifierPosition:x}=n(u);let w=!!x,g=r(w?f.substring(0,x):f);if(!g){if(!w){a=u+(a.length>0?" "+a:a);continue}if(g=r(f),!g){a=u+(a.length>0?" "+a:a);continue}w=!1}const C=X2(c).join(":"),p=d?C+Cv:C,m=p+g;if(i.includes(m))continue;i.push(m);const v=o(g,w);for(let S=0;S 0?" "+a:a)}return a};function eC(){let e=0,t,n,r="";for(;e {if(typeof e=="string")return e;let t,n="";for(let r=0;r d(c),e());return n=Z2(u),r=n.cache.get,o=n.cache.set,i=a,a(l)}function a(l){const u=r(l);if(u)return u;const c=J2(l,n);return o(l,c),c}return function(){return i(eC.apply(null,arguments))}}const X=e=>{const t=n=>n[e]||[];return t.isThemeGetter=!0,t},Ev=/^\[(?:([a-z-]+):)?(.+)\]$/i,nC=/^\d+\/\d+$/,rC=new Set(["px","full","screen"]),oC=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,iC=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,sC=/^(rgba?|hsla?|hwb|(ok)?(lab|lch))\(.+\)$/,aC=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,lC=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,Bt=e=>Lr(e)||rC.has(e)||nC.test(e),rn=e=>Yr(e,"length",gC),Lr=e=>!!e&&!Number.isNaN(Number(e)),Xa=e=>Yr(e,"number",Lr),uo=e=>!!e&&Number.isInteger(Number(e)),uC=e=>e.endsWith("%")&&Lr(e.slice(0,-1)),F=e=>Ev.test(e),on=e=>oC.test(e),cC=new Set(["length","size","percentage"]),dC=e=>Yr(e,cC,kv),fC=e=>Yr(e,"position",kv),pC=new Set(["image","url"]),hC=e=>Yr(e,pC,yC),mC=e=>Yr(e,"",vC),co=()=>!0,Yr=(e,t,n)=>{const r=Ev.exec(e);return r?r[1]?typeof t=="string"?r[1]===t:t.has(r[1]):n(r[2]):!1},gC=e=>iC.test(e)&&!sC.test(e),kv=()=>!1,vC=e=>aC.test(e),yC=e=>lC.test(e),xC=()=>{const e=X("colors"),t=X("spacing"),n=X("blur"),r=X("brightness"),o=X("borderColor"),i=X("borderRadius"),s=X("borderSpacing"),a=X("borderWidth"),l=X("contrast"),u=X("grayscale"),c=X("hueRotate"),d=X("invert"),f=X("gap"),x=X("gradientColorStops"),w=X("gradientColorStopPositions"),g=X("inset"),C=X("margin"),p=X("opacity"),m=X("padding"),v=X("saturate"),S=X("scale"),E=X("sepia"),P=X("skew"),k=X("space"),T=X("translate"),N=()=>["auto","contain","none"],M=()=>["auto","hidden","clip","visible","scroll"],D=()=>["auto",F,t],O=()=>[F,t],ce=()=>["",Bt,rn],de=()=>["auto",Lr,F],be=()=>["bottom","center","left","left-bottom","left-top","right","right-bottom","right-top","top"],Se=()=>["solid","dashed","dotted","double","none"],U=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],R=()=>["start","end","center","between","around","evenly","stretch"],j=()=>["","0",F],I=()=>["auto","avoid","all","avoid-page","page","left","right","column"],V=()=>[Lr,F];return{cacheSize:500,separator:":",theme:{colors:[co],spacing:[Bt,rn],blur:["none","",on,F],brightness:V(),borderColor:[e],borderRadius:["none","","full",on,F],borderSpacing:O(),borderWidth:ce(),contrast:V(),grayscale:j(),hueRotate:V(),invert:j(),gap:O(),gradientColorStops:[e],gradientColorStopPositions:[uC,rn],inset:D(),margin:D(),opacity:V(),padding:O(),saturate:V(),scale:V(),sepia:j(),skew:V(),space:O(),translate:O()},classGroups:{aspect:[{aspect:["auto","square","video",F]}],container:["container"],columns:[{columns:[on]}],"break-after":[{"break-after":I()}],"break-before":[{"break-before":I()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:[...be(),F]}],overflow:[{overflow:M()}],"overflow-x":[{"overflow-x":M()}],"overflow-y":[{"overflow-y":M()}],overscroll:[{overscroll:N()}],"overscroll-x":[{"overscroll-x":N()}],"overscroll-y":[{"overscroll-y":N()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:[g]}],"inset-x":[{"inset-x":[g]}],"inset-y":[{"inset-y":[g]}],start:[{start:[g]}],end:[{end:[g]}],top:[{top:[g]}],right:[{right:[g]}],bottom:[{bottom:[g]}],left:[{left:[g]}],visibility:["visible","invisible","collapse"],z:[{z:["auto",uo,F]}],basis:[{basis:D()}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["wrap","wrap-reverse","nowrap"]}],flex:[{flex:["1","auto","initial","none",F]}],grow:[{grow:j()}],shrink:[{shrink:j()}],order:[{order:["first","last","none",uo,F]}],"grid-cols":[{"grid-cols":[co]}],"col-start-end":[{col:["auto",{span:["full",uo,F]},F]}],"col-start":[{"col-start":de()}],"col-end":[{"col-end":de()}],"grid-rows":[{"grid-rows":[co]}],"row-start-end":[{row:["auto",{span:[uo,F]},F]}],"row-start":[{"row-start":de()}],"row-end":[{"row-end":de()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":["auto","min","max","fr",F]}],"auto-rows":[{"auto-rows":["auto","min","max","fr",F]}],gap:[{gap:[f]}],"gap-x":[{"gap-x":[f]}],"gap-y":[{"gap-y":[f]}],"justify-content":[{justify:["normal",...R()]}],"justify-items":[{"justify-items":["start","end","center","stretch"]}],"justify-self":[{"justify-self":["auto","start","end","center","stretch"]}],"align-content":[{content:["normal",...R(),"baseline"]}],"align-items":[{items:["start","end","center","baseline","stretch"]}],"align-self":[{self:["auto","start","end","center","stretch","baseline"]}],"place-content":[{"place-content":[...R(),"baseline"]}],"place-items":[{"place-items":["start","end","center","baseline","stretch"]}],"place-self":[{"place-self":["auto","start","end","center","stretch"]}],p:[{p:[m]}],px:[{px:[m]}],py:[{py:[m]}],ps:[{ps:[m]}],pe:[{pe:[m]}],pt:[{pt:[m]}],pr:[{pr:[m]}],pb:[{pb:[m]}],pl:[{pl:[m]}],m:[{m:[C]}],mx:[{mx:[C]}],my:[{my:[C]}],ms:[{ms:[C]}],me:[{me:[C]}],mt:[{mt:[C]}],mr:[{mr:[C]}],mb:[{mb:[C]}],ml:[{ml:[C]}],"space-x":[{"space-x":[k]}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":[k]}],"space-y-reverse":["space-y-reverse"],w:[{w:["auto","min","max","fit","svw","lvw","dvw",F,t]}],"min-w":[{"min-w":[F,t,"min","max","fit"]}],"max-w":[{"max-w":[F,t,"none","full","min","max","fit","prose",{screen:[on]},on]}],h:[{h:[F,t,"auto","min","max","fit","svh","lvh","dvh"]}],"min-h":[{"min-h":[F,t,"min","max","fit","svh","lvh","dvh"]}],"max-h":[{"max-h":[F,t,"min","max","fit","svh","lvh","dvh"]}],size:[{size:[F,t,"auto","min","max","fit"]}],"font-size":[{text:["base",on,rn]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:["thin","extralight","light","normal","medium","semibold","bold","extrabold","black",Xa]}],"font-family":[{font:[co]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:["tighter","tight","normal","wide","wider","widest",F]}],"line-clamp":[{"line-clamp":["none",Lr,Xa]}],leading:[{leading:["none","tight","snug","normal","relaxed","loose",Bt,F]}],"list-image":[{"list-image":["none",F]}],"list-style-type":[{list:["none","disc","decimal",F]}],"list-style-position":[{list:["inside","outside"]}],"placeholder-color":[{placeholder:[e]}],"placeholder-opacity":[{"placeholder-opacity":[p]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"text-color":[{text:[e]}],"text-opacity":[{"text-opacity":[p]}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...Se(),"wavy"]}],"text-decoration-thickness":[{decoration:["auto","from-font",Bt,rn]}],"underline-offset":[{"underline-offset":["auto",Bt,F]}],"text-decoration-color":[{decoration:[e]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:O()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",F]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",F]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-opacity":[{"bg-opacity":[p]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:[...be(),fC]}],"bg-repeat":[{bg:["no-repeat",{repeat:["","x","y","round","space"]}]}],"bg-size":[{bg:["auto","cover","contain",dC]}],"bg-image":[{bg:["none",{"gradient-to":["t","tr","r","br","b","bl","l","tl"]},hC]}],"bg-color":[{bg:[e]}],"gradient-from-pos":[{from:[w]}],"gradient-via-pos":[{via:[w]}],"gradient-to-pos":[{to:[w]}],"gradient-from":[{from:[x]}],"gradient-via":[{via:[x]}],"gradient-to":[{to:[x]}],rounded:[{rounded:[i]}],"rounded-s":[{"rounded-s":[i]}],"rounded-e":[{"rounded-e":[i]}],"rounded-t":[{"rounded-t":[i]}],"rounded-r":[{"rounded-r":[i]}],"rounded-b":[{"rounded-b":[i]}],"rounded-l":[{"rounded-l":[i]}],"rounded-ss":[{"rounded-ss":[i]}],"rounded-se":[{"rounded-se":[i]}],"rounded-ee":[{"rounded-ee":[i]}],"rounded-es":[{"rounded-es":[i]}],"rounded-tl":[{"rounded-tl":[i]}],"rounded-tr":[{"rounded-tr":[i]}],"rounded-br":[{"rounded-br":[i]}],"rounded-bl":[{"rounded-bl":[i]}],"border-w":[{border:[a]}],"border-w-x":[{"border-x":[a]}],"border-w-y":[{"border-y":[a]}],"border-w-s":[{"border-s":[a]}],"border-w-e":[{"border-e":[a]}],"border-w-t":[{"border-t":[a]}],"border-w-r":[{"border-r":[a]}],"border-w-b":[{"border-b":[a]}],"border-w-l":[{"border-l":[a]}],"border-opacity":[{"border-opacity":[p]}],"border-style":[{border:[...Se(),"hidden"]}],"divide-x":[{"divide-x":[a]}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":[a]}],"divide-y-reverse":["divide-y-reverse"],"divide-opacity":[{"divide-opacity":[p]}],"divide-style":[{divide:Se()}],"border-color":[{border:[o]}],"border-color-x":[{"border-x":[o]}],"border-color-y":[{"border-y":[o]}],"border-color-s":[{"border-s":[o]}],"border-color-e":[{"border-e":[o]}],"border-color-t":[{"border-t":[o]}],"border-color-r":[{"border-r":[o]}],"border-color-b":[{"border-b":[o]}],"border-color-l":[{"border-l":[o]}],"divide-color":[{divide:[o]}],"outline-style":[{outline:["",...Se()]}],"outline-offset":[{"outline-offset":[Bt,F]}],"outline-w":[{outline:[Bt,rn]}],"outline-color":[{outline:[e]}],"ring-w":[{ring:ce()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:[e]}],"ring-opacity":[{"ring-opacity":[p]}],"ring-offset-w":[{"ring-offset":[Bt,rn]}],"ring-offset-color":[{"ring-offset":[e]}],shadow:[{shadow:["","inner","none",on,mC]}],"shadow-color":[{shadow:[co]}],opacity:[{opacity:[p]}],"mix-blend":[{"mix-blend":[...U(),"plus-lighter","plus-darker"]}],"bg-blend":[{"bg-blend":U()}],filter:[{filter:["","none"]}],blur:[{blur:[n]}],brightness:[{brightness:[r]}],contrast:[{contrast:[l]}],"drop-shadow":[{"drop-shadow":["","none",on,F]}],grayscale:[{grayscale:[u]}],"hue-rotate":[{"hue-rotate":[c]}],invert:[{invert:[d]}],saturate:[{saturate:[v]}],sepia:[{sepia:[E]}],"backdrop-filter":[{"backdrop-filter":["","none"]}],"backdrop-blur":[{"backdrop-blur":[n]}],"backdrop-brightness":[{"backdrop-brightness":[r]}],"backdrop-contrast":[{"backdrop-contrast":[l]}],"backdrop-grayscale":[{"backdrop-grayscale":[u]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[c]}],"backdrop-invert":[{"backdrop-invert":[d]}],"backdrop-opacity":[{"backdrop-opacity":[p]}],"backdrop-saturate":[{"backdrop-saturate":[v]}],"backdrop-sepia":[{"backdrop-sepia":[E]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":[s]}],"border-spacing-x":[{"border-spacing-x":[s]}],"border-spacing-y":[{"border-spacing-y":[s]}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["none","all","","colors","opacity","shadow","transform",F]}],duration:[{duration:V()}],ease:[{ease:["linear","in","out","in-out",F]}],delay:[{delay:V()}],animate:[{animate:["none","spin","ping","pulse","bounce",F]}],transform:[{transform:["","gpu","none"]}],scale:[{scale:[S]}],"scale-x":[{"scale-x":[S]}],"scale-y":[{"scale-y":[S]}],rotate:[{rotate:[uo,F]}],"translate-x":[{"translate-x":[T]}],"translate-y":[{"translate-y":[T]}],"skew-x":[{"skew-x":[P]}],"skew-y":[{"skew-y":[P]}],"transform-origin":[{origin:["center","top","top-right","right","bottom-right","bottom","bottom-left","left","top-left",F]}],accent:[{accent:["auto",e]}],appearance:[{appearance:["none","auto"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",F]}],"caret-color":[{caret:[e]}],"pointer-events":[{"pointer-events":["none","auto"]}],resize:[{resize:["none","y","x",""]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":O()}],"scroll-mx":[{"scroll-mx":O()}],"scroll-my":[{"scroll-my":O()}],"scroll-ms":[{"scroll-ms":O()}],"scroll-me":[{"scroll-me":O()}],"scroll-mt":[{"scroll-mt":O()}],"scroll-mr":[{"scroll-mr":O()}],"scroll-mb":[{"scroll-mb":O()}],"scroll-ml":[{"scroll-ml":O()}],"scroll-p":[{"scroll-p":O()}],"scroll-px":[{"scroll-px":O()}],"scroll-py":[{"scroll-py":O()}],"scroll-ps":[{"scroll-ps":O()}],"scroll-pe":[{"scroll-pe":O()}],"scroll-pt":[{"scroll-pt":O()}],"scroll-pr":[{"scroll-pr":O()}],"scroll-pb":[{"scroll-pb":O()}],"scroll-pl":[{"scroll-pl":O()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",F]}],fill:[{fill:[e,"none"]}],"stroke-w":[{stroke:[Bt,rn,Xa]}],stroke:[{stroke:[e,"none"]}],sr:["sr-only","not-sr-only"],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-s","border-w-e","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-s","border-color-e","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]}}},wC=tC(xC);function $(...e){return wC($2(e))}const Jn=ua("inline-flex items-center justify-center whitespace-nowrap rounded-xl text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground hover:bg-destructive/90",outline:"border border-input bg-background hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-10 px-4 py-2",sm:"h-9 rounded-md px-3",lg:"h-11 rounded-md px-8",icon:"h-10 w-10"}},defaultVariants:{variant:"default",size:"default"}}),mi=y.forwardRef(({className:e,variant:t,size:n,asChild:r=!1,...o},i)=>{const s=r?I2:"button";return h.jsx(s,{className:$(Jn({variant:t,size:n,className:e})),ref:i,...o})});mi.displayName="Button";const Pv=y.createContext({});function CC(e){const t=y.useRef(null);return t.current===null&&(t.current=e()),t.current}const Fc=typeof window<"u",SC=Fc?y.useLayoutEffect:y.useEffect,zc=y.createContext(null),Tv=y.createContext({transformPagePoint:e=>e,isStatic:!1,reducedMotion:"never"});function EC(e=!0){const t=y.useContext(zc);if(t===null)return[!0,null];const{isPresent:n,onExitComplete:r,register:o}=t,i=y.useId();y.useEffect(()=>{if(e)return o(i)},[e]);const s=y.useCallback(()=>e&&r&&r(i),[i,r,e]);return!n&&r?[!1,s]:[!0]}function Bc(e,t){e.indexOf(t)===-1&&e.push(t)}function $c(e,t){const n=e.indexOf(t);n>-1&&e.splice(n,1)}let du=()=>{};const fu={skipAnimations:!1,useManualTiming:!1};function Uc(e){let t;return()=>(t===void 0&&(t=e()),t)}const ut=e=>e,qo=(e,t,n)=>{const r=t-e;return r===0?1:(n-e)/r};class Wc{constructor(){this.subscriptions=[]}add(t){return Bc(this.subscriptions,t),()=>$c(this.subscriptions,t)}notify(t,n,r){const o=this.subscriptions.length;if(o)if(o===1)this.subscriptions[0](t,n,r);else for(let i=0;i e*1e3,It=e=>e/1e3;function Nv(e,t){return t?e*(1e3/t):0}const kC=Uc(()=>window.ScrollTimeline!==void 0);class PC{constructor(t){this.stop=()=>this.runAll("stop"),this.animations=t.filter(Boolean)}get finished(){return Promise.all(this.animations.map(t=>t.finished))}getAll(t){return this.animations[0][t]}setAll(t,n){for(let r=0;r {if(kC()&&o.attachTimeline)return o.attachTimeline(t);if(typeof n=="function")return n(o)});return()=>{r.forEach((o,i)=>{o&&o(),this.animations[i].stop()})}}get time(){return this.getAll("time")}set time(t){this.setAll("time",t)}get speed(){return this.getAll("speed")}set speed(t){this.setAll("speed",t)}get startTime(){return this.getAll("startTime")}get duration(){let t=0;for(let n=0;n n[t]())}flatten(){this.runAll("flatten")}play(){this.runAll("play")}pause(){this.runAll("pause")}cancel(){this.runAll("cancel")}complete(){this.runAll("complete")}}class TC extends PC{then(t,n){return this.finished.finally(t).then(()=>{})}}const mp={value:null,addProjectionMetrics:null},Hc=e=>Array.isArray(e)&&typeof e[0]=="number",NC={};function bC(e,t){const n=Uc(e);return()=>NC[t]??n()}const Jo=bC(()=>{try{document.createElement("div").animate({opacity:0},{easing:"linear(0, 1)"})}catch{return!1}return!0},"linearEasing"),bv=(e,t,n=10)=>{let r="";const o=Math.max(Math.round(t/n),2);for(let i=0;i `cubic-bezier(${e}, ${t}, ${n}, ${r})`,pu={linear:"linear",ease:"ease",easeIn:"ease-in",easeOut:"ease-out",easeInOut:"ease-in-out",circIn:vo([0,.65,.55,1]),circOut:vo([.55,0,1,.45]),backIn:vo([.31,.01,.66,-.59]),backOut:vo([.33,1.53,.69,.99])};function Mv(e,t){if(e)return typeof e=="function"&&Jo()?bv(e,t):Hc(e)?vo(e):Array.isArray(e)?e.map(n=>Mv(n,t)||pu.easeOut):pu[e]}function MC(e,t,n,{delay:r=0,duration:o=300,repeat:i=0,repeatType:s="loop",ease:a="easeInOut",times:l}={},u=void 0){const c={[t]:n};l&&(c.offset=l);const d=Mv(a,o);return Array.isArray(d)&&(c.easing=d),e.animate(c,{delay:r,duration:o,easing:Array.isArray(d)?"linear":d,fill:"both",iterations:i+1,direction:s==="reverse"?"alternate":"normal",pseudoElement:u})}function Kc(e){return typeof e=="function"&&"applyToOptions"in e}function Gc(e,t){return(e==null?void 0:e[t])??(e==null?void 0:e.default)??e}const Os=2e4;function Yc(e){let t=0;const n=50;let r=e.next(t);for(;!r.done&&t =Os?1/0:t}function RC(e,t=100,n){const r=n({...e,keyframes:[0,t]}),o=Math.min(Yc(r),Os);return{type:"keyframes",ease:i=>r.next(o*i).value/t,duration:It(o)}}function Rv(e){return!!(typeof e=="function"&&Jo()||!e||typeof e=="string"&&(e in pu||Jo())||Hc(e)||Array.isArray(e)&&e.every(Rv))}function gp(e,t){e.timeline=t,e.onfinish=null}const Fi=["read","resolveKeyframes","update","preRender","render","postRender"];function AC(e,t){let n=new Set,r=new Set,o=!1,i=!1;const s=new WeakSet;let a={delta:0,timestamp:0,isProcessing:!1},l=0;function u(d){s.has(d)&&(c.schedule(d),e()),l++,d(a)}const c={schedule:(d,f=!1,x=!1)=>{const g=x&&o?n:r;return f&&s.add(d),g.has(d)||g.add(d),d},cancel:d=>{r.delete(d),s.delete(d)},process:d=>{if(a=d,o){i=!0;return}o=!0,[n,r]=[r,n],n.forEach(u),t&&mp.value&&mp.value.frameloop[t].push(l),l=0,n.clear(),o=!1,i&&(i=!1,c.process(d))}};return c}const jC=40;function Av(e,t){let n=!1,r=!0;const o={delta:0,timestamp:0,isProcessing:!1},i=()=>n=!0,s=Fi.reduce((p,m)=>(p[m]=AC(i,t?m:void 0),p),{}),{read:a,resolveKeyframes:l,update:u,preRender:c,render:d,postRender:f}=s,x=()=>{const p=performance.now();n=!1,o.delta=r?1e3/60:Math.max(Math.min(p-o.timestamp,jC),1),o.timestamp=p,o.isProcessing=!0,a.process(o),l.process(o),u.process(o),c.process(o),d.process(o),f.process(o),o.isProcessing=!1,n&&t&&(r=!1,e(x))},w=()=>{n=!0,r=!0,o.isProcessing||e(x)};return{schedule:Fi.reduce((p,m)=>{const v=s[m];return p[m]=(S,E=!1,P=!1)=>(n||w(),v.schedule(S,E,P)),p},{}),cancel:p=>{for(let m=0;m (ss===void 0&&Ot.set(Pe.isProcessing||fu.useManualTiming?Pe.timestamp:performance.now()),ss),set:e=>{ss=e,queueMicrotask(LC)}},vt={x:!1,y:!1};function jv(){return vt.x||vt.y}function DC(e){return e==="x"||e==="y"?vt[e]?null:(vt[e]=!0,()=>{vt[e]=!1}):vt.x||vt.y?null:(vt.x=vt.y=!0,()=>{vt.x=vt.y=!1})}function Lv(e,t,n){if(e instanceof EventTarget)return[e];if(typeof e=="string"){const o=document.querySelectorAll(e);return o?Array.from(o):[]}return Array.from(e)}function Dv(e,t){const n=Lv(e),r=new AbortController,o={passive:!0,...t,signal:r.signal};return[n,o,()=>r.abort()]}function vp(e){return!(e.pointerType==="touch"||jv())}function IC(e,t,n={}){const[r,o,i]=Dv(e,n),s=a=>{if(!vp(a))return;const{target:l}=a,u=t(l,a);if(typeof u!="function"||!l)return;const c=d=>{vp(d)&&(u(d),l.removeEventListener("pointerleave",c))};l.addEventListener("pointerleave",c,o)};return r.forEach(a=>{a.addEventListener("pointerenter",s,o)}),i}const Iv=(e,t)=>t?e===t?!0:Iv(e,t.parentElement):!1,Xc=e=>e.pointerType==="mouse"?typeof e.button!="number"||e.button<=0:e.isPrimary!==!1,OC=new Set(["BUTTON","INPUT","SELECT","TEXTAREA","A"]);function _C(e){return OC.has(e.tagName)||e.tabIndex!==-1}const yo=new WeakSet;function yp(e){return t=>{t.key==="Enter"&&e(t)}}function qa(e,t){e.dispatchEvent(new PointerEvent("pointer"+t,{isPrimary:!0,bubbles:!0}))}const VC=(e,t)=>{const n=e.currentTarget;if(!n)return;const r=yp(()=>{if(yo.has(n))return;qa(n,"down");const o=yp(()=>{qa(n,"up")}),i=()=>qa(n,"cancel");n.addEventListener("keyup",o,t),n.addEventListener("blur",i,t)});n.addEventListener("keydown",r,t),n.addEventListener("blur",()=>n.removeEventListener("keydown",r),t)};function xp(e){return Xc(e)&&!jv()}function FC(e,t,n={}){const[r,o,i]=Dv(e,n),s=a=>{const l=a.currentTarget;if(!xp(a)||yo.has(l))return;yo.add(l);const u=t(l,a),c=(x,w)=>{window.removeEventListener("pointerup",d),window.removeEventListener("pointercancel",f),!(!xp(x)||!yo.has(l))&&(yo.delete(l),typeof u=="function"&&u(x,{success:w}))},d=x=>{c(x,l===window||l===document||n.useGlobalTarget||Iv(l,x.target))},f=x=>{c(x,!1)};window.addEventListener("pointerup",d,o),window.addEventListener("pointercancel",f,o)};return r.forEach(a=>{(n.useGlobalTarget?window:a).addEventListener("pointerdown",s,o),a instanceof HTMLElement&&(a.addEventListener("focus",u=>VC(u,o)),!_C(a)&&!a.hasAttribute("tabindex")&&(a.tabIndex=0))}),i}const wp=30,zC=e=>!isNaN(parseFloat(e));class BC{constructor(t,n={}){this.version="12.7.2",this.canTrackVelocity=null,this.events={},this.updateAndNotify=(r,o=!0)=>{const i=Ot.now();this.updatedAt!==i&&this.setPrevFrameValue(),this.prev=this.current,this.setCurrent(r),this.current!==this.prev&&this.events.change&&this.events.change.notify(this.current),o&&this.events.renderRequest&&this.events.renderRequest.notify(this.current)},this.hasAnimated=!1,this.setCurrent(t),this.owner=n.owner}setCurrent(t){this.current=t,this.updatedAt=Ot.now(),this.canTrackVelocity===null&&t!==void 0&&(this.canTrackVelocity=zC(this.current))}setPrevFrameValue(t=this.current){this.prevFrameValue=t,this.prevUpdatedAt=this.updatedAt}onChange(t){return this.on("change",t)}on(t,n){this.events[t]||(this.events[t]=new Wc);const r=this.events[t].add(n);return t==="change"?()=>{r(),Y.read(()=>{this.events.change.getSize()||this.stop()})}:r}clearListeners(){for(const t in this.events)this.events[t].clear()}attach(t,n){this.passiveEffect=t,this.stopPassiveEffect=n}set(t,n=!0){!n||!this.passiveEffect?this.updateAndNotify(t,n):this.passiveEffect(t,this.updateAndNotify)}setWithVelocity(t,n,r){this.set(n),this.prev=void 0,this.prevFrameValue=t,this.prevUpdatedAt=this.updatedAt-r}jump(t,n=!0){this.updateAndNotify(t),this.prev=t,this.prevUpdatedAt=this.prevFrameValue=void 0,n&&this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}get(){return this.current}getPrevious(){return this.prev}getVelocity(){const t=Ot.now();if(!this.canTrackVelocity||this.prevFrameValue===void 0||t-this.updatedAt>wp)return 0;const n=Math.min(this.updatedAt-this.prevUpdatedAt,wp);return Nv(parseFloat(this.current)-parseFloat(this.prevFrameValue),n)}start(t){return this.stop(),new Promise(n=>{this.hasAnimated=!0,this.animation=t(n),this.events.animationStart&&this.events.animationStart.notify()}).then(()=>{this.events.animationComplete&&this.events.animationComplete.notify(),this.clearAnimation()})}stop(){this.animation&&(this.animation.stop(),this.events.animationCancel&&this.events.animationCancel.notify()),this.clearAnimation()}isAnimating(){return!!this.animation}clearAnimation(){delete this.animation}destroy(){this.clearListeners(),this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}}function ei(e,t){return new BC(e,t)}const Ov=y.createContext({strict:!1}),Cp={animation:["animate","variants","whileHover","whileTap","exit","whileInView","whileFocus","whileDrag"],exit:["exit"],drag:["drag","dragControls"],focus:["whileFocus"],hover:["whileHover","onHoverStart","onHoverEnd"],tap:["whileTap","onTap","onTapStart","onTapCancel"],pan:["onPan","onPanStart","onPanSessionStart","onPanEnd"],inView:["whileInView","onViewportEnter","onViewportLeave"],layout:["layout","layoutId"]},$r={};for(const e in Cp)$r[e]={isEnabled:t=>Cp[e].some(n=>!!t[n])};function $C(e){for(const t in e)$r[t]={...$r[t],...e[t]}}const UC=new Set(["animate","exit","variants","initial","style","values","variants","transition","transformTemplate","custom","inherit","onBeforeLayoutMeasure","onAnimationStart","onAnimationComplete","onUpdate","onDragStart","onDrag","onDragEnd","onMeasureDragConstraints","onDirectionLock","onDragTransitionEnd","_dragX","_dragY","onHoverStart","onHoverEnd","onViewportEnter","onViewportLeave","globalTapTarget","ignoreStrict","viewport"]);function _s(e){return e.startsWith("while")||e.startsWith("drag")&&e!=="draggable"||e.startsWith("layout")||e.startsWith("onTap")||e.startsWith("onPan")||e.startsWith("onLayout")||UC.has(e)}let _v=e=>!_s(e);function WC(e){e&&(_v=t=>t.startsWith("on")?!_s(t):e(t))}try{WC(require("@emotion/is-prop-valid").default)}catch{}function HC(e,t,n){const r={};for(const o in e)o==="values"&&typeof e.values=="object"||(_v(o)||n===!0&&_s(o)||!t&&!_s(o)||e.draggable&&o.startsWith("onDrag"))&&(r[o]=e[o]);return r}function KC(e){if(typeof Proxy>"u")return e;const t=new Map,n=(...r)=>e(...r);return new Proxy(n,{get:(r,o)=>o==="create"?e:(t.has(o)||t.set(o,e(o)),t.get(o))})}const ca=y.createContext({});function da(e){return e!==null&&typeof e=="object"&&typeof e.start=="function"}function ti(e){return typeof e=="string"||Array.isArray(e)}const Zc=["animate","whileInView","whileFocus","whileHover","whileTap","whileDrag","exit"],qc=["initial",...Zc];function fa(e){return da(e.animate)||qc.some(t=>ti(e[t]))}function Vv(e){return!!(fa(e)||e.variants)}function GC(e,t){if(fa(e)){const{initial:n,animate:r}=e;return{initial:n===!1||ti(n)?n:void 0,animate:ti(r)?r:void 0}}return e.inherit!==!1?t:{}}function YC(e){const{initial:t,animate:n}=GC(e,y.useContext(ca));return y.useMemo(()=>({initial:t,animate:n}),[Sp(t),Sp(n)])}function Sp(e){return Array.isArray(e)?e.join(" "):e}const QC=Symbol.for("motionComponentSymbol");function Sr(e){return e&&typeof e=="object"&&Object.prototype.hasOwnProperty.call(e,"current")}function XC(e,t,n){return y.useCallback(r=>{r&&e.onMount&&e.onMount(r),t&&(r?t.mount(r):t.unmount()),n&&(typeof n=="function"?n(r):Sr(n)&&(n.current=r))},[t])}const Jc=e=>e.replace(/([a-z])([A-Z])/gu,"$1-$2").toLowerCase(),ZC="framerAppearId",Fv="data-"+Jc(ZC),zv=y.createContext({});function qC(e,t,n,r,o){var g,C;const{visualElement:i}=y.useContext(ca),s=y.useContext(Ov),a=y.useContext(zc),l=y.useContext(Tv).reducedMotion,u=y.useRef(null);r=r||s.renderer,!u.current&&r&&(u.current=r(e,{visualState:t,parent:i,props:n,presenceContext:a,blockInitialAnimation:a?a.initial===!1:!1,reducedMotionConfig:l}));const c=u.current,d=y.useContext(zv);c&&!c.projection&&o&&(c.type==="html"||c.type==="svg")&&JC(u.current,n,o,d);const f=y.useRef(!1);y.useInsertionEffect(()=>{c&&f.current&&c.update(n,a)});const x=n[Fv],w=y.useRef(!!x&&!((g=window.MotionHandoffIsComplete)!=null&&g.call(window,x))&&((C=window.MotionHasOptimisedAnimation)==null?void 0:C.call(window,x)));return SC(()=>{c&&(f.current=!0,window.MotionIsMounted=!0,c.updateFeatures(),Qc.render(c.render),w.current&&c.animationState&&c.animationState.animateChanges())}),y.useEffect(()=>{c&&(!w.current&&c.animationState&&c.animationState.animateChanges(),w.current&&(queueMicrotask(()=>{var p;(p=window.MotionHandoffMarkAsComplete)==null||p.call(window,x)}),w.current=!1))}),c}function JC(e,t,n,r){const{layoutId:o,layout:i,drag:s,dragConstraints:a,layoutScroll:l,layoutRoot:u,layoutCrossfade:c}=t;e.projection=new n(e.latestValues,t["data-framer-portal-id"]?void 0:Bv(e.parent)),e.projection.setOptions({layoutId:o,layout:i,alwaysMeasureLayout:!!s||a&&Sr(a),visualElement:e,animationType:typeof i=="string"?i:"both",initialPromotionConfig:r,crossfade:c,layoutScroll:l,layoutRoot:u})}function Bv(e){if(e)return e.options.allowProjection!==!1?e.projection:Bv(e.parent)}function eS({preloadedFeatures:e,createVisualElement:t,useRender:n,useVisualState:r,Component:o}){e&&$C(e);function i(a,l){let u;const c={...y.useContext(Tv),...a,layoutId:tS(a)},{isStatic:d}=c,f=YC(a),x=r(a,d);if(!d&&Fc){nS();const w=rS(c);u=w.MeasureLayout,f.visualElement=qC(o,x,c,t,w.ProjectionNode)}return h.jsxs(ca.Provider,{value:f,children:[u&&f.visualElement?h.jsx(u,{visualElement:f.visualElement,...c}):null,n(o,a,XC(x,f.visualElement,l),x,d,f.visualElement)]})}i.displayName=`motion.${typeof o=="string"?o:`create(${o.displayName??o.name??""})`}`;const s=y.forwardRef(i);return s[QC]=o,s}function tS({layoutId:e}){const t=y.useContext(Pv).id;return t&&e!==void 0?t+"-"+e:e}function nS(e,t){y.useContext(Ov).strict}function rS(e){const{drag:t,layout:n}=$r;if(!t&&!n)return{};const r={...t,...n};return{MeasureLayout:t!=null&&t.isEnabled(e)||n!=null&&n.isEnabled(e)?r.MeasureLayout:void 0,ProjectionNode:r.ProjectionNode}}const $v=e=>t=>typeof t=="string"&&t.startsWith(e),ed=$v("--"),oS=$v("var(--"),td=e=>oS(e)?iS.test(e.split("/*")[0].trim()):!1,iS=/var\(--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)$/iu,ni={};function sS(e){for(const t in e)ni[t]=e[t],ed(t)&&(ni[t].isCSSVariable=!0)}const Qr=["transformPerspective","x","y","z","translateX","translateY","translateZ","scale","scaleX","scaleY","rotate","rotateX","rotateY","rotateZ","skew","skewX","skewY"],or=new Set(Qr);function Uv(e,{layout:t,layoutId:n}){return or.has(e)||e.startsWith("origin")||(t||n!==void 0)&&(!!ni[e]||e==="opacity")}const Le=e=>!!(e&&e.getVelocity),Wv=(e,t)=>t&&typeof e=="number"?t.transform(e):e,Zt=(e,t,n)=>n>t?t:n typeof e=="number",parse:parseFloat,transform:e=>e},ri={...Xr,transform:e=>Zt(0,1,e)},zi={...Xr,default:1},gi=e=>({test:t=>typeof t=="string"&&t.endsWith(e)&&t.split(" ").length===1,parse:parseFloat,transform:t=>`${t}${e}`}),sn=gi("deg"),_t=gi("%"),_=gi("px"),aS=gi("vh"),lS=gi("vw"),Ep={..._t,parse:e=>_t.parse(e)/100,transform:e=>_t.transform(e*100)},uS={borderWidth:_,borderTopWidth:_,borderRightWidth:_,borderBottomWidth:_,borderLeftWidth:_,borderRadius:_,radius:_,borderTopLeftRadius:_,borderTopRightRadius:_,borderBottomRightRadius:_,borderBottomLeftRadius:_,width:_,maxWidth:_,height:_,maxHeight:_,top:_,right:_,bottom:_,left:_,padding:_,paddingTop:_,paddingRight:_,paddingBottom:_,paddingLeft:_,margin:_,marginTop:_,marginRight:_,marginBottom:_,marginLeft:_,backgroundPositionX:_,backgroundPositionY:_},cS={rotate:sn,rotateX:sn,rotateY:sn,rotateZ:sn,scale:zi,scaleX:zi,scaleY:zi,scaleZ:zi,skew:sn,skewX:sn,skewY:sn,distance:_,translateX:_,translateY:_,translateZ:_,x:_,y:_,z:_,perspective:_,transformPerspective:_,opacity:ri,originX:Ep,originY:Ep,originZ:_},kp={...Xr,transform:Math.round},nd={...uS,...cS,zIndex:kp,size:_,fillOpacity:ri,strokeOpacity:ri,numOctaves:kp},dS={x:"translateX",y:"translateY",z:"translateZ",transformPerspective:"perspective"},fS=Qr.length;function pS(e,t,n){let r="",o=!0;for(let i=0;i ({style:{},transform:{},transformOrigin:{},vars:{}});function Hv(e,t,n){for(const r in t)!Le(t[r])&&!Uv(r,n)&&(e[r]=t[r])}function hS({transformTemplate:e},t){return y.useMemo(()=>{const n=od();return rd(n,t,e),Object.assign({},n.vars,n.style)},[t])}function mS(e,t){const n=e.style||{},r={};return Hv(r,n,e),Object.assign(r,hS(e,t)),r}function gS(e,t){const n={},r=mS(e,t);return e.drag&&e.dragListener!==!1&&(n.draggable=!1,r.userSelect=r.WebkitUserSelect=r.WebkitTouchCallout="none",r.touchAction=e.drag===!0?"none":`pan-${e.drag==="x"?"y":"x"}`),e.tabIndex===void 0&&(e.onTap||e.onTapStart||e.whileTap)&&(n.tabIndex=0),n.style=r,n}const vS=["animate","circle","defs","desc","ellipse","g","image","line","filter","marker","mask","metadata","path","pattern","polygon","polyline","rect","stop","switch","symbol","svg","text","tspan","use","view"];function id(e){return typeof e!="string"||e.includes("-")?!1:!!(vS.indexOf(e)>-1||/[A-Z]/u.test(e))}const yS={offset:"stroke-dashoffset",array:"stroke-dasharray"},xS={offset:"strokeDashoffset",array:"strokeDasharray"};function wS(e,t,n=1,r=0,o=!0){e.pathLength=1;const i=o?yS:xS;e[i.offset]=_.transform(-r);const s=_.transform(t),a=_.transform(n);e[i.array]=`${s} ${a}`}function Pp(e,t,n){return typeof e=="string"?e:_.transform(t+n*e)}function CS(e,t,n){const r=Pp(t,e.x,e.width),o=Pp(n,e.y,e.height);return`${r} ${o}`}function sd(e,{attrX:t,attrY:n,attrScale:r,originX:o,originY:i,pathLength:s,pathSpacing:a=1,pathOffset:l=0,...u},c,d){if(rd(e,u,d),c){e.style.viewBox&&(e.attrs.viewBox=e.style.viewBox);return}e.attrs=e.style,e.style={};const{attrs:f,style:x,dimensions:w}=e;f.transform&&(w&&(x.transform=f.transform),delete f.transform),w&&(o!==void 0||i!==void 0||x.transform)&&(x.transformOrigin=CS(w,o!==void 0?o:.5,i!==void 0?i:.5)),t!==void 0&&(f.x=t),n!==void 0&&(f.y=n),r!==void 0&&(f.scale=r),s!==void 0&&wS(f,s,a,l,!1)}const Kv=()=>({...od(),attrs:{}}),ad=e=>typeof e=="string"&&e.toLowerCase()==="svg";function SS(e,t,n,r){const o=y.useMemo(()=>{const i=Kv();return sd(i,t,ad(r),e.transformTemplate),{...i.attrs,style:{...i.style}}},[t]);if(e.style){const i={};Hv(i,e.style,e),o.style={...i,...o.style}}return o}function ES(e=!1){return(n,r,o,{latestValues:i},s)=>{const l=(id(n)?SS:gS)(r,i,s,n),u=HC(r,typeof n=="string",e),c=n!==y.Fragment?{...u,...l,ref:o}:{},{children:d}=r,f=y.useMemo(()=>Le(d)?d.get():d,[d]);return y.createElement(n,{...c,children:f})}}function Tp(e){const t=[{},{}];return e==null||e.values.forEach((n,r)=>{t[0][r]=n.get(),t[1][r]=n.getVelocity()}),t}function ld(e,t,n,r){if(typeof t=="function"){const[o,i]=Tp(r);t=t(n!==void 0?n:e.custom,o,i)}if(typeof t=="string"&&(t=e.variants&&e.variants[t]),typeof t=="function"){const[o,i]=Tp(r);t=t(n!==void 0?n:e.custom,o,i)}return t}const hu=e=>Array.isArray(e),kS=e=>!!(e&&typeof e=="object"&&e.mix&&e.toValue),PS=e=>hu(e)?e[e.length-1]||0:e;function as(e){const t=Le(e)?e.get():e;return kS(t)?t.toValue():t}function TS({scrapeMotionValuesFromProps:e,createRenderState:t,onUpdate:n},r,o,i){const s={latestValues:NS(r,o,i,e),renderState:t()};return n&&(s.onMount=a=>n({props:r,current:a,...s}),s.onUpdate=a=>n(a)),s}const Gv=e=>(t,n)=>{const r=y.useContext(ca),o=y.useContext(zc),i=()=>TS(e,t,r,o);return n?i():CC(i)};function NS(e,t,n,r){const o={},i=r(e,{});for(const f in i)o[f]=as(i[f]);let{initial:s,animate:a}=e;const l=fa(e),u=Vv(e);t&&u&&!l&&e.inherit!==!1&&(s===void 0&&(s=t.initial),a===void 0&&(a=t.animate));let c=n?n.initial===!1:!1;c=c||s===!1;const d=c?a:s;if(d&&typeof d!="boolean"&&!da(d)){const f=Array.isArray(d)?d:[d];for(let x=0;x {if(!n)return;let i=!!e.drag;if(!i){for(const a in o)if(or.has(a)){i=!0;break}}if(!i)return;let s=!t;if(t)for(let a=0;a {Yv(n,r),Y.render(()=>{sd(r,o,ad(n.tagName),e.transformTemplate),Zv(n,r)})})}})};function RS(e,t){return function(r,{forwardMotionProps:o}={forwardMotionProps:!1}){const s={...id(r)?MS:bS,preloadedFeatures:e,useRender:ES(o),createVisualElement:t,Component:r};return eS(s)}}function oi(e,t,n){const r=e.getProps();return ld(r,t,n!==void 0?n:r.custom,e)}const Jv=new Set(["width","height","top","left","right","bottom",...Qr]);function AS(e,t,n){e.hasValue(t)?e.getValue(t).set(n):e.addValue(t,ei(n))}function jS(e,t){const n=oi(e,t);let{transitionEnd:r={},transition:o={},...i}=n||{};i={...i,...r};for(const s in i){const a=PS(i[s]);AS(e,s,a)}}function LS(e){return!!(Le(e)&&e.add)}function mu(e,t){const n=e.getValue("willChange");if(LS(n))return n.add(t);if(!n&&fu.WillChange){const r=new fu.WillChange("auto");e.addValue("willChange",r),r.add(t)}}function ey(e){return e.props[Fv]}const ty=(e,t,n)=>(((1-3*n+3*t)*e+(3*n-6*t))*e+3*t)*e,DS=1e-7,IS=12;function OS(e,t,n,r,o){let i,s,a=0;do s=t+(n-t)/2,i=ty(s,r,o)-e,i>0?n=s:t=s;while(Math.abs(i)>DS&&++a OS(i,0,1,e,n);return i=>i===0||i===1?i:ty(o(i),t,r)}const ny=e=>t=>t<=.5?e(2*t)/2:(2-e(2*(1-t)))/2,ry=e=>t=>1-e(1-t),oy=vi(.33,1.53,.69,.99),cd=ry(oy),iy=ny(cd),sy=e=>(e*=2)<1?.5*cd(e):.5*(2-Math.pow(2,-10*(e-1))),dd=e=>1-Math.sin(Math.acos(e)),ay=ry(dd),ly=ny(dd),uy=e=>/^0[^.\s]+$/u.test(e);function _S(e){return typeof e=="number"?e===0:e!==null?e==="none"||e==="0"||uy(e):!0}const Mo=e=>Math.round(e*1e5)/1e5,fd=/-?(?:\d+(?:\.\d+)?|\.\d+)/gu;function VS(e){return e==null}const FS=/^(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))$/iu,pd=(e,t)=>n=>!!(typeof n=="string"&&FS.test(n)&&n.startsWith(e)||t&&!VS(n)&&Object.prototype.hasOwnProperty.call(n,t)),cy=(e,t,n)=>r=>{if(typeof r!="string")return r;const[o,i,s,a]=r.match(fd);return{[e]:parseFloat(o),[t]:parseFloat(i),[n]:parseFloat(s),alpha:a!==void 0?parseFloat(a):1}},zS=e=>Zt(0,255,e),Ja={...Xr,transform:e=>Math.round(zS(e))},$n={test:pd("rgb","red"),parse:cy("red","green","blue"),transform:({red:e,green:t,blue:n,alpha:r=1})=>"rgba("+Ja.transform(e)+", "+Ja.transform(t)+", "+Ja.transform(n)+", "+Mo(ri.transform(r))+")"};function BS(e){let t="",n="",r="",o="";return e.length>5?(t=e.substring(1,3),n=e.substring(3,5),r=e.substring(5,7),o=e.substring(7,9)):(t=e.substring(1,2),n=e.substring(2,3),r=e.substring(3,4),o=e.substring(4,5),t+=t,n+=n,r+=r,o+=o),{red:parseInt(t,16),green:parseInt(n,16),blue:parseInt(r,16),alpha:o?parseInt(o,16)/255:1}}const gu={test:pd("#"),parse:BS,transform:$n.transform},Er={test:pd("hsl","hue"),parse:cy("hue","saturation","lightness"),transform:({hue:e,saturation:t,lightness:n,alpha:r=1})=>"hsla("+Math.round(e)+", "+_t.transform(Mo(t))+", "+_t.transform(Mo(n))+", "+Mo(ri.transform(r))+")"},Ae={test:e=>$n.test(e)||gu.test(e)||Er.test(e),parse:e=>$n.test(e)?$n.parse(e):Er.test(e)?Er.parse(e):gu.parse(e),transform:e=>typeof e=="string"?e:e.hasOwnProperty("red")?$n.transform(e):Er.transform(e)},$S=/(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))/giu;function US(e){var t,n;return isNaN(e)&&typeof e=="string"&&(((t=e.match(fd))==null?void 0:t.length)||0)+(((n=e.match($S))==null?void 0:n.length)||0)>0}const dy="number",fy="color",WS="var",HS="var(",bp="${}",KS=/var\s*\(\s*--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)|#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\)|-?(?:\d+(?:\.\d+)?|\.\d+)/giu;function ii(e){const t=e.toString(),n=[],r={color:[],number:[],var:[]},o=[];let i=0;const a=t.replace(KS,l=>(Ae.test(l)?(r.color.push(i),o.push(fy),n.push(Ae.parse(l))):l.startsWith(HS)?(r.var.push(i),o.push(WS),n.push(l)):(r.number.push(i),o.push(dy),n.push(parseFloat(l))),++i,bp)).split(bp);return{values:n,split:a,indexes:r,types:o}}function py(e){return ii(e).values}function hy(e){const{split:t,types:n}=ii(e),r=t.length;return o=>{let i="";for(let s=0;s typeof e=="number"?0:e;function YS(e){const t=py(e);return hy(e)(t.map(GS))}const Pn={test:US,parse:py,createTransformer:hy,getAnimatableNone:YS},QS=new Set(["brightness","contrast","saturate","opacity"]);function XS(e){const[t,n]=e.slice(0,-1).split("(");if(t==="drop-shadow")return e;const[r]=n.match(fd)||[];if(!r)return e;const o=n.replace(r,"");let i=QS.has(t)?1:0;return r!==n&&(i*=100),t+"("+i+o+")"}const ZS=/\b([a-z-]*)\(.*?\)/gu,vu={...Pn,getAnimatableNone:e=>{const t=e.match(ZS);return t?t.map(XS).join(" "):e}},qS={...nd,color:Ae,backgroundColor:Ae,outlineColor:Ae,fill:Ae,stroke:Ae,borderColor:Ae,borderTopColor:Ae,borderRightColor:Ae,borderBottomColor:Ae,borderLeftColor:Ae,filter:vu,WebkitFilter:vu},my=e=>qS[e];function gy(e,t){let n=my(e);return n!==vu&&(n=Pn),n.getAnimatableNone?n.getAnimatableNone(t):void 0}const JS=new Set(["auto","none","0"]);function eE(e,t,n){let r=0,o;for(;r e*180/Math.PI,yu=e=>{const t=Un(Math.atan2(e[1],e[0]));return xu(t)},tE={x:4,y:5,translateX:4,translateY:5,scaleX:0,scaleY:3,scale:e=>(Math.abs(e[0])+Math.abs(e[3]))/2,rotate:yu,rotateZ:yu,skewX:e=>Un(Math.atan(e[1])),skewY:e=>Un(Math.atan(e[2])),skew:e=>(Math.abs(e[1])+Math.abs(e[2]))/2},xu=e=>(e=e%360,e<0&&(e+=360),e),Mp=yu,Rp=e=>Math.sqrt(e[0]*e[0]+e[1]*e[1]),Ap=e=>Math.sqrt(e[4]*e[4]+e[5]*e[5]),nE={x:12,y:13,z:14,translateX:12,translateY:13,translateZ:14,scaleX:Rp,scaleY:Ap,scale:e=>(Rp(e)+Ap(e))/2,rotateX:e=>xu(Un(Math.atan2(e[6],e[5]))),rotateY:e=>xu(Un(Math.atan2(-e[2],e[0]))),rotateZ:Mp,rotate:Mp,skewX:e=>Un(Math.atan(e[4])),skewY:e=>Un(Math.atan(e[1])),skew:e=>(Math.abs(e[1])+Math.abs(e[4]))/2};function jp(e){return e.includes("scale")?1:0}function wu(e,t){if(!e||e==="none")return jp(t);const n=e.match(/^matrix3d\(([-\d.e\s,]+)\)$/u);let r,o;if(n)r=nE,o=n;else{const a=e.match(/^matrix\(([-\d.e\s,]+)\)$/u);r=tE,o=a}if(!o)return jp(t);const i=r[t],s=o[1].split(",").map(oE);return typeof i=="function"?i(s):s[i]}const rE=(e,t)=>{const{transform:n="none"}=getComputedStyle(e);return wu(n,t)};function oE(e){return parseFloat(e.trim())}const Lp=e=>e===Xr||e===_,iE=new Set(["x","y","z"]),sE=Qr.filter(e=>!iE.has(e));function aE(e){const t=[];return sE.forEach(n=>{const r=e.getValue(n);r!==void 0&&(t.push([n,r.get()]),r.set(n.startsWith("scale")?1:0))}),t}const Ur={width:({x:e},{paddingLeft:t="0",paddingRight:n="0"})=>e.max-e.min-parseFloat(t)-parseFloat(n),height:({y:e},{paddingTop:t="0",paddingBottom:n="0"})=>e.max-e.min-parseFloat(t)-parseFloat(n),top:(e,{top:t})=>parseFloat(t),left:(e,{left:t})=>parseFloat(t),bottom:({y:e},{top:t})=>parseFloat(t)+(e.max-e.min),right:({x:e},{left:t})=>parseFloat(t)+(e.max-e.min),x:(e,{transform:t})=>wu(t,"x"),y:(e,{transform:t})=>wu(t,"y")};Ur.translateX=Ur.x;Ur.translateY=Ur.y;const Kn=new Set;let Cu=!1,Su=!1;function vy(){if(Su){const e=Array.from(Kn).filter(r=>r.needsMeasurement),t=new Set(e.map(r=>r.element)),n=new Map;t.forEach(r=>{const o=aE(r);o.length&&(n.set(r,o),r.render())}),e.forEach(r=>r.measureInitialState()),t.forEach(r=>{r.render();const o=n.get(r);o&&o.forEach(([i,s])=>{var a;(a=r.getValue(i))==null||a.set(s)})}),e.forEach(r=>r.measureEndState()),e.forEach(r=>{r.suspendedScrollY!==void 0&&window.scrollTo(0,r.suspendedScrollY)})}Su=!1,Cu=!1,Kn.forEach(e=>e.complete()),Kn.clear()}function yy(){Kn.forEach(e=>{e.readKeyframes(),e.needsMeasurement&&(Su=!0)})}function lE(){yy(),vy()}class hd{constructor(t,n,r,o,i,s=!1){this.isComplete=!1,this.isAsync=!1,this.needsMeasurement=!1,this.isScheduled=!1,this.unresolvedKeyframes=[...t],this.onComplete=n,this.name=r,this.motionValue=o,this.element=i,this.isAsync=s}scheduleResolve(){this.isScheduled=!0,this.isAsync?(Kn.add(this),Cu||(Cu=!0,Y.read(yy),Y.resolveKeyframes(vy))):(this.readKeyframes(),this.complete())}readKeyframes(){const{unresolvedKeyframes:t,name:n,element:r,motionValue:o}=this;for(let i=0;i /^-?(?:\d+(?:\.\d+)?|\.\d+)$/u.test(e),uE=/^var\(--(?:([\w-]+)|([\w-]+), ?([a-zA-Z\d ()%#.,-]+))\)/u;function cE(e){const t=uE.exec(e);if(!t)return[,];const[,n,r,o]=t;return[`--${n??r}`,o]}function wy(e,t,n=1){const[r,o]=cE(e);if(!r)return;const i=window.getComputedStyle(t).getPropertyValue(r);if(i){const s=i.trim();return xy(s)?parseFloat(s):s}return td(o)?wy(o,t,n+1):o}const Cy=e=>t=>t.test(e),dE={test:e=>e==="auto",parse:e=>e},Sy=[Xr,_,_t,sn,lS,aS,dE],Dp=e=>Sy.find(Cy(e));class Ey extends hd{constructor(t,n,r,o,i){super(t,n,r,o,i,!0)}readKeyframes(){const{unresolvedKeyframes:t,element:n,name:r}=this;if(!n||!n.current)return;super.readKeyframes();for(let l=0;l {t.getValue(l).set(u)}),this.resolveNoneKeyframes()}}const Ip=(e,t)=>t==="zIndex"?!1:!!(typeof e=="number"||Array.isArray(e)||typeof e=="string"&&(Pn.test(e)||e==="0")&&!e.startsWith("url("));function fE(e){const t=e[0];if(e.length===1)return!0;for(let n=0;n e!==null;function pa(e,{repeat:t,repeatType:n="loop"},r){const o=e.filter(hE),i=t&&n!=="loop"&&t%2===1?0:o.length-1;return!i||r===void 0?o[i]:r}const mE=40;class ky{constructor({autoplay:t=!0,delay:n=0,type:r="keyframes",repeat:o=0,repeatDelay:i=0,repeatType:s="loop",...a}){this.isStopped=!1,this.hasAttemptedResolve=!1,this.createdAt=Ot.now(),this.options={autoplay:t,delay:n,type:r,repeat:o,repeatDelay:i,repeatType:s,...a},this.updateFinishedPromise()}calcStartTime(){return this.resolvedAt?this.resolvedAt-this.createdAt>mE?this.resolvedAt:this.createdAt:this.createdAt}get resolved(){return!this._resolved&&!this.hasAttemptedResolve&&lE(),this._resolved}onKeyframesResolved(t,n){this.resolvedAt=Ot.now(),this.hasAttemptedResolve=!0;const{name:r,type:o,velocity:i,delay:s,onComplete:a,onUpdate:l,isGenerator:u}=this.options;if(!u&&!pE(t,r,o,i))if(s)this.options.duration=0;else{l&&l(pa(t,this.options,n)),a&&a(),this.resolveFinishedPromise();return}const c=this.initPlayback(t,n);c!==!1&&(this._resolved={keyframes:t,finalKeyframe:n,...c},this.onPostResolved())}onPostResolved(){}then(t,n){return this.currentFinishedPromise.then(t,n)}flatten(){this.options.allowFlatten&&(this.options.type="keyframes",this.options.ease="linear")}updateFinishedPromise(){this.currentFinishedPromise=new Promise(t=>{this.resolveFinishedPromise=t})}}const oe=(e,t,n)=>e+(t-e)*n;function el(e,t,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?e+(t-e)*6*n:n<1/2?t:n<2/3?e+(t-e)*(2/3-n)*6:e}function gE({hue:e,saturation:t,lightness:n,alpha:r}){e/=360,t/=100,n/=100;let o=0,i=0,s=0;if(!t)o=i=s=n;else{const a=n<.5?n*(1+t):n+t-n*t,l=2*n-a;o=el(l,a,e+1/3),i=el(l,a,e),s=el(l,a,e-1/3)}return{red:Math.round(o*255),green:Math.round(i*255),blue:Math.round(s*255),alpha:r}}function Vs(e,t){return n=>n>0?t:e}const tl=(e,t,n)=>{const r=e*e,o=n*(t*t-r)+r;return o<0?0:Math.sqrt(o)},vE=[gu,$n,Er],yE=e=>vE.find(t=>t.test(e));function Op(e){const t=yE(e);if(!t)return!1;let n=t.parse(e);return t===Er&&(n=gE(n)),n}const _p=(e,t)=>{const n=Op(e),r=Op(t);if(!n||!r)return Vs(e,t);const o={...n};return i=>(o.red=tl(n.red,r.red,i),o.green=tl(n.green,r.green,i),o.blue=tl(n.blue,r.blue,i),o.alpha=oe(n.alpha,r.alpha,i),$n.transform(o))},xE=(e,t)=>n=>t(e(n)),yi=(...e)=>e.reduce(xE),Eu=new Set(["none","hidden"]);function wE(e,t){return Eu.has(e)?n=>n<=0?e:t:n=>n>=1?t:e}function CE(e,t){return n=>oe(e,t,n)}function md(e){return typeof e=="number"?CE:typeof e=="string"?td(e)?Vs:Ae.test(e)?_p:kE:Array.isArray(e)?Py:typeof e=="object"?Ae.test(e)?_p:SE:Vs}function Py(e,t){const n=[...e],r=n.length,o=e.map((i,s)=>md(i)(i,t[s]));return i=>{for(let s=0;s {for(const i in r)n[i]=r[i](o);return n}}function EE(e,t){const n=[],r={color:0,var:0,number:0};for(let o=0;o {const n=Pn.createTransformer(t),r=ii(e),o=ii(t);return r.indexes.var.length===o.indexes.var.length&&r.indexes.color.length===o.indexes.color.length&&r.indexes.number.length>=o.indexes.number.length?Eu.has(e)&&!o.values.length||Eu.has(t)&&!r.values.length?wE(e,t):yi(Py(EE(r,o),o.values),n):Vs(e,t)};function Ty(e,t,n){return typeof e=="number"&&typeof t=="number"&&typeof n=="number"?oe(e,t,n):md(e)(e,t)}const PE=5;function Ny(e,t,n){const r=Math.max(t-PE,0);return Nv(n-e(r),t-r)}const le={stiffness:100,damping:10,mass:1,velocity:0,duration:800,bounce:.3,visualDuration:.3,restSpeed:{granular:.01,default:2},restDelta:{granular:.005,default:.5},minDuration:.01,maxDuration:10,minDamping:.05,maxDamping:1},nl=.001;function TE({duration:e=le.duration,bounce:t=le.bounce,velocity:n=le.velocity,mass:r=le.mass}){let o,i,s=1-t;s=Zt(le.minDamping,le.maxDamping,s),e=Zt(le.minDuration,le.maxDuration,It(e)),s<1?(o=u=>{const c=u*s,d=c*e,f=c-n,x=ku(u,s),w=Math.exp(-d);return nl-f/x*w},i=u=>{const d=u*s*e,f=d*n+n,x=Math.pow(s,2)*Math.pow(u,2)*e,w=Math.exp(-d),g=ku(Math.pow(u,2),s);return(-o(u)+nl>0?-1:1)*((f-x)*w)/g}):(o=u=>{const c=Math.exp(-u*e),d=(u-n)*e+1;return-nl+c*d},i=u=>{const c=Math.exp(-u*e),d=(n-u)*(e*e);return c*d});const a=5/e,l=bE(o,i,a);if(e=Dt(e),isNaN(l))return{stiffness:le.stiffness,damping:le.damping,duration:e};{const u=Math.pow(l,2)*r;return{stiffness:u,damping:s*2*Math.sqrt(r*u),duration:e}}}const NE=12;function bE(e,t,n){let r=n;for(let o=1;o e[n]!==void 0)}function AE(e){let t={velocity:le.velocity,stiffness:le.stiffness,damping:le.damping,mass:le.mass,isResolvedFromDuration:!1,...e};if(!Vp(e,RE)&&Vp(e,ME))if(e.visualDuration){const n=e.visualDuration,r=2*Math.PI/(n*1.2),o=r*r,i=2*Zt(.05,1,1-(e.bounce||0))*Math.sqrt(o);t={...t,mass:le.mass,stiffness:o,damping:i}}else{const n=TE(e);t={...t,...n,mass:le.mass},t.isResolvedFromDuration=!0}return t}function Fs(e=le.visualDuration,t=le.bounce){const n=typeof e!="object"?{visualDuration:e,keyframes:[0,1],bounce:t}:e;let{restSpeed:r,restDelta:o}=n;const i=n.keyframes[0],s=n.keyframes[n.keyframes.length-1],a={done:!1,value:i},{stiffness:l,damping:u,mass:c,duration:d,velocity:f,isResolvedFromDuration:x}=AE({...n,velocity:-It(n.velocity||0)}),w=f||0,g=u/(2*Math.sqrt(l*c)),C=s-i,p=It(Math.sqrt(l/c)),m=Math.abs(C)<5;r||(r=m?le.restSpeed.granular:le.restSpeed.default),o||(o=m?le.restDelta.granular:le.restDelta.default);let v;if(g<1){const E=ku(p,g);v=P=>{const k=Math.exp(-g*p*P);return s-k*((w+g*p*C)/E*Math.sin(E*P)+C*Math.cos(E*P))}}else if(g===1)v=E=>s-Math.exp(-p*E)*(C+(w+p*C)*E);else{const E=p*Math.sqrt(g*g-1);v=P=>{const k=Math.exp(-g*p*P),T=Math.min(E*P,300);return s-k*((w+g*p*C)*Math.sinh(T)+E*C*Math.cosh(T))/E}}const S={calculatedDuration:x&&d||null,next:E=>{const P=v(E);if(x)a.done=E>=d;else{let k=0;g<1&&(k=E===0?Dt(w):Ny(v,E,P));const T=Math.abs(k)<=r,N=Math.abs(s-P)<=o;a.done=T&&N}return a.value=a.done?s:P,a},toString:()=>{const E=Math.min(Yc(S),Os),P=bv(k=>S.next(E*k).value,E,30);return E+"ms "+P},toTransition:()=>{}};return S}Fs.applyToOptions=e=>{const t=RC(e,100,Fs);return e.ease=Jo()?t.ease:"easeOut",e.duration=Dt(t.duration),e.type="keyframes",e};function Fp({keyframes:e,velocity:t=0,power:n=.8,timeConstant:r=325,bounceDamping:o=10,bounceStiffness:i=500,modifyTarget:s,min:a,max:l,restDelta:u=.5,restSpeed:c}){const d=e[0],f={done:!1,value:d},x=T=>a!==void 0&&Tl,w=T=>a===void 0?l:l===void 0||Math.abs(a-T) -g*Math.exp(-T/r),v=T=>p+m(T),S=T=>{const N=m(T),M=v(T);f.done=Math.abs(N)<=u,f.value=f.done?p:M};let E,P;const k=T=>{x(f.value)&&(E=T,P=Fs({keyframes:[f.value,w(f.value)],velocity:Ny(v,T,f.value),damping:o,stiffness:i,restDelta:u,restSpeed:c}))};return k(0),{calculatedDuration:null,next:T=>{let N=!1;return!P&&E===void 0&&(N=!0,S(T),k(T)),E!==void 0&&T>=E?P.next(T-E):(!N&&S(T),f)}}}const jE=vi(.42,0,1,1),LE=vi(0,0,.58,1),by=vi(.42,0,.58,1),DE=e=>Array.isArray(e)&&typeof e[0]!="number",zp={linear:ut,easeIn:jE,easeInOut:by,easeOut:LE,circIn:dd,circInOut:ly,circOut:ay,backIn:cd,backInOut:iy,backOut:oy,anticipate:sy},Bp=e=>{if(Hc(e)){du(e.length===4);const[t,n,r,o]=e;return vi(t,n,r,o)}else if(typeof e=="string")return du(zp[e]!==void 0),zp[e];return e};function IE(e,t,n){const r=[],o=n||Ty,i=e.length-1;for(let s=0;st[0];if(i===2&&t[0]===t[1])return()=>t[1];const s=e[0]===e[1];e[0]>e[i-1]&&(e=[...e].reverse(),t=[...t].reverse());const a=IE(t,r,o),l=a.length,u=c=>{if(s&&c 1)for(;d u(Zt(e[0],e[i-1],c)):u}function _E(e,t){const n=e[e.length-1];for(let r=1;r<=t;r++){const o=qo(0,t,r);e.push(oe(n,1,o))}}function VE(e){const t=[0];return _E(t,e.length-1),t}function FE(e,t){return e.map(n=>n*t)}function zE(e,t){return e.map(()=>t||by).splice(0,e.length-1)}function zs({duration:e=300,keyframes:t,times:n,ease:r="easeInOut"}){const o=DE(r)?r.map(Bp):Bp(r),i={done:!1,value:t[0]},s=FE(n&&n.length===t.length?n:VE(t),e),a=OE(s,t,{ease:Array.isArray(o)?o:zE(t,o)});return{calculatedDuration:e,next:l=>(i.value=a(l),i.done=l>=e,i)}}const BE=e=>{const t=({timestamp:n})=>e(n);return{start:()=>Y.update(t,!0),stop:()=>kn(t),now:()=>Pe.isProcessing?Pe.timestamp:Ot.now()}},$E={decay:Fp,inertia:Fp,tween:zs,keyframes:zs,spring:Fs},UE=e=>e/100;class gd extends ky{constructor(t){super(t),this.holdTime=null,this.cancelTime=null,this.currentTime=0,this.playbackSpeed=1,this.pendingPlayState="running",this.startTime=null,this.state="idle",this.stop=()=>{if(this.resolver.cancel(),this.isStopped=!0,this.state==="idle")return;this.teardown();const{onStop:l}=this.options;l&&l()};const{name:n,motionValue:r,element:o,keyframes:i}=this.options,s=(o==null?void 0:o.KeyframeResolver)||hd,a=(l,u)=>this.onKeyframesResolved(l,u);this.resolver=new s(i,a,n,r,o),this.resolver.scheduleResolve()}flatten(){super.flatten(),this._resolved&&Object.assign(this._resolved,this.initPlayback(this._resolved.keyframes))}initPlayback(t){const{type:n="keyframes",repeat:r=0,repeatDelay:o=0,repeatType:i,velocity:s=0}=this.options,a=Kc(n)?n:$E[n]||zs;let l,u;a!==zs&&typeof t[0]!="number"&&(l=yi(UE,Ty(t[0],t[1])),t=[0,100]);const c=a({...this.options,keyframes:t});i==="mirror"&&(u=a({...this.options,keyframes:[...t].reverse(),velocity:-s})),c.calculatedDuration===null&&(c.calculatedDuration=Yc(c));const{calculatedDuration:d}=c,f=d+o,x=f*(r+1)-o;return{generator:c,mirroredGenerator:u,mapPercentToKeyframes:l,calculatedDuration:d,resolvedDuration:f,totalDuration:x}}onPostResolved(){const{autoplay:t=!0}=this.options;this.play(),this.pendingPlayState==="paused"||!t?this.pause():this.state=this.pendingPlayState}tick(t,n=!1){const{resolved:r}=this;if(!r){const{keyframes:T}=this.options;return{done:!0,value:T[T.length-1]}}const{finalKeyframe:o,generator:i,mirroredGenerator:s,mapPercentToKeyframes:a,keyframes:l,calculatedDuration:u,totalDuration:c,resolvedDuration:d}=r;if(this.startTime===null)return i.next(0);const{delay:f,repeat:x,repeatType:w,repeatDelay:g,onUpdate:C}=this.options;this.speed>0?this.startTime=Math.min(this.startTime,t):this.speed<0&&(this.startTime=Math.min(t-c/this.speed,this.startTime)),n?this.currentTime=t:this.holdTime!==null?this.currentTime=this.holdTime:this.currentTime=Math.round(t-this.startTime)*this.speed;const p=this.currentTime-f*(this.speed>=0?1:-1),m=this.speed>=0?p<0:p>c;this.currentTime=Math.max(p,0),this.state==="finished"&&this.holdTime===null&&(this.currentTime=c);let v=this.currentTime,S=i;if(x){const T=Math.min(this.currentTime,c)/d;let N=Math.floor(T),M=T%1;!M&&T>=1&&(M=1),M===1&&N--,N=Math.min(N,x+1),!!(N%2)&&(w==="reverse"?(M=1-M,g&&(M-=g/d)):w==="mirror"&&(S=s)),v=Zt(0,1,M)*d}const E=m?{done:!1,value:l[0]}:S.next(v);a&&(E.value=a(E.value));let{done:P}=E;!m&&u!==null&&(P=this.speed>=0?this.currentTime>=c:this.currentTime<=0);const k=this.holdTime===null&&(this.state==="finished"||this.state==="running"&&P);return k&&o!==void 0&&(E.value=pa(l,this.options,o)),C&&C(E.value),k&&this.finish(),E}get duration(){const{resolved:t}=this;return t?It(t.calculatedDuration):0}get time(){return It(this.currentTime)}set time(t){t=Dt(t),this.currentTime=t,this.holdTime!==null||this.speed===0?this.holdTime=t:this.driver&&(this.startTime=this.driver.now()-t/this.speed)}get speed(){return this.playbackSpeed}set speed(t){const n=this.playbackSpeed!==t;this.playbackSpeed=t,n&&(this.time=It(this.currentTime))}play(){if(this.resolver.isScheduled||this.resolver.resume(),!this._resolved){this.pendingPlayState="running";return}if(this.isStopped)return;const{driver:t=BE,onPlay:n,startTime:r}=this.options;this.driver||(this.driver=t(i=>this.tick(i))),n&&n();const o=this.driver.now();this.holdTime!==null?this.startTime=o-this.holdTime:this.startTime?this.state==="finished"&&(this.startTime=o):this.startTime=r??this.calcStartTime(),this.state==="finished"&&this.updateFinishedPromise(),this.cancelTime=this.startTime,this.holdTime=null,this.state="running",this.driver.start()}pause(){if(!this._resolved){this.pendingPlayState="paused";return}this.state="paused",this.holdTime=this.currentTime??0}complete(){this.state!=="running"&&this.play(),this.pendingPlayState=this.state="finished",this.holdTime=null}finish(){this.teardown(),this.state="finished";const{onComplete:t}=this.options;t&&t()}cancel(){this.cancelTime!==null&&this.tick(this.cancelTime),this.teardown(),this.updateFinishedPromise()}teardown(){this.state="idle",this.stopDriver(),this.resolveFinishedPromise(),this.updateFinishedPromise(),this.startTime=this.cancelTime=null,this.resolver.cancel()}stopDriver(){this.driver&&(this.driver.stop(),this.driver=void 0)}sample(t){return this.startTime=0,this.tick(t,!0)}get finished(){return this.currentFinishedPromise}}const WE=new Set(["opacity","clipPath","filter","transform"]),HE=Uc(()=>Object.hasOwnProperty.call(Element.prototype,"animate")),Bs=10,KE=2e4;function GE(e){return Kc(e.type)||e.type==="spring"||!Rv(e.ease)}function YE(e,t){const n=new gd({...t,keyframes:e,repeat:0,delay:0,isGenerator:!0});let r={done:!1,value:e[0]};const o=[];let i=0;for(;!r.done&&i this.onKeyframesResolved(s,a),n,r,o),this.resolver.scheduleResolve()}initPlayback(t,n){let{duration:r=300,times:o,ease:i,type:s,motionValue:a,name:l,startTime:u}=this.options;if(!a.owner||!a.owner.current)return!1;if(typeof i=="string"&&Jo()&&QE(i)&&(i=My[i]),GE(this.options)){const{onComplete:d,onUpdate:f,motionValue:x,element:w,...g}=this.options,C=YE(t,g);t=C.keyframes,t.length===1&&(t[1]=t[0]),r=C.duration,o=C.times,i=C.ease,s="keyframes"}const c=MC(a.owner.current,l,t,{...this.options,duration:r,times:o,ease:i});return c.startTime=u??this.calcStartTime(),this.pendingTimeline?(gp(c,this.pendingTimeline),this.pendingTimeline=void 0):c.onfinish=()=>{const{onComplete:d}=this.options;a.set(pa(t,this.options,n)),d&&d(),this.cancel(),this.resolveFinishedPromise()},{animation:c,duration:r,times:o,type:s,ease:i,keyframes:t}}get duration(){const{resolved:t}=this;if(!t)return 0;const{duration:n}=t;return It(n)}get time(){const{resolved:t}=this;if(!t)return 0;const{animation:n}=t;return It(n.currentTime||0)}set time(t){const{resolved:n}=this;if(!n)return;const{animation:r}=n;r.currentTime=Dt(t)}get speed(){const{resolved:t}=this;if(!t)return 1;const{animation:n}=t;return n.playbackRate}get finished(){return this.resolved.animation.finished}set speed(t){const{resolved:n}=this;if(!n)return;const{animation:r}=n;r.playbackRate=t}get state(){const{resolved:t}=this;if(!t)return"idle";const{animation:n}=t;return n.playState}get startTime(){const{resolved:t}=this;if(!t)return null;const{animation:n}=t;return n.startTime}attachTimeline(t){if(!this._resolved)this.pendingTimeline=t;else{const{resolved:n}=this;if(!n)return ut;const{animation:r}=n;gp(r,t)}return ut}play(){if(this.isStopped)return;const{resolved:t}=this;if(!t)return;const{animation:n}=t;n.playState==="finished"&&this.updateFinishedPromise(),n.play()}pause(){const{resolved:t}=this;if(!t)return;const{animation:n}=t;n.pause()}stop(){if(this.resolver.cancel(),this.isStopped=!0,this.state==="idle")return;this.resolveFinishedPromise(),this.updateFinishedPromise();const{resolved:t}=this;if(!t)return;const{animation:n,keyframes:r,duration:o,type:i,ease:s,times:a}=t;if(n.playState==="idle"||n.playState==="finished")return;if(this.time){const{motionValue:u,onUpdate:c,onComplete:d,element:f,...x}=this.options,w=new gd({...x,keyframes:r,duration:o,type:i,ease:s,times:a,isGenerator:!0}),g=Dt(this.time);u.setWithVelocity(w.sample(g-Bs).value,w.sample(g).value,Bs)}const{onStop:l}=this.options;l&&l(),this.cancel()}complete(){const{resolved:t}=this;t&&t.animation.finish()}cancel(){const{resolved:t}=this;t&&t.animation.cancel()}static supports(t){const{motionValue:n,name:r,repeatDelay:o,repeatType:i,damping:s,type:a}=t;if(!n||!n.owner||!(n.owner.current instanceof HTMLElement))return!1;const{onUpdate:l,transformTemplate:u}=n.owner.getProps();return HE()&&r&&WE.has(r)&&(r!=="transform"||!u)&&!l&&!o&&i!=="mirror"&&s!==0&&a!=="inertia"}}const XE={type:"spring",stiffness:500,damping:25,restSpeed:10},ZE=e=>({type:"spring",stiffness:550,damping:e===0?2*Math.sqrt(550):30,restSpeed:10}),qE={type:"keyframes",duration:.8},JE={type:"keyframes",ease:[.25,.1,.35,1],duration:.3},ek=(e,{keyframes:t})=>t.length>2?qE:or.has(e)?e.startsWith("scale")?ZE(t[1]):XE:JE;function tk({when:e,delay:t,delayChildren:n,staggerChildren:r,staggerDirection:o,repeat:i,repeatType:s,repeatDelay:a,from:l,elapsed:u,...c}){return!!Object.keys(c).length}const vd=(e,t,n,r={},o,i)=>s=>{const a=Gc(r,e)||{},l=a.delay||r.delay||0;let{elapsed:u=0}=r;u=u-Dt(l);let c={keyframes:Array.isArray(n)?n:[null,n],ease:"easeOut",velocity:t.getVelocity(),...a,delay:-u,onUpdate:f=>{t.set(f),a.onUpdate&&a.onUpdate(f)},onComplete:()=>{s(),a.onComplete&&a.onComplete()},name:e,motionValue:t,element:i?void 0:o};tk(a)||(c={...c,...ek(e,c)}),c.duration&&(c.duration=Dt(c.duration)),c.repeatDelay&&(c.repeatDelay=Dt(c.repeatDelay)),c.from!==void 0&&(c.keyframes[0]=c.from);let d=!1;if((c.type===!1||c.duration===0&&!c.repeatDelay)&&(c.duration=0,c.delay===0&&(d=!0)),c.allowFlatten=!a.type&&!a.ease,d&&!i&&t.get()!==void 0){const f=pa(c.keyframes,a);if(f!==void 0)return Y.update(()=>{c.onUpdate(f),c.onComplete()}),new TC([])}return!i&&$p.supports(c)?new $p(c):new gd(c)};function nk({protectedKeys:e,needsAnimating:t},n){const r=e.hasOwnProperty(n)&&t[n]!==!0;return t[n]=!1,r}function Ry(e,t,{delay:n=0,transitionOverride:r,type:o}={}){let{transition:i=e.getDefaultTransition(),transitionEnd:s,...a}=t;r&&(i=r);const l=[],u=o&&e.animationState&&e.animationState.getState()[o];for(const c in a){const d=e.getValue(c,e.latestValues[c]??null),f=a[c];if(f===void 0||u&&nk(u,c))continue;const x={delay:n,...Gc(i||{},c)};let w=!1;if(window.MotionHandoffAnimation){const C=ey(e);if(C){const p=window.MotionHandoffAnimation(C,c,Y);p!==null&&(x.startTime=p,w=!0)}}mu(e,c),d.start(vd(c,d,f,e.shouldReduceMotion&&Jv.has(c)?{type:!1}:x,e,w));const g=d.animation;g&&l.push(g)}return s&&Promise.all(l).then(()=>{Y.update(()=>{s&&jS(e,s)})}),l}function Pu(e,t,n={}){var l;const r=oi(e,t,n.type==="exit"?(l=e.presenceContext)==null?void 0:l.custom:void 0);let{transition:o=e.getDefaultTransition()||{}}=r||{};n.transitionOverride&&(o=n.transitionOverride);const i=r?()=>Promise.all(Ry(e,r,n)):()=>Promise.resolve(),s=e.variantChildren&&e.variantChildren.size?(u=0)=>{const{delayChildren:c=0,staggerChildren:d,staggerDirection:f}=o;return rk(e,t,c+u,d,f,n)}:()=>Promise.resolve(),{when:a}=o;if(a){const[u,c]=a==="beforeChildren"?[i,s]:[s,i];return u().then(()=>c())}else return Promise.all([i(),s(n.delay)])}function rk(e,t,n=0,r=0,o=1,i){const s=[],a=(e.variantChildren.size-1)*r,l=o===1?(u=0)=>u*r:(u=0)=>a-u*r;return Array.from(e.variantChildren).sort(ok).forEach((u,c)=>{u.notify("AnimationStart",t),s.push(Pu(u,t,{...i,delay:n+l(c)}).then(()=>u.notify("AnimationComplete",t)))}),Promise.all(s)}function ok(e,t){return e.sortNodePosition(t)}function ik(e,t,n={}){e.notify("AnimationStart",t);let r;if(Array.isArray(t)){const o=t.map(i=>Pu(e,i,n));r=Promise.all(o)}else if(typeof t=="string")r=Pu(e,t,n);else{const o=typeof t=="function"?oi(e,t,n.custom):t;r=Promise.all(Ry(e,o,n))}return r.then(()=>{e.notify("AnimationComplete",t)})}function Ay(e,t){if(!Array.isArray(t))return!1;const n=t.length;if(n!==e.length)return!1;for(let r=0;r Promise.all(t.map(({animation:n,options:r})=>ik(e,n,r)))}function ck(e){let t=uk(e),n=Up(),r=!0;const o=l=>(u,c)=>{var f;const d=oi(e,c,l==="exit"?(f=e.presenceContext)==null?void 0:f.custom:void 0);if(d){const{transition:x,transitionEnd:w,...g}=d;u={...u,...g,...w}}return u};function i(l){t=l(e)}function s(l){const{props:u}=e,c=jy(e.parent)||{},d=[],f=new Set;let x={},w=1/0;for(let C=0;C w&&S,N=!1;const M=Array.isArray(v)?v:[v];let D=M.reduce(o(p),{});E===!1&&(D={});const{prevResolvedValues:O={}}=m,ce={...O,...D},de=U=>{T=!0,f.has(U)&&(N=!0,f.delete(U)),m.needsAnimating[U]=!0;const R=e.getValue(U);R&&(R.liveStyle=!1)};for(const U in ce){const R=D[U],j=O[U];if(x.hasOwnProperty(U))continue;let I=!1;hu(R)&&hu(j)?I=!Ay(R,j):I=R!==j,I?R!=null?de(U):f.add(U):R!==void 0&&f.has(U)?de(U):m.protectedKeys[U]=!0}m.prevProp=v,m.prevResolvedValues=D,m.isActive&&(x={...x,...D}),r&&e.blockInitialAnimation&&(T=!1),T&&(!(P&&k)||N)&&d.push(...M.map(U=>({animation:U,options:{type:p}})))}if(f.size){const C={};if(typeof u.initial!="boolean"){const p=oi(e,Array.isArray(u.initial)?u.initial[0]:u.initial);p&&p.transition&&(C.transition=p.transition)}f.forEach(p=>{const m=e.getBaseTarget(p),v=e.getValue(p);v&&(v.liveStyle=!0),C[p]=m??null}),d.push({animation:C})}let g=!!d.length;return r&&(u.initial===!1||u.initial===u.animate)&&!e.manuallyAnimateOnMount&&(g=!1),r=!1,g?t(d):Promise.resolve()}function a(l,u){var d;if(n[l].isActive===u)return Promise.resolve();(d=e.variantChildren)==null||d.forEach(f=>{var x;return(x=f.animationState)==null?void 0:x.setActive(l,u)}),n[l].isActive=u;const c=s(l);for(const f in n)n[f].protectedKeys={};return c}return{animateChanges:s,setActive:a,setAnimateFunction:i,getState:()=>n,reset:()=>{n=Up(),r=!0}}}function dk(e,t){return typeof t=="string"?t!==e:Array.isArray(t)?!Ay(t,e):!1}function In(e=!1){return{isActive:e,protectedKeys:{},needsAnimating:{},prevResolvedValues:{}}}function Up(){return{animate:In(!0),whileInView:In(),whileHover:In(),whileTap:In(),whileDrag:In(),whileFocus:In(),exit:In()}}class Mn{constructor(t){this.isMounted=!1,this.node=t}update(){}}class fk extends Mn{constructor(t){super(t),t.animationState||(t.animationState=ck(t))}updateAnimationControlsSubscription(){const{animate:t}=this.node.getProps();da(t)&&(this.unmountControls=t.subscribe(this.node))}mount(){this.updateAnimationControlsSubscription()}update(){const{animate:t}=this.node.getProps(),{animate:n}=this.node.prevProps||{};t!==n&&this.updateAnimationControlsSubscription()}unmount(){var t;this.node.animationState.reset(),(t=this.unmountControls)==null||t.call(this)}}let pk=0;class hk extends Mn{constructor(){super(...arguments),this.id=pk++}update(){if(!this.node.presenceContext)return;const{isPresent:t,onExitComplete:n}=this.node.presenceContext,{isPresent:r}=this.node.prevPresenceContext||{};if(!this.node.animationState||t===r)return;const o=this.node.animationState.setActive("exit",!t);n&&!t&&o.then(()=>{n(this.id)})}mount(){const{register:t,onExitComplete:n}=this.node.presenceContext||{};n&&n(this.id),t&&(this.unmount=t(this.id))}unmount(){}}const mk={animation:{Feature:fk},exit:{Feature:hk}};function si(e,t,n,r={passive:!0}){return e.addEventListener(t,n,r),()=>e.removeEventListener(t,n)}function xi(e){return{point:{x:e.pageX,y:e.pageY}}}const gk=e=>t=>Xc(t)&&e(t,xi(t));function Ro(e,t,n,r){return si(e,t,gk(n),r)}function Ly({top:e,left:t,right:n,bottom:r}){return{x:{min:t,max:n},y:{min:e,max:r}}}function vk({x:e,y:t}){return{top:t.min,right:e.max,bottom:t.max,left:e.min}}function yk(e,t){if(!t)return e;const n=t({x:e.left,y:e.top}),r=t({x:e.right,y:e.bottom});return{top:n.y,left:n.x,bottom:r.y,right:r.x}}const Dy=1e-4,xk=1-Dy,wk=1+Dy,Iy=.01,Ck=0-Iy,Sk=0+Iy;function ze(e){return e.max-e.min}function Ek(e,t,n){return Math.abs(e-t)<=n}function Wp(e,t,n,r=.5){e.origin=r,e.originPoint=oe(t.min,t.max,e.origin),e.scale=ze(n)/ze(t),e.translate=oe(n.min,n.max,e.origin)-e.originPoint,(e.scale>=xk&&e.scale<=wk||isNaN(e.scale))&&(e.scale=1),(e.translate>=Ck&&e.translate<=Sk||isNaN(e.translate))&&(e.translate=0)}function Ao(e,t,n,r){Wp(e.x,t.x,n.x,r?r.originX:void 0),Wp(e.y,t.y,n.y,r?r.originY:void 0)}function Hp(e,t,n){e.min=n.min+t.min,e.max=e.min+ze(t)}function kk(e,t,n){Hp(e.x,t.x,n.x),Hp(e.y,t.y,n.y)}function Kp(e,t,n){e.min=t.min-n.min,e.max=e.min+ze(t)}function jo(e,t,n){Kp(e.x,t.x,n.x),Kp(e.y,t.y,n.y)}const Gp=()=>({translate:0,scale:1,origin:0,originPoint:0}),kr=()=>({x:Gp(),y:Gp()}),Yp=()=>({min:0,max:0}),fe=()=>({x:Yp(),y:Yp()});function ot(e){return[e("x"),e("y")]}function rl(e){return e===void 0||e===1}function Tu({scale:e,scaleX:t,scaleY:n}){return!rl(e)||!rl(t)||!rl(n)}function Vn(e){return Tu(e)||Oy(e)||e.z||e.rotate||e.rotateX||e.rotateY||e.skewX||e.skewY}function Oy(e){return Qp(e.x)||Qp(e.y)}function Qp(e){return e&&e!=="0%"}function $s(e,t,n){const r=e-n,o=t*r;return n+o}function Xp(e,t,n,r,o){return o!==void 0&&(e=$s(e,o,r)),$s(e,n,r)+t}function Nu(e,t=0,n=1,r,o){e.min=Xp(e.min,t,n,r,o),e.max=Xp(e.max,t,n,r,o)}function _y(e,{x:t,y:n}){Nu(e.x,t.translate,t.scale,t.originPoint),Nu(e.y,n.translate,n.scale,n.originPoint)}const Zp=.999999999999,qp=1.0000000000001;function Pk(e,t,n,r=!1){const o=n.length;if(!o)return;t.x=t.y=1;let i,s;for(let a=0;a Zp&&(t.x=1),t.y Zp&&(t.y=1)}function Pr(e,t){e.min=e.min+t,e.max=e.max+t}function Jp(e,t,n,r,o=.5){const i=oe(e.min,e.max,o);Nu(e,t,n,i,r)}function Tr(e,t){Jp(e.x,t.x,t.scaleX,t.scale,t.originX),Jp(e.y,t.y,t.scaleY,t.scale,t.originY)}function Vy(e,t){return Ly(yk(e.getBoundingClientRect(),t))}function Tk(e,t,n){const r=Vy(e,n),{scroll:o}=t;return o&&(Pr(r.x,o.offset.x),Pr(r.y,o.offset.y)),r}const Fy=({current:e})=>e?e.ownerDocument.defaultView:null,eh=(e,t)=>Math.abs(e-t);function Nk(e,t){const n=eh(e.x,t.x),r=eh(e.y,t.y);return Math.sqrt(n**2+r**2)}class zy{constructor(t,n,{transformPagePoint:r,contextWindow:o,dragSnapToOrigin:i=!1}={}){if(this.startEvent=null,this.lastMoveEvent=null,this.lastMoveEventInfo=null,this.handlers={},this.contextWindow=window,this.updatePoint=()=>{if(!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const d=il(this.lastMoveEventInfo,this.history),f=this.startEvent!==null,x=Nk(d.offset,{x:0,y:0})>=3;if(!f&&!x)return;const{point:w}=d,{timestamp:g}=Pe;this.history.push({...w,timestamp:g});const{onStart:C,onMove:p}=this.handlers;f||(C&&C(this.lastMoveEvent,d),this.startEvent=this.lastMoveEvent),p&&p(this.lastMoveEvent,d)},this.handlePointerMove=(d,f)=>{this.lastMoveEvent=d,this.lastMoveEventInfo=ol(f,this.transformPagePoint),Y.update(this.updatePoint,!0)},this.handlePointerUp=(d,f)=>{this.end();const{onEnd:x,onSessionEnd:w,resumeAnimation:g}=this.handlers;if(this.dragSnapToOrigin&&g&&g(),!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const C=il(d.type==="pointercancel"?this.lastMoveEventInfo:ol(f,this.transformPagePoint),this.history);this.startEvent&&x&&x(d,C),w&&w(d,C)},!Xc(t))return;this.dragSnapToOrigin=i,this.handlers=n,this.transformPagePoint=r,this.contextWindow=o||window;const s=xi(t),a=ol(s,this.transformPagePoint),{point:l}=a,{timestamp:u}=Pe;this.history=[{...l,timestamp:u}];const{onSessionStart:c}=n;c&&c(t,il(a,this.history)),this.removeListeners=yi(Ro(this.contextWindow,"pointermove",this.handlePointerMove),Ro(this.contextWindow,"pointerup",this.handlePointerUp),Ro(this.contextWindow,"pointercancel",this.handlePointerUp))}updateHandlers(t){this.handlers=t}end(){this.removeListeners&&this.removeListeners(),kn(this.updatePoint)}}function ol(e,t){return t?{point:t(e.point)}:e}function th(e,t){return{x:e.x-t.x,y:e.y-t.y}}function il({point:e},t){return{point:e,delta:th(e,By(t)),offset:th(e,bk(t)),velocity:Mk(t,.1)}}function bk(e){return e[0]}function By(e){return e[e.length-1]}function Mk(e,t){if(e.length<2)return{x:0,y:0};let n=e.length-1,r=null;const o=By(e);for(;n>=0&&(r=e[n],!(o.timestamp-r.timestamp>Dt(t)));)n--;if(!r)return{x:0,y:0};const i=It(o.timestamp-r.timestamp);if(i===0)return{x:0,y:0};const s={x:(o.x-r.x)/i,y:(o.y-r.y)/i};return s.x===1/0&&(s.x=0),s.y===1/0&&(s.y=0),s}function Rk(e,{min:t,max:n},r){return t!==void 0&&e n&&(e=r?oe(n,e,r.max):Math.min(e,n)),e}function nh(e,t,n){return{min:t!==void 0?e.min+t:void 0,max:n!==void 0?e.max+n-(e.max-e.min):void 0}}function Ak(e,{top:t,left:n,bottom:r,right:o}){return{x:nh(e.x,n,o),y:nh(e.y,t,r)}}function rh(e,t){let n=t.min-e.min,r=t.max-e.max;return t.max-t.min r?n=qo(t.min,t.max-r,e.min):r>o&&(n=qo(e.min,e.max-o,t.min)),Zt(0,1,n)}function Dk(e,t){const n={};return t.min!==void 0&&(n.min=t.min-e.min),t.max!==void 0&&(n.max=t.max-e.min),n}const bu=.35;function Ik(e=bu){return e===!1?e=0:e===!0&&(e=bu),{x:oh(e,"left","right"),y:oh(e,"top","bottom")}}function oh(e,t,n){return{min:ih(e,t),max:ih(e,n)}}function ih(e,t){return typeof e=="number"?e:e[t]||0}const Ok=new WeakMap;class _k{constructor(t){this.openDragLock=null,this.isDragging=!1,this.currentDirection=null,this.originPoint={x:0,y:0},this.constraints=!1,this.hasMutatedConstraints=!1,this.elastic=fe(),this.visualElement=t}start(t,{snapToCursor:n=!1}={}){const{presenceContext:r}=this.visualElement;if(r&&r.isPresent===!1)return;const o=c=>{const{dragSnapToOrigin:d}=this.getProps();d?this.pauseAnimation():this.stopAnimation(),n&&this.snapToCursor(xi(c).point)},i=(c,d)=>{const{drag:f,dragPropagation:x,onDragStart:w}=this.getProps();if(f&&!x&&(this.openDragLock&&this.openDragLock(),this.openDragLock=DC(f),!this.openDragLock))return;this.isDragging=!0,this.currentDirection=null,this.resolveConstraints(),this.visualElement.projection&&(this.visualElement.projection.isAnimationBlocked=!0,this.visualElement.projection.target=void 0),ot(C=>{let p=this.getAxisMotionValue(C).get()||0;if(_t.test(p)){const{projection:m}=this.visualElement;if(m&&m.layout){const v=m.layout.layoutBox[C];v&&(p=ze(v)*(parseFloat(p)/100))}}this.originPoint[C]=p}),w&&Y.postRender(()=>w(c,d)),mu(this.visualElement,"transform");const{animationState:g}=this.visualElement;g&&g.setActive("whileDrag",!0)},s=(c,d)=>{const{dragPropagation:f,dragDirectionLock:x,onDirectionLock:w,onDrag:g}=this.getProps();if(!f&&!this.openDragLock)return;const{offset:C}=d;if(x&&this.currentDirection===null){this.currentDirection=Vk(C),this.currentDirection!==null&&w&&w(this.currentDirection);return}this.updateAxis("x",d.point,C),this.updateAxis("y",d.point,C),this.visualElement.render(),g&&g(c,d)},a=(c,d)=>this.stop(c,d),l=()=>ot(c=>{var d;return this.getAnimationState(c)==="paused"&&((d=this.getAxisMotionValue(c).animation)==null?void 0:d.play())}),{dragSnapToOrigin:u}=this.getProps();this.panSession=new zy(t,{onSessionStart:o,onStart:i,onMove:s,onSessionEnd:a,resumeAnimation:l},{transformPagePoint:this.visualElement.getTransformPagePoint(),dragSnapToOrigin:u,contextWindow:Fy(this.visualElement)})}stop(t,n){const r=this.isDragging;if(this.cancel(),!r)return;const{velocity:o}=n;this.startAnimation(o);const{onDragEnd:i}=this.getProps();i&&Y.postRender(()=>i(t,n))}cancel(){this.isDragging=!1;const{projection:t,animationState:n}=this.visualElement;t&&(t.isAnimationBlocked=!1),this.panSession&&this.panSession.end(),this.panSession=void 0;const{dragPropagation:r}=this.getProps();!r&&this.openDragLock&&(this.openDragLock(),this.openDragLock=null),n&&n.setActive("whileDrag",!1)}updateAxis(t,n,r){const{drag:o}=this.getProps();if(!r||!Bi(t,o,this.currentDirection))return;const i=this.getAxisMotionValue(t);let s=this.originPoint[t]+r[t];this.constraints&&this.constraints[t]&&(s=Rk(s,this.constraints[t],this.elastic[t])),i.set(s)}resolveConstraints(){var i;const{dragConstraints:t,dragElastic:n}=this.getProps(),r=this.visualElement.projection&&!this.visualElement.projection.layout?this.visualElement.projection.measure(!1):(i=this.visualElement.projection)==null?void 0:i.layout,o=this.constraints;t&&Sr(t)?this.constraints||(this.constraints=this.resolveRefConstraints()):t&&r?this.constraints=Ak(r.layoutBox,t):this.constraints=!1,this.elastic=Ik(n),o!==this.constraints&&r&&this.constraints&&!this.hasMutatedConstraints&&ot(s=>{this.constraints!==!1&&this.getAxisMotionValue(s)&&(this.constraints[s]=Dk(r.layoutBox[s],this.constraints[s]))})}resolveRefConstraints(){const{dragConstraints:t,onMeasureDragConstraints:n}=this.getProps();if(!t||!Sr(t))return!1;const r=t.current,{projection:o}=this.visualElement;if(!o||!o.layout)return!1;const i=Tk(r,o.root,this.visualElement.getTransformPagePoint());let s=jk(o.layout.layoutBox,i);if(n){const a=n(vk(s));this.hasMutatedConstraints=!!a,a&&(s=Ly(a))}return s}startAnimation(t){const{drag:n,dragMomentum:r,dragElastic:o,dragTransition:i,dragSnapToOrigin:s,onDragTransitionEnd:a}=this.getProps(),l=this.constraints||{},u=ot(c=>{if(!Bi(c,n,this.currentDirection))return;let d=l&&l[c]||{};s&&(d={min:0,max:0});const f=o?200:1e6,x=o?40:1e7,w={type:"inertia",velocity:r?t[c]:0,bounceStiffness:f,bounceDamping:x,timeConstant:750,restDelta:1,restSpeed:10,...i,...d};return this.startAxisValueAnimation(c,w)});return Promise.all(u).then(a)}startAxisValueAnimation(t,n){const r=this.getAxisMotionValue(t);return mu(this.visualElement,t),r.start(vd(t,r,0,n,this.visualElement,!1))}stopAnimation(){ot(t=>this.getAxisMotionValue(t).stop())}pauseAnimation(){ot(t=>{var n;return(n=this.getAxisMotionValue(t).animation)==null?void 0:n.pause()})}getAnimationState(t){var n;return(n=this.getAxisMotionValue(t).animation)==null?void 0:n.state}getAxisMotionValue(t){const n=`_drag${t.toUpperCase()}`,r=this.visualElement.getProps(),o=r[n];return o||this.visualElement.getValue(t,(r.initial?r.initial[t]:void 0)||0)}snapToCursor(t){ot(n=>{const{drag:r}=this.getProps();if(!Bi(n,r,this.currentDirection))return;const{projection:o}=this.visualElement,i=this.getAxisMotionValue(n);if(o&&o.layout){const{min:s,max:a}=o.layout.layoutBox[n];i.set(t[n]-oe(s,a,.5))}})}scalePositionWithinConstraints(){if(!this.visualElement.current)return;const{drag:t,dragConstraints:n}=this.getProps(),{projection:r}=this.visualElement;if(!Sr(n)||!r||!this.constraints)return;this.stopAnimation();const o={x:0,y:0};ot(s=>{const a=this.getAxisMotionValue(s);if(a&&this.constraints!==!1){const l=a.get();o[s]=Lk({min:l,max:l},this.constraints[s])}});const{transformTemplate:i}=this.visualElement.getProps();this.visualElement.current.style.transform=i?i({},""):"none",r.root&&r.root.updateScroll(),r.updateLayout(),this.resolveConstraints(),ot(s=>{if(!Bi(s,t,null))return;const a=this.getAxisMotionValue(s),{min:l,max:u}=this.constraints[s];a.set(oe(l,u,o[s]))})}addListeners(){if(!this.visualElement.current)return;Ok.set(this.visualElement,this);const t=this.visualElement.current,n=Ro(t,"pointerdown",l=>{const{drag:u,dragListener:c=!0}=this.getProps();u&&c&&this.start(l)}),r=()=>{const{dragConstraints:l}=this.getProps();Sr(l)&&l.current&&(this.constraints=this.resolveRefConstraints())},{projection:o}=this.visualElement,i=o.addEventListener("measure",r);o&&!o.layout&&(o.root&&o.root.updateScroll(),o.updateLayout()),Y.read(r);const s=si(window,"resize",()=>this.scalePositionWithinConstraints()),a=o.addEventListener("didUpdate",({delta:l,hasLayoutChanged:u})=>{this.isDragging&&u&&(ot(c=>{const d=this.getAxisMotionValue(c);d&&(this.originPoint[c]+=l[c].translate,d.set(d.get()+l[c].translate))}),this.visualElement.render())});return()=>{s(),n(),i(),a&&a()}}getProps(){const t=this.visualElement.getProps(),{drag:n=!1,dragDirectionLock:r=!1,dragPropagation:o=!1,dragConstraints:i=!1,dragElastic:s=bu,dragMomentum:a=!0}=t;return{...t,drag:n,dragDirectionLock:r,dragPropagation:o,dragConstraints:i,dragElastic:s,dragMomentum:a}}}function Bi(e,t,n){return(t===!0||t===e)&&(n===null||n===e)}function Vk(e,t=10){let n=null;return Math.abs(e.y)>t?n="y":Math.abs(e.x)>t&&(n="x"),n}class Fk extends Mn{constructor(t){super(t),this.removeGroupControls=ut,this.removeListeners=ut,this.controls=new _k(t)}mount(){const{dragControls:t}=this.node.getProps();t&&(this.removeGroupControls=t.subscribe(this.controls)),this.removeListeners=this.controls.addListeners()||ut}unmount(){this.removeGroupControls(),this.removeListeners()}}const sh=e=>(t,n)=>{e&&Y.postRender(()=>e(t,n))};class zk extends Mn{constructor(){super(...arguments),this.removePointerDownListener=ut}onPointerDown(t){this.session=new zy(t,this.createPanHandlers(),{transformPagePoint:this.node.getTransformPagePoint(),contextWindow:Fy(this.node)})}createPanHandlers(){const{onPanSessionStart:t,onPanStart:n,onPan:r,onPanEnd:o}=this.node.getProps();return{onSessionStart:sh(t),onStart:sh(n),onMove:r,onEnd:(i,s)=>{delete this.session,o&&Y.postRender(()=>o(i,s))}}}mount(){this.removePointerDownListener=Ro(this.node.current,"pointerdown",t=>this.onPointerDown(t))}update(){this.session&&this.session.updateHandlers(this.createPanHandlers())}unmount(){this.removePointerDownListener(),this.session&&this.session.end()}}const ls={hasAnimatedSinceResize:!0,hasEverUpdated:!1};function ah(e,t){return t.max===t.min?0:e/(t.max-t.min)*100}const fo={correct:(e,t)=>{if(!t.target)return e;if(typeof e=="string")if(_.test(e))e=parseFloat(e);else return e;const n=ah(e,t.target.x),r=ah(e,t.target.y);return`${n}% ${r}%`}},Bk={correct:(e,{treeScale:t,projectionDelta:n})=>{const r=e,o=Pn.parse(e);if(o.length>5)return r;const i=Pn.createTransformer(e),s=typeof o[0]!="number"?1:0,a=n.x.scale*t.x,l=n.y.scale*t.y;o[0+s]/=a,o[1+s]/=l;const u=oe(a,l,.5);return typeof o[2+s]=="number"&&(o[2+s]/=u),typeof o[3+s]=="number"&&(o[3+s]/=u),i(o)}};class $k extends y.Component{componentDidMount(){const{visualElement:t,layoutGroup:n,switchLayoutGroup:r,layoutId:o}=this.props,{projection:i}=t;sS(Uk),i&&(n.group&&n.group.add(i),r&&r.register&&o&&r.register(i),i.root.didUpdate(),i.addEventListener("animationComplete",()=>{this.safeToRemove()}),i.setOptions({...i.options,onExitComplete:()=>this.safeToRemove()})),ls.hasEverUpdated=!0}getSnapshotBeforeUpdate(t){const{layoutDependency:n,visualElement:r,drag:o,isPresent:i}=this.props,s=r.projection;return s&&(s.isPresent=i,o||t.layoutDependency!==n||n===void 0||t.isPresent!==i?s.willUpdate():this.safeToRemove(),t.isPresent!==i&&(i?s.promote():s.relegate()||Y.postRender(()=>{const a=s.getStack();(!a||!a.members.length)&&this.safeToRemove()}))),null}componentDidUpdate(){const{projection:t}=this.props.visualElement;t&&(t.root.didUpdate(),Qc.postRender(()=>{!t.currentAnimation&&t.isLead()&&this.safeToRemove()}))}componentWillUnmount(){const{visualElement:t,layoutGroup:n,switchLayoutGroup:r}=this.props,{projection:o}=t;o&&(o.scheduleCheckAfterUnmount(),n&&n.group&&n.group.remove(o),r&&r.deregister&&r.deregister(o))}safeToRemove(){const{safeToRemove:t}=this.props;t&&t()}render(){return null}}function $y(e){const[t,n]=EC(),r=y.useContext(Pv);return h.jsx($k,{...e,layoutGroup:r,switchLayoutGroup:y.useContext(zv),isPresent:t,safeToRemove:n})}const Uk={borderRadius:{...fo,applyTo:["borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius"]},borderTopLeftRadius:fo,borderTopRightRadius:fo,borderBottomLeftRadius:fo,borderBottomRightRadius:fo,boxShadow:Bk};function Wk(e,t,n){const r=Le(e)?e:ei(e);return r.start(vd("",r,t,n)),r.animation}function Hk(e){return e instanceof SVGElement&&e.tagName!=="svg"}const Kk=(e,t)=>e.depth-t.depth;class Gk{constructor(){this.children=[],this.isDirty=!1}add(t){Bc(this.children,t),this.isDirty=!0}remove(t){$c(this.children,t),this.isDirty=!0}forEach(t){this.isDirty&&this.children.sort(Kk),this.isDirty=!1,this.children.forEach(t)}}function Yk(e,t){const n=Ot.now(),r=({timestamp:o})=>{const i=o-n;i>=t&&(kn(r),e(i-t))};return Y.read(r,!0),()=>kn(r)}const Uy=["TopLeft","TopRight","BottomLeft","BottomRight"],Qk=Uy.length,lh=e=>typeof e=="string"?parseFloat(e):e,uh=e=>typeof e=="number"||_.test(e);function Xk(e,t,n,r,o,i){o?(e.opacity=oe(0,n.opacity??1,Zk(r)),e.opacityExit=oe(t.opacity??1,0,qk(r))):i&&(e.opacity=oe(t.opacity??1,n.opacity??1,r));for(let s=0;s r t?1:n(qo(e,t,r))}function dh(e,t){e.min=t.min,e.max=t.max}function rt(e,t){dh(e.x,t.x),dh(e.y,t.y)}function fh(e,t){e.translate=t.translate,e.scale=t.scale,e.originPoint=t.originPoint,e.origin=t.origin}function ph(e,t,n,r,o){return e-=t,e=$s(e,1/n,r),o!==void 0&&(e=$s(e,1/o,r)),e}function Jk(e,t=0,n=1,r=.5,o,i=e,s=e){if(_t.test(t)&&(t=parseFloat(t),t=oe(s.min,s.max,t/100)-s.min),typeof t!="number")return;let a=oe(i.min,i.max,r);e===i&&(a-=t),e.min=ph(e.min,t,n,a,o),e.max=ph(e.max,t,n,a,o)}function hh(e,t,[n,r,o],i,s){Jk(e,t[n],t[r],t[o],t.scale,i,s)}const eP=["x","scaleX","originX"],tP=["y","scaleY","originY"];function mh(e,t,n,r){hh(e.x,t,eP,n?n.x:void 0,r?r.x:void 0),hh(e.y,t,tP,n?n.y:void 0,r?r.y:void 0)}function gh(e){return e.translate===0&&e.scale===1}function Hy(e){return gh(e.x)&&gh(e.y)}function vh(e,t){return e.min===t.min&&e.max===t.max}function nP(e,t){return vh(e.x,t.x)&&vh(e.y,t.y)}function yh(e,t){return Math.round(e.min)===Math.round(t.min)&&Math.round(e.max)===Math.round(t.max)}function Ky(e,t){return yh(e.x,t.x)&&yh(e.y,t.y)}function xh(e){return ze(e.x)/ze(e.y)}function wh(e,t){return e.translate===t.translate&&e.scale===t.scale&&e.originPoint===t.originPoint}class rP{constructor(){this.members=[]}add(t){Bc(this.members,t),t.scheduleRender()}remove(t){if($c(this.members,t),t===this.prevLead&&(this.prevLead=void 0),t===this.lead){const n=this.members[this.members.length-1];n&&this.promote(n)}}relegate(t){const n=this.members.findIndex(o=>t===o);if(n===0)return!1;let r;for(let o=n;o>=0;o--){const i=this.members[o];if(i.isPresent!==!1){r=i;break}}return r?(this.promote(r),!0):!1}promote(t,n){const r=this.lead;if(t!==r&&(this.prevLead=r,this.lead=t,t.show(),r)){r.instance&&r.scheduleRender(),t.scheduleRender(),t.resumeFrom=r,n&&(t.resumeFrom.preserveOpacity=!0),r.snapshot&&(t.snapshot=r.snapshot,t.snapshot.latestValues=r.animationValues||r.latestValues),t.root&&t.root.isUpdating&&(t.isLayoutDirty=!0);const{crossfade:o}=t.options;o===!1&&r.hide()}}exitAnimationComplete(){this.members.forEach(t=>{const{options:n,resumingFrom:r}=t;n.onExitComplete&&n.onExitComplete(),r&&r.options.onExitComplete&&r.options.onExitComplete()})}scheduleRender(){this.members.forEach(t=>{t.instance&&t.scheduleRender(!1)})}removeLeadSnapshot(){this.lead&&this.lead.snapshot&&(this.lead.snapshot=void 0)}}function oP(e,t,n){let r="";const o=e.x.translate/t.x,i=e.y.translate/t.y,s=(n==null?void 0:n.z)||0;if((o||i||s)&&(r=`translate3d(${o}px, ${i}px, ${s}px) `),(t.x!==1||t.y!==1)&&(r+=`scale(${1/t.x}, ${1/t.y}) `),n){const{transformPerspective:u,rotate:c,rotateX:d,rotateY:f,skewX:x,skewY:w}=n;u&&(r=`perspective(${u}px) ${r}`),c&&(r+=`rotate(${c}deg) `),d&&(r+=`rotateX(${d}deg) `),f&&(r+=`rotateY(${f}deg) `),x&&(r+=`skewX(${x}deg) `),w&&(r+=`skewY(${w}deg) `)}const a=e.x.scale*t.x,l=e.y.scale*t.y;return(a!==1||l!==1)&&(r+=`scale(${a}, ${l})`),r||"none"}const sl=["","X","Y","Z"],iP={visibility:"hidden"},Ch=1e3;let sP=0;function al(e,t,n,r){const{latestValues:o}=t;o[e]&&(n[e]=o[e],t.setStaticValue(e,0),r&&(r[e]=0))}function Gy(e){if(e.hasCheckedOptimisedAppear=!0,e.root===e)return;const{visualElement:t}=e.options;if(!t)return;const n=ey(t);if(window.MotionHasOptimisedAnimation(n,"transform")){const{layout:o,layoutId:i}=e.options;window.MotionCancelOptimisedAnimation(n,"transform",Y,!(o||i))}const{parent:r}=e;r&&!r.hasCheckedOptimisedAppear&&Gy(r)}function Yy({attachResizeListener:e,defaultParent:t,measureScroll:n,checkIsScrollRoot:r,resetTransform:o}){return class{constructor(s={},a=t==null?void 0:t()){this.id=sP++,this.animationId=0,this.children=new Set,this.options={},this.isTreeAnimating=!1,this.isAnimationBlocked=!1,this.isLayoutDirty=!1,this.isProjectionDirty=!1,this.isSharedProjectionDirty=!1,this.isTransformDirty=!1,this.updateManuallyBlocked=!1,this.updateBlockedByResize=!1,this.isUpdating=!1,this.isSVG=!1,this.needsReset=!1,this.shouldResetTransform=!1,this.hasCheckedOptimisedAppear=!1,this.treeScale={x:1,y:1},this.eventHandlers=new Map,this.hasTreeAnimated=!1,this.updateScheduled=!1,this.scheduleUpdate=()=>this.update(),this.projectionUpdateScheduled=!1,this.checkUpdateFailed=()=>{this.isUpdating&&(this.isUpdating=!1,this.clearAllSnapshots())},this.updateProjection=()=>{this.projectionUpdateScheduled=!1,this.nodes.forEach(uP),this.nodes.forEach(hP),this.nodes.forEach(mP),this.nodes.forEach(cP)},this.resolvedRelativeTargetAt=0,this.hasProjected=!1,this.isVisible=!0,this.animationProgress=0,this.sharedNodes=new Map,this.latestValues=s,this.root=a?a.root||a:this,this.path=a?[...a.path,a]:[],this.parent=a,this.depth=a?a.depth+1:0;for(let l=0;l this.root.updateBlockedByResize=!1;e(s,()=>{this.root.updateBlockedByResize=!0,d&&d(),d=Yk(f,250),ls.hasAnimatedSinceResize&&(ls.hasAnimatedSinceResize=!1,this.nodes.forEach(Eh))})}l&&this.root.registerSharedNode(l,this),this.options.animate!==!1&&c&&(l||u)&&this.addEventListener("didUpdate",({delta:d,hasLayoutChanged:f,hasRelativeLayoutChanged:x,layout:w})=>{if(this.isTreeAnimationBlocked()){this.target=void 0,this.relativeTarget=void 0;return}const g=this.options.transition||c.getDefaultTransition()||wP,{onLayoutAnimationStart:C,onLayoutAnimationComplete:p}=c.getProps(),m=!this.targetLayout||!Ky(this.targetLayout,w),v=!f&&x;if(this.options.layoutRoot||this.resumeFrom||v||f&&(m||!this.currentAnimation)){this.resumeFrom&&(this.resumingFrom=this.resumeFrom,this.resumingFrom.resumingFrom=void 0),this.setAnimationOrigin(d,v);const S={...Gc(g,"layout"),onPlay:C,onComplete:p};(c.shouldReduceMotion||this.options.layoutRoot)&&(S.delay=0,S.type=!1),this.startAnimation(S)}else f||Eh(this),this.isLead()&&this.options.onExitComplete&&this.options.onExitComplete();this.targetLayout=w})}unmount(){this.options.layoutId&&this.willUpdate(),this.root.nodes.remove(this);const s=this.getStack();s&&s.remove(this),this.parent&&this.parent.children.delete(this),this.instance=void 0,kn(this.updateProjection)}blockUpdate(){this.updateManuallyBlocked=!0}unblockUpdate(){this.updateManuallyBlocked=!1}isUpdateBlocked(){return this.updateManuallyBlocked||this.updateBlockedByResize}isTreeAnimationBlocked(){return this.isAnimationBlocked||this.parent&&this.parent.isTreeAnimationBlocked()||!1}startUpdate(){this.isUpdateBlocked()||(this.isUpdating=!0,this.nodes&&this.nodes.forEach(gP),this.animationId++)}getTransformTemplate(){const{visualElement:s}=this.options;return s&&s.getProps().transformTemplate}willUpdate(s=!0){if(this.root.hasTreeAnimated=!0,this.root.isUpdateBlocked()){this.options.onExitComplete&&this.options.onExitComplete();return}if(window.MotionCancelOptimisedAnimation&&!this.hasCheckedOptimisedAppear&&Gy(this),!this.root.isUpdating&&this.root.startUpdate(),this.isLayoutDirty)return;this.isLayoutDirty=!0;for(let c=0;c {this.isLayoutDirty?this.root.didUpdate():this.root.checkUpdateFailed()})}updateSnapshot(){this.snapshot||!this.instance||(this.snapshot=this.measure(),this.snapshot&&!ze(this.snapshot.measuredBox.x)&&!ze(this.snapshot.measuredBox.y)&&(this.snapshot=void 0))}updateLayout(){if(!this.instance||(this.updateScroll(),!(this.options.alwaysMeasureLayout&&this.isLead())&&!this.isLayoutDirty))return;if(this.resumeFrom&&!this.resumeFrom.instance)for(let l=0;l {const E=S/1e3;kh(d.x,s.x,E),kh(d.y,s.y,E),this.setTargetDelta(d),this.relativeTarget&&this.relativeTargetOrigin&&this.layout&&this.relativeParent&&this.relativeParent.layout&&(jo(f,this.layout.layoutBox,this.relativeParent.layout.layoutBox),yP(this.relativeTarget,this.relativeTargetOrigin,f,E),v&&nP(this.relativeTarget,v)&&(this.isProjectionDirty=!1),v||(v=fe()),rt(v,this.relativeTarget)),g&&(this.animationValues=c,Xk(c,u,this.latestValues,E,m,p)),this.root.scheduleUpdateProjection(),this.scheduleRender(),this.animationProgress=E},this.mixTargetDelta(this.options.layoutRoot?1e3:0)}startAnimation(s){this.notifyListeners("animationStart"),this.currentAnimation&&this.currentAnimation.stop(),this.resumingFrom&&this.resumingFrom.currentAnimation&&this.resumingFrom.currentAnimation.stop(),this.pendingAnimation&&(kn(this.pendingAnimation),this.pendingAnimation=void 0),this.pendingAnimation=Y.update(()=>{ls.hasAnimatedSinceResize=!0,this.currentAnimation=Wk(0,Ch,{...s,onUpdate:a=>{this.mixTargetDelta(a),s.onUpdate&&s.onUpdate(a)},onStop:()=>{},onComplete:()=>{s.onComplete&&s.onComplete(),this.completeAnimation()}}),this.resumingFrom&&(this.resumingFrom.currentAnimation=this.currentAnimation),this.pendingAnimation=void 0})}completeAnimation(){this.resumingFrom&&(this.resumingFrom.currentAnimation=void 0,this.resumingFrom.preserveOpacity=void 0);const s=this.getStack();s&&s.exitAnimationComplete(),this.resumingFrom=this.currentAnimation=this.animationValues=void 0,this.notifyListeners("animationComplete")}finishAnimation(){this.currentAnimation&&(this.mixTargetDelta&&this.mixTargetDelta(Ch),this.currentAnimation.stop()),this.completeAnimation()}applyTransformsToTarget(){const s=this.getLead();let{targetWithTransforms:a,target:l,layout:u,latestValues:c}=s;if(!(!a||!l||!u)){if(this!==s&&this.layout&&u&&Qy(this.options.animationType,this.layout.layoutBox,u.layoutBox)){l=this.target||fe();const d=ze(this.layout.layoutBox.x);l.x.min=s.target.x.min,l.x.max=l.x.min+d;const f=ze(this.layout.layoutBox.y);l.y.min=s.target.y.min,l.y.max=l.y.min+f}rt(a,l),Tr(a,c),Ao(this.projectionDeltaWithTransform,this.layoutCorrected,a,c)}}registerSharedNode(s,a){this.sharedNodes.has(s)||this.sharedNodes.set(s,new rP),this.sharedNodes.get(s).add(a);const u=a.options.initialPromotionConfig;a.promote({transition:u?u.transition:void 0,preserveFollowOpacity:u&&u.shouldPreserveFollowOpacity?u.shouldPreserveFollowOpacity(a):void 0})}isLead(){const s=this.getStack();return s?s.lead===this:!0}getLead(){var a;const{layoutId:s}=this.options;return s?((a=this.getStack())==null?void 0:a.lead)||this:this}getPrevLead(){var a;const{layoutId:s}=this.options;return s?(a=this.getStack())==null?void 0:a.prevLead:void 0}getStack(){const{layoutId:s}=this.options;if(s)return this.root.sharedNodes.get(s)}promote({needsReset:s,transition:a,preserveFollowOpacity:l}={}){const u=this.getStack();u&&u.promote(this,l),s&&(this.projectionDelta=void 0,this.needsReset=!0),a&&this.setOptions({transition:a})}relegate(){const s=this.getStack();return s?s.relegate(this):!1}resetSkewAndRotation(){const{visualElement:s}=this.options;if(!s)return;let a=!1;const{latestValues:l}=s;if((l.z||l.rotate||l.rotateX||l.rotateY||l.rotateZ||l.skewX||l.skewY)&&(a=!0),!a)return;const u={};l.z&&al("z",s,u,this.animationValues);for(let c=0;c {var a;return(a=s.currentAnimation)==null?void 0:a.stop()}),this.root.nodes.forEach(Sh),this.root.sharedNodes.clear()}}}function aP(e){e.updateLayout()}function lP(e){var n;const t=((n=e.resumeFrom)==null?void 0:n.snapshot)||e.snapshot;if(e.isLead()&&e.layout&&t&&e.hasListeners("didUpdate")){const{layoutBox:r,measuredBox:o}=e.layout,{animationType:i}=e.options,s=t.source!==e.layout.source;i==="size"?ot(d=>{const f=s?t.measuredBox[d]:t.layoutBox[d],x=ze(f);f.min=r[d].min,f.max=f.min+x}):Qy(i,t.layoutBox,r)&&ot(d=>{const f=s?t.measuredBox[d]:t.layoutBox[d],x=ze(r[d]);f.max=f.min+x,e.relativeTarget&&!e.currentAnimation&&(e.isProjectionDirty=!0,e.relativeTarget[d].max=e.relativeTarget[d].min+x)});const a=kr();Ao(a,r,t.layoutBox);const l=kr();s?Ao(l,e.applyTransform(o,!0),t.measuredBox):Ao(l,r,t.layoutBox);const u=!Hy(a);let c=!1;if(!e.resumeFrom){const d=e.getClosestProjectingParent();if(d&&!d.resumeFrom){const{snapshot:f,layout:x}=d;if(f&&x){const w=fe();jo(w,t.layoutBox,f.layoutBox);const g=fe();jo(g,r,x.layoutBox),Ky(w,g)||(c=!0),d.options.layoutRoot&&(e.relativeTarget=g,e.relativeTargetOrigin=w,e.relativeParent=d)}}}e.notifyListeners("didUpdate",{layout:r,snapshot:t,delta:l,layoutDelta:a,hasLayoutChanged:u,hasRelativeLayoutChanged:c})}else if(e.isLead()){const{onExitComplete:r}=e.options;r&&r()}e.options.transition=void 0}function uP(e){e.parent&&(e.isProjecting()||(e.isProjectionDirty=e.parent.isProjectionDirty),e.isSharedProjectionDirty||(e.isSharedProjectionDirty=!!(e.isProjectionDirty||e.parent.isProjectionDirty||e.parent.isSharedProjectionDirty)),e.isTransformDirty||(e.isTransformDirty=e.parent.isTransformDirty))}function cP(e){e.isProjectionDirty=e.isSharedProjectionDirty=e.isTransformDirty=!1}function dP(e){e.clearSnapshot()}function Sh(e){e.clearMeasurements()}function fP(e){e.isLayoutDirty=!1}function pP(e){const{visualElement:t}=e.options;t&&t.getProps().onBeforeLayoutMeasure&&t.notify("BeforeLayoutMeasure"),e.resetTransform()}function Eh(e){e.finishAnimation(),e.targetDelta=e.relativeTarget=e.target=void 0,e.isProjectionDirty=!0}function hP(e){e.resolveTargetDelta()}function mP(e){e.calcProjection()}function gP(e){e.resetSkewAndRotation()}function vP(e){e.removeLeadSnapshot()}function kh(e,t,n){e.translate=oe(t.translate,0,n),e.scale=oe(t.scale,1,n),e.origin=t.origin,e.originPoint=t.originPoint}function Ph(e,t,n,r){e.min=oe(t.min,n.min,r),e.max=oe(t.max,n.max,r)}function yP(e,t,n,r){Ph(e.x,t.x,n.x,r),Ph(e.y,t.y,n.y,r)}function xP(e){return e.animationValues&&e.animationValues.opacityExit!==void 0}const wP={duration:.45,ease:[.4,0,.1,1]},Th=e=>typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().includes(e),Nh=Th("applewebkit/")&&!Th("chrome/")?Math.round:ut;function bh(e){e.min=Nh(e.min),e.max=Nh(e.max)}function CP(e){bh(e.x),bh(e.y)}function Qy(e,t,n){return e==="position"||e==="preserve-aspect"&&!Ek(xh(t),xh(n),.2)}function SP(e){var t;return e!==e.root&&((t=e.scroll)==null?void 0:t.wasRoot)}const EP=Yy({attachResizeListener:(e,t)=>si(e,"resize",t),measureScroll:()=>({x:document.documentElement.scrollLeft||document.body.scrollLeft,y:document.documentElement.scrollTop||document.body.scrollTop}),checkIsScrollRoot:()=>!0}),ll={current:void 0},Xy=Yy({measureScroll:e=>({x:e.scrollLeft,y:e.scrollTop}),defaultParent:()=>{if(!ll.current){const e=new EP({});e.mount(window),e.setOptions({layoutScroll:!0}),ll.current=e}return ll.current},resetTransform:(e,t)=>{e.style.transform=t!==void 0?t:"none"},checkIsScrollRoot:e=>window.getComputedStyle(e).position==="fixed"}),kP={pan:{Feature:zk},drag:{Feature:Fk,ProjectionNode:Xy,MeasureLayout:$y}};function Mh(e,t,n){const{props:r}=e;e.animationState&&r.whileHover&&e.animationState.setActive("whileHover",n==="Start");const o="onHover"+n,i=r[o];i&&Y.postRender(()=>i(t,xi(t)))}class PP extends Mn{mount(){const{current:t}=this.node;t&&(this.unmount=IC(t,(n,r)=>(Mh(this.node,r,"Start"),o=>Mh(this.node,o,"End"))))}unmount(){}}class TP extends Mn{constructor(){super(...arguments),this.isActive=!1}onFocus(){let t=!1;try{t=this.node.current.matches(":focus-visible")}catch{t=!0}!t||!this.node.animationState||(this.node.animationState.setActive("whileFocus",!0),this.isActive=!0)}onBlur(){!this.isActive||!this.node.animationState||(this.node.animationState.setActive("whileFocus",!1),this.isActive=!1)}mount(){this.unmount=yi(si(this.node.current,"focus",()=>this.onFocus()),si(this.node.current,"blur",()=>this.onBlur()))}unmount(){}}function Rh(e,t,n){const{props:r}=e;if(e.current instanceof HTMLButtonElement&&e.current.disabled)return;e.animationState&&r.whileTap&&e.animationState.setActive("whileTap",n==="Start");const o="onTap"+(n==="End"?"":n),i=r[o];i&&Y.postRender(()=>i(t,xi(t)))}class NP extends Mn{mount(){const{current:t}=this.node;t&&(this.unmount=FC(t,(n,r)=>(Rh(this.node,r,"Start"),(o,{success:i})=>Rh(this.node,o,i?"End":"Cancel")),{useGlobalTarget:this.node.props.globalTapTarget}))}unmount(){}}const Mu=new WeakMap,ul=new WeakMap,bP=e=>{const t=Mu.get(e.target);t&&t(e)},MP=e=>{e.forEach(bP)};function RP({root:e,...t}){const n=e||document;ul.has(n)||ul.set(n,{});const r=ul.get(n),o=JSON.stringify(t);return r[o]||(r[o]=new IntersectionObserver(MP,{root:e,...t})),r[o]}function AP(e,t,n){const r=RP(t);return Mu.set(e,n),r.observe(e),()=>{Mu.delete(e),r.unobserve(e)}}const jP={some:0,all:1};class LP extends Mn{constructor(){super(...arguments),this.hasEnteredView=!1,this.isInView=!1}startObserver(){this.unmount();const{viewport:t={}}=this.node.getProps(),{root:n,margin:r,amount:o="some",once:i}=t,s={root:n?n.current:void 0,rootMargin:r,threshold:typeof o=="number"?o:jP[o]},a=l=>{const{isIntersecting:u}=l;if(this.isInView===u||(this.isInView=u,i&&!u&&this.hasEnteredView))return;u&&(this.hasEnteredView=!0),this.node.animationState&&this.node.animationState.setActive("whileInView",u);const{onViewportEnter:c,onViewportLeave:d}=this.node.getProps(),f=u?c:d;f&&f(l)};return AP(this.node.current,s,a)}mount(){this.startObserver()}update(){if(typeof IntersectionObserver>"u")return;const{props:t,prevProps:n}=this.node;["amount","margin","root"].some(DP(t,n))&&this.startObserver()}unmount(){}}function DP({viewport:e={}},{viewport:t={}}={}){return n=>e[n]!==t[n]}const IP={inView:{Feature:LP},tap:{Feature:NP},focus:{Feature:TP},hover:{Feature:PP}},OP={layout:{ProjectionNode:Xy,MeasureLayout:$y}},Ru={current:null},Zy={current:!1};function _P(){if(Zy.current=!0,!!Fc)if(window.matchMedia){const e=window.matchMedia("(prefers-reduced-motion)"),t=()=>Ru.current=e.matches;e.addListener(t),t()}else Ru.current=!1}const VP=[...Sy,Ae,Pn],FP=e=>VP.find(Cy(e)),zP=new WeakMap;function BP(e,t,n){for(const r in t){const o=t[r],i=n[r];if(Le(o))e.addValue(r,o);else if(Le(i))e.addValue(r,ei(o,{owner:e}));else if(i!==o)if(e.hasValue(r)){const s=e.getValue(r);s.liveStyle===!0?s.jump(o):s.hasAnimated||s.set(o)}else{const s=e.getStaticValue(r);e.addValue(r,ei(s!==void 0?s:o,{owner:e}))}}for(const r in n)t[r]===void 0&&e.removeValue(r);return t}const Ah=["AnimationStart","AnimationComplete","Update","BeforeLayoutMeasure","LayoutMeasure","LayoutAnimationStart","LayoutAnimationComplete"];class $P{scrapeMotionValuesFromProps(t,n,r){return{}}constructor({parent:t,props:n,presenceContext:r,reducedMotionConfig:o,blockInitialAnimation:i,visualState:s},a={}){this.current=null,this.children=new Set,this.isVariantNode=!1,this.isControllingVariants=!1,this.shouldReduceMotion=null,this.values=new Map,this.KeyframeResolver=hd,this.features={},this.valueSubscriptions=new Map,this.prevMotionValues={},this.events={},this.propEventSubscriptions={},this.notifyUpdate=()=>this.notify("Update",this.latestValues),this.render=()=>{this.current&&(this.triggerBuild(),this.renderInstance(this.current,this.renderState,this.props.style,this.projection))},this.renderScheduledAt=0,this.scheduleRender=()=>{const x=Ot.now();this.renderScheduledAt this.bindToMotionValue(r,n)),Zy.current||_P(),this.shouldReduceMotion=this.reducedMotionConfig==="never"?!1:this.reducedMotionConfig==="always"?!0:Ru.current,this.parent&&this.parent.children.add(this),this.update(this.props,this.presenceContext)}unmount(){this.projection&&this.projection.unmount(),kn(this.notifyUpdate),kn(this.render),this.valueSubscriptions.forEach(t=>t()),this.valueSubscriptions.clear(),this.removeFromVariantTree&&this.removeFromVariantTree(),this.parent&&this.parent.children.delete(this);for(const t in this.events)this.events[t].clear();for(const t in this.features){const n=this.features[t];n&&(n.unmount(),n.isMounted=!1)}this.current=null}bindToMotionValue(t,n){this.valueSubscriptions.has(t)&&this.valueSubscriptions.get(t)();const r=or.has(t);r&&this.onBindTransform&&this.onBindTransform();const o=n.on("change",a=>{this.latestValues[t]=a,this.props.onUpdate&&Y.preRender(this.notifyUpdate),r&&this.projection&&(this.projection.isTransformDirty=!0)}),i=n.on("renderRequest",this.scheduleRender);let s;window.MotionCheckAppearSync&&(s=window.MotionCheckAppearSync(this,t,n)),this.valueSubscriptions.set(t,()=>{o(),i(),s&&s(),n.owner&&n.stop()})}sortNodePosition(t){return!this.current||!this.sortInstanceNodePosition||this.type!==t.type?0:this.sortInstanceNodePosition(this.current,t.current)}updateFeatures(){let t="animation";for(t in $r){const n=$r[t];if(!n)continue;const{isEnabled:r,Feature:o}=n;if(!this.features[t]&&o&&r(this.props)&&(this.features[t]=new o(this)),this.features[t]){const i=this.features[t];i.isMounted?i.update():(i.mount(),i.isMounted=!0)}}}triggerBuild(){this.build(this.renderState,this.latestValues,this.props)}measureViewportBox(){return this.current?this.measureInstanceViewportBox(this.current,this.props):fe()}getStaticValue(t){return this.latestValues[t]}setStaticValue(t,n){this.latestValues[t]=n}update(t,n){(t.transformTemplate||this.props.transformTemplate)&&this.scheduleRender(),this.prevProps=this.props,this.props=t,this.prevPresenceContext=this.presenceContext,this.presenceContext=n;for(let r=0;r n.variantChildren.delete(t)}addValue(t,n){const r=this.values.get(t);n!==r&&(r&&this.removeValue(t),this.bindToMotionValue(t,n),this.values.set(t,n),this.latestValues[t]=n.get())}removeValue(t){this.values.delete(t);const n=this.valueSubscriptions.get(t);n&&(n(),this.valueSubscriptions.delete(t)),delete this.latestValues[t],this.removeValueFromRenderState(t,this.renderState)}hasValue(t){return this.values.has(t)}getValue(t,n){if(this.props.values&&this.props.values[t])return this.props.values[t];let r=this.values.get(t);return r===void 0&&n!==void 0&&(r=ei(n===null?void 0:n,{owner:this}),this.addValue(t,r)),r}readValue(t,n){let r=this.latestValues[t]!==void 0||!this.current?this.latestValues[t]:this.getBaseTargetFromProps(this.props,t)??this.readValueFromInstance(this.current,t,this.options);return r!=null&&(typeof r=="string"&&(xy(r)||uy(r))?r=parseFloat(r):!FP(r)&&Pn.test(n)&&(r=gy(t,n)),this.setBaseTarget(t,Le(r)?r.get():r)),Le(r)?r.get():r}setBaseTarget(t,n){this.baseTarget[t]=n}getBaseTarget(t){var i;const{initial:n}=this.props;let r;if(typeof n=="string"||typeof n=="object"){const s=ld(this.props,n,(i=this.presenceContext)==null?void 0:i.custom);s&&(r=s[t])}if(n&&r!==void 0)return r;const o=this.getBaseTargetFromProps(this.props,t);return o!==void 0&&!Le(o)?o:this.initialValues[t]!==void 0&&r===void 0?void 0:this.baseTarget[t]}on(t,n){return this.events[t]||(this.events[t]=new Wc),this.events[t].add(n)}notify(t,...n){this.events[t]&&this.events[t].notify(...n)}}class qy extends $P{constructor(){super(...arguments),this.KeyframeResolver=Ey}sortInstanceNodePosition(t,n){return t.compareDocumentPosition(n)&2?1:-1}getBaseTargetFromProps(t,n){return t.style?t.style[n]:void 0}removeValueFromRenderState(t,{vars:n,style:r}){delete n[t],delete r[t]}handleChildMotionValue(){this.childSubscription&&(this.childSubscription(),delete this.childSubscription);const{children:t}=this.props;Le(t)&&(this.childSubscription=t.on("change",n=>{this.current&&(this.current.textContent=`${n}`)}))}}function UP(e){return window.getComputedStyle(e)}class WP extends qy{constructor(){super(...arguments),this.type="html",this.renderInstance=Qv}readValueFromInstance(t,n){if(or.has(n))return rE(t,n);{const r=UP(t),o=(ed(n)?r.getPropertyValue(n):r[n])||0;return typeof o=="string"?o.trim():o}}measureInstanceViewportBox(t,{transformPagePoint:n}){return Vy(t,n)}build(t,n,r){rd(t,n,r.transformTemplate)}scrapeMotionValuesFromProps(t,n,r){return ud(t,n,r)}}class HP extends qy{constructor(){super(...arguments),this.type="svg",this.isSVGTag=!1,this.measureInstanceViewportBox=fe,this.updateDimensions=()=>{this.current&&!this.renderState.dimensions&&Yv(this.current,this.renderState)}}getBaseTargetFromProps(t,n){return t[n]}readValueFromInstance(t,n){if(or.has(n)){const r=my(n);return r&&r.default||0}return n=Xv.has(n)?n:Jc(n),t.getAttribute(n)}scrapeMotionValuesFromProps(t,n,r){return qv(t,n,r)}onBindTransform(){this.current&&!this.renderState.dimensions&&Y.postRender(this.updateDimensions)}build(t,n,r){sd(t,n,this.isSVGTag,r.transformTemplate)}renderInstance(t,n,r,o){Zv(t,n,r,o)}mount(t){this.isSVGTag=ad(t.tagName),super.mount(t)}}const KP=(e,t)=>id(e)?new HP(t):new WP(t,{allowProjection:e!==y.Fragment}),GP=RS({...mk,...IP,...kP,...OP},KP),ct=KC(GP),YP={some:0,all:1};function QP(e,t,{root:n,margin:r,amount:o="some"}={}){const i=Lv(e),s=new WeakMap,a=u=>{u.forEach(c=>{const d=s.get(c.target);if(c.isIntersecting!==!!d)if(c.isIntersecting){const f=t(c.target,c);typeof f=="function"?s.set(c.target,f):l.unobserve(c.target)}else typeof d=="function"&&(d(c),s.delete(c.target))})},l=new IntersectionObserver(a,{root:n,rootMargin:r,threshold:typeof o=="number"?o:YP[o]});return i.forEach(u=>l.observe(u)),()=>l.disconnect()}function dt(e,{root:t,margin:n,amount:r,once:o=!1,initial:i=!1}={}){const[s,a]=y.useState(i);return y.useEffect(()=>{if(!e.current||o&&s)return;const l=()=>(a(!0),o?void 0:()=>a(!1)),u={root:t&&t.current||void 0,margin:n,amount:r};return QP(e.current,l,u)},[t,e,n,o,r]),s}/** + * @license lucide-react v0.424.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const XP=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),Jy=(...e)=>e.filter((t,n,r)=>!!t&&r.indexOf(t)===n).join(" ");/** + * @license lucide-react v0.424.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */var ZP={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};/** + * @license lucide-react v0.424.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const qP=y.forwardRef(({color:e="currentColor",size:t=24,strokeWidth:n=2,absoluteStrokeWidth:r,className:o="",children:i,iconNode:s,...a},l)=>y.createElement("svg",{ref:l,...ZP,width:t,height:t,stroke:e,strokeWidth:r?Number(n)*24/Number(t):n,className:Jy("lucide",o),...a},[...s.map(([u,c])=>y.createElement(u,c)),...Array.isArray(i)?i:[i]]));/** + * @license lucide-react v0.424.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const te=(e,t)=>{const n=y.forwardRef(({className:r,...o},i)=>y.createElement(qP,{ref:i,iconNode:t,className:Jy(`lucide-${XP(e)}`,r),...o}));return n.displayName=`${e}`,n};/** + * @license lucide-react v0.424.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const JP=te("ArrowLeft",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]]);/** + * @license lucide-react v0.424.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const eT=te("ArrowRight",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]]);/** + * @license lucide-react v0.424.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const tT=te("ArrowUpToLine",[["path",{d:"M5 3h14",key:"7usisc"}],["path",{d:"m18 13-6-6-6 6",key:"1kf1n9"}],["path",{d:"M12 7v14",key:"1akyts"}]]);/** + * @license lucide-react v0.424.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const nT=te("Banknote",[["rect",{width:"20",height:"12",x:"2",y:"6",rx:"2",key:"9lu3g6"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}],["path",{d:"M6 12h.01M18 12h.01",key:"113zkx"}]]);/** + * @license lucide-react v0.424.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const rT=te("BellRing",[["path",{d:"M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9",key:"1qo2s2"}],["path",{d:"M10.3 21a1.94 1.94 0 0 0 3.4 0",key:"qgo35s"}],["path",{d:"M4 2C2.8 3.7 2 5.7 2 8",key:"tap9e0"}],["path",{d:"M22 8c0-2.3-.8-4.3-2-6",key:"5bb3ad"}]]);/** + * @license lucide-react v0.424.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const oT=te("Calendar",[["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M16 2v4",key:"4m81vk"}],["rect",{width:"18",height:"18",x:"3",y:"4",rx:"2",key:"1hopcy"}],["path",{d:"M3 10h18",key:"8toen8"}]]);/** + * @license lucide-react v0.424.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const e0=te("ChevronDown",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);/** + * @license lucide-react v0.424.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const $i=te("CircleCheck",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);/** + * @license lucide-react v0.424.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const iT=te("CreditCard",[["rect",{width:"20",height:"14",x:"2",y:"5",rx:"2",key:"ynyp8z"}],["line",{x1:"2",x2:"22",y1:"10",y2:"10",key:"1b3vmo"}]]);/** + * @license lucide-react v0.424.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const t0=te("HandCoins",[["path",{d:"M11 15h2a2 2 0 1 0 0-4h-3c-.6 0-1.1.2-1.4.6L3 17",key:"geh8rc"}],["path",{d:"m7 21 1.6-1.4c.3-.4.8-.6 1.4-.6h4c1.1 0 2.1-.4 2.8-1.2l4.6-4.4a2 2 0 0 0-2.75-2.91l-4.2 3.9",key:"1fto5m"}],["path",{d:"m2 16 6 6",key:"1pfhp9"}],["circle",{cx:"16",cy:"9",r:"2.9",key:"1n0dlu"}],["circle",{cx:"6",cy:"5",r:"3",key:"151irh"}]]);/** + * @license lucide-react v0.424.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const sT=te("History",[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}],["path",{d:"M12 7v5l4 2",key:"1fdv2h"}]]);/** + * @license lucide-react v0.424.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const aT=te("Layers2",[["path",{d:"m16.02 12 5.48 3.13a1 1 0 0 1 0 1.74L13 21.74a2 2 0 0 1-2 0l-8.5-4.87a1 1 0 0 1 0-1.74L7.98 12",key:"1cuww1"}],["path",{d:"M13 13.74a2 2 0 0 1-2 0L2.5 8.87a1 1 0 0 1 0-1.74L11 2.26a2 2 0 0 1 2 0l8.5 4.87a1 1 0 0 1 0 1.74Z",key:"pdlvxu"}]]);/** + * @license lucide-react v0.424.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const lT=te("Link",[["path",{d:"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71",key:"1cjeqo"}],["path",{d:"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71",key:"19qd67"}]]);/** + * @license lucide-react v0.424.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const uT=te("MessageSquareMore",[["path",{d:"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z",key:"1lielz"}],["path",{d:"M8 10h.01",key:"19clt8"}],["path",{d:"M12 10h.01",key:"1nrarc"}],["path",{d:"M16 10h.01",key:"1m94wz"}]]);/** + * @license lucide-react v0.424.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const cT=te("MessagesSquare",[["path",{d:"M14 9a2 2 0 0 1-2 2H6l-4 4V4c0-1.1.9-2 2-2h8a2 2 0 0 1 2 2z",key:"jj09z8"}],["path",{d:"M18 9h2a2 2 0 0 1 2 2v11l-4-4h-6a2 2 0 0 1-2-2v-1",key:"1cx29u"}]]);/** + * @license lucide-react v0.424.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const dT=te("Moon",[["path",{d:"M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z",key:"a7tn18"}]]);/** + * @license lucide-react v0.424.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const fT=te("Presentation",[["path",{d:"M2 3h20",key:"91anmk"}],["path",{d:"M21 3v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V3",key:"2k9sn8"}],["path",{d:"m7 21 5-5 5 5",key:"bip4we"}]]);/** + * @license lucide-react v0.424.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const pT=te("SquarePlay",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"m9 8 6 4-6 4Z",key:"f1r3lt"}]]);/** + * @license lucide-react v0.424.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const hT=te("Sun",[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"m4.93 4.93 1.41 1.41",key:"149t6j"}],["path",{d:"m17.66 17.66 1.41 1.41",key:"ptbguv"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"m6.34 17.66-1.41 1.41",key:"1m8zz5"}],["path",{d:"m19.07 4.93-1.41 1.41",key:"1shlcs"}]]);/** + * @license lucide-react v0.424.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const mT=te("UserPen",[["path",{d:"M11.5 15H7a4 4 0 0 0-4 4v2",key:"15lzij"}],["path",{d:"M21.378 16.626a1 1 0 0 0-3.004-3.004l-4.01 4.012a2 2 0 0 0-.506.854l-.837 2.87a.5.5 0 0 0 .62.62l2.87-.837a2 2 0 0 0 .854-.506z",key:"1817ys"}],["circle",{cx:"10",cy:"7",r:"4",key:"e45bow"}]]);/** + * @license lucide-react v0.424.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const gT=te("UserRoundCheck",[["path",{d:"M2 21a8 8 0 0 1 13.292-6",key:"bjp14o"}],["circle",{cx:"10",cy:"8",r:"5",key:"o932ke"}],["path",{d:"m16 19 2 2 4-4",key:"1b14m6"}]]);/** + * @license lucide-react v0.424.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const n0=te("Users",[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}],["path",{d:"M22 21v-2a4 4 0 0 0-3-3.87",key:"kshegd"}],["path",{d:"M16 3.13a4 4 0 0 1 0 7.75",key:"1da9ce"}]]);/** + * @license lucide-react v0.424.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const vT=te("Video",[["path",{d:"m16 13 5.223 3.482a.5.5 0 0 0 .777-.416V7.87a.5.5 0 0 0-.752-.432L16 10.5",key:"ftymec"}],["rect",{x:"2",y:"6",width:"14",height:"12",rx:"2",key:"158x01"}]]);/** + * @license lucide-react v0.424.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const yT=te("X",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]),r0="/assets/hero-C6VyTQR5.webp",xT=[{icon:$i,label:"Personalized page"},{icon:$i,label:"No payments delays"},{icon:$i,label:"Get notifications for everything"},{icon:$i,label:"Dashboard for every niche"}],wT=()=>h.jsx("section",{className:"h-screen py-10 md:py-20 overflow-hidden ",id:"features",children:h.jsx("div",{className:"container mx-auto",children:h.jsx("div",{className:"mx-auto max-w-7xl",children:h.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4 items-center",children:[h.jsxs(ct.div,{initial:{opacity:0,y:-20},animate:{opacity:1,y:0},transition:{duration:.6,ease:"easeOut"},className:"w-full px-2 md:px-10 text-start space-y-6 mx-auto max-w-6xl overflow-hidden",children:[h.jsxs("div",{className:"flex items-center border-[1px] border-amber-400 rounded-full w-fit h-fit px-4 py-2",children:[h.jsxs("span",{className:"relative flex h-2 w-2","data-svelte-h":"svelte-n36up",children:[h.jsx("span",{className:"absolute inline-flex h-full w-full animate-ping rounded-full bg-amber-400 opacity-75"})," ",h.jsx("span",{className:"relative inline-flex h-2 w-2 rounded-full bg-amber-500"})]})," ",h.jsx("span",{className:$("animate-gradient inline bg-gradient-to-r from-[#ffaa40] via-[#9c40ff] to-[#ffaa40] bg-[length:var(--bg-size)_100%] bg-clip-text text-transparent text-sm md:text-base"),children:"Coming Soon"})," 🚀"]}),h.jsx("main",{className:"text-3xl md:text-5xl font-bold !leading-tight",children:h.jsxs("h3",{children:["Connect, Manage and",h.jsx("br",{}),"Monetize your Audience"]})}),h.jsx("div",{className:"flex flex-col gap-4",children:xT.map(({icon:e,label:t})=>h.jsxs("div",{className:"flex items-center gap-3 text-sm md:text-xl",children:[h.jsx(e,{size:28,className:"text-background fill-[#34C759]"}),h.jsx("span",{className:"text-muted-foreground",children:t})]},t))}),h.jsxs("div",{className:"space-y-4 md:space-y-0 md:space-x-4",children:[h.jsx("a",{href:"https://app.youform.com/forms/kadk8slp",target:"_blank",className:`w-full md:w-1/3 md:h-14 text-base font-semibold custom-gradient-border ${Jn({variant:"default"})}`,children:"Join Waitlist"}),h.jsx("a",{rel:"noreferrer noopener",href:"https://calendar.app.google/sVcQwekYrRbL9mbQ6",target:"_blank",className:`w-full md:w-1/3 md:h-14 text-base font-semibold ${Jn({variant:"outline"})}`,children:"Book a Demo"})]})]}),h.jsxs(ct.div,{initial:{opacity:0,y:-20},animate:{opacity:1,y:0},transition:{duration:.6,ease:"easeOut"},className:"text-center lg:text-start",children:[h.jsx("img",{src:r0,alt:"hero",className:"relative z-10"}),h.jsx("div",{className:"shadow"})]})]})})})});function CT(e,t){const n=y.createContext(t),r=i=>{const{children:s,...a}=i,l=y.useMemo(()=>a,Object.values(a));return h.jsx(n.Provider,{value:l,children:s})};r.displayName=e+"Provider";function o(i){const s=y.useContext(n);if(s)return s;if(t!==void 0)return t;throw new Error(`\`${i}\` must be used within \`${e}\``)}return[r,o]}function Zr(e,t=[]){let n=[];function r(i,s){const a=y.createContext(s),l=n.length;n=[...n,s];const u=d=>{var p;const{scope:f,children:x,...w}=d,g=((p=f==null?void 0:f[e])==null?void 0:p[l])||a,C=y.useMemo(()=>w,Object.values(w));return h.jsx(g.Provider,{value:C,children:x})};u.displayName=i+"Provider";function c(d,f){var g;const x=((g=f==null?void 0:f[e])==null?void 0:g[l])||a,w=y.useContext(x);if(w)return w;if(s!==void 0)return s;throw new Error(`\`${d}\` must be used within \`${i}\``)}return[u,c]}const o=()=>{const i=n.map(s=>y.createContext(s));return function(a){const l=(a==null?void 0:a[e])||i;return y.useMemo(()=>({[`__scope${e}`]:{...a,[e]:l}}),[a,l])}};return o.scopeName=e,[r,ST(o,...t)]}function ST(...e){const t=e[0];if(e.length===1)return t;const n=()=>{const r=e.map(o=>({useScope:o(),scopeName:o.scopeName}));return function(i){const s=r.reduce((a,{useScope:l,scopeName:u})=>{const d=l(i)[`__scope${u}`];return{...a,...d}},{});return y.useMemo(()=>({[`__scope${t.scopeName}`]:s}),[s])}};return n.scopeName=t.scopeName,n}function q(e,t,{checkForDefaultPrevented:n=!0}={}){return function(o){if(e==null||e(o),n===!1||!o.defaultPrevented)return t==null?void 0:t(o)}}var ET=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","span","svg","ul"],H=ET.reduce((e,t)=>{const n=Zo(`Primitive.${t}`),r=y.forwardRef((o,i)=>{const{asChild:s,...a}=o,l=s?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),h.jsx(l,{...a,ref:i})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{});function Au(e,t){e&&Oc.flushSync(()=>e.dispatchEvent(t))}function Fe(e){const t=y.useRef(e);return y.useEffect(()=>{t.current=e}),y.useMemo(()=>(...n)=>{var r;return(r=t.current)==null?void 0:r.call(t,...n)},[])}function qr({prop:e,defaultProp:t,onChange:n=()=>{}}){const[r,o]=kT({defaultProp:t,onChange:n}),i=e!==void 0,s=i?e:r,a=Fe(n),l=y.useCallback(u=>{if(i){const d=typeof u=="function"?u(e):u;d!==e&&a(d)}else o(u)},[i,e,o,a]);return[s,l]}function kT({defaultProp:e,onChange:t}){const n=y.useState(e),[r]=n,o=y.useRef(r),i=Fe(t);return y.useEffect(()=>{o.current!==r&&(i(r),o.current=r)},[r,o,i]),n}var PT=y.createContext(void 0);function o0(e){const t=y.useContext(PT);return e||t||"ltr"}var Pt=globalThis!=null&&globalThis.document?y.useLayoutEffect:()=>{};function TT(e,t){return y.useReducer((n,r)=>t[n][r]??n,e)}var Jt=e=>{const{present:t,children:n}=e,r=NT(t),o=typeof n=="function"?n({present:r.isPresent}):y.Children.only(n),i=Ie(r.ref,bT(o));return typeof n=="function"||r.isPresent?y.cloneElement(o,{ref:i}):null};Jt.displayName="Presence";function NT(e){const[t,n]=y.useState(),r=y.useRef({}),o=y.useRef(e),i=y.useRef("none"),s=e?"mounted":"unmounted",[a,l]=TT(s,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return y.useEffect(()=>{const u=Ui(r.current);i.current=a==="mounted"?u:"none"},[a]),Pt(()=>{const u=r.current,c=o.current;if(c!==e){const f=i.current,x=Ui(u);e?l("MOUNT"):x==="none"||(u==null?void 0:u.display)==="none"?l("UNMOUNT"):l(c&&f!==x?"ANIMATION_OUT":"UNMOUNT"),o.current=e}},[e,l]),Pt(()=>{if(t){let u;const c=t.ownerDocument.defaultView??window,d=x=>{const g=Ui(r.current).includes(x.animationName);if(x.target===t&&g&&(l("ANIMATION_END"),!o.current)){const C=t.style.animationFillMode;t.style.animationFillMode="forwards",u=c.setTimeout(()=>{t.style.animationFillMode==="forwards"&&(t.style.animationFillMode=C)})}},f=x=>{x.target===t&&(i.current=Ui(r.current))};return t.addEventListener("animationstart",f),t.addEventListener("animationcancel",d),t.addEventListener("animationend",d),()=>{c.clearTimeout(u),t.removeEventListener("animationstart",f),t.removeEventListener("animationcancel",d),t.removeEventListener("animationend",d)}}else l("ANIMATION_END")},[t,l]),{isPresent:["mounted","unmountSuspended"].includes(a),ref:y.useCallback(u=>{u&&(r.current=getComputedStyle(u)),n(u)},[])}}function Ui(e){return(e==null?void 0:e.animationName)||"none"}function bT(e){var r,o;let t=(r=Object.getOwnPropertyDescriptor(e.props,"ref"))==null?void 0:r.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=(o=Object.getOwnPropertyDescriptor(e,"ref"))==null?void 0:o.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var MT=kx[" useId ".trim().toString()]||(()=>{}),RT=0;function Gn(e){const[t,n]=y.useState(MT());return Pt(()=>{e||n(r=>r??String(RT++))},[e]),e||(t?`radix-${t}`:"")}function yd(e){const t=e+"CollectionProvider",[n,r]=Zr(t),[o,i]=n(t,{collectionRef:{current:null},itemMap:new Map}),s=g=>{const{scope:C,children:p}=g,m=pe.useRef(null),v=pe.useRef(new Map).current;return h.jsx(o,{scope:C,itemMap:v,collectionRef:m,children:p})};s.displayName=t;const a=e+"CollectionSlot",l=Zo(a),u=pe.forwardRef((g,C)=>{const{scope:p,children:m}=g,v=i(a,p),S=Ie(C,v.collectionRef);return h.jsx(l,{ref:S,children:m})});u.displayName=a;const c=e+"CollectionItemSlot",d="data-radix-collection-item",f=Zo(c),x=pe.forwardRef((g,C)=>{const{scope:p,children:m,...v}=g,S=pe.useRef(null),E=Ie(C,S),P=i(c,p);return pe.useEffect(()=>(P.itemMap.set(S,{ref:S,...v}),()=>void P.itemMap.delete(S))),h.jsx(f,{[d]:"",ref:E,children:m})});x.displayName=c;function w(g){const C=i(e+"CollectionConsumer",g);return pe.useCallback(()=>{const m=C.collectionRef.current;if(!m)return[];const v=Array.from(m.querySelectorAll(`[${d}]`));return Array.from(C.itemMap.values()).sort((P,k)=>v.indexOf(P.ref.current)-v.indexOf(k.ref.current))},[C.collectionRef,C.itemMap])}return[{Provider:s,Slot:u,ItemSlot:x},w,r]}function AT(e,t=globalThis==null?void 0:globalThis.document){const n=Fe(e);y.useEffect(()=>{const r=o=>{o.key==="Escape"&&n(o)};return t.addEventListener("keydown",r,{capture:!0}),()=>t.removeEventListener("keydown",r,{capture:!0})},[n,t])}var jT="DismissableLayer",ju="dismissableLayer.update",LT="dismissableLayer.pointerDownOutside",DT="dismissableLayer.focusOutside",jh,i0=y.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),xd=y.forwardRef((e,t)=>{const{disableOutsidePointerEvents:n=!1,onEscapeKeyDown:r,onPointerDownOutside:o,onFocusOutside:i,onInteractOutside:s,onDismiss:a,...l}=e,u=y.useContext(i0),[c,d]=y.useState(null),f=(c==null?void 0:c.ownerDocument)??(globalThis==null?void 0:globalThis.document),[,x]=y.useState({}),w=Ie(t,k=>d(k)),g=Array.from(u.layers),[C]=[...u.layersWithOutsidePointerEventsDisabled].slice(-1),p=g.indexOf(C),m=c?g.indexOf(c):-1,v=u.layersWithOutsidePointerEventsDisabled.size>0,S=m>=p,E=_T(k=>{const T=k.target,N=[...u.branches].some(M=>M.contains(T));!S||N||(o==null||o(k),s==null||s(k),k.defaultPrevented||a==null||a())},f),P=VT(k=>{const T=k.target;[...u.branches].some(M=>M.contains(T))||(i==null||i(k),s==null||s(k),k.defaultPrevented||a==null||a())},f);return AT(k=>{m===u.layers.size-1&&(r==null||r(k),!k.defaultPrevented&&a&&(k.preventDefault(),a()))},f),y.useEffect(()=>{if(c)return n&&(u.layersWithOutsidePointerEventsDisabled.size===0&&(jh=f.body.style.pointerEvents,f.body.style.pointerEvents="none"),u.layersWithOutsidePointerEventsDisabled.add(c)),u.layers.add(c),Lh(),()=>{n&&u.layersWithOutsidePointerEventsDisabled.size===1&&(f.body.style.pointerEvents=jh)}},[c,f,n,u]),y.useEffect(()=>()=>{c&&(u.layers.delete(c),u.layersWithOutsidePointerEventsDisabled.delete(c),Lh())},[c,u]),y.useEffect(()=>{const k=()=>x({});return document.addEventListener(ju,k),()=>document.removeEventListener(ju,k)},[]),h.jsx(H.div,{...l,ref:w,style:{pointerEvents:v?S?"auto":"none":void 0,...e.style},onFocusCapture:q(e.onFocusCapture,P.onFocusCapture),onBlurCapture:q(e.onBlurCapture,P.onBlurCapture),onPointerDownCapture:q(e.onPointerDownCapture,E.onPointerDownCapture)})});xd.displayName=jT;var IT="DismissableLayerBranch",OT=y.forwardRef((e,t)=>{const n=y.useContext(i0),r=y.useRef(null),o=Ie(t,r);return y.useEffect(()=>{const i=r.current;if(i)return n.branches.add(i),()=>{n.branches.delete(i)}},[n.branches]),h.jsx(H.div,{...e,ref:o})});OT.displayName=IT;function _T(e,t=globalThis==null?void 0:globalThis.document){const n=Fe(e),r=y.useRef(!1),o=y.useRef(()=>{});return y.useEffect(()=>{const i=a=>{if(a.target&&!r.current){let l=function(){s0(LT,n,u,{discrete:!0})};const u={originalEvent:a};a.pointerType==="touch"?(t.removeEventListener("click",o.current),o.current=l,t.addEventListener("click",o.current,{once:!0})):l()}else t.removeEventListener("click",o.current);r.current=!1},s=window.setTimeout(()=>{t.addEventListener("pointerdown",i)},0);return()=>{window.clearTimeout(s),t.removeEventListener("pointerdown",i),t.removeEventListener("click",o.current)}},[t,n]),{onPointerDownCapture:()=>r.current=!0}}function VT(e,t=globalThis==null?void 0:globalThis.document){const n=Fe(e),r=y.useRef(!1);return y.useEffect(()=>{const o=i=>{i.target&&!r.current&&s0(DT,n,{originalEvent:i},{discrete:!1})};return t.addEventListener("focusin",o),()=>t.removeEventListener("focusin",o)},[t,n]),{onFocusCapture:()=>r.current=!0,onBlurCapture:()=>r.current=!1}}function Lh(){const e=new CustomEvent(ju);document.dispatchEvent(e)}function s0(e,t,n,{discrete:r}){const o=n.originalEvent.target,i=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});t&&o.addEventListener(e,t,{once:!0}),r?Au(o,i):o.dispatchEvent(i)}function FT(e){const t=y.useRef({value:e,previous:e});return y.useMemo(()=>(t.current.value!==e&&(t.current.previous=t.current.value,t.current.value=e),t.current.previous),[e])}var zT="VisuallyHidden",a0=y.forwardRef((e,t)=>h.jsx(H.span,{...e,ref:t,style:{position:"absolute",border:0,width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",wordWrap:"normal",...e.style}}));a0.displayName=zT;var BT=a0,Jr="NavigationMenu",[wd,l0,$T]=yd(Jr),[Lu,UT,WT]=yd(Jr),[Cd,k5]=Zr(Jr,[$T,WT]),[HT,ht]=Cd(Jr),[KT,GT]=Cd(Jr),u0=y.forwardRef((e,t)=>{const{__scopeNavigationMenu:n,value:r,onValueChange:o,defaultValue:i,delayDuration:s=200,skipDelayDuration:a=300,orientation:l="horizontal",dir:u,...c}=e,[d,f]=y.useState(null),x=Ie(t,N=>f(N)),w=o0(u),g=y.useRef(0),C=y.useRef(0),p=y.useRef(0),[m,v]=y.useState(!0),[S="",E]=qr({prop:r,onChange:N=>{const M=N!=="",D=a>0;M?(window.clearTimeout(p.current),D&&v(!1)):(window.clearTimeout(p.current),p.current=window.setTimeout(()=>v(!0),a)),o==null||o(N)},defaultProp:i}),P=y.useCallback(()=>{window.clearTimeout(C.current),C.current=window.setTimeout(()=>E(""),150)},[E]),k=y.useCallback(N=>{window.clearTimeout(C.current),E(N)},[E]),T=y.useCallback(N=>{S===N?window.clearTimeout(C.current):g.current=window.setTimeout(()=>{window.clearTimeout(C.current),E(N)},s)},[S,E,s]);return y.useEffect(()=>()=>{window.clearTimeout(g.current),window.clearTimeout(C.current),window.clearTimeout(p.current)},[]),h.jsx(d0,{scope:n,isRootMenu:!0,value:S,dir:w,orientation:l,rootNavigationMenu:d,onTriggerEnter:N=>{window.clearTimeout(g.current),m?T(N):k(N)},onTriggerLeave:()=>{window.clearTimeout(g.current),P()},onContentEnter:()=>window.clearTimeout(C.current),onContentLeave:P,onItemSelect:N=>{E(M=>M===N?"":N)},onItemDismiss:()=>E(""),children:h.jsx(H.nav,{"aria-label":"Main","data-orientation":l,dir:w,...c,ref:x})})});u0.displayName=Jr;var c0="NavigationMenuSub",YT=y.forwardRef((e,t)=>{const{__scopeNavigationMenu:n,value:r,onValueChange:o,defaultValue:i,orientation:s="horizontal",...a}=e,l=ht(c0,n),[u="",c]=qr({prop:r,onChange:o,defaultProp:i});return h.jsx(d0,{scope:n,isRootMenu:!1,value:u,dir:l.dir,orientation:s,rootNavigationMenu:l.rootNavigationMenu,onTriggerEnter:d=>c(d),onItemSelect:d=>c(d),onItemDismiss:()=>c(""),children:h.jsx(H.div,{"data-orientation":s,...a,ref:t})})});YT.displayName=c0;var d0=e=>{const{scope:t,isRootMenu:n,rootNavigationMenu:r,dir:o,orientation:i,children:s,value:a,onItemSelect:l,onItemDismiss:u,onTriggerEnter:c,onTriggerLeave:d,onContentEnter:f,onContentLeave:x}=e,[w,g]=y.useState(null),[C,p]=y.useState(new Map),[m,v]=y.useState(null);return h.jsx(HT,{scope:t,isRootMenu:n,rootNavigationMenu:r,value:a,previousValue:FT(a),baseId:Gn(),dir:o,orientation:i,viewport:w,onViewportChange:g,indicatorTrack:m,onIndicatorTrackChange:v,onTriggerEnter:Fe(c),onTriggerLeave:Fe(d),onContentEnter:Fe(f),onContentLeave:Fe(x),onItemSelect:Fe(l),onItemDismiss:Fe(u),onViewportContentChange:y.useCallback((S,E)=>{p(P=>(P.set(S,E),new Map(P)))},[]),onViewportContentRemove:y.useCallback(S=>{p(E=>E.has(S)?(E.delete(S),new Map(E)):E)},[]),children:h.jsx(wd.Provider,{scope:t,children:h.jsx(KT,{scope:t,items:C,children:s})})})},f0="NavigationMenuList",p0=y.forwardRef((e,t)=>{const{__scopeNavigationMenu:n,...r}=e,o=ht(f0,n),i=h.jsx(H.ul,{"data-orientation":o.orientation,...r,ref:t});return h.jsx(H.div,{style:{position:"relative"},ref:o.onIndicatorTrackChange,children:h.jsx(wd.Slot,{scope:n,children:o.isRootMenu?h.jsx(S0,{asChild:!0,children:i}):i})})});p0.displayName=f0;var h0="NavigationMenuItem",[QT,m0]=Cd(h0),g0=y.forwardRef((e,t)=>{const{__scopeNavigationMenu:n,value:r,...o}=e,i=Gn(),s=r||i||"LEGACY_REACT_AUTO_VALUE",a=y.useRef(null),l=y.useRef(null),u=y.useRef(null),c=y.useRef(()=>{}),d=y.useRef(!1),f=y.useCallback((w="start")=>{if(a.current){c.current();const g=Iu(a.current);g.length&&kd(w==="start"?g:g.reverse())}},[]),x=y.useCallback(()=>{if(a.current){const w=Iu(a.current);w.length&&(c.current=r4(w))}},[]);return h.jsx(QT,{scope:n,value:s,triggerRef:l,contentRef:a,focusProxyRef:u,wasEscapeCloseRef:d,onEntryKeyDown:f,onFocusProxyEnter:f,onRootContentClose:x,onContentFocusOutside:x,children:h.jsx(H.li,{...o,ref:t})})});g0.displayName=h0;var Du="NavigationMenuTrigger",v0=y.forwardRef((e,t)=>{const{__scopeNavigationMenu:n,disabled:r,...o}=e,i=ht(Du,e.__scopeNavigationMenu),s=m0(Du,e.__scopeNavigationMenu),a=y.useRef(null),l=Ie(a,s.triggerRef,t),u=k0(i.baseId,s.value),c=P0(i.baseId,s.value),d=y.useRef(!1),f=y.useRef(!1),x=s.value===i.value;return h.jsxs(h.Fragment,{children:[h.jsx(wd.ItemSlot,{scope:n,value:s.value,children:h.jsx(E0,{asChild:!0,children:h.jsx(H.button,{id:u,disabled:r,"data-disabled":r?"":void 0,"data-state":Pd(x),"aria-expanded":x,"aria-controls":c,...o,ref:l,onPointerEnter:q(e.onPointerEnter,()=>{f.current=!1,s.wasEscapeCloseRef.current=!1}),onPointerMove:q(e.onPointerMove,Us(()=>{r||f.current||s.wasEscapeCloseRef.current||d.current||(i.onTriggerEnter(s.value),d.current=!0)})),onPointerLeave:q(e.onPointerLeave,Us(()=>{r||(i.onTriggerLeave(),d.current=!1)})),onClick:q(e.onClick,()=>{i.onItemSelect(s.value),f.current=x}),onKeyDown:q(e.onKeyDown,w=>{const C={horizontal:"ArrowDown",vertical:i.dir==="rtl"?"ArrowLeft":"ArrowRight"}[i.orientation];x&&w.key===C&&(s.onEntryKeyDown(),w.preventDefault())})})})}),x&&h.jsxs(h.Fragment,{children:[h.jsx(BT,{"aria-hidden":!0,tabIndex:0,ref:s.focusProxyRef,onFocus:w=>{const g=s.contentRef.current,C=w.relatedTarget,p=C===a.current,m=g==null?void 0:g.contains(C);(p||!m)&&s.onFocusProxyEnter(p?"start":"end")}}),i.viewport&&h.jsx("span",{"aria-owns":c})]})]})});v0.displayName=Du;var XT="NavigationMenuLink",Dh="navigationMenu.linkSelect",ZT=y.forwardRef((e,t)=>{const{__scopeNavigationMenu:n,active:r,onSelect:o,...i}=e;return h.jsx(E0,{asChild:!0,children:h.jsx(H.a,{"data-active":r?"":void 0,"aria-current":r?"page":void 0,...i,ref:t,onClick:q(e.onClick,s=>{const a=s.target,l=new CustomEvent(Dh,{bubbles:!0,cancelable:!0});if(a.addEventListener(Dh,u=>o==null?void 0:o(u),{once:!0}),Au(a,l),!l.defaultPrevented&&!s.metaKey){const u=new CustomEvent(us,{bubbles:!0,cancelable:!0});Au(a,u)}},{checkForDefaultPrevented:!1})})})});ZT.displayName=XT;var Sd="NavigationMenuIndicator",y0=y.forwardRef((e,t)=>{const{forceMount:n,...r}=e,o=ht(Sd,e.__scopeNavigationMenu),i=!!o.value;return o.indicatorTrack?vv.createPortal(h.jsx(Jt,{present:n||i,children:h.jsx(qT,{...r,ref:t})}),o.indicatorTrack):null});y0.displayName=Sd;var qT=y.forwardRef((e,t)=>{const{__scopeNavigationMenu:n,...r}=e,o=ht(Sd,n),i=l0(n),[s,a]=y.useState(null),[l,u]=y.useState(null),c=o.orientation==="horizontal",d=!!o.value;y.useEffect(()=>{var g;const w=(g=i().find(C=>C.value===o.value))==null?void 0:g.ref.current;w&&a(w)},[i,o.value]);const f=()=>{s&&u({size:c?s.offsetWidth:s.offsetHeight,offset:c?s.offsetLeft:s.offsetTop})};return Ou(s,f),Ou(o.indicatorTrack,f),l?h.jsx(H.div,{"aria-hidden":!0,"data-state":d?"visible":"hidden","data-orientation":o.orientation,...r,ref:t,style:{position:"absolute",...c?{left:0,width:l.size+"px",transform:`translateX(${l.offset}px)`}:{top:0,height:l.size+"px",transform:`translateY(${l.offset}px)`},...r.style}}):null}),Wr="NavigationMenuContent",x0=y.forwardRef((e,t)=>{const{forceMount:n,...r}=e,o=ht(Wr,e.__scopeNavigationMenu),i=m0(Wr,e.__scopeNavigationMenu),s=Ie(i.contentRef,t),a=i.value===o.value,l={value:i.value,triggerRef:i.triggerRef,focusProxyRef:i.focusProxyRef,wasEscapeCloseRef:i.wasEscapeCloseRef,onContentFocusOutside:i.onContentFocusOutside,onRootContentClose:i.onRootContentClose,...r};return o.viewport?h.jsx(JT,{forceMount:n,...l,ref:s}):h.jsx(Jt,{present:n||a,children:h.jsx(w0,{"data-state":Pd(a),...l,ref:s,onPointerEnter:q(e.onPointerEnter,o.onContentEnter),onPointerLeave:q(e.onPointerLeave,Us(o.onContentLeave)),style:{pointerEvents:!a&&o.isRootMenu?"none":void 0,...l.style}})})});x0.displayName=Wr;var JT=y.forwardRef((e,t)=>{const n=ht(Wr,e.__scopeNavigationMenu),{onViewportContentChange:r,onViewportContentRemove:o}=n;return Pt(()=>{r(e.value,{ref:t,...e})},[e,t,r]),Pt(()=>()=>o(e.value),[e.value,o]),null}),us="navigationMenu.rootContentDismiss",w0=y.forwardRef((e,t)=>{const{__scopeNavigationMenu:n,value:r,triggerRef:o,focusProxyRef:i,wasEscapeCloseRef:s,onRootContentClose:a,onContentFocusOutside:l,...u}=e,c=ht(Wr,n),d=y.useRef(null),f=Ie(d,t),x=k0(c.baseId,r),w=P0(c.baseId,r),g=l0(n),C=y.useRef(null),{onItemDismiss:p}=c;y.useEffect(()=>{const v=d.current;if(c.isRootMenu&&v){const S=()=>{var E;p(),a(),v.contains(document.activeElement)&&((E=o.current)==null||E.focus())};return v.addEventListener(us,S),()=>v.removeEventListener(us,S)}},[c.isRootMenu,e.value,o,p,a]);const m=y.useMemo(()=>{const S=g().map(M=>M.value);c.dir==="rtl"&&S.reverse();const E=S.indexOf(c.value),P=S.indexOf(c.previousValue),k=r===c.value,T=P===S.indexOf(r);if(!k&&!T)return C.current;const N=(()=>{if(E!==P){if(k&&P!==-1)return E>P?"from-end":"from-start";if(T&&E!==-1)return E>P?"to-start":"to-end"}return null})();return C.current=N,N},[c.previousValue,c.value,c.dir,g,r]);return h.jsx(S0,{asChild:!0,children:h.jsx(xd,{id:w,"aria-labelledby":x,"data-motion":m,"data-orientation":c.orientation,...u,ref:f,disableOutsidePointerEvents:!1,onDismiss:()=>{var S;const v=new Event(us,{bubbles:!0,cancelable:!0});(S=d.current)==null||S.dispatchEvent(v)},onFocusOutside:q(e.onFocusOutside,v=>{var E;l();const S=v.target;(E=c.rootNavigationMenu)!=null&&E.contains(S)&&v.preventDefault()}),onPointerDownOutside:q(e.onPointerDownOutside,v=>{var k;const S=v.target,E=g().some(T=>{var N;return(N=T.ref.current)==null?void 0:N.contains(S)}),P=c.isRootMenu&&((k=c.viewport)==null?void 0:k.contains(S));(E||P||!c.isRootMenu)&&v.preventDefault()}),onKeyDown:q(e.onKeyDown,v=>{var P;const S=v.altKey||v.ctrlKey||v.metaKey;if(v.key==="Tab"&&!S){const k=Iu(v.currentTarget),T=document.activeElement,N=k.findIndex(O=>O===T),D=v.shiftKey?k.slice(0,N).reverse():k.slice(N+1,k.length);kd(D)?v.preventDefault():(P=i.current)==null||P.focus()}}),onEscapeKeyDown:q(e.onEscapeKeyDown,v=>{s.current=!0})})})}),Ed="NavigationMenuViewport",C0=y.forwardRef((e,t)=>{const{forceMount:n,...r}=e,i=!!ht(Ed,e.__scopeNavigationMenu).value;return h.jsx(Jt,{present:n||i,children:h.jsx(e4,{...r,ref:t})})});C0.displayName=Ed;var e4=y.forwardRef((e,t)=>{const{__scopeNavigationMenu:n,children:r,...o}=e,i=ht(Ed,n),s=Ie(t,i.onViewportChange),a=GT(Wr,e.__scopeNavigationMenu),[l,u]=y.useState(null),[c,d]=y.useState(null),f=l?(l==null?void 0:l.width)+"px":void 0,x=l?(l==null?void 0:l.height)+"px":void 0,w=!!i.value,g=w?i.value:i.previousValue;return Ou(c,()=>{c&&u({width:c.offsetWidth,height:c.offsetHeight})}),h.jsx(H.div,{"data-state":Pd(w),"data-orientation":i.orientation,...o,ref:s,style:{pointerEvents:!w&&i.isRootMenu?"none":void 0,"--radix-navigation-menu-viewport-width":f,"--radix-navigation-menu-viewport-height":x,...o.style},onPointerEnter:q(e.onPointerEnter,i.onContentEnter),onPointerLeave:q(e.onPointerLeave,Us(i.onContentLeave)),children:Array.from(a.items).map(([p,{ref:m,forceMount:v,...S}])=>{const E=g===p;return h.jsx(Jt,{present:v||E,children:h.jsx(w0,{...S,ref:_c(m,P=>{E&&P&&d(P)})})},p)})})}),t4="FocusGroup",S0=y.forwardRef((e,t)=>{const{__scopeNavigationMenu:n,...r}=e,o=ht(t4,n);return h.jsx(Lu.Provider,{scope:n,children:h.jsx(Lu.Slot,{scope:n,children:h.jsx(H.div,{dir:o.dir,...r,ref:t})})})}),Ih=["ArrowRight","ArrowLeft","ArrowUp","ArrowDown"],n4="FocusGroupItem",E0=y.forwardRef((e,t)=>{const{__scopeNavigationMenu:n,...r}=e,o=UT(n),i=ht(n4,n);return h.jsx(Lu.ItemSlot,{scope:n,children:h.jsx(H.button,{...r,ref:t,onKeyDown:q(e.onKeyDown,s=>{if(["Home","End",...Ih].includes(s.key)){let l=o().map(d=>d.ref.current);if([i.dir==="rtl"?"ArrowRight":"ArrowLeft","ArrowUp","End"].includes(s.key)&&l.reverse(),Ih.includes(s.key)){const d=l.indexOf(s.currentTarget);l=l.slice(d+1)}setTimeout(()=>kd(l)),s.preventDefault()}})})})});function Iu(e){const t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:r=>{const o=r.tagName==="INPUT"&&r.type==="hidden";return r.disabled||r.hidden||o?NodeFilter.FILTER_SKIP:r.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t}function kd(e){const t=document.activeElement;return e.some(n=>n===t?!0:(n.focus(),document.activeElement!==t))}function r4(e){return e.forEach(t=>{t.dataset.tabindex=t.getAttribute("tabindex")||"",t.setAttribute("tabindex","-1")}),()=>{e.forEach(t=>{const n=t.dataset.tabindex;t.setAttribute("tabindex",n)})}}function Ou(e,t){const n=Fe(t);Pt(()=>{let r=0;if(e){const o=new ResizeObserver(()=>{cancelAnimationFrame(r),r=window.requestAnimationFrame(n)});return o.observe(e),()=>{window.cancelAnimationFrame(r),o.unobserve(e)}}},[e,n])}function Pd(e){return e?"open":"closed"}function k0(e,t){return`${e}-trigger-${t}`}function P0(e,t){return`${e}-content-${t}`}function Us(e){return t=>t.pointerType==="mouse"?e(t):void 0}var T0=u0,N0=p0,o4=g0,b0=v0,M0=y0,R0=x0,A0=C0;const j0=y.forwardRef(({className:e,children:t,...n},r)=>h.jsxs(T0,{ref:r,className:$("relative z-10 flex max-w-max flex-1 items-center justify-center",e),...n,children:[t,h.jsx(D0,{})]}));j0.displayName=T0.displayName;const L0=y.forwardRef(({className:e,...t},n)=>h.jsx(N0,{ref:n,className:$("group flex flex-1 list-none items-center justify-center space-x-1",e),...t}));L0.displayName=N0.displayName;const i4=o4,s4=ua("group inline-flex h-10 w-max items-center justify-center rounded-md bg-background px-4 py-2 text-sm font-medium transition-colors hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground focus:outline-none disabled:pointer-events-none disabled:opacity-50 data-[active]:bg-accent/50 data-[state=open]:bg-accent/50"),a4=y.forwardRef(({className:e,children:t,...n},r)=>h.jsxs(b0,{ref:r,className:$(s4(),"group",e),...n,children:[t," ",h.jsx(e0,{className:"relative top-[1px] ml-1 h-3 w-3 transition duration-200 group-data-[state=open]:rotate-180","aria-hidden":"true"})]}));a4.displayName=b0.displayName;const l4=y.forwardRef(({className:e,...t},n)=>h.jsx(R0,{ref:n,className:$("left-0 top-0 w-full data-[motion^=from-]:animate-in data-[motion^=to-]:animate-out data-[motion^=from-]:fade-in data-[motion^=to-]:fade-out data-[motion=from-end]:slide-in-from-right-52 data-[motion=from-start]:slide-in-from-left-52 data-[motion=to-end]:slide-out-to-right-52 data-[motion=to-start]:slide-out-to-left-52 md:absolute md:w-auto ",e),...t}));l4.displayName=R0.displayName;const D0=y.forwardRef(({className:e,...t},n)=>h.jsx("div",{className:$("absolute left-0 top-full flex justify-center"),children:h.jsx(A0,{className:$("origin-top-center relative mt-1.5 h-[var(--radix-navigation-menu-viewport-height)] w-full overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-90 md:w-[var(--radix-navigation-menu-viewport-width)]",e),ref:n,...t})}));D0.displayName=A0.displayName;const u4=y.forwardRef(({className:e,...t},n)=>h.jsx(M0,{ref:n,className:$("top-full z-[1] flex h-1.5 items-end justify-center overflow-hidden data-[state=visible]:animate-in data-[state=hidden]:animate-out data-[state=hidden]:fade-out data-[state=visible]:fade-in",e),...t,children:h.jsx("div",{className:"relative top-[60%] h-2 w-2 rotate-45 rounded-tl-sm bg-border shadow-md"})}));u4.displayName=M0.displayName;var cl="focusScope.autoFocusOnMount",dl="focusScope.autoFocusOnUnmount",Oh={bubbles:!1,cancelable:!0},c4="FocusScope",I0=y.forwardRef((e,t)=>{const{loop:n=!1,trapped:r=!1,onMountAutoFocus:o,onUnmountAutoFocus:i,...s}=e,[a,l]=y.useState(null),u=Fe(o),c=Fe(i),d=y.useRef(null),f=Ie(t,g=>l(g)),x=y.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;y.useEffect(()=>{if(r){let g=function(v){if(x.paused||!a)return;const S=v.target;a.contains(S)?d.current=S:an(d.current,{select:!0})},C=function(v){if(x.paused||!a)return;const S=v.relatedTarget;S!==null&&(a.contains(S)||an(d.current,{select:!0}))},p=function(v){if(document.activeElement===document.body)for(const E of v)E.removedNodes.length>0&&an(a)};document.addEventListener("focusin",g),document.addEventListener("focusout",C);const m=new MutationObserver(p);return a&&m.observe(a,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",g),document.removeEventListener("focusout",C),m.disconnect()}}},[r,a,x.paused]),y.useEffect(()=>{if(a){Vh.add(x);const g=document.activeElement;if(!a.contains(g)){const p=new CustomEvent(cl,Oh);a.addEventListener(cl,u),a.dispatchEvent(p),p.defaultPrevented||(d4(g4(O0(a)),{select:!0}),document.activeElement===g&&an(a))}return()=>{a.removeEventListener(cl,u),setTimeout(()=>{const p=new CustomEvent(dl,Oh);a.addEventListener(dl,c),a.dispatchEvent(p),p.defaultPrevented||an(g??document.body,{select:!0}),a.removeEventListener(dl,c),Vh.remove(x)},0)}}},[a,u,c,x]);const w=y.useCallback(g=>{if(!n&&!r||x.paused)return;const C=g.key==="Tab"&&!g.altKey&&!g.ctrlKey&&!g.metaKey,p=document.activeElement;if(C&&p){const m=g.currentTarget,[v,S]=f4(m);v&&S?!g.shiftKey&&p===S?(g.preventDefault(),n&&an(v,{select:!0})):g.shiftKey&&p===v&&(g.preventDefault(),n&&an(S,{select:!0})):p===m&&g.preventDefault()}},[n,r,x.paused]);return h.jsx(H.div,{tabIndex:-1,...s,ref:f,onKeyDown:w})});I0.displayName=c4;function d4(e,{select:t=!1}={}){const n=document.activeElement;for(const r of e)if(an(r,{select:t}),document.activeElement!==n)return}function f4(e){const t=O0(e),n=_h(t,e),r=_h(t.reverse(),e);return[n,r]}function O0(e){const t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:r=>{const o=r.tagName==="INPUT"&&r.type==="hidden";return r.disabled||r.hidden||o?NodeFilter.FILTER_SKIP:r.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t}function _h(e,t){for(const n of e)if(!p4(n,{upTo:t}))return n}function p4(e,{upTo:t}){if(getComputedStyle(e).visibility==="hidden")return!0;for(;e;){if(t!==void 0&&e===t)return!1;if(getComputedStyle(e).display==="none")return!0;e=e.parentElement}return!1}function h4(e){return e instanceof HTMLInputElement&&"select"in e}function an(e,{select:t=!1}={}){if(e&&e.focus){const n=document.activeElement;e.focus({preventScroll:!0}),e!==n&&h4(e)&&t&&e.select()}}var Vh=m4();function m4(){let e=[];return{add(t){const n=e[0];t!==n&&(n==null||n.pause()),e=Fh(e,t),e.unshift(t)},remove(t){var n;e=Fh(e,t),(n=e[0])==null||n.resume()}}}function Fh(e,t){const n=[...e],r=n.indexOf(t);return r!==-1&&n.splice(r,1),n}function g4(e){return e.filter(t=>t.tagName!=="A")}var v4="Portal",_0=y.forwardRef((e,t)=>{var a;const{container:n,...r}=e,[o,i]=y.useState(!1);Pt(()=>i(!0),[]);const s=n||o&&((a=globalThis==null?void 0:globalThis.document)==null?void 0:a.body);return s?vv.createPortal(h.jsx(H.div,{...r,ref:t}),s):null});_0.displayName=v4;var fl=0;function y4(){y.useEffect(()=>{const e=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",e[0]??zh()),document.body.insertAdjacentElement("beforeend",e[1]??zh()),fl++,()=>{fl===1&&document.querySelectorAll("[data-radix-focus-guard]").forEach(t=>t.remove()),fl--}},[])}function zh(){const e=document.createElement("span");return e.setAttribute("data-radix-focus-guard",""),e.tabIndex=0,e.style.outline="none",e.style.opacity="0",e.style.position="fixed",e.style.pointerEvents="none",e}var At=function(){return At=Object.assign||function(t){for(var n,r=1,o=arguments.length;r "u")return I4;var t=O4(e),n=document.documentElement.clientWidth,r=window.innerWidth;return{left:t[0],top:t[1],right:t[2],gap:Math.max(0,r-n+t[2]-t[0])}},V4=B0(),Dr="data-scroll-locked",F4=function(e,t,n,r){var o=e.left,i=e.top,s=e.right,a=e.gap;return n===void 0&&(n="margin"),` + .`.concat(w4,` { + overflow: hidden `).concat(r,`; + padding-right: `).concat(a,"px ").concat(r,`; + } + body[`).concat(Dr,`] { + overflow: hidden `).concat(r,`; + overscroll-behavior: contain; + `).concat([t&&"position: relative ".concat(r,";"),n==="margin"&&` + padding-left: `.concat(o,`px; + padding-top: `).concat(i,`px; + padding-right: `).concat(s,`px; + margin-left:0; + margin-top:0; + margin-right: `).concat(a,"px ").concat(r,`; + `),n==="padding"&&"padding-right: ".concat(a,"px ").concat(r,";")].filter(Boolean).join(""),` + } + + .`).concat(cs,` { + right: `).concat(a,"px ").concat(r,`; + } + + .`).concat(ds,` { + margin-right: `).concat(a,"px ").concat(r,`; + } + + .`).concat(cs," .").concat(cs,` { + right: 0 `).concat(r,`; + } + + .`).concat(ds," .").concat(ds,` { + margin-right: 0 `).concat(r,`; + } + + body[`).concat(Dr,`] { + `).concat(C4,": ").concat(a,`px; + } +`)},$h=function(){var e=parseInt(document.body.getAttribute(Dr)||"0",10);return isFinite(e)?e:0},z4=function(){y.useEffect(function(){return document.body.setAttribute(Dr,($h()+1).toString()),function(){var e=$h()-1;e<=0?document.body.removeAttribute(Dr):document.body.setAttribute(Dr,e.toString())}},[])},B4=function(e){var t=e.noRelative,n=e.noImportant,r=e.gapMode,o=r===void 0?"margin":r;z4();var i=y.useMemo(function(){return _4(o)},[o]);return y.createElement(V4,{styles:F4(i,!t,o,n?"":"!important")})},_u=!1;if(typeof window<"u")try{var Wi=Object.defineProperty({},"passive",{get:function(){return _u=!0,!0}});window.addEventListener("test",Wi,Wi),window.removeEventListener("test",Wi,Wi)}catch{_u=!1}var ar=_u?{passive:!1}:!1,$4=function(e){return e.tagName==="TEXTAREA"},$0=function(e,t){if(!(e instanceof Element))return!1;var n=window.getComputedStyle(e);return n[t]!=="hidden"&&!(n.overflowY===n.overflowX&&!$4(e)&&n[t]==="visible")},U4=function(e){return $0(e,"overflowY")},W4=function(e){return $0(e,"overflowX")},Uh=function(e,t){var n=t.ownerDocument,r=t;do{typeof ShadowRoot<"u"&&r instanceof ShadowRoot&&(r=r.host);var o=U0(e,r);if(o){var i=W0(e,r),s=i[1],a=i[2];if(s>a)return!0}r=r.parentNode}while(r&&r!==n.body);return!1},H4=function(e){var t=e.scrollTop,n=e.scrollHeight,r=e.clientHeight;return[t,n,r]},K4=function(e){var t=e.scrollLeft,n=e.scrollWidth,r=e.clientWidth;return[t,n,r]},U0=function(e,t){return e==="v"?U4(t):W4(t)},W0=function(e,t){return e==="v"?H4(t):K4(t)},G4=function(e,t){return e==="h"&&t==="rtl"?-1:1},Y4=function(e,t,n,r,o){var i=G4(e,window.getComputedStyle(t).direction),s=i*r,a=n.target,l=t.contains(a),u=!1,c=s>0,d=0,f=0;do{var x=W0(e,a),w=x[0],g=x[1],C=x[2],p=g-C-i*w;(w||p)&&U0(e,a)&&(d+=p,f+=w),a instanceof ShadowRoot?a=a.host:a=a.parentNode}while(!l&&a!==document.body||l&&(t.contains(a)||t===a));return(c&&(Math.abs(d)<1||!o)||!c&&(Math.abs(f)<1||!o))&&(u=!0),u},Hi=function(e){return"changedTouches"in e?[e.changedTouches[0].clientX,e.changedTouches[0].clientY]:[0,0]},Wh=function(e){return[e.deltaX,e.deltaY]},Hh=function(e){return e&&"current"in e?e.current:e},Q4=function(e,t){return e[0]===t[0]&&e[1]===t[1]},X4=function(e){return` + .block-interactivity-`.concat(e,` {pointer-events: none;} + .allow-interactivity-`).concat(e,` {pointer-events: all;} +`)},Z4=0,lr=[];function q4(e){var t=y.useRef([]),n=y.useRef([0,0]),r=y.useRef(),o=y.useState(Z4++)[0],i=y.useState(B0)[0],s=y.useRef(e);y.useEffect(function(){s.current=e},[e]),y.useEffect(function(){if(e.inert){document.body.classList.add("block-interactivity-".concat(o));var g=x4([e.lockRef.current],(e.shards||[]).map(Hh),!0).filter(Boolean);return g.forEach(function(C){return C.classList.add("allow-interactivity-".concat(o))}),function(){document.body.classList.remove("block-interactivity-".concat(o)),g.forEach(function(C){return C.classList.remove("allow-interactivity-".concat(o))})}}},[e.inert,e.lockRef.current,e.shards]);var a=y.useCallback(function(g,C){if("touches"in g&&g.touches.length===2||g.type==="wheel"&&g.ctrlKey)return!s.current.allowPinchZoom;var p=Hi(g),m=n.current,v="deltaX"in g?g.deltaX:m[0]-p[0],S="deltaY"in g?g.deltaY:m[1]-p[1],E,P=g.target,k=Math.abs(v)>Math.abs(S)?"h":"v";if("touches"in g&&k==="h"&&P.type==="range")return!1;var T=Uh(k,P);if(!T)return!0;if(T?E=k:(E=k==="v"?"h":"v",T=Uh(k,P)),!T)return!1;if(!r.current&&"changedTouches"in g&&(v||S)&&(r.current=E),!E)return!0;var N=r.current||E;return Y4(N,C,g,N==="h"?v:S,!0)},[]),l=y.useCallback(function(g){var C=g;if(!(!lr.length||lr[lr.length-1]!==i)){var p="deltaY"in C?Wh(C):Hi(C),m=t.current.filter(function(E){return E.name===C.type&&(E.target===C.target||C.target===E.shadowParent)&&Q4(E.delta,p)})[0];if(m&&m.should){C.cancelable&&C.preventDefault();return}if(!m){var v=(s.current.shards||[]).map(Hh).filter(Boolean).filter(function(E){return E.contains(C.target)}),S=v.length>0?a(C,v[0]):!s.current.noIsolation;S&&C.cancelable&&C.preventDefault()}}},[]),u=y.useCallback(function(g,C,p,m){var v={name:g,delta:C,target:p,should:m,shadowParent:J4(p)};t.current.push(v),setTimeout(function(){t.current=t.current.filter(function(S){return S!==v})},1)},[]),c=y.useCallback(function(g){n.current=Hi(g),r.current=void 0},[]),d=y.useCallback(function(g){u(g.type,Wh(g),g.target,a(g,e.lockRef.current))},[]),f=y.useCallback(function(g){u(g.type,Hi(g),g.target,a(g,e.lockRef.current))},[]);y.useEffect(function(){return lr.push(i),e.setCallbacks({onScrollCapture:d,onWheelCapture:d,onTouchMoveCapture:f}),document.addEventListener("wheel",l,ar),document.addEventListener("touchmove",l,ar),document.addEventListener("touchstart",c,ar),function(){lr=lr.filter(function(g){return g!==i}),document.removeEventListener("wheel",l,ar),document.removeEventListener("touchmove",l,ar),document.removeEventListener("touchstart",c,ar)}},[]);var x=e.removeScrollBar,w=e.inert;return y.createElement(y.Fragment,null,w?y.createElement(i,{styles:X4(o)}):null,x?y.createElement(B4,{gapMode:e.gapMode}):null)}function J4(e){for(var t=null;e!==null;)e instanceof ShadowRoot&&(t=e.host,e=e.host),e=e.parentNode;return t}const e3=b4(z0,q4);var H0=y.forwardRef(function(e,t){return y.createElement(ha,At({},e,{ref:t,sideCar:e3}))});H0.classNames=ha.classNames;var t3=function(e){if(typeof document>"u")return null;var t=Array.isArray(e)?e[0]:e;return t.ownerDocument.body},ur=new WeakMap,Ki=new WeakMap,Gi={},gl=0,K0=function(e){return e&&(e.host||K0(e.parentNode))},n3=function(e,t){return t.map(function(n){if(e.contains(n))return n;var r=K0(n);return r&&e.contains(r)?r:(console.error("aria-hidden",n,"in not contained inside",e,". Doing nothing"),null)}).filter(function(n){return!!n})},r3=function(e,t,n,r){var o=n3(t,Array.isArray(e)?e:[e]);Gi[n]||(Gi[n]=new WeakMap);var i=Gi[n],s=[],a=new Set,l=new Set(o),u=function(d){!d||a.has(d)||(a.add(d),u(d.parentNode))};o.forEach(u);var c=function(d){!d||l.has(d)||Array.prototype.forEach.call(d.children,function(f){if(a.has(f))c(f);else try{var x=f.getAttribute(r),w=x!==null&&x!=="false",g=(ur.get(f)||0)+1,C=(i.get(f)||0)+1;ur.set(f,g),i.set(f,C),s.push(f),g===1&&w&&Ki.set(f,!0),C===1&&f.setAttribute(n,"true"),w||f.setAttribute(r,"true")}catch(p){console.error("aria-hidden: cannot operate on ",f,p)}})};return c(t),a.clear(),gl++,function(){s.forEach(function(d){var f=ur.get(d)-1,x=i.get(d)-1;ur.set(d,f),i.set(d,x),f||(Ki.has(d)||d.removeAttribute(r),Ki.delete(d)),x||d.removeAttribute(n)}),gl--,gl||(ur=new WeakMap,ur=new WeakMap,Ki=new WeakMap,Gi={})}},o3=function(e,t,n){n===void 0&&(n="data-aria-hidden");var r=Array.from(Array.isArray(e)?e:[e]),o=t3(e);return o?(r.push.apply(r,Array.from(o.querySelectorAll("[aria-live]"))),r3(r,o,n,"aria-hidden")):function(){return null}},Td="Dialog",[G0,P5]=Zr(Td),[i3,Tt]=G0(Td),Y0=e=>{const{__scopeDialog:t,children:n,open:r,defaultOpen:o,onOpenChange:i,modal:s=!0}=e,a=y.useRef(null),l=y.useRef(null),[u=!1,c]=qr({prop:r,defaultProp:o,onChange:i});return h.jsx(i3,{scope:t,triggerRef:a,contentRef:l,contentId:Gn(),titleId:Gn(),descriptionId:Gn(),open:u,onOpenChange:c,onOpenToggle:y.useCallback(()=>c(d=>!d),[c]),modal:s,children:n})};Y0.displayName=Td;var Q0="DialogTrigger",s3=y.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,o=Tt(Q0,n),i=Ie(t,o.triggerRef);return h.jsx(H.button,{type:"button","aria-haspopup":"dialog","aria-expanded":o.open,"aria-controls":o.contentId,"data-state":Md(o.open),...r,ref:i,onClick:q(e.onClick,o.onOpenToggle)})});s3.displayName=Q0;var Nd="DialogPortal",[a3,X0]=G0(Nd,{forceMount:void 0}),Z0=e=>{const{__scopeDialog:t,forceMount:n,children:r,container:o}=e,i=Tt(Nd,t);return h.jsx(a3,{scope:t,forceMount:n,children:y.Children.map(r,s=>h.jsx(Jt,{present:n||i.open,children:h.jsx(_0,{asChild:!0,container:o,children:s})}))})};Z0.displayName=Nd;var Ws="DialogOverlay",q0=y.forwardRef((e,t)=>{const n=X0(Ws,e.__scopeDialog),{forceMount:r=n.forceMount,...o}=e,i=Tt(Ws,e.__scopeDialog);return i.modal?h.jsx(Jt,{present:r||i.open,children:h.jsx(u3,{...o,ref:t})}):null});q0.displayName=Ws;var l3=Zo("DialogOverlay.RemoveScroll"),u3=y.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,o=Tt(Ws,n);return h.jsx(H0,{as:l3,allowPinchZoom:!0,shards:[o.contentRef],children:h.jsx(H.div,{"data-state":Md(o.open),...r,ref:t,style:{pointerEvents:"auto",...r.style}})})}),er="DialogContent",J0=y.forwardRef((e,t)=>{const n=X0(er,e.__scopeDialog),{forceMount:r=n.forceMount,...o}=e,i=Tt(er,e.__scopeDialog);return h.jsx(Jt,{present:r||i.open,children:i.modal?h.jsx(c3,{...o,ref:t}):h.jsx(d3,{...o,ref:t})})});J0.displayName=er;var c3=y.forwardRef((e,t)=>{const n=Tt(er,e.__scopeDialog),r=y.useRef(null),o=Ie(t,n.contentRef,r);return y.useEffect(()=>{const i=r.current;if(i)return o3(i)},[]),h.jsx(e1,{...e,ref:o,trapFocus:n.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:q(e.onCloseAutoFocus,i=>{var s;i.preventDefault(),(s=n.triggerRef.current)==null||s.focus()}),onPointerDownOutside:q(e.onPointerDownOutside,i=>{const s=i.detail.originalEvent,a=s.button===0&&s.ctrlKey===!0;(s.button===2||a)&&i.preventDefault()}),onFocusOutside:q(e.onFocusOutside,i=>i.preventDefault())})}),d3=y.forwardRef((e,t)=>{const n=Tt(er,e.__scopeDialog),r=y.useRef(!1),o=y.useRef(!1);return h.jsx(e1,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:i=>{var s,a;(s=e.onCloseAutoFocus)==null||s.call(e,i),i.defaultPrevented||(r.current||(a=n.triggerRef.current)==null||a.focus(),i.preventDefault()),r.current=!1,o.current=!1},onInteractOutside:i=>{var l,u;(l=e.onInteractOutside)==null||l.call(e,i),i.defaultPrevented||(r.current=!0,i.detail.originalEvent.type==="pointerdown"&&(o.current=!0));const s=i.target;((u=n.triggerRef.current)==null?void 0:u.contains(s))&&i.preventDefault(),i.detail.originalEvent.type==="focusin"&&o.current&&i.preventDefault()}})}),e1=y.forwardRef((e,t)=>{const{__scopeDialog:n,trapFocus:r,onOpenAutoFocus:o,onCloseAutoFocus:i,...s}=e,a=Tt(er,n),l=y.useRef(null),u=Ie(t,l);return y4(),h.jsxs(h.Fragment,{children:[h.jsx(I0,{asChild:!0,loop:!0,trapped:r,onMountAutoFocus:o,onUnmountAutoFocus:i,children:h.jsx(xd,{role:"dialog",id:a.contentId,"aria-describedby":a.descriptionId,"aria-labelledby":a.titleId,"data-state":Md(a.open),...s,ref:u,onDismiss:()=>a.onOpenChange(!1)})}),h.jsxs(h.Fragment,{children:[h.jsx(f3,{titleId:a.titleId}),h.jsx(h3,{contentRef:l,descriptionId:a.descriptionId})]})]})}),bd="DialogTitle",t1=y.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,o=Tt(bd,n);return h.jsx(H.h2,{id:o.titleId,...r,ref:t})});t1.displayName=bd;var n1="DialogDescription",r1=y.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,o=Tt(n1,n);return h.jsx(H.p,{id:o.descriptionId,...r,ref:t})});r1.displayName=n1;var o1="DialogClose",i1=y.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,o=Tt(o1,n);return h.jsx(H.button,{type:"button",...r,ref:t,onClick:q(e.onClick,()=>o.onOpenChange(!1))})});i1.displayName=o1;function Md(e){return e?"open":"closed"}var s1="DialogTitleWarning",[T5,a1]=CT(s1,{contentName:er,titleName:bd,docsSlug:"dialog"}),f3=({titleId:e})=>{const t=a1(s1),n=`\`${t.contentName}\` requires a \`${t.titleName}\` for the component to be accessible for screen reader users. + +If you want to hide the \`${t.titleName}\`, you can wrap it with our VisuallyHidden component. + +For more information, see https://radix-ui.com/primitives/docs/components/${t.docsSlug}`;return y.useEffect(()=>{e&&(document.getElementById(e)||console.error(n))},[n,e]),null},p3="DialogDescriptionWarning",h3=({contentRef:e,descriptionId:t})=>{const r=`Warning: Missing \`Description\` or \`aria-describedby={undefined}\` for {${a1(p3).contentName}}.`;return y.useEffect(()=>{var i;const o=(i=e.current)==null?void 0:i.getAttribute("aria-describedby");t&&o&&(document.getElementById(t)||console.warn(r))},[r,e,t]),null},m3=Y0,g3=Z0,l1=q0,u1=J0,c1=t1,d1=r1,v3=i1;const y3=m3,x3=g3,f1=y.forwardRef(({className:e,...t},n)=>h.jsx(l1,{className:$("fixed inset-0 z-50 bg-background/80 backdrop-blur-sm data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",e),...t,ref:n}));f1.displayName=l1.displayName;const w3=ua("fixed z-50 gap-4 bg-background p-6 shadow-lg transition ease-in-out data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:duration-300 data-[state=open]:duration-500",{variants:{side:{top:"inset-x-0 top-0 border-b data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top",bottom:"inset-x-0 bottom-0 border-t data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom",left:"inset-y-0 left-0 h-full w-3/4 border-r data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left sm:max-w-sm",right:"inset-y-0 right-0 h-full w-3/4 border-l data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right sm:max-w-sm"}},defaultVariants:{side:"right"}}),p1=y.forwardRef(({side:e="right",className:t,children:n,...r},o)=>h.jsxs(x3,{children:[h.jsx(f1,{}),h.jsxs(u1,{ref:o,className:$(w3({side:e}),t),...r,children:[n,h.jsxs(v3,{className:"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-secondary",children:[h.jsx(yT,{className:"h-4 w-4"}),h.jsx("span",{className:"sr-only",children:"Close"})]})]})]}));p1.displayName=u1.displayName;const h1=({className:e,...t})=>h.jsx("div",{className:$("flex flex-col space-y-2 text-center sm:text-left",e),...t});h1.displayName="SheetHeader";const m1=y.forwardRef(({className:e,...t},n)=>h.jsx(c1,{ref:n,className:$("text-lg font-semibold text-foreground",e),...t}));m1.displayName=c1.displayName;const C3=y.forwardRef(({className:e,...t},n)=>h.jsx(d1,{ref:n,className:$("text-sm text-muted-foreground",e),...t}));C3.displayName=d1.displayName;const S3={theme:"system",setTheme:()=>null},g1=y.createContext(S3);function E3({children:e,defaultTheme:t="dark",storageKey:n="vite-ui-theme",...r}){const[o,i]=y.useState(()=>localStorage.getItem(n)||t);y.useEffect(()=>{const a=window.document.documentElement;if(a.classList.remove("light","dark"),o==="system"){const l=window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light";a.classList.add(l);return}a.classList.add(o)},[o]);const s={theme:o,setTheme:a=>{localStorage.setItem(n,a),i(a)}};return h.jsx(g1.Provider,{...r,value:s,children:e})}const k3=()=>{const e=y.useContext(g1);if(e===void 0)throw new Error("useTheme must be used within a ThemeProvider");return e};function Kh(){const{theme:e,setTheme:t}=k3(),n=()=>{t(e==="dark"?"light":"dark")};return h.jsxs(mi,{variant:"ghost",size:"icon",className:"ghost",onClick:n,children:[h.jsx(hT,{className:"h-[1.1rem] w-[1.2rem] rotate-0 scale-100 transition-all dark:-rotate-90 dark:scale-0"}),h.jsx(dT,{className:"absolute h-[1.1rem] w-[1.2rem] rotate-90 scale-0 transition-all dark:rotate-0 dark:scale-100"}),h.jsx("span",{className:"sr-only",children:"Toggle theme"})]})}const Gh=[],P3=()=>{const[e,t]=y.useState(!1);return h.jsx("header",{className:"sticky top-0 z-40 w-full bg-white dark:border-b-slate-700 dark:bg-background py-1",children:h.jsx(j0,{className:"mx-auto",children:h.jsxs(L0,{className:"container h-14 px-8 w-screen flex justify-between ",children:[h.jsx(i4,{className:"font-bold flex",children:h.jsx("a",{rel:"noreferrer noopener",href:"/",className:"ml-2 font-bold text-primary text-xl flex",children:"CAPES.APP"})}),h.jsxs("span",{className:"flex md:hidden",children:[h.jsx(Kh,{}),h.jsx(y3,{open:e,onOpenChange:t,children:h.jsxs(p1,{side:"left",className:"w-[250px] max-w-[80vw]",children:[h.jsx(h1,{children:h.jsx(m1,{className:"font-bold text-xl text-primary text-left",children:"CAPES.APP"})}),h.jsx("nav",{className:"flex flex-col gap-2 mt-4",children:Gh.map(({href:n,label:r})=>h.jsx("a",{rel:"noreferrer noopener",href:n,onClick:()=>t(!1),className:`${Jn({variant:"ghost",className:"w-full"})} !justify-start`,children:r},r))})]})})]}),h.jsx("nav",{className:"hidden md:flex gap-2",children:Gh.map((n,r)=>h.jsx("a",{rel:"noreferrer noopener",href:n.href,className:`text-lg ${Jn({variant:"ghost"})}`,children:n.label},r))}),h.jsx("div",{className:"hidden md:flex gap-2",children:h.jsx(Kh,{})})]})})})},T3=()=>h.jsx("section",{id:"cta",className:"py-8 md:py-16 my-24 sm:mb-20 max-w-6xl mx-auto px-4 rounded-3xl",children:h.jsx("div",{className:"container place-items-center",children:h.jsxs("div",{children:[h.jsxs("h2",{className:"text-2xl md:text-4xl font-bold text-center",children:["You already change lives,",h.jsx("br",{}),h.jsxs("span",{className:"bg-gradient-to-b from-primary/60 to-primary text-transparent bg-clip-text leading-relaxed",children:[" ","let's make it easier."," "]})]}),h.jsx("p",{className:"text-muted-foreground text-base md:text-lg mt-4 mb-8 leading-normal text-center md:px-48",children:"Stop wasting time and effort managing everthing manually."}),h.jsxs("div",{className:"flex flex-col md:flex-row gap-2 md:gap-4 items-center justify-center",children:[h.jsx("a",{href:"https://app.youform.com/forms/kadk8slp",target:"_blank",className:`w-full md:w-1/5 md:h-14 text-base font-semibold custom-gradient-border ${Jn({variant:"default"})}`,children:"Start Now"}),h.jsx("a",{rel:"noreferrer noopener",href:"https://calendar.app.google/sVcQwekYrRbL9mbQ6",target:"_blank",className:`w-full md:w-1/5 md:h-14 text-base font-semibold ${Jn({variant:"outline"})}`,children:"Book a Demo"})]})]})})});var Rd="Collapsible",[N3,v1]=Zr(Rd),[b3,Ad]=N3(Rd),y1=y.forwardRef((e,t)=>{const{__scopeCollapsible:n,open:r,defaultOpen:o,disabled:i,onOpenChange:s,...a}=e,[l=!1,u]=qr({prop:r,defaultProp:o,onChange:s});return h.jsx(b3,{scope:n,disabled:i,contentId:Gn(),open:l,onOpenToggle:y.useCallback(()=>u(c=>!c),[u]),children:h.jsx(H.div,{"data-state":Ld(l),"data-disabled":i?"":void 0,...a,ref:t})})});y1.displayName=Rd;var x1="CollapsibleTrigger",w1=y.forwardRef((e,t)=>{const{__scopeCollapsible:n,...r}=e,o=Ad(x1,n);return h.jsx(H.button,{type:"button","aria-controls":o.contentId,"aria-expanded":o.open||!1,"data-state":Ld(o.open),"data-disabled":o.disabled?"":void 0,disabled:o.disabled,...r,ref:t,onClick:q(e.onClick,o.onOpenToggle)})});w1.displayName=x1;var jd="CollapsibleContent",C1=y.forwardRef((e,t)=>{const{forceMount:n,...r}=e,o=Ad(jd,e.__scopeCollapsible);return h.jsx(Jt,{present:n||o.open,children:({present:i})=>h.jsx(M3,{...r,ref:t,present:i})})});C1.displayName=jd;var M3=y.forwardRef((e,t)=>{const{__scopeCollapsible:n,present:r,children:o,...i}=e,s=Ad(jd,n),[a,l]=y.useState(r),u=y.useRef(null),c=Ie(t,u),d=y.useRef(0),f=d.current,x=y.useRef(0),w=x.current,g=s.open||a,C=y.useRef(g),p=y.useRef(void 0);return y.useEffect(()=>{const m=requestAnimationFrame(()=>C.current=!1);return()=>cancelAnimationFrame(m)},[]),Pt(()=>{const m=u.current;if(m){p.current=p.current||{transitionDuration:m.style.transitionDuration,animationName:m.style.animationName},m.style.transitionDuration="0s",m.style.animationName="none";const v=m.getBoundingClientRect();d.current=v.height,x.current=v.width,C.current||(m.style.transitionDuration=p.current.transitionDuration,m.style.animationName=p.current.animationName),l(r)}},[s.open,r]),h.jsx(H.div,{"data-state":Ld(s.open),"data-disabled":s.disabled?"":void 0,id:s.contentId,hidden:!g,...i,ref:c,style:{"--radix-collapsible-content-height":f?`${f}px`:void 0,"--radix-collapsible-content-width":w?`${w}px`:void 0,...e.style},children:g&&o})});function Ld(e){return e?"open":"closed"}var R3=y1,A3=w1,j3=C1,en="Accordion",L3=["Home","End","ArrowDown","ArrowUp","ArrowLeft","ArrowRight"],[Dd,D3,I3]=yd(en),[ma,N5]=Zr(en,[I3,v1]),Id=v1(),O3=pe.forwardRef((e,t)=>{const{type:n,...r}=e,o=r,i=r;return h.jsx(Dd.Provider,{scope:e.__scopeAccordion,children:n==="multiple"?h.jsx(z3,{...i,ref:t}):h.jsx(F3,{...o,ref:t})})});O3.displayName=en;var[S1,_3]=ma(en),[E1,V3]=ma(en,{collapsible:!1}),F3=pe.forwardRef((e,t)=>{const{value:n,defaultValue:r,onValueChange:o=()=>{},collapsible:i=!1,...s}=e,[a,l]=qr({prop:n,defaultProp:r,onChange:o});return h.jsx(S1,{scope:e.__scopeAccordion,value:a?[a]:[],onItemOpen:l,onItemClose:pe.useCallback(()=>i&&l(""),[i,l]),children:h.jsx(E1,{scope:e.__scopeAccordion,collapsible:i,children:h.jsx(k1,{...s,ref:t})})})}),z3=pe.forwardRef((e,t)=>{const{value:n,defaultValue:r,onValueChange:o=()=>{},...i}=e,[s=[],a]=qr({prop:n,defaultProp:r,onChange:o}),l=pe.useCallback(c=>a((d=[])=>[...d,c]),[a]),u=pe.useCallback(c=>a((d=[])=>d.filter(f=>f!==c)),[a]);return h.jsx(S1,{scope:e.__scopeAccordion,value:s,onItemOpen:l,onItemClose:u,children:h.jsx(E1,{scope:e.__scopeAccordion,collapsible:!0,children:h.jsx(k1,{...i,ref:t})})})}),[B3,ga]=ma(en),k1=pe.forwardRef((e,t)=>{const{__scopeAccordion:n,disabled:r,dir:o,orientation:i="vertical",...s}=e,a=pe.useRef(null),l=Ie(a,t),u=D3(n),d=o0(o)==="ltr",f=q(e.onKeyDown,x=>{var T;if(!L3.includes(x.key))return;const w=x.target,g=u().filter(N=>{var M;return!((M=N.ref.current)!=null&&M.disabled)}),C=g.findIndex(N=>N.ref.current===w),p=g.length;if(C===-1)return;x.preventDefault();let m=C;const v=0,S=p-1,E=()=>{m=C+1,m>S&&(m=v)},P=()=>{m=C-1,m {const{__scopeAccordion:n,value:r,...o}=e,i=ga(Hs,n),s=_3(Hs,n),a=Id(n),l=Gn(),u=r&&s.value.includes(r)||!1,c=i.disabled||e.disabled;return h.jsx($3,{scope:n,open:u,disabled:c,triggerId:l,children:h.jsx(R3,{"data-orientation":i.orientation,"data-state":A1(u),...a,...o,ref:t,disabled:c,open:u,onOpenChange:d=>{d?s.onItemOpen(r):s.onItemClose(r)}})})});P1.displayName=Hs;var T1="AccordionHeader",N1=pe.forwardRef((e,t)=>{const{__scopeAccordion:n,...r}=e,o=ga(en,n),i=Od(T1,n);return h.jsx(H.h3,{"data-orientation":o.orientation,"data-state":A1(i.open),"data-disabled":i.disabled?"":void 0,...r,ref:t})});N1.displayName=T1;var Vu="AccordionTrigger",b1=pe.forwardRef((e,t)=>{const{__scopeAccordion:n,...r}=e,o=ga(en,n),i=Od(Vu,n),s=V3(Vu,n),a=Id(n);return h.jsx(Dd.ItemSlot,{scope:n,children:h.jsx(A3,{"aria-disabled":i.open&&!s.collapsible||void 0,"data-orientation":o.orientation,id:i.triggerId,...a,...r,ref:t})})});b1.displayName=Vu;var M1="AccordionContent",R1=pe.forwardRef((e,t)=>{const{__scopeAccordion:n,...r}=e,o=ga(en,n),i=Od(M1,n),s=Id(n);return h.jsx(j3,{role:"region","aria-labelledby":i.triggerId,"data-orientation":o.orientation,...s,...r,ref:t,style:{"--radix-accordion-content-height":"var(--radix-collapsible-content-height)","--radix-accordion-content-width":"var(--radix-collapsible-content-width)",...e.style}})});R1.displayName=M1;function A1(e){return e?"open":"closed"}var U3=P1,W3=N1,j1=b1,L1=R1;const H3=y.forwardRef(({className:e,...t},n)=>h.jsx(U3,{ref:n,className:$("border-b",e),...t}));H3.displayName="AccordionItem";const K3=y.forwardRef(({className:e,children:t,...n},r)=>h.jsx(W3,{className:"flex",children:h.jsxs(j1,{ref:r,className:$("flex flex-1 items-center justify-between py-4 font-medium transition-all hover:underline [&[data-state=open]>svg]:rotate-180",e),...n,children:[t,h.jsx(e0,{className:"h-4 w-4 shrink-0 transition-transform duration-200"})]})}));K3.displayName=j1.displayName;const G3=y.forwardRef(({className:e,children:t,...n},r)=>h.jsx(L1,{ref:r,className:"overflow-hidden text-sm transition-all data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down",...n,children:h.jsx("div",{className:$("pb-4 pt-0 text-muted-foreground text-[16px]",e),children:t})}));G3.displayName=L1.displayName;const Rn=y.forwardRef(({className:e,...t},n)=>h.jsx("div",{ref:n,className:$("rounded-lg border bg-card text-card-foreground shadow-sm",e),...t}));Rn.displayName="Card";const An=y.forwardRef(({className:e,...t},n)=>h.jsx("div",{ref:n,className:$("flex flex-col space-y-1.5 p-6",e),...t}));An.displayName="CardHeader";const jn=y.forwardRef(({className:e,...t},n)=>h.jsx("h3",{ref:n,className:$("text-2xl font-semibold leading-none tracking-tight",e),...t}));jn.displayName="CardTitle";const _d=y.forwardRef(({className:e,...t},n)=>h.jsx("p",{ref:n,className:$("text-sm text-muted-foreground",e),...t}));_d.displayName="CardDescription";const Fu=y.forwardRef(({className:e,...t},n)=>h.jsx("div",{ref:n,className:$("p-6 pt-0",e),...t}));Fu.displayName="CardContent";const Y3=y.forwardRef(({className:e,...t},n)=>h.jsx("div",{ref:n,className:$("flex items-center p-6 pt-0",e),...t}));Y3.displayName="CardFooter";const Q3="/assets/Video%20Calling-Cb8ejA6y.png",X3=ua("inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground hover:bg-primary/80",secondary:"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",destructive:"border-transparent bg-destructive text-destructive-foreground hover:bg-destructive/80",outline:"text-foreground"}},defaultVariants:{variant:"default"}});function Z3({className:e,variant:t,...n}){return h.jsx("div",{className:$(X3({variant:t}),e),...n})}function q3(e){return Object.prototype.toString.call(e)==="[object Object]"}function Yh(e){return q3(e)||Array.isArray(e)}function J3(){return!!(typeof window<"u"&&window.document&&window.document.createElement)}function Vd(e,t){const n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;const o=JSON.stringify(Object.keys(e.breakpoints||{})),i=JSON.stringify(Object.keys(t.breakpoints||{}));return o!==i?!1:n.every(s=>{const a=e[s],l=t[s];return typeof a=="function"?`${a}`==`${l}`:!Yh(a)||!Yh(l)?a===l:Vd(a,l)})}function Qh(e){return e.concat().sort((t,n)=>t.name>n.name?1:-1).map(t=>t.options)}function eN(e,t){if(e.length!==t.length)return!1;const n=Qh(e),r=Qh(t);return n.every((o,i)=>{const s=r[i];return Vd(o,s)})}function Fd(e){return typeof e=="number"}function zu(e){return typeof e=="string"}function va(e){return typeof e=="boolean"}function Xh(e){return Object.prototype.toString.call(e)==="[object Object]"}function ie(e){return Math.abs(e)}function zd(e){return Math.sign(e)}function Lo(e,t){return ie(e-t)}function tN(e,t){if(e===0||t===0||ie(e)<=ie(t))return 0;const n=Lo(ie(e),ie(t));return ie(n/e)}function nN(e){return Math.round(e*100)/100}function ai(e){return li(e).map(Number)}function Et(e){return e[wi(e)]}function wi(e){return Math.max(0,e.length-1)}function Bd(e,t){return t===wi(e)}function Zh(e,t=0){return Array.from(Array(e),(n,r)=>t+r)}function li(e){return Object.keys(e)}function D1(e,t){return[e,t].reduce((n,r)=>(li(r).forEach(o=>{const i=n[o],s=r[o],a=Xh(i)&&Xh(s);n[o]=a?D1(i,s):s}),n),{})}function Bu(e,t){return typeof t.MouseEvent<"u"&&e instanceof t.MouseEvent}function rN(e,t){const n={start:r,center:o,end:i};function r(){return 0}function o(l){return i(l)/2}function i(l){return t-l}function s(l,u){return zu(e)?n[e](l):e(t,l,u)}return{measure:s}}function ui(){let e=[];function t(o,i,s,a={passive:!0}){let l;if("addEventListener"in o)o.addEventListener(i,s,a),l=()=>o.removeEventListener(i,s,a);else{const u=o;u.addListener(s),l=()=>u.removeListener(s)}return e.push(l),r}function n(){e=e.filter(o=>o())}const r={add:t,clear:n};return r}function oN(e,t,n,r){const o=ui(),i=1e3/60;let s=null,a=0,l=0;function u(){o.add(e,"visibilitychange",()=>{e.hidden&&w()})}function c(){x(),o.clear()}function d(C){if(!l)return;s||(s=C,n(),n());const p=C-s;for(s=C,a+=p;a>=i;)n(),a-=i;const m=a/i;r(m),l&&(l=t.requestAnimationFrame(d))}function f(){l||(l=t.requestAnimationFrame(d))}function x(){t.cancelAnimationFrame(l),s=null,a=0,l=0}function w(){s=null,a=0}return{init:u,destroy:c,start:f,stop:x,update:n,render:r}}function iN(e,t){const n=t==="rtl",r=e==="y",o=r?"y":"x",i=r?"x":"y",s=!r&&n?-1:1,a=c(),l=d();function u(w){const{height:g,width:C}=w;return r?g:C}function c(){return r?"top":n?"right":"left"}function d(){return r?"bottom":n?"left":"right"}function f(w){return w*s}return{scroll:o,cross:i,startEdge:a,endEdge:l,measureSize:u,direction:f}}function tr(e=0,t=0){const n=ie(e-t);function r(u){return u t}function i(u){return r(u)||o(u)}function s(u){return i(u)?r(u)?e:t:u}function a(u){return n?u-n*Math.ceil((u-t)/n):u}return{length:n,max:t,min:e,constrain:s,reachedAny:i,reachedMax:o,reachedMin:r,removeOffset:a}}function I1(e,t,n){const{constrain:r}=tr(0,e),o=e+1;let i=s(t);function s(f){return n?ie((o+f)%o):r(f)}function a(){return i}function l(f){return i=s(f),d}function u(f){return c().set(a()+f)}function c(){return I1(e,a(),n)}const d={get:a,set:l,add:u,clone:c};return d}function sN(e,t,n,r,o,i,s,a,l,u,c,d,f,x,w,g,C,p,m){const{cross:v,direction:S}=e,E=["INPUT","SELECT","TEXTAREA"],P={passive:!1},k=ui(),T=ui(),N=tr(50,225).constrain(x.measure(20)),M={mouse:300,touch:400},D={mouse:500,touch:600},O=w?43:25;let ce=!1,de=0,be=0,Se=!1,U=!1,R=!1,j=!1;function I(L){if(!m)return;function K(_e){(va(m)||m(L,_e))&&Qe(_e)}const me=t;k.add(me,"dragstart",_e=>_e.preventDefault(),P).add(me,"touchmove",()=>{},P).add(me,"touchend",()=>{}).add(me,"touchstart",K).add(me,"mousedown",K).add(me,"touchcancel",Oe).add(me,"contextmenu",Oe).add(me,"click",Ft,!0)}function V(){k.clear(),T.clear()}function Q(){const L=j?n:t;T.add(L,"touchmove",xe,P).add(L,"touchend",Oe).add(L,"mousemove",xe,P).add(L,"mouseup",Oe)}function mt(L){const K=L.nodeName||"";return E.includes(K)}function Ee(){return(w?D:M)[j?"mouse":"touch"]}function Vt(L,K){const me=d.add(zd(L)*-1),_e=c.byDistance(L,!w).distance;return w||ie(L) =2,!(K&&L.button!==0)&&(mt(L.target)||(Se=!0,i.pointerDown(L),u.useFriction(0).useDuration(0),o.set(s),Q(),de=i.readPoint(L),be=i.readPoint(L,v),f.emit("pointerDown")))}function xe(L){if(!Bu(L,r)&&L.touches.length>=2)return Oe(L);const me=i.readPoint(L),_e=i.readPoint(L,v),Nt=Lo(me,de),zt=Lo(_e,be);if(!U&&!j&&(!L.cancelable||(U=Nt>zt,!U)))return Oe(L);const Ln=i.pointerMove(L);Nt>g&&(R=!0),u.useFriction(.3).useDuration(.75),a.start(),o.add(S(Ln)),L.preventDefault()}function Oe(L){const me=c.byDistance(0,!1).index!==d.get(),_e=i.pointerUp(L)*Ee(),Nt=Vt(S(_e),me),zt=tN(_e,Nt),Ln=O-10*zt,tn=p+zt/50;U=!1,Se=!1,T.clear(),u.useDuration(Ln).useFriction(tn),l.distance(Nt,!w),j=!1,f.emit("pointerUp")}function Ft(L){R&&(L.stopPropagation(),L.preventDefault(),R=!1)}function nt(){return Se}return{init:I,destroy:V,pointerDown:nt}}function aN(e,t){let r,o;function i(d){return d.timeStamp}function s(d,f){const w=`client${(f||e.scroll)==="x"?"X":"Y"}`;return(Bu(d,t)?d:d.touches[0])[w]}function a(d){return r=d,o=d,s(d)}function l(d){const f=s(d)-s(o),x=i(d)-i(r)>170;return o=d,x&&(r=d),f}function u(d){if(!r||!o)return 0;const f=s(o)-s(r),x=i(d)-i(r),w=i(d)-i(o)>170,g=f/x;return x&&!w&&ie(g)>.1?g:0}return{pointerDown:a,pointerMove:l,pointerUp:u,readPoint:s}}function lN(){function e(n){const{offsetTop:r,offsetLeft:o,offsetWidth:i,offsetHeight:s}=n;return{top:r,right:o+i,bottom:r+s,left:o,width:i,height:s}}return{measure:e}}function uN(e){function t(r){return e*(r/100)}return{measure:t}}function cN(e,t,n,r,o,i,s){const a=[e].concat(r);let l,u,c=[],d=!1;function f(C){return o.measureSize(s.measure(C))}function x(C){if(!i)return;u=f(e),c=r.map(f);function p(m){for(const v of m){if(d)return;const S=v.target===e,E=r.indexOf(v.target),P=S?u:c[E],k=f(S?e:r[E]);if(ie(k-P)>=.5){C.reInit(),t.emit("resize");break}}}l=new ResizeObserver(m=>{(va(i)||i(C,m))&&p(m)}),n.requestAnimationFrame(()=>{a.forEach(m=>l.observe(m))})}function w(){d=!0,l&&l.disconnect()}return{init:x,destroy:w}}function dN(e,t,n,r,o,i){let s=0,a=0,l=o,u=i,c=e.get(),d=0;function f(){const P=r.get()-e.get(),k=!l;let T=0;return k?(s=0,n.set(r),e.set(r),T=P):(n.set(e),s+=P/l,s*=u,c+=s,e.add(s),T=c-d),a=zd(T),d=c,E}function x(){const P=r.get()-t.get();return ie(P)<.001}function w(){return l}function g(){return a}function C(){return s}function p(){return v(o)}function m(){return S(i)}function v(P){return l=P,E}function S(P){return u=P,E}const E={direction:g,duration:w,velocity:C,seek:f,settled:x,useBaseFriction:m,useBaseDuration:p,useFriction:S,useDuration:v};return E}function fN(e,t,n,r,o){const i=o.measure(10),s=o.measure(50),a=tr(.1,.99);let l=!1;function u(){return!(l||!e.reachedAny(n.get())||!e.reachedAny(t.get()))}function c(x){if(!u())return;const w=e.reachedMin(t.get())?"min":"max",g=ie(e[w]-t.get()),C=n.get()-t.get(),p=a.constrain(g/s);n.subtract(C*p),!x&&ie(C){const{min:C,max:p}=i,m=i.constrain(w),v=!g,S=Bd(n,g);return v?p:S||u(C,m)?C:u(p,m)?p:m}).map(w=>parseFloat(w.toFixed(3)))}function f(){if(t<=e+o)return[i.max];if(r==="keepSnaps")return s;const{min:w,max:g}=a;return s.slice(w,g)}return{snapsContained:l,scrollContainLimit:a}}function hN(e,t,n){const r=t[0],o=n?r-e:Et(t);return{limit:tr(o,r)}}function mN(e,t,n,r){const i=t.min+.1,s=t.max+.1,{reachedMin:a,reachedMax:l}=tr(i,s);function u(f){return f===1?l(n.get()):f===-1?a(n.get()):!1}function c(f){if(!u(f))return;const x=e*(f*-1);r.forEach(w=>w.add(x))}return{loop:c}}function gN(e){const{max:t,length:n}=e;function r(i){const s=i-t;return n?s/-n:0}return{get:r}}function vN(e,t,n,r,o){const{startEdge:i,endEdge:s}=e,{groupSlides:a}=o,l=d().map(t.measure),u=f(),c=x();function d(){return a(r).map(g=>Et(g)[s]-g[0][i]).map(ie)}function f(){return r.map(g=>n[i]-g[i]).map(g=>-ie(g))}function x(){return a(u).map(g=>g[0]).map((g,C)=>g+l[C])}return{snaps:u,snapsAligned:c}}function yN(e,t,n,r,o,i){const{groupSlides:s}=o,{min:a,max:l}=r,u=c();function c(){const f=s(i),x=!e||t==="keepSnaps";return n.length===1?[i]:x?f:f.slice(a,l).map((w,g,C)=>{const p=!g,m=Bd(C,g);if(p){const v=Et(C[0])+1;return Zh(v)}if(m){const v=wi(i)-Et(C)[0]+1;return Zh(v,Et(C)[0])}return w})}return{slideRegistry:u}}function xN(e,t,n,r,o){const{reachedAny:i,removeOffset:s,constrain:a}=r;function l(w){return w.concat().sort((g,C)=>ie(g)-ie(C))[0]}function u(w){const g=e?s(w):a(w),C=t.map((m,v)=>({diff:c(m-g,0),index:v})).sort((m,v)=>ie(m.diff)-ie(v.diff)),{index:p}=C[0];return{index:p,distance:g}}function c(w,g){const C=[w,w+n,w-n];if(!e)return w;if(!g)return l(C);const p=C.filter(m=>zd(m)===g);return p.length?l(p):Et(C)-n}function d(w,g){const C=t[w]-o.get(),p=c(C,g);return{index:w,distance:p}}function f(w,g){const C=o.get()+w,{index:p,distance:m}=u(C),v=!e&&i(C);if(!g||v)return{index:p,distance:w};const S=t[p]-m,E=w+c(S,0);return{index:p,distance:E}}return{byDistance:f,byIndex:d,shortcut:c}}function wN(e,t,n,r,o,i,s){function a(d){const f=d.distance,x=d.index!==t.get();i.add(f),f&&(r.duration()?e.start():(e.update(),e.render(1),e.update())),x&&(n.set(t.get()),t.set(d.index),s.emit("select"))}function l(d,f){const x=o.byDistance(d,f);a(x)}function u(d,f){const x=t.clone().set(d),w=o.byIndex(x.get(),f);a(w)}return{distance:l,index:u}}function CN(e,t,n,r,o,i,s,a){const l={passive:!0,capture:!0};let u=0;function c(x){if(!a)return;function w(g){if(new Date().getTime()-u>10)return;s.emit("slideFocusStart"),e.scrollLeft=0;const m=n.findIndex(v=>v.includes(g));Fd(m)&&(o.useDuration(0),r.index(m,0),s.emit("slideFocus"))}i.add(document,"keydown",d,!1),t.forEach((g,C)=>{i.add(g,"focus",p=>{(va(a)||a(x,p))&&w(C)},l)})}function d(x){x.code==="Tab"&&(u=new Date().getTime())}return{init:c}}function xo(e){let t=e;function n(){return t}function r(l){t=s(l)}function o(l){t+=s(l)}function i(l){t-=s(l)}function s(l){return Fd(l)?l:l.get()}return{get:n,set:r,add:o,subtract:i}}function O1(e,t){const n=e.scroll==="x"?s:a,r=t.style;let o=null,i=!1;function s(f){return`translate3d(${f}px,0px,0px)`}function a(f){return`translate3d(0px,${f}px,0px)`}function l(f){if(i)return;const x=nN(e.direction(f));x!==o&&(r.transform=n(x),o=x)}function u(f){i=!f}function c(){i||(r.transform="",t.getAttribute("style")||t.removeAttribute("style"))}return{clear:c,to:l,toggleActive:u}}function SN(e,t,n,r,o,i,s,a,l){const c=ai(o),d=ai(o).reverse(),f=p().concat(m());function x(k,T){return k.reduce((N,M)=>N-o[M],T)}function w(k,T){return k.reduce((N,M)=>x(N,T)>0?N.concat([M]):N,[])}function g(k){return i.map((T,N)=>({start:T-r[N]+.5+k,end:T+t-.5+k}))}function C(k,T,N){const M=g(T);return k.map(D=>{const O=N?0:-n,ce=N?n:0,de=N?"end":"start",be=M[D][de];return{index:D,loopPoint:be,slideLocation:xo(-1),translate:O1(e,l[D]),target:()=>a.get()>be?O:ce}})}function p(){const k=s[0],T=w(d,k);return C(T,n,!1)}function m(){const k=t-s[0]-1,T=w(c,k);return C(T,-n,!0)}function v(){return f.every(({index:k})=>{const T=c.filter(N=>N!==k);return x(T,t)<=.1})}function S(){f.forEach(k=>{const{target:T,translate:N,slideLocation:M}=k,D=T();D!==M.get()&&(N.to(D),M.set(D))})}function E(){f.forEach(k=>k.translate.clear())}return{canLoop:v,clear:E,loop:S,loopPoints:f}}function EN(e,t,n){let r,o=!1;function i(l){if(!n)return;function u(c){for(const d of c)if(d.type==="childList"){l.reInit(),t.emit("slidesChanged");break}}r=new MutationObserver(c=>{o||(va(n)||n(l,c))&&u(c)}),r.observe(e,{childList:!0})}function s(){r&&r.disconnect(),o=!0}return{init:i,destroy:s}}function kN(e,t,n,r){const o={};let i=null,s=null,a,l=!1;function u(){a=new IntersectionObserver(w=>{l||(w.forEach(g=>{const C=t.indexOf(g.target);o[C]=g}),i=null,s=null,n.emit("slidesInView"))},{root:e.parentElement,threshold:r}),t.forEach(w=>a.observe(w))}function c(){a&&a.disconnect(),l=!0}function d(w){return li(o).reduce((g,C)=>{const p=parseInt(C),{isIntersecting:m}=o[p];return(w&&m||!w&&!m)&&g.push(p),g},[])}function f(w=!0){if(w&&i)return i;if(!w&&s)return s;const g=d(w);return w&&(i=g),w||(s=g),g}return{init:u,destroy:c,get:f}}function PN(e,t,n,r,o,i){const{measureSize:s,startEdge:a,endEdge:l}=e,u=n[0]&&o,c=w(),d=g(),f=n.map(s),x=C();function w(){if(!u)return 0;const m=n[0];return ie(t[a]-m[a])}function g(){if(!u)return 0;const m=i.getComputedStyle(Et(r));return parseFloat(m.getPropertyValue(`margin-${l}`))}function C(){return n.map((m,v,S)=>{const E=!v,P=Bd(S,v);return E?f[v]+c:P?f[v]+d:S[v+1][a]-m[a]}).map(ie)}return{slideSizes:f,slideSizesWithGaps:x,startGap:c,endGap:d}}function TN(e,t,n,r,o,i,s,a,l){const{startEdge:u,endEdge:c,direction:d}=e,f=Fd(n);function x(p,m){return ai(p).filter(v=>v%m===0).map(v=>p.slice(v,v+m))}function w(p){return p.length?ai(p).reduce((m,v,S)=>{const E=Et(m)||0,P=E===0,k=v===wi(p),T=o[u]-i[E][u],N=o[u]-i[v][c],M=!r&&P?d(s):0,D=!r&&k?d(a):0,O=ie(N-D-(T+M));return S&&O>t+l&&m.push(v),k&&m.push(p.length),m},[]).map((m,v,S)=>{const E=Math.max(S[v-1]||0);return p.slice(E,m)}):[]}function g(p){return f?x(p,n):w(p)}return{groupSlides:g}}function NN(e,t,n,r,o,i,s){const{align:a,axis:l,direction:u,startIndex:c,loop:d,duration:f,dragFree:x,dragThreshold:w,inViewThreshold:g,slidesToScroll:C,skipSnaps:p,containScroll:m,watchResize:v,watchSlides:S,watchDrag:E,watchFocus:P}=i,k=2,T=lN(),N=T.measure(t),M=n.map(T.measure),D=iN(l,u),O=D.measureSize(N),ce=uN(O),de=rN(a,O),be=!d&&!!m,Se=d||!!m,{slideSizes:U,slideSizesWithGaps:R,startGap:j,endGap:I}=PN(D,N,M,n,Se,o),V=TN(D,O,C,d,N,M,j,I,k),{snaps:Q,snapsAligned:mt}=vN(D,de,N,M,V),Ee=-Et(Q)+Et(R),{snapsContained:Vt,scrollContainLimit:Qe}=pN(O,Ee,mt,m,k),xe=be?Vt:mt,{limit:Oe}=hN(Ee,xe,d),Ft=I1(wi(xe),c,d),nt=Ft.clone(),ne=ai(n),L=({dragHandler:ir,scrollBody:Sa,scrollBounds:Ea,options:{loop:Ci}})=>{Ci||Ea.constrain(ir.pointerDown()),Sa.seek()},K=({scrollBody:ir,translate:Sa,location:Ea,offsetLocation:Ci,previousLocation:ex,scrollLooper:tx,slideLooper:nx,dragHandler:rx,animation:ox,eventHandler:Yd,scrollBounds:ix,options:{loop:Qd}},Xd)=>{const Zd=ir.settled(),sx=!ix.shouldConstrain(),qd=Qd?Zd:Zd&&sx,Jd=qd&&!rx.pointerDown();Jd&&ox.stop();const ax=Ea.get()*Xd+ex.get()*(1-Xd);Ci.set(ax),Qd&&(tx.loop(ir.direction()),nx.loop()),Sa.to(Ci.get()),Jd&&Yd.emit("settle"),qd||Yd.emit("scroll")},me=oN(r,o,()=>L(Ca),ir=>K(Ca,ir)),_e=.68,Nt=xe[Ft.get()],zt=xo(Nt),Ln=xo(Nt),tn=xo(Nt),Dn=xo(Nt),eo=dN(zt,tn,Ln,Dn,f,_e),xa=xN(d,xe,Ee,Oe,Dn),wa=wN(me,Ft,nt,eo,xa,Dn,s),Hd=gN(Oe),Kd=ui(),q1=kN(t,n,s,g),{slideRegistry:Gd}=yN(be,m,xe,Qe,V,ne),J1=CN(e,n,Gd,wa,eo,Kd,s,P),Ca={ownerDocument:r,ownerWindow:o,eventHandler:s,containerRect:N,slideRects:M,animation:me,axis:D,dragHandler:sN(D,e,r,o,Dn,aN(D,o),zt,me,wa,eo,xa,Ft,s,ce,x,w,p,_e,E),eventStore:Kd,percentOfView:ce,index:Ft,indexPrevious:nt,limit:Oe,location:zt,offsetLocation:tn,previousLocation:Ln,options:i,resizeHandler:cN(t,s,o,n,D,v,T),scrollBody:eo,scrollBounds:fN(Oe,tn,Dn,eo,ce),scrollLooper:mN(Ee,Oe,tn,[zt,tn,Ln,Dn]),scrollProgress:Hd,scrollSnapList:xe.map(Hd.get),scrollSnaps:xe,scrollTarget:xa,scrollTo:wa,slideLooper:SN(D,O,Ee,U,R,Q,xe,tn,n),slideFocus:J1,slidesHandler:EN(t,s,S),slidesInView:q1,slideIndexes:ne,slideRegistry:Gd,slidesToScroll:V,target:Dn,translate:O1(D,t)};return Ca}function bN(){let e={},t;function n(u){t=u}function r(u){return e[u]||[]}function o(u){return r(u).forEach(c=>c(t,u)),l}function i(u,c){return e[u]=r(u).concat([c]),l}function s(u,c){return e[u]=r(u).filter(d=>d!==c),l}function a(){e={}}const l={init:n,emit:o,off:s,on:i,clear:a};return l}const MN={align:"center",axis:"x",container:null,slides:null,containScroll:"trimSnaps",direction:"ltr",slidesToScroll:1,inViewThreshold:0,breakpoints:{},dragFree:!1,dragThreshold:10,loop:!1,skipSnaps:!1,duration:25,startIndex:0,active:!0,watchDrag:!0,watchResize:!0,watchSlides:!0,watchFocus:!0};function RN(e){function t(i,s){return D1(i,s||{})}function n(i){const s=i.breakpoints||{},a=li(s).filter(l=>e.matchMedia(l).matches).map(l=>s[l]).reduce((l,u)=>t(l,u),{});return t(i,a)}function r(i){return i.map(s=>li(s.breakpoints||{})).reduce((s,a)=>s.concat(a),[]).map(e.matchMedia)}return{mergeOptions:t,optionsAtMedia:n,optionsMediaQueries:r}}function AN(e){let t=[];function n(i,s){return t=s.filter(({options:a})=>e.optionsAtMedia(a).active!==!1),t.forEach(a=>a.init(i,e)),s.reduce((a,l)=>Object.assign(a,{[l.name]:l}),{})}function r(){t=t.filter(i=>i.destroy())}return{init:n,destroy:r}}function Ks(e,t,n){const r=e.ownerDocument,o=r.defaultView,i=RN(o),s=AN(i),a=ui(),l=bN(),{mergeOptions:u,optionsAtMedia:c,optionsMediaQueries:d}=i,{on:f,off:x,emit:w}=l,g=D;let C=!1,p,m=u(MN,Ks.globalOptions),v=u(m),S=[],E,P,k;function T(){const{container:ne,slides:L}=v;P=(zu(ne)?e.querySelector(ne):ne)||e.children[0];const me=zu(L)?P.querySelectorAll(L):L;k=[].slice.call(me||P.children)}function N(ne){const L=NN(e,P,k,r,o,ne,l);if(ne.loop&&!L.slideLooper.canLoop()){const K=Object.assign({},ne,{loop:!1});return N(K)}return L}function M(ne,L){C||(m=u(m,ne),v=c(m),S=L||S,T(),p=N(v),d([m,...S.map(({options:K})=>K)]).forEach(K=>a.add(K,"change",D)),v.active&&(p.translate.to(p.location.get()),p.animation.init(),p.slidesInView.init(),p.slideFocus.init(nt),p.eventHandler.init(nt),p.resizeHandler.init(nt),p.slidesHandler.init(nt),p.options.loop&&p.slideLooper.loop(),P.offsetParent&&k.length&&p.dragHandler.init(nt),E=s.init(nt,S)))}function D(ne,L){const K=V();O(),M(u({startIndex:K},ne),L),l.emit("reInit")}function O(){p.dragHandler.destroy(),p.eventStore.clear(),p.translate.clear(),p.slideLooper.clear(),p.resizeHandler.destroy(),p.slidesHandler.destroy(),p.slidesInView.destroy(),p.animation.destroy(),s.destroy(),a.clear()}function ce(){C||(C=!0,a.clear(),O(),l.emit("destroy"),l.clear())}function de(ne,L,K){!v.active||C||(p.scrollBody.useBaseFriction().useDuration(L===!0?0:v.duration),p.scrollTo.index(ne,K||0))}function be(ne){const L=p.index.add(1).get();de(L,ne,-1)}function Se(ne){const L=p.index.add(-1).get();de(L,ne,1)}function U(){return p.index.add(1).get()!==V()}function R(){return p.index.add(-1).get()!==V()}function j(){return p.scrollSnapList}function I(){return p.scrollProgress.get(p.offsetLocation.get())}function V(){return p.index.get()}function Q(){return p.indexPrevious.get()}function mt(){return p.slidesInView.get()}function Ee(){return p.slidesInView.get(!1)}function Vt(){return E}function Qe(){return p}function xe(){return e}function Oe(){return P}function Ft(){return k}const nt={canScrollNext:U,canScrollPrev:R,containerNode:Oe,internalEngine:Qe,destroy:ce,off:x,on:f,emit:w,plugins:Vt,previousScrollSnap:Q,reInit:g,rootNode:xe,scrollNext:be,scrollPrev:Se,scrollProgress:I,scrollSnapList:j,scrollTo:de,selectedScrollSnap:V,slideNodes:Ft,slidesInView:mt,slidesNotInView:Ee};return M(t,n),setTimeout(()=>l.emit("init"),0),nt}Ks.globalOptions=void 0;function $d(e={},t=[]){const n=y.useRef(e),r=y.useRef(t),[o,i]=y.useState(),[s,a]=y.useState(),l=y.useCallback(()=>{o&&o.reInit(n.current,r.current)},[o]);return y.useEffect(()=>{Vd(n.current,e)||(n.current=e,l())},[e,l]),y.useEffect(()=>{eN(r.current,t)||(r.current=t,l())},[t,l]),y.useEffect(()=>{if(J3()&&s){Ks.globalOptions=$d.globalOptions;const u=Ks(s,n.current,r.current);return i(u),()=>u.destroy()}else i(void 0)},[s,i]),[a,o]}$d.globalOptions=void 0;const _1=y.createContext(null);function ya(){const e=y.useContext(_1);if(!e)throw new Error("useCarousel must be used within a ");return e}const V1=y.forwardRef(({orientation:e="horizontal",opts:t,setApi:n,plugins:r,className:o,children:i,...s},a)=>{const[l,u]=$d({...t,axis:e==="horizontal"?"x":"y"},r),[c,d]=y.useState(!1),[f,x]=y.useState(!1),w=y.useCallback(m=>{m&&(d(m.canScrollPrev()),x(m.canScrollNext()))},[]),g=y.useCallback(()=>{u==null||u.scrollPrev()},[u]),C=y.useCallback(()=>{u==null||u.scrollNext()},[u]),p=y.useCallback(m=>{m.key==="ArrowLeft"?(m.preventDefault(),g()):m.key==="ArrowRight"&&(m.preventDefault(),C())},[g,C]);return y.useEffect(()=>{!u||!n||n(u)},[u,n]),y.useEffect(()=>{if(u)return w(u),u.on("reInit",w),u.on("select",w),()=>{u==null||u.off("select",w)}},[u,w]),h.jsx(_1.Provider,{value:{carouselRef:l,api:u,opts:t,orientation:e||((t==null?void 0:t.axis)==="y"?"vertical":"horizontal"),scrollPrev:g,scrollNext:C,canScrollPrev:c,canScrollNext:f},children:h.jsx("div",{ref:a,onKeyDownCapture:p,className:$("relative",o),role:"region","aria-roledescription":"carousel",...s,children:i})})});V1.displayName="Carousel";const F1=y.forwardRef(({className:e,...t},n)=>{const{carouselRef:r,orientation:o}=ya();return h.jsx("div",{ref:r,className:"overflow-hidden",children:h.jsx("div",{ref:n,className:$("flex",o==="horizontal"?"-ml-4":"-mt-4 flex-col",e),...t})})});F1.displayName="CarouselContent";const z1=y.forwardRef(({className:e,...t},n)=>{const{orientation:r}=ya();return h.jsx("div",{ref:n,role:"group","aria-roledescription":"slide",className:$("min-w-0 shrink-0 grow-0 basis-full",r==="horizontal"?"pl-4":"pt-4",e),...t})});z1.displayName="CarouselItem";const B1=y.forwardRef(({className:e,variant:t="outline",size:n="icon",...r},o)=>{const{orientation:i,scrollPrev:s,canScrollPrev:a}=ya();return h.jsxs(mi,{ref:o,variant:t,size:n,className:$("absolute h-8 w-8 rounded-full",i==="horizontal"?"-left-12 top-1/2 -translate-y-1/2":"-top-12 left-1/2 -translate-x-1/2 rotate-90",e),disabled:!a,onClick:s,...r,children:[h.jsx(JP,{className:"h-4 w-4"}),h.jsx("span",{className:"sr-only",children:"Previous slide"})]})});B1.displayName="CarouselPrevious";const $1=y.forwardRef(({className:e,variant:t="outline",size:n="icon",...r},o)=>{const{orientation:i,scrollNext:s,canScrollNext:a}=ya();return h.jsxs(mi,{ref:o,variant:t,size:n,className:$("absolute h-8 w-8 rounded-full",i==="horizontal"?"-right-12 top-1/2 -translate-y-1/2":"-bottom-12 left-1/2 -translate-x-1/2 rotate-90",e),disabled:!a,onClick:s,...r,children:[h.jsx(eT,{className:"h-4 w-4"}),h.jsx("span",{className:"sr-only",children:"Next slide"})]})});$1.displayName="CarouselNext";const jN="/assets/Dashboard-CH2heXmY.jpg",LN=["Client Dashboard","Offerings Management","Payment Integration","Calendar and Scheduling","Stats and Analytics","Community and Chat","Page Builder"],DN=()=>{const e=y.useRef(null),t=dt(e,{once:!0,amount:.2}),n=y.useRef(null),r=dt(n,{once:!0,amount:.3}),o=y.useRef(null),i=dt(o,{once:!0,amount:.3});return h.jsx("section",{className:"container py-12 sm:py-32 mx-auto px-4",children:h.jsx(ct.div,{ref:e,initial:{opacity:0,y:20},animate:t?{opacity:1,y:0}:{opacity:0,y:20},transition:{duration:.8,ease:"easeOut"},children:h.jsxs("div",{className:"flex flex-col items-center gap-10",children:[h.jsxs("div",{className:"flex flex-col items-center justify-center gap-4",children:[h.jsx("span",{className:" inline-block rounded-full px-4 py-1.5 text-sm font-semibold border-[1px] border-primary/40 text-primary",children:"Your own dashboard"}),h.jsxs("h2",{className:"text-2xl md:text-5xl font-bold text-center",children:["Your Whole Business in ",h.jsx("br",{}),h.jsx("span",{className:"bg-gradient-to-b from-primary/60 to-primary text-transparent bg-clip-text leading-normal",children:"One Dashboard"})]}),h.jsx("p",{className:"text-center text-base md:text-lg text-gray-600 dark:text-gray-400",children:"Replace multiple tools with one powerful platform"})]}),h.jsx(ct.div,{ref:n,initial:{opacity:0,y:20},animate:r?{opacity:1,y:0}:{opacity:0,y:20},transition:{duration:.6,ease:"easeOut",delay:.2},className:"w-full overflow-hidden",children:h.jsxs(V1,{className:"w-full max-w-full md:max-w-5xl mx-auto",children:[" ",h.jsxs(F1,{className:"-ml-1 md:-ml-4",children:[" ",LN.map(s=>h.jsx(z1,{className:"pl-1 md:pl-4 basis-1/10 md:basis-1/8",children:h.jsx(Z3,{variant:"secondary",className:"text-xs md:text-sm px-3 md:px-6 py-2 rounded-md whitespace-nowrap",children:s})},s))]}),h.jsxs("div",{className:"absolute inset-y-0 left-0 right-0 flex items-center justify-between pointer-events-none",children:[h.jsx(B1,{className:"hidden md:flex pointer-events-auto"}),h.jsx($1,{className:"hidden md:flex pointer-events-auto"})]})]})}),h.jsx(ct.div,{ref:o,initial:{opacity:0,y:30},animate:i?{opacity:1,y:0}:{opacity:0,y:30},transition:{duration:1,ease:"easeOut"},className:"mx-auto my-4 flex items-center justify-center",children:h.jsx("img",{src:jN,alt:"dashboard",className:"rounded-3xl",width:1200})})]})})})};function Ud(e,t){if(e==null)return{};var n={},r=Object.keys(e),o,i;for(i=0;i =0)&&(n[o]=e[o]);return n}var IN=["color"],ON=y.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,o=Ud(e,IN);return y.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},o,{ref:t}),y.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M12.9091 12.909C13.2365 12.5817 13.4918 12.1895 13.6588 11.7577C13.8195 11.3443 13.9294 10.8718 13.961 10.1799C13.9926 9.48665 14.0001 9.26529 14.0001 7.50001C14.0001 5.73473 13.9926 5.51328 13.961 4.82008C13.9294 4.12821 13.8195 3.65573 13.6588 3.24228C13.4956 2.80857 13.2398 2.41567 12.9091 2.091C12.5844 1.76028 12.1915 1.50437 11.7578 1.34113C11.3443 1.18056 10.8718 1.0707 10.1799 1.03924C9.48675 1.00748 9.26537 1 7.50006 1C5.73476 1 5.51333 1.00748 4.82014 1.03912C4.12826 1.0707 3.65578 1.18056 3.24233 1.34125C2.80862 1.50447 2.41573 1.76032 2.09105 2.09098C1.76032 2.41563 1.5044 2.80852 1.34113 3.24225C1.18056 3.65573 1.0707 4.12821 1.03924 4.82008C1.00748 5.51328 1 5.73471 1 7.50001C1 9.26532 1.00748 9.48675 1.03924 10.1799C1.07083 10.8718 1.18069 11.3443 1.34138 11.7577C1.5046 12.1915 1.76045 12.5843 2.09111 12.909C2.41578 13.2397 2.80867 13.4955 3.24238 13.6587C3.65586 13.8194 4.12834 13.9293 4.82019 13.9609C5.51348 13.9925 5.73483 14 7.50012 14C9.2654 14 9.48685 13.9925 10.18 13.9609C10.8719 13.9293 11.3444 13.8194 11.7578 13.6587C12.1896 13.4917 12.5818 13.2364 12.9091 12.909ZM1.99949 6.73496C1.99974 6.94524 2.00005 7.19543 2.00005 7.50002C2.00005 7.80461 1.99974 8.0548 1.99949 8.26507C1.99849 9.08596 1.99824 9.29856 2.01963 9.7655C2.04625 10.3509 2.07823 10.7811 2.17588 11.1053C2.26976 11.417 2.37505 11.7342 2.7188 12.1171C3.06255 12.4999 3.39411 12.6733 3.81645 12.8007C4.23879 12.928 4.7696 12.9554 5.23052 12.9764C5.75332 13.0003 5.96052 13.0002 7.05714 12.9999L7.50006 12.9999C7.79304 12.9999 8.03569 13.0001 8.2409 13.0004C9.08195 13.0013 9.29425 13.0015 9.76575 12.9799C10.3512 12.9533 10.7814 12.9213 11.1056 12.8237C11.4173 12.7298 11.7345 12.6245 12.1173 12.2807C12.5001 11.937 12.6735 11.6054 12.8009 11.1831C12.9283 10.7607 12.9557 10.2299 12.9767 9.76902C13.0005 9.24689 13.0004 9.04027 13.0002 7.94749V7.94738L13.0001 7.50039L13.0001 7.05747C13.0004 5.96085 13.0005 5.75365 12.9766 5.23085C12.9556 4.76993 12.9282 4.23912 12.8009 3.81678C12.6735 3.39445 12.5001 3.06288 12.1173 2.71913C11.7345 2.37538 11.4172 2.27009 11.1056 2.17621C10.7813 2.07856 10.3511 2.04658 9.76571 2.01996C9.29421 1.99836 9.08194 1.99859 8.24092 1.99951H8.24092C8.0357 1.99974 7.79305 2.00001 7.50006 2.00001L7.05704 1.99993C5.96051 1.99964 5.75331 1.99958 5.23052 2.02343C4.7696 2.04446 4.23879 2.07183 3.81645 2.19921C3.39411 2.32659 3.06255 2.49999 2.7188 2.88281C2.37505 3.26562 2.26976 3.58286 2.17588 3.89453C2.07823 4.21874 2.04625 4.64894 2.01963 5.23437C1.99824 5.70131 1.99849 5.91401 1.99949 6.73496ZM7.49996 5.25015C6.25741 5.25015 5.25012 6.25744 5.25012 7.49999C5.25012 8.74254 6.25741 9.74983 7.49996 9.74983C8.74251 9.74983 9.7498 8.74254 9.7498 7.49999C9.7498 6.25744 8.74251 5.25015 7.49996 5.25015ZM4.25012 7.49999C4.25012 5.70515 5.70512 4.25015 7.49996 4.25015C9.2948 4.25015 10.7498 5.70515 10.7498 7.49999C10.7498 9.29483 9.2948 10.7498 7.49996 10.7498C5.70512 10.7498 4.25012 9.29483 4.25012 7.49999ZM10.9697 4.7803C11.3839 4.7803 11.7197 4.44452 11.7197 4.0303C11.7197 3.61609 11.3839 3.2803 10.9697 3.2803C10.5555 3.2803 10.2197 3.61609 10.2197 4.0303C10.2197 4.44452 10.5555 4.7803 10.9697 4.7803Z",fill:r}))}),_N=["color"],VN=y.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,o=Ud(e,_N);return y.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},o,{ref:t}),y.createElement("path",{d:"M2 1C1.44772 1 1 1.44772 1 2V13C1 13.5523 1.44772 14 2 14H13C13.5523 14 14 13.5523 14 13V2C14 1.44772 13.5523 1 13 1H2ZM3.05 6H4.95V12H3.05V6ZM5.075 4.005C5.075 4.59871 4.59371 5.08 4 5.08C3.4063 5.08 2.925 4.59871 2.925 4.005C2.925 3.41129 3.4063 2.93 4 2.93C4.59371 2.93 5.075 3.41129 5.075 4.005ZM12 8.35713C12 6.55208 10.8334 5.85033 9.67449 5.85033C9.29502 5.83163 8.91721 5.91119 8.57874 6.08107C8.32172 6.21007 8.05265 6.50523 7.84516 7.01853H7.79179V6.00044H6V12.0047H7.90616V8.8112C7.8786 8.48413 7.98327 8.06142 8.19741 7.80987C8.41156 7.55832 8.71789 7.49825 8.95015 7.46774H9.02258C9.62874 7.46774 10.0786 7.84301 10.0786 8.78868V12.0047H11.9847L12 8.35713Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))}),FN=["color"],zN=y.forwardRef(function(e,t){var n=e.color,r=n===void 0?"currentColor":n,o=Ud(e,FN);return y.createElement("svg",Object.assign({width:"15",height:"15",viewBox:"0 0 15 15",fill:"none",xmlns:"http://www.w3.org/2000/svg"},o,{ref:t}),y.createElement("path",{d:"M7.23336 4.69629C7.23336 2.96884 8.63335 1.56857 10.36 1.56857C11.3736 1.56857 12.183 2.04804 12.7254 2.74385C13.3079 2.62467 13.8557 2.40913 14.3513 2.11508C14.1559 2.72598 13.7424 3.2396 13.2033 3.56463C13.2038 3.56568 13.2042 3.56674 13.2047 3.56779C13.7334 3.50361 14.2364 3.36302 14.7048 3.15546L14.7037 3.15715C14.3667 3.66183 13.9431 4.10736 13.4561 4.47034C13.4823 4.64672 13.4956 4.82427 13.4956 5.00079C13.4956 8.6871 10.6873 12.9746 5.52122 12.9746C3.93906 12.9746 2.46544 12.511 1.22505 11.7152C0.992632 11.5661 0.925108 11.2568 1.07423 11.0244C1.0874 11.0038 1.10183 10.9846 1.11734 10.9666C1.20582 10.8202 1.37438 10.7309 1.5554 10.7522C2.47066 10.8601 3.38568 10.7485 4.19219 10.3962C3.39226 10.0434 2.77129 9.35975 2.50204 8.51974C2.45359 8.3686 2.48835 8.20311 2.59351 8.08422C2.59716 8.0801 2.60087 8.07606 2.60464 8.0721C1.96391 7.50819 1.55973 6.68208 1.55973 5.76143V5.72759C1.55973 5.56814 1.64411 5.42059 1.78155 5.33974C1.82671 5.31317 1.87537 5.29511 1.92532 5.28558C1.70549 4.86154 1.58116 4.37984 1.58116 3.86958C1.58116 3.40165 1.58384 2.81192 1.91332 2.28081C1.98718 2.16175 2.10758 2.08915 2.2364 2.07195C2.42588 2.01237 2.64087 2.06969 2.77406 2.23302C3.86536 3.57126 5.44066 4.49583 7.23366 4.73961L7.23336 4.69629ZM5.52122 11.9746C4.73387 11.9746 3.97781 11.8435 3.27248 11.6023C4.13012 11.4538 4.95307 11.1159 5.66218 10.5602C5.81211 10.4427 5.87182 10.2435 5.81126 10.0629C5.7507 9.88234 5.583 9.75943 5.39255 9.75607C4.68968 9.74366 4.06712 9.39716 3.67793 8.86845C3.86828 8.85306 4.05428 8.82039 4.23445 8.77167C4.43603 8.71716 4.57363 8.53114 4.56674 8.32243C4.55985 8.11372 4.41029 7.93718 4.20555 7.89607C3.42694 7.73977 2.79883 7.16764 2.56169 6.42174C2.76255 6.47025 2.97102 6.4991 3.18482 6.5061C3.38563 6.51267 3.56646 6.38533 3.62795 6.19405C3.68943 6.00277 3.61666 5.79391 3.44963 5.68224C2.86523 5.29155 2.48116 4.62464 2.48116 3.86958C2.48116 3.70213 2.48352 3.55268 2.49355 3.41719C3.85115 4.79913 5.70873 5.68931 7.77588 5.79338C7.93225 5.80126 8.08328 5.73543 8.18395 5.61553C8.28463 5.49562 8.32332 5.33548 8.28851 5.18284C8.25255 5.02517 8.23336 4.86284 8.23336 4.69629C8.23336 3.52085 9.18591 2.56857 10.36 2.56857C11.5943 2.56857 12.4956 3.71208 12.4956 5.00079C12.4956 8.25709 10.0202 11.9746 5.52122 11.9746Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"}))});const BN=()=>h.jsxs("footer",{id:"footer",className:"bg-card",children:[h.jsxs("section",{className:"container max-w-6xl py-20 grid grid-cols-2 md:grid-cols-4 xl:grid-cols-6 gap-x-12 gap-y-8",children:[h.jsx("div",{className:"col-span-full xl:col-span-2",children:h.jsx("a",{rel:"noreferrer noopener",href:"/",className:"font-bold text-xl flex text-primary",children:"CAPES.APP"})}),h.jsxs("div",{className:"flex flex-col gap-2",children:[h.jsx("h3",{className:"font-bold text-lg",children:"Follow US"}),h.jsx("div",{children:h.jsx("a",{rel:"noreferrer noopener",href:"https://www.instagram.com/capes.app/",className:"opacity-60 hover:opacity-100",children:h.jsx(ON,{className:"w-6 h-6"})})}),h.jsx("div",{children:h.jsx("a",{rel:"noreferrer noopener",href:"https://x.com/capes_app/",className:"opacity-60 hover:opacity-100",children:h.jsx(zN,{className:"w-6 h-6"})})}),h.jsx("div",{children:h.jsx("a",{rel:"noreferrer noopener",href:"https://www.linkedin.com/company/capes-app/",className:"opacity-60 hover:opacity-100",children:h.jsx(VN,{className:"w-6 h-6"})})})]}),h.jsxs("div",{className:"flex flex-col gap-2",children:[h.jsx("h3",{className:"font-bold text-lg",children:"Legal"}),h.jsx("div",{children:h.jsx("a",{rel:"noreferrer noopener",href:"#",className:"opacity-60 hover:opacity-100",children:"Terms of Service"})}),h.jsx("div",{children:h.jsx("a",{rel:"noreferrer noopener",href:"#",className:"opacity-60 hover:opacity-100",children:"Privacy Policy"})}),h.jsx("div",{})]})]}),h.jsxs("section",{className:"container pb-8 max-w-6xl space-y-4",children:[h.jsx("hr",{className:"w-full"}),h.jsx("h3",{children:"© 2025 CAPES.APP - All rights reserved."})]})]}),$N="/assets/1-DfeGMWQo.png",UN="/assets/2-BJZ7tqEB.png",WN="/assets/3-EwemvFGz.png",HN=[{number:"1",image:$N,title:"Setup your profile page",description:"Create a profile page that showcases your offerings and services. Add your logo, bio, and links to your social media."},{number:"2",image:UN,title:"Create your offerings",description:"Create your offerings and services. Set up your payment. Share your profile page with your clients."},{number:"3",image:WN,title:"Start onboarding clients",description:"Start onboarding clients and leads. Get your business up and running within minutes."}],KN=({title:e,description:t,number:n,image:r})=>{const o=y.useRef(null),i=dt(o,{once:!0,amount:.3});return h.jsx(ct.div,{ref:o,initial:{opacity:0,y:20},animate:i?{opacity:1,y:0}:{opacity:0,y:20},transition:{duration:.5,ease:"easeOut"},children:h.jsxs(Rn,{className:"bg-muted/50 border-none shadow-none rounded-2xl",children:[h.jsx(An,{children:h.jsxs(jn,{className:"grid gap-4 place-items-start leading-normal",children:[h.jsx("img",{src:r,alt:e}),h.jsx(Fu,{className:"text-primary p-0",children:n}),e]})}),h.jsx(Fu,{className:"text-muted-foreground text-sm",children:t})]})})},GN=()=>{const e=y.useRef(null),t=dt(e,{once:!0,amount:.2}),n=y.useRef(null),r=dt(n,{once:!0,amount:.5});return h.jsx("section",{id:"howItWorks",className:"container py-16 sm:py-24 max-w-6xl",children:h.jsx(ct.div,{ref:e,initial:{opacity:0,y:20},animate:t?{opacity:1,y:0}:{opacity:0,y:20},transition:{duration:.8,ease:"easeOut"},children:h.jsxs("div",{className:"flex flex-col items-center justify-center gap-4",children:[h.jsx("span",{className:"mb-4 inline-block rounded-full px-4 py-1.5 text-sm font-semibold border-[1px] border-primary/40 text-primary",children:"How it Works"}),h.jsx("h2",{ref:n,className:"text-2xl md:text-5xl font-bold mb-8",style:{opacity:r?1:0,transform:r?"translateY(0)":"translateY(20px)",transition:"opacity 0.5s ease-out, transform 0.5s ease-out"},children:"Get Started in 3 Easy Steps."}),h.jsx("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-4",children:HN.map(o=>h.jsx(KN,{...o},o.title))})]})})})},YN=y.forwardRef(({className:e,type:t,...n},r)=>h.jsx("input",{type:t,className:$("flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",e),ref:r,...n}));YN.displayName="Input";const QN=()=>{const[e,t]=y.useState(!1);y.useEffect(()=>{window.addEventListener("scroll",()=>{window.scrollY>400?t(!0):t(!1)})},[]);const n=()=>{window.scroll({top:0,left:0})};return h.jsx(h.Fragment,{children:e&&h.jsx(mi,{onClick:n,className:"fixed bottom-4 right-4 opacity-90 shadow-md",size:"icon",children:h.jsx(tT,{className:"h-4 w-4"})})})},XN=[{title:"1:1 Sessions",description:"Monetize your time and expertise with 1:1 sessions, consultations, and coaching.",icon:vT,iconColor:"text-primary",backgroundColor:"bg-primary/10"},{title:"Group Sessions",description:"Seamlesly host and manage group classes, webinars, and workshops.",icon:fT,iconColor:"text-orange-500",backgroundColor:"bg-orange-500/10"},{title:"Digital Products",description:"Create and sell digital products, courses, and content.",icon:t0,iconColor:"text-pink-500",backgroundColor:"bg-pink-500/10"},{title:"Payments & Subscriptions",description:"Create and accept payments, manage subscriptions for your products and services.",icon:nT,iconColor:"text-green-500",backgroundColor:"bg-green-500/10"},{title:"Affiliate Links",description:"Create and manage affiliate programs for your products and services.",icon:lT,iconColor:"text-blue-500",backgroundColor:"bg-blue-500/10"}],ZN=({title:e,description:t,icon:n,iconColor:r,backgroundColor:o})=>{const i=y.useRef(null),s=dt(i,{once:!0,amount:.3});return h.jsx(ct.div,{ref:i,initial:{opacity:0,y:20},animate:s?{opacity:1,y:0}:{opacity:0,y:20},transition:{duration:.5,ease:"easeOut"},className:"transform-gpu",children:h.jsx(Rn,{className:"group transition-shadow duration-200 w-full h-full border-none rounded-3xl",children:h.jsxs(An,{className:"flex gap-3",children:[h.jsx("div",{className:`${o} rounded-xl p-2 flex items-center justify-center w-10 h-10`,children:h.jsx(n,{className:`${r} size-6`})}),h.jsx(jn,{className:"text-lg",children:e}),h.jsx(_d,{className:"text-sm",children:t})]})})})},qN=()=>{const e=y.useRef(null),t=dt(e,{once:!0,amount:.2}),n=y.useRef(null),r=dt(n,{once:!0,amount:.5});return h.jsx("section",{id:"services",className:"py-10 md:py-20",children:h.jsx("div",{className:"container mx-auto px-4",children:h.jsxs(ct.div,{ref:e,initial:{opacity:0,y:20},animate:t?{opacity:1,y:0}:{opacity:0,y:20},transition:{duration:.8,ease:"easeOut"},children:[h.jsxs("div",{className:"flex flex-col items-center justify-center pb-20 gap-4",children:[h.jsx("span",{className:"mb-4 inline-block rounded-full px-4 py-1.5 text-sm font-semibold border-[1px] border-primary/40 text-primary",children:"Offerings"}),h.jsx("h2",{ref:n,className:`text-2xl md:text-5xl font-bold md:text-center ${r?"opacity-100":"opacity-0"}`,children:"Offerings for every need."}),h.jsx("p",{className:"text-center text-base md:text-lg text-gray-600 dark:text-gray-400",children:"Fully integrated services and products you can start offering in minutes"})]}),h.jsx("div",{className:"mx-auto grid max-w-5xl gap-2 md:gap-8 grid-cols-2",children:XN.map((o,i)=>h.jsx(ZN,{...o},i))})]})})})};var Wd="Avatar",[JN,b5]=Zr(Wd),[e5,U1]=JN(Wd),W1=y.forwardRef((e,t)=>{const{__scopeAvatar:n,...r}=e,[o,i]=y.useState("idle");return h.jsx(e5,{scope:n,imageLoadingStatus:o,onImageLoadingStatusChange:i,children:h.jsx(H.span,{...r,ref:t})})});W1.displayName=Wd;var H1="AvatarImage",K1=y.forwardRef((e,t)=>{const{__scopeAvatar:n,src:r,onLoadingStatusChange:o=()=>{},...i}=e,s=U1(H1,n),a=t5(r,i),l=Fe(u=>{o(u),s.onImageLoadingStatusChange(u)});return Pt(()=>{a!=="idle"&&l(a)},[a,l]),a==="loaded"?h.jsx(H.img,{...i,ref:t,src:r}):null});K1.displayName=H1;var G1="AvatarFallback",Y1=y.forwardRef((e,t)=>{const{__scopeAvatar:n,delayMs:r,...o}=e,i=U1(G1,n),[s,a]=y.useState(r===void 0);return y.useEffect(()=>{if(r!==void 0){const l=window.setTimeout(()=>a(!0),r);return()=>window.clearTimeout(l)}},[r]),s&&i.imageLoadingStatus!=="loaded"?h.jsx(H.span,{...o,ref:t}):null});Y1.displayName=G1;function qh(e,t){return e?t?(e.src!==t&&(e.src=t),e.complete&&e.naturalWidth>0?"loaded":"loading"):"error":"idle"}function t5(e,{referrerPolicy:t,crossOrigin:n}){const r=r5(),o=y.useRef(null),i=r?(o.current||(o.current=new window.Image),o.current):null,[s,a]=y.useState(()=>qh(i,e));return Pt(()=>{a(qh(i,e))},[i,e]),Pt(()=>{const l=d=>()=>{a(d)};if(!i)return;const u=l("loaded"),c=l("error");return i.addEventListener("load",u),i.addEventListener("error",c),t&&(i.referrerPolicy=t),typeof n=="string"&&(i.crossOrigin=n),()=>{i.removeEventListener("load",u),i.removeEventListener("error",c)}},[i,n,t]),s}function n5(){return()=>{}}function r5(){return y.useSyncExternalStore(n5,()=>!0,()=>!1)}var Q1=W1,X1=K1,Z1=Y1;const o5=y.forwardRef(({className:e,...t},n)=>h.jsx(Q1,{ref:n,className:$("relative flex h-10 w-10 shrink-0 overflow-hidden rounded-full",e),...t}));o5.displayName=Q1.displayName;const i5=y.forwardRef(({className:e,...t},n)=>h.jsx(X1,{ref:n,className:$("aspect-square h-full w-full",e),...t}));i5.displayName=X1.displayName;const s5=y.forwardRef(({className:e,...t},n)=>h.jsx(Z1,{ref:n,className:$("flex h-full w-full items-center justify-center rounded-full bg-muted",e),...t}));s5.displayName=Z1.displayName;const a5="/assets/page-2-BvWTcA5F.png",Jh=[{title:"Build your own brand",icon:mT},{title:"List all your offerings and services",icon:t0},{title:"Manage & Interacts with Clients",icon:n0}],l5=({title:e,icon:t})=>h.jsx("div",{className:"transform-gpu",children:h.jsx(Rn,{className:"group duration-200 w-full h-full items-center border-none shadow-none",children:h.jsxs(An,{className:"flex flex-row items-start gap-4 p-1",children:[h.jsx("div",{className:" bg-primary/10 rounded-lg p-2 flex items-center justify-center w-10 h-10",children:h.jsx(t,{className:"text-primary size-6"})}),h.jsx(jn,{className:"text-base md:text-lg text-muted-foreground",children:e})]})})}),u5=()=>h.jsx("section",{className:"py-10 md:py-20 bg-card rounded-t-[40px] overflow-hidden",id:"features",children:h.jsx("div",{className:"container mx-auto px-4",children:h.jsxs("div",{className:"flex flex-col gap-10 md:gap-24",children:[h.jsxs("h2",{className:"text-2xl md:text-5xl font-bold text-center",children:["Capes helps manage",h.jsx("br",{}),"your business",h.jsx("span",{className:"bg-gradient-to-b from-primary/60 to-primary text-transparent bg-clip-text leading-relaxed"})]}),h.jsx("div",{className:"mx-auto max-w-6xl overflow-hidden",children:h.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-16 items-center",children:[h.jsx("div",{className:"order-2 md:order-1",children:h.jsx("img",{src:a5,alt:"Features illustration",className:"w-full"})}),h.jsxs("div",{className:"order-1 md:order-2 flex flex-col gap-6 items-start",children:[h.jsx("h2",{className:"text-2xl md:text-4xl font-semibold text-center md:text-left",children:"Setup your personalized page for your offerings and services."}),h.jsx("div",{className:"space-y-4",children:Jh&&Jh.map((e,t)=>h.jsx(l5,{...e},t))})]})]})})]})})}),em=[{title:"1:1 paid sessions",icon:gT},{title:"Group sessions & workshops",icon:n0},{title:"Multiple sessions under one package",icon:aT},{title:"Streamline scheduling for repeated sessions",icon:oT}],c5=({title:e,icon:t})=>h.jsx("div",{className:"transform-gpu",children:h.jsx(Rn,{className:"group duration-200 w-full h-full items-center border-none shadow-none",children:h.jsxs(An,{className:"flex flex-row items-start gap-4 p-1",children:[h.jsx("div",{className:" bg-primary/10 rounded-lg p-2 flex items-center justify-center w-10 h-10",children:h.jsx(t,{className:"text-primary size-6"})}),h.jsx(jn,{className:"text-base md:text-lg text-muted-foreground",children:e})]})})}),d5=()=>h.jsx("section",{className:"py-10 md:py-20 bg-card rounded-t-[40px] overflow-hidden",id:"features",children:h.jsx("div",{className:"container mx-auto px-4",children:h.jsx("div",{className:"mx-auto max-w-6xl",children:h.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-16 items-center",children:[h.jsxs("div",{className:"order-1 md:order-1 flex flex-col gap-6 items-center md:items-start",children:[h.jsxs("div",{children:[h.jsx("h2",{className:"text-2xl md:text-4xl font-semibold text-center md:text-left",children:"Your clients deserves the best."}),h.jsx("p",{className:"text-lg text-gray-600 dark:text-gray-400 text-center md:text-left mt-3",children:"Provide seamless experience to your clients for all your offerings and services."})]}),h.jsx("div",{className:"space-y-4",children:em&&em.map((e,t)=>h.jsx(c5,{...e},t))})]}),h.jsx("div",{className:"order-2 md:order-2",children:h.jsx("img",{src:Q3,alt:"Features illustration",className:"w-full"})})]})})})}),f5="/assets/CRM-Dp7OAakp.png",tm=[{title:"No more payment delays",icon:sT},{title:"Setup all your payments & subscriptions to autopilot",icon:iT},{title:"Timely notifications for all your needs",icon:rT}],p5=({title:e,icon:t})=>h.jsx("div",{className:"transform-gpu",children:h.jsx(Rn,{className:"group duration-200 w-full h-full items-center border-none shadow-none",children:h.jsxs(An,{className:"flex flex-row items-start gap-4 p-1",children:[h.jsx("div",{className:"bg-primary/10 rounded-lg p-2 flex items-center justify-center w-10 h-10",children:h.jsx(t,{className:"text-primary size-6"})}),h.jsx(jn,{className:"text-base md:text-lg text-muted-foreground",children:e})]})})}),h5=()=>h.jsx("section",{className:"py-10 md:py-20 bg-card rounded-t-[40px] overflow-hidden",id:"features",children:h.jsx("div",{className:"container mx-auto px-4",children:h.jsx("div",{className:"mx-auto max-w-6xl",children:h.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-16 items-center",children:[h.jsx("div",{className:"order-2 md:order-1",children:h.jsx("img",{src:f5,alt:"Features illustration",className:"w-full"})}),h.jsxs("div",{className:"order-1 md:order-2 flex flex-col gap-6 items-center md:items-start",children:[h.jsx("h2",{className:"text-2xl md:text-4xl font-semibold text-center md:text-left",children:"Manage all your payments and notifications"}),h.jsx("div",{className:"space-y-4",children:tm&&tm.map((e,t)=>h.jsx(p5,{...e},t))})]})]})})})}),m5="/assets/Chat-Bn3bUuSZ.png",nm=[{title:"Interact with your clients directly on your page",icon:uT},{title:"Video feedback as posts",icon:pT},{title:"All your testimonials at one place",icon:cT}],g5=({title:e,icon:t})=>h.jsx("div",{className:"transform-gpu",children:h.jsx(Rn,{className:"group duration-200 w-full h-full items-center border-none shadow-none",children:h.jsxs(An,{className:"flex flex-row items-start gap-4 p-1",children:[h.jsx("div",{className:"bg-primary/10 rounded-lg p-2 flex items-center justify-center w-10 h-10",children:h.jsx(t,{className:"text-primary size-6"})}),h.jsx(jn,{className:"text-base md:text-lg text-muted-foreground",children:e})]})})}),v5=()=>h.jsx("section",{className:"py-10 md:py-20 bg-card rounded-t-[40px] overflow-hidden",id:"features",children:h.jsx("div",{className:"container mx-auto px-4",children:h.jsx("div",{className:"mx-auto max-w-6xl",children:h.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-16 items-center",children:[h.jsxs("div",{className:"order-1 md:order-1 flex flex-col gap-6 items-center md:items-start",children:[h.jsx("h2",{className:"text-2xl md:text-4xl font-semibold text-center md:text-left",children:"Let the world know your good work."}),h.jsx("div",{className:"space-y-4",children:nm&&nm.map((e,t)=>h.jsx(g5,{...e},t))})]}),h.jsx("div",{className:"order-2 md:order-2",children:h.jsx("img",{src:m5,alt:"Features illustration",className:"w-full"})})]})})})}),rm=[{title:"90%",description:"of customers spend too much time managing clients manually"},{title:"96%",description:"say they struggle to stay connected with their audience"},{title:"97%",description:"says they use 4-5 different tools to manage their business"}],y5=({title:e,description:t})=>{const n=y.useRef(null),r=dt(n,{once:!0,amount:.3});return h.jsx(ct.div,{ref:n,initial:{opacity:0,y:30},animate:r?{opacity:1,y:0}:{opacity:0,y:30},transition:{duration:.6,ease:"easeOut"},className:"transform-gpu",children:h.jsx(Rn,{className:"group duration-200 w-full h-full items-center border-none shadow-none",children:h.jsxs(An,{className:"flex flex-col items-center gap-4 md:gap-10 p-1",children:[h.jsx(jn,{className:"text-5xl md:text-[80px] !font-medium",children:e}),h.jsx(_d,{className:"text-base md:text-xl text-muted-foreground text-center",children:t})]})})})},x5=()=>{const e=y.useRef(null),t=dt(e,{once:!0,amount:.2}),n=y.useRef(null),r=dt(n,{once:!0,amount:.5});return h.jsx("section",{className:"py-20 bg-card rounded-[40px]",id:"features",children:h.jsx("div",{className:"container mx-auto px-4",children:h.jsxs(ct.div,{ref:e,initial:{opacity:0,y:20},animate:t?{opacity:1,y:0}:{opacity:0,y:20},transition:{duration:.8,ease:"easeOut"},children:[h.jsxs("div",{className:"flex flex-col items-center justify-center pb-10 md:pb-20 gap-4",children:[h.jsx(ct.h2,{ref:n,initial:{opacity:0,y:20},animate:r?{opacity:1,y:0}:{opacity:0,y:20},transition:{duration:.8,ease:"easeOut"},className:"text-2xl md:text-5xl font-bold md:text-center",children:"Why Capes?"}),h.jsx("p",{className:"text-center text-base md:text-lg text-gray-600 dark:text-gray-400",children:"Based on our user survey..."})]}),h.jsx("div",{className:"mx-auto max-w-4xl grid grid-rows-1 md:grid-cols-3 items-center pt-12 gap-10 md:gap-24",children:rm&&rm.map((o,i)=>h.jsx(y5,{...o},i))})]})})})},w5=()=>h.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-background",children:h.jsxs("div",{className:"relative",children:[h.jsx("div",{className:"h-12 w-12 rounded-full"}),h.jsx("div",{className:"absolute left-0 top-0 h-12 w-12 animate-spin rounded-full border-4 border-primary border-t-transparent"})]})});function C5(){const[e,t]=y.useState(!0),[n,r]=y.useState(!1);return y.useEffect(()=>{const o=[];[r0].forEach(s=>{const a=new Image,l=new Promise(u=>{a.onload=()=>u(),a.onerror=()=>u()});a.src=s,o.push(l)}),Promise.all(o).then(()=>{console.log("All critical images loaded"),r(!0)})},[]),y.useEffect(()=>{if(n){console.log("Starting final loading timer");const o=setTimeout(()=>{t(!1)});return()=>clearTimeout(o)}},[n]),e?h.jsx(w5,{}):h.jsxs(h.Fragment,{children:[h.jsx(P3,{}),h.jsx(wT,{}),h.jsx(u5,{}),h.jsx(d5,{}),h.jsx(h5,{}),h.jsx(v5,{}),h.jsx(DN,{}),h.jsx(qN,{}),h.jsx(GN,{}),h.jsx(x5,{}),h.jsx(T3,{}),h.jsx(BN,{}),h.jsx(QN,{})]})}vl.createRoot(document.getElementById("root")).render(h.jsx(pe.StrictMode,{children:h.jsx(E3,{children:h.jsx(C5,{})})})); diff --git a/dist/assets/page-2-BvWTcA5F.png b/dist/assets/page-2-BvWTcA5F.png new file mode 100644 index 000000000..1c4ab0e00 Binary files /dev/null and b/dist/assets/page-2-BvWTcA5F.png differ diff --git a/dist/images/og-image.jpg b/dist/images/og-image.jpg new file mode 100644 index 000000000..72e0407c5 Binary files /dev/null and b/dist/images/og-image.jpg differ diff --git a/dist/index.html b/dist/index.html new file mode 100644 index 000000000..48b4b2f05 --- /dev/null +++ b/dist/index.html @@ -0,0 +1,48 @@ + + + + + + + + + + CAPES.APP + + + + + + + + + + + + + + + + + + + + + + + diff --git a/dist/vite.svg b/dist/vite.svg new file mode 100644 index 000000000..e7b8dfb1b --- /dev/null +++ b/dist/vite.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/index.html b/index.html new file mode 100644 index 000000000..96527aee8 --- /dev/null +++ b/index.html @@ -0,0 +1,47 @@ + + + + + + + + + +CAPES.APP + + + + + + + + + + + + + + + + + + + + + + diff --git a/next.config.js b/next.config.js deleted file mode 100644 index 658404ac6..000000000 --- a/next.config.js +++ /dev/null @@ -1,4 +0,0 @@ -/** @type {import('next').NextConfig} */ -const nextConfig = {}; - -module.exports = nextConfig; diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 000000000..15e903dae --- /dev/null +++ b/package-lock.json @@ -0,0 +1,5171 @@ +{ + "name": "shadcn-landing-page-template", + "version": "1.1.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "shadcn-landing-page-template", + "version": "1.1.0", + "license": "MIT", + "dependencies": { + "@radix-ui/react-accordion": "^1.2.0", + "@radix-ui/react-avatar": "^1.1.0", + "@radix-ui/react-dialog": "^1.1.1", + "@radix-ui/react-dropdown-menu": "^2.1.1", + "@radix-ui/react-icons": "^1.3.0", + "@radix-ui/react-navigation-menu": "^1.2.0", + "@radix-ui/react-slot": "^1.2.0", + "class-variance-authority": "^0.7.0", + "clsx": "^2.1.1", + "embla-carousel-react": "^8.6.0", + "framer-motion": "^12.7.2", + "lucide-react": "^0.424.0", + "react": "^18.3.1", + "react-dom": "^18.3.1", + "tailwind-merge": "^2.4.0", + "tailwindcss-animate": "^1.0.7" + }, + "devDependencies": { + "@types/node": "^20.14.2", + "@types/react": "^18.3.3", + "@types/react-dom": "^18.3.0", + "@typescript-eslint/eslint-plugin": "^7.12.0", + "@typescript-eslint/parser": "^7.12.0", + "@vitejs/plugin-react": "^4.3.0", + "autoprefixer": "^10.4.19", + "eslint": "^8.53.0", + "eslint-plugin-react-hooks": "^4.6.0", + "eslint-plugin-react-refresh": "^0.4.4", + "postcss": "^8.4.38", + "tailwindcss": "^3.4.4", + "typescript": "^5.4.5", + "vite": "^5.2.13" + } + }, + "node_modules/@alloc/quick-lru": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", + "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz", + "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.24.7", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.7.tgz", + "integrity": "sha512-qJzAIcv03PyaWqxRgO4mSU3lihncDT296vnyuE2O8uA4w3UHWI4S3hgeZd1L8W1Bft40w9JxJ2b412iDUFFRhw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.7.tgz", + "integrity": "sha512-nykK+LEK86ahTkX/3TgauT0ikKoNCfKHEaZYTUVupJdTLzGNvrblu4u6fa7DhZONAltdf8e662t/abY8idrd/g==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.24.7", + "@babel/generator": "^7.24.7", + "@babel/helper-compilation-targets": "^7.24.7", + "@babel/helper-module-transforms": "^7.24.7", + "@babel/helpers": "^7.24.7", + "@babel/parser": "^7.24.7", + "@babel/template": "^7.24.7", + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/generator": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.7.tgz", + "integrity": "sha512-oipXieGC3i45Y1A41t4tAqpnEZWgB/lC6Ehh6+rOviR5XWpTtMmLN+fGjz9vOiNRt0p6RtO6DtD0pdU3vpqdSA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.24.7", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.24.7.tgz", + "integrity": "sha512-ctSdRHBi20qWOfy27RUb4Fhp07KSJ3sXcuSvTrXrc4aG8NSYDo1ici3Vhg9bg69y5bj0Mr1lh0aeEgTvc12rMg==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.24.7", + "@babel/helper-validator-option": "^7.24.7", + "browserslist": "^4.22.2", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.24.7.tgz", + "integrity": "sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==", + "dev": true, + "dependencies": { + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.24.7.tgz", + "integrity": "sha512-FyoJTsj/PEUWu1/TYRiXTIHc8lbw+TDYkZuoE43opPS5TrI7MyONBE1oNvfguEXAD9yhQRrVBnXdXzSLQl9XnA==", + "dev": true, + "dependencies": { + "@babel/template": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.24.7.tgz", + "integrity": "sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ==", + "dev": true, + "dependencies": { + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz", + "integrity": "sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==", + "dev": true, + "dependencies": { + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.24.7.tgz", + "integrity": "sha512-1fuJEwIrp+97rM4RWdO+qrRsZlAeL1lQJoPqtCYWv0NL115XM93hIH4CSRln2w52SqvmY5hqdtauB6QFCDiZNQ==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-module-imports": "^7.24.7", + "@babel/helper-simple-access": "^7.24.7", + "@babel/helper-split-export-declaration": "^7.24.7", + "@babel/helper-validator-identifier": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.7.tgz", + "integrity": "sha512-Rq76wjt7yz9AAc1KnlRKNAi/dMSVWgDRx43FHoJEbcYU6xOWaE2dVPwcdTukJrjxS65GITyfbvEYHvkirZ6uEg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.7.tgz", + "integrity": "sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==", + "dev": true, + "dependencies": { + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.7.tgz", + "integrity": "sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.7.tgz", + "integrity": "sha512-7MbVt6xrwFQbunH2DNQsAP5sTGxfqQtErvBIvIMi6EQnbgUOuVYanvREcmFrOPhoXBrTtjhhP+lW+o5UfK+tDg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz", + "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.7.tgz", + "integrity": "sha512-yy1/KvjhV/ZCL+SM7hBrvnZJ3ZuT9OuZgIJAGpPEToANvc3iM6iDvBnRjtElWibHU6n8/LPR/EjX9EtIEYO3pw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.7.tgz", + "integrity": "sha512-NlmJJtvcw72yRJRcnCmGvSi+3jDEg8qFu3z0AFoymmzLx5ERVWyzd9kVXr7Th9/8yIJi2Zc6av4Tqz3wFs8QWg==", + "dev": true, + "dependencies": { + "@babel/template": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz", + "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.24.7", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.7.tgz", + "integrity": "sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-self": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.24.7.tgz", + "integrity": "sha512-fOPQYbGSgH0HUp4UJO4sMBFjY6DuWq+2i8rixyUMb3CdGixs/gccURvYOAhajBdKDoGajFr3mUq5rH3phtkGzw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-source": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.24.7.tgz", + "integrity": "sha512-J2z+MWzZHVOemyLweMqngXrgGC42jQ//R0KdxqkIz/OrbVIIlhFI3WigZ5fO+nwFvBlncr4MGapd8vTyc7RPNQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/template": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.7.tgz", + "integrity": "sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.24.7", + "@babel/parser": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.7.tgz", + "integrity": "sha512-yb65Ed5S/QAcewNPh0nZczy9JdYXkkAbIsEo+P7BE7yO3txAY30Y/oPa3QkQ5It3xVG2kpKMg9MsdxZaO31uKA==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.24.7", + "@babel/generator": "^7.24.7", + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-function-name": "^7.24.7", + "@babel/helper-hoist-variables": "^7.24.7", + "@babel/helper-split-export-declaration": "^7.24.7", + "@babel/parser": "^7.24.7", + "@babel/types": "^7.24.7", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.7.tgz", + "integrity": "sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.24.7", + "@babel/helper-validator-identifier": "^7.24.7", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.20.2.tgz", + "integrity": "sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.20.2.tgz", + "integrity": "sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.20.2.tgz", + "integrity": "sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.20.2.tgz", + "integrity": "sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.20.2.tgz", + "integrity": "sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.20.2.tgz", + "integrity": "sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.2.tgz", + "integrity": "sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.20.2.tgz", + "integrity": "sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.20.2.tgz", + "integrity": "sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.20.2.tgz", + "integrity": "sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.20.2.tgz", + "integrity": "sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.20.2.tgz", + "integrity": "sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.20.2.tgz", + "integrity": "sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.20.2.tgz", + "integrity": "sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.20.2.tgz", + "integrity": "sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.20.2.tgz", + "integrity": "sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.20.2.tgz", + "integrity": "sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.20.2.tgz", + "integrity": "sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.20.2.tgz", + "integrity": "sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.20.2.tgz", + "integrity": "sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.20.2.tgz", + "integrity": "sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.20.2.tgz", + "integrity": "sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.20.2.tgz", + "integrity": "sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.1.tgz", + "integrity": "sha512-Zm2NGpWELsQAD1xsJzGQpYfvICSsFkEpU0jxBjfdC6uNEWXcHnfs9hScFWtXVDVl+rBQJGrl4g1vcKIejpH9dA==", + "dev": true, + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/eslintrc/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@eslint/js": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", + "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@floating-ui/core": { + "version": "1.6.9", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.9.tgz", + "integrity": "sha512-uMXCuQ3BItDUbAMhIXw7UPXRfAlOAvZzdK9BWpE60MCn+Svt3aLn9jsPTi/WNGlRUu2uI0v5S7JiIUsbsvh3fw==", + "license": "MIT", + "dependencies": { + "@floating-ui/utils": "^0.2.9" + } + }, + "node_modules/@floating-ui/dom": { + "version": "1.6.13", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.13.tgz", + "integrity": "sha512-umqzocjDgNRGTuO7Q8CU32dkHkECqI8ZdMZ5Swb6QAM0t5rnlrN3lGo1hdpscRd3WS8T6DKYK4ephgIH9iRh3w==", + "license": "MIT", + "dependencies": { + "@floating-ui/core": "^1.6.0", + "@floating-ui/utils": "^0.2.9" + } + }, + "node_modules/@floating-ui/react-dom": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.1.2.tgz", + "integrity": "sha512-06okr5cgPzMNBy+Ycse2A6udMi4bqwW/zgBF/rwjcNqWkyr82Mcg8b0vjX8OJpZFy/FKjJmw6wV7t44kK6kW7A==", + "license": "MIT", + "dependencies": { + "@floating-ui/dom": "^1.0.0" + }, + "peerDependencies": { + "react": ">=16.8.0", + "react-dom": ">=16.8.0" + } + }, + "node_modules/@floating-ui/utils": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.9.tgz", + "integrity": "sha512-MDWhGtE+eHw5JW7lq4qhc5yRLS11ERl1c7Z6Xd0a58DozHES6EnNNwUWbMiG4J9Cgj053Bhk8zvlhFYKVhULwg==", + "license": "MIT" + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.14", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", + "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^2.0.2", + "debug": "^4.3.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/config-array/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@humanwhocodes/config-array/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", + "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", + "dev": true + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@radix-ui/primitive": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.1.2.tgz", + "integrity": "sha512-XnbHrrprsNqZKQhStrSwgRUQzoCI1glLzdw79xiZPoofhGICeZRSQ3dIxAKH1gb3OHfNf4d6f+vAv3kil2eggA==", + "license": "MIT" + }, + "node_modules/@radix-ui/react-accordion": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@radix-ui/react-accordion/-/react-accordion-1.2.4.tgz", + "integrity": "sha512-SGCxlSBaMvEzDROzyZjsVNzu9XY5E28B3k8jOENyrz6csOv/pG1eHyYfLJai1n9tRjwG61coXDhfpgtxKxUv5g==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.2", + "@radix-ui/react-collapsible": "1.1.4", + "@radix-ui/react-collection": "1.1.3", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-direction": "1.1.1", + "@radix-ui/react-id": "1.1.1", + "@radix-ui/react-primitive": "2.0.3", + "@radix-ui/react-use-controllable-state": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-arrow": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-arrow/-/react-arrow-1.1.3.tgz", + "integrity": "sha512-2dvVU4jva0qkNZH6HHWuSz5FN5GeU5tymvCgutF8WaXz9WnD1NgUhy73cqzkjkN4Zkn8lfTPv5JIfrC221W+Nw==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-primitive": "2.0.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-avatar": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@radix-ui/react-avatar/-/react-avatar-1.1.4.tgz", + "integrity": "sha512-+kBesLBzwqyDiYCtYFK+6Ktf+N7+Y6QOTUueLGLIbLZ/YeyFW6bsBGDsN+5HxHpM55C90u5fxsg0ErxzXTcwKA==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-primitive": "2.0.3", + "@radix-ui/react-use-callback-ref": "1.1.1", + "@radix-ui/react-use-layout-effect": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-collapsible": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@radix-ui/react-collapsible/-/react-collapsible-1.1.4.tgz", + "integrity": "sha512-u7LCw1EYInQtBNLGjm9nZ89S/4GcvX1UR5XbekEgnQae2Hkpq39ycJ1OhdeN1/JDfVNG91kWaWoest127TaEKQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.2", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-id": "1.1.1", + "@radix-ui/react-presence": "1.1.3", + "@radix-ui/react-primitive": "2.0.3", + "@radix-ui/react-use-controllable-state": "1.1.1", + "@radix-ui/react-use-layout-effect": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-collection": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-collection/-/react-collection-1.1.3.tgz", + "integrity": "sha512-mM2pxoQw5HJ49rkzwOs7Y6J4oYH22wS8BfK2/bBxROlI4xuR0c4jEenQP63LlTlDkO6Buj2Vt+QYAYcOgqtrXA==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-primitive": "2.0.3", + "@radix-ui/react-slot": "1.2.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-compose-refs": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.2.tgz", + "integrity": "sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-context": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.2.tgz", + "integrity": "sha512-jCi/QKUM2r1Ju5a3J64TH2A5SpKAgh0LpknyqdQ4m6DCV0xJ2HG1xARRwNGPQfi1SLdLWZ1OJz6F4OMBBNiGJA==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-dialog": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dialog/-/react-dialog-1.1.7.tgz", + "integrity": "sha512-EIdma8C0C/I6kL6sO02avaCRqi3fmWJpxH6mqbVScorW6nNktzKJT/le7VPho3o/7wCsyRg3z0+Q+Obr0Gy/VQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.2", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-dismissable-layer": "1.1.6", + "@radix-ui/react-focus-guards": "1.1.2", + "@radix-ui/react-focus-scope": "1.1.3", + "@radix-ui/react-id": "1.1.1", + "@radix-ui/react-portal": "1.1.5", + "@radix-ui/react-presence": "1.1.3", + "@radix-ui/react-primitive": "2.0.3", + "@radix-ui/react-slot": "1.2.0", + "@radix-ui/react-use-controllable-state": "1.1.1", + "aria-hidden": "^1.2.4", + "react-remove-scroll": "^2.6.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-direction": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-direction/-/react-direction-1.1.1.tgz", + "integrity": "sha512-1UEWRX6jnOA2y4H5WczZ44gOOjTEmlqv1uNW4GAJEO5+bauCBhv8snY65Iw5/VOS/ghKN9gr2KjnLKxrsvoMVw==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-dismissable-layer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.1.6.tgz", + "integrity": "sha512-7gpgMT2gyKym9Jz2ZhlRXSg2y6cNQIK8d/cqBZ0RBCaps8pFryCWXiUKI+uHGFrhMrbGUP7U6PWgiXzIxoyF3Q==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.2", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-primitive": "2.0.3", + "@radix-ui/react-use-callback-ref": "1.1.1", + "@radix-ui/react-use-escape-keydown": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-dropdown-menu": { + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dropdown-menu/-/react-dropdown-menu-2.1.7.tgz", + "integrity": "sha512-7/1LiuNZuCQE3IzdicGoHdQOHkS2Q08+7p8w6TXZ6ZjgAULaCI85ZY15yPl4o4FVgoKLRT43/rsfNVN8osClQQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.2", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-id": "1.1.1", + "@radix-ui/react-menu": "2.1.7", + "@radix-ui/react-primitive": "2.0.3", + "@radix-ui/react-use-controllable-state": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-focus-guards": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-guards/-/react-focus-guards-1.1.2.tgz", + "integrity": "sha512-fyjAACV62oPV925xFCrH8DR5xWhg9KYtJT4s3u54jxp+L/hbpTY2kIeEFFbFe+a/HCE94zGQMZLIpVTPVZDhaA==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-focus-scope": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-scope/-/react-focus-scope-1.1.3.tgz", + "integrity": "sha512-4XaDlq0bPt7oJwR+0k0clCiCO/7lO7NKZTAaJBYxDNQT/vj4ig0/UvctrRscZaFREpRvUTkpKR96ov1e6jptQg==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-primitive": "2.0.3", + "@radix-ui/react-use-callback-ref": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-icons": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-icons/-/react-icons-1.3.0.tgz", + "integrity": "sha512-jQxj/0LKgp+j9BiTXz3O3sgs26RNet2iLWmsPyRz2SIcR4q/4SbazXfnYwbAr+vLYKSfc7qxzyGQA1HLlYiuNw==", + "peerDependencies": { + "react": "^16.x || ^17.x || ^18.x" + } + }, + "node_modules/@radix-ui/react-id": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.1.1.tgz", + "integrity": "sha512-kGkGegYIdQsOb4XjsfM97rXsiHaBwco+hFI66oO4s9LU+PLAC5oJ7khdOVFxkhsmlbpUqDAvXw11CluXP+jkHg==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-use-layout-effect": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-menu": { + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/@radix-ui/react-menu/-/react-menu-2.1.7.tgz", + "integrity": "sha512-tBODsrk68rOi1/iQzbM54toFF+gSw/y+eQgttFflqlGekuSebNqvFNHjJgjqPhiMb4Fw9A0zNFly1QT6ZFdQ+Q==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.2", + "@radix-ui/react-collection": "1.1.3", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-direction": "1.1.1", + "@radix-ui/react-dismissable-layer": "1.1.6", + "@radix-ui/react-focus-guards": "1.1.2", + "@radix-ui/react-focus-scope": "1.1.3", + "@radix-ui/react-id": "1.1.1", + "@radix-ui/react-popper": "1.2.3", + "@radix-ui/react-portal": "1.1.5", + "@radix-ui/react-presence": "1.1.3", + "@radix-ui/react-primitive": "2.0.3", + "@radix-ui/react-roving-focus": "1.1.3", + "@radix-ui/react-slot": "1.2.0", + "@radix-ui/react-use-callback-ref": "1.1.1", + "aria-hidden": "^1.2.4", + "react-remove-scroll": "^2.6.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-navigation-menu": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@radix-ui/react-navigation-menu/-/react-navigation-menu-1.2.6.tgz", + "integrity": "sha512-HJqyzqG74Lj7KV58rk73i/B1nnopVyCfUmKgeGWWrZZiCuMNcY0KKugTrmqMbIeMliUnkBUDKCy9J6Mzl6xeWw==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.2", + "@radix-ui/react-collection": "1.1.3", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-direction": "1.1.1", + "@radix-ui/react-dismissable-layer": "1.1.6", + "@radix-ui/react-id": "1.1.1", + "@radix-ui/react-presence": "1.1.3", + "@radix-ui/react-primitive": "2.0.3", + "@radix-ui/react-use-callback-ref": "1.1.1", + "@radix-ui/react-use-controllable-state": "1.1.1", + "@radix-ui/react-use-layout-effect": "1.1.1", + "@radix-ui/react-use-previous": "1.1.1", + "@radix-ui/react-visually-hidden": "1.1.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-popper": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-popper/-/react-popper-1.2.3.tgz", + "integrity": "sha512-iNb9LYUMkne9zIahukgQmHlSBp9XWGeQQ7FvUGNk45ywzOb6kQa+Ca38OphXlWDiKvyneo9S+KSJsLfLt8812A==", + "license": "MIT", + "dependencies": { + "@floating-ui/react-dom": "^2.0.0", + "@radix-ui/react-arrow": "1.1.3", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-primitive": "2.0.3", + "@radix-ui/react-use-callback-ref": "1.1.1", + "@radix-ui/react-use-layout-effect": "1.1.1", + "@radix-ui/react-use-rect": "1.1.1", + "@radix-ui/react-use-size": "1.1.1", + "@radix-ui/rect": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-portal": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.1.5.tgz", + "integrity": "sha512-ps/67ZqsFm+Mb6lSPJpfhRLrVL2i2fntgCmGMqqth4eaGUf+knAuuRtWVJrNjUhExgmdRqftSgzpf0DF0n6yXA==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-primitive": "2.0.3", + "@radix-ui/react-use-layout-effect": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-presence": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.1.3.tgz", + "integrity": "sha512-IrVLIhskYhH3nLvtcBLQFZr61tBG7wx7O3kEmdzcYwRGAEBmBicGGL7ATzNgruYJ3xBTbuzEEq9OXJM3PAX3tA==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-use-layout-effect": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-primitive": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.0.3.tgz", + "integrity": "sha512-Pf/t/GkndH7CQ8wE2hbkXA+WyZ83fhQQn5DDmwDiDo6AwN/fhaH8oqZ0jRjMrO2iaMhDi6P1HRx6AZwyMinY1g==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-slot": "1.2.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-roving-focus": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-roving-focus/-/react-roving-focus-1.1.3.tgz", + "integrity": "sha512-ufbpLUjZiOg4iYgb2hQrWXEPYX6jOLBbR27bDyAff5GYMRrCzcze8lukjuXVUQvJ6HZe8+oL+hhswDcjmcgVyg==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.2", + "@radix-ui/react-collection": "1.1.3", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-direction": "1.1.1", + "@radix-ui/react-id": "1.1.1", + "@radix-ui/react-primitive": "2.0.3", + "@radix-ui/react-use-callback-ref": "1.1.1", + "@radix-ui/react-use-controllable-state": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-slot": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.2.0.tgz", + "integrity": "sha512-ujc+V6r0HNDviYqIK3rW4ffgYiZ8g5DEHrGJVk4x7kTlLXRDILnKX9vAUYeIsLOoDpDJ0ujpqMkjH4w2ofuo6w==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.2" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-callback-ref": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.1.1.tgz", + "integrity": "sha512-FkBMwD+qbGQeMu1cOHnuGB6x4yzPjho8ap5WtbEJ26umhgqVXbhekKUQO+hZEL1vU92a3wHwdp0HAcqAUF5iDg==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-controllable-state": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.1.1.tgz", + "integrity": "sha512-YnEXIy8/ga01Y1PN0VfaNH//MhA91JlEGVBDxDzROqwrAtG5Yr2QGEPz8A/rJA3C7ZAHryOYGaUv8fLSW2H/mg==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-use-callback-ref": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-escape-keydown": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-1.1.1.tgz", + "integrity": "sha512-Il0+boE7w/XebUHyBjroE+DbByORGR9KKmITzbR7MyQ4akpORYP/ZmbhAr0DG7RmmBqoOnZdy2QlvajJ2QA59g==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-use-callback-ref": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-layout-effect": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.1.1.tgz", + "integrity": "sha512-RbJRS4UWQFkzHTTwVymMTUv8EqYhOp8dOOviLj2ugtTiXRaRQS7GLGxZTLL1jWhMeoSCf5zmcZkqTl9IiYfXcQ==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-previous": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-previous/-/react-use-previous-1.1.1.tgz", + "integrity": "sha512-2dHfToCj/pzca2Ck724OZ5L0EVrr3eHRNsG/b3xQJLA2hZpVCS99bLAX+hm1IHXDEnzU6by5z/5MIY794/a8NQ==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-rect": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-rect/-/react-use-rect-1.1.1.tgz", + "integrity": "sha512-QTYuDesS0VtuHNNvMh+CjlKJ4LJickCMUAqjlE3+j8w+RlRpwyX3apEQKGFzbZGdo7XNG1tXa+bQqIE7HIXT2w==", + "license": "MIT", + "dependencies": { + "@radix-ui/rect": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-size": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-size/-/react-use-size-1.1.1.tgz", + "integrity": "sha512-ewrXRDTAqAXlkl6t/fkXWNAhFX9I+CkKlw6zjEwk86RSPKwZr3xpBRso655aqYafwtnbpHLj6toFzmd6xdVptQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-use-layout-effect": "1.1.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-visually-hidden": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-visually-hidden/-/react-visually-hidden-1.1.3.tgz", + "integrity": "sha512-oXSF3ZQRd5fvomd9hmUCb2EHSZbPp3ZSHAHJJU/DlF9XoFkJBBW8RHU/E8WEH+RbSfJd/QFA0sl8ClJXknBwHQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-primitive": "2.0.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/rect": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/rect/-/rect-1.1.1.tgz", + "integrity": "sha512-HPwpGIzkl28mWyZqG52jiqDJ12waP11Pa1lGoiyUkIEuMLBP0oeK/C89esbXrxsky5we7dfd8U58nm0SgAWpVw==", + "license": "MIT" + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.18.0.tgz", + "integrity": "sha512-Tya6xypR10giZV1XzxmH5wr25VcZSncG0pZIjfePT0OVBvqNEurzValetGNarVrGiq66EBVAFn15iYX4w6FKgQ==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.18.0.tgz", + "integrity": "sha512-avCea0RAP03lTsDhEyfy+hpfr85KfyTctMADqHVhLAF3MlIkq83CP8UfAHUssgXTYd+6er6PaAhx/QGv4L1EiA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.18.0.tgz", + "integrity": "sha512-IWfdwU7KDSm07Ty0PuA/W2JYoZ4iTj3TUQjkVsO/6U+4I1jN5lcR71ZEvRh52sDOERdnNhhHU57UITXz5jC1/w==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.18.0.tgz", + "integrity": "sha512-n2LMsUz7Ynu7DoQrSQkBf8iNrjOGyPLrdSg802vk6XT3FtsgX6JbE8IHRvposskFm9SNxzkLYGSq9QdpLYpRNA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.18.0.tgz", + "integrity": "sha512-C/zbRYRXFjWvz9Z4haRxcTdnkPt1BtCkz+7RtBSuNmKzMzp3ZxdM28Mpccn6pt28/UWUCTXa+b0Mx1k3g6NOMA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.18.0.tgz", + "integrity": "sha512-l3m9ewPgjQSXrUMHg93vt0hYCGnrMOcUpTz6FLtbwljo2HluS4zTXFy2571YQbisTnfTKPZ01u/ukJdQTLGh9A==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.18.0.tgz", + "integrity": "sha512-rJ5D47d8WD7J+7STKdCUAgmQk49xuFrRi9pZkWoRD1UeSMakbcepWXPF8ycChBoAqs1pb2wzvbY6Q33WmN2ftw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.18.0.tgz", + "integrity": "sha512-be6Yx37b24ZwxQ+wOQXXLZqpq4jTckJhtGlWGZs68TgdKXJgw54lUUoFYrg6Zs/kjzAQwEwYbp8JxZVzZLRepQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.18.0.tgz", + "integrity": "sha512-hNVMQK+qrA9Todu9+wqrXOHxFiD5YmdEi3paj6vP02Kx1hjd2LLYR2eaN7DsEshg09+9uzWi2W18MJDlG0cxJA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.18.0.tgz", + "integrity": "sha512-ROCM7i+m1NfdrsmvwSzoxp9HFtmKGHEqu5NNDiZWQtXLA8S5HBCkVvKAxJ8U+CVctHwV2Gb5VUaK7UAkzhDjlg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.18.0.tgz", + "integrity": "sha512-0UyyRHyDN42QL+NbqevXIIUnKA47A+45WyasO+y2bGJ1mhQrfrtXUpTxCOrfxCR4esV3/RLYyucGVPiUsO8xjg==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.18.0.tgz", + "integrity": "sha512-xuglR2rBVHA5UsI8h8UbX4VJ470PtGCf5Vpswh7p2ukaqBGFTnsfzxUBetoWBWymHMxbIG0Cmx7Y9qDZzr648w==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.18.0.tgz", + "integrity": "sha512-LKaqQL9osY/ir2geuLVvRRs+utWUNilzdE90TpyoX0eNqPzWjRm14oMEE+YLve4k/NAqCdPkGYDaDF5Sw+xBfg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.18.0.tgz", + "integrity": "sha512-7J6TkZQFGo9qBKH0pk2cEVSRhJbL6MtfWxth7Y5YmZs57Pi+4x6c2dStAUvaQkHQLnEQv1jzBUW43GvZW8OFqA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.18.0.tgz", + "integrity": "sha512-Txjh+IxBPbkUB9+SXZMpv+b/vnTEtFyfWZgJ6iyCmt2tdx0OF5WhFowLmnh8ENGNpfUlUZkdI//4IEmhwPieNg==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.18.0.tgz", + "integrity": "sha512-UOo5FdvOL0+eIVTgS4tIdbW+TtnBLWg1YBCcU2KWM7nuNwRz9bksDX1bekJJCpu25N1DVWaCwnT39dVQxzqS8g==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@types/babel__core": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.6.8", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", + "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.20.6", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.6.tgz", + "integrity": "sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.20.7" + } + }, + "node_modules/@types/estree": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", + "dev": true + }, + "node_modules/@types/node": { + "version": "20.14.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.14.2.tgz", + "integrity": "sha512-xyu6WAMVwv6AKFLB+e/7ySZVr/0zLCzOa7rSpq6jNwpqOrUbcACDWC+53d4n2QHOnDou0fbIsg8wZu/sxrnI4Q==", + "dev": true, + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/@types/prop-types": { + "version": "15.7.12", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.12.tgz", + "integrity": "sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==", + "devOptional": true + }, + "node_modules/@types/react": { + "version": "18.3.3", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.3.tgz", + "integrity": "sha512-hti/R0pS0q1/xx+TsI73XIqk26eBsISZ2R0wUijXIngRK9R/e7Xw/cXVxQK7R5JjW+SV4zGcn5hXjudkN/pLIw==", + "devOptional": true, + "dependencies": { + "@types/prop-types": "*", + "csstype": "^3.0.2" + } + }, + "node_modules/@types/react-dom": { + "version": "18.3.0", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.0.tgz", + "integrity": "sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==", + "devOptional": true, + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "7.12.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.12.0.tgz", + "integrity": "sha512-7F91fcbuDf/d3S8o21+r3ZncGIke/+eWk0EpO21LXhDfLahriZF9CGj4fbAetEjlaBdjdSm9a6VeXbpbT6Z40Q==", + "dev": true, + "dependencies": { + "@eslint-community/regexpp": "^4.10.0", + "@typescript-eslint/scope-manager": "7.12.0", + "@typescript-eslint/type-utils": "7.12.0", + "@typescript-eslint/utils": "7.12.0", + "@typescript-eslint/visitor-keys": "7.12.0", + "graphemer": "^1.4.0", + "ignore": "^5.3.1", + "natural-compare": "^1.4.0", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^7.0.0", + "eslint": "^8.56.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "7.12.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.12.0.tgz", + "integrity": "sha512-dm/J2UDY3oV3TKius2OUZIFHsomQmpHtsV0FTh1WO8EKgHLQ1QCADUqscPgTpU+ih1e21FQSRjXckHn3txn6kQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/scope-manager": "7.12.0", + "@typescript-eslint/types": "7.12.0", + "@typescript-eslint/typescript-estree": "7.12.0", + "@typescript-eslint/visitor-keys": "7.12.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.56.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "7.12.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.12.0.tgz", + "integrity": "sha512-itF1pTnN6F3unPak+kutH9raIkL3lhH1YRPGgt7QQOh43DQKVJXmWkpb+vpc/TiDHs6RSd9CTbDsc/Y+Ygq7kg==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "7.12.0", + "@typescript-eslint/visitor-keys": "7.12.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "7.12.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.12.0.tgz", + "integrity": "sha512-lib96tyRtMhLxwauDWUp/uW3FMhLA6D0rJ8T7HmH7x23Gk1Gwwu8UZ94NMXBvOELn6flSPiBrCKlehkiXyaqwA==", + "dev": true, + "dependencies": { + "@typescript-eslint/typescript-estree": "7.12.0", + "@typescript-eslint/utils": "7.12.0", + "debug": "^4.3.4", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.56.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/types": { + "version": "7.12.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.12.0.tgz", + "integrity": "sha512-o+0Te6eWp2ppKY3mLCU+YA9pVJxhUJE15FV7kxuD9jgwIAa+w/ycGJBMrYDTpVGUM/tgpa9SeMOugSabWFq7bg==", + "dev": true, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "7.12.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.12.0.tgz", + "integrity": "sha512-5bwqLsWBULv1h6pn7cMW5dXX/Y2amRqLaKqsASVwbBHMZSnHqE/HN4vT4fE0aFsiwxYvr98kqOWh1a8ZKXalCQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "7.12.0", + "@typescript-eslint/visitor-keys": "7.12.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "7.12.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.12.0.tgz", + "integrity": "sha512-Y6hhwxwDx41HNpjuYswYp6gDbkiZ8Hin9Bf5aJQn1bpTs3afYY4GX+MPYxma8jtoIV2GRwTM/UJm/2uGCVv+DQ==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "@typescript-eslint/scope-manager": "7.12.0", + "@typescript-eslint/types": "7.12.0", + "@typescript-eslint/typescript-estree": "7.12.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.56.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "7.12.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.12.0.tgz", + "integrity": "sha512-uZk7DevrQLL3vSnfFl5bj4sL75qC9D6EdjemIdbtkuUmIheWpuiiylSY01JxJE7+zGrOWDZrp1WxOuDntvKrHQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "7.12.0", + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "dev": true + }, + "node_modules/@vitejs/plugin-react": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.3.0.tgz", + "integrity": "sha512-KcEbMsn4Dpk+LIbHMj7gDPRKaTMStxxWRkRmxsg/jVdFdJCZWt1SchZcf0M4t8lIKdwwMsEyzhrcOXRrDPtOBw==", + "dev": true, + "dependencies": { + "@babel/core": "^7.24.5", + "@babel/plugin-transform-react-jsx-self": "^7.24.5", + "@babel/plugin-transform-react-jsx-source": "^7.24.1", + "@types/babel__core": "^7.20.5", + "react-refresh": "^0.14.2" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "peerDependencies": { + "vite": "^4.2.0 || ^5.0.0" + } + }, + "node_modules/acorn": { + "version": "8.11.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", + "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==" + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==" + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/aria-hidden": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/aria-hidden/-/aria-hidden-1.2.4.tgz", + "integrity": "sha512-y+CcFFwelSXpLZk/7fMB2mUbGtX9lKycf1MWJ7CaTIERyitVlyQx6C+sxcROU2BAJ24OiZyK+8wj2i8AlBoS3A==", + "dependencies": { + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/autoprefixer": { + "version": "10.4.19", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.19.tgz", + "integrity": "sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "browserslist": "^4.23.0", + "caniuse-lite": "^1.0.30001599", + "fraction.js": "^4.3.7", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.0", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", + "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001587", + "electron-to-chromium": "^1.4.668", + "node-releases": "^2.0.14", + "update-browserslist-db": "^1.0.13" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase-css": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", + "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001629", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001629.tgz", + "integrity": "sha512-c3dl911slnQhmxUIT4HhYzT7wnBK/XYpGnYLOj4nJBaRiw52Ibe7YxlDaAeRECvA786zCuExhxIUJ2K7nHMrBw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/class-variance-authority": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/class-variance-authority/-/class-variance-authority-0.7.0.tgz", + "integrity": "sha512-jFI8IQw4hczaL4ALINxqLEXQbWcNjoSkloa4IaufXCJr6QawJyw7tuRysRsrE8w2p/4gGaxKIt/hX3qz/IbD1A==", + "dependencies": { + "clsx": "2.0.0" + }, + "funding": { + "url": "https://joebell.co.uk" + } + }, + "node_modules/class-variance-authority/node_modules/clsx": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.0.0.tgz", + "integrity": "sha512-rQ1+kcj+ttHG0MKVGBUXwayCCF1oh39BF5COIpRzuCEv8Mwjv0XucrI2ExNTOn9IlLifGClWQcU9BrZORvtw6Q==", + "engines": { + "node": ">=6" + } + }, + "node_modules/clsx": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", + "devOptional": true + }, + "node_modules/debug": { + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz", + "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "node_modules/detect-node-es": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.1.0.tgz", + "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==", + "license": "MIT" + }, + "node_modules/didyoumean": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==" + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==" + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" + }, + "node_modules/electron-to-chromium": { + "version": "1.4.796", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.796.tgz", + "integrity": "sha512-NglN/xprcM+SHD2XCli4oC6bWe6kHoytcyLKCWXmRL854F0qhPhaYgUswUsglnPxYaNQIg2uMY4BvaomIf3kLA==", + "dev": true + }, + "node_modules/embla-carousel": { + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/embla-carousel/-/embla-carousel-8.6.0.tgz", + "integrity": "sha512-SjWyZBHJPbqxHOzckOfo8lHisEaJWmwd23XppYFYVh10bU66/Pn5tkVkbkCMZVdbUE5eTCI2nD8OyIP4Z+uwkA==", + "license": "MIT" + }, + "node_modules/embla-carousel-react": { + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/embla-carousel-react/-/embla-carousel-react-8.6.0.tgz", + "integrity": "sha512-0/PjqU7geVmo6F734pmPqpyHqiM99olvyecY7zdweCw+6tKEXnrE90pBiBbMMU8s5tICemzpQ3hi5EpxzGW+JA==", + "license": "MIT", + "dependencies": { + "embla-carousel": "8.6.0", + "embla-carousel-reactive-utils": "8.6.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.1 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" + } + }, + "node_modules/embla-carousel-reactive-utils": { + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/embla-carousel-reactive-utils/-/embla-carousel-reactive-utils-8.6.0.tgz", + "integrity": "sha512-fMVUDUEx0/uIEDM0Mz3dHznDhfX+znCCDCeIophYb1QGVM7YThSWX+wz11zlYwWFOr74b4QLGg0hrGPJeG2s4A==", + "license": "MIT", + "peerDependencies": { + "embla-carousel": "8.6.0" + } + }, + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" + }, + "node_modules/esbuild": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.20.2.tgz", + "integrity": "sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.20.2", + "@esbuild/android-arm": "0.20.2", + "@esbuild/android-arm64": "0.20.2", + "@esbuild/android-x64": "0.20.2", + "@esbuild/darwin-arm64": "0.20.2", + "@esbuild/darwin-x64": "0.20.2", + "@esbuild/freebsd-arm64": "0.20.2", + "@esbuild/freebsd-x64": "0.20.2", + "@esbuild/linux-arm": "0.20.2", + "@esbuild/linux-arm64": "0.20.2", + "@esbuild/linux-ia32": "0.20.2", + "@esbuild/linux-loong64": "0.20.2", + "@esbuild/linux-mips64el": "0.20.2", + "@esbuild/linux-ppc64": "0.20.2", + "@esbuild/linux-riscv64": "0.20.2", + "@esbuild/linux-s390x": "0.20.2", + "@esbuild/linux-x64": "0.20.2", + "@esbuild/netbsd-x64": "0.20.2", + "@esbuild/openbsd-x64": "0.20.2", + "@esbuild/sunos-x64": "0.20.2", + "@esbuild/win32-arm64": "0.20.2", + "@esbuild/win32-ia32": "0.20.2", + "@esbuild/win32-x64": "0.20.2" + } + }, + "node_modules/escalade": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/eslint": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", + "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.57.0", + "@humanwhocodes/config-array": "^0.11.14", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-plugin-react-hooks": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.2.tgz", + "integrity": "sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0" + } + }, + "node_modules/eslint-plugin-react-refresh": { + "version": "0.4.7", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.4.7.tgz", + "integrity": "sha512-yrj+KInFmwuQS2UQcg1SF83ha1tuHC1jMQbRNyuWtlEzzKRDgAl7L4Yp4NlDUZTZNlWvHEzOtJhMi40R7JxcSw==", + "dev": true, + "peerDependencies": { + "eslint": ">=7" + } + }, + "node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/eslint/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/eslint/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/eslint/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/eslint/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/eslint/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/eslint/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esquery": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "node_modules/fastq": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "dev": true, + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", + "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", + "dev": true + }, + "node_modules/foreground-child": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", + "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/fraction.js": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", + "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", + "dev": true, + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://github.com/sponsors/rawify" + } + }, + "node_modules/framer-motion": { + "version": "12.7.2", + "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-12.7.2.tgz", + "integrity": "sha512-0vLY/JqYqieojTriuIR+UTCBVbj89eNUxXTkb01Xg8gSiTXDeuscOvoYm8vvgRGLMYGsCuJ31kDsTy081kPKFw==", + "license": "MIT", + "dependencies": { + "motion-dom": "^12.7.2", + "motion-utils": "^12.7.2", + "tslib": "^2.4.0" + }, + "peerDependencies": { + "@emotion/is-prop-valid": "*", + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@emotion/is-prop-valid": { + "optional": true + }, + "react": { + "optional": true + }, + "react-dom": { + "optional": true + } + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-nonce": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-nonce/-/get-nonce-1.0.1.tgz", + "integrity": "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/glob/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/glob/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/ignore": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", + "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-core-module": { + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "dependencies": { + "hasown": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + }, + "node_modules/jackspeak": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.0.tgz", + "integrity": "sha512-JVYhQnN59LVPFCEcVa2C3CrEKYacvjRfqIQl+h8oi91aLYQVWRYbxjPcv1bUiUy/kLmQaANrYfNMCO3kuEDHfw==", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/jiti": { + "version": "1.21.3", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.3.tgz", + "integrity": "sha512-uy2bNX5zQ+tESe+TiC7ilGRz8AtRGmnJH55NC5S0nSUjvvvM2hJHmefHErugGXN4pNv4Qx7vLsnNw9qJ9mtIsw==", + "bin": { + "jiti": "bin/jiti.js" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lilconfig": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", + "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", + "engines": { + "node": ">=10" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/lucide-react": { + "version": "0.424.0", + "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-0.424.0.tgz", + "integrity": "sha512-x2Nj2aytk1iOyHqt4hKenfVlySq0rYxNeEf8hE0o+Yh0iE36Rqz0rkngVdv2uQtjZ70LAE73eeplhhptYt9x4Q==", + "license": "ISC", + "peerDependencies": { + "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0-rc" + } + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.7.tgz", + "integrity": "sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/minimatch": { + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", + "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/motion-dom": { + "version": "12.7.2", + "resolved": "https://registry.npmjs.org/motion-dom/-/motion-dom-12.7.2.tgz", + "integrity": "sha512-7+sytBQyb9XRRH6lyLRQf+R6y2BE79J2EgTijTSxYgGt+ufpnoRDPgru9KHvA125tTHnbAXDzeTUb9OvscSitA==", + "license": "MIT", + "dependencies": { + "motion-utils": "^12.7.2" + } + }, + "node_modules/motion-utils": { + "version": "12.7.2", + "resolved": "https://registry.npmjs.org/motion-utils/-/motion-utils-12.7.2.tgz", + "integrity": "sha512-XhZwqctxyJs89oX00zn3OGCuIIpVevbTa+u82usWBC6pSHUd2AoNWiYa7Du8tJxJy9TFbZ82pcn5t7NOm1PHAw==", + "license": "MIT" + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "node_modules/nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "node_modules/node-releases": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", + "dev": true + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "dev": true, + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + }, + "node_modules/path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.2.tgz", + "integrity": "sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==", + "engines": { + "node": "14 || >=16.14" + } + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/picocolors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", + "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pirates": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/postcss": { + "version": "8.4.38", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz", + "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.0.0", + "source-map-js": "^1.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-import": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", + "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", + "dependencies": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-js": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", + "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", + "dependencies": { + "camelcase-css": "^2.0.1" + }, + "engines": { + "node": "^12 || ^14 || >= 16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.4.21" + } + }, + "node_modules/postcss-load-config": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz", + "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "lilconfig": "^3.0.0", + "yaml": "^2.3.4" + }, + "engines": { + "node": ">= 14" + }, + "peerDependencies": { + "postcss": ">=8.0.9", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/postcss-load-config/node_modules/lilconfig": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.1.tgz", + "integrity": "sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" + } + }, + "node_modules/postcss-nested": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.1.tgz", + "integrity": "sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==", + "dependencies": { + "postcss-selector-parser": "^6.0.11" + }, + "engines": { + "node": ">=12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.2.14" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.0.tgz", + "integrity": "sha512-UMz42UD0UY0EApS0ZL9o1XnLhSTtvvvLe5Dc2H2O56fvRZi+KulDyf5ctDhhtYJBGKStV2FL1fy6253cmLgqVQ==", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/react": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", + "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", + "dependencies": { + "loose-envify": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", + "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.2" + }, + "peerDependencies": { + "react": "^18.3.1" + } + }, + "node_modules/react-refresh": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.2.tgz", + "integrity": "sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-remove-scroll": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.6.3.tgz", + "integrity": "sha512-pnAi91oOk8g8ABQKGF5/M9qxmmOPxaAnopyTHYfqYEwJhyFrbbBtHuSgtKEoH0jpcxx5o3hXqH1mNd9/Oi+8iQ==", + "license": "MIT", + "dependencies": { + "react-remove-scroll-bar": "^2.3.7", + "react-style-singleton": "^2.2.3", + "tslib": "^2.1.0", + "use-callback-ref": "^1.3.3", + "use-sidecar": "^1.1.3" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/react-remove-scroll-bar": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.8.tgz", + "integrity": "sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q==", + "license": "MIT", + "dependencies": { + "react-style-singleton": "^2.2.2", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/react-style-singleton": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.3.tgz", + "integrity": "sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ==", + "license": "MIT", + "dependencies": { + "get-nonce": "^1.0.0", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "dependencies": { + "pify": "^2.3.0" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rollup": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.18.0.tgz", + "integrity": "sha512-QmJz14PX3rzbJCN1SG4Xe/bAAX2a6NpCP8ab2vfu2GiUr8AQcr2nCV/oEO3yneFarB67zk8ShlIyWb2LGTb3Sg==", + "dev": true, + "dependencies": { + "@types/estree": "1.0.5" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.18.0", + "@rollup/rollup-android-arm64": "4.18.0", + "@rollup/rollup-darwin-arm64": "4.18.0", + "@rollup/rollup-darwin-x64": "4.18.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.18.0", + "@rollup/rollup-linux-arm-musleabihf": "4.18.0", + "@rollup/rollup-linux-arm64-gnu": "4.18.0", + "@rollup/rollup-linux-arm64-musl": "4.18.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.18.0", + "@rollup/rollup-linux-riscv64-gnu": "4.18.0", + "@rollup/rollup-linux-s390x-gnu": "4.18.0", + "@rollup/rollup-linux-x64-gnu": "4.18.0", + "@rollup/rollup-linux-x64-musl": "4.18.0", + "@rollup/rollup-win32-arm64-msvc": "4.18.0", + "@rollup/rollup-win32-ia32-msvc": "4.18.0", + "@rollup/rollup-win32-x64-msvc": "4.18.0", + "fsevents": "~2.3.2" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/scheduler": { + "version": "0.23.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", + "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/semver": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "engines": { + "node": ">=8" + } + }, + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/source-map-js": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", + "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/string-width/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/string-width/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/sucrase": { + "version": "3.35.0", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", + "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.2", + "commander": "^4.0.0", + "glob": "^10.3.10", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "ts-interface-checker": "^0.1.9" + }, + "bin": { + "sucrase": "bin/sucrase", + "sucrase-node": "bin/sucrase-node" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/sucrase/node_modules/glob": { + "version": "10.4.1", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.1.tgz", + "integrity": "sha512-2jelhlq3E4ho74ZyVLN03oKdAZVUa6UDZzFLVH1H7dnoax+y9qyaq8zBkfDIggjniU19z0wU18y16jMB2eyVIw==", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/tailwind-merge": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-2.6.0.tgz", + "integrity": "sha512-P+Vu1qXfzediirmHOC3xKGAYeZtPcV9g76X+xg2FD4tYgR71ewMA35Y3sCz3zhiN/dwefRpJX0yBcgwi1fXNQA==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/dcastil" + } + }, + "node_modules/tailwindcss": { + "version": "3.4.4", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.4.tgz", + "integrity": "sha512-ZoyXOdJjISB7/BcLTR6SEsLgKtDStYyYZVLsUtWChO4Ps20CBad7lfJKVDiejocV4ME1hLmyY0WJE3hSDcmQ2A==", + "dependencies": { + "@alloc/quick-lru": "^5.2.0", + "arg": "^5.0.2", + "chokidar": "^3.5.3", + "didyoumean": "^1.2.2", + "dlv": "^1.1.3", + "fast-glob": "^3.3.0", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "jiti": "^1.21.0", + "lilconfig": "^2.1.0", + "micromatch": "^4.0.5", + "normalize-path": "^3.0.0", + "object-hash": "^3.0.0", + "picocolors": "^1.0.0", + "postcss": "^8.4.23", + "postcss-import": "^15.1.0", + "postcss-js": "^4.0.1", + "postcss-load-config": "^4.0.1", + "postcss-nested": "^6.0.1", + "postcss-selector-parser": "^6.0.11", + "resolve": "^1.22.2", + "sucrase": "^3.32.0" + }, + "bin": { + "tailwind": "lib/cli.js", + "tailwindcss": "lib/cli.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tailwindcss-animate": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/tailwindcss-animate/-/tailwindcss-animate-1.0.7.tgz", + "integrity": "sha512-bl6mpH3T7I3UFxuvDEXLxy/VuFxBk5bbzplh7tXI68mwMokNYd1t9qPBHlnyTwfa4JGC4zP516I1hYYtQ/vspA==", + "peerDependencies": { + "tailwindcss": ">=3.0.0 || insiders" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "node_modules/thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "dependencies": { + "any-promise": "^1.0.0" + } + }, + "node_modules/thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/ts-api-utils": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz", + "integrity": "sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==", + "dev": true, + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "typescript": ">=4.2.0" + } + }, + "node_modules/ts-interface-checker": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==" + }, + "node_modules/tslib": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.3.tgz", + "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==" + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typescript": { + "version": "5.4.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz", + "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "dev": true + }, + "node_modules/update-browserslist-db": { + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.16.tgz", + "integrity": "sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "escalade": "^3.1.2", + "picocolors": "^1.0.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/use-callback-ref": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.3.tgz", + "integrity": "sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg==", + "license": "MIT", + "dependencies": { + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/use-sidecar": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.1.3.tgz", + "integrity": "sha512-Fedw0aZvkhynoPYlA5WXrMCAMm+nSWdZt6lzJQ7Ok8S6Q+VsHmHpRWndVRJ8Be0ZbkfPc5LRYH+5XrzXcEeLRQ==", + "license": "MIT", + "dependencies": { + "detect-node-es": "^1.1.0", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + }, + "node_modules/vite": { + "version": "5.2.13", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.2.13.tgz", + "integrity": "sha512-SSq1noJfY9pR3I1TUENL3rQYDQCFqgD+lM6fTRAM8Nv6Lsg5hDLaXkjETVeBt+7vZBCMoibD+6IWnT2mJ+Zb/A==", + "dev": true, + "dependencies": { + "esbuild": "^0.20.1", + "postcss": "^8.4.38", + "rollup": "^4.13.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || >=20.0.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/wrap-ansi-cjs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "node_modules/yaml": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.4.3.tgz", + "integrity": "sha512-sntgmxj8o7DE7g/Qi60cqpLBA3HG3STcDA0kO+WfB05jEKhZMbY7umNm2rBpQvsmZ16/lPXCJGW2672dgOUkrg==", + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/package.json b/package.json index bf7ea0743..367900fe2 100644 --- a/package.json +++ b/package.json @@ -1,29 +1,63 @@ { - "name": "open-pro-next", - "version": "0.1.0", + "name": "shadcn-landing-page-template", + "description": "Landing page template utilizing Shadcn, React, Typescript, and Tailwind CSS for rapid development and responsive design.", + "author": { + "name": "Leopoldo Miranda", + "email": "leomirandadev@gmail.com", + "url": "https://github.com/leoMirandaa" + }, + "license": "MIT", + "keywords": [ + "react", + "typescript", + "shadcn", + "shadcn/ui", + "tailwind", + "landing-page", + "template", + "responsive-design" + ], "private": true, + "version": "1.1.0", + "type": "module", "scripts": { - "dev": "next dev --turbopack", - "build": "next build", - "start": "next start", - "lint": "next lint" + "dev": "vite", + "build": "tsc && vite build", + "lint": "eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0", + "preview": "vite preview" }, "dependencies": { - "@headlessui/react": "^2.2.0", - "@types/node": "^22.13.0", - "@types/react": "19.0.8", - "@types/react-dom": "19.0.3", - "aos": "3.0.0-beta.6", - "next": "15.1.6", - "react": "19.0.0", - "react-dom": "19.0.0", - "typescript": "^5.7.3" + "@radix-ui/react-accordion": "^1.2.0", + "@radix-ui/react-avatar": "^1.1.0", + "@radix-ui/react-dialog": "^1.1.1", + "@radix-ui/react-dropdown-menu": "^2.1.1", + "@radix-ui/react-icons": "^1.3.0", + "@radix-ui/react-navigation-menu": "^1.2.0", + "@radix-ui/react-slot": "^1.2.0", + "class-variance-authority": "^0.7.0", + "clsx": "^2.1.1", + "embla-carousel-react": "^8.6.0", + "framer-motion": "^12.7.2", + "lucide-react": "^0.424.0", + "react": "^18.3.1", + "react-dom": "^18.3.1", + "tailwind-merge": "^2.4.0", + "tailwindcss-animate": "^1.0.7" }, "devDependencies": { - "@tailwindcss/forms": "^0.5.10", - "@tailwindcss/postcss": "^4.0.3", - "@types/aos": "^3.0.7", - "postcss": "^8.5.1", - "tailwindcss": "^4.0.3" + "@types/node": "^20.14.2", + "@types/react": "^18.3.3", + "@types/react-dom": "^18.3.0", + "@typescript-eslint/eslint-plugin": "^7.12.0", + "@typescript-eslint/parser": "^7.12.0", + "@vitejs/plugin-react": "^4.3.0", + "autoprefixer": "^10.4.19", + "eslint": "^8.53.0", + "eslint-plugin-react-hooks": "^4.6.0", + "eslint-plugin-react-refresh": "^0.4.4", + "postcss": "^8.4.38", + "tailwindcss": "^3.4.4", + "typescript": "^5.4.5", + "vite": "^5.2.13" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml deleted file mode 100644 index 8e078fbc0..000000000 --- a/pnpm-lock.yaml +++ /dev/null @@ -1,1123 +0,0 @@ -lockfileVersion: '9.0' - -settings: - autoInstallPeers: true - excludeLinksFromLockfile: false - -importers: - - .: - dependencies: - '@headlessui/react': - specifier: ^2.2.0 - version: 2.2.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@types/node': - specifier: ^22.13.0 - version: 22.13.0 - '@types/react': - specifier: 19.0.8 - version: 19.0.8 - '@types/react-dom': - specifier: 19.0.3 - version: 19.0.3(@types/react@19.0.8) - aos: - specifier: 3.0.0-beta.6 - version: 3.0.0-beta.6 - next: - specifier: 15.1.6 - version: 15.1.6(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - react: - specifier: 19.0.0 - version: 19.0.0 - react-dom: - specifier: 19.0.0 - version: 19.0.0(react@19.0.0) - typescript: - specifier: ^5.7.3 - version: 5.7.3 - devDependencies: - '@tailwindcss/forms': - specifier: ^0.5.10 - version: 0.5.10(tailwindcss@4.0.3) - '@tailwindcss/postcss': - specifier: ^4.0.3 - version: 4.0.3 - '@types/aos': - specifier: ^3.0.7 - version: 3.0.7 - postcss: - specifier: ^8.5.1 - version: 8.5.1 - tailwindcss: - specifier: ^4.0.3 - version: 4.0.3 - -packages: - - '@alloc/quick-lru@5.2.0': - resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} - engines: {node: '>=10'} - - '@emnapi/runtime@1.3.1': - resolution: {integrity: sha512-kEBmG8KyqtxJZv+ygbEim+KCGtIq1fC22Ms3S4ziXmYKm8uyoLX0MHONVKwp+9opg390VaKRNt4a7A9NwmpNhw==} - - '@floating-ui/core@1.6.9': - resolution: {integrity: sha512-uMXCuQ3BItDUbAMhIXw7UPXRfAlOAvZzdK9BWpE60MCn+Svt3aLn9jsPTi/WNGlRUu2uI0v5S7JiIUsbsvh3fw==} - - '@floating-ui/dom@1.6.13': - resolution: {integrity: sha512-umqzocjDgNRGTuO7Q8CU32dkHkECqI8ZdMZ5Swb6QAM0t5rnlrN3lGo1hdpscRd3WS8T6DKYK4ephgIH9iRh3w==} - - '@floating-ui/react-dom@2.1.2': - resolution: {integrity: sha512-06okr5cgPzMNBy+Ycse2A6udMi4bqwW/zgBF/rwjcNqWkyr82Mcg8b0vjX8OJpZFy/FKjJmw6wV7t44kK6kW7A==} - peerDependencies: - react: '>=16.8.0' - react-dom: '>=16.8.0' - - '@floating-ui/react@0.26.28': - resolution: {integrity: sha512-yORQuuAtVpiRjpMhdc0wJj06b9JFjrYF4qp96j++v2NBpbi6SEGF7donUJ3TMieerQ6qVkAv1tgr7L4r5roTqw==} - peerDependencies: - react: '>=16.8.0' - react-dom: '>=16.8.0' - - '@floating-ui/utils@0.2.9': - resolution: {integrity: sha512-MDWhGtE+eHw5JW7lq4qhc5yRLS11ERl1c7Z6Xd0a58DozHES6EnNNwUWbMiG4J9Cgj053Bhk8zvlhFYKVhULwg==} - - '@headlessui/react@2.2.0': - resolution: {integrity: sha512-RzCEg+LXsuI7mHiSomsu/gBJSjpupm6A1qIZ5sWjd7JhARNlMiSA4kKfJpCKwU9tE+zMRterhhrP74PvfJrpXQ==} - engines: {node: '>=10'} - peerDependencies: - react: ^18 || ^19 || ^19.0.0-rc - react-dom: ^18 || ^19 || ^19.0.0-rc - - '@img/sharp-darwin-arm64@0.33.5': - resolution: {integrity: sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [arm64] - os: [darwin] - - '@img/sharp-darwin-x64@0.33.5': - resolution: {integrity: sha512-fyHac4jIc1ANYGRDxtiqelIbdWkIuQaI84Mv45KvGRRxSAa7o7d1ZKAOBaYbnepLC1WqxfpimdeWfvqqSGwR2Q==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [x64] - os: [darwin] - - '@img/sharp-libvips-darwin-arm64@1.0.4': - resolution: {integrity: sha512-XblONe153h0O2zuFfTAbQYAX2JhYmDHeWikp1LM9Hul9gVPjFY427k6dFEcOL72O01QxQsWi761svJ/ev9xEDg==} - cpu: [arm64] - os: [darwin] - - '@img/sharp-libvips-darwin-x64@1.0.4': - resolution: {integrity: sha512-xnGR8YuZYfJGmWPvmlunFaWJsb9T/AO2ykoP3Fz/0X5XV2aoYBPkX6xqCQvUTKKiLddarLaxpzNe+b1hjeWHAQ==} - cpu: [x64] - os: [darwin] - - '@img/sharp-libvips-linux-arm64@1.0.4': - resolution: {integrity: sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA==} - cpu: [arm64] - os: [linux] - - '@img/sharp-libvips-linux-arm@1.0.5': - resolution: {integrity: sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g==} - cpu: [arm] - os: [linux] - - '@img/sharp-libvips-linux-s390x@1.0.4': - resolution: {integrity: sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA==} - cpu: [s390x] - os: [linux] - - '@img/sharp-libvips-linux-x64@1.0.4': - resolution: {integrity: sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw==} - cpu: [x64] - os: [linux] - - '@img/sharp-libvips-linuxmusl-arm64@1.0.4': - resolution: {integrity: sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA==} - cpu: [arm64] - os: [linux] - - '@img/sharp-libvips-linuxmusl-x64@1.0.4': - resolution: {integrity: sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw==} - cpu: [x64] - os: [linux] - - '@img/sharp-linux-arm64@0.33.5': - resolution: {integrity: sha512-JMVv+AMRyGOHtO1RFBiJy/MBsgz0x4AWrT6QoEVVTyh1E39TrCUpTRI7mx9VksGX4awWASxqCYLCV4wBZHAYxA==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [arm64] - os: [linux] - - '@img/sharp-linux-arm@0.33.5': - resolution: {integrity: sha512-JTS1eldqZbJxjvKaAkxhZmBqPRGmxgu+qFKSInv8moZ2AmT5Yib3EQ1c6gp493HvrvV8QgdOXdyaIBrhvFhBMQ==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [arm] - os: [linux] - - '@img/sharp-linux-s390x@0.33.5': - resolution: {integrity: sha512-y/5PCd+mP4CA/sPDKl2961b+C9d+vPAveS33s6Z3zfASk2j5upL6fXVPZi7ztePZ5CuH+1kW8JtvxgbuXHRa4Q==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [s390x] - os: [linux] - - '@img/sharp-linux-x64@0.33.5': - resolution: {integrity: sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [x64] - os: [linux] - - '@img/sharp-linuxmusl-arm64@0.33.5': - resolution: {integrity: sha512-XrHMZwGQGvJg2V/oRSUfSAfjfPxO+4DkiRh6p2AFjLQztWUuY/o8Mq0eMQVIY7HJ1CDQUJlxGGZRw1a5bqmd1g==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [arm64] - os: [linux] - - '@img/sharp-linuxmusl-x64@0.33.5': - resolution: {integrity: sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [x64] - os: [linux] - - '@img/sharp-wasm32@0.33.5': - resolution: {integrity: sha512-ykUW4LVGaMcU9lu9thv85CbRMAwfeadCJHRsg2GmeRa/cJxsVY9Rbd57JcMxBkKHag5U/x7TSBpScF4U8ElVzg==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [wasm32] - - '@img/sharp-win32-ia32@0.33.5': - resolution: {integrity: sha512-T36PblLaTwuVJ/zw/LaH0PdZkRz5rd3SmMHX8GSmR7vtNSP5Z6bQkExdSK7xGWyxLw4sUknBuugTelgw2faBbQ==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [ia32] - os: [win32] - - '@img/sharp-win32-x64@0.33.5': - resolution: {integrity: sha512-MpY/o8/8kj+EcnxwvrP4aTJSWw/aZ7JIGR4aBeZkZw5B7/Jn+tY9/VNwtcoGmdT7GfggGIU4kygOMSbYnOrAbg==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [x64] - os: [win32] - - '@next/env@15.1.6': - resolution: {integrity: sha512-d9AFQVPEYNr+aqokIiPLNK/MTyt3DWa/dpKveiAaVccUadFbhFEvY6FXYX2LJO2Hv7PHnLBu2oWwB4uBuHjr/w==} - - '@next/swc-darwin-arm64@15.1.6': - resolution: {integrity: sha512-u7lg4Mpl9qWpKgy6NzEkz/w0/keEHtOybmIl0ykgItBxEM5mYotS5PmqTpo+Rhg8FiOiWgwr8USxmKQkqLBCrw==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [darwin] - - '@next/swc-darwin-x64@15.1.6': - resolution: {integrity: sha512-x1jGpbHbZoZ69nRuogGL2MYPLqohlhnT9OCU6E6QFewwup+z+M6r8oU47BTeJcWsF2sdBahp5cKiAcDbwwK/lg==} - engines: {node: '>= 10'} - cpu: [x64] - os: [darwin] - - '@next/swc-linux-arm64-gnu@15.1.6': - resolution: {integrity: sha512-jar9sFw0XewXsBzPf9runGzoivajeWJUc/JkfbLTC4it9EhU8v7tCRLH7l5Y1ReTMN6zKJO0kKAGqDk8YSO2bg==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [linux] - - '@next/swc-linux-arm64-musl@15.1.6': - resolution: {integrity: sha512-+n3u//bfsrIaZch4cgOJ3tXCTbSxz0s6brJtU3SzLOvkJlPQMJ+eHVRi6qM2kKKKLuMY+tcau8XD9CJ1OjeSQQ==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [linux] - - '@next/swc-linux-x64-gnu@15.1.6': - resolution: {integrity: sha512-SpuDEXixM3PycniL4iVCLyUyvcl6Lt0mtv3am08sucskpG0tYkW1KlRhTgj4LI5ehyxriVVcfdoxuuP8csi3kQ==} - engines: {node: '>= 10'} - cpu: [x64] - os: [linux] - - '@next/swc-linux-x64-musl@15.1.6': - resolution: {integrity: sha512-L4druWmdFSZIIRhF+G60API5sFB7suTbDRhYWSjiw0RbE+15igQvE2g2+S973pMGvwN3guw7cJUjA/TmbPWTHQ==} - engines: {node: '>= 10'} - cpu: [x64] - os: [linux] - - '@next/swc-win32-arm64-msvc@15.1.6': - resolution: {integrity: sha512-s8w6EeqNmi6gdvM19tqKKWbCyOBvXFbndkGHl+c9YrzsLARRdCHsD9S1fMj8gsXm9v8vhC8s3N8rjuC/XrtkEg==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [win32] - - '@next/swc-win32-x64-msvc@15.1.6': - resolution: {integrity: sha512-6xomMuu54FAFxttYr5PJbEfu96godcxBTRk1OhAvJq0/EnmFU/Ybiax30Snis4vdWZ9LGpf7Roy5fSs7v/5ROQ==} - engines: {node: '>= 10'} - cpu: [x64] - os: [win32] - - '@react-aria/focus@3.19.1': - resolution: {integrity: sha512-bix9Bu1Ue7RPcYmjwcjhB14BMu2qzfJ3tMQLqDc9pweJA66nOw8DThy3IfVr8Z7j2PHktOLf9kcbiZpydKHqzg==} - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - - '@react-aria/interactions@3.23.0': - resolution: {integrity: sha512-0qR1atBIWrb7FzQ+Tmr3s8uH5mQdyRH78n0krYaG8tng9+u1JlSi8DGRSaC9ezKyNB84m7vHT207xnHXGeJ3Fg==} - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - - '@react-aria/ssr@3.9.7': - resolution: {integrity: sha512-GQygZaGlmYjmYM+tiNBA5C6acmiDWF52Nqd40bBp0Znk4M4hP+LTmI0lpI1BuKMw45T8RIhrAsICIfKwZvi2Gg==} - engines: {node: '>= 12'} - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - - '@react-aria/utils@3.27.0': - resolution: {integrity: sha512-p681OtApnKOdbeN8ITfnnYqfdHS0z7GE+4l8EXlfLnr70Rp/9xicBO6d2rU+V/B3JujDw2gPWxYKEnEeh0CGCw==} - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - - '@react-stately/utils@3.10.5': - resolution: {integrity: sha512-iMQSGcpaecghDIh3mZEpZfoFH3ExBwTtuBEcvZ2XnGzCgQjeYXcMdIUwAfVQLXFTdHUHGF6Gu6/dFrYsCzySBQ==} - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - - '@react-types/shared@3.27.0': - resolution: {integrity: sha512-gvznmLhi6JPEf0bsq7SwRYTHAKKq/wcmKqFez9sRdbED+SPMUmK5omfZ6w3EwUFQHbYUa4zPBYedQ7Knv70RMw==} - peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - - '@swc/counter@0.1.3': - resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==} - - '@swc/helpers@0.5.15': - resolution: {integrity: sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==} - - '@tailwindcss/forms@0.5.10': - resolution: {integrity: sha512-utI1ONF6uf/pPNO68kmN1b8rEwNXv3czukalo8VtJH8ksIkZXr3Q3VYudZLkCsDd4Wku120uF02hYK25XGPorw==} - peerDependencies: - tailwindcss: '>=3.0.0 || >= 3.0.0-alpha.1 || >= 4.0.0-alpha.20 || >= 4.0.0-beta.1' - - '@tailwindcss/node@4.0.3': - resolution: {integrity: sha512-QsVJokOl0pJ4AbJV33D2npvLcHGPWi5MOSZtrtE0GT3tSx+3D0JE2lokLA8yHS1x3oCY/3IyRyy7XX6tmzid7A==} - - '@tailwindcss/oxide-android-arm64@4.0.3': - resolution: {integrity: sha512-S8XOTQuMnpijZRlPm5HBzPJjZ28quB+40LSRHjRnQF6rRYKsvpr1qkY7dfwsetNdd+kMLOMDsvmuT8WnqqETvg==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [android] - - '@tailwindcss/oxide-darwin-arm64@4.0.3': - resolution: {integrity: sha512-smrY2DpzhXvgDhZtQlYAl8+vxJ04lv2/64C1eiRxvsRT2nkw/q+zA1/eAYKvUHat6cIuwqDku3QucmrUT6pCeg==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [darwin] - - '@tailwindcss/oxide-darwin-x64@4.0.3': - resolution: {integrity: sha512-NTz8x/LcGUjpZAWUxz0ZuzHao90Wj9spoQgomwB+/hgceh5gcJDfvaBYqxLFpKzVglpnbDSq1Fg0p0zI4oa5Pg==} - engines: {node: '>= 10'} - cpu: [x64] - os: [darwin] - - '@tailwindcss/oxide-freebsd-x64@4.0.3': - resolution: {integrity: sha512-yQc9Q0JCOp3kkAV8gKgDctXO60IkQhHpqGB+KgOccDtD5UmN6Q5+gd+lcsDyQ7N8dRuK1fAud51xQpZJgKfm7g==} - engines: {node: '>= 10'} - cpu: [x64] - os: [freebsd] - - '@tailwindcss/oxide-linux-arm-gnueabihf@4.0.3': - resolution: {integrity: sha512-e1ivVMLSnxTOU1O3npnxN16FEyWM/g3SuH2pP6udxXwa0/SnSAijRwcAYRpqIlhVKujr158S8UeHxQjC4fGl4w==} - engines: {node: '>= 10'} - cpu: [arm] - os: [linux] - - '@tailwindcss/oxide-linux-arm64-gnu@4.0.3': - resolution: {integrity: sha512-PLrToqQqX6sdJ9DmMi8IxZWWrfjc9pdi9AEEPTrtMts3Jm9HBi1WqEeF1VwZZ2aW9TXloE5OwA35zuuq1Bhb/Q==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [linux] - - '@tailwindcss/oxide-linux-arm64-musl@4.0.3': - resolution: {integrity: sha512-YlzRxx7N1ampfgSKzEDw0iwDkJXUInR4cgNEqmR4TzHkU2Vhg59CGPJrTI7dxOBofD8+O35R13Nk9Ytyv0JUFg==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [linux] - - '@tailwindcss/oxide-linux-x64-gnu@4.0.3': - resolution: {integrity: sha512-Xfc3z/li6XkuD7Hs+Uk6pjyCXnfnd9zuQTKOyDTZJ544xc2yoMKUkuDw6Et9wb31MzU2/c0CIUpTDa71lL9KHw==} - engines: {node: '>= 10'} - cpu: [x64] - os: [linux] - - '@tailwindcss/oxide-linux-x64-musl@4.0.3': - resolution: {integrity: sha512-ugKVqKzwa/cjmqSQG17aS9DYrEcQ/a5NITcgmOr3JLW4Iz64C37eoDlkC8tIepD3S/Td/ywKAolTQ8fKbjEL4g==} - engines: {node: '>= 10'} - cpu: [x64] - os: [linux] - - '@tailwindcss/oxide-win32-arm64-msvc@4.0.3': - resolution: {integrity: sha512-qHPDMl+UUwsk1RMJMgAXvhraWqUUT+LR/tkXix5RA39UGxtTrHwsLIN1AhNxI5i2RFXAXfmFXDqZCdyQ4dWmAQ==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [win32] - - '@tailwindcss/oxide-win32-x64-msvc@4.0.3': - resolution: {integrity: sha512-+ujwN4phBGyOsPyLgGgeCyUm4Mul+gqWVCIGuSXWgrx9xVUnf6LVXrw0BDBc9Aq1S2qMyOTX4OkCGbZeoIo8Qw==} - engines: {node: '>= 10'} - cpu: [x64] - os: [win32] - - '@tailwindcss/oxide@4.0.3': - resolution: {integrity: sha512-FFcp3VNvRjjmFA39ORM27g2mbflMQljhvM7gxBAujHxUy4LXlKa6yMF9wbHdTbPqTONiCyyOYxccvJyVyI/XBg==} - engines: {node: '>= 10'} - - '@tailwindcss/postcss@4.0.3': - resolution: {integrity: sha512-qUyxuhuI2eTgRJ+qfCQRAr69Cw7BdSz+PoNFUNoRuhPjikNC8+sxK+Mi/chaXAXewjv/zbf6if6z6ItVLh+e9Q==} - - '@tanstack/react-virtual@3.12.0': - resolution: {integrity: sha512-6krceiPN07kpxXmU6m8AY7EL0X1gHLu8m3nJdh4phvktzVNxkQfBmSwnRUpoUjGQO1PAn8wSAhYaL8hY1cS1vw==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - - '@tanstack/virtual-core@3.12.0': - resolution: {integrity: sha512-7mDINtua3v/pOnn6WUmuT9dPXYSO7WidFej7JzoAfqEOcbbpt/iZ1WPqd+eg+FnrL9nUJK8radqj4iAU51Zchg==} - - '@types/aos@3.0.7': - resolution: {integrity: sha512-sEhyFqvKauUJZDbvAB3Pggynrq6g+2PS4XB3tmUr+mDL1gfDJnwslUC4QQ7/l8UD+LWpr3RxZVR/rHoZrLqZVg==} - - '@types/node@22.13.0': - resolution: {integrity: sha512-ClIbNe36lawluuvq3+YYhnIN2CELi+6q8NpnM7PYp4hBn/TatfboPgVSm2rwKRfnV2M+Ty9GWDFI64KEe+kysA==} - - '@types/react-dom@19.0.3': - resolution: {integrity: sha512-0Knk+HJiMP/qOZgMyNFamlIjw9OFCsyC2ZbigmEEyXXixgre6IQpm/4V+r3qH4GC1JPvRJKInw+on2rV6YZLeA==} - peerDependencies: - '@types/react': ^19.0.0 - - '@types/react@19.0.8': - resolution: {integrity: sha512-9P/o1IGdfmQxrujGbIMDyYaaCykhLKc0NGCtYcECNUr9UAaDe4gwvV9bR6tvd5Br1SG0j+PBpbKr2UYY8CwqSw==} - - aos@3.0.0-beta.6: - resolution: {integrity: sha512-VLWrpq8bfAWcetynVHMMrqdC+89Qq/Ym6UBJbHB4crIwp3RR8uq1dNGgsFzoDl03S43rlVMK+na3r5+oUCZsYw==} - - busboy@1.6.0: - resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} - engines: {node: '>=10.16.0'} - - caniuse-lite@1.0.30001696: - resolution: {integrity: sha512-pDCPkvzfa39ehJtJ+OwGT/2yvT2SbjfHhiIW2LWOAcMQ7BzwxT/XuyUp4OTOd0XFWA6BKw0JalnBHgSi5DGJBQ==} - - classlist-polyfill@1.2.0: - resolution: {integrity: sha512-GzIjNdcEtH4ieA2S8NmrSxv7DfEV5fmixQeyTmqmRmRJPGpRBaSnA2a0VrCjyT8iW8JjEdMbKzDotAJf+ajgaQ==} - - client-only@0.0.1: - resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==} - - clsx@2.1.1: - resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} - engines: {node: '>=6'} - - color-convert@2.0.1: - resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} - engines: {node: '>=7.0.0'} - - color-name@1.1.4: - resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - - color-string@1.9.1: - resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==} - - color@4.2.3: - resolution: {integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==} - engines: {node: '>=12.5.0'} - - csstype@3.1.3: - resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} - - detect-libc@1.0.3: - resolution: {integrity: sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==} - engines: {node: '>=0.10'} - hasBin: true - - detect-libc@2.0.3: - resolution: {integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==} - engines: {node: '>=8'} - - enhanced-resolve@5.18.0: - resolution: {integrity: sha512-0/r0MySGYG8YqlayBZ6MuCfECmHFdJ5qyPh8s8wa5Hnm6SaFLSK1VYCbj+NKp090Nm1caZhD+QTnmxO7esYGyQ==} - engines: {node: '>=10.13.0'} - - graceful-fs@4.2.11: - resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} - - is-arrayish@0.3.2: - resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} - - jiti@2.4.2: - resolution: {integrity: sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==} - hasBin: true - - lightningcss-darwin-arm64@1.29.1: - resolution: {integrity: sha512-HtR5XJ5A0lvCqYAoSv2QdZZyoHNttBpa5EP9aNuzBQeKGfbyH5+UipLWvVzpP4Uml5ej4BYs5I9Lco9u1fECqw==} - engines: {node: '>= 12.0.0'} - cpu: [arm64] - os: [darwin] - - lightningcss-darwin-x64@1.29.1: - resolution: {integrity: sha512-k33G9IzKUpHy/J/3+9MCO4e+PzaFblsgBjSGlpAaFikeBFm8B/CkO3cKU9oI4g+fjS2KlkLM/Bza9K/aw8wsNA==} - engines: {node: '>= 12.0.0'} - cpu: [x64] - os: [darwin] - - lightningcss-freebsd-x64@1.29.1: - resolution: {integrity: sha512-0SUW22fv/8kln2LnIdOCmSuXnxgxVC276W5KLTwoehiO0hxkacBxjHOL5EtHD8BAXg2BvuhsJPmVMasvby3LiQ==} - engines: {node: '>= 12.0.0'} - cpu: [x64] - os: [freebsd] - - lightningcss-linux-arm-gnueabihf@1.29.1: - resolution: {integrity: sha512-sD32pFvlR0kDlqsOZmYqH/68SqUMPNj+0pucGxToXZi4XZgZmqeX/NkxNKCPsswAXU3UeYgDSpGhu05eAufjDg==} - engines: {node: '>= 12.0.0'} - cpu: [arm] - os: [linux] - - lightningcss-linux-arm64-gnu@1.29.1: - resolution: {integrity: sha512-0+vClRIZ6mmJl/dxGuRsE197o1HDEeeRk6nzycSy2GofC2JsY4ifCRnvUWf/CUBQmlrvMzt6SMQNMSEu22csWQ==} - engines: {node: '>= 12.0.0'} - cpu: [arm64] - os: [linux] - - lightningcss-linux-arm64-musl@1.29.1: - resolution: {integrity: sha512-UKMFrG4rL/uHNgelBsDwJcBqVpzNJbzsKkbI3Ja5fg00sgQnHw/VrzUTEc4jhZ+AN2BvQYz/tkHu4vt1kLuJyw==} - engines: {node: '>= 12.0.0'} - cpu: [arm64] - os: [linux] - - lightningcss-linux-x64-gnu@1.29.1: - resolution: {integrity: sha512-u1S+xdODy/eEtjADqirA774y3jLcm8RPtYztwReEXoZKdzgsHYPl0s5V52Tst+GKzqjebkULT86XMSxejzfISw==} - engines: {node: '>= 12.0.0'} - cpu: [x64] - os: [linux] - - lightningcss-linux-x64-musl@1.29.1: - resolution: {integrity: sha512-L0Tx0DtaNUTzXv0lbGCLB/c/qEADanHbu4QdcNOXLIe1i8i22rZRpbT3gpWYsCh9aSL9zFujY/WmEXIatWvXbw==} - engines: {node: '>= 12.0.0'} - cpu: [x64] - os: [linux] - - lightningcss-win32-arm64-msvc@1.29.1: - resolution: {integrity: sha512-QoOVnkIEFfbW4xPi+dpdft/zAKmgLgsRHfJalEPYuJDOWf7cLQzYg0DEh8/sn737FaeMJxHZRc1oBreiwZCjog==} - engines: {node: '>= 12.0.0'} - cpu: [arm64] - os: [win32] - - lightningcss-win32-x64-msvc@1.29.1: - resolution: {integrity: sha512-NygcbThNBe4JElP+olyTI/doBNGJvLs3bFCRPdvuCcxZCcCZ71B858IHpdm7L1btZex0FvCmM17FK98Y9MRy1Q==} - engines: {node: '>= 12.0.0'} - cpu: [x64] - os: [win32] - - lightningcss@1.29.1: - resolution: {integrity: sha512-FmGoeD4S05ewj+AkhTY+D+myDvXI6eL27FjHIjoyUkO/uw7WZD1fBVs0QxeYWa7E17CUHJaYX/RUGISCtcrG4Q==} - engines: {node: '>= 12.0.0'} - - lodash.debounce@4.0.8: - resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} - - lodash.throttle@4.1.1: - resolution: {integrity: sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==} - - mini-svg-data-uri@1.4.4: - resolution: {integrity: sha512-r9deDe9p5FJUPZAk3A59wGH7Ii9YrjjWw0jmw/liSbHl2CHiyXj6FcDXDu2K3TjVAXqiJdaw3xxwlZZr9E6nHg==} - hasBin: true - - nanoid@3.3.8: - resolution: {integrity: sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==} - engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} - hasBin: true - - next@15.1.6: - resolution: {integrity: sha512-Hch4wzbaX0vKQtalpXvUiw5sYivBy4cm5rzUKrBnUB/y436LGrvOUqYvlSeNVCWFO/770gDlltR9gqZH62ct4Q==} - engines: {node: ^18.18.0 || ^19.8.0 || >= 20.0.0} - hasBin: true - peerDependencies: - '@opentelemetry/api': ^1.1.0 - '@playwright/test': ^1.41.2 - babel-plugin-react-compiler: '*' - react: ^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0 - react-dom: ^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0 - sass: ^1.3.0 - peerDependenciesMeta: - '@opentelemetry/api': - optional: true - '@playwright/test': - optional: true - babel-plugin-react-compiler: - optional: true - sass: - optional: true - - picocolors@1.1.1: - resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} - - postcss@8.4.31: - resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} - engines: {node: ^10 || ^12 || >=14} - - postcss@8.5.1: - resolution: {integrity: sha512-6oz2beyjc5VMn/KV1pPw8fliQkhBXrVn1Z3TVyqZxU8kZpzEKhBdmCFqI6ZbmGtamQvQGuU1sgPTk8ZrXDD7jQ==} - engines: {node: ^10 || ^12 || >=14} - - react-dom@19.0.0: - resolution: {integrity: sha512-4GV5sHFG0e/0AD4X+ySy6UJd3jVl1iNsNHdpad0qhABJ11twS3TTBnseqsKurKcsNqCEFeGL3uLpVChpIO3QfQ==} - peerDependencies: - react: ^19.0.0 - - react@19.0.0: - resolution: {integrity: sha512-V8AVnmPIICiWpGfm6GLzCR/W5FXLchHop40W4nXBmdlEceh16rCN8O8LNWm5bh5XUX91fh7KpA+W0TgMKmgTpQ==} - engines: {node: '>=0.10.0'} - - scheduler@0.25.0: - resolution: {integrity: sha512-xFVuu11jh+xcO7JOAGJNOXld8/TcEHK/4CituBUeUb5hqxJLj9YuemAEuvm9gQ/+pgXYfbQuqAkiYu+u7YEsNA==} - - semver@7.7.1: - resolution: {integrity: sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==} - engines: {node: '>=10'} - hasBin: true - - sharp@0.33.5: - resolution: {integrity: sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - - simple-swizzle@0.2.2: - resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==} - - source-map-js@1.2.1: - resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} - engines: {node: '>=0.10.0'} - - streamsearch@1.1.0: - resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} - engines: {node: '>=10.0.0'} - - styled-jsx@5.1.6: - resolution: {integrity: sha512-qSVyDTeMotdvQYoHWLNGwRFJHC+i+ZvdBRYosOFgC+Wg1vx4frN2/RG/NA7SYqqvKNLf39P2LSRA2pu6n0XYZA==} - engines: {node: '>= 12.0.0'} - peerDependencies: - '@babel/core': '*' - babel-plugin-macros: '*' - react: '>= 16.8.0 || 17.x.x || ^18.0.0-0 || ^19.0.0-0' - peerDependenciesMeta: - '@babel/core': - optional: true - babel-plugin-macros: - optional: true - - tabbable@6.2.0: - resolution: {integrity: sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==} - - tailwindcss@4.0.3: - resolution: {integrity: sha512-ImmZF0Lon5RrQpsEAKGxRvHwCvMgSC4XVlFRqmbzTEDb/3wvin9zfEZrMwgsa3yqBbPqahYcVI6lulM2S7IZAA==} - - tapable@2.2.1: - resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} - engines: {node: '>=6'} - - tslib@2.8.1: - resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} - - typescript@5.7.3: - resolution: {integrity: sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==} - engines: {node: '>=14.17'} - hasBin: true - - undici-types@6.20.0: - resolution: {integrity: sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==} - -snapshots: - - '@alloc/quick-lru@5.2.0': {} - - '@emnapi/runtime@1.3.1': - dependencies: - tslib: 2.8.1 - optional: true - - '@floating-ui/core@1.6.9': - dependencies: - '@floating-ui/utils': 0.2.9 - - '@floating-ui/dom@1.6.13': - dependencies: - '@floating-ui/core': 1.6.9 - '@floating-ui/utils': 0.2.9 - - '@floating-ui/react-dom@2.1.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': - dependencies: - '@floating-ui/dom': 1.6.13 - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) - - '@floating-ui/react@0.26.28(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': - dependencies: - '@floating-ui/react-dom': 2.1.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@floating-ui/utils': 0.2.9 - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) - tabbable: 6.2.0 - - '@floating-ui/utils@0.2.9': {} - - '@headlessui/react@2.2.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': - dependencies: - '@floating-ui/react': 0.26.28(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/focus': 3.19.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/interactions': 3.23.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@tanstack/react-virtual': 3.12.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) - - '@img/sharp-darwin-arm64@0.33.5': - optionalDependencies: - '@img/sharp-libvips-darwin-arm64': 1.0.4 - optional: true - - '@img/sharp-darwin-x64@0.33.5': - optionalDependencies: - '@img/sharp-libvips-darwin-x64': 1.0.4 - optional: true - - '@img/sharp-libvips-darwin-arm64@1.0.4': - optional: true - - '@img/sharp-libvips-darwin-x64@1.0.4': - optional: true - - '@img/sharp-libvips-linux-arm64@1.0.4': - optional: true - - '@img/sharp-libvips-linux-arm@1.0.5': - optional: true - - '@img/sharp-libvips-linux-s390x@1.0.4': - optional: true - - '@img/sharp-libvips-linux-x64@1.0.4': - optional: true - - '@img/sharp-libvips-linuxmusl-arm64@1.0.4': - optional: true - - '@img/sharp-libvips-linuxmusl-x64@1.0.4': - optional: true - - '@img/sharp-linux-arm64@0.33.5': - optionalDependencies: - '@img/sharp-libvips-linux-arm64': 1.0.4 - optional: true - - '@img/sharp-linux-arm@0.33.5': - optionalDependencies: - '@img/sharp-libvips-linux-arm': 1.0.5 - optional: true - - '@img/sharp-linux-s390x@0.33.5': - optionalDependencies: - '@img/sharp-libvips-linux-s390x': 1.0.4 - optional: true - - '@img/sharp-linux-x64@0.33.5': - optionalDependencies: - '@img/sharp-libvips-linux-x64': 1.0.4 - optional: true - - '@img/sharp-linuxmusl-arm64@0.33.5': - optionalDependencies: - '@img/sharp-libvips-linuxmusl-arm64': 1.0.4 - optional: true - - '@img/sharp-linuxmusl-x64@0.33.5': - optionalDependencies: - '@img/sharp-libvips-linuxmusl-x64': 1.0.4 - optional: true - - '@img/sharp-wasm32@0.33.5': - dependencies: - '@emnapi/runtime': 1.3.1 - optional: true - - '@img/sharp-win32-ia32@0.33.5': - optional: true - - '@img/sharp-win32-x64@0.33.5': - optional: true - - '@next/env@15.1.6': {} - - '@next/swc-darwin-arm64@15.1.6': - optional: true - - '@next/swc-darwin-x64@15.1.6': - optional: true - - '@next/swc-linux-arm64-gnu@15.1.6': - optional: true - - '@next/swc-linux-arm64-musl@15.1.6': - optional: true - - '@next/swc-linux-x64-gnu@15.1.6': - optional: true - - '@next/swc-linux-x64-musl@15.1.6': - optional: true - - '@next/swc-win32-arm64-msvc@15.1.6': - optional: true - - '@next/swc-win32-x64-msvc@15.1.6': - optional: true - - '@react-aria/focus@3.19.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': - dependencies: - '@react-aria/interactions': 3.23.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-aria/utils': 3.27.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-types/shared': 3.27.0(react@19.0.0) - '@swc/helpers': 0.5.15 - clsx: 2.1.1 - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) - - '@react-aria/interactions@3.23.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': - dependencies: - '@react-aria/ssr': 3.9.7(react@19.0.0) - '@react-aria/utils': 3.27.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@react-types/shared': 3.27.0(react@19.0.0) - '@swc/helpers': 0.5.15 - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) - - '@react-aria/ssr@3.9.7(react@19.0.0)': - dependencies: - '@swc/helpers': 0.5.15 - react: 19.0.0 - - '@react-aria/utils@3.27.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': - dependencies: - '@react-aria/ssr': 3.9.7(react@19.0.0) - '@react-stately/utils': 3.10.5(react@19.0.0) - '@react-types/shared': 3.27.0(react@19.0.0) - '@swc/helpers': 0.5.15 - clsx: 2.1.1 - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) - - '@react-stately/utils@3.10.5(react@19.0.0)': - dependencies: - '@swc/helpers': 0.5.15 - react: 19.0.0 - - '@react-types/shared@3.27.0(react@19.0.0)': - dependencies: - react: 19.0.0 - - '@swc/counter@0.1.3': {} - - '@swc/helpers@0.5.15': - dependencies: - tslib: 2.8.1 - - '@tailwindcss/forms@0.5.10(tailwindcss@4.0.3)': - dependencies: - mini-svg-data-uri: 1.4.4 - tailwindcss: 4.0.3 - - '@tailwindcss/node@4.0.3': - dependencies: - enhanced-resolve: 5.18.0 - jiti: 2.4.2 - tailwindcss: 4.0.3 - - '@tailwindcss/oxide-android-arm64@4.0.3': - optional: true - - '@tailwindcss/oxide-darwin-arm64@4.0.3': - optional: true - - '@tailwindcss/oxide-darwin-x64@4.0.3': - optional: true - - '@tailwindcss/oxide-freebsd-x64@4.0.3': - optional: true - - '@tailwindcss/oxide-linux-arm-gnueabihf@4.0.3': - optional: true - - '@tailwindcss/oxide-linux-arm64-gnu@4.0.3': - optional: true - - '@tailwindcss/oxide-linux-arm64-musl@4.0.3': - optional: true - - '@tailwindcss/oxide-linux-x64-gnu@4.0.3': - optional: true - - '@tailwindcss/oxide-linux-x64-musl@4.0.3': - optional: true - - '@tailwindcss/oxide-win32-arm64-msvc@4.0.3': - optional: true - - '@tailwindcss/oxide-win32-x64-msvc@4.0.3': - optional: true - - '@tailwindcss/oxide@4.0.3': - optionalDependencies: - '@tailwindcss/oxide-android-arm64': 4.0.3 - '@tailwindcss/oxide-darwin-arm64': 4.0.3 - '@tailwindcss/oxide-darwin-x64': 4.0.3 - '@tailwindcss/oxide-freebsd-x64': 4.0.3 - '@tailwindcss/oxide-linux-arm-gnueabihf': 4.0.3 - '@tailwindcss/oxide-linux-arm64-gnu': 4.0.3 - '@tailwindcss/oxide-linux-arm64-musl': 4.0.3 - '@tailwindcss/oxide-linux-x64-gnu': 4.0.3 - '@tailwindcss/oxide-linux-x64-musl': 4.0.3 - '@tailwindcss/oxide-win32-arm64-msvc': 4.0.3 - '@tailwindcss/oxide-win32-x64-msvc': 4.0.3 - - '@tailwindcss/postcss@4.0.3': - dependencies: - '@alloc/quick-lru': 5.2.0 - '@tailwindcss/node': 4.0.3 - '@tailwindcss/oxide': 4.0.3 - lightningcss: 1.29.1 - postcss: 8.5.1 - tailwindcss: 4.0.3 - - '@tanstack/react-virtual@3.12.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': - dependencies: - '@tanstack/virtual-core': 3.12.0 - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) - - '@tanstack/virtual-core@3.12.0': {} - - '@types/aos@3.0.7': {} - - '@types/node@22.13.0': - dependencies: - undici-types: 6.20.0 - - '@types/react-dom@19.0.3(@types/react@19.0.8)': - dependencies: - '@types/react': 19.0.8 - - '@types/react@19.0.8': - dependencies: - csstype: 3.1.3 - - aos@3.0.0-beta.6: - dependencies: - classlist-polyfill: 1.2.0 - lodash.debounce: 4.0.8 - lodash.throttle: 4.1.1 - - busboy@1.6.0: - dependencies: - streamsearch: 1.1.0 - - caniuse-lite@1.0.30001696: {} - - classlist-polyfill@1.2.0: {} - - client-only@0.0.1: {} - - clsx@2.1.1: {} - - color-convert@2.0.1: - dependencies: - color-name: 1.1.4 - optional: true - - color-name@1.1.4: - optional: true - - color-string@1.9.1: - dependencies: - color-name: 1.1.4 - simple-swizzle: 0.2.2 - optional: true - - color@4.2.3: - dependencies: - color-convert: 2.0.1 - color-string: 1.9.1 - optional: true - - csstype@3.1.3: {} - - detect-libc@1.0.3: {} - - detect-libc@2.0.3: - optional: true - - enhanced-resolve@5.18.0: - dependencies: - graceful-fs: 4.2.11 - tapable: 2.2.1 - - graceful-fs@4.2.11: {} - - is-arrayish@0.3.2: - optional: true - - jiti@2.4.2: {} - - lightningcss-darwin-arm64@1.29.1: - optional: true - - lightningcss-darwin-x64@1.29.1: - optional: true - - lightningcss-freebsd-x64@1.29.1: - optional: true - - lightningcss-linux-arm-gnueabihf@1.29.1: - optional: true - - lightningcss-linux-arm64-gnu@1.29.1: - optional: true - - lightningcss-linux-arm64-musl@1.29.1: - optional: true - - lightningcss-linux-x64-gnu@1.29.1: - optional: true - - lightningcss-linux-x64-musl@1.29.1: - optional: true - - lightningcss-win32-arm64-msvc@1.29.1: - optional: true - - lightningcss-win32-x64-msvc@1.29.1: - optional: true - - lightningcss@1.29.1: - dependencies: - detect-libc: 1.0.3 - optionalDependencies: - lightningcss-darwin-arm64: 1.29.1 - lightningcss-darwin-x64: 1.29.1 - lightningcss-freebsd-x64: 1.29.1 - lightningcss-linux-arm-gnueabihf: 1.29.1 - lightningcss-linux-arm64-gnu: 1.29.1 - lightningcss-linux-arm64-musl: 1.29.1 - lightningcss-linux-x64-gnu: 1.29.1 - lightningcss-linux-x64-musl: 1.29.1 - lightningcss-win32-arm64-msvc: 1.29.1 - lightningcss-win32-x64-msvc: 1.29.1 - - lodash.debounce@4.0.8: {} - - lodash.throttle@4.1.1: {} - - mini-svg-data-uri@1.4.4: {} - - nanoid@3.3.8: {} - - next@15.1.6(react-dom@19.0.0(react@19.0.0))(react@19.0.0): - dependencies: - '@next/env': 15.1.6 - '@swc/counter': 0.1.3 - '@swc/helpers': 0.5.15 - busboy: 1.6.0 - caniuse-lite: 1.0.30001696 - postcss: 8.4.31 - react: 19.0.0 - react-dom: 19.0.0(react@19.0.0) - styled-jsx: 5.1.6(react@19.0.0) - optionalDependencies: - '@next/swc-darwin-arm64': 15.1.6 - '@next/swc-darwin-x64': 15.1.6 - '@next/swc-linux-arm64-gnu': 15.1.6 - '@next/swc-linux-arm64-musl': 15.1.6 - '@next/swc-linux-x64-gnu': 15.1.6 - '@next/swc-linux-x64-musl': 15.1.6 - '@next/swc-win32-arm64-msvc': 15.1.6 - '@next/swc-win32-x64-msvc': 15.1.6 - sharp: 0.33.5 - transitivePeerDependencies: - - '@babel/core' - - babel-plugin-macros - - picocolors@1.1.1: {} - - postcss@8.4.31: - dependencies: - nanoid: 3.3.8 - picocolors: 1.1.1 - source-map-js: 1.2.1 - - postcss@8.5.1: - dependencies: - nanoid: 3.3.8 - picocolors: 1.1.1 - source-map-js: 1.2.1 - - react-dom@19.0.0(react@19.0.0): - dependencies: - react: 19.0.0 - scheduler: 0.25.0 - - react@19.0.0: {} - - scheduler@0.25.0: {} - - semver@7.7.1: - optional: true - - sharp@0.33.5: - dependencies: - color: 4.2.3 - detect-libc: 2.0.3 - semver: 7.7.1 - optionalDependencies: - '@img/sharp-darwin-arm64': 0.33.5 - '@img/sharp-darwin-x64': 0.33.5 - '@img/sharp-libvips-darwin-arm64': 1.0.4 - '@img/sharp-libvips-darwin-x64': 1.0.4 - '@img/sharp-libvips-linux-arm': 1.0.5 - '@img/sharp-libvips-linux-arm64': 1.0.4 - '@img/sharp-libvips-linux-s390x': 1.0.4 - '@img/sharp-libvips-linux-x64': 1.0.4 - '@img/sharp-libvips-linuxmusl-arm64': 1.0.4 - '@img/sharp-libvips-linuxmusl-x64': 1.0.4 - '@img/sharp-linux-arm': 0.33.5 - '@img/sharp-linux-arm64': 0.33.5 - '@img/sharp-linux-s390x': 0.33.5 - '@img/sharp-linux-x64': 0.33.5 - '@img/sharp-linuxmusl-arm64': 0.33.5 - '@img/sharp-linuxmusl-x64': 0.33.5 - '@img/sharp-wasm32': 0.33.5 - '@img/sharp-win32-ia32': 0.33.5 - '@img/sharp-win32-x64': 0.33.5 - optional: true - - simple-swizzle@0.2.2: - dependencies: - is-arrayish: 0.3.2 - optional: true - - source-map-js@1.2.1: {} - - streamsearch@1.1.0: {} - - styled-jsx@5.1.6(react@19.0.0): - dependencies: - client-only: 0.0.1 - react: 19.0.0 - - tabbable@6.2.0: {} - - tailwindcss@4.0.3: {} - - tapable@2.2.1: {} - - tslib@2.8.1: {} - - typescript@5.7.3: {} - - undici-types@6.20.0: {} diff --git a/postcss.config.js b/postcss.config.js index e5640725a..2e7af2b7f 100644 --- a/postcss.config.js +++ b/postcss.config.js @@ -1,5 +1,6 @@ -module.exports = { +export default { plugins: { - '@tailwindcss/postcss': {}, + tailwindcss: {}, + autoprefixer: {}, }, -}; +} diff --git a/public/favicon.ico b/public/favicon.ico deleted file mode 100644 index 718d6fea4..000000000 Binary files a/public/favicon.ico and /dev/null differ diff --git a/public/fonts/nacelle-italic.woff2 b/public/fonts/nacelle-italic.woff2 deleted file mode 100644 index bdbba71a2..000000000 Binary files a/public/fonts/nacelle-italic.woff2 and /dev/null differ diff --git a/public/fonts/nacelle-regular.woff2 b/public/fonts/nacelle-regular.woff2 deleted file mode 100644 index bbbb54d3c..000000000 Binary files a/public/fonts/nacelle-regular.woff2 and /dev/null differ diff --git a/public/fonts/nacelle-semibold.woff2 b/public/fonts/nacelle-semibold.woff2 deleted file mode 100644 index e86a69fe8..000000000 Binary files a/public/fonts/nacelle-semibold.woff2 and /dev/null differ diff --git a/public/fonts/nacelle-semibolditalic.woff2 b/public/fonts/nacelle-semibolditalic.woff2 deleted file mode 100644 index 8ce08334f..000000000 Binary files a/public/fonts/nacelle-semibolditalic.woff2 and /dev/null differ diff --git a/public/images/blurred-shape-gray.svg b/public/images/blurred-shape-gray.svg deleted file mode 100644 index 1d89401ce..000000000 --- a/public/images/blurred-shape-gray.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/images/blurred-shape.svg b/public/images/blurred-shape.svg deleted file mode 100644 index 1bd2e9fcd..000000000 --- a/public/images/blurred-shape.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/images/client-logo-01.svg b/public/images/client-logo-01.svg deleted file mode 100644 index a34f7f1af..000000000 --- a/public/images/client-logo-01.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/images/client-logo-02.svg b/public/images/client-logo-02.svg deleted file mode 100644 index d1cca923f..000000000 --- a/public/images/client-logo-02.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/images/client-logo-03.svg b/public/images/client-logo-03.svg deleted file mode 100644 index 545cfd67e..000000000 --- a/public/images/client-logo-03.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/images/client-logo-04.svg b/public/images/client-logo-04.svg deleted file mode 100644 index 8e4e62429..000000000 --- a/public/images/client-logo-04.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/images/client-logo-05.svg b/public/images/client-logo-05.svg deleted file mode 100644 index 0891db6d1..000000000 --- a/public/images/client-logo-05.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/images/client-logo-06.svg b/public/images/client-logo-06.svg deleted file mode 100644 index cac1b2f22..000000000 --- a/public/images/client-logo-06.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/images/client-logo-07.svg b/public/images/client-logo-07.svg deleted file mode 100644 index 654666f9c..000000000 --- a/public/images/client-logo-07.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/images/client-logo-08.svg b/public/images/client-logo-08.svg deleted file mode 100644 index 42daa86bb..000000000 --- a/public/images/client-logo-08.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/images/client-logo-09.svg b/public/images/client-logo-09.svg deleted file mode 100644 index 45ff37e7a..000000000 --- a/public/images/client-logo-09.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/images/features.png b/public/images/features.png deleted file mode 100644 index 037727973..000000000 Binary files a/public/images/features.png and /dev/null differ diff --git a/public/images/footer-illustration.svg b/public/images/footer-illustration.svg deleted file mode 100644 index 7b8887104..000000000 --- a/public/images/footer-illustration.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/images/hero-image-01.jpg b/public/images/hero-image-01.jpg deleted file mode 100644 index dc30ffe7d..000000000 Binary files a/public/images/hero-image-01.jpg and /dev/null differ diff --git a/public/images/logo.svg b/public/images/logo.svg deleted file mode 100644 index 3627e60ad..000000000 --- a/public/images/logo.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/images/og-image.jpg b/public/images/og-image.jpg new file mode 100644 index 000000000..72e0407c5 Binary files /dev/null and b/public/images/og-image.jpg differ diff --git a/public/images/page-illustration.svg b/public/images/page-illustration.svg deleted file mode 100644 index bc31f3231..000000000 --- a/public/images/page-illustration.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/images/secondary-illustration.svg b/public/images/secondary-illustration.svg deleted file mode 100644 index 5a88fb75c..000000000 --- a/public/images/secondary-illustration.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/images/testimonial-01.jpg b/public/images/testimonial-01.jpg deleted file mode 100644 index 394526e8f..000000000 Binary files a/public/images/testimonial-01.jpg and /dev/null differ diff --git a/public/images/testimonial-02.jpg b/public/images/testimonial-02.jpg deleted file mode 100644 index aacae4e1f..000000000 Binary files a/public/images/testimonial-02.jpg and /dev/null differ diff --git a/public/images/testimonial-03.jpg b/public/images/testimonial-03.jpg deleted file mode 100644 index fec82a62d..000000000 Binary files a/public/images/testimonial-03.jpg and /dev/null differ diff --git a/public/images/testimonial-04.jpg b/public/images/testimonial-04.jpg deleted file mode 100644 index 3f4d3344e..000000000 Binary files a/public/images/testimonial-04.jpg and /dev/null differ diff --git a/public/images/testimonial-05.jpg b/public/images/testimonial-05.jpg deleted file mode 100644 index c3e7dfffc..000000000 Binary files a/public/images/testimonial-05.jpg and /dev/null differ diff --git a/public/images/testimonial-06.jpg b/public/images/testimonial-06.jpg deleted file mode 100644 index fec82a62d..000000000 Binary files a/public/images/testimonial-06.jpg and /dev/null differ diff --git a/public/images/testimonial-07.jpg b/public/images/testimonial-07.jpg deleted file mode 100644 index 62fe7e8df..000000000 Binary files a/public/images/testimonial-07.jpg and /dev/null differ diff --git a/public/images/testimonial-08.jpg b/public/images/testimonial-08.jpg deleted file mode 100644 index 7ef447a89..000000000 Binary files a/public/images/testimonial-08.jpg and /dev/null differ diff --git a/public/images/testimonial-09.jpg b/public/images/testimonial-09.jpg deleted file mode 100644 index 332c54992..000000000 Binary files a/public/images/testimonial-09.jpg and /dev/null differ diff --git a/public/images/workflow-01.png b/public/images/workflow-01.png deleted file mode 100644 index 31c736644..000000000 Binary files a/public/images/workflow-01.png and /dev/null differ diff --git a/public/images/workflow-02.png b/public/images/workflow-02.png deleted file mode 100644 index acda5d22b..000000000 Binary files a/public/images/workflow-02.png and /dev/null differ diff --git a/public/images/workflow-03.png b/public/images/workflow-03.png deleted file mode 100644 index 9a30ea5d8..000000000 Binary files a/public/images/workflow-03.png and /dev/null differ diff --git a/public/videos/video.mp4 b/public/videos/video.mp4 deleted file mode 100644 index 92686932f..000000000 Binary files a/public/videos/video.mp4 and /dev/null differ diff --git a/public/vite.svg b/public/vite.svg new file mode 100644 index 000000000..e7b8dfb1b --- /dev/null +++ b/public/vite.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/App.css b/src/App.css new file mode 100644 index 000000000..209e5cd46 --- /dev/null +++ b/src/App.css @@ -0,0 +1,125 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; + +/* *=========== Default theme =========== */ +/* @layer base { + :root { + --background: 0 0% 100%; + --foreground: 222.2 84% 4.9%; + + --card: 0 0% 100%; + --card-foreground: 222.2 84% 4.9%; + + --popover: 0 0% 100%; + --popover-foreground: 222.2 84% 4.9%; + + --primary: 222.2 47.4% 11.2%; + --primary-foreground: 210 40% 98%; + + --secondary: 210 40% 96.1%; + --secondary-foreground: 222.2 47.4% 11.2%; + + --muted: 210 40% 96.1%; + --muted-foreground: 215.4 16.3% 46.9%; + + --accent: 210 40% 96.1%; + --accent-foreground: 222.2 47.4% 11.2%; + + --destructive: 0 84.2% 60.2%; + --destructive-foreground: 210 40% 98%; + + --border: 214.3 31.8% 91.4%; + --input: 214.3 31.8% 91.4%; + --ring: 222.2 84% 4.9%; + + --radius: 0.5rem; + } + + .dark { + --background: 222.2 84% 4.9%; + --foreground: 210 40% 98%; + + --card: 222.2 84% 4.9%; + --card-foreground: 210 40% 98%; + + --popover: 222.2 84% 4.9%; + --popover-foreground: 210 40% 98%; + + --primary: 210 40% 98%; + --primary-foreground: 222.2 47.4% 11.2%; + + --secondary: 217.2 32.6% 17.5%; + --secondary-foreground: 210 40% 98%; + + --muted: 217.2 32.6% 17.5%; + --muted-foreground: 215 20.2% 65.1%; + + --accent: 217.2 32.6% 17.5%; + --accent-foreground: 210 40% 98%; + + --destructive: 0 62.8% 30.6%; + --destructive-foreground: 210 40% 98%; + + --border: 217.2 32.6% 17.5%; + --input: 217.2 32.6% 17.5%; + --ring: 212.7 26.8% 83.9%; + } +} */ + +/* *=========== Green theme =========== */ +@layer base { + :root { + --background: 0 0% 100%; + --foreground: 240 4% 16%; + --card: 0 0% 98%; + --card-foreground: 240 4% 16%; + --popover: 0 0% 100%; + --popover-foreground: 240 4% 16%; + --primary: 239 82% 65%; + --primary-foreground: 355.7 100% 97.3%; + --secondary: 240 4.8% 95.9%; + --secondary-foreground: 240 5.9% 10%; + --muted: 240 4.8% 95.9%; + --muted-foreground: 240 3.8% 46.1%; + --accent: 240 4.8% 95.9%; + --accent-foreground: 240 5.9% 10%; + --destructive: 0 84.2% 60.2%; + --destructive-foreground: 0 0% 98%; + --border: 240 5.9% 90%; + --input: 240 5.9% 90%; + --ring: 239 82% 65%; + --radius: 0.5rem; + } + + .dark { + --background: 20 14.3% 4.1%; + --foreground: 0 0% 95%; + --card: 20 14% 6%; + --card-foreground: 0 0% 95%; + --popover: 0 0% 9%; + --popover-foreground: 0 0% 95%; + --primary: 239 82% 65%; + --primary-foreground: 355.7 100% 97.3%; + --secondary: 240 3.7% 15.9%; + --secondary-foreground: 0 0% 98%; + --muted: 0 0% 15%; + --muted-foreground: 240 5% 64.9%; + --accent: 12 6.5% 15.1%; + --accent-foreground: 0 0% 98%; + --destructive: 0 62.8% 30.6%; + --destructive-foreground: 0 85.7% 97.3%; + --border: 240 3.7% 15.9%; + --input: 240 3.7% 15.9%; + --ring: 239 82% 65%; + } +} + +@layer base { + * { + @apply border-border; + } + body { + @apply bg-background text-foreground; + } +} diff --git a/src/App.tsx b/src/App.tsx new file mode 100644 index 000000000..952e3ffdd --- /dev/null +++ b/src/App.tsx @@ -0,0 +1,93 @@ +import { useEffect, useState } from "react"; +import { + Navbar, + Hero, + HowItWorks, + Features, + Services, + Cta, + Footer, + ScrollToTop, + FeaturePage, + FeatureOfferings, + FeaturePayments, + FeatureTestimonials, + WhyCapes, + Loader, +} from "./components"; +import "./App.css"; +import hero from "@/assets/hero.webp"; // Import the hero image + +function App() { + const [isLoading, setIsLoading] = useState(true); + const [imagesLoaded, setImagesLoaded] = useState(false); + + // First effect: Preload critical images + useEffect(() => { + const imagePromises: Promise[] = []; + // Add all critical images that need to be preloaded + const imagesToPreload = [hero]; + + imagesToPreload.forEach((src) => { + const image = new Image(); + const promise: Promise = new Promise((resolve) => { + image.onload = () => resolve(); + image.onerror = () => resolve(); // Continue even if image fails to load + }); + + image.src = src; + imagePromises.push(promise); + }); + + // When all images have loaded (or failed to load) + Promise.all(imagePromises).then(() => { + console.log("All critical images loaded"); + setImagesLoaded(true); + }); + }, []); + + // Second effect: Handle timer and final loading state + useEffect(() => { + // Only start the timer after images have loaded + if (imagesLoaded) { + console.log("Starting final loading timer"); + const timer = setTimeout(() => { + setIsLoading(false); + }); + + return () => clearTimeout(timer); + } + }, [imagesLoaded]); + + if (isLoading) { + return ; + } + + return ( + <> + + + {/* */} + + + + + + {/* */} + {/* */} + + + + + {/* */} + {/* */} + {/* */} + {/* */} + {/* */} + + + > + ); +} + +export default App; diff --git a/src/assets/1.png b/src/assets/1.png new file mode 100644 index 000000000..ebae9e133 Binary files /dev/null and b/src/assets/1.png differ diff --git a/src/assets/2.png b/src/assets/2.png new file mode 100644 index 000000000..efa0dfd44 Binary files /dev/null and b/src/assets/2.png differ diff --git a/src/assets/3.png b/src/assets/3.png new file mode 100644 index 000000000..f781036b0 Binary files /dev/null and b/src/assets/3.png differ diff --git a/src/assets/CRM.png b/src/assets/CRM.png new file mode 100644 index 000000000..9d3e2fcab Binary files /dev/null and b/src/assets/CRM.png differ diff --git a/src/assets/Chat.png b/src/assets/Chat.png new file mode 100644 index 000000000..f19267044 Binary files /dev/null and b/src/assets/Chat.png differ diff --git a/src/assets/Dashboard.jpg b/src/assets/Dashboard.jpg new file mode 100644 index 000000000..b34e01a88 Binary files /dev/null and b/src/assets/Dashboard.jpg differ diff --git a/src/assets/Video Calling.png b/src/assets/Video Calling.png new file mode 100644 index 000000000..f015e7ee0 Binary files /dev/null and b/src/assets/Video Calling.png differ diff --git a/src/assets/hero.png b/src/assets/hero.png new file mode 100644 index 000000000..6be705ea4 Binary files /dev/null and b/src/assets/hero.png differ diff --git a/src/assets/hero.webp b/src/assets/hero.webp new file mode 100644 index 000000000..0e394e8d6 Binary files /dev/null and b/src/assets/hero.webp differ diff --git a/src/assets/icons/google-meet.svg b/src/assets/icons/google-meet.svg new file mode 100644 index 000000000..53bf6ad5a --- /dev/null +++ b/src/assets/icons/google-meet.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/zoom.svg b/src/assets/icons/zoom.svg new file mode 100644 index 000000000..e315a278b --- /dev/null +++ b/src/assets/icons/zoom.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/page-2.png b/src/assets/page-2.png new file mode 100644 index 000000000..1c4ab0e00 Binary files /dev/null and b/src/assets/page-2.png differ diff --git a/src/assets/product-hero.png b/src/assets/product-hero.png new file mode 100644 index 000000000..c460404f3 Binary files /dev/null and b/src/assets/product-hero.png differ diff --git a/src/assets/profile-hero.png b/src/assets/profile-hero.png new file mode 100644 index 000000000..2114a5e81 Binary files /dev/null and b/src/assets/profile-hero.png differ diff --git a/src/assets/table-hero.png b/src/assets/table-hero.png new file mode 100644 index 000000000..d9b2da46d Binary files /dev/null and b/src/assets/table-hero.png differ diff --git a/src/components/About.tsx b/src/components/About.tsx new file mode 100644 index 000000000..41e3c6b9e --- /dev/null +++ b/src/components/About.tsx @@ -0,0 +1,37 @@ +import { Statistics } from "./Statistics"; +// import pilot from "../assets/pilot.png"; + +export const About = () => { + return ( + + + ); +}; diff --git a/src/components/Cta.tsx b/src/components/Cta.tsx new file mode 100644 index 000000000..817b2b9ed --- /dev/null +++ b/src/components/Cta.tsx @@ -0,0 +1,61 @@ +import { buttonVariants } from "./ui/button"; + +export const Cta = () => { + return ( ++++ {/*+*/} +
++++ ++ + About{" "} + + Company +
++ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do + eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut + enim ad minim veniam, quis nostrud exercitation ullamco laboris + nisi ut aliquip ex ea commodo consequat. Lorem ipsum dolor sit + amet, consectetur adipiscing elit. +
++ + + ); +}; diff --git a/src/components/FAQ.tsx b/src/components/FAQ.tsx new file mode 100644 index 000000000..166481e5b --- /dev/null +++ b/src/components/FAQ.tsx @@ -0,0 +1,81 @@ +import { + Accordion, + AccordionContent, + AccordionItem, + AccordionTrigger, +} from "@/components/ui/accordion"; + +interface FAQProps { + question: string; + answer: string; + value: string; +} + +const FAQList: FAQProps[] = [ + { + question: "Is this template free?", + answer: "Yes. It is a free ChadcnUI template.", + value: "item-1", + }, + { + question: "Lorem ipsum dolor sit amet consectetur adipisicing elit?", + answer: + "Lorem ipsum dolor sit amet, consectetur adipisicing elit. Sint labore quidem quam? Consectetur sapiente iste rerum reiciendis animi nihil nostrum sit quo, modi quod.", + value: "item-2", + }, + { + question: + "Lorem ipsum dolor sit amet Consectetur natus dolores minus quibusdam?", + answer: + "Lorem ipsum dolor sit amet consectetur, adipisicing elit. Labore qui nostrum reiciendis veritatis necessitatibus maxime quis ipsa vitae cumque quo?", + value: "item-3", + }, + { + question: "Lorem ipsum dolor sit amet, consectetur adipisicing elit?", + answer: "Lorem ipsum dolor sit amet consectetur, adipisicing elit.", + value: "item-4", + }, + { + question: + "Lorem ipsum dolor sit amet consectetur adipisicing elit. Consectetur natus?", + answer: + "Lorem ipsum dolor sit amet, consectetur adipisicing elit. Sint labore quidem quam? Consectetur sapiente iste rerum reiciendis animi nihil nostrum sit quo, modi quod.", + value: "item-5", + }, +]; + +export const FAQ = () => { + return ( +++++ + {/*+ You already change lives, +
+
+ + {" "} + let's make it easier.{" "} + ++ {/* Let's remove all the manuals. +
+
*/} + Stop wasting time and effort managing everthing manually. + {/* Join{" "}CAPES.APP and focus on what you love doing most. */} ++ + Start Now + + + Book a Demo + ++*/} + {/* + */} + {/**/} ++ + ); +}; diff --git a/src/components/Features.tsx b/src/components/Features.tsx new file mode 100644 index 000000000..c537d45da --- /dev/null +++ b/src/components/Features.tsx @@ -0,0 +1,137 @@ +import { Badge } from "./ui/badge"; +import { + Carousel, + CarouselContent, + CarouselItem, + CarouselNext, + CarouselPrevious, +} from "@/components/ui/carousel"; +// import image from "../assets/growth.png"; +import heroImage from "../assets/Dashboard.jpg"; +import { motion, useInView } from "framer-motion"; +import { useRef } from "react"; +// interface FeatureProps { +// icon: LucideIcon; +// title: string; +// description: string; +// // image: string; +// } + +// const features: FeatureProps[] = [ +// { +// icon: LayoutDashboard, +// title: "Client Management Dashboard", +// description: +// "Manage your clients, leads, and projects all in one place. Replace your spreadsheets and scattered notes.", +// // image: CRM, +// }, +// { +// icon: MessageSquareMore, +// title: "Community and Chat Support", +// description: +// "Create a community for your clients and provide them with chat support. Build a community around your offerings.", +// // image: Chat, +// }, +// ]; + +const featureList: string[] = [ + "Client Dashboard", + "Offerings Management", + "Payment Integration", + "Calendar and Scheduling", + "Stats and Analytics", + "Community and Chat", + "Page Builder", +]; + +export const Features = () => { + const sectionRef = useRef(null); + const isSectionInView = useInView(sectionRef, { once: true, amount: 0.2 }); + + const carouselRef = useRef(null); + const isCarouselInView = useInView(carouselRef, { once: true, amount: 0.3 }); + + const imageRef = useRef(null); + const isImageInView = useInView(imageRef, { once: true, amount: 0.3 }); + + return ( ++ Frequently Asked{" "} + + Questions + +
+ ++ {FAQList.map(({ question, answer, value }: FAQProps) => ( + + ++ + ))} ++ {question} + + +{answer} ++ Still have questions?{" "} + + Contact us + +
++ + ); +}; diff --git a/src/components/Features/FeatureOfferings.tsx b/src/components/Features/FeatureOfferings.tsx new file mode 100644 index 000000000..1619aac1c --- /dev/null +++ b/src/components/Features/FeatureOfferings.tsx @@ -0,0 +1,97 @@ +// import Image from "next/image"; +import { Card, CardHeader, CardTitle } from "@/components/ui/card"; +import { + Calendar, + Layers2, + LucideIcon, + UserRoundCheck, + Users, +} from "lucide-react"; +import featuresImage from "@/assets/Video Calling.png"; + +interface FeatureProps { + title: string; + icon: LucideIcon; +} + +// For Next.js projects, image paths should be: +const features: FeatureProps[] = [ + { + title: "1:1 paid sessions", + icon: UserRoundCheck, + }, + { + title: "Group sessions & workshops", + icon: Users, + }, + { + title: "Multiple sessions under one package", + icon: Layers2, + }, + { + title: "Streamline scheduling for repeated sessions", + icon: Calendar, + }, +]; + +const FeatureCard = ({ title, icon: Icon }: FeatureProps) => { + return ( ++ ++++ + Your own dashboard + ++ ++ Your Whole Business in
+
+ + One Dashboard + ++ Replace multiple tools with one powerful platform +
++ + ++ {" "} + {/* Fix width issues */} + ++ {" "} + {/* Adjust margin */} + {featureList.map((feature: string) => ( + ++ + ))} ++ {feature} + ++++ + + ++
++ ); +}; + +export const FeatureOfferings = () => { + return ( ++ ++ +++ ++ + {title} + ++ + ); +}; diff --git a/src/components/Features/FeaturePage.tsx b/src/components/Features/FeaturePage.tsx new file mode 100644 index 000000000..7007e3ce0 --- /dev/null +++ b/src/components/Features/FeaturePage.tsx @@ -0,0 +1,92 @@ +import { Card, CardHeader, CardTitle } from "@/components/ui/card"; +import { HandCoins, LucideIcon, UserPen, Users } from "lucide-react"; +import featuresImage from "@/assets/page-2.png"; + +interface FeatureProps { + title: string; + icon: LucideIcon; +} + +const features: FeatureProps[] = [ + { + title: "Build your own brand", + icon: UserPen, + }, + { + title: "List all your offerings and services", + icon: HandCoins, + }, + { + title: "Manage & Interacts with Clients", + icon: Users, + }, + // { + // description: + // "All your notes, bookmarks, inspiration, articles and images in one single, private place.", + // imageUrl: "/illustration.png", // Remove the @/public part + // imageAlt: "Analytics dashboard", + // }, +]; + +const FeatureCard = ({ title, icon: Icon }: FeatureProps) => { + return ( ++++++ {/* Left side component - Content */} ++++ + {/* Right side component - Image */} +++ ++ Your clients deserves the best. +
++ Provide seamless experience to your clients for all your + offerings and services. +
++ {features && + features.map((feature, index) => ( +++ ))} + +++
++ ); +}; + +export const FeaturePage = () => { + return ( ++ ++ +++ ++ + {title} + ++ + ); +}; diff --git a/src/components/Features/FeaturePayments.tsx b/src/components/Features/FeaturePayments.tsx new file mode 100644 index 000000000..e40d31da9 --- /dev/null +++ b/src/components/Features/FeaturePayments.tsx @@ -0,0 +1,79 @@ +import { Card, CardHeader, CardTitle } from "@/components/ui/card"; +import { BellRing, CreditCard, History, LucideIcon } from "lucide-react"; +import featuresImage from "@/assets/CRM.png"; + +interface FeatureProps { + title: string; + icon: LucideIcon; +} + +const features: FeatureProps[] = [ + { + title: "No more payment delays", + icon: History, + }, + { + title: "Setup all your payments & subscriptions to autopilot", + icon: CreditCard, + }, + { + title: "Timely notifications for all your needs", + icon: BellRing, + }, +]; + +const FeatureCard = ({ title, icon: Icon }: FeatureProps) => { + return ( ++++++ Capes helps manage +
+
+ your business + ++++ {/* Left side component - Image */} ++++ + {/* Right side component - Content */} ++
+++ Setup your personalized page for your offerings and services. +
++ {features && + features.map((feature, index) => ( +++ ))} + ++ ); +}; + +export const FeaturePayments = () => { + return ( ++ ++ +++ ++ + {title} + ++ + ); +}; diff --git a/src/components/Features/FeatureTestimonials.tsx b/src/components/Features/FeatureTestimonials.tsx new file mode 100644 index 000000000..89b98a202 --- /dev/null +++ b/src/components/Features/FeatureTestimonials.tsx @@ -0,0 +1,83 @@ +import { Card, CardHeader, CardTitle } from "@/components/ui/card"; +import { + LucideIcon, + MessageSquareMore, + MessagesSquare, + SquarePlay, +} from "lucide-react"; +import featuresImage from "@/assets/Chat.png"; + +interface FeatureProps { + title: string; + icon: LucideIcon; +} + +const features: FeatureProps[] = [ + { + title: "Interact with your clients directly on your page", + icon: MessageSquareMore, + }, + { + title: "Video feedback as posts", + icon: SquarePlay, + }, + { + title: "All your testimonials at one place", + icon: MessagesSquare, + }, +]; + +const FeatureCard = ({ title, icon: Icon }: FeatureProps) => { + return ( ++++++ {/* Left side component - Image */} ++++ + {/* Right side component - Content */} ++
+++ Manage all your payments and notifications +
+ ++ {features && + features.map((feature, index) => ( +++ ))} + ++ ); +}; + +export const FeatureTestimonials = () => { + return ( ++ ++ +++ ++ + {title} + ++ + ); +}; diff --git a/src/components/Features/FeaturesVideoCalling.tsx b/src/components/Features/FeaturesVideoCalling.tsx new file mode 100644 index 000000000..38d8d9b35 --- /dev/null +++ b/src/components/Features/FeaturesVideoCalling.tsx @@ -0,0 +1,101 @@ +// import Image from "next/image"; +import { Card, CardHeader, CardTitle } from "@/components/ui/card"; +import { motion } from "framer-motion"; +import { LucideIcon, Undo2, UserRoundCheck, Users } from "lucide-react"; +import featuresImage from "@/assets/Video Calling.png"; +// import { Button } from "@/components/ui/button"; + +interface FeatureProps { + title: string; + icon: LucideIcon; +} + +// For Next.js projects, image paths should be: +const features: FeatureProps[] = [ + { + title: "Replace Zoom and Meet", + icon: Undo2, + }, + { + title: "Manage 1-1 Consultations and appointments", + icon: UserRoundCheck, + }, + { + title: "Conduct live webinars, workshops and classes", + icon: Users, + }, + // { + // description: + // "All your notes, bookmarks, inspiration, articles and images in one single, private place.", + // imageUrl: "/illustration.png", // Remove the @/public part + // imageAlt: "Analytics dashboard", + // }, +]; + +const FeatureCard = ({ title, icon: Icon }: FeatureProps) => ( ++++++ {/* Left side component - Content */} ++++ + {/* Right side component - Image */} ++ Let the world know your good work. +
++ {features && + features.map((feature, index) => ( +++ ))} + +++
+ +); +export const FeaturesVideoCalling = () => { + return ( ++ ++ +++ ++ + {title} + ++ + ); +}; diff --git a/src/components/Footer.tsx b/src/components/Footer.tsx new file mode 100644 index 000000000..a671338c7 --- /dev/null +++ b/src/components/Footer.tsx @@ -0,0 +1,152 @@ +import { + InstagramLogoIcon, + TwitterLogoIcon, + LinkedInLogoIcon, +} from "@radix-ui/react-icons"; + +export const Footer = () => { + return ( + + ); +}; diff --git a/src/components/Hero.tsx b/src/components/Hero.tsx new file mode 100644 index 000000000..022dae0c8 --- /dev/null +++ b/src/components/Hero.tsx @@ -0,0 +1,182 @@ +import { buttonVariants } from "./ui/button"; +// import { HeroCards } from "./HeroCards"; +import { cn } from "@/lib/utils"; +import { motion } from "framer-motion"; +import { CircleCheck, LucideIcon } from "lucide-react"; +import hero from "@/assets/hero.webp"; +// import AnimatedGradientText from "@/components/magicui/animated-gradient-text"; +// import { Star } from "lucide-react"; +interface FeatureProps { + icon: LucideIcon; + label: string; +} + +const featureList: FeatureProps[] = [ + { + icon: CircleCheck, + label: "Personalized page", + }, + { + icon: CircleCheck, + label: "No payments delays", + }, + { + icon: CircleCheck, + label: "Get notifications for everything", + }, + { + icon: CircleCheck, + label: "Dashboard for every niche", + }, +]; + +export const Hero = () => { + return ( ++++ ++++ {/* Left side component - Image */} ++++ + {/* Right side component - Content */} ++
+++ + Features + +++ Video, Voice, Group Sessions all in one platform. +
++ Manage and schedule all your video calls, voice calls and + group sessions seamlessly with custom payments. +
++ {features && + features.map((feature, index) => ( +++ ))} + + + ); +}; diff --git a/src/components/HeroCards.tsx b/src/components/HeroCards.tsx new file mode 100644 index 000000000..a13c11ece --- /dev/null +++ b/src/components/HeroCards.tsx @@ -0,0 +1,144 @@ +import { Card } from "@/components/ui/card"; +import product from "@/assets/product-hero.png"; +import profile from "@/assets/profile-hero.png"; +import table from "@/assets/table-hero.png"; + +export const HeroCards = () => { + return ( ++++++ {/* Left side */} +++ + {/* Right side */} ++ + {" "} + + + + + Coming Soon + + 🚀 + {/*+*/} + + {/* + + {/*+ + Shadcn + {" "} + landing page +
{" "} + for{" "} ++ + React + {" "} + developers +
*/} ++ Connect, Manage and +
+
+ Monetize your Audience + {/* + cape{" "} + + - Set your business to autopilot. */} ++ The one-stop solution for creators, coaches, teachers, and + professionals to build, grow, and manage their digital business. +
*/} ++ {featureList.map(({ icon: Icon, label }) => ( ++ + + {/* users */} + {/*++ ))} ++ {label} + +*/} ++++++
+++++ 4.6/5 on Trustpilot++ 1000+ superhero creators +++ {/* Hero cards sections */} + {/* ++*/} ++ + + {/* Shadow effect */} + +
+ {/* profile */} ++ ); +}; diff --git a/src/components/HowItWorks.tsx b/src/components/HowItWorks.tsx new file mode 100644 index 000000000..4a5dd985e --- /dev/null +++ b/src/components/HowItWorks.tsx @@ -0,0 +1,105 @@ +import { Card, CardContent, CardHeader, CardTitle } from "./ui/card"; +import { motion, useInView } from "framer-motion"; +import { useRef } from "react"; +import profile from "../assets/1.png"; +import product from "../assets/2.png"; +import run from "../assets/3.png"; + +interface FeatureProps { + title: string; + description: string; + number: string; + image?: string; +} + +const features: FeatureProps[] = [ + { + number: "1", + image: profile, + title: "Setup your profile page", + description: + "Create a profile page that showcases your offerings and services. Add your logo, bio, and links to your social media.", + }, + { + number: "2", + image: product, + title: "Create your offerings", + description: + "Create your offerings and services. Set up your payment. Share your profile page with your clients.", + }, + { + number: "3", + image: run, + title: "Start onboarding clients", + description: + "Start onboarding clients and leads. Get your business up and running within minutes.", + }, +]; + +const FeatureCard = ({ title, description, number, image }: FeatureProps) => { + const cardRef = useRef(null); + const isCardInView = useInView(cardRef, { once: true, amount: 0.3 }); + + return ( ++ + + {/* table */} ++
+ {/* + + {/* Pricing ++ + ++
Leo Miranda ++ Frontend Developer + ++ + ++ I really enjoy transforming ideas into functional software that + exceeds expectations +
++ + */} ++
+ */} + + {/* product */} ++ + ++ Free + ++ Most popular + ++ $0 + /month ++ ++ Lorem ipsum dolor sit, amet ipsum consectetur adipisicing elit. + ++ + + +
+ ++ ++ {["4 Team member", "4 GB Storage", "Upto 6 pages"].map( + (benefit: string) => ( + ++{" "} + {benefit}
+ + ) + )} ++ {/* ++ */} ++++ ++Light & dark mode ++ Lorem ipsum dolor sit amet consect adipisicing elit. Consectetur + natusm. + ++
+ + ); +}; + +export const HowItWorks = () => { + const sectionRef = useRef(null); + const isSectionInView = useInView(sectionRef, { once: true, amount: 0.2 }); + + const titleRef = useRef(null); + const isTitleInView = useInView(titleRef, { once: true, amount: 0.5 }); + + return ( ++ ++ ++ ++
{number} + {title} ++ {description} + ++ + ); +}; diff --git a/src/components/Icons.tsx b/src/components/Icons.tsx new file mode 100644 index 000000000..d2afc5621 --- /dev/null +++ b/src/components/Icons.tsx @@ -0,0 +1,664 @@ +export const LogoIcon = () => { + return ( + + ); +}; + +export const MedalIcon = () => { + return ( + + ); +}; + +export const MapIcon = () => { + return ( + + ); +}; + +export const PlaneIcon = () => { + return ( + + ); +}; + +export const GiftIcon = () => { + return ( + + ); +}; + +export const LightBulbIcon = () => { + return ( + + ); +}; + +export const WalletIcon = () => { + return ( + + ); +}; + +export const ChartIcon = () => { + return ( + + ); +}; + +export const MagnifierIcon = () => { + return ( + + ); +}; diff --git a/src/components/Loader.tsx b/src/components/Loader.tsx new file mode 100644 index 000000000..28640a6ce --- /dev/null +++ b/src/components/Loader.tsx @@ -0,0 +1,10 @@ +export const Loader = () => { + return ( ++ ++ + How it Works + +++ Get Started in 3 Easy Steps. +
++ {features.map((feature) => ( +++ ))} + ++ ); +}; diff --git a/src/components/Navbar.tsx b/src/components/Navbar.tsx new file mode 100644 index 000000000..63f674d29 --- /dev/null +++ b/src/components/Navbar.tsx @@ -0,0 +1,126 @@ +import { useState } from "react"; +import { + NavigationMenu, + NavigationMenuItem, + NavigationMenuList, +} from "@/components/ui/navigation-menu"; +import { + Sheet, + SheetContent, + SheetHeader, + SheetTitle, +} from "@/components/ui/sheet"; + +import { buttonVariants } from "./ui/button"; +// import { Menu } from "lucide-react"; +import { ModeToggle } from "./mode-toggle"; + +interface RouteProps { + href: string; + label: string; +} + +const routeList: RouteProps[] = [ + // { + // href: "#features", + // label: "Features", + // }, + // { + // href: "#services", + // label: "Offerings", + // }, + // { + // href: "#faq", + // label: "FAQ", + // }, +]; + +export const Navbar = () => { + const [isOpen, setIsOpen] = useState+ + ++(false); + return ( + + + ); +}; diff --git a/src/components/Newsletter.tsx b/src/components/Newsletter.tsx new file mode 100644 index 000000000..9460e80ed --- /dev/null +++ b/src/components/Newsletter.tsx @@ -0,0 +1,41 @@ +import { Button } from "./ui/button"; +import { Input } from "./ui/input"; + +export const Newsletter = () => { + const handleSubmit = (e: any) => { + e.preventDefault(); + console.log("Subscribed!"); + }; + + return ( + + ); +}; diff --git a/src/components/Pricing.tsx b/src/components/Pricing.tsx new file mode 100644 index 000000000..5719bd685 --- /dev/null +++ b/src/components/Pricing.tsx @@ -0,0 +1,147 @@ +import { Badge } from "@/components/ui/badge"; +import { Button } from "@/components/ui/button"; +import { + Card, + CardContent, + CardDescription, + CardFooter, + CardHeader, + CardTitle, +} from "@/components/ui/card"; +import { Check } from "lucide-react"; + +enum PopularPlanType { + NO = 0, + YES = 1, +} + +interface PricingProps { + title: string; + popular: PopularPlanType; + price: number; + description: string; + buttonText: string; + benefitList: string[]; +} + +const pricingList: PricingProps[] = [ + { + title: "Free", + popular: 0, + price: 0, + description: + "Lorem ipsum dolor sit, amet ipsum consectetur adipisicing elit.", + buttonText: "Get Started", + benefitList: [ + "1 Team member", + "2 GB Storage", + "Upto 4 pages", + "Community support", + "lorem ipsum dolor", + ], + }, + { + title: "Premium", + popular: 1, + price: 5, + description: + "Lorem ipsum dolor sit, amet ipsum consectetur adipisicing elit.", + buttonText: "Start Free Trial", + benefitList: [ + "4 Team member", + "4 GB Storage", + "Upto 6 pages", + "Priority support", + "lorem ipsum dolor", + ], + }, + { + title: "Enterprise", + popular: 0, + price: 40, + description: + "Lorem ipsum dolor sit, amet ipsum consectetur adipisicing elit.", + buttonText: "Contact US", + benefitList: [ + "10 Team member", + "8 GB Storage", + "Upto 10 pages", + "Priority support", + "lorem ipsum dolor", + ], + }, +]; + +export const Pricing = () => { + return ( ++ ++ ++ + CAPES.APP + + + + {/* mobile */} + ++ + + {/* + + + {/* desktop */} + + ++ + */} + ++ ++ + ++ CAPES.APP + ++ {/* + Login + */} + +++ + + ); +}; diff --git a/src/components/ScrollToTop.tsx b/src/components/ScrollToTop.tsx new file mode 100644 index 000000000..8a21c75db --- /dev/null +++ b/src/components/ScrollToTop.tsx @@ -0,0 +1,38 @@ +import { useState, useEffect } from "react"; +import { Button } from "./ui/button"; +import { ArrowUpToLine } from "lucide-react"; + +export const ScrollToTop = () => { + const [showTopBtn, setShowTopBtn] = useState(false); + + useEffect(() => { + window.addEventListener("scroll", () => { + if (window.scrollY > 400) { + setShowTopBtn(true); + } else { + setShowTopBtn(false); + } + }); + }, []); + + const goToTop = () => { + window.scroll({ + top: 0, + left: 0, + }); + }; + + return ( + <> + {showTopBtn && ( + + )} + > + ); +}; diff --git a/src/components/Services.tsx b/src/components/Services.tsx new file mode 100644 index 000000000..bd7789de7 --- /dev/null +++ b/src/components/Services.tsx @@ -0,0 +1,155 @@ +/* ++ Get + + {" "} + Unlimited{" "} + + Access +
++ Lorem ipsum dolor sit amet consectetur adipisicing elit. Alias + reiciendis. +
++ {pricingList.map((pricing: PricingProps) => ( +++ + ))} ++ + ++ {pricing.title} + {pricing.popular === PopularPlanType.YES ? ( + ++ Most popular + + ) : null} ++ ${pricing.price} + /month ++ +{pricing.description} ++ + + +
+ ++ ++ {pricing.benefitList.map((benefit: string) => ( + ++{" "} + {benefit}
+ + ))} ++This client component provides the features section for the landing page. + +*/ + +"use client"; + +import { useRef } from "react"; +import { motion, useInView } from "framer-motion"; +import { + Card, + CardDescription, + CardHeader, + CardTitle, +} from "@/components/ui/card"; + +import { + LucideIcon, + Video, + Presentation, + HandCoins, + Banknote, + LinkIcon, +} from "lucide-react"; + +interface ServiceProps { + title: string; + description: string; + icon: LucideIcon; + iconColor?: string; + backgroundColor?: string; +} + +const features: ServiceProps[] = [ + { + title: "1:1 Sessions", + description: + "Monetize your time and expertise with 1:1 sessions, consultations, and coaching.", + icon: Video, + iconColor: "text-primary", + backgroundColor: "bg-primary/10", + }, + { + title: "Group Sessions", + description: + "Seamlesly host and manage group classes, webinars, and workshops.", + icon: Presentation, + iconColor: "text-orange-500", + backgroundColor: "bg-orange-500/10", + }, + { + title: "Digital Products", + description: "Create and sell digital products, courses, and content.", + icon: HandCoins, + iconColor: "text-pink-500", + backgroundColor: "bg-pink-500/10", + }, + { + title: "Payments & Subscriptions", + description: + "Create and accept payments, manage subscriptions for your products and services.", + icon: Banknote, + iconColor: "text-green-500", + backgroundColor: "bg-green-500/10", + }, + { + title: "Affiliate Links", + description: + "Create and manage affiliate programs for your products and services.", + icon: LinkIcon, + iconColor: "text-blue-500", + backgroundColor: "bg-blue-500/10", + }, +]; + +const ServiceCard = ({ + title, + description, + icon: Icon, + iconColor, + backgroundColor, +}: ServiceProps) => { + const cardRef = useRef(null); + const isCardInView = useInView(cardRef, { once: true, amount: 0.3 }); + + return ( ++ + ); +}; + +export const Services = () => { + const sectionRef = useRef(null); + const isSectionInView = useInView(sectionRef, { once: true, amount: 0.2 }); + + const headingRef = useRef(null); + const isHeadingInView = useInView(headingRef, { once: true, amount: 0.5 }); + + return ( ++ ++ +++ ++ {title} +{description} ++ + ); +}; diff --git a/src/components/Sponsors.tsx b/src/components/Sponsors.tsx new file mode 100644 index 000000000..78199825f --- /dev/null +++ b/src/components/Sponsors.tsx @@ -0,0 +1,58 @@ +import { Radar } from "lucide-react"; + +interface SponsorProps { + icon: JSX.Element; + name: string; +} + +const sponsors: SponsorProps[] = [ + { + icon:+++ ++ + Offerings + +++ Offerings for every need. +
++ Fully integrated services and products you can start offering in + minutes +
++ {features.map((feature, index) => ( +++ ))} + , + name: "Sponsor 1", + }, + { + icon: , + name: "Sponsor 2", + }, + { + icon: , + name: "Sponsor 3", + }, + { + icon: , + name: "Sponsor 4", + }, + { + icon: , + name: "Sponsor 5", + }, + { + icon: , + name: "Sponsor 6", + }, +]; + +export const Sponsors = () => { + return ( + + + ); +}; diff --git a/src/components/Statistics.tsx b/src/components/Statistics.tsx new file mode 100644 index 000000000..a8b252de9 --- /dev/null +++ b/src/components/Statistics.tsx @@ -0,0 +1,41 @@ +export const Statistics = () => { + interface statsProps { + quantity: string; + description: string; + } + + const stats: statsProps[] = [ + { + quantity: "2.7K+", + description: "Users", + }, + { + quantity: "1.8K+", + description: "Subscribers", + }, + { + quantity: "112", + description: "Downloads", + }, + { + quantity: "4", + description: "Products", + }, + ]; + + return ( ++ Investors and founders +
+ ++ {sponsors.map(({ icon, name }: SponsorProps) => ( +++ {icon} ++ ))} +{name}
++ + ); +}; diff --git a/src/components/Team.tsx b/src/components/Team.tsx new file mode 100644 index 000000000..73c4eee1a --- /dev/null +++ b/src/components/Team.tsx @@ -0,0 +1,174 @@ +import { buttonVariants } from "@/components/ui/button"; +import { + Card, + CardContent, + CardDescription, + CardFooter, + CardHeader, + CardTitle, +} from "@/components/ui/card"; +import { Facebook, Instagram, Linkedin } from "lucide-react"; + +interface TeamProps { + imageUrl: string; + name: string; + position: string; + socialNetworks: SociaNetworkslProps[]; +} + +interface SociaNetworkslProps { + name: string; + url: string; +} + +const teamList: TeamProps[] = [ + { + imageUrl: "https://i.pravatar.cc/150?img=35", + name: "Emma Smith", + position: "Product Manager", + socialNetworks: [ + { + name: "Linkedin", + url: "https://www.linkedin.com/in/leopoldo-miranda/", + }, + { + name: "Facebook", + url: "https://www.facebook.com/", + }, + { + name: "Instagram", + url: "https://www.instagram.com/", + }, + ], + }, + { + imageUrl: "https://i.pravatar.cc/150?img=60", + name: "John Doe", + position: "Tech Lead", + socialNetworks: [ + { + name: "Linkedin", + url: "https://www.linkedin.com/in/leopoldo-miranda/", + }, + { + name: "Facebook", + url: "https://www.facebook.com/", + }, + { + name: "Instagram", + url: "https://www.instagram.com/", + }, + ], + }, + { + imageUrl: "https://i.pravatar.cc/150?img=36", + name: "Ashley Ross", + position: "Frontend Developer", + socialNetworks: [ + { + name: "Linkedin", + url: "https://www.linkedin.com/in/leopoldo-miranda/", + }, + + { + name: "Instagram", + url: "https://www.instagram.com/", + }, + ], + }, + { + imageUrl: "https://i.pravatar.cc/150?img=17", + name: "Bruce Rogers", + position: "Backend Developer", + socialNetworks: [ + { + name: "Linkedin", + url: "https://www.linkedin.com/in/leopoldo-miranda/", + }, + { + name: "Facebook", + url: "https://www.facebook.com/", + }, + ], + }, +]; + +export const Team = () => { + const socialIcon = (iconName: string) => { + switch (iconName) { + case "Linkedin": + return+ {stats.map(({ quantity, description }: statsProps) => ( ++++ ))} +{quantity}
+{description}
+; + + case "Facebook": + return ; + + case "Instagram": + return ; + } + }; + + return ( + + + ); +}; diff --git a/src/components/Testimonials.tsx b/src/components/Testimonials.tsx new file mode 100644 index 000000000..0719abbee --- /dev/null +++ b/src/components/Testimonials.tsx @@ -0,0 +1,111 @@ +import { Avatar, AvatarFallback, AvatarImage } from "./ui/avatar"; +import { + Card, + CardContent, + CardDescription, + CardHeader, + CardTitle, +} from "@/components/ui/card"; + +interface TestimonialProps { + image: string; + name: string; + userName: string; + comment: string; +} + +const testimonials: TestimonialProps[] = [ + { + image: "https://github.com/shadcn.png", + name: "John Doe React", + userName: "@john_Doe", + comment: "This landing page is awesome!", + }, + { + image: "https://github.com/shadcn.png", + name: "John Doe React", + userName: "@john_Doe1", + comment: + "Lorem ipsum dolor sit amet,empor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud.", + }, + + { + image: "https://github.com/shadcn.png", + name: "John Doe React", + userName: "@john_Doe2", + comment: + "Lorem ipsum dolor sit amet,exercitation. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident.", + }, + { + image: "https://github.com/shadcn.png", + name: "John Doe React", + userName: "@john_Doe3", + comment: + "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam.", + }, + { + image: "https://github.com/shadcn.png", + name: "John Doe React", + userName: "@john_Doe4", + comment: + "Lorem ipsum dolor sit amet, tempor incididunt aliqua. Ut enim ad minim veniam, quis nostrud.", + }, + { + image: "https://github.com/shadcn.png", + name: "John Doe React", + userName: "@john_Doe5", + comment: + "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.", + }, +]; + +export const Testimonials = () => { + return ( ++ + Our Dedicated{" "} + + Crew +
+ ++ Lorem ipsum dolor sit amet consectetur, adipisicing elit. Veritatis + dolor pariatur sit! +
+ ++ {teamList.map( + ({ imageUrl, name, position, socialNetworks }: TeamProps) => ( +++ + ) + )} ++ + ++
{name} ++ {position} + ++ + +Lorem ipsum dolor sit amet, consectetur adipisicing elit.
++ {socialNetworks.map(({ name, url }: SociaNetworkslProps) => ( + + ))} + ++ + ); +}; diff --git a/src/components/WhyCapes.tsx b/src/components/WhyCapes.tsx new file mode 100644 index 000000000..0b822249a --- /dev/null +++ b/src/components/WhyCapes.tsx @@ -0,0 +1,102 @@ +import { useRef } from "react"; +import { motion, useInView } from "framer-motion"; +import { + Card, + CardDescription, + CardHeader, + CardTitle, +} from "@/components/ui/card"; + +interface FeatureProps { + title: string; + description: string; +} + +// For Next.js projects, image paths should be: +const features: FeatureProps[] = [ + { + title: "90%", + description: "of customers spend too much time managing clients manually", + }, + { + title: "96%", + description: "say they struggle to stay connected with their audience", + }, + { + title: "97%", + description: "says they use 4-5 different tools to manage their business", + }, +]; + +const FeatureCard = ({ title, description }: FeatureProps) => { + const cardRef = useRef(null); + const isCardInView = useInView(cardRef, { once: true, amount: 0.3 }); + + return ( ++ Discover Why + + {" "} + People Love{" "} + + This Landing Page +
+ ++ Lorem ipsum dolor sit amet, consectetur adipisicing elit. Non unde error + facere hic reiciendis illo +
+ ++ {testimonials.map( + ({ image, name, userName, comment }: TestimonialProps) => ( +++ + ) + )} ++ + ++ + ++ OM +++{name} +{userName} +{comment} ++ + ); +}; + +export const WhyCapes = () => { + const sectionRef = useRef(null); + const isSectionInView = useInView(sectionRef, { once: true, amount: 0.2 }); + + const headingRef = useRef(null); + const isHeadingInView = useInView(headingRef, { once: true, amount: 0.5 }); + + return ( ++ ++ ++ {title} + ++ {description} + ++ + ); +}; diff --git a/src/components/index.tsx b/src/components/index.tsx new file mode 100644 index 000000000..61acbefec --- /dev/null +++ b/src/components/index.tsx @@ -0,0 +1,46 @@ +import { Hero } from "./Hero"; +import { Navbar } from "./Navbar"; +import { About } from "./About"; +import { Cta } from "./Cta"; +import { FAQ } from "./FAQ"; +import { FeaturesVideoCalling } from "./Features/FeaturesVideoCalling"; +import { Features } from "./Features"; +import { Footer } from "./Footer"; +import { HowItWorks } from "./HowItWorks"; +import { Newsletter } from "./Newsletter"; +import { Pricing } from "./Pricing"; +import { ScrollToTop } from "./ScrollToTop"; +import { Services } from "./Services"; +import { Sponsors } from "./Sponsors"; +import { Team } from "./Team"; +import { Testimonials } from "./Testimonials"; +import { FeaturePage } from "./Features/FeaturePage"; +import { FeatureOfferings } from "./Features/FeatureOfferings"; +import { FeaturePayments } from "./Features/FeaturePayments"; +import { FeatureTestimonials } from "./Features/FeatureTestimonials"; +import { WhyCapes } from "./WhyCapes"; +import { Loader } from "./Loader"; +export { + Hero, + Navbar, + About, + Cta, + FAQ, + FeaturesVideoCalling, + Features, + Footer, + HowItWorks, + Newsletter, + Pricing, + ScrollToTop, + Services, + Sponsors, + Team, + Testimonials, + FeaturePage, + FeatureOfferings, + FeaturePayments, + FeatureTestimonials, + WhyCapes, + Loader, +}; diff --git a/src/components/magicui/animated-gradient-text.tsx b/src/components/magicui/animated-gradient-text.tsx new file mode 100644 index 000000000..50b60456a --- /dev/null +++ b/src/components/magicui/animated-gradient-text.tsx @@ -0,0 +1,32 @@ +/* ++++ +++ ++ Why Capes? + ++ Based on our user survey... +
++ {features && + features.map((feature, index) => ( +++ ))} + +This client component provides an animated gradient text. + +*/ + +import { ReactNode } from "react"; + +import { cn } from "@/lib/utils"; + +export default function AnimatedGradientText({ + children, + className, +}: { + children: ReactNode; + className?: string; +}) { + return ( ++ + + {children} ++ ); +} diff --git a/src/components/mode-toggle.tsx b/src/components/mode-toggle.tsx new file mode 100644 index 000000000..a0a44d5d1 --- /dev/null +++ b/src/components/mode-toggle.tsx @@ -0,0 +1,19 @@ +import { Button } from "@/components/ui/button"; +import { useTheme } from "@/components/theme-provider"; +import { Moon, Sun } from "lucide-react"; + +export function ModeToggle() { + const { theme, setTheme } = useTheme(); + + const toggleTheme = () => { + setTheme(theme === "dark" ? "light" : "dark"); + }; + + return ( + + ); +} diff --git a/src/components/theme-provider.tsx b/src/components/theme-provider.tsx new file mode 100644 index 000000000..85163c1b4 --- /dev/null +++ b/src/components/theme-provider.tsx @@ -0,0 +1,76 @@ +import { createContext, useContext, useEffect, useState } from "react"; + +type Theme = "dark" | "light" | "system"; + +type ThemeProviderProps = { + children: React.ReactNode; + defaultTheme?: Theme; + storageKey?: string; +}; + +type ThemeProviderState = { + theme: Theme; + setTheme: (theme: Theme) => void; +}; + +const initialState: ThemeProviderState = { + theme: "system", + setTheme: () => null, +}; + +const ThemeProviderContext = createContext(initialState); + +export function ThemeProvider({ + children, + defaultTheme = "dark", + storageKey = "vite-ui-theme", + ...props +}: ThemeProviderProps) { + const [theme, setTheme] = useState ( + () => (localStorage.getItem(storageKey) as Theme) || defaultTheme + ); + + useEffect(() => { + const root = window.document.documentElement; + + root.classList.remove("light", "dark"); + + if (theme === "system") { + const systemTheme = window.matchMedia("(prefers-color-scheme: dark)") + .matches + ? "dark" + : "light"; + + root.classList.add(systemTheme); + return; + } + + root.classList.add(theme); + }, [theme]); + + const value = { + theme, + setTheme: (theme: Theme) => { + localStorage.setItem(storageKey, theme); + setTheme(theme); + }, + }; + + return ( + + {children} + + ); +} + +export const useTheme = () => { + const context = useContext(ThemeProviderContext); + + if (context === undefined) + throw new Error("useTheme must be used within a ThemeProvider"); + + return context; +}; diff --git a/src/components/ui/accordion.tsx b/src/components/ui/accordion.tsx new file mode 100644 index 000000000..8bc66bf56 --- /dev/null +++ b/src/components/ui/accordion.tsx @@ -0,0 +1,60 @@ +import * as React from "react"; +import * as AccordionPrimitive from "@radix-ui/react-accordion"; +import { ChevronDown } from "lucide-react"; + +import { cn } from "@/lib/utils"; + +const Accordion = AccordionPrimitive.Root; + +const AccordionItem = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)); +AccordionItem.displayName = "AccordionItem"; + +const AccordionTrigger = React.forwardRef< + React.ElementRef , + React.ComponentPropsWithoutRef +>(({ className, children, ...props }, ref) => ( + + +)); +AccordionTrigger.displayName = AccordionPrimitive.Trigger.displayName; + +const AccordionContent = React.forwardRef< + React.ElementRefsvg]:rotate-180", + className + )} + {...props} + > + {children} + ++ , + React.ComponentPropsWithoutRef +>(({ className, children, ...props }, ref) => ( + + +)); + +AccordionContent.displayName = AccordionPrimitive.Content.displayName; + +export { Accordion, AccordionItem, AccordionTrigger, AccordionContent }; diff --git a/src/components/ui/avatar.tsx b/src/components/ui/avatar.tsx new file mode 100644 index 000000000..fda1c3d56 --- /dev/null +++ b/src/components/ui/avatar.tsx @@ -0,0 +1,48 @@ +import * as React from "react"; +import * as AvatarPrimitive from "@radix-ui/react-avatar"; + +import { cn } from "@/lib/utils"; + +const Avatar = React.forwardRef< + React.ElementRef+ {children} ++, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)); +Avatar.displayName = AvatarPrimitive.Root.displayName; + +const AvatarImage = React.forwardRef< + React.ElementRef , + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)); +AvatarImage.displayName = AvatarPrimitive.Image.displayName; + +const AvatarFallback = React.forwardRef< + React.ElementRef , + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)); +AvatarFallback.displayName = AvatarPrimitive.Fallback.displayName; + +export { Avatar, AvatarImage, AvatarFallback }; diff --git a/src/components/ui/badge.tsx b/src/components/ui/badge.tsx new file mode 100644 index 000000000..f000e3ef5 --- /dev/null +++ b/src/components/ui/badge.tsx @@ -0,0 +1,36 @@ +import * as React from "react" +import { cva, type VariantProps } from "class-variance-authority" + +import { cn } from "@/lib/utils" + +const badgeVariants = cva( + "inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2", + { + variants: { + variant: { + default: + "border-transparent bg-primary text-primary-foreground hover:bg-primary/80", + secondary: + "border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80", + destructive: + "border-transparent bg-destructive text-destructive-foreground hover:bg-destructive/80", + outline: "text-foreground", + }, + }, + defaultVariants: { + variant: "default", + }, + } +) + +export interface BadgeProps + extends React.HTMLAttributes , + VariantProps {} + +function Badge({ className, variant, ...props }: BadgeProps) { + return ( + + ) +} + +export { Badge, badgeVariants } diff --git a/src/components/ui/button.tsx b/src/components/ui/button.tsx new file mode 100644 index 000000000..5beae1cfa --- /dev/null +++ b/src/components/ui/button.tsx @@ -0,0 +1,56 @@ +import * as React from "react"; +import { Slot } from "@radix-ui/react-slot"; +import { cva, type VariantProps } from "class-variance-authority"; + +import { cn } from "@/lib/utils"; + +const buttonVariants = cva( + "inline-flex items-center justify-center whitespace-nowrap rounded-xl text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50", + { + variants: { + variant: { + default: "bg-primary text-primary-foreground hover:bg-primary/90", + destructive: + "bg-destructive text-destructive-foreground hover:bg-destructive/90", + outline: + "border border-input bg-background hover:bg-accent hover:text-accent-foreground", + secondary: + "bg-secondary text-secondary-foreground hover:bg-secondary/80", + ghost: "hover:bg-accent hover:text-accent-foreground", + link: "text-primary underline-offset-4 hover:underline", + }, + size: { + default: "h-10 px-4 py-2", + sm: "h-9 rounded-md px-3", + lg: "h-11 rounded-md px-8", + icon: "h-10 w-10", + }, + }, + defaultVariants: { + variant: "default", + size: "default", + }, + } +); + +export interface ButtonProps + extends React.ButtonHTMLAttributes , + VariantProps { + asChild?: boolean; +} + +const Button = React.forwardRef ( + ({ className, variant, size, asChild = false, ...props }, ref) => { + const Comp = asChild ? Slot : "button"; + return ( + + ); + } +); +Button.displayName = "Button"; + +export { Button, buttonVariants }; diff --git a/src/components/ui/card.tsx b/src/components/ui/card.tsx new file mode 100644 index 000000000..8db8c4e4d --- /dev/null +++ b/src/components/ui/card.tsx @@ -0,0 +1,86 @@ +import * as React from "react"; + +import { cn } from "@/lib/utils"; + +const Card = React.forwardRef< + HTMLDivElement, + React.HTMLAttributes +>(({ className, ...props }, ref) => ( + +)); +Card.displayName = "Card"; + +const CardHeader = React.forwardRef< + HTMLDivElement, + React.HTMLAttributes +>(({ className, ...props }, ref) => ( + +)); +CardHeader.displayName = "CardHeader"; + +const CardTitle = React.forwardRef< + HTMLParagraphElement, + React.HTMLAttributes +>(({ className, ...props }, ref) => ( + +)); +CardTitle.displayName = "CardTitle"; + +const CardDescription = React.forwardRef< + HTMLParagraphElement, + React.HTMLAttributes +>(({ className, ...props }, ref) => ( + +)); +CardDescription.displayName = "CardDescription"; + +const CardContent = React.forwardRef< + HTMLDivElement, + React.HTMLAttributes +>(({ className, ...props }, ref) => ( + +)); +CardContent.displayName = "CardContent"; + +const CardFooter = React.forwardRef< + HTMLDivElement, + React.HTMLAttributes +>(({ className, ...props }, ref) => ( + +)); +CardFooter.displayName = "CardFooter"; + +export { + Card, + CardHeader, + CardFooter, + CardTitle, + CardDescription, + CardContent, +}; diff --git a/src/components/ui/carousel.tsx b/src/components/ui/carousel.tsx new file mode 100644 index 000000000..9c2b9bf37 --- /dev/null +++ b/src/components/ui/carousel.tsx @@ -0,0 +1,260 @@ +import * as React from "react" +import useEmblaCarousel, { + type UseEmblaCarouselType, +} from "embla-carousel-react" +import { ArrowLeft, ArrowRight } from "lucide-react" + +import { cn } from "@/lib/utils" +import { Button } from "@/components/ui/button" + +type CarouselApi = UseEmblaCarouselType[1] +type UseCarouselParameters = Parameters +type CarouselOptions = UseCarouselParameters[0] +type CarouselPlugin = UseCarouselParameters[1] + +type CarouselProps = { + opts?: CarouselOptions + plugins?: CarouselPlugin + orientation?: "horizontal" | "vertical" + setApi?: (api: CarouselApi) => void +} + +type CarouselContextProps = { + carouselRef: ReturnType [0] + api: ReturnType [1] + scrollPrev: () => void + scrollNext: () => void + canScrollPrev: boolean + canScrollNext: boolean +} & CarouselProps + +const CarouselContext = React.createContext (null) + +function useCarousel() { + const context = React.useContext(CarouselContext) + + if (!context) { + throw new Error("useCarousel must be used within a ") + } + + return context +} + +const Carousel = React.forwardRef< + HTMLDivElement, + React.HTMLAttributes & CarouselProps +>( + ( + { + orientation = "horizontal", + opts, + setApi, + plugins, + className, + children, + ...props + }, + ref + ) => { + const [carouselRef, api] = useEmblaCarousel( + { + ...opts, + axis: orientation === "horizontal" ? "x" : "y", + }, + plugins + ) + const [canScrollPrev, setCanScrollPrev] = React.useState(false) + const [canScrollNext, setCanScrollNext] = React.useState(false) + + const onSelect = React.useCallback((api: CarouselApi) => { + if (!api) { + return + } + + setCanScrollPrev(api.canScrollPrev()) + setCanScrollNext(api.canScrollNext()) + }, []) + + const scrollPrev = React.useCallback(() => { + api?.scrollPrev() + }, [api]) + + const scrollNext = React.useCallback(() => { + api?.scrollNext() + }, [api]) + + const handleKeyDown = React.useCallback( + (event: React.KeyboardEvent ) => { + if (event.key === "ArrowLeft") { + event.preventDefault() + scrollPrev() + } else if (event.key === "ArrowRight") { + event.preventDefault() + scrollNext() + } + }, + [scrollPrev, scrollNext] + ) + + React.useEffect(() => { + if (!api || !setApi) { + return + } + + setApi(api) + }, [api, setApi]) + + React.useEffect(() => { + if (!api) { + return + } + + onSelect(api) + api.on("reInit", onSelect) + api.on("select", onSelect) + + return () => { + api?.off("select", onSelect) + } + }, [api, onSelect]) + + return ( + + + ) + } +) +Carousel.displayName = "Carousel" + +const CarouselContent = React.forwardRef< + HTMLDivElement, + React.HTMLAttributes+ {children} +++>(({ className, ...props }, ref) => { + const { carouselRef, orientation } = useCarousel() + + return ( + + ++ ) +}) +CarouselContent.displayName = "CarouselContent" + +const CarouselItem = React.forwardRef< + HTMLDivElement, + React.HTMLAttributes+>(({ className, ...props }, ref) => { + const { orientation } = useCarousel() + + return ( + + ) +}) +CarouselItem.displayName = "CarouselItem" + +const CarouselPrevious = React.forwardRef< + HTMLButtonElement, + React.ComponentProps +>(({ className, variant = "outline", size = "icon", ...props }, ref) => { + const { orientation, scrollPrev, canScrollPrev } = useCarousel() + + return ( + + ) +}) +CarouselPrevious.displayName = "CarouselPrevious" + +const CarouselNext = React.forwardRef< + HTMLButtonElement, + React.ComponentProps +>(({ className, variant = "outline", size = "icon", ...props }, ref) => { + const { orientation, scrollNext, canScrollNext } = useCarousel() + + return ( + + ) +}) +CarouselNext.displayName = "CarouselNext" + +export { + type CarouselApi, + Carousel, + CarouselContent, + CarouselItem, + CarouselPrevious, + CarouselNext, +} diff --git a/src/components/ui/dropdown-menu.tsx b/src/components/ui/dropdown-menu.tsx new file mode 100644 index 000000000..5c1e59d37 --- /dev/null +++ b/src/components/ui/dropdown-menu.tsx @@ -0,0 +1,198 @@ +import * as React from "react"; +import * as DropdownMenuPrimitive from "@radix-ui/react-dropdown-menu"; +import { Check, ChevronRight, Circle } from "lucide-react"; + +import { cn } from "@/lib/utils"; + +const DropdownMenu = DropdownMenuPrimitive.Root; + +const DropdownMenuTrigger = DropdownMenuPrimitive.Trigger; + +const DropdownMenuGroup = DropdownMenuPrimitive.Group; + +const DropdownMenuPortal = DropdownMenuPrimitive.Portal; + +const DropdownMenuSub = DropdownMenuPrimitive.Sub; + +const DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup; + +const DropdownMenuSubTrigger = React.forwardRef< + React.ElementRef , + React.ComponentPropsWithoutRef & { + inset?: boolean; + } +>(({ className, inset, children, ...props }, ref) => ( + + {children} + +)); +DropdownMenuSubTrigger.displayName = + DropdownMenuPrimitive.SubTrigger.displayName; + +const DropdownMenuSubContent = React.forwardRef< + React.ElementRef+ , + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)); +DropdownMenuSubContent.displayName = + DropdownMenuPrimitive.SubContent.displayName; + +const DropdownMenuContent = React.forwardRef< + React.ElementRef , + React.ComponentPropsWithoutRef +>(({ className, sideOffset = 4, ...props }, ref) => ( + + +)); +DropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName; + +const DropdownMenuItem = React.forwardRef< + React.ElementRef+ , + React.ComponentPropsWithoutRef & { + inset?: boolean; + } +>(({ className, inset, ...props }, ref) => ( + +)); +DropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName; + +const DropdownMenuCheckboxItem = React.forwardRef< + React.ElementRef , + React.ComponentPropsWithoutRef +>(({ className, children, checked, ...props }, ref) => ( + + + +)); +DropdownMenuCheckboxItem.displayName = + DropdownMenuPrimitive.CheckboxItem.displayName; + +const DropdownMenuRadioItem = React.forwardRef< + React.ElementRef+ + + {children} ++ , + React.ComponentPropsWithoutRef +>(({ className, children, ...props }, ref) => ( + + + +)); +DropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName; + +const DropdownMenuLabel = React.forwardRef< + React.ElementRef+ + + {children} ++ , + React.ComponentPropsWithoutRef & { + inset?: boolean; + } +>(({ className, inset, ...props }, ref) => ( + +)); +DropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName; + +const DropdownMenuSeparator = React.forwardRef< + React.ElementRef , + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)); +DropdownMenuSeparator.displayName = DropdownMenuPrimitive.Separator.displayName; + +const DropdownMenuShortcut = ({ + className, + ...props +}: React.HTMLAttributes ) => { + return ( + + ); +}; +DropdownMenuShortcut.displayName = "DropdownMenuShortcut"; + +export { + DropdownMenu, + DropdownMenuTrigger, + DropdownMenuContent, + DropdownMenuItem, + DropdownMenuCheckboxItem, + DropdownMenuRadioItem, + DropdownMenuLabel, + DropdownMenuSeparator, + DropdownMenuShortcut, + DropdownMenuGroup, + DropdownMenuPortal, + DropdownMenuSub, + DropdownMenuSubContent, + DropdownMenuSubTrigger, + DropdownMenuRadioGroup, +}; diff --git a/src/components/ui/input.tsx b/src/components/ui/input.tsx new file mode 100644 index 000000000..677d05fd6 --- /dev/null +++ b/src/components/ui/input.tsx @@ -0,0 +1,25 @@ +import * as React from "react" + +import { cn } from "@/lib/utils" + +export interface InputProps + extends React.InputHTMLAttributes {} + +const Input = React.forwardRef ( + ({ className, type, ...props }, ref) => { + return ( + + ) + } +) +Input.displayName = "Input" + +export { Input } diff --git a/src/components/ui/navigation-menu.tsx b/src/components/ui/navigation-menu.tsx new file mode 100644 index 000000000..2b3d741fc --- /dev/null +++ b/src/components/ui/navigation-menu.tsx @@ -0,0 +1,128 @@ +import * as React from "react"; +import * as NavigationMenuPrimitive from "@radix-ui/react-navigation-menu"; +import { cva } from "class-variance-authority"; +import { ChevronDown } from "lucide-react"; + +import { cn } from "@/lib/utils"; + +const NavigationMenu = React.forwardRef< + React.ElementRef , + React.ComponentPropsWithoutRef +>(({ className, children, ...props }, ref) => ( + + {children} + +)); +NavigationMenu.displayName = NavigationMenuPrimitive.Root.displayName; + +const NavigationMenuList = React.forwardRef< + React.ElementRef+ , + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)); +NavigationMenuList.displayName = NavigationMenuPrimitive.List.displayName; + +const NavigationMenuItem = NavigationMenuPrimitive.Item; + +const navigationMenuTriggerStyle = cva( + "group inline-flex h-10 w-max items-center justify-center rounded-md bg-background px-4 py-2 text-sm font-medium transition-colors hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground focus:outline-none disabled:pointer-events-none disabled:opacity-50 data-[active]:bg-accent/50 data-[state=open]:bg-accent/50" +); + +const NavigationMenuTrigger = React.forwardRef< + React.ElementRef , + React.ComponentPropsWithoutRef +>(({ className, children, ...props }, ref) => ( + + {children}{" "} + +)); +NavigationMenuTrigger.displayName = NavigationMenuPrimitive.Trigger.displayName; + +const NavigationMenuContent = React.forwardRef< + React.ElementRef +, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)); +NavigationMenuContent.displayName = NavigationMenuPrimitive.Content.displayName; + +const NavigationMenuLink = NavigationMenuPrimitive.Link; + +const NavigationMenuViewport = React.forwardRef< + React.ElementRef , + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + ++)); +NavigationMenuViewport.displayName = + NavigationMenuPrimitive.Viewport.displayName; + +const NavigationMenuIndicator = React.forwardRef< + React.ElementRef+ , + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + + + +)); +NavigationMenuIndicator.displayName = + NavigationMenuPrimitive.Indicator.displayName; + +export { + navigationMenuTriggerStyle, + NavigationMenu, + NavigationMenuList, + NavigationMenuItem, + NavigationMenuContent, + NavigationMenuTrigger, + NavigationMenuLink, + NavigationMenuIndicator, + NavigationMenuViewport, +}; diff --git a/src/components/ui/sheet.tsx b/src/components/ui/sheet.tsx new file mode 100644 index 000000000..34e5dcaf3 --- /dev/null +++ b/src/components/ui/sheet.tsx @@ -0,0 +1,138 @@ +import * as React from "react" +import * as SheetPrimitive from "@radix-ui/react-dialog" +import { cva, type VariantProps } from "class-variance-authority" +import { X } from "lucide-react" + +import { cn } from "@/lib/utils" + +const Sheet = SheetPrimitive.Root + +const SheetTrigger = SheetPrimitive.Trigger + +const SheetClose = SheetPrimitive.Close + +const SheetPortal = SheetPrimitive.Portal + +const SheetOverlay = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) +SheetOverlay.displayName = SheetPrimitive.Overlay.displayName + +const sheetVariants = cva( + "fixed z-50 gap-4 bg-background p-6 shadow-lg transition ease-in-out data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:duration-300 data-[state=open]:duration-500", + { + variants: { + side: { + top: "inset-x-0 top-0 border-b data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top", + bottom: + "inset-x-0 bottom-0 border-t data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom", + left: "inset-y-0 left-0 h-full w-3/4 border-r data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left sm:max-w-sm", + right: + "inset-y-0 right-0 h-full w-3/4 border-l data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right sm:max-w-sm", + }, + }, + defaultVariants: { + side: "right", + }, + } +) + +interface SheetContentProps + extends React.ComponentPropsWithoutRef , + VariantProps {} + +const SheetContent = React.forwardRef< + React.ElementRef , + SheetContentProps +>(({ side = "right", className, children, ...props }, ref) => ( + + +)) +SheetContent.displayName = SheetPrimitive.Content.displayName + +const SheetHeader = ({ + className, + ...props +}: React.HTMLAttributes+ + {children} + ++ ++ Close + ) => ( + +) +SheetHeader.displayName = "SheetHeader" + +const SheetFooter = ({ + className, + ...props +}: React.HTMLAttributes ) => ( + +) +SheetFooter.displayName = "SheetFooter" + +const SheetTitle = React.forwardRef< + React.ElementRef , + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) +SheetTitle.displayName = SheetPrimitive.Title.displayName + +const SheetDescription = React.forwardRef< + React.ElementRef , + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) +SheetDescription.displayName = SheetPrimitive.Description.displayName + +export { + Sheet, + SheetPortal, + SheetOverlay, + SheetTrigger, + SheetClose, + SheetContent, + SheetHeader, + SheetFooter, + SheetTitle, + SheetDescription, +} diff --git a/src/hooks/use-mobile.ts b/src/hooks/use-mobile.ts new file mode 100644 index 000000000..48fab93c0 --- /dev/null +++ b/src/hooks/use-mobile.ts @@ -0,0 +1,21 @@ +import * as React from "react"; + +const MOBILE_BREAKPOINT = 768; + +export function useIsMobile() { + const [isMobile, setIsMobile] = React.useState ( + undefined + ); + + React.useEffect(() => { + const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`); + const onChange = () => { + setIsMobile(window.innerWidth < MOBILE_BREAKPOINT); + }; + mql.addEventListener("change", onChange); + setIsMobile(window.innerWidth < MOBILE_BREAKPOINT); + return () => mql.removeEventListener("change", onChange); + }, []); + + return !!isMobile; +} diff --git a/src/index.css b/src/index.css new file mode 100644 index 000000000..e7983099b --- /dev/null +++ b/src/index.css @@ -0,0 +1,66 @@ +html { + scroll-behavior: smooth; +} + +/* HeroCards background shadow */ +.shadow { + position: absolute; + background: hsl(var(--primary) / 0%); + border-radius: 24px; + rotate: 35deg; + z-index: -1; + width: 260px; + top: 200px; + height: 400px; + filter: blur(150px); + will-change: transform; + animation: shadow-slide infinite 4s linear alternate; +} + +@keyframes shadow-slide { + from { + background: hsl(var(--primary) / 20%); + right: 460px; + } + to { + background: hsl(var(--primary) / 80%); + right: 160px; + } +} + +@media (max-width: 1024px) { + .shadow { + top: 70px; + } + + @keyframes shadow-slide { + from { + background: hsl(var(--primary) / 20%); + right: 460px; + } + to { + background: hsl(var(--primary) / 50%); + right: 160px; + } + } +} + +@media (max-width: 768px) { + .shadow { + top: 70px; + width: 100px; + height: 350px; + filter: blur(60px); + } + + @keyframes shadow-slide { + from { + background: hsl(var(--primary) / 20%); + right: 280px; + } + to { + background: hsl(var(--primary) / 30%); + right: 100px; + } + } +} diff --git a/src/lib/utils.ts b/src/lib/utils.ts new file mode 100644 index 000000000..ec79801fe --- /dev/null +++ b/src/lib/utils.ts @@ -0,0 +1,6 @@ +import { type ClassValue, clsx } from "clsx" +import { twMerge } from "tailwind-merge" + +export function cn(...inputs: ClassValue[]) { + return twMerge(clsx(inputs)) +} diff --git a/src/main.tsx b/src/main.tsx new file mode 100644 index 000000000..0fea90b8d --- /dev/null +++ b/src/main.tsx @@ -0,0 +1,13 @@ +import React from "react"; +import ReactDOM from "react-dom/client"; +import App from "./App.tsx"; +import { ThemeProvider } from "@/components/theme-provider.tsx"; +import "./index.css"; + +ReactDOM.createRoot(document.getElementById("root")!).render( + + +); diff --git a/src/vite-env.d.ts b/src/vite-env.d.ts new file mode 100644 index 000000000..11f02fe2a --- /dev/null +++ b/src/vite-env.d.ts @@ -0,0 +1 @@ +///+ ++ diff --git a/tailwind.config.js b/tailwind.config.js new file mode 100644 index 000000000..913ac1579 --- /dev/null +++ b/tailwind.config.js @@ -0,0 +1,76 @@ +/** @type {import('tailwindcss').Config} */ +module.exports = { + darkMode: ["class"], + content: [ + "./pages/**/*.{ts,tsx}", + "./components/**/*.{ts,tsx}", + "./app/**/*.{ts,tsx}", + "./src/**/*.{ts,tsx}", + ], + theme: { + container: { + center: true, + padding: "1.5rem", + screens: { + "2xl": "1400px", + }, + }, + extend: { + colors: { + border: "hsl(var(--border))", + input: "hsl(var(--input))", + ring: "hsl(var(--ring))", + background: "hsl(var(--background))", + foreground: "hsl(var(--foreground))", + primary: { + DEFAULT: "hsl(var(--primary))", + foreground: "hsl(var(--primary-foreground))", + }, + secondary: { + DEFAULT: "hsl(var(--secondary))", + foreground: "hsl(var(--secondary-foreground))", + }, + destructive: { + DEFAULT: "hsl(var(--destructive))", + foreground: "hsl(var(--destructive-foreground))", + }, + muted: { + DEFAULT: "hsl(var(--muted))", + foreground: "hsl(var(--muted-foreground))", + }, + accent: { + DEFAULT: "hsl(var(--accent))", + foreground: "hsl(var(--accent-foreground))", + }, + popover: { + DEFAULT: "hsl(var(--popover))", + foreground: "hsl(var(--popover-foreground))", + }, + card: { + DEFAULT: "hsl(var(--card))", + foreground: "hsl(var(--card-foreground))", + }, + }, + borderRadius: { + lg: "var(--radius)", + md: "calc(var(--radius) - 2px)", + sm: "calc(var(--radius) - 4px)", + }, + keyframes: { + "accordion-down": { + from: { height: 0 }, + to: { height: "var(--radix-accordion-content-height)" }, + }, + "accordion-up": { + from: { height: "var(--radix-accordion-content-height)" }, + to: { height: 0 }, + }, + }, + animation: { + "accordion-down": "accordion-down 0.2s ease-out", + "accordion-up": "accordion-up 0.2s ease-out", + }, + }, + }, + plugins: [require("tailwindcss-animate")], +}; diff --git a/tsconfig.json b/tsconfig.json index e06a4454a..4a83aa704 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,28 +1,30 @@ { "compilerOptions": { - "target": "es5", - "lib": ["dom", "dom.iterable", "esnext"], - "allowJs": true, + "target": "ES2020", + "useDefineForClassFields": true, + "lib": ["ES2020", "DOM", "DOM.Iterable"], + "module": "ESNext", "skipLibCheck": true, - "strict": true, - "forceConsistentCasingInFileNames": true, - "noEmit": true, - "esModuleInterop": true, - "module": "esnext", - "moduleResolution": "node", + + /* Bundler mode */ + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, "resolveJsonModule": true, "isolatedModules": true, - "jsx": "preserve", - "incremental": true, - "plugins": [ - { - "name": "next" - } - ], + "noEmit": true, + "jsx": "react-jsx", + + /* Linting */ + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true, + + "baseUrl": ".", "paths": { - "@/*": ["./*"] + "@/*": ["./src/*"] } }, - "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"], - "exclude": ["node_modules"] + "include": ["src"], + "references": [{ "path": "./tsconfig.node.json" }] } diff --git a/tsconfig.node.json b/tsconfig.node.json new file mode 100644 index 000000000..42872c59f --- /dev/null +++ b/tsconfig.node.json @@ -0,0 +1,10 @@ +{ + "compilerOptions": { + "composite": true, + "skipLibCheck": true, + "module": "ESNext", + "moduleResolution": "bundler", + "allowSyntheticDefaultImports": true + }, + "include": ["vite.config.ts"] +} diff --git a/utils/useMasonry.tsx b/utils/useMasonry.tsx deleted file mode 100644 index b0f9bc280..000000000 --- a/utils/useMasonry.tsx +++ /dev/null @@ -1,67 +0,0 @@ -import { useEffect, useState, useRef } from "react"; - -const useMasonry = () => { - const masonryContainer = useRef (null); - const [items, setItems] = useState ([]); - - useEffect(() => { - if (masonryContainer.current) { - const masonryItem = Array.from(masonryContainer.current.children); - setItems(masonryItem); - } - }, []); - - useEffect(() => { - const handleMasonry = () => { - if (!items || items.length < 1) return; - let gapSize = 0; - if (masonryContainer.current) { - gapSize = parseInt( - window - .getComputedStyle(masonryContainer.current) - .getPropertyValue("grid-row-gap"), - ); - } - items.forEach((el) => { - if (!(el instanceof HTMLElement)) return; - let previous = el.previousSibling; - while (previous) { - if (previous.nodeType === 1) { - el.style.marginTop = "0"; - if ( - previous instanceof HTMLElement && - elementLeft(previous) === elementLeft(el) - ) { - el.style.marginTop = - -(elementTop(el) - elementBottom(previous) - gapSize) + "px"; - break; - } - } - previous = previous.previousSibling; - } - }); - }; - - handleMasonry(); - window.addEventListener("resize", handleMasonry); - return () => { - window.removeEventListener("resize", handleMasonry); - }; - }, [items]); - - const elementLeft = (el: HTMLElement) => { - return el.getBoundingClientRect().left; - }; - - const elementTop = (el: HTMLElement) => { - return el.getBoundingClientRect().top + window.scrollY; - }; - - const elementBottom = (el: HTMLElement) => { - return el.getBoundingClientRect().bottom + window.scrollY; - }; - - return masonryContainer; -}; - -export default useMasonry; diff --git a/utils/useMousePosition.tsx b/utils/useMousePosition.tsx deleted file mode 100644 index b3f827d82..000000000 --- a/utils/useMousePosition.tsx +++ /dev/null @@ -1,27 +0,0 @@ -import { useState, useEffect } from "react"; - -interface MousePosition { - x: number; - y: number; -} - -export default function useMousePosition(): MousePosition { - const [mousePosition, setMousePosition] = useState ({ - x: 0, - y: 0, - }); - - useEffect(() => { - const handleMouseMove = (event: MouseEvent) => { - setMousePosition({ x: event.clientX, y: event.clientY }); - }; - - window.addEventListener("mousemove", handleMouseMove); - - return () => { - window.removeEventListener("mousemove", handleMouseMove); - }; - }, []); - - return mousePosition; -} diff --git a/vite.config.ts b/vite.config.ts new file mode 100644 index 000000000..cf45b55db --- /dev/null +++ b/vite.config.ts @@ -0,0 +1,12 @@ +import path from "path"; +import react from "@vitejs/plugin-react"; +import { defineConfig } from "vite"; + +export default defineConfig({ + plugins: [react()], + resolve: { + alias: { + "@": path.resolve(__dirname, "./src"), + }, + }, +});