From 4cc54161d15c14e449446c2b5671ec10367e83b2 Mon Sep 17 00:00:00 2001 From: Lewin Bobda <116130662+Lewin-B@users.noreply.github.com> Date: Thu, 8 May 2025 10:01:36 -0400 Subject: [PATCH 01/15] Added send From email addres functionality --- apps/blade/src/app/emailTest/page.tsx | 14 ++++++++-- packages/api/src/routers/email.ts | 39 +++++++++++++++++++-------- packages/api/src/utils.ts | 6 +++-- 3 files changed, 44 insertions(+), 15 deletions(-) diff --git a/apps/blade/src/app/emailTest/page.tsx b/apps/blade/src/app/emailTest/page.tsx index aa6999d0c..431725785 100644 --- a/apps/blade/src/app/emailTest/page.tsx +++ b/apps/blade/src/app/emailTest/page.tsx @@ -1,5 +1,15 @@ -import Email from "../_components/email"; +import { api } from "~/trpc/server"; export default function EmailPage() { - return ; + api.email.sendEmail({ + from: "donotreply@knighthacks.org", + to: "lwbobda@gmail.com", + subject: "test", + body: "test", + }); + return ( + <> + + + ); } diff --git a/packages/api/src/routers/email.ts b/packages/api/src/routers/email.ts index dcfecadf4..f50dfd50f 100644 --- a/packages/api/src/routers/email.ts +++ b/packages/api/src/routers/email.ts @@ -11,43 +11,60 @@ export const emailRouter = { to: z.string().email(), subject: z.string().min(1), body: z.string().min(1), + from: z.string().min(1), }), ) .mutation(async ({ input }) => { + const alias = input.from; + try { + await gmail.users.settings.sendAs.create({ + userId: "me", + requestBody: { + sendAsEmail: alias, + displayName: "KnightHacks", + treatAsAlias: true, + isDefault: false, + }, + }); + } catch (err: any) { + if (err.code !== 409) { + console.error("Error creating sendAs alias:", err); + throw new Error(`Could not add alias: ${err.message || err}`); + } + } + try { - // write email const rawMessage = [ + `From: ${alias}`, `To: ${input.to}`, - "MIME-Version: 1.0", // needed for proper email formatting - "Content-Type: text/plain; charset=utf-8", // specify content type + "MIME-Version: 1.0", + "Content-Type: text/plain; charset=utf-8", `Subject: ${input.subject}`, - "", // empty line between headers and body + "", input.body, ].join("\n"); - // encode message properly for Gmail API const encodedMessage = Buffer.from(rawMessage) .toString("base64") .replace(/\+/g, "-") .replace(/\//g, "_") .replace(/=+$/, ""); - // send email const response = await gmail.users.messages.send({ userId: "me", - requestBody: { - raw: encodedMessage, - }, + requestBody: { raw: encodedMessage }, }); return { success: true, messageId: response.data.id }; } catch (error) { console.error("Error sending email:", { error: error instanceof Error ? error.message : error, - input: input, + input, }); throw new Error( - `Failed to send email: ${error instanceof Error ? error.message : "Unknown error"}`, + `Failed to send email: ${ + error instanceof Error ? error.message : "Unknown error" + }`, ); } }), diff --git a/packages/api/src/utils.ts b/packages/api/src/utils.ts index 3b0238a3a..b0abbf0e4 100644 --- a/packages/api/src/utils.ts +++ b/packages/api/src/utils.ts @@ -61,13 +61,15 @@ const GOOGLE_PRIVATE_KEY = Buffer.from(env.GOOGLE_PRIVATE_KEY_B64, "base64") .replace(/\\n/g, "\n"); const gapiCalendar = "https://www.googleapis.com/auth/calendar"; -const gapiGmail = "https://www.googleapis.com/auth/gmail.send"; +const gapiGmailSend = "https://www.googleapis.com/auth/gmail.send"; +const gapiGmailSettingsSharing = + "https://www.googleapis.com/auth/gmail.settings.sharing"; const auth = new google.auth.JWT( env.GOOGLE_CLIENT_EMAIL, undefined, GOOGLE_PRIVATE_KEY, - [gapiCalendar, gapiGmail], + [gapiCalendar, gapiGmailSend, gapiGmailSettingsSharing], GOOGLE_PERSONIFY_EMAIL as string, ); From 615dac6838c8a9cea1f98befb06086881ae81cc1 Mon Sep 17 00:00:00 2001 From: Lewin Bobda <116130662+Lewin-B@users.noreply.github.com> Date: Thu, 8 May 2025 15:25:56 -0400 Subject: [PATCH 02/15] Email package creation --- apps/react-email-starter/bun.lockb | Bin 0 -> 84280 bytes .../emails/acceptance-email.tsx | 0 .../emails/notion-magic-link.tsx | 149 ++++++++++++++++++ .../emails/static/notion-logo.png | Bin 0 -> 1929 bytes apps/react-email-starter/package.json | 20 +++ apps/react-email-starter/readme.md | 27 ++++ apps/react-email-starter/tsconfig.json | 12 ++ 7 files changed, 208 insertions(+) create mode 100755 apps/react-email-starter/bun.lockb create mode 100644 apps/react-email-starter/emails/acceptance-email.tsx create mode 100644 apps/react-email-starter/emails/notion-magic-link.tsx create mode 100644 apps/react-email-starter/emails/static/notion-logo.png create mode 100644 apps/react-email-starter/package.json create mode 100644 apps/react-email-starter/readme.md create mode 100644 apps/react-email-starter/tsconfig.json diff --git a/apps/react-email-starter/bun.lockb b/apps/react-email-starter/bun.lockb new file mode 100755 index 0000000000000000000000000000000000000000..b482960b7ebfa1130864a38b6a9550f8242e3d88 GIT binary patch literal 84280 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 O!Z9xPL74vs|M@?3c8Hw- literal 0 HcmV?d00001 diff --git a/apps/react-email-starter/emails/acceptance-email.tsx b/apps/react-email-starter/emails/acceptance-email.tsx new file mode 100644 index 000000000..e69de29bb diff --git a/apps/react-email-starter/emails/notion-magic-link.tsx b/apps/react-email-starter/emails/notion-magic-link.tsx new file mode 100644 index 000000000..3442f4f03 --- /dev/null +++ b/apps/react-email-starter/emails/notion-magic-link.tsx @@ -0,0 +1,149 @@ +import { + Body, + Container, + Head, + Heading, + Html, + Img, + Link, + Preview, + Text, +} from '@react-email/components'; + +interface NotionMagicLinkEmailProps { + loginCode?: string; +} + +const baseUrl = process.env.VERCEL_URL + ? `https://${process.env.VERCEL_URL}` + : ''; + +export const NotionMagicLinkEmail = ({ + loginCode, +}: NotionMagicLinkEmailProps) => ( + + + Log in with this magic link + + + Login + + Click here to log in with this magic link + + + Or, copy and paste this temporary login code: + + {loginCode} + + If you didn't try to login, you can safely ignore this email. + + + Hint: You can set a permanent password in Settings & members → My + account. + + Notion's Logo + + + Notion.so + + , the all-in-one-workspace +
+ for your notes, tasks, wikis, and databases. +
+
+ + +); + +NotionMagicLinkEmail.PreviewProps = { + loginCode: 'sparo-ndigo-amurt-secan', +} as NotionMagicLinkEmailProps; + +export default NotionMagicLinkEmail; + +const main = { + backgroundColor: '#ffffff', +}; + +const container = { + paddingLeft: '12px', + paddingRight: '12px', + margin: '0 auto', +}; + +const h1 = { + color: '#333', + fontFamily: + "-apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif", + fontSize: '24px', + fontWeight: 'bold', + margin: '40px 0', + padding: '0', +}; + +const link = { + color: '#2754C5', + fontFamily: + "-apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif", + fontSize: '14px', + textDecoration: 'underline', +}; + +const text = { + color: '#333', + fontFamily: + "-apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif", + fontSize: '14px', + margin: '24px 0', +}; + +const footer = { + color: '#898989', + fontFamily: + "-apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif", + fontSize: '12px', + lineHeight: '22px', + marginTop: '12px', + marginBottom: '24px', +}; + +const code = { + display: 'inline-block', + padding: '16px 4.5%', + width: '90.5%', + backgroundColor: '#f4f4f4', + borderRadius: '5px', + border: '1px solid #eee', + color: '#333', +}; diff --git a/apps/react-email-starter/emails/static/notion-logo.png b/apps/react-email-starter/emails/static/notion-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..57cddee9b737055f418bd95f126093204bb09e3f GIT binary patch literal 1929 zcmV;42X^?0P)hmX z+?la#F$UPeFocWj!A>VJ$i_%Io=9I`NJdtFt_Ztqq}li>{sjSA#zgT>*+a+D*CSz2 zo8V-a`#^*c37{HJHteNjyeeMl8k=m)vT=x&0Fx5W>np}R=|co~%ElBkF@n#MA)j8jkR*I=aKiH3a_e>Qx-l3VxCQ+!437_eqQi@6wMPggqDTZ zoy#VO2l>R6Nca{N36lspxU)HLi9xpdA`-h6#mXv6!d<4Z+S>)3@ijQBc( zl?wuJIA8W;F;ka~GgQj43+34L61A1E!zY}#aN_(nC_lL`H)B*|6d7l%F?fjm1*Vdq zjR>Gh!UI7xm}rc1sqxO3F_Yz>Z34)$@T=r|{R-X*G@JXIHYK1;7EmR)lfVCQhWUsa zAVB0e#}ovKqUCK95FlLRZIxqnrPQA37pC$mXKk7=g8*hw4RI)_X6hJ^>e}X_iUR>^ z8ZXrt(|4redIw!2fNF>?8jo_WCZP}@75bNIj0tqG3i#BL1mfxg>|p%33GfqBA2$I2 z5C8xH01yBG0f0#R05M>q9IH#$sw^Dk{rv|JARKTb@`o~}grA29(7^Lfy|*y`S^lDi zl*m{Kqg}(e2LX;JnS0mw6QR`<{Cz#&So51lx5UQh*RufuJ{vl*5Ei)(FNEGU!I;qN zdAr=|t6)N`0&G5ge9PRv=O7hQ^j9{%vXebJ%|DY#-E5256_M_&+2CkSONrY?N;DH6Cl!q#`-z;_2q^-rq!1}*{bLK-ol5}-;1T4|nkscX zH32xmmMnsI8$bfev4}wmKmffIfB+F=)O8sE0jf#C5Cnh}fB+F=BKiX$0Hgo}h!uk_ zN&yHExfH}ifEA=5ZUX#Zbj!Z(L4Ytp^~&1Lyyh-80_?N#NZ1<~fB@lP$!L~Zb)qVW zwF;OKeNOOF5Gw(A1fY7_CTJ;$xesv1Xdb!J6 z1!x7+^#+El+9uE-fQM2rC;BYcPZxmzHL+rJPvrz91t37=QUC&cfR}_+ZQ@{_E&>5Q zW69{A$bA9D@mjV!=yf;881q%=$Jn+5%RhxJM z0>s@LfCL0A1#=J}Zmd{`_b>thB9{UXpc;5d_y_{TjU{X0#f>0<|55+~L=4I{F$fSS zDBHwd5?~7(YkLE;E)!q}8*9P)0-LT9AccM7=?$Efgt!&#TS*G$T_ixB=m2`GLXVhb z1lV`2++pu~4B1$n6SNeZY08~0^}qQ_-REq)vG>gzmhAmLebY7k+*uyGNPrN^9q!Tp z)c8Ga_=OJT8$2LOM2BUTBJCpt6CwRaerCd*A$1a&sa2^hu+ zdebFgbA|;ZK42gc>#5B$uq+>#iOg~UJ6H+nL&eat#`neXsP6nz>>Zrv18ald=|_@` z4Ne%dUy!g(+P=sh;b-x-X4U<4cp3TC<8V6C81q8onLZ=U#ua4*kn@32MHchPd$LeT zs9sj&RhJsi>^io#B0%m5F9v$VBf(=yB3a~BV~uA5dhj03#ufo`k4rGmUgAi4zgRlS zpKSb%`SuQ6a{q1XWE3}zFzCj#ZMNn404Cqoub#`xlB5RZ9z4L z>V2wrl6qfk1ju^?_l%}(T4ao^#yh?8z8DE0Cx;VFa@cwA0|4jvPk;dc68z~C(;byw P00000NkvXXu0mjfWmII? literal 0 HcmV?d00001 diff --git a/apps/react-email-starter/package.json b/apps/react-email-starter/package.json new file mode 100644 index 000000000..566b88ba3 --- /dev/null +++ b/apps/react-email-starter/package.json @@ -0,0 +1,20 @@ +{ + "name": "react-email-starter", + "version": "1.1.0", + "private": true, + "scripts": { + "build": "email build", + "dev": "email dev", + "export": "email export" + }, + "dependencies": { + "@react-email/components": "0.0.38", + "react-dom": "^19.0.0", + "react": "^19.0.0" + }, + "devDependencies": { + "@types/react": "^19.0.1", + "@types/react-dom": "^19.0.1", + "react-email": "4.0.11" + } +} diff --git a/apps/react-email-starter/readme.md b/apps/react-email-starter/readme.md new file mode 100644 index 000000000..fc875bfa3 --- /dev/null +++ b/apps/react-email-starter/readme.md @@ -0,0 +1,27 @@ +# React Email Starter + +A live preview right in your browser so you don't need to keep sending real emails during development. + +## Getting Started + +First, install the dependencies: + +```sh +npm install +# or +yarn +``` + +Then, run the development server: + +```sh +npm run dev +# or +yarn dev +``` + +Open [localhost:3000](http://localhost:3000) with your browser to see the result. + +## License + +MIT License diff --git a/apps/react-email-starter/tsconfig.json b/apps/react-email-starter/tsconfig.json new file mode 100644 index 000000000..3cbef65b8 --- /dev/null +++ b/apps/react-email-starter/tsconfig.json @@ -0,0 +1,12 @@ +{ + "compilerOptions": { + "composite": false, + "jsx": "react-jsx", + "skipLibCheck": true, + "strict": true, + "noEmit": true, + "strictNullChecks": true + }, + "include": ["**/*.ts", "**/*.tsx"], + "exclude": ["node_modules", ".react-email"] +} From cb39a7a99dba22a5f4202b011dafb73e1e7a12d7 Mon Sep 17 00:00:00 2001 From: Lewin Bobda <116130662+Lewin-B@users.noreply.github.com> Date: Thu, 8 May 2025 23:52:54 -0400 Subject: [PATCH 03/15] Email templates starter --- .../bun.lockb | Bin .../emails/acceptance-email.tsx | 68 ++++ .../emails/assets/congrats-box.tsx | 34 ++ apps/email-templates/emails/assets/hero.tsx | 308 ++++++++++++++++++ .../email-templates/emails/assets/kh-logo.tsx | 167 ++++++++++ .../emails/notion-magic-link.tsx | 0 .../emails/static/notion-logo.png | Bin .../package.json | 0 .../readme.md | 0 .../tsconfig.json | 0 .../emails/acceptance-email.tsx | 0 11 files changed, 577 insertions(+) rename apps/{react-email-starter => email-templates}/bun.lockb (100%) create mode 100644 apps/email-templates/emails/acceptance-email.tsx create mode 100644 apps/email-templates/emails/assets/congrats-box.tsx create mode 100644 apps/email-templates/emails/assets/hero.tsx create mode 100644 apps/email-templates/emails/assets/kh-logo.tsx rename apps/{react-email-starter => email-templates}/emails/notion-magic-link.tsx (100%) rename apps/{react-email-starter => email-templates}/emails/static/notion-logo.png (100%) rename apps/{react-email-starter => email-templates}/package.json (100%) rename apps/{react-email-starter => email-templates}/readme.md (100%) rename apps/{react-email-starter => email-templates}/tsconfig.json (100%) delete mode 100644 apps/react-email-starter/emails/acceptance-email.tsx diff --git a/apps/react-email-starter/bun.lockb b/apps/email-templates/bun.lockb similarity index 100% rename from apps/react-email-starter/bun.lockb rename to apps/email-templates/bun.lockb diff --git a/apps/email-templates/emails/acceptance-email.tsx b/apps/email-templates/emails/acceptance-email.tsx new file mode 100644 index 000000000..45269b123 --- /dev/null +++ b/apps/email-templates/emails/acceptance-email.tsx @@ -0,0 +1,68 @@ +import { + Body, + Container, + Head, + Html, + Img, + Preview, + Section, + Tailwind, + Text, +} from "@react-email/components"; + +import CongratsBox from "./assets/congrats-box"; +import Hero from "./assets/hero"; +import KhLogo from "./assets/kh-logo"; + +interface AcceptanceEmailProps { + name: string; +} + +export const AcceptanceEmail = ({ name }: AcceptanceEmailProps) => { + const previewText = `Congrats ${name}! Your spot at KnightHacks is secured 🎉`; + + return ( + + + + + {previewText} + + +
+ +
+ +
+
+ +
+ + Congrats,  + + Katherina + + +
+ +
+ +
+
+ +
+ + ); +}; + +export default AcceptanceEmail; diff --git a/apps/email-templates/emails/assets/congrats-box.tsx b/apps/email-templates/emails/assets/congrats-box.tsx new file mode 100644 index 000000000..61629c6f9 --- /dev/null +++ b/apps/email-templates/emails/assets/congrats-box.tsx @@ -0,0 +1,34 @@ +import { SVGProps } from "react"; + +const SvgIcon = (props: SVGProps) => ( + + + + + + + + + +); + +export default SvgIcon; diff --git a/apps/email-templates/emails/assets/hero.tsx b/apps/email-templates/emails/assets/hero.tsx new file mode 100644 index 000000000..2068e22da --- /dev/null +++ b/apps/email-templates/emails/assets/hero.tsx @@ -0,0 +1,308 @@ +import { SVGProps } from "react"; + +const Hero = (props: SVGProps) => ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +); +export default Hero; diff --git a/apps/email-templates/emails/assets/kh-logo.tsx b/apps/email-templates/emails/assets/kh-logo.tsx new file mode 100644 index 000000000..fa2d080d1 --- /dev/null +++ b/apps/email-templates/emails/assets/kh-logo.tsx @@ -0,0 +1,167 @@ +import { SVGProps } from "react"; + +const KhLogo = (props: SVGProps) => ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +); + +export default KhLogo; diff --git a/apps/react-email-starter/emails/notion-magic-link.tsx b/apps/email-templates/emails/notion-magic-link.tsx similarity index 100% rename from apps/react-email-starter/emails/notion-magic-link.tsx rename to apps/email-templates/emails/notion-magic-link.tsx diff --git a/apps/react-email-starter/emails/static/notion-logo.png b/apps/email-templates/emails/static/notion-logo.png similarity index 100% rename from apps/react-email-starter/emails/static/notion-logo.png rename to apps/email-templates/emails/static/notion-logo.png diff --git a/apps/react-email-starter/package.json b/apps/email-templates/package.json similarity index 100% rename from apps/react-email-starter/package.json rename to apps/email-templates/package.json diff --git a/apps/react-email-starter/readme.md b/apps/email-templates/readme.md similarity index 100% rename from apps/react-email-starter/readme.md rename to apps/email-templates/readme.md diff --git a/apps/react-email-starter/tsconfig.json b/apps/email-templates/tsconfig.json similarity index 100% rename from apps/react-email-starter/tsconfig.json rename to apps/email-templates/tsconfig.json diff --git a/apps/react-email-starter/emails/acceptance-email.tsx b/apps/react-email-starter/emails/acceptance-email.tsx deleted file mode 100644 index e69de29bb..000000000 From a03281ba98536c095edfa41c745f01d334f63181 Mon Sep 17 00:00:00 2001 From: Lewin Bobda <116130662+Lewin-B@users.noreply.github.com> Date: Fri, 9 May 2025 13:34:33 -0400 Subject: [PATCH 04/15] Finish confirmation section --- .../emails/acceptance-email.tsx | 29 ++++++++++++++---- .../emails/assets/confirm-box.tsx | 29 ++++++++++++++++++ .../emails/assets/confirm-button.tsx | 30 +++++++++++++++++++ .../emails/assets/next-steps-divider.tsx | 27 +++++++++++++++++ 4 files changed, 109 insertions(+), 6 deletions(-) create mode 100644 apps/email-templates/emails/assets/confirm-box.tsx create mode 100644 apps/email-templates/emails/assets/confirm-button.tsx create mode 100644 apps/email-templates/emails/assets/next-steps-divider.tsx diff --git a/apps/email-templates/emails/acceptance-email.tsx b/apps/email-templates/emails/acceptance-email.tsx index 45269b123..f6e8b9556 100644 --- a/apps/email-templates/emails/acceptance-email.tsx +++ b/apps/email-templates/emails/acceptance-email.tsx @@ -3,16 +3,17 @@ import { Container, Head, Html, - Img, Preview, Section, Tailwind, Text, } from "@react-email/components"; +import ConfirmBox from "./assets/confirm-box"; +import ConfirmButton from "./assets/confirm-button"; import CongratsBox from "./assets/congrats-box"; import Hero from "./assets/hero"; -import KhLogo from "./assets/kh-logo"; +import NextSteps from "./assets/next-steps-divider"; interface AcceptanceEmailProps { name: string; @@ -39,10 +40,6 @@ export const AcceptanceEmail = ({ name }: AcceptanceEmailProps) => { {previewText} -
- -
-
@@ -58,6 +55,26 @@ export const AcceptanceEmail = ({ name }: AcceptanceEmailProps) => {
+ +
+ +
+ +
+ + 1. CONFIRM YOUR SPOT! + + + (Spots are filling up quickly—confirm ASAP!) + + +
+ + + + +
+
diff --git a/apps/email-templates/emails/assets/confirm-box.tsx b/apps/email-templates/emails/assets/confirm-box.tsx new file mode 100644 index 000000000..3c1f20789 --- /dev/null +++ b/apps/email-templates/emails/assets/confirm-box.tsx @@ -0,0 +1,29 @@ +import { SVGProps } from "react"; + +const ConfirmButton = (props: SVGProps) => ( + + + + + +); + +export default ConfirmButton; diff --git a/apps/email-templates/emails/assets/confirm-button.tsx b/apps/email-templates/emails/assets/confirm-button.tsx new file mode 100644 index 000000000..5f7d8aeca --- /dev/null +++ b/apps/email-templates/emails/assets/confirm-button.tsx @@ -0,0 +1,30 @@ +import { SVGProps } from "react"; + +const ConfirmButton = (props: SVGProps) => ( + + + + + + +); + +export default ConfirmButton; diff --git a/apps/email-templates/emails/assets/next-steps-divider.tsx b/apps/email-templates/emails/assets/next-steps-divider.tsx new file mode 100644 index 000000000..c49226509 --- /dev/null +++ b/apps/email-templates/emails/assets/next-steps-divider.tsx @@ -0,0 +1,27 @@ +import * as React from "react"; +import { SVGProps } from "react"; + +const NextSteps = (props: SVGProps) => ( + + + + + +); + +export default NextSteps; From 7a42cec037d718d89592d3ddc11ddc1400ee23bb Mon Sep 17 00:00:00 2001 From: Lewin Bobda <116130662+Lewin-B@users.noreply.github.com> Date: Fri, 9 May 2025 14:34:36 -0400 Subject: [PATCH 05/15] Discord and graphics section --- .../emails/acceptance-email.tsx | 50 +++++++++++++++++-- .../emails/assets/discord-box.tsx | 29 +++++++++++ .../emails/assets/discord-button.tsx | 26 ++++++++++ .../emails/assets/graphics-box.tsx | 29 +++++++++++ .../emails/assets/graphics-button.tsx | 31 ++++++++++++ .../emails/assets/guide-button.tsx | 46 +++++++++++++++++ .../emails/assets/resources-divider.tsx | 26 ++++++++++ .../emails/assets/website-button.tsx | 46 +++++++++++++++++ 8 files changed, 280 insertions(+), 3 deletions(-) create mode 100644 apps/email-templates/emails/assets/discord-box.tsx create mode 100644 apps/email-templates/emails/assets/discord-button.tsx create mode 100644 apps/email-templates/emails/assets/graphics-box.tsx create mode 100644 apps/email-templates/emails/assets/graphics-button.tsx create mode 100644 apps/email-templates/emails/assets/guide-button.tsx create mode 100644 apps/email-templates/emails/assets/resources-divider.tsx create mode 100644 apps/email-templates/emails/assets/website-button.tsx diff --git a/apps/email-templates/emails/acceptance-email.tsx b/apps/email-templates/emails/acceptance-email.tsx index f6e8b9556..7dd40d905 100644 --- a/apps/email-templates/emails/acceptance-email.tsx +++ b/apps/email-templates/emails/acceptance-email.tsx @@ -12,8 +12,13 @@ import { import ConfirmBox from "./assets/confirm-box"; import ConfirmButton from "./assets/confirm-button"; import CongratsBox from "./assets/congrats-box"; +import DiscordBox from "./assets/discord-box"; +import DiscordButton from "./assets/discord-button"; +import GraphicsBox from "./assets/graphics-box"; +import GraphicsButton from "./assets/graphics-button"; import Hero from "./assets/hero"; import NextSteps from "./assets/next-steps-divider"; +import ResourcesDivider from "./assets/resources-divider"; interface AcceptanceEmailProps { name: string; @@ -60,12 +65,13 @@ export const AcceptanceEmail = ({ name }: AcceptanceEmailProps) => {
-
+
- 1. CONFIRM YOUR SPOT! + 1. CONFIRM YOUR{" "} + SPOT! - (Spots are filling up quickly—confirm ASAP!) + (Spots are filling up quickly confirm ASAP!)
@@ -75,6 +81,44 @@ export const AcceptanceEmail = ({ name }: AcceptanceEmailProps) => {
+ +
+ + 2. JOIN OUR{" "} + DISCORD! + + + (Required by October 23rd) + + +
+ + + + +
+
+ +
+ + 3. SPREAD THE +
+ + EXCITEMENT! + +
+ +
+ + + + +
+
+ +
+ +
diff --git a/apps/email-templates/emails/assets/discord-box.tsx b/apps/email-templates/emails/assets/discord-box.tsx new file mode 100644 index 000000000..2b3fc7bd9 --- /dev/null +++ b/apps/email-templates/emails/assets/discord-box.tsx @@ -0,0 +1,29 @@ +import { SVGProps } from "react"; + +const DiscordBox = (props: SVGProps) => ( + + + + + +); + +export default DiscordBox; diff --git a/apps/email-templates/emails/assets/discord-button.tsx b/apps/email-templates/emails/assets/discord-button.tsx new file mode 100644 index 000000000..6970c7d4b --- /dev/null +++ b/apps/email-templates/emails/assets/discord-button.tsx @@ -0,0 +1,26 @@ +import { SVGProps } from "react"; + +const DiscordButton = (props: SVGProps) => ( + + + + + +); + +export default DiscordButton; diff --git a/apps/email-templates/emails/assets/graphics-box.tsx b/apps/email-templates/emails/assets/graphics-box.tsx new file mode 100644 index 000000000..7b22f9613 --- /dev/null +++ b/apps/email-templates/emails/assets/graphics-box.tsx @@ -0,0 +1,29 @@ +import { SVGProps } from "react"; + +const GraphicsBox = (props: SVGProps) => ( + + + + + +); + +export default GraphicsBox; diff --git a/apps/email-templates/emails/assets/graphics-button.tsx b/apps/email-templates/emails/assets/graphics-button.tsx new file mode 100644 index 000000000..22057beb6 --- /dev/null +++ b/apps/email-templates/emails/assets/graphics-button.tsx @@ -0,0 +1,31 @@ +import { SVGProps } from "react"; + +const GraphicsButton = (props: SVGProps) => ( + + + + + + + + + + + + +); + +export default GraphicsButton; diff --git a/apps/email-templates/emails/assets/guide-button.tsx b/apps/email-templates/emails/assets/guide-button.tsx new file mode 100644 index 000000000..48dc22fd7 --- /dev/null +++ b/apps/email-templates/emails/assets/guide-button.tsx @@ -0,0 +1,46 @@ +import { SVGProps } from "react"; + +const GuideButton = (props: SVGProps) => ( + + + + + + + + + +); + +export default GuideButton; diff --git a/apps/email-templates/emails/assets/resources-divider.tsx b/apps/email-templates/emails/assets/resources-divider.tsx new file mode 100644 index 000000000..1702450d6 --- /dev/null +++ b/apps/email-templates/emails/assets/resources-divider.tsx @@ -0,0 +1,26 @@ +import { SVGProps } from "react"; + +const ResourcesDivider = (props: SVGProps) => ( + + + + + +); + +export default ResourcesDivider; diff --git a/apps/email-templates/emails/assets/website-button.tsx b/apps/email-templates/emails/assets/website-button.tsx new file mode 100644 index 000000000..73ee86b77 --- /dev/null +++ b/apps/email-templates/emails/assets/website-button.tsx @@ -0,0 +1,46 @@ +import { SVGProps } from "react"; + +const WebsiteButton = (props: SVGProps) => ( + + + + + + + + + +); + +export default WebsiteButton; From 1980c9e410a29abaf17bcb78dedf1365f29f1a41 Mon Sep 17 00:00:00 2001 From: Lewin Bobda <116130662+Lewin-B@users.noreply.github.com> Date: Fri, 9 May 2025 15:06:08 -0400 Subject: [PATCH 06/15] Contact Section --- .../emails/acceptance-email.tsx | 18 ++++++++++ .../email-templates/emails/assets/contact.tsx | 35 +++++++++++++++++++ .../emails/assets/guide-button.tsx | 1 - packages/api/src/routers/email.ts | 6 ++-- 4 files changed, 56 insertions(+), 4 deletions(-) create mode 100644 apps/email-templates/emails/assets/contact.tsx diff --git a/apps/email-templates/emails/acceptance-email.tsx b/apps/email-templates/emails/acceptance-email.tsx index 7dd40d905..ebc61dcf2 100644 --- a/apps/email-templates/emails/acceptance-email.tsx +++ b/apps/email-templates/emails/acceptance-email.tsx @@ -12,13 +12,16 @@ import { import ConfirmBox from "./assets/confirm-box"; import ConfirmButton from "./assets/confirm-button"; import CongratsBox from "./assets/congrats-box"; +import Contact from "./assets/contact"; import DiscordBox from "./assets/discord-box"; import DiscordButton from "./assets/discord-button"; import GraphicsBox from "./assets/graphics-box"; import GraphicsButton from "./assets/graphics-button"; +import GuideButton from "./assets/guide-button"; import Hero from "./assets/hero"; import NextSteps from "./assets/next-steps-divider"; import ResourcesDivider from "./assets/resources-divider"; +import WebsiteButton from "./assets/website-button"; interface AcceptanceEmailProps { name: string; @@ -119,6 +122,21 @@ export const AcceptanceEmail = ({ name }: AcceptanceEmailProps) => {
+ +
+ + +
+ +
+
diff --git a/apps/email-templates/emails/assets/contact.tsx b/apps/email-templates/emails/assets/contact.tsx new file mode 100644 index 000000000..9bb1bbf4c --- /dev/null +++ b/apps/email-templates/emails/assets/contact.tsx @@ -0,0 +1,35 @@ +import { SVGProps } from "react"; + +const Contact = (props: SVGProps) => ( + + + + + + + + + +); +export default Contact; diff --git a/apps/email-templates/emails/assets/guide-button.tsx b/apps/email-templates/emails/assets/guide-button.tsx index 48dc22fd7..5c54bd91f 100644 --- a/apps/email-templates/emails/assets/guide-button.tsx +++ b/apps/email-templates/emails/assets/guide-button.tsx @@ -7,7 +7,6 @@ const GuideButton = (props: SVGProps) => ( height="98" fill="none" viewBox="0 0 237 98" - {...props} > Date: Fri, 9 May 2025 15:08:14 -0400 Subject: [PATCH 07/15] remove examples --- .../emails/notion-magic-link.tsx | 149 ------------------ .../emails/static/notion-logo.png | Bin 1929 -> 0 bytes 2 files changed, 149 deletions(-) delete mode 100644 apps/email-templates/emails/notion-magic-link.tsx delete mode 100644 apps/email-templates/emails/static/notion-logo.png diff --git a/apps/email-templates/emails/notion-magic-link.tsx b/apps/email-templates/emails/notion-magic-link.tsx deleted file mode 100644 index 3442f4f03..000000000 --- a/apps/email-templates/emails/notion-magic-link.tsx +++ /dev/null @@ -1,149 +0,0 @@ -import { - Body, - Container, - Head, - Heading, - Html, - Img, - Link, - Preview, - Text, -} from '@react-email/components'; - -interface NotionMagicLinkEmailProps { - loginCode?: string; -} - -const baseUrl = process.env.VERCEL_URL - ? `https://${process.env.VERCEL_URL}` - : ''; - -export const NotionMagicLinkEmail = ({ - loginCode, -}: NotionMagicLinkEmailProps) => ( - - - Log in with this magic link - - - Login - - Click here to log in with this magic link - - - Or, copy and paste this temporary login code: - - {loginCode} - - If you didn't try to login, you can safely ignore this email. - - - Hint: You can set a permanent password in Settings & members → My - account. - - Notion's Logo - - - Notion.so - - , the all-in-one-workspace -
- for your notes, tasks, wikis, and databases. -
-
- - -); - -NotionMagicLinkEmail.PreviewProps = { - loginCode: 'sparo-ndigo-amurt-secan', -} as NotionMagicLinkEmailProps; - -export default NotionMagicLinkEmail; - -const main = { - backgroundColor: '#ffffff', -}; - -const container = { - paddingLeft: '12px', - paddingRight: '12px', - margin: '0 auto', -}; - -const h1 = { - color: '#333', - fontFamily: - "-apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif", - fontSize: '24px', - fontWeight: 'bold', - margin: '40px 0', - padding: '0', -}; - -const link = { - color: '#2754C5', - fontFamily: - "-apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif", - fontSize: '14px', - textDecoration: 'underline', -}; - -const text = { - color: '#333', - fontFamily: - "-apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif", - fontSize: '14px', - margin: '24px 0', -}; - -const footer = { - color: '#898989', - fontFamily: - "-apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif", - fontSize: '12px', - lineHeight: '22px', - marginTop: '12px', - marginBottom: '24px', -}; - -const code = { - display: 'inline-block', - padding: '16px 4.5%', - width: '90.5%', - backgroundColor: '#f4f4f4', - borderRadius: '5px', - border: '1px solid #eee', - color: '#333', -}; diff --git a/apps/email-templates/emails/static/notion-logo.png b/apps/email-templates/emails/static/notion-logo.png deleted file mode 100644 index 57cddee9b737055f418bd95f126093204bb09e3f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1929 zcmV;42X^?0P)hmX z+?la#F$UPeFocWj!A>VJ$i_%Io=9I`NJdtFt_Ztqq}li>{sjSA#zgT>*+a+D*CSz2 zo8V-a`#^*c37{HJHteNjyeeMl8k=m)vT=x&0Fx5W>np}R=|co~%ElBkF@n#MA)j8jkR*I=aKiH3a_e>Qx-l3VxCQ+!437_eqQi@6wMPggqDTZ zoy#VO2l>R6Nca{N36lspxU)HLi9xpdA`-h6#mXv6!d<4Z+S>)3@ijQBc( zl?wuJIA8W;F;ka~GgQj43+34L61A1E!zY}#aN_(nC_lL`H)B*|6d7l%F?fjm1*Vdq zjR>Gh!UI7xm}rc1sqxO3F_Yz>Z34)$@T=r|{R-X*G@JXIHYK1;7EmR)lfVCQhWUsa zAVB0e#}ovKqUCK95FlLRZIxqnrPQA37pC$mXKk7=g8*hw4RI)_X6hJ^>e}X_iUR>^ z8ZXrt(|4redIw!2fNF>?8jo_WCZP}@75bNIj0tqG3i#BL1mfxg>|p%33GfqBA2$I2 z5C8xH01yBG0f0#R05M>q9IH#$sw^Dk{rv|JARKTb@`o~}grA29(7^Lfy|*y`S^lDi zl*m{Kqg}(e2LX;JnS0mw6QR`<{Cz#&So51lx5UQh*RufuJ{vl*5Ei)(FNEGU!I;qN zdAr=|t6)N`0&G5ge9PRv=O7hQ^j9{%vXebJ%|DY#-E5256_M_&+2CkSONrY?N;DH6Cl!q#`-z;_2q^-rq!1}*{bLK-ol5}-;1T4|nkscX zH32xmmMnsI8$bfev4}wmKmffIfB+F=)O8sE0jf#C5Cnh}fB+F=BKiX$0Hgo}h!uk_ zN&yHExfH}ifEA=5ZUX#Zbj!Z(L4Ytp^~&1Lyyh-80_?N#NZ1<~fB@lP$!L~Zb)qVW zwF;OKeNOOF5Gw(A1fY7_CTJ;$xesv1Xdb!J6 z1!x7+^#+El+9uE-fQM2rC;BYcPZxmzHL+rJPvrz91t37=QUC&cfR}_+ZQ@{_E&>5Q zW69{A$bA9D@mjV!=yf;881q%=$Jn+5%RhxJM z0>s@LfCL0A1#=J}Zmd{`_b>thB9{UXpc;5d_y_{TjU{X0#f>0<|55+~L=4I{F$fSS zDBHwd5?~7(YkLE;E)!q}8*9P)0-LT9AccM7=?$Efgt!&#TS*G$T_ixB=m2`GLXVhb z1lV`2++pu~4B1$n6SNeZY08~0^}qQ_-REq)vG>gzmhAmLebY7k+*uyGNPrN^9q!Tp z)c8Ga_=OJT8$2LOM2BUTBJCpt6CwRaerCd*A$1a&sa2^hu+ zdebFgbA|;ZK42gc>#5B$uq+>#iOg~UJ6H+nL&eat#`neXsP6nz>>Zrv18ald=|_@` z4Ne%dUy!g(+P=sh;b-x-X4U<4cp3TC<8V6C81q8onLZ=U#ua4*kn@32MHchPd$LeT zs9sj&RhJsi>^io#B0%m5F9v$VBf(=yB3a~BV~uA5dhj03#ufo`k4rGmUgAi4zgRlS zpKSb%`SuQ6a{q1XWE3}zFzCj#ZMNn404Cqoub#`xlB5RZ9z4L z>V2wrl6qfk1ju^?_l%}(T4ao^#yh?8z8DE0Cx;VFa@cwA0|4jvPk;dc68z~C(;byw P00000NkvXXu0mjfWmII? From 3b89e81b85e9330f76611d9b854e1e0af3d00aa0 Mon Sep 17 00:00:00 2001 From: Lewin Bobda <116130662+Lewin-B@users.noreply.github.com> Date: Fri, 9 May 2025 21:25:07 -0400 Subject: [PATCH 08/15] Fix guide button --- .../emails/acceptance-email.tsx | 4 +- .../emails/assets/guide-button.tsx | 44 +++++++++---------- 2 files changed, 24 insertions(+), 24 deletions(-) diff --git a/apps/email-templates/emails/acceptance-email.tsx b/apps/email-templates/emails/acceptance-email.tsx index ebc61dcf2..6c3eae41b 100644 --- a/apps/email-templates/emails/acceptance-email.tsx +++ b/apps/email-templates/emails/acceptance-email.tsx @@ -124,8 +124,8 @@ export const AcceptanceEmail = ({ name }: AcceptanceEmailProps) => {
-
- +
+ diff --git a/apps/email-templates/emails/assets/guide-button.tsx b/apps/email-templates/emails/assets/guide-button.tsx index 5c54bd91f..72b98efbc 100644 --- a/apps/email-templates/emails/assets/guide-button.tsx +++ b/apps/email-templates/emails/assets/guide-button.tsx @@ -3,42 +3,42 @@ import { SVGProps } from "react"; const GuideButton = (props: SVGProps) => ( + strokeWidth={4} + rx={25} + /> - - + + + d="M43.28 56.625c-.208-.25-.265-.578-.172-.984.021-.125.178-.636.47-1.532.197-.573.338-1.067.421-1.484.02-.104.036-.156.047-.156-.323 0-1.172.182-2.547.547-1.406.375-2.172.635-2.297.78-.114.136-.317.631-.61 1.485-.332.99-.536 1.563-.609 1.719-.333.719-.713 1.078-1.14 1.078a.917.917 0 0 1-.672-.281.856.856 0 0 1-.266-.625c0-.094.01-.182.032-.266.052-.218.349-1.198.89-2.937.823-2.646 1.235-4.959 1.235-6.938 0-.802-.063-1.583-.188-2.343.208-.678.797-1.016 1.766-1.016.864 0 1.349.318 1.453.953.02.156.031.349.031.578 0 1.24-.302 3-.906 5.281-.094.23-.172.485-.235.766l-.015.11c.094 0 .37-.074.828-.22.469-.156.766-.244.89-.265.667-.104 1.553-.26 2.657-.469.125-.02.192-.062.203-.125.354-1.635.531-3.146.531-4.531 0-.73-.052-1.432-.156-2.11.114-.374.375-.676.781-.906.354-.187.75-.28 1.188-.28.76 0 1.172.312 1.234.937.01.156.016.333.016.53 0 1.293-.193 2.865-.578 4.72-.136.625-.662 2.406-1.579 5.343-.333 1.073-.53 1.688-.593 1.844-.365.781-.808 1.172-1.328 1.172a.976.976 0 0 1-.782-.375Zm17.004-.984a2.247 2.247 0 0 1-.484 1c-.271.323-.594.484-.97.484-.332 0-.577-.214-.733-.64a36.416 36.416 0 0 1-.235-1.032c-.041-.146-.11-.4-.203-.766l-.078-.093-.11-.032c-2.78.49-4.484.912-5.109 1.266-.156.094-.443.453-.86 1.078-.416.625-.895.938-1.437.938a.947.947 0 0 1-.718-.297.988.988 0 0 1-.25-.938c.052-.24.24-.552.562-.937.26-.292.516-.583.766-.875 2.635-3.23 4.458-6.068 5.468-8.516.178-.448.391-1.245.641-2.39.115-.573.64-.86 1.578-.86.875 0 1.313.26 1.313.782 0 .062-.01.135-.032.218-.02.084-.104.323-.25.719.042 1.281.089 2.568.141 3.86.063 1.468.177 2.75.344 3.843.552.136.828.438.828.906 0 .334-.177.6-.531.797.135.344.276.73.422 1.157l-.063.328Zm-5.828-2.547c.948-.219 1.812-.38 2.594-.485l.062-.078.031-.11a36.354 36.354 0 0 0-.39-2.343l.031-.031c-.042 0-.13.088-.266.266-.687.958-1.375 1.885-2.062 2.78Zm8.379 4.14c-.386-.375-.578-.87-.578-1.484 0-1.677 1.302-3.99 3.906-6.938.937-1.072 2.057-2.213 3.36-3.421 1.916-1.792 3.187-2.688 3.812-2.688.583 0 .875.453.875 1.36 0 .104-.042.557-.125 1.359-.084.802-.146 1.297-.188 1.484a4.13 4.13 0 0 1-.515 1.407c-.365.583-.776.874-1.235.874-.396 0-.661-.312-.797-.937-.01-.073-.026-.198-.047-.375 0-.094-.02-.14-.062-.14a.384.384 0 0 0-.172.062c-1.208.677-2.406 1.614-3.594 2.812-1.395 1.396-2.213 2.636-2.453 3.72a2.235 2.235 0 0 0-.047.437c0 .614.459.922 1.375.922 1.26 0 2.97-.636 5.125-1.907.282-.177.771-.474 1.47-.89.155-.063.348-.094.577-.094.615 0 .922.26.922.781 0 .094-.01.193-.031.297-.104.49-.417.875-.938 1.156-1.187.657-2.578 1.276-4.172 1.86-1.875.677-3.322 1.015-4.343 1.015-.948 0-1.657-.224-2.125-.672Zm20.94-3.672c.803.99 1.204 1.808 1.204 2.454 0 .729-.364 1.093-1.094 1.093-.312 0-.583-.172-.812-.515-1.5-2.292-2.62-3.438-3.36-3.438-.437 0-.843.37-1.218 1.11-.23.53-.578 1.323-1.047 2.375-.438.948-.896 1.422-1.375 1.422a.756.756 0 0 1-.61-.282.957.957 0 0 1-.25-.656c0-.073.01-.146.032-.219.135-.666.427-1.661.875-2.984s.745-2.328.89-3.016c.313-1.458.47-2.833.47-4.125 0-.718-.048-1.411-.142-2.078.084-.344.318-.61.704-.797a2.344 2.344 0 0 1 1.062-.234c.865 0 1.344.318 1.438.953.01.073.015.167.015.281 0 .417-.12 1.344-.36 2.782-.239 1.427-.416 2.27-.53 2.53a.592.592 0 0 1-.125.188c-.052.042-.068.063-.047.063.114 0 .349-.146.703-.438 2.323-1.916 4.4-4.36 6.234-7.328.198-.156.422-.234.672-.234.417 0 .802.172 1.156.515.365.334.547.709.547 1.125 0 .084-.01.167-.031.25-.073.386-.844 1.355-2.313 2.907-1.291 1.385-2.244 2.328-2.859 2.828-.427.354-.844.718-1.25 1.093.104.553.578 1.344 1.422 2.376Zm7.74-2.406 2.812-.656c1.073-.23 2.026-.344 2.859-.344.896 0 1.344.313 1.344.938 0 .083-.01.177-.032.281-.073.354-.317.604-.734.75-.26.02-.693.068-1.297.14-.604.074-1.599.277-2.984.61-.76.177-1.318.318-1.672.422-.906.27-1.406.495-1.5.672a.825.825 0 0 0-.063.36c0 .5.318.89.954 1.171.5.219 1.03.328 1.593.328.73 0 1.563-.114 2.5-.344a85.843 85.843 0 0 0 2.438-.718c.375-.105.672-.157.89-.157.25 0 .474.073.672.22.22.176.302.39.25.64-.073.354-.505.692-1.297 1.015-2.74 1.115-5.026 1.672-6.859 1.672-1.208 0-2.187-.317-2.937-.953-.74-.625-1.11-1.479-1.11-2.562 0-.323.037-.662.11-1.016.406-1.896 1.64-3.953 3.703-6.172 2.03-2.177 4.411-3.797 7.14-4.86.636-.01 1.151.277 1.547.86.365.521.547 1.12.547 1.797 0 .438-.088.823-.266 1.156-.208.396-.515.594-.921.594-.24 0-.537-.104-.891-.313a8.17 8.17 0 0 1-.516-.312c-.604 0-1.74.646-3.406 1.938-1.656 1.28-2.614 2.229-2.875 2.843Zm17.081 5.282c-.667-.407-1.255-.693-1.766-.86-1.312-.417-2.151-.625-2.515-.625-.042 0-.084.063-.125.188a8.344 8.344 0 0 0-.141.468c-.312.855-.51 1.375-.594 1.563-.312.667-.677 1-1.093 1a.85.85 0 0 1-.641-.281.856.856 0 0 1-.219-.907c.177-.614.443-1.515.797-2.703.781-2.635 1.172-4.932 1.172-6.89 0-.875-.068-1.72-.203-2.532.094-.375.344-.666.75-.875.344-.166.734-.25 1.172-.25.146 0 .281.016.406.047 2.031-.75 3.63-1.125 4.797-1.125.864 0 1.562.203 2.094.61.562.437.843 1.036.843 1.797 0 .229-.026.468-.078.718-.239 1.115-.88 2.344-1.922 3.688a17.403 17.403 0 0 1-2.953 2.984c-.437.313-.88.646-1.328 1l.203.031c.188.021.37.068.547.141.76.333 1.297.594 1.609.781.688.438 1.032.89 1.032 1.36 0 .291-.094.541-.282.75a.88.88 0 0 1-.687.297c-.167 0-.458-.126-.875-.376Zm-3.813-3.626c-.031-.02-.036-.062-.015-.124.844-.313 1.901-1.094 3.172-2.344 1.396-1.344 2.093-2.401 2.093-3.172 0-.594-.515-.89-1.546-.89-.271 0-.657.025-1.157.077-.604.063-.916.136-.937.22-.063.312-.136.786-.219 1.421a17.09 17.09 0 0 1-.234 1.438 37 37 0 0 1-.875 3.265l-.047.172c-.021.052-.052.078-.094.078s-.104-.047-.187-.14a.81.81 0 0 1-.235 0c-.021-.01-.031-.032-.031-.063l.312.063Zm11.426-5.312a7.923 7.923 0 0 1-.484.766c-.386.541-.797.812-1.235.812-.521 0-.781-.27-.781-.812 0-.198.047-.38.141-.547.479-.813.953-1.625 1.422-2.438.531-.948.937-1.797 1.218-2.547.125-.312.271-.526.438-.64.177-.125.432-.188.765-.188.688 0 1.105.323 1.25.969-.166.333-1.078 1.875-2.734 4.625Zm11.207 8.438c-2.01 1.468-3.906 2.203-5.688 2.203-1.322 0-2.27-.412-2.843-1.235-.115-1.468.208-2.203.968-2.203.125 0 .323.104.594.313.386.28.677.474.875.578a2.74 2.74 0 0 0 1.266.312c1.021 0 2.213-.4 3.578-1.203 1.51-.885 2.266-1.802 2.266-2.75 0-.458-.245-.828-.735-1.11-.416-.239-.88-.359-1.39-.359-.428 0-1.079.073-1.954.22-.958.155-1.572.306-1.843.452-.698.375-1.188.563-1.469.563-.365 0-.667-.162-.906-.485a1.78 1.78 0 0 1-.328-1.015c0-.271.072-.75.218-1.438.448-2.104 1.469-3.708 3.063-4.812 1.531-1.063 3.328-1.594 5.39-1.594h.079c.562 0 1.099.27 1.609.813.51.53.766 1.088.766 1.671 0 1.094-.922 1.698-2.766 1.813a1.262 1.262 0 0 1-.438-.438 25.64 25.64 0 0 0-.312-.547c-1.531.22-2.604.568-3.219 1.047-.823.657-1.281 1.188-1.375 1.594-.01.083-.026.125-.047.125.032 0 .141-.036.328-.11 1.084-.406 2.381-.609 3.891-.609 1.125 0 2.047.167 2.766.5.948.448 1.422 1.141 1.422 2.078 0 .22-.021.448-.063.688-.385 1.76-1.62 3.406-3.703 4.938Zm22.992-1.063c-.709.688-1.406 1.193-2.094 1.516-2.354 1.125-4.255 1.687-5.703 1.687-.927 0-1.635-.26-2.125-.781-.469-.49-.703-1.146-.703-1.969 0-1.698 1.109-4.083 3.328-7.156a35.882 35.882 0 0 1 2.5-3.078c1.479-1.625 2.557-2.438 3.234-2.438h.11c.489.084.802.5.937 1.25.011.198.042.688.094 1.469.073 1.23.073 2.02 0 2.375a2.367 2.367 0 0 1-.391.906c-.239.334-.51.5-.812.5-.375 0-.714-.291-1.016-.875a4.495 4.495 0 0 1-.172-.406c-.041-.115-.073-.172-.093-.172-.021 0-.079.031-.172.094-.99.667-1.974 1.599-2.953 2.797-1.084 1.333-1.735 2.505-1.954 3.515-.052.24-.078.459-.078.657 0 .812.521 1.218 1.563 1.218.594 0 1.411-.25 2.453-.75.906-.448 1.646-.9 2.219-1.359.125-.094.14-.151.047-.172-.042-.02-.204-.031-.485-.031-.906 0-1.547.042-1.922.125-.458.114-.724.172-.797.172-.364 0-.546-.183-.546-.547 0-.406.192-.86.578-1.36a4.219 4.219 0 0 1 1.109-1.015l1.594-.313c.635-.114 1.172-.172 1.609-.172.552 0 1.042.167 1.469.5.427.334.641.76.641 1.282 0 .718-.49 1.562-1.469 2.531Zm10.332.016c-.146.114-.438.323-.875.625-2.094 1.468-3.615 2.203-4.563 2.203-.708 0-1.213-.323-1.515-.969-.219-.469-.329-1.182-.329-2.14 0-1.688.349-4.188 1.047-7.5.209-.98.417-1.652.625-2.016.386-.657.969-.985 1.75-.985.709 0 1.12.292 1.235.875a106.075 106.075 0 0 1-1.485 5.75 31.15 31.15 0 0 0-.453 1.828c-.166.803-.25 1.407-.25 1.813 0 .635.209.953.625.953.125 0 .24-.01.344-.031.427-.073 1.156-.458 2.187-1.156a27.24 27.24 0 0 0 2.172-1.61c.282-.302.495-.807.641-1.515.312-1.47.469-2.855.469-4.157 0-.968-.089-1.906-.266-2.812.094-.354.349-.64.766-.86a2.61 2.61 0 0 1 1.156-.265c.792 0 1.229.281 1.312.844.021.145.032.338.032.578 0 1.177-.157 2.505-.469 3.984-.167.813-.443 1.787-.828 2.922-.323.969-.646 1.932-.969 2.89-.104.334-.302.928-.594 1.782-.364.75-.776 1.125-1.234 1.125a.874.874 0 0 1-.641-.266.96.96 0 0 1-.25-.656c0-.156.047-.36.141-.61.073-.197.146-.4.219-.609v-.015Zm6.097 1.562c.073-.323.198-.734.375-1.234.24-.636.386-1.042.438-1.219.833-2.75 1.25-5.182 1.25-7.297 0-.854-.068-1.672-.203-2.453.093-.344.328-.61.703-.797a2.379 2.379 0 0 1 1.078-.234c.875 0 1.359.317 1.453.953.01.114.016.26.016.437 0 1.094-.167 2.433-.5 4.016-.188.865-.48 1.88-.875 3.047l-1.032 2.969c-.104.354-.317.984-.64 1.89-.375.74-.776 1.11-1.203 1.11a.799.799 0 0 1-.704-.375 1.028 1.028 0 0 1-.156-.813Zm15.348-3.703a24.234 24.234 0 0 1-7.313 5.063c-.239.177-.599.265-1.078.265-.531 0-.797-.24-.797-.719 0-.083.011-.172.031-.265.125-.594.375-1.469.75-2.625.386-1.157.641-2.032.766-2.625.302-1.407.453-2.714.453-3.922 0-.281-.01-.552-.031-.813-.531-.125-.797-.463-.797-1.015 0-.698.646-1.26 1.938-1.688 1.145-.385 2.291-.765 3.437-1.14 1.323-.396 2.505-.594 3.547-.594 1 0 1.812.255 2.437.766.625.51.938 1.208.938 2.093 0 .271-.031.552-.094.844-.385 1.833-1.781 3.958-4.187 6.375Zm-6.375 2.719c.01 0 .083-.026.218-.078 1.24-.563 2.631-1.61 4.172-3.141 1.927-1.938 2.891-3.484 2.891-4.64 0-.907-.646-1.36-1.938-1.36-1.166 0-2.187.161-3.062.484-.146.052-.245.198-.297.438-.156 1.604-.312 2.786-.469 3.547-.271 1.24-.703 2.76-1.297 4.562-.02.073-.062.183-.125.328a.244.244 0 0 1-.218.125.28.28 0 0 1-.219-.109.252.252 0 0 1-.063-.234l.407.078Zm15.128-4.313 2.813-.656c1.073-.23 2.026-.344 2.859-.344.896 0 1.344.313 1.344.938 0 .083-.01.177-.031.281-.073.354-.318.604-.735.75-.26.02-.692.068-1.296.14-.605.074-1.599.277-2.985.61-.76.177-1.318.318-1.672.422-.906.27-1.406.495-1.5.672a.835.835 0 0 0-.062.36c0 .5.318.89.953 1.171.5.219 1.031.328 1.594.328.729 0 1.562-.114 2.5-.344a85.813 85.813 0 0 0 2.437-.718c.375-.105.672-.157.891-.157.25 0 .474.073.672.22.218.176.302.39.25.64-.073.354-.506.692-1.297 1.015-2.74 1.115-5.026 1.672-6.86 1.672-1.208 0-2.187-.317-2.937-.953-.74-.625-1.109-1.479-1.109-2.562 0-.323.036-.662.109-1.016.406-1.896 1.641-3.953 3.703-6.172 2.031-2.177 4.412-3.797 7.141-4.86.635-.01 1.151.277 1.547.86.364.521.546 1.12.546 1.797 0 .438-.088.823-.265 1.156-.209.396-.516.594-.922.594-.24 0-.537-.104-.891-.313-.354-.208-.526-.312-.515-.312-.604 0-1.74.646-3.407 1.938-1.656 1.28-2.614 2.229-2.875 2.843Z" + /> + d="m43.108 55.64 1.95.45.013-.06.01-.06-1.973-.33Zm.47-1.53-1.891-.654-.006.017-.006.017 1.902.62Zm.421-1.485-1.961-.392 1.961.392Zm-2.5.39-.513-1.933-.002.001.515 1.933Zm-2.297.782-1.518-1.302-.009.01 1.527 1.292Zm-.61 1.484-1.892-.646-.003.008 1.896.638ZM37.984 57l-1.812-.846-.002.005 1.814.841Zm-2.046-.094 1.94.485.003-.01.002-.011-1.945-.464Zm.89-2.937 1.91.594-1.91-.594Zm1.047-9.282-1.912-.588-.138.45.077.463 1.973-.325Zm3.219-.062 1.982-.264-.004-.03-.005-.03-1.973.324Zm-.875 5.86 1.85.757.05-.12.033-.126-1.933-.512Zm-.235.765-1.952-.434-.017.075-.01.076 1.98.283Zm-.015.11-1.98-.283-.326 2.282h2.306v-2Zm.828-.22.606 1.907.013-.005.013-.004-.632-1.897Zm.89-.265-.308-1.976-.01.002-.01.001.329 1.973Zm2.657-.469-.329-1.972-.021.003-.021.004.37 1.965Zm.203-.125-1.955-.423-.01.047-.008.047 1.973.33Zm.375-6.64-1.913-.585-.133.437.07.452 1.976-.304Zm.781-.907-.936-1.767-.023.012-.024.013.983 1.742Zm2.422.657 1.996-.133-.003-.033-.003-.033-1.99.199Zm-.562 5.25 1.954.423.002-.008.002-.008-1.958-.407Zm-1.579 5.343-1.909-.595v.002l1.91.593Zm-.593 1.844 1.812.846.024-.051.02-.052-1.856-.743Zm-.573-.483c.125.15.204.33.234.502.028.157.005.25.006.243l-3.897-.9c-.191.829-.134 1.854.584 2.715l3.073-2.56Zm.264.624c-.014.088-.029.128-.005.042.016-.056.04-.142.078-.262.073-.238.18-.577.325-1.02l-3.804-1.239c-.147.452-.263.817-.346 1.089-.062.203-.156.51-.193.733l3.945.657Zm.387-1.207c.216-.625.385-1.211.492-1.745l-3.922-.784c-.06.3-.171.703-.351 1.223l3.78 1.306Zm.492-1.745c.008-.037.002-.001-.018.066-.006.02-.041.14-.116.29a1.994 1.994 0 0 1-1.78 1.096v-4a2.005 2.005 0 0 0-1.798 1.115 2.175 2.175 0 0 0-.137.35c-.036.118-.06.231-.073.299l3.922.784Zm-1.914-2.548c-.403 0-.893.094-1.299.181-.469.1-1.059.246-1.76.432l1.025 3.867a35.843 35.843 0 0 1 1.575-.388c.19-.041.33-.067.425-.082.114-.018.108-.01.034-.01v-4Zm-3.062.614c-.718.192-1.312.364-1.758.516-.22.074-.442.157-.64.247a3.288 3.288 0 0 0-.35.185 2.317 2.317 0 0 0-.552.464L40.72 55.1c-.185.216-.367.325-.398.344-.057.035-.09.048-.077.043.024-.011.105-.045.268-.1.32-.109.812-.254 1.5-.438l-1.03-3.865Zm-3.309 1.422c-.186.22-.306.45-.361.56a6.436 6.436 0 0 0-.2.445c-.124.301-.262.682-.414 1.125l3.785 1.293c.14-.411.25-.706.33-.899.04-.098.063-.147.07-.163a1.487 1.487 0 0 1-.157.223l-3.053-2.584Zm-.978 2.138c-.165.49-.295.87-.392 1.142-.048.136-.085.239-.113.312-.033.087-.037.091-.02.057l3.624 1.692c.133-.286.381-1.004.692-1.926l-3.79-1.277Zm-.528 1.516c-.11.235-.158.256-.095.196a.956.956 0 0 1 .267-.171c.146-.065.319-.106.502-.106v4c1.712 0 2.581-1.43 2.955-2.237l-3.629-1.682Zm.674-.08a1.072 1.072 0 0 1 .742.304l-2.828 2.828a2.916 2.916 0 0 0 2.086.867v-4Zm.742.304a1.152 1.152 0 0 1 .32.79h-4c0 .795.319 1.505.852 2.038l2.828-2.828Zm.32.789a.91.91 0 0 1-.028.22l-3.88-.97a3.092 3.092 0 0 0-.092.75h4Zm-.023.198.06-.211c.04-.14.097-.33.17-.57.146-.483.355-1.158.625-2.026l-3.82-1.189c-.525 1.689-.853 2.764-.926 3.069l3.891.927Zm.855-2.807c.86-2.768 1.325-5.289 1.325-7.532h-4c0 1.715-.36 3.82-1.145 6.344l3.82 1.188Zm1.325-7.532c0-.906-.071-1.796-.214-2.668l-3.947.649c.106.649.16 1.321.16 2.02h4Zm-.276-1.755a.734.734 0 0 1-.317.384c-.06.033-.087.036-.06.03.03-.007.102-.018.23-.018v-4c-.693 0-1.465.117-2.165.52a3.276 3.276 0 0 0-1.511 1.907l3.823 1.177Zm-.146.396c.222 0 .122.047-.086-.09a1.05 1.05 0 0 1-.312-.323.875.875 0 0 1-.123-.31l3.947-.648c-.131-.801-.552-1.561-1.318-2.063-.691-.454-1.466-.566-2.108-.566v4Zm-.53-.783c.006.04.014.137.014.314h4c0-.282-.012-.569-.049-.842l-3.965.528Zm.014.314c0 .975-.247 2.534-.84 4.77l3.867 1.023c.616-2.326.973-4.288.973-5.793h-4Zm-.757 4.524c-.143.35-.253.715-.336 1.09l3.905.867c.042-.188.088-.333.133-.442l-3.702-1.515Zm-.363 1.24-.012.082-.003.02v.006l-.001.001 1.98.283 1.98.283v-.007a2.846 2.846 0 0 1 .015-.102l-3.96-.566Zm1.964 2.392c.35 0 .697-.096.788-.12.184-.05.404-.115.646-.192l-1.212-3.812a10.35 10.35 0 0 1-.456.136l-.049.012a1.026 1.026 0 0 1 .147-.018c.032-.003.079-.006.136-.006v4Zm1.46-.321a17.812 17.812 0 0 1 .635-.199c.03-.007.006 0-.048.009l-.657-3.946c-.314.053-.78.203-1.194.341l1.264 3.795Zm.567-.187a91.81 91.81 0 0 0 2.719-.48l-.742-3.93a87.763 87.763 0 0 1-2.594.458l.617 3.952Zm2.677-.472c.183-.03.518-.104.864-.316.39-.24.86-.712.983-1.453l-3.946-.657a1.888 1.888 0 0 1 .866-1.297c.278-.171.516-.213.575-.222l.658 3.945Zm1.829-1.674c.378-1.747.576-3.401.576-4.955h-4c0 1.217-.156 2.584-.486 4.108l3.91.847Zm.576-4.955c0-.825-.059-1.63-.18-2.413l-3.953.608c.088.57.133 1.171.133 1.805h4Zm-.243-1.525a.605.605 0 0 1-.117.214c-.044.05-.067.057-.032.037l-1.966-3.484c-.763.43-1.418 1.107-1.71 2.064l3.825 1.17Zm-.196.277a.51.51 0 0 1 .252-.049v-4c-.733 0-1.455.16-2.124.514l1.872 3.535Zm.252-.049c.14 0-.059.034-.331-.173a1.164 1.164 0 0 1-.332-.397.86.86 0 0 1-.093-.293l3.98-.398c-.073-.737-.394-1.534-1.136-2.097-.683-.52-1.469-.642-2.088-.642v4Zm-.761-.93c.006.103.01.234.01.399h4c0-.231-.005-.454-.02-.664l-3.99.266Zm.01.399c0 1.108-.166 2.536-.536 4.312l3.917.814c.401-1.933.62-3.65.62-5.126h-4Zm-.532 4.295c-.112.516-.603 2.192-1.533 5.172l3.819 1.191c.903-2.895 1.464-4.782 1.623-5.516l-3.91-.847Zm-1.533 5.174a136.338 136.338 0 0 1-.507 1.594c-.032.096-.041.117-.034.1l3.714 1.486c.1-.251.33-.972.646-1.993l-3.82-1.187Zm-.497 1.591a1.588 1.588 0 0 1-.122.224c-.027.039-.028.031.006.001a.794.794 0 0 1 .225-.134 1.01 1.01 0 0 1 .376-.073v4c1.728 0 2.68-1.34 3.14-2.326l-3.625-1.692Zm.485.018a1.023 1.023 0 0 1 .755.345l-3.073 2.56A2.974 2.974 0 0 0 44.062 59v-4Zm16.222.64 1.955.423.005-.024.005-.024-1.965-.374Zm-.484 1-1.523-1.296-.005.005-.005.006 1.533 1.286Zm-1.703-.156-1.944.472.026.11.04.105 1.878-.687Zm-.235-1.03 1.957-.416-.015-.068-.019-.066-1.923.55Zm-.203-.767 1.937-.498-.112-.436-.288-.346-1.537 1.28Zm-.078-.093 1.536-1.28-.394-.474-.593-.17-.55 1.924Zm-.11-.032.55-1.922-.443-.127-.453.08.347 1.97Zm-5.109 1.266-.986-1.74-.021.012-.022.013 1.03 1.715Zm-3.015 1.719-1.452 1.375 1.452-1.375Zm-.25-.938 1.923.55.017-.062.014-.063-1.954-.425Zm.562-.937-1.492-1.332-.02.023-.021.024 1.533 1.285Zm.766-.875 1.518 1.302.016-.019.015-.019-1.55-1.264Zm5.468-8.516 1.85.763.005-.013.005-.014-1.86-.736Zm.641-2.39 1.954.426.004-.017.003-.017-1.96-.392Zm2.61.859-1.877-.691-.135.366.013.39 1.998-.065Zm.14 3.86-1.998.08v.004l1.998-.085Zm.344 3.843-1.977.301.201 1.323 1.3.319.476-1.943Zm.297 1.703-.976-1.746-1.526.853.64 1.626 1.862-.733Zm.422 1.157 1.964.374.1-.52-.172-.5-1.892.645Zm-5.891-2.22-1.587-1.217-3.391 4.42 5.428-1.254-.45-1.948Zm2.594-.484.264 1.983.796-.106.501-.627-1.561-1.25Zm.062-.078 1.562 1.25.25-.314.111-.386-1.923-.55Zm.031-.11 1.923.55.113-.394-.052-.407-1.984.252Zm-.39-2.343-1.414-1.414-.753.753.204 1.045 1.963-.384Zm.031-.031 1.414 1.414 3.414-3.414h-4.828v2Zm-.266.266-1.588-1.215-.019.024-.018.025 1.625 1.166Zm1.811 4.905c-.018.085-.04.113-.052.126l3.045 2.594c.468-.55.769-1.189.917-1.875l-3.91-.845Zm-.062.137a.622.622 0 0 1 .193-.14.847.847 0 0 1 .37-.09v4c1.045 0 1.904-.486 2.502-1.2l-3.065-2.57Zm.564-.23c.303 0 .629.113.881.333a1.118 1.118 0 0 1 .252.315c.008.015.01.024.01.024l-3.756 1.375c.15.41.407.9.865 1.3a2.638 2.638 0 0 0 1.748.653v-4Zm1.21.888c-.08-.325-.153-.65-.222-.975l-3.913.83c.077.363.159.725.247 1.088l3.887-.943Zm-.256-1.11c-.033-.117-.095-.348-.189-.714l-3.874.997c.094.364.167.642.217.817l3.846-1.1Zm-.59-1.496-.078-.094-3.072 2.561.078.094 3.073-2.56Zm-1.065-.736-.109-.032-1.099 3.846.11.032 1.098-3.846Zm-1.005-.078c-1.412.248-2.583.485-3.498.712-.847.21-1.674.456-2.25.783l1.971 3.48c-.008.005.076-.04.318-.12.225-.076.529-.163.923-.26.789-.196 1.86-.415 3.23-.656l-.694-3.94Zm-5.792 1.52c-.425.255-.734.642-.867.808a13.12 13.12 0 0 0-.627.876l3.328 2.219a9.34 9.34 0 0 1 .427-.601c.047-.059.064-.077.057-.07a1.508 1.508 0 0 1-.26.197l-2.058-3.429Zm-1.494 1.684c-.103.154-.147.167-.1.137a.66.66 0 0 1 .327-.09v4c1.45 0 2.47-.882 3.1-1.828l-3.327-2.22Zm.226.047c.084 0 .215.015.365.077.154.063.279.156.368.25l-2.903 2.751a2.945 2.945 0 0 0 2.17.922v-4Zm.733.327c.066.07.14.173.195.309a.992.992 0 0 1 .072.364h-4c0 .786.293 1.512.83 2.078l2.903-2.75Zm.267.673c0 .084-.01.192-.045.315l-3.847-1.1a2.851 2.851 0 0 0-.108.785h4Zm-.014.19a.97.97 0 0 1-.055.178c-.012.026-.016.03-.005.012a3.358 3.358 0 0 1 .2-.268l-3.065-2.569c-.356.425-.822 1.053-.984 1.797l3.909.85Zm.1-.03c.27-.302.533-.603.792-.905l-3.037-2.604c-.24.282-.487.563-.739.845l2.984 2.664Zm.823-.943c2.697-3.304 4.653-6.315 5.768-9.017l-3.697-1.526c-.906 2.194-2.596 4.86-5.17 8.014l3.1 2.53Zm5.78-9.044c.242-.615.484-1.556.734-2.7l-3.908-.853c-.25 1.148-.435 1.8-.547 2.082l3.72 1.47Zm.741-2.734a1.08 1.08 0 0 1-.194.427c-.112.15-.238.242-.33.292-.085.047-.13.051-.1.046.028-.006.104-.017.241-.017v-4c-.632 0-1.377.09-2.054.459a2.906 2.906 0 0 0-1.485 2.008l3.922.785Zm-.383.748c.06 0 .106.002.138.005.033.003.047.006.047.006s-.021-.004-.058-.017a.96.96 0 0 1-.165-.08 1.343 1.343 0 0 1-.476-.497 1.318 1.318 0 0 1-.173-.636h4c0-.945-.464-1.803-1.305-2.304-.678-.404-1.437-.477-2.008-.477v4Zm-.687-1.218a1.282 1.282 0 0 1 .028-.267l3.88.97c.048-.187.092-.43.092-.703h-4Zm.028-.267c.012-.046.02-.067.01-.037l-.037.107c-.036.104-.088.25-.16.443l3.754 1.382c.127-.344.26-.71.314-.925l-3.88-.97Zm-.309 1.269c.042 1.287.09 2.578.142 3.875l3.996-.161a497.575 497.575 0 0 1-.14-3.844l-3.998.13Zm.142 3.88c.064 1.519.184 2.875.365 4.06l3.954-.603c-.153-1.003-.262-2.21-.323-3.628l-3.996.17Zm1.865 5.7c.036.01-.164-.03-.379-.265a1.184 1.184 0 0 1-.316-.77h4c0-.657-.207-1.355-.73-1.928-.491-.537-1.106-.795-1.622-.921l-.953 3.884Zm-.695-1.036c0-.21.063-.45.203-.66a.91.91 0 0 1 .29-.289l1.951 3.492c.825-.46 1.556-1.316 1.556-2.543h-4Zm-.392 1.53c.122.31.252.666.39 1.07l3.785-1.293a28.78 28.78 0 0 0-.453-1.243l-3.722 1.466Zm.318.05-.063.327 3.93.749.062-.328-3.93-.749Zm-3.476.103c.9-.207 1.702-.356 2.408-.45l-.529-3.965c-.856.114-1.783.288-2.779.518l.9 3.897Zm3.705-1.183.063-.078-3.124-2.5-.062.079 3.123 2.499Zm.424-.778.032-.11-3.847-1.099-.03.11 3.845 1.099Zm.093-.911c-.091-.714-.23-1.541-.412-2.475l-3.926.767c.172.878.293 1.613.37 2.212l3.968-.504Zm-.961-.678.016-.015.008-.008.007-.008-2.828-2.828-.016.015-.008.008a.287.287 0 0 1-.007.008l2.828 2.828Zm-1.383-3.445c-.634 0-1.068.297-1.165.363-.162.11-.281.224-.347.29a4.019 4.019 0 0 0-.342.398l3.177 2.43c.049-.064.042-.049-.006 0a1.597 1.597 0 0 1-.232.19 1.954 1.954 0 0 1-1.084.33v-4.001Zm-1.89 1.1c-.676.941-1.35 1.851-2.025 2.73l3.174 2.434c.7-.913 1.401-1.858 2.1-2.833l-3.25-2.331Zm7.94 8.087-1.394 1.434.006.006.007.006 1.382-1.446Zm3.329-8.422 1.499 1.325.007-.008-1.506-1.316Zm3.36-3.421 1.36 1.466.005-.005-1.366-1.461Zm4.374 1.515-1.952-.434-.009.04-.007.04 1.968.354Zm-.515 1.407 1.696 1.06.01-.016.009-.015-1.715-1.03Zm-2.032-.063-1.98.283.01.07.016.07 1.954-.423Zm-.047-.375h-2v.117l.014.117 1.986-.234Zm-.234-.078.978 1.745.007-.005.007-.004-.992-1.736Zm-3.594 2.812 1.415 1.415.006-.007-1.42-1.408Zm-2.453 3.72-1.953-.433-.004.02-.004.02 1.961.392Zm6.453-.548 1.016 1.723.025-.015.025-.015-1.066-1.693Zm1.47-.89-.744-1.857-.146.058-.136.081 1.025 1.718Zm1.468.984 1.956.416.003-.012.002-.012-1.961-.392Zm-.938 1.156-.95-1.76-.009.005-.008.005.967 1.75Zm-4.172 1.86.68 1.88.008-.002-.688-1.878ZM64.23 55.8c.003.002.01.01.018.023a.171.171 0 0 1 .018.032c.003.008 0 .006-.002-.01a.572.572 0 0 1-.006-.096h-4c0 1.07.354 2.111 1.183 2.918l2.79-2.867Zm.028-.051c0-.35.148-.996.719-2.01.558-.991 1.437-2.19 2.686-3.603l-2.998-2.649c-1.355 1.534-2.43 2.966-3.174 4.288-.73 1.299-1.233 2.647-1.233 3.974h4Zm3.412-5.621c.882-1.01 1.95-2.1 3.214-3.272l-2.721-2.932c-1.342 1.244-2.512 2.435-3.505 3.572l3.012 2.632Zm3.219-3.277c.93-.87 1.65-1.471 2.177-1.842.264-.186.438-.285.534-.33.128-.06.01.023-.264.023v-4c-.587 0-1.098.196-1.445.36a7.747 7.747 0 0 0-1.13.677c-.744.525-1.617 1.267-2.604 2.19l2.732 2.922Zm2.447-2.149a1.288 1.288 0 0 1-1.025-.578c-.09-.138-.11-.237-.11-.238-.001-.002.01.05.01.175h4c0-.603-.086-1.4-.537-2.101-.55-.853-1.433-1.258-2.338-1.258v4Zm-1.125-.64c0-.06.003-.082-.003-.006l-.02.24c-.02.215-.05.52-.092.918l3.979.414c.075-.724.136-1.328.136-1.566h-4Zm-.115 1.152c-.04.394-.075.702-.104.929-.032.253-.048.337-.046.328l3.905.868c.072-.326.146-.956.224-1.711l-3.979-.414Zm-.166 1.337c-.055.304-.148.54-.262.731l3.43 2.059a6.128 6.128 0 0 0 .769-2.081l-3.937-.71Zm-.243.7c-.09.144-.116.137-.043.085a.788.788 0 0 1 .203-.1c.096-.033.2-.05.301-.05v4c1.45 0 2.397-.96 2.93-1.814l-3.391-2.12Zm.461-.065a1.371 1.371 0 0 1 1.028.47c.167.197.163.323.13.17l-3.91.846c.103.472.3 1.066.732 1.575.497.585 1.212.94 2.02.94v-4Zm1.183.78c-.006-.046-.02-.148-.04-.326l-3.973.468c.021.177.04.324.053.424l3.96-.566Zm-.027-.092c0-.133-.005-.507-.188-.918a2.044 2.044 0 0 0-1.874-1.223v4a1.956 1.956 0 0 1-1.78-1.152c-.163-.364-.158-.668-.158-.707h4Zm-2.062-2.14c-.594 0-1.038.254-1.164.325l1.984 3.473a1.376 1.376 0 0 1-.21.097 1.785 1.785 0 0 1-.61.104v-4Zm-1.15.317c-1.401.785-2.745 1.847-4.036 3.15l2.84 2.815c1.084-1.093 2.137-1.907 3.152-2.475l-1.956-3.49Zm-4.03 3.143c-1.483 1.483-2.628 3.056-2.992 4.701l3.906.864c.115-.521.606-1.427 1.915-2.736l-2.829-2.829Zm-3 4.74a4.231 4.231 0 0 0-.086.83h4c0 .018-.001.004.008-.045l-3.922-.784Zm-.086.83c0 .886.377 1.781 1.23 2.353.712.477 1.526.57 2.145.57v-4c-.123 0-.172-.012-.165-.01.006.001.108.024.248.118.153.102.31.264.42.483.104.21.122.39.122.487h-4Zm3.375 2.922c1.825 0 3.926-.877 6.14-2.183l-2.03-3.446c-2.097 1.236-3.413 1.63-4.11 1.63v4Zm6.19-2.213c.26-.163.731-.45 1.43-.866l-2.051-3.435c-.698.417-1.206.725-1.51.916l2.132 3.385Zm1.147-.726a.778.778 0 0 1-.161.047c-.026.004-.03.002-.004.002v-4c-.397 0-.86.052-1.32.237l1.485 3.714Zm-.165.049c.073 0-.246.022-.602-.279a1.297 1.297 0 0 1-.476-.94h4c0-.663-.211-1.496-.937-2.112-.663-.561-1.443-.67-1.985-.67v4Zm-1.078-1.219c0-.054.006-.087.008-.095l3.922.784c.043-.216.07-.447.07-.689h-4Zm.013-.12a.44.44 0 0 1 .09-.186c.038-.048.05-.04-.022 0l1.9 3.52c.934-.505 1.695-1.331 1.944-2.5l-3.912-.833Zm.05-.177c-1.078.596-2.37 1.175-3.891 1.732l1.375 3.756c1.667-.61 3.155-1.27 4.452-1.987l-1.935-3.501Zm-3.883 1.729c-1.824.658-3.003.896-3.664.896v4c1.38 0 3.097-.439 5.023-1.134l-1.359-3.762Zm-3.664.896c-.67 0-.788-.16-.744-.118l-2.763 2.892c.982.939 2.28 1.226 3.507 1.226v-4Zm18.816-2.343 1.554-1.26-.006-.007-1.548 1.267Zm-.703 3.03-1.674 1.096.005.007.005.007 1.664-1.11Zm-4.578-2.327-1.784-.905-.028.056-.025.056 1.837.793Zm-1.047 2.375 1.816.838.005-.012.006-.012-1.827-.814Zm-1.985 1.14L77 56.501l-.02-.025-.022-.023-1.495 1.328Zm-.218-.875 1.923.55.021-.075.016-.077-1.96-.398Zm1.765-6-1.955-.419-.001.004 1.956.415Zm.328-6.203-1.943-.471-.09.371.053.379 1.98-.279Zm.704-.797.874 1.799.01-.005.01-.005-.894-1.789Zm2.5.719 1.98-.283-.002-.009-1.978.292Zm-.344 3.063 1.972.33v-.002l-1.972-.328Zm-.531 2.53-1.831-.805-.004.01-.004.008 1.839.788Zm-.125.188 1.249 1.562.086-.07.079-.078-1.414-1.414Zm.656-.375 1.271 1.544.002-.001-1.273-1.543Zm6.234-7.328-1.24-1.57-.276.219-.185.3 1.701 1.051Zm1.828.281-1.393 1.435.022.021.022.02 1.35-1.476Zm.516 1.375-1.94-.485-.014.057-.011.057 1.965.371Zm-2.313 2.907-1.452-1.375-.005.005-.005.006 1.462 1.364Zm-2.859 2.828-1.262-1.552-.007.006-.008.006 1.277 1.54Zm-1.25 1.093-1.356-1.47-.815.752.206 1.09 1.965-.371Zm-.132 3.635c.341.42.547.744.66.977.118.24.097.298.097.217h4c0-1.377-.797-2.661-1.65-3.713l-3.107 2.519Zm.757 1.194c0 .056-.013-.27.312-.594.326-.325.65-.313.594-.313v4c.673 0 1.545-.17 2.235-.859.69-.69.86-1.562.86-2.234h-4Zm.906-.907c.234 0 .458.071.634.183.08.05.135.1.17.135.033.035.048.057.048.057l-3.328 2.22c.467.7 1.287 1.405 2.476 1.405v-4Zm.861.39c-.778-1.19-1.516-2.173-2.208-2.881a6.17 6.17 0 0 0-1.15-.95c-.406-.25-.983-.512-1.675-.512v4c-.322 0-.48-.118-.423-.082.045.028.174.12.388.34.427.437 1 1.173 1.721 2.275l3.347-2.19Zm-5.033-4.343c-1.685 0-2.59 1.394-3.002 2.205l3.567 1.81c.06-.118.107-.194.139-.24.032-.045.038-.044.01-.018a.864.864 0 0 1-.233.144c-.134.06-.3.1-.48.1v-4Zm-3.055 2.317c-.224.52-.569 1.303-1.037 2.354l3.654 1.628c.47-1.054.822-1.855 1.056-2.397l-3.673-1.585Zm-1.026 2.33a3.504 3.504 0 0 1-.208.394c-.058.09-.089.123-.086.12a.729.729 0 0 1 .188-.128c.135-.069.324-.127.547-.127v4c.96 0 1.68-.488 2.14-.965.45-.464.786-1.045 1.05-1.618l-3.631-1.676Zm.44.26A1.232 1.232 0 0 1 77 56.5l-3.072 2.56c.547.657 1.319 1.002 2.146 1.002v-4Zm.886.39c.066.074.136.179.187.312.05.133.068.258.068.36h-4c0 .742.265 1.433.756 1.985l2.99-2.657Zm.255.672c0 .12-.017.232-.045.33l-3.846-1.098c-.07.244-.109.502-.109.768h4Zm-.008.18c.109-.538.366-1.434.809-2.742l-3.789-1.282c-.453 1.337-.779 2.43-.94 3.227l3.92.796Zm.809-2.742c.454-1.34.782-2.435.953-3.242l-3.913-.83c-.12.569-.386 1.483-.829 2.79l3.789 1.282Zm.952-3.238c.338-1.575.513-3.092.513-4.544h-4c0 1.131-.137 2.365-.424 3.706l3.91.838Zm.513-4.544c0-.806-.052-1.591-.16-2.356l-3.961.557c.08.568.121 1.168.121 1.8h4Zm-.197-1.607a.943.943 0 0 1-.206.395c-.09.103-.163.138-.16.136l-1.75-3.597c-.796.387-1.518 1.078-1.771 2.124l3.887.942Zm-.346.521a.154.154 0 0 1 .036-.011.624.624 0 0 1 .132-.012v-4a4.34 4.34 0 0 0-1.957.445l1.789 3.578Zm.168-.023c.225 0 .117.047-.097-.095a1.073 1.073 0 0 1-.322-.339.895.895 0 0 1-.122-.321l3.957-.584c-.119-.806-.532-1.578-1.303-2.09-.694-.46-1.473-.571-2.113-.571v4Zm-.542-.764a.763.763 0 0 1-.006-.047v.013l.001.032h4a4.02 4.02 0 0 0-.035-.564l-3.96.566Zm-.005-.002c0 .218-.085.97-.332 2.453l3.946.657c.231-1.391.386-2.494.386-3.11h-4Zm-.332 2.45c-.117.703-.216 1.24-.297 1.624-.04.192-.073.33-.097.423-.031.117-.032.094.005.01l3.661 1.611c.156-.353.265-.837.346-1.223.096-.46.206-1.057.327-1.782l-3.945-.663Zm-.397 2.075c.061-.143.158-.298.3-.439l2.828 2.829c.245-.246.425-.526.549-.814l-3.677-1.576Zm.464-.587c-.015.013-.222.17-.401.41a2.008 2.008 0 0 0 1.604 3.216v-4.001a1.996 1.996 0 0 1 1.596 3.184c-.104.139-.201.228-.225.25-.038.035-.066.058-.075.065l-2.499-3.124Zm1.203 3.625c.41 0 .73-.12.88-.182a3.09 3.09 0 0 0 .438-.23c.225-.14.45-.311.656-.482l-2.543-3.088c-.069.057-.123.1-.165.13-.042.032-.062.045-.061.044l.03-.017c.02-.01.054-.028.102-.048a1.798 1.798 0 0 1 .663-.127v4Zm1.976-.895c2.516-2.076 4.732-4.694 6.663-7.82l-3.403-2.102c-1.737 2.812-3.676 5.08-5.806 6.837l2.546 3.085Zm6.2-7.301a.928.928 0 0 1-.567.196v-4c-.704 0-1.364.232-1.911.664l2.478 3.14Zm-.567.196a.54.54 0 0 1-.213-.045c-.054-.024-.06-.04-.024-.005l2.786-2.87c-.653-.634-1.518-1.08-2.549-1.08v4Zm-.193-.009c.03.028-.002.007-.04-.07a.66.66 0 0 1-.064-.28h4c0-1.083-.502-1.966-1.197-2.602l-2.7 2.952Zm-.104-.35c0-.086.011-.165.029-.236l3.88.97c.06-.237.091-.483.091-.735h-4Zm.004-.122c.054-.288.163-.419.082-.288-.05.08-.147.219-.315.43-.333.419-.848 1.001-1.567 1.76l2.905 2.75c.75-.792 1.355-1.47 1.792-2.02a8.84 8.84 0 0 0 .58-.804c.13-.208.362-.604.453-1.085l-3.93-.743ZM85 45.902c-1.292 1.385-2.162 2.236-2.66 2.64l2.525 3.103c.732-.596 1.768-1.63 3.06-3.016l-2.925-2.727Zm-2.674 2.652c-.454.377-.897.765-1.33 1.164l2.714 2.94c.38-.352.77-.693 1.17-1.025l-2.554-3.079Zm-1.938 3.004c.115.61.392 1.18.683 1.665.303.507.697 1.045 1.156 1.606l3.096-2.533a9.902 9.902 0 0 1-.82-1.128c-.184-.306-.195-.408-.185-.351l-3.93.741Zm11.125-.402-1.841-.78-1.535 3.622 3.83-.894-.454-1.948Zm2.813-.656-.418-1.956-.019.004-.018.004.455 1.948Zm4.171.875 1.959.403.003-.01-1.962-.393Zm-.734.75.16 1.994.257-.021.244-.085-.66-1.888Zm-4.281.75.453 1.948.008-.002.007-.002-.468-1.944Zm-1.672.422-.564-1.919-.009.003.573 1.916Zm-1.5.672-1.768-.936-.01.02-.01.021 1.788.895Zm.89 1.531-.809 1.829.008.003.802-1.832Zm4.094-.016.475 1.943.013-.003.012-.003-.5-1.937Zm2.438-.718-.535-1.927-.024.006-.023.007.582 1.914Zm1.562.062 1.259-1.554-.036-.029-.036-.027-1.187 1.61Zm.25.64-1.958-.407v.004l1.958.404Zm-1.297 1.016.754 1.853h.002l-.756-1.853Zm-9.796.72 1.292-1.527-.001-.002-1.291 1.528Zm-1-3.579-1.956-.42-.002.009-.001.008 1.959.403Zm3.703-6.172-1.463-1.364-.002.002 1.465 1.362Zm7.14-4.86-.032-1.999-.36.006-.333.13.725 1.864Zm1.547.86-1.655 1.123.008.012.009.012 1.638-1.147Zm.281 2.953-1.766-.938-.003.007 1.769.931Zm-5.734 1.907 1.224 1.581h.001l-1.225-1.581Zm-2.42 4.79h.005l.005-.002h.006l.005-.002.006-.002h.005a.495.495 0 0 1 .011-.003l.006-.002h.005l.006-.002.005-.001a.143.143 0 0 1 .011-.003l.006-.001.005-.002h.006l.005-.002.006-.001.005-.002.006-.001.005-.001.006-.002a.088.088 0 0 1 .01-.002l.006-.001a.088.088 0 0 0 .011-.003l.006-.001.005-.002h.006l.005-.002.006-.001.005-.002h.006l.005-.002.006-.002h.005l.006-.002.005-.001.006-.002h.005l.006-.002.005-.002h.006l.005-.002.006-.001.005-.002h.006l.005-.002.006-.001.005-.002.006-.001.005-.001.006-.002h.005l.006-.002.005-.001.006-.002.005-.001.006-.001.005-.002h.006l.005-.002.006-.001a.143.143 0 0 0 .01-.003.088.088 0 0 1 .011-.002l.006-.002a.088.088 0 0 0 .011-.002l.005-.002h.006l.005-.002.006-.002h.005l.006-.002.005-.001.006-.002h.005l.006-.002.005-.002h.006l.005-.002.006-.001.005-.002h.006l.005-.002.006-.001.005-.002.006-.001.005-.001.006-.002a.495.495 0 0 1 .01-.002l.006-.001.006-.002a.106.106 0 0 0 .01-.002l.006-.002h.006l.005-.002.006-.001.005-.002h.006l.005-.002.006-.002h.005l.006-.002.005-.001.006-.002h.005l.006-.002.005-.002h.006l.005-.002.006-.001.005-.002h.006l.005-.002.006-.001.005-.002.006-.001.005-.001.006-.002a.495.495 0 0 1 .016-.003l.006-.002a.088.088 0 0 0 .01-.002l.006-.002h.006l.005-.002.006-.001.005-.002a.495.495 0 0 1 .017-.003l.005-.002.006-.001.005-.001.005-.002h.006l.005-.002.006-.002h.005l.006-.002.005-.001.006-.002h.005a.143.143 0 0 0 .011-.003l.006-.002.006-.001.005-.001.005-.002h.006l.005-.002.006-.001.005-.002.006-.001.005-.001.006-.002h.005l.006-.002.005-.001.006-.002.005-.001a.495.495 0 0 1 .017-.004l.005-.001a.088.088 0 0 0 .011-.003h.006l.005-.002.006-.002h.005l.006-.002.005-.001a.088.088 0 0 1 .011-.003l.006-.001.005-.002h.006l.005-.002.006-.001.005-.002h.006l.005-.002.006-.001.005-.002.006-.001.005-.001.006-.002h.005l.006-.002.005-.001.006-.002.005-.001.006-.001.005-.002a.143.143 0 0 1 .011-.002l.006-.001.005-.002.006-.001.005-.001.006-.002h.005l.006-.002.005-.001.006-.002h.005l.005-.002.006-.002a.088.088 0 0 0 .011-.002l.005-.001.006-.002h.005l.006-.002.005-.002h.006l.006-.002.005-.001.005-.002a.106.106 0 0 0 .011-.002l.006-.001.005-.002.006-.001.005-.001.006-.002h.005l.006-.002.005-.001.006-.002.005-.001.006-.001a.088.088 0 0 1 .01-.003l.006-.001a.088.088 0 0 0 .011-.003h.006l.005-.002.006-.002h.005l.006-.002.005-.001.006-.002h.005l.006-.002.005-.002h.006a.495.495 0 0 1 .01-.003l.006-.002h.006l.005-.002.006-.001.005-.002.006-.001.005-.001.006-.002h.005a.495.495 0 0 1 .011-.003l.006-.002.005-.001.006-.001.005-.002a.143.143 0 0 1 .011-.002l.006-.001.005-.002.006-.001.005-.001.006-.002h.005l.006-.002.005-.001.006-.002a.088.088 0 0 1 .01-.002l.006-.002a.088.088 0 0 0 .011-.002l.006-.001.005-.002h.005l.006-.002.005-.002h.006l.006-.002.005-.001.005-.002h.006l.005-.002.006-.001.005-.002.006-.001.005-.001.006-.002h.005l.006-.002.005-.001.006-.002.005-.001.006-.001.005-.002h.006l.005-.002.006-.001.005-.002h.006l.005-.002.006-.002h.005l.006-.002.005-.001.006-.002h.005l.006-.002.005-.002h.006l.005-.002a.088.088 0 0 1 .011-.003h.006l.005-.002.006-.001.005-.002.006-.001.005-.001.006-.002h.005l.006-.002.005-.001.006-.002.005-.001.006-.001.005-.002h.006l.005-.002.006-.001a.088.088 0 0 0 .01-.003l.006-.001.006-.002h.005l.006-.002.005-.001.006-.002a.088.088 0 0 1 .01-.002l.006-.002h.006l.005-.002.006-.001.005-.002h.005l.006-.002.005-.002h.006l.006-.002.005-.001.005-.002h.006l.005-.002.006-.001.005-.002.006-.001.005-.001.006-.002h.005l.006-.002.005-.001.006-.002.005-.001.006-.001.005-.002h.006l.005-.002.006-.001.005-.002h.006l.005-.002.006-.002h.005a.088.088 0 0 0 .011-.003l.006-.002h.005l.006-.002.005-.002h.006a.495.495 0 0 1 .016-.005h.006l.005-.002.006-.002a.495.495 0 0 0 .01-.002l.006-.001.006-.002h.005l.006-.002.005-.001.006-.002.005-.001.006-.001a.143.143 0 0 0 .01-.003l.006-.001.006-.001.005-.002.006-.001.005-.001.006-.002h.005l.006-.002.005-.001.006-.002h.005l.006-.002.005-.002h.006l.005-.002.006-.001.005-.002h.005l.006-.002a.088.088 0 0 0 .011-.003l.005-.001.006-.001.005-.002h.006l.005-.002.006-.001a.088.088 0 0 1 .011-.003l.005-.001.006-.002h.005l.006-.002.005-.001.006-.002.005-.001.006-.001.005-.002h.006l.005-.002.006-.001.005-.002h.006a.088.088 0 0 1 .01-.004h.006a.088.088 0 0 0 .011-.003l.006-.002h.005l.006-.002.005-.002h.006l.005-.002.006-.001.005-.002h.006l.005-.002.006-.002a.495.495 0 0 1 .01-.002l.006-.001.006-.002h.005l.006-.002.005-.001.006-.002.005-.001.006-.001.005-.002a.495.495 0 0 1 .011-.002l.006-.001.005-.002.006-.001.005-.001.006-.002h.005l.006-.002.005-.001.006-.002h.005l.006-.002.005-.002h.006l.005-.002.006-.001a.088.088 0 0 1 .01-.003l.006-.001a.088.088 0 0 0 .011-.003l.005-.001.006-.001-.909-3.896-.005.002h-.006l-.005.002a.495.495 0 0 1-.017.004l-.005.001-.006.002h-.005l-.006.002-.005.001-.006.002-.005.001-.006.001-.005.002h-.006l-.005.002-.006.001a.143.143 0 0 0-.01.003l-.006.001-.006.002h-.005l-.006.002-.005.001-.006.002h-.005l-.006.002-.005.002h-.006l-.005.002-.006.001-.005.002h-.006l-.005.002-.006.002h-.005a.143.143 0 0 1-.011.003l-.006.002h-.005l-.006.002-.005.001-.006.002-.005.001-.006.001-.005.002h-.006a.088.088 0 0 1-.01.003l-.006.002-.005.001-.006.001-.005.002h-.006l-.005.002-.006.001-.005.002h-.006l-.005.002-.006.002h-.006l-.005.002-.005.001-.006.002h-.005l-.006.002a.088.088 0 0 0-.01.003l-.006.001-.006.001-.005.002h-.006l-.005.002-.006.001a.088.088 0 0 1-.01.003l-.006.001-.006.002h-.005l-.006.002-.005.001-.006.002-.005.001-.006.001-.005.002h-.006l-.005.002-.006.001-.005.002-.006.001a.495.495 0 0 1-.01.003h-.006l-.006.002-.005.001-.006.002a.143.143 0 0 1-.01.002l-.006.002h-.006l-.005.002-.006.001-.005.002h-.006l-.005.002-.006.002h-.005l-.006.002-.005.001-.006.002a.088.088 0 0 0-.01.002l-.006.001-.006.002-.005.001-.006.001-.005.002h-.006a.088.088 0 0 1-.01.003l-.006.002-.006.001-.005.001-.005.002h-.006l-.006.002-.005.001-.005.002h-.006l-.005.002-.006.002h-.006l-.005.002-.005.001-.006.002h-.005l-.006.002-.005.002h-.006l-.005.002-.006.001-.005.002h-.006l-.005.002-.006.002h-.005l-.006.002-.005.001-.006.002h-.005a.495.495 0 0 1-.017.005l-.005.001a.088.088 0 0 0-.011.003h-.006l-.005.002-.006.001-.005.002-.006.001-.005.001-.006.002h-.005l-.006.002-.005.001a.495.495 0 0 1-.011.003l-.006.001-.005.002a.088.088 0 0 0-.011.002l-.006.001-.005.002h-.006l-.005.002-.006.002h-.005a.088.088 0 0 1-.011.003l-.006.002h-.005l-.006.002-.005.001-.006.002-.005.001-.006.001-.005.002h-.006l-.005.002-.006.001-.005.002-.006.001-.005.001-.006.002h-.005l-.006.002-.005.001-.005.002h-.006l-.005.002-.006.002h-.006l-.005.002-.005.001-.006.002h-.005l-.006.002-.005.002h-.006l-.005.002a.143.143 0 0 1-.011.003h-.006a.088.088 0 0 0-.01.004h-.006l-.006.002-.005.001-.006.002h-.005l-.006.002a.088.088 0 0 1-.01.003l-.006.001-.006.001-.005.002h-.006l-.005.002-.006.001-.005.002-.006.001-.005.001-.006.002h-.005l-.006.002a.143.143 0 0 0-.01.003.495.495 0 0 1-.012.002l-.005.002h-.006l-.005.002-.006.001-.005.002h-.006l-.005.002-.006.002H92.5l-.006.002-.005.001-.006.002h-.005l-.006.002-.005.001-.006.002-.005.001-.006.001a.088.088 0 0 0-.01.003l-.006.001-.006.001-.005.002-.006.001-.005.001-.006.002a.088.088 0 0 1-.01.002l-.006.001-.005.002-.006.001-.005.001-.006.002h-.005l-.006.002-.005.001-.006.002h-.005l-.006.002-.005.002h-.006a.495.495 0 0 1-.016.005H92.3a.088.088 0 0 0-.01.004h-.006l-.006.002-.005.001-.006.002h-.005l-.006.002-.005.001-.006.002-.005.001a.143.143 0 0 0-.011.003h-.006l-.005.002-.006.001-.005.002-.006.001-.005.001-.006.002h-.005l-.006.002-.005.001-.006.002h-.005l-.006.002-.005.002h-.006a.106.106 0 0 0-.01.003l-.006.002h-.006l-.005.002-.006.002h-.005l-.006.002-.005.001-.006.002h-.005a.143.143 0 0 0-.011.003.088.088 0 0 1-.011.003l-.006.001a.088.088 0 0 0-.01.003l-.006.001-.006.001-.005.002-.006.001-.005.001-.006.002h-.005l-.006.002-.005.001-.006.002-.005.001a1470534312.205 1470534312.205 0 0 1-.011.003h-.005l-.006.002-.005.001-.006.002h-.005l-.006.002-.005.002h-.006l-.006.002a.495.495 0 0 1-.01.003h-.006l-.005.002-.006.002h-.005a.143.143 0 0 1-.011.003l-.006.002h-.005l-.006.002-.005.001-.006.002-.005.001-.006.001-.005.002h-.006l-.005.002-.006.001-.005.002a.088.088 0 0 0-.011.002l-.006.002h-.005l-.006.002-.005.001-.006.002h-.005a.088.088 0 0 1-.011.004h-.006a.143.143 0 0 0-.01.003l-.006.002h-.006l-.005.002-.006.002h-.005l-.006.002-.005.001-.006.002h-.005l-.006.002-.005.001a.088.088 0 0 1-.011.003l-.006.001-.005.002h-.006l-.005.002-.006.001-.005.002-.006.001-.005.001-.006.002h-.005l-.006.002-.005.001-.006.002a.143.143 0 0 0-.01.002l-.006.002h-.005l-.006.002-.005.001-.006.002h-.005l-.006.002-.005.001-.006.002-.006.001-.005.001-.005.002h-.006l-.005.002-.006.002h-.006l-.005.002-.005.001-.006.002a.088.088 0 0 0-.01.002l-.006.001-.006.002-.005.001-.006.001-.005.002h-.006a.088.088 0 0 1-.01.003l-.006.002-.006.001-.005.001-.006.002h-.005l-.006.002-.005.001-.006.002h-.005l-.006.002-.005.002h-.006a.143.143 0 0 0-.01.003l-.006.002h-.006l-.005.002-.006.002h-.005l-.006.002-.005.001-.006.002h-.005l-.006.002-.005.002h-.006l-.005.002-.006.001-.005.002h-.006l-.005.002-.006.001-.005.002-.006.001a.088.088 0 0 0-.01.003h-.006l-.006.002-.005.001-.006.002-.005.001a.495.495 0 0 1-.017.004l-.005.001a.106.106 0 0 0-.011.003h-.005l-.006.002-.005.002h-.006l-.006.002-.005.001-.005.002h-.006l-.005.002-.006.002h-.005l-.006.002-.005.001-.006.002a.088.088 0 0 0-.01.002l-.006.001-.006.002-.005.001-.006.001-.005.002.909 3.895Zm2.775-.647c.976-.209 1.785-.3 2.442-.3v-4c-1.01 0-2.107.138-3.277.388l.835 3.912Zm2.442-.3c.114 0 .152.01.135.007a.835.835 0 0 1-.272-.132 1.256 1.256 0 0 1-.408-.485 1.072 1.072 0 0 1-.111-.452h4c0-.857-.348-1.755-1.192-2.344-.713-.497-1.533-.594-2.152-.594v4Zm-.656-1.062c0-.041.002-.071.004-.088l.003-.023 3.923.784c.04-.2.07-.428.07-.673h-4Zm.01-.122c.038-.186.136-.384.291-.543a.781.781 0 0 1 .272-.192l1.322 3.776c.91-.319 1.785-1.031 2.032-2.235l-3.917-.806Zm1.065-.84c-.305.024-.772.075-1.377.148l.479 3.971c.603-.073 1-.115 1.217-.132l-.32-3.988Zm-1.377.148c-.73.088-1.825.316-3.213.65l.936 3.89c1.383-.333 2.278-.511 2.756-.569l-.48-3.971Zm-3.199.647c-.766.179-1.37.33-1.782.451l1.128 3.838c.296-.087.807-.217 1.561-.393l-.907-3.896Zm-1.79.454c-.487.145-.934.298-1.3.462a3.985 3.985 0 0 0-.601.327c-.163.11-.54.382-.795.863l3.535 1.871c-.114.218-.246.36-.323.434-.08.078-.147.126-.178.146-.058.04-.072.04-.003.01.06-.028.156-.067.297-.116.14-.049.309-.104.513-.165l-1.146-3.832Zm-2.717 1.693a2.795 2.795 0 0 0-.274 1.254h4c0 .006 0 .056-.014.136a1.458 1.458 0 0 1-.134.4l-3.578-1.79Zm-.274 1.254c0 1.6 1.117 2.546 2.144 3l1.62-3.657c-.134-.059-.075-.061.026.063a.954.954 0 0 1 .21.594h-4Zm2.152 3.004c.76.333 1.566.496 2.395.496v-4c-.295 0-.552-.056-.792-.16L90.4 57.332Zm2.395.496c.931 0 1.93-.145 2.975-.4l-.95-3.886c-.828.202-1.497.286-2.025.286v4Zm3-.407a85.59 85.59 0 0 0 2.52-.742l-1.164-3.827c-1.318.4-2.083.626-2.355.696l1 3.873Zm2.473-.728a3.38 3.38 0 0 1 .314-.075c.074-.013.082-.009.041-.009v-4c-.488 0-.99.108-1.425.23l1.07 3.854Zm.355-.084a.89.89 0 0 1-.514-.171l2.373-3.22a3.105 3.105 0 0 0-1.859-.609v4Zm-.586-.226a1.403 1.403 0 0 1-.45-1.322l3.916.816a2.6 2.6 0 0 0-.118-1.483 2.717 2.717 0 0 0-.831-1.12l-2.517 3.109Zm-.45-1.318c.048-.238.146-.41.22-.512a.904.904 0 0 1 .126-.14s-.03.024-.11.067a3.456 3.456 0 0 1-.33.153l1.51 3.703c.484-.197.977-.445 1.397-.773.403-.316.934-.862 1.104-1.69l-3.918-.808Zm-.092-.433c-2.63 1.07-4.641 1.524-6.106 1.524v4c2.202 0 4.763-.66 7.613-1.82l-1.507-3.704Zm-6.106 1.524c-.847 0-1.333-.215-1.645-.479L87.16 58.73c1.188 1.007 2.66 1.427 4.23 1.427v-4Zm-1.646-.48c-.234-.198-.4-.462-.4-1.035h-4c0 1.593.572 3.037 1.818 4.09l2.582-3.056Zm-.4-1.035c0-.173.019-.376.067-.613l-3.917-.806c-.097.471-.15.945-.15 1.419h4Zm.064-.597c.3-1.398 1.27-3.139 3.213-5.23l-2.93-2.723c-2.182 2.348-3.681 4.721-4.194 7.115l3.911.838Zm3.21-5.226c1.83-1.962 3.96-3.409 6.404-4.36L97.57 40.73c-3.014 1.173-5.645 2.966-7.878 5.359l2.925 2.729Zm5.711-4.224c.003 0-.014 0-.045-.008a.389.389 0 0 1-.096-.037c-.064-.036-.056-.056 0 .027l3.31-2.246c-.726-1.07-1.842-1.759-3.234-1.736l.065 4Zm-.124.006c.113.162.185.355.185.65h4c0-1.06-.293-2.064-.908-2.944L98.204 44.6Zm.185.65c0 .163-.031.217-.032.218l3.533 1.877a4.427 4.427 0 0 0 .499-2.095h-4Zm-.035.225c.02-.04.105-.18.3-.305a1.04 1.04 0 0 1 .548-.17v4c.543 0 1.106-.137 1.618-.467.501-.323.844-.76 1.073-1.195l-3.54-1.863Zm.848-.475a1.01 1.01 0 0 1 .26.035l-.03-.014a1.487 1.487 0 0 1-.107-.057l-2.028 3.447c.469.276 1.137.589 1.905.589v-4Zm.123-.036a36.373 36.373 0 0 1-.372-.221c-.04-.025-.052-.032-.047-.03l.02.015a1.844 1.844 0 0 1 .319.271 2.004 2.004 0 0 1 .417 2.092 2 2 0 0 1-1.867 1.284v-4a2 2 0 0 0-1.45 3.379c.134.14.264.232.264.233.06.044.114.079.128.088.046.03.097.06.143.088.098.06.238.143.417.248l2.028-3.447Zm-1.53-.589c-.866 0-1.699.408-2.293.746-.685.39-1.47.937-2.338 1.61l2.45 3.162c.798-.618 1.414-1.039 1.865-1.295.225-.128.375-.195.46-.227.1-.038.035.004-.144.004v-4Zm-4.63 2.356c-.861.666-1.584 1.278-2.143 1.831-.515.51-1.059 1.128-1.35 1.814l3.684 1.56c-.03.072.035-.09.479-.53.399-.395.983-.897 1.778-1.512l-2.448-3.163Zm15.431 9.706-1.041 1.708.012.008 1.029-1.715Zm-1.766-.859.621-1.901-.008-.003-.008-.002-.605 1.906Zm-2.64-.437 1.897.632-1.897-.632Zm-.141.468 1.878.688.031-.085.024-.087-1.933-.516Zm-.594 1.563 1.811.849.009-.019.008-.018-1.828-.812Zm-1.734.719 1.454-1.374-.02-.02-.02-.02-1.414 1.414Zm-.219-.907 1.898.633.013-.04.011-.039-1.922-.554Zm.797-2.703 1.917.572.001-.003-1.918-.569Zm.969-9.422-1.94-.485-.101.404.068.41 1.973-.329Zm.75-.875-.873-1.8-.02.01-.02.01.913 1.78Zm1.578-.203-.485 1.94.599.15.579-.214-.693-1.876Zm6.891-.515 1.227-1.58-.006-.004-.007-.005-1.214 1.589Zm.765 2.515 1.956.42.002-.012-1.958-.408Zm-1.922 3.688 1.579 1.228.002-.003-1.581-1.225Zm-2.953 2.984 1.163 1.628.039-.029.038-.03-1.24-1.569Zm-1.328 1-1.24-1.569-3.602 2.848 4.538.698.304-1.977Zm.203.031-.304 1.977.042.007.041.004.221-1.988Zm.547.141.803-1.832-.021-.009-.02-.008-.762 1.849Zm1.609.781 1.074-1.687-.022-.014-.023-.014-1.029 1.715Zm.75 2.11-1.486-1.338-.004.004 1.49 1.334Zm-5.375-3.703-.392 1.96 1.502-3.625-1.11 1.664Zm-.015-.126-.695-1.875-.899.333-.304.91 1.898.633Zm3.172-2.343-1.387-1.441-.008.007-.008.008 1.403 1.426Zm-.61-3.985.206 1.99h.002l-.208-1.99Zm-.937.22-1.94-.486-.012.046-.009.047 1.961.392Zm-.453 2.858-1.951-.44-.003.014-.003.013 1.957.413Zm-.875 3.266-1.91-.594-.011.034-.009.034 1.93.526Zm-.047.172 1.857.743.042-.106.03-.11-1.929-.527Zm-.281-.063 1.494-1.328-.664-.748-.997.083.167 1.993Zm-.235 0-.894 1.79.127.063.135.045.632-1.898Zm-.031-.062.392-1.961-2.392-.479v2.44h2Zm5.166 1.98c-.745-.454-1.479-.822-2.186-1.053l-1.241 3.802c.313.103.757.308 1.345.666l2.082-3.415Zm-2.202-1.058a29.09 29.09 0 0 0-1.736-.504c-.421-.104-.933-.215-1.384-.215v4c-.074 0-.081-.008.021.01.088.015.218.042.399.087.361.09.854.232 1.49.434l1.21-3.812Zm-3.12-.719c-1.083 0-1.626.786-1.727.938a2.59 2.59 0 0 0-.296.617l3.795 1.265a1.132 1.132 0 0 1-.038.098 1.852 1.852 0 0 1-.566.694 1.945 1.945 0 0 1-1.168.388v-4Zm-2.023 1.555a10.3 10.3 0 0 0-.175.586l3.865 1.03a6.38 6.38 0 0 1 .105-.35l-3.795-1.266Zm-.121.414a40.618 40.618 0 0 1-.543 1.438l3.655 1.624c.117-.264.342-.861.644-1.688l-3.756-1.374Zm-.527 1.401c-.094.202-.128.198-.046.123a1.01 1.01 0 0 1 .281-.176c.146-.062.312-.098.483-.098v4c1.665 0 2.527-1.347 2.904-2.151l-3.622-1.698Zm.718-.151a1.147 1.147 0 0 1 .813.345l-2.908 2.747a2.848 2.848 0 0 0 2.095.908v-4Zm.773.304a1.15 1.15 0 0 1 .32.79h-4c0 .796.319 1.506.852 2.039l2.828-2.829Zm.32.79c0 .132-.022.252-.055.35l-3.795-1.264c-.096.287-.15.594-.15.914h4Zm-.031.272c.174-.605.438-1.5.792-2.685l-3.834-1.143c-.354 1.189-.622 2.097-.802 2.72l3.844 1.108Zm.793-2.688c.815-2.752 1.254-5.248 1.254-7.46h-4c0 1.706-.343 3.804-1.089 6.323l3.835 1.137Zm1.254-7.46c0-.978-.076-1.932-.23-2.86l-3.946.658c.116.697.176 1.431.176 2.203h4Zm-.263-2.046a.786.786 0 0 1-.164.317c-.073.085-.128.11-.114.103l-1.825-3.56c-.817.42-1.518 1.133-1.777 2.17l3.88.97Zm-.318.44a.682.682 0 0 1 .3-.05v-4c-.696 0-1.392.134-2.045.45l1.745 3.6Zm.3-.05c.003 0-.026 0-.079-.013l.97-3.88a3.665 3.665 0 0 0-.891-.107v4Zm1.099-.077c1.965-.725 3.297-1 4.104-1v-4c-1.526 0-3.393.474-5.49 1.248l1.386 3.752Zm4.104-1c.555 0 .787.127.879.197l2.429-3.177c-.97-.742-2.134-1.02-3.308-1.02v4Zm.866.187a.294.294 0 0 1 .046.043l.004.006c.001.001.005.01.01.035a.688.688 0 0 1 .011.135h4c0-1.33-.529-2.531-1.616-3.376l-2.455 3.157Zm.071.218c0 .078-.009.18-.036.311l3.916.816c.077-.369.12-.746.12-1.127h-4Zm-.033.299c-.154.713-.607 1.669-1.547 2.882l3.161 2.451c1.143-1.474 1.971-2.977 2.297-4.492l-3.911-.841Zm-1.545 2.88c-.779 1-1.65 1.88-2.615 2.643l2.48 3.138a19.384 19.384 0 0 0 3.292-3.325l-3.157-2.456Zm-2.537 2.585c-.466.332-.935.685-1.406 1.058l2.481 3.138c.423-.335.84-.649 1.25-.941l-2.325-3.255Zm-.166 2.627-.304 1.977h.002c.001 0-.001 0 0 0h.004l.001.001h.006l.001.001h.006l.009.002.022.004.063.01.089.013.608-3.953h-.003l-.003-.001-.006-.001-.006-.001h-.005l-.001-.001-.012-.002c-.027-.004.022.003-.006 0-.015-.003.01 0-.005-.002-.016-.002.013.002-.003 0h-.003l-.003-.001h-.002l-.011-.002h-.005l-.002-.001h-.003l-.005-.001h-.003c-.005-.002.003 0-.002-.001h-.005l-.001-.001h-.005c-.015-.003.012.001-.002-.001h-.005a.444.444 0 0 0-.016-.003l-.016-.003c-.019-.003.016.003-.003 0h-.003l-.004-.001h-.003a2.448 2.448 0 0 1-.038-.007l-.01-.001h-.003l-.304 1.976Zm-.018 2.02h.001-.001.002l.005.001 1.523-3.698a4.025 4.025 0 0 0-1.088-.28l-.442 3.976Zm-.035-.016c.755.33 1.19.548 1.383.664l2.058-3.43c-.431-.258-1.069-.562-1.835-.898l-1.606 3.664Zm1.339.637c.105.067.175.12.217.157.044.037.05.05.036.032a.714.714 0 0 1-.087-.167 1.016 1.016 0 0 1-.061-.35h4c0-1.539-1.12-2.514-1.958-3.047l-2.147 3.375Zm.105-.328a.922.922 0 0 1 .232-.588l2.973 2.676a3.084 3.084 0 0 0 .795-2.088h-4Zm.228-.584a1.126 1.126 0 0 1 .803-.37v4c.812 0 1.597-.313 2.178-.963l-2.981-2.667Zm.803-.37a1.58 1.58 0 0 1 .378.047c.056.016.08.028.066.021a4.47 4.47 0 0 1-.29-.158l-2.058 3.43c.25.15.512.294.772.405.211.09.631.255 1.132.255v-4Zm-3.578-3.664c.528.353.788.89.848 1.37.049.396-.04.694-.076.802l-3.795-1.265c-.056.17-.153.52-.098.959a2.06 2.06 0 0 0 .902 1.463l2.219-3.329Zm-.431 3.415c1.26-.466 2.567-1.502 3.88-2.793l-2.805-2.852c-1.228 1.208-2.036 1.735-2.464 1.894l1.389 3.751Zm3.865-2.778c.754-.727 1.391-1.442 1.852-2.14.439-.666.854-1.518.854-2.473h-4c0-.185.066-.122-.192.27-.237.358-.647.844-1.288 1.46l2.774 2.883Zm2.706-4.613a2.72 2.72 0 0 0-1.388-2.401c-.71-.409-1.516-.49-2.158-.49v4c.167 0 .262.013.299.02.042.008-.022.002-.137-.064a1.24 1.24 0 0 1-.443-.453 1.238 1.238 0 0 1-.173-.612h4Zm-3.546-2.89c-.376 0-.843.034-1.364.088l.415 3.979c.478-.05.782-.068.949-.068v-4Zm-1.362.088a7.812 7.812 0 0 0-.937.143c-.129.03-.346.087-.574.194a2.224 2.224 0 0 0-.505.325 2.064 2.064 0 0 0-.656 1.061l3.88.97a1.935 1.935 0 0 1-.614 1 1.781 1.781 0 0 1-.407.265c-.144.068-.241.087-.215.08.032-.007.161-.03.439-.06l-.411-3.978Zm-2.693 1.816c-.077.38-.156.909-.241 1.554l3.966.52c.082-.626.148-1.045.197-1.29l-3.922-.784Zm-.241 1.554c-.081.62-.15 1.026-.202 1.257l3.902.881c.093-.414.181-.967.266-1.618l-3.966-.52Zm-.208 1.284c-.182.86-.455 1.886-.828 3.085l3.82 1.188c.397-1.28.707-2.43.922-3.446l-3.914-.827Zm-.848 3.153-.047.172 3.859 1.052.047-.172-3.859-1.052Zm.026-.045c.068-.171.22-.47.537-.735a1.919 1.919 0 0 1 1.226-.444v4c.476 0 .951-.163 1.335-.483a2.15 2.15 0 0 0 .616-.852l-3.714-1.486Zm1.763-1.179c.357 0 .631.098.786.167.16.073.274.151.336.198.12.09.185.165.185.166l-2.989 2.657c.084.095.221.24.404.377.116.087.584.435 1.278.435v-4Zm-.354-.134c-.035.003-.025.001.014.001a1.484 1.484 0 0 1 .29.028c.06.011.151.03.261.067l-1.265 3.795c.354.118.674.11.714.11.118 0 .23-.007.319-.014l-.333-3.987Zm.827.205c.376.188.682.494.871.87.172.346.203.662.203.856h-4c0 .487.205 1.385 1.137 1.851l1.789-3.577Zm-1.318 3.687.312.063.785-3.923-.313-.062-.784 3.922Zm12.13-7.211-1.713-1.032-.041.067-.035.07 1.789.895Zm-.484.766 1.629 1.16.01-.015.01-.014-1.649-1.131Zm-1.875-.547-1.723-1.016-.01.017-.01.018 1.743.98Zm1.422-2.438 1.732 1 .006-.011.006-.011-1.744-.978Zm1.218-2.547-1.857-.742-.008.02-.007.02 1.872.702Zm.438-.64 1.133 1.648.01-.007.01-.007-1.153-1.634Zm2.015.781 1.789.894.32-.638-.158-.697-1.951.441Zm-4.523 3.73c.009-.017-.007.017-.077.127-.063.1-.151.232-.268.403l3.299 2.262c.243-.355.481-.716.624-1.003l-3.578-1.788Zm-.325.501c-.096.135-.127.138-.068.098a.744.744 0 0 1 .179-.082.938.938 0 0 1 .284-.044v4c1.37 0 2.307-.869 2.864-1.653l-3.259-2.319Zm.395-.028c.069 0 .482.022.856.41.36.375.363.76.363.778h-4c0 .56.134 1.35.754 1.995.634.66 1.438.817 2.027.817v-4Zm1.219 1.188c0 .133-.035.29-.116.433l-3.486-1.96a3.088 3.088 0 0 0-.398 1.527h4Zm-.137.469c.483-.818.96-1.636 1.432-2.454l-3.465-2c-.465.808-.936 1.615-1.412 2.422l3.445 2.032Zm1.444-2.476c.565-1.007 1.02-1.95 1.347-2.822l-3.745-1.405c-.236.629-.593 1.383-1.091 2.272l3.489 1.955Zm1.331-2.782c.024-.059.028-.053-.002-.01a1.088 1.088 0 0 1-.284.275l-2.266-3.296c-.644.442-.978 1.085-1.162 1.546l3.714 1.485Zm-.266.25a1.064 1.064 0 0 1-.353.169c-.063.015-.082.01-.035.01v-4c-.538 0-1.267.094-1.919.554l2.307 3.268Zm-.388.18c.036 0-.16.005-.397-.178-.244-.19-.301-.402-.303-.413l3.901-.882c-.148-.656-.486-1.354-1.147-1.866-.653-.506-1.402-.662-2.054-.662v4Zm-.538-1.926-.014.025-.043.08-.153.269c-.129.224-.306.526-.532.908a462.6 462.6 0 0 1-1.917 3.205l3.426 2.064c1.624-2.696 2.598-4.338 2.81-4.763l-3.577-1.788Zm10.261 13.956 1.18 1.615.004-.003-1.184-1.611Zm-8.531.97-1.994.155.042.541.31.446 1.642-1.143Zm1.562-1.891-1.219 1.585.02.015.02.015 1.179-1.615Zm.875.578-.931 1.77.009.005.01.004.912-1.78Zm4.844-.89-1.011-1.726h-.003l1.014 1.725Zm1.531-3.86-.997 1.734h.001l.996-1.734Zm-3.344-.14.322 1.973.007-.001-.329-1.973Zm-1.843.452.946 1.762h.002l-.948-1.762Zm-2.375.078-1.628 1.163.011.015.01.014 1.607-1.192Zm-.328-1.015h-2v.054l2-.054Zm.218-1.438-1.956-.416v.001l1.956.415Zm3.063-4.812 1.139 1.644.001-.001-1.14-1.643Zm7.078-.782-1.456 1.372.007.007.007.007 1.442-1.386Zm-2 3.485-1.014 1.724.527.31.611-.038-.124-1.996Zm-.438-.438-1.748.972.02.036.022.035 1.706-1.043Zm-.312-.547 1.724-1.014-.68-1.155-1.327.19.283 1.98Zm-3.219 1.047-1.23-1.577-.008.007-.009.007 1.247 1.563Zm-1.375 1.594-1.949-.45-.023.1-.012.102 1.984.248Zm.281.016-.702-1.873-.011.004-.011.005.724 1.864Zm6.657-.11.854-1.808-.006-.003-.007-.003-.841 1.814ZM131.119 51l1.954.428.009-.043.007-.042-1.97-.343Zm-4.883 3.323c-1.8 1.315-3.29 1.818-4.508 1.818v4c2.345 0 4.647-.966 6.868-2.589l-2.36-3.23Zm-4.508 1.818c-.899 0-1.118-.257-1.202-.377l-3.283 2.285c1.062 1.525 2.739 2.092 4.485 2.092v-4Zm-.849.61a3.724 3.724 0 0 1-.007-.62c.013-.138.031-.143 0-.072a1.085 1.085 0 0 1-.385.437c-.247.168-.49.207-.634.207v-4c-.523 0-1.092.131-1.61.482a2.932 2.932 0 0 0-1.033 1.264c-.364.827-.384 1.782-.319 2.613l3.988-.311Zm-1.026-.048c-.236 0-.414-.047-.506-.077a1.17 1.17 0 0 1-.183-.075c-.04-.021-.023-.017.064.05l2.439-3.17a4.525 4.525 0 0 0-.64-.42 2.53 2.53 0 0 0-1.174-.308v4Zm-.585-.072c.397.29.787.556 1.123.733l1.863-3.54a6.546 6.546 0 0 1-.628-.424l-2.358 3.231Zm1.142.742a4.738 4.738 0 0 0 2.178.533v-4a.742.742 0 0 1-.353-.092l-1.825 3.56Zm2.178.533c1.522 0 3.074-.587 4.591-1.479l-2.027-3.448c-1.212.712-2.044.927-2.564.927v4Zm4.589-1.477c1.612-.945 3.255-2.378 3.255-4.476h-4c0-.098.049-.066-.11.127-.176.213-.528.523-1.167.898l2.022 3.45Zm3.255-4.476c0-1.35-.797-2.302-1.739-2.844l-1.992 3.469c.047.027-.031-.006-.121-.142a.9.9 0 0 1-.148-.483h4Zm-1.738-2.843a4.74 4.74 0 0 0-2.387-.626v4c.183 0 .299.04.393.094l1.994-3.468Zm-2.387-.626c-.602 0-1.388.097-2.282.246l.657 3.946c.856-.143 1.372-.192 1.625-.192v-4Zm-2.275.245c-.507.083-.957.17-1.336.262-.336.083-.764.205-1.135.404l1.897 3.522c-.07.038-.097.043-.045.025a3.27 3.27 0 0 1 .238-.066c.237-.058.573-.125 1.024-.199l-.643-3.948Zm-2.469.666a6.144 6.144 0 0 1-.659.315c-.067.026-.093.032-.086.03.001 0 .084-.021.223-.021v4c.513 0 .983-.154 1.293-.273a9.85 9.85 0 0 0 1.122-.528l-1.893-3.523Zm-.522.324a.96.96 0 0 1 .443.115c.151.08.231.174.257.209l-3.213 2.383c.572.771 1.444 1.293 2.513 1.293v-4Zm.721.353c.015.02.029.047.038.075.008.026.006.036.006.018l-3.999.108c.021.752.243 1.483.7 2.124l3.255-2.325Zm.045.147c0 .014 0-.057.031-.262.029-.188.076-.44.144-.76l-3.913-.83c-.143.674-.262 1.344-.262 1.852h4Zm.174-1.021c.355-1.665 1.118-2.804 2.246-3.585l-2.278-3.288c-2.06 1.427-3.338 3.497-3.88 6.04l3.912.833Zm2.247-3.586c1.161-.806 2.55-1.237 4.25-1.237v-4c-2.424 0-4.629.631-6.53 1.95l2.28 3.287Zm4.25-1.237h.079v-4h-.079v4Zm.079 0a.264.264 0 0 1-.062-.007l-.016-.005c.018.01.099.056.231.196l2.912-2.743c-.761-.807-1.79-1.441-3.065-1.441v4Zm.167.198c.13.136.18.226.198.264.014.03.01.033.01.022h4c0-1.226-.554-2.256-1.324-3.057l-2.884 2.771Zm.208.286a.52.52 0 0 1 .069-.225.515.515 0 0 1 .143-.174s-.019.012-.064.031a1.589 1.589 0 0 1-.207.067c-.192.05-.463.095-.831.118l.248 3.992c1.061-.066 2.16-.282 3.046-.862 1.02-.669 1.596-1.72 1.596-2.947h-4Zm.248.089a.75.75 0 0 1 .255.243l-3.413 2.086c.274.448.65.836 1.13 1.119l2.028-3.448Zm.297.315a27.785 27.785 0 0 0-.337-.59l-3.448 2.029c.096.162.192.33.288.504l3.497-1.943Zm-2.344-1.555c-1.598.228-3.117.631-4.166 1.45l2.46 3.154c.18-.141.808-.435 2.272-.645l-.566-3.96Zm-4.183 1.463a9.219 9.219 0 0 0-1.228 1.148c-.314.364-.695.893-.849 1.56l3.898.899a.856.856 0 0 1-.087.237c-.006.01.009-.017.067-.084.118-.137.336-.348.693-.633l-2.494-3.127Zm-2.112 2.91c0-.003.016-.159.092-.361.036-.095.134-.34.355-.592a1.98 1.98 0 0 1 1.49-.675v4c.756 0 1.268-.402 1.52-.69a2.06 2.06 0 0 0 .38-.639c.092-.244.121-.462.132-.548l-3.969-.496Zm1.937 2.372c.287 0 .517-.065.54-.07.08-.021.15-.044.198-.06.101-.033.21-.074.315-.115l-1.449-3.728a3.244 3.244 0 0 1-.131.048l.063-.018a1.79 1.79 0 0 1 .464-.057v4Zm1.031-.237c.802-.3 1.848-.482 3.188-.482v-4c-1.681 0-3.228.225-4.593.737l1.405 3.745Zm3.188-.482c.948 0 1.556.144 1.924.315l1.683-3.629c-1.069-.496-2.305-.686-3.607-.686v4Zm1.911.309c.232.11.278.187.27.176l-.003-.005c.002.004.01.034.01.099h4c0-.823-.215-1.635-.705-2.352-.482-.704-1.147-1.197-1.863-1.535l-1.709 3.617Zm.277.27c0 .091-.009.206-.033.344l3.94.686c.06-.34.093-.685.093-1.03h-4Zm-.017.26c-.244 1.114-1.074 2.386-2.934 3.753l2.369 3.223c2.307-1.696 3.946-3.715 4.473-6.121l-3.908-.856Zm21.243 4.302 1.393 1.435.007-.007.006-.006-1.406-1.422Zm-2.094 1.516-.85-1.81-.012.005.862 1.805Zm-7.828.906 1.457-1.37-.006-.007-.006-.006-1.445 1.383Zm2.625-9.125L141.49 47l-.001.001 1.622 1.17Zm2.5-3.078-1.479-1.346-.003.003 1.482 1.343Zm3.344-2.438.335-1.971-.166-.029h-.169v2Zm.937 1.25 1.997-.105-.006-.126-.023-.124-1.968.355Zm.094 1.469 1.996-.118v-.015l-1.996.133Zm0 2.375 1.956.415.003-.012-1.959-.403Zm-.391.906-1.623-1.168-.001.001 1.624 1.167Zm-1.828-.375-1.789.895.007.012.006.013 1.776-.92Zm-.172-.406-1.879.684.003.009.004.01 1.872-.703Zm-.265-.078-1.11-1.664-.008.005 1.118 1.659Zm-2.953 2.797-1.549-1.266-.004.005 1.553 1.26Zm-1.954 3.515 1.955.425v-.001l-1.955-.424Zm3.938 1.125.865 1.803.011-.005.01-.005-.886-1.793Zm2.219-1.359-1.2-1.6-.025.019-.025.02 1.25 1.561Zm.047-.172-.895 1.789.22.11.241.054.434-1.953Zm-2.407.094-.434-1.953-.025.006-.026.007.485 1.94Zm-.765-1.734-1.577-1.231-.007.01 1.584 1.22Zm1.109-1.016-.385-1.963-.355.07-.308.19 1.048 1.703Zm1.594-.313-.355-1.968-.015.003-.015.003.385 1.962Zm.857 2.706c-.595.577-1.114.935-1.551 1.14l1.7 3.62c.938-.44 1.815-1.092 2.637-1.89l-2.786-2.87Zm-1.563 1.146c-2.268 1.084-3.843 1.492-4.841 1.492v4c1.898 0 4.125-.716 6.565-1.883l-1.724-3.609Zm-4.841 1.492c-.548 0-.66-.143-.668-.15l-2.914 2.739c.971 1.033 2.276 1.411 3.582 1.411v-4Zm-.68-.164c-.039-.04-.148-.162-.148-.586h-4c0 1.222.36 2.413 1.258 3.352l2.89-2.766Zm-.148-.586c0-.442.153-1.16.645-2.219.484-1.04 1.24-2.292 2.304-3.766L141.489 47c-1.154 1.599-2.062 3.076-2.688 4.421-.616 1.327-1.018 2.65-1.018 3.906h4Zm2.949-5.985a33.944 33.944 0 0 1 2.361-2.906l-2.964-2.686A37.836 37.836 0 0 0 141.49 47l3.242 2.342Zm2.358-2.903c.701-.77 1.245-1.277 1.643-1.577.197-.149.318-.216.369-.24.061-.028-.039.033-.257.033v-4c-1.032 0-1.923.563-2.52 1.012-.68.513-1.415 1.224-2.193 2.08l2.958 2.692Zm1.755-1.784h.11v-4h-.11v4Zm-.226-.028a1.08 1.08 0 0 1-.663-.397c-.097-.129-.068-.17-.032.03l3.936-.71c-.191-1.06-.829-2.57-2.57-2.866l-.671 3.943Zm-.724-.617c.011.215.044.72.095 1.497l3.992-.266c-.053-.786-.083-1.26-.093-1.44l-3.994.21Zm.094 1.482c.036.595.052 1.057.052 1.398 0 .38-.022.492-.014.456l3.918.806c.08-.39.096-.852.096-1.262 0-.451-.021-1-.059-1.634l-3.993.236Zm.04 1.842a.369.369 0 0 1-.057.153l3.246 2.337c.365-.507.599-1.07.724-1.66l-3.913-.83Zm-.058.154c-.008.011.048-.072.193-.161.163-.1.38-.172.619-.172v4c1.161 0 1.967-.68 2.436-1.332l-3.248-2.335Zm.812-.333c.173 0 .338.035.482.094.14.057.235.126.288.172.093.08.074.102-.01-.06l-3.552 1.839c.379.73 1.227 1.955 2.792 1.955v-4Zm.773.23a2.486 2.486 0 0 1-.088-.213l-3.745 1.404c.075.202.16.409.255.599l3.578-1.79Zm-.081-.195a2.893 2.893 0 0 0-.179-.403 2.115 2.115 0 0 0-.297-.42c-.089-.097-.602-.665-1.497-.665v4a1.987 1.987 0 0 1-1.463-.644 1.862 1.862 0 0 1-.254-.355c-.057-.105-.08-.175-.069-.145l3.759-1.367Zm-1.973-1.488c-.407 0-.711.127-.766.149a2.45 2.45 0 0 0-.251.119 3.807 3.807 0 0 0-.265.162l2.219 3.328c.028-.018.009-.004-.038.021a1.728 1.728 0 0 1-.404.158c-.09.023-.267.063-.495.063v-4Zm-1.29.435c-1.191.803-2.316 1.883-3.384 3.19l3.097 2.531c.89-1.088 1.734-1.873 2.522-2.403l-2.235-3.318Zm-3.388 3.195c-1.166 1.435-2.04 2.897-2.355 4.353l3.909.847c.122-.565.55-1.447 1.551-2.678l-3.105-2.522Zm-2.355 4.352a5.137 5.137 0 0 0-.124 1.08h4c0-.025.004-.1.033-.23l-3.909-.85Zm-.124 1.08c0 .866.303 1.822 1.161 2.492.763.595 1.676.727 2.402.727v-4c-.137 0-.189-.014-.181-.011.012.003.112.03.239.13.137.107.249.252.316.41a.696.696 0 0 1 .063.253h-4Zm3.563 3.22c1.061 0 2.215-.418 3.318-.948l-1.731-3.606c-.98.47-1.46.553-1.587.553v4Zm3.339-.958c.991-.49 1.864-1.016 2.582-1.59l-2.499-3.124c-.427.342-1.033.722-1.855 1.128l1.772 3.586Zm2.533-1.552c.083-.062.209-.163.337-.3.097-.105.367-.408.498-.887a2.036 2.036 0 0 0-.524-1.977 2.098 2.098 0 0 0-1.031-.56l-.867 3.905a1.905 1.905 0 0 1-.931-.516 1.958 1.958 0 0 1-.519-.925 1.954 1.954 0 0 1 .013-.98c.122-.45.371-.72.433-.786.093-.1.17-.159.191-.174l2.4 3.2Zm-.259-3.56c-.312-.157-.6-.196-.644-.202a3.149 3.149 0 0 0-.274-.03 7.435 7.435 0 0 0-.461-.011v4c.124 0 .186.002.203.004.011 0-.02-.001-.076-.01a1.613 1.613 0 0 1-.304-.076 1.923 1.923 0 0 1-.233-.098l1.789-3.578Zm-1.379-.243c-.909 0-1.745.037-2.356.172l.868 3.905c.14-.03.585-.077 1.488-.077v-4Zm-2.407.185a16.987 16.987 0 0 1-.536.126l-.018.003.011-.002a.893.893 0 0 1 .1-.01c.028-.003.074-.005.131-.005v4c.296 0 .612-.074.676-.088.164-.035.369-.084.606-.144l-.97-3.88Zm-.312.112c.126 0 .588.033 1.004.449.417.416.45.878.45 1.004h-4c0 .49.124 1.226.722 1.824.599.599 1.334.723 1.824.723v-4Zm1.454 1.453c0 .116-.028.168-.015.138.014-.033.06-.125.177-.277l-3.168-2.441c-.515.667-.994 1.547-.994 2.58h4Zm.154-.129c.207-.264.403-.433.581-.543l-2.096-3.406a6.21 6.21 0 0 0-1.638 1.488l3.153 2.461Zm-.082-.283.797-.157.099-.02.1-.019.1-.02.099-.019.1-.02.099-.019.1-.02.1-.019-.77-3.925-.398.078-.399.078c-.094.018-.105.02-.199.04-.182.035-.017.002-.199.038l-.2.04-.199.038.77 3.925Zm1.564-.307c.568-.103.977-.14 1.254-.14v-4c-.598 0-1.261.076-1.964.203l.71 3.937Zm1.254-.14c.116 0 .17.023.238.076l2.461-3.153a4.318 4.318 0 0 0-2.699-.923v4Zm.238.076c.011.008-.034-.026-.077-.112a.44.44 0 0 1-.051-.183h4c0-1.165-.521-2.163-1.411-2.858l-2.461 3.153Zm-.128-.295c0-.097.031-.054-.097.168-.128.22-.368.535-.779.941l2.813 2.844c1.05-1.04 2.063-2.383 2.063-3.953h-4Zm10.863 2.547h2v-4.115l-3.236 2.542 1.236 1.573Zm-.875.625-1.137-1.646-.006.004-.006.004 1.149 1.638Zm-6.078 1.234-1.813.846.001.001 1.812-.847Zm.718-9.64-1.956-.417-.001.004 1.957.412Zm.625-2.016-1.724-1.013-.006.01-.006.01 1.736.993Zm2.985-.11 1.95.445.094-.414-.082-.416-1.962.385Zm-1.485 5.75-1.922-.552-.002.008-.002.008 1.926.536Zm-.453 1.828-1.955-.419-.003.013 1.958.407Zm.719 2.735-.337-1.972-.028.005-.027.006.392 1.96Zm2.187-1.156-1.114-1.661-.007.004 1.121 1.657Zm2.172-1.61 1.273 1.543.102-.084.089-.096-1.464-1.363Zm.641-1.515-1.956-.417-.003.013 1.959.404Zm.203-6.97-1.933-.51-.118.443.088.451 1.963-.383Zm.766-.858-.874-1.8-.028.014-.028.015.93 1.77Zm2.468.578 1.98-.283-.001-.01-1.979.293Zm-.437 4.562-1.957-.413-.002.011 1.959.402Zm-.828 2.922-1.894-.643-.004.01 1.898.633Zm-.969 2.89-1.895-.638-.007.021-.007.021 1.909.597Zm-.594 1.782 1.799.874.054-.11.04-.118-1.893-.646Zm-1.875.86-1.495 1.328.04.044.041.041 1.414-1.414Zm-.109-1.266 1.873.702.004-.011-1.877-.691Zm.219-.61 1.887.661.113-.32v-.34h-2Zm-1.236-1.588c-.09.07-.331.245-.776.552l2.273 3.291c.431-.297.772-.54.974-.698l-2.471-3.145Zm-.788.56c-.998.7-1.805 1.186-2.432 1.489-.311.15-.554.244-.734.297-.185.055-.259.055-.248.055v4c.926 0 1.87-.339 2.721-.75.894-.431 1.895-1.048 2.99-1.816l-2.297-3.275Zm-3.414 1.84c-.025 0-.015-.002.021.007.038.01.091.03.146.066a.518.518 0 0 1 .119.103c.022.026.022.035.01.009l-3.623 1.694c.281.6.712 1.163 1.34 1.565a3.65 3.65 0 0 0 1.987.557v-4Zm.297.186-.008-.02a.599.599 0 0 1-.021-.066 2.537 2.537 0 0 1-.053-.258 6.465 6.465 0 0 1-.059-.95h-4c0 1.042.109 2.113.516 2.986l3.625-1.692Zm-.141-1.295c0-1.47.313-3.804 1.004-7.087l-3.914-.825c-.704 3.341-1.09 6.008-1.09 7.912h4Zm1.004-7.083c.096-.453.186-.803.266-1.063.086-.276.139-.378.139-.377l-3.473-1.984c-.379.662-.637 1.612-.845 2.591l3.913.833Zm.393-1.42c.021-.036.032-.046.027-.04l-.016.014a.217.217 0 0 1-.056.032l-.011.004a.382.382 0 0 1 .081-.007v-4c-1.467 0-2.718.684-3.474 1.972l3.449 2.026Zm.025.003c.102 0-.072.024-.316-.15a1.097 1.097 0 0 1-.305-.327.837.837 0 0 1-.107-.262l3.925-.771c-.137-.7-.502-1.408-1.2-1.902-.656-.465-1.39-.588-1.997-.588v4Zm-.715-1.569a105.048 105.048 0 0 1-1.457 5.642l3.845 1.104a108.894 108.894 0 0 0 1.512-5.857l-3.9-.889Zm-1.461 5.657c-.187.67-.348 1.32-.482 1.946l3.911.839c.115-.54.257-1.11.424-1.71l-3.853-1.075Zm-.485 1.959c-.172.83-.292 1.599-.292 2.219h4c0-.192.047-.631.208-1.406l-3.916-.813Zm-.292 2.219c0 .473.066 1.174.484 1.812.514.784 1.336 1.141 2.141 1.141v-4a1.494 1.494 0 0 1 1.204.665c.209.32.171.545.171.382h-4Zm2.625 2.953c.234 0 .483-.02.736-.07l-.784-3.922c.045-.01.064-.008.048-.008v4Zm.681-.06c.534-.09 1.05-.327 1.465-.547.452-.239.958-.553 1.506-.924l-2.242-3.313c-.482.327-.856.554-1.133.7-.315.167-.377.16-.27.141l.674 3.943Zm2.965-1.467c.84-.563 1.618-1.139 2.33-1.727l-2.546-3.085c-.6.495-1.27.992-2.013 1.49l2.229 3.322Zm2.521-1.907c.656-.704.965-1.643 1.136-2.475l-3.918-.807c-.054.264-.11.435-.153.535-.044.104-.054.087.008.021l2.927 2.726Zm1.133-2.462c.337-1.585.513-3.111.513-4.573h-4c0 1.143-.138 2.388-.425 3.74l3.912.833Zm.513-4.573c0-1.09-.1-2.157-.303-3.196l-3.926.767c.151.774.229 1.583.229 2.43h4Zm-.333-2.3a.838.838 0 0 1-.178.338c-.064.072-.102.083-.06.061l-1.859-3.541c-.763.4-1.494 1.078-1.769 2.118l3.866 1.024Zm-.294.428a.618.618 0 0 1 .283-.065v-4c-.708 0-1.393.157-2.03.467l1.747 3.597Zm.283-.065c.198 0 .071.042-.16-.107a1.168 1.168 0 0 1-.358-.368 1.043 1.043 0 0 1-.148-.388l3.957-.587c-.118-.792-.535-1.538-1.288-2.022-.668-.43-1.41-.528-2.003-.528v4Zm-.667-.873.002.019.004.06c.003.053.005.124.005.216h4c0-.284-.012-.582-.052-.861l-3.959.566Zm.011.295c0 1.005-.134 2.191-.426 3.57l3.914.828c.333-1.58.512-3.05.512-4.398h-4Zm-.428 3.582c-.145.704-.394 1.593-.763 2.681l3.788 1.286c.401-1.183.704-2.242.893-3.163l-3.918-.804Zm-.767 2.691c-.322.967-.644 1.929-.966 2.885l3.79 1.277c.324-.96.648-1.926.971-2.897l-3.795-1.264Zm-.98 2.927a80.98 80.98 0 0 1-.577 1.732l3.785 1.292c.291-.853.497-1.47.61-1.83l-3.818-1.194Zm-.483 1.504c-.057.115-.101.189-.13.23-.03.043-.032.038-.001.01a.869.869 0 0 1 .238-.148c.133-.057.29-.093.457-.093v4c1.706 0 2.615-1.391 3.033-2.25l-3.597-1.75Zm.564-.001c.116 0 .263.022.418.086.155.064.274.153.356.234l-2.829 2.829a2.873 2.873 0 0 0 2.055.85v-4Zm.854.406a1.027 1.027 0 0 1 .255.672h-4c0 .742.265 1.433.755 1.985l2.99-2.657Zm.255.672a.962.962 0 0 1-.01.162.682.682 0 0 1 .024-.07l-3.746-1.404c-.127.339-.268.804-.268 1.312h4Zm.018.082c.076-.209.153-.422.229-.64l-3.775-1.322c-.07.2-.139.392-.208.58l3.754 1.382Zm.342-1.3v-.016h-4v.015h4Zm4.097 1.546-1.951-.44-.002.01-.002.011 1.955.42Zm.375-1.234-1.871-.706-.007.019-.007.02 1.885.667ZM167.65 54l-1.914-.58-.003.008-.002.008 1.919.564Zm1.047-9.75-1.93-.526-.117.43.076.438 1.971-.342Zm3.234-.078 1.992-.181-.005-.056-.008-.055-1.979.292Zm-.484 4.453 1.954.424.003-.012-1.957-.412Zm-.875 3.047 1.889.656.002-.007.003-.006-1.894-.643Zm-1.032 2.969-1.889-.657-.016.046-.013.046 1.918.565Zm-.64 1.89 1.783.905.058-.114.043-.12-1.884-.67Zm-1.907.735-1.664 1.109 1.664-1.11Zm1.795-.372c.048-.215.145-.543.309-1.008l-3.77-1.335c-.19.536-.343 1.03-.441 1.462l3.902.88Zm.296-.97c.231-.613.407-1.096.484-1.36l-3.837-1.128c-.027.09-.142.42-.39 1.077l3.743 1.411Zm.48-1.344c.871-2.875 1.336-5.51 1.336-7.877h-4c0 1.862-.369 4.092-1.164 6.717l3.828 1.16Zm1.336-7.877c0-.96-.076-1.892-.233-2.795l-3.941.684c.114.66.174 1.363.174 2.111h4Zm-.274-1.927a.86.86 0 0 1-.184.34.564.564 0 0 1-.148.126l-1.789-3.578c-.785.393-1.468 1.069-1.738 2.06l3.859 1.052Zm-.332.466.008-.003a.723.723 0 0 1 .176-.02v-4c-.666 0-1.341.13-1.973.445l1.789 3.578Zm.184-.023c.233 0 .133.048-.078-.09a1.077 1.077 0 0 1-.323-.337.922.922 0 0 1-.125-.328l3.958-.584c-.121-.814-.541-1.587-1.316-2.095-.695-.456-1.475-.566-2.116-.566v4Zm-.539-.866c.003.031.008.111.008.256h4c0-.209-.006-.42-.024-.618l-3.984.362Zm.008.256c0 .907-.141 2.098-.458 3.604l3.915.824c.349-1.66.543-3.147.543-4.428h-4Zm-.455 3.592c-.167.768-.434 1.708-.814 2.828l3.788 1.285c.411-1.212.727-2.304.935-3.265l-3.909-.848Zm-.81 2.815-.004.011-.004.012-.004.011-.004.012-.004.012-.004.011-.004.012-.004.011-.004.012-.004.012-.004.011-.004.012-.004.011-.004.012-.004.012-.004.011-.004.012-.004.011-.004.012-.004.012-.004.011-.004.012-.004.011-.004.012-.004.012-.004.011-.004.012-.004.011-.005.012-.004.012-.004.011-.004.012-.004.011-.004.012-.004.012-.004.011-.004.012-.004.011-.004.012-.004.011-.004.012-.004.012-.004.011-.004.012-.004.011-.004.012-.004.012-.004.011-.004.012-.004.011-.004.012-.004.012-.004.011-.004.012-.004.011-.004.012-.004.012-.004.011-.004.012-.004.011-.004.012-.004.012-.004.011-.005.012-.004.011-.004.012-.004.012-.004.011-.004.012-.004.011-.004.012-.004.012-.004.011-.004.012-.004.011-.004.012-.004.011-.004.012-.004.012-.004.011-.004.012-.004.012-.004.011-.004.012-.004.011-.004.012-.004.012-.004.011-.004.012-.004.011-.004.012-.004.012-.004.011-.004.012-.004.011-.004.012-.004.012-.004.011-.005.012-.004.011-.004.012-.004.012-.004.011-.004.012-.004.011-.004.012-.004.011-.004.012-.004.012-.004.011-.004.012-.004.011-.004.012-.004.012-.002.005-.002.006-.002.006-.002.006-.002.006-.002.005-.002.006-.002.006-.002.006-.002.006-.002.005-.002.006-.002.006-.002.006-.002.006-.002.005a.013.013 0 0 0-.002.006.013.013 0 0 0-.002.006.013.013 0 0 0-.002.006.013.013 0 0 0-.002.006.013.013 0 0 0-.002.005.013.013 0 0 0-.002.006.013.013 0 0 0-.002.006.013.013 0 0 0-.002.006.013.013 0 0 0-.002.006.013.013 0 0 0-.002.005.013.013 0 0 0-.002.006.013.013 0 0 0-.002.006.013.013 0 0 0-.002.006.013.013 0 0 0-.002.006.013.013 0 0 0-.002.005.013.013 0 0 0-.002.006.013.013 0 0 0-.002.006l-.002.006-.002.006a.013.013 0 0 0-.002.005.013.013 0 0 0-.002.006.013.013 0 0 0-.002.006.013.013 0 0 0-.002.006.013.013 0 0 0-.002.006l-.003.005-.002.006-.002.006-.002.006-.002.006-.002.005-.002.006a.013.013 0 0 1-.002.006.013.013 0 0 1-.002.006l-.002.005-.002.006-.002.006-.002.006-.002.006-.002.005-.002.006a.013.013 0 0 1-.002.006l-.002.006-.002.006-.002.005-.002.006-.002.006-.002.006-.002.006-.002.005-.002.006-.002.006-.002.006-.002.006-.002.005-.002.006-.002.006-.002.006-.002.006-.002.005-.002.006-.002.006-.002.006-.002.006-.002.005-.002.006-.002.006-.002.006-.002.006-.002.005-.002.006-.002.006a.013.013 0 0 0-.002.006.013.013 0 0 0-.002.006l-.002.005-.002.006a.013.013 0 0 0-.002.006.013.013 0 0 0-.002.006.013.013 0 0 0-.002.006.013.013 0 0 0-.002.005.013.013 0 0 0-.002.006.013.013 0 0 0-.002.006.013.013 0 0 0-.002.006.013.013 0 0 0-.002.006l-.002.005a.013.013 0 0 0-.002.006.013.013 0 0 0-.002.006.013.013 0 0 0-.002.006.013.013 0 0 0-.002.006.013.013 0 0 0-.002.005.013.013 0 0 0-.002.006.013.013 0 0 0-.002.006l-.002.006-.002.006-.002.005-.003.006-.002.006a.013.013 0 0 1-.002.006l-.002.006-.002.005-.002.006-.002.006-.002.006-.002.006-.002.005-.008.024-.008.023-.008.023-.008.023-.008.023-.008.024-.008.023-.008.023-.008.023-.008.023-.008.024-.008.023-.008.023-.008.023-.008.023c-.013.036.004-.012-.009.023l-.008.024-.008.023-.008.023-.008.023-.008.023-.008.024-.008.023-.008.023-.008.023-.008.023-.008.024-.008.023-.008.023-.008.023-.008.023-.008.024c-.013.035.004-.013-.009.023l-.008.023-.008.023-.008.023-.008.024-.008.023-.008.023-.008.023-.008.023 3.779 1.313.257-.742.258-.742.032-.093.033-.093.064-.186.065-.185.064-.186.129-.37.129-.372-3.779-1.312Zm-1.06 3.06c-.087.294-.282.874-.606 1.784l3.768 1.343c.321-.904.553-1.583.675-1.998l-3.837-1.129Zm-.506 1.55c-.06.12-.109.198-.141.244-.034.048-.04.048-.013.023a.869.869 0 0 1 .235-.148c.136-.061.308-.104.5-.104v4c1.688 0 2.587-1.417 2.986-2.205l-3.567-1.81Zm.581.015c.131 0 .328.03.538.141.211.113.347.261.423.374l-3.329 2.219a2.796 2.796 0 0 0 2.368 1.266v-4Zm.961.515a.933.933 0 0 1 .135.341c.029.15.02.28 0 .375l-3.911-.838a3.023 3.023 0 0 0 .447 2.341l3.329-2.219Zm13.527-3.406-1.418-1.411 1.418 1.411Zm-7.313 5.063-.819-1.825-.196.088-.174.128 1.189 1.608Zm-1.844-.72 1.953.435.002-.011.003-.011-1.958-.412Zm.75-2.624-1.897-.633-.002.008-.003.008 1.902.617Zm.766-2.625-1.955-.42-.002.008 1.957.412Zm.422-4.735 1.994-.16-.117-1.453-1.419-.334-.458 1.947Zm1.141-2.703.627 1.9.01-.004-.637-1.896Zm3.437-1.14-.573-1.916-.025.007-.024.008.622 1.9Zm6.828 3.109-1.955-.42-.002.009 1.957.411Zm-10.562 9.094-.378 1.964.187.036h.191v-2Zm.218-.078.718 1.866.055-.02.054-.025-.827-1.821Zm4.172-3.141 1.41 1.419.008-.009-1.418-1.41Zm-2.109-5.516.673 1.884.01-.004.009-.003-.692-1.877Zm-.297.438-1.954-.425-.025.114-.012.117 1.991.194Zm-.469 3.547 1.954.427.003-.013.002-.012-1.959-.402Zm-1.297 4.562-1.899-.626-.013.038-.011.039 1.923.55Zm-.125.328 1.696 1.06.082-.13.061-.142-1.839-.788Zm-.5-.218.378-1.964-1.859-.358-.459 1.837 1.94.485Zm5.364-4.052a22.22 22.22 0 0 1-6.714 4.649l1.638 3.65a26.217 26.217 0 0 0 7.911-5.477l-2.835-2.822Zm-7.084 4.865a.788.788 0 0 1 .262-.134c.014-.004-.028.008-.151.008v4c.667 0 1.53-.113 2.267-.657l-2.378-3.217Zm.111-.126c.011 0 .097 0 .227.04.138.041.329.127.515.295.417.377.461.821.461.946h-4c0 .605.177 1.409.86 2.025.643.58 1.411.694 1.937.694v-4Zm1.203 1.281c0 .083-.01.141-.016.169l-3.905-.868c-.048.215-.079.45-.079.7h4Zm-.011.147c.102-.486.325-1.279.695-2.42l-3.805-1.234c-.38 1.17-.657 2.128-.805 2.83l3.915.824Zm.69-2.405c.39-1.172.676-2.135.825-2.845l-3.914-.824c-.101.477-.326 1.264-.706 2.404l3.795 1.265Zm.823-2.837c.327-1.52.498-2.969.498-4.342h-4c0 1.043-.13 2.208-.408 3.502l3.91.84Zm.498-4.342c0-.33-.012-.655-.037-.972l-3.988.319c.017.203.025.42.025.653h4Zm-1.573-2.76c.056.014.302.09.518.365a.988.988 0 0 1 .227.567h-4c0 .595.147 1.292.626 1.902.481.613 1.126.922 1.713 1.06l.916-3.893Zm.745.932a.919.919 0 0 1-.099.414c-.057.11-.112.156-.103.149.011-.01.068-.055.202-.124.132-.067.316-.145.565-.228l-1.255-3.798c-.767.254-1.533.605-2.139 1.133-.651.568-1.171 1.398-1.171 2.454h4Zm.575.208c1.141-.384 2.282-.762 3.422-1.136l-1.244-3.801a446.98 446.98 0 0 0-3.453 1.146l1.275 3.79Zm3.373-1.12c1.194-.357 2.178-.51 2.974-.51v-4c-1.287 0-2.668.243-4.12.678l1.146 3.832Zm2.974-.51c.652 0 .983.16 1.172.315l2.531-3.099c-1.062-.866-2.355-1.216-3.703-1.216v4Zm1.172.315c.111.09.203.193.203.544h4c0-1.42-.533-2.712-1.672-3.643l-2.531 3.099Zm.203.544c0 .117-.013.257-.049.425l3.911.838c.089-.416.138-.838.138-1.263h-4Zm-.051.433c-.264 1.255-1.321 3.038-3.648 5.375l2.835 2.822c2.486-2.497 4.22-4.963 4.727-7.375l-3.914-.822Zm-8.605 11.505a2.023 2.023 0 0 0 .492-.061c.056-.014.101-.028.124-.035a9.496 9.496 0 0 0 .32-.115l-1.436-3.734a8.72 8.72 0 0 1-.11.042c-.01.003.005-.003.033-.011l.098-.028a1.986 1.986 0 0 1 .479-.058v4Zm1.045-.257c1.546-.702 3.133-1.932 4.755-3.543l-2.819-2.838c-1.461 1.451-2.656 2.315-3.589 2.738l1.653 3.643Zm4.763-3.552c1.023-1.028 1.858-2.018 2.448-2.966.575-.924 1.025-1.975 1.025-3.085h-4c0 .047-.032.347-.42.97-.374.6-.984 1.351-1.889 2.26l2.836 2.821Zm3.473-6.05c0-.994-.394-1.996-1.336-2.657-.812-.57-1.783-.703-2.602-.703v4c.213 0 .336.02.393.032.056.014.006.011-.088-.055a.927.927 0 0 1-.295-.354.665.665 0 0 1-.072-.264h4Zm-3.938-3.36c-1.346 0-2.61.186-3.755.608l1.385 3.753c.606-.224 1.383-.361 2.37-.361v-4Zm-3.735.6c-1.113.398-1.469 1.395-1.578 1.897l3.908.85c-.008.039-.047.205-.186.409a1.63 1.63 0 0 1-.798.612l-1.346-3.767Zm-1.615 2.128c-.155 1.592-.303 2.687-.437 3.338l3.918.805c.179-.869.343-2.139.501-3.755l-3.982-.388Zm-.432 3.314c-.25 1.148-.66 2.598-1.242 4.363l3.799 1.252c.606-1.839 1.06-3.43 1.351-4.761l-3.908-.854Zm-1.266 4.44.012-.038-.004.012-.048.115 3.677 1.576c.068-.158.152-.365.209-.566l-3.846-1.1Zm.102-.183a1.757 1.757 0 0 1 1.478-.815v4c.822 0 1.518-.43 1.914-1.065l-3.392-2.12Zm1.478-.815c.261 0 .529.06.777.184.24.12.411.275.522.405l-3.037 2.604c.379.44.978.807 1.738.807v-4Zm1.299.59c.128.148.272.372.352.672.082.31.074.614.008.88l-3.881-.97a2.252 2.252 0 0 0 .484 2.02l3.037-2.603Zm-1.958 3.03.406.079.755-3.928-.406-.078-.755 3.928Zm15.912-6.198-1.841-.78-1.535 3.622 3.831-.894-.455-1.948Zm2.813-.656-.418-1.956-.018.004-.019.004.455 1.948Zm4.172.875 1.959.403.002-.01-1.961-.393Zm-.735.75.16 1.994.257-.021.244-.085-.661-1.888Zm-4.281.75.454 1.948.007-.002.007-.002-.468-1.944Zm-1.672.422-.564-1.919-.008.003.572 1.916Zm-1.5.672-1.767-.936-.011.02-.011.021 1.789.895Zm.891 1.531-.81 1.829.008.003.802-1.832Zm4.094-.016.475 1.943.012-.003.012-.003-.499-1.937Zm2.437-.718-.535-1.927-.023.006-.024.007.582 1.914Zm1.563.062 1.258-1.554-.035-.029-.037-.027-1.186 1.61Zm.25.64-1.958-.407-.001.004 1.959.404Zm-1.297 1.016.754 1.853h.001l-.755-1.853Zm-9.797.72 1.293-1.527-.002-.002-1.291 1.528Zm-1-3.579-1.956-.42-.001.009-.002.008 1.959.403Zm3.703-6.172-1.462-1.364-.003.002 1.465 1.362Zm7.141-4.86-.033-1.999-.359.006-.334.13.726 1.864Zm1.547.86-1.655 1.123.008.012.008.012 1.639-1.147Zm.281 2.953-1.766-.938-.004.007 1.77.931Zm-5.735 1.907 1.224 1.581h.002l-1.226-1.581Zm-2.42 4.79h.005l.006-.002h.005l.006-.002.005-.002h.006l.005-.002.006-.001.005-.002h.006l.005-.002.006-.001.005-.002.006-.001.005-.001.006-.002h.005l.006-.002.005-.001.006-.002.005-.001.006-.001.005-.002h.006l.005-.002.006-.001.005-.002.006-.001.005-.001.006-.002h.005l.006-.002.005-.001.006-.002h.005l.006-.002.005-.002h.006l.005-.002.006-.001.005-.002h.006l.005-.002.006-.002h.005l.006-.002.005-.001.006-.002h.005l.006-.002.005-.001a.129.129 0 0 1 .011-.003l.006-.001.005-.002h.006l.005-.002.006-.001.005-.002.005-.001.006-.001.005-.002a.129.129 0 0 1 .011-.002l.006-.001.005-.002h.006l.005-.002.006-.002h.005a.129.129 0 0 0 .011-.003l.006-.002h.005l.006-.002.005-.002a.129.129 0 0 0 .011-.002l.006-.001.005-.002h.006l.005-.002.006-.002h.005l.006-.002.005-.001.006-.002h.005l.006-.002.005-.001.006-.002.005-.001.006-.001.005-.002h.006l.005-.002.006-.001.005-.002.006-.001.005-.001.006-.002h.005l.006-.002.005-.001.006-.002h.005l.006-.002.005-.002h.006l.005-.002.006-.001.005-.002h.006l.005-.002.006-.002h.005a.129.129 0 0 1 .011-.003l.006-.002h.005l.006-.002.005-.001.006-.002.005-.001.006-.001.005-.002h.006l.005-.002a.129.129 0 0 1 .011-.003l.006-.001.005-.001.005-.002h.006l.005-.002.006-.001.005-.002h.006l.005-.002.006-.002h.005a.129.129 0 0 0 .011-.003l.006-.002h.005l.006-.002.005-.002h.006l.005-.002.006-.001.005-.002h.006l.005-.002a.129.129 0 0 0 .011-.003l.006-.001.005-.001.006-.002h.005l.006-.002.005-.001.006-.002.005-.001.006-.001.005-.002h.006l.005-.002.006-.001.005-.002.006-.001.005-.001.006-.002h.005l.006-.002.005-.001.006-.002h.005l.006-.002.005-.002h.006l.005-.002.006-.001.005-.002a.129.129 0 0 1 .011-.002l.006-.002h.005l.006-.002.005-.001.006-.002h.005l.006-.002.005-.001a.129.129 0 0 1 .011-.003l.006-.001.005-.002h.006l.005-.002.006-.001.005-.002.006-.001.005-.001.006-.002h.005l.005-.002.006-.001.005-.002a.129.129 0 0 0 .011-.002l.006-.002h.005l.006-.002.005-.001.006-.002h.005l.006-.002.005-.002a.129.129 0 0 0 .011-.002l.006-.001.005-.002h.006l.005-.002a.129.129 0 0 0 .011-.003l.006-.001.005-.001.006-.002h.005l.006-.002.005-.001.006-.002.005-.001.006-.001.005-.002h.006l.005-.002.006-.001.005-.002.006-.001.005-.001.006-.002h.005l.006-.002.005-.001.006-.002h.005l.006-.002.005-.002h.006l.005-.002.006-.001.005-.002h.006l.005-.002.006-.002h.005l.006-.002.005-.001.006-.002h.005l.006-.002.005-.001.006-.002.005-.001.006-.001.005-.002h.006l.005-.002.006-.001.005-.002.006-.001.005-.001.006-.002h.005l.006-.002.005-.001.005-.002.006-.001.005-.001.006-.002h.005l.006-.002.005-.001.006-.002h.005l.006-.002.005-.002a.129.129 0 0 0 .011-.002l.006-.001.005-.002h.006l.005-.002.006-.002h.005l.006-.002.005-.001.006-.002h.005l.006-.002.005-.001.006-.002.005-.001.006-.001.005-.002h.006l.005-.002.006-.001.005-.002.006-.001.005-.001.006-.002h.005l.006-.002.005-.001.006-.002h.005l.006-.002.005-.002h.006l.005-.002.006-.001.005-.002h.006l.005-.002.006-.002h.005l.006-.002.005-.001.006-.002h.005l.006-.002.005-.001.006-.002.005-.001.006-.001.005-.002h.006l.005-.002a.129.129 0 0 1 .011-.003l.006-.001.005-.001.006-.002h.005a.129.129 0 0 1 .011-.003l.006-.002.005-.001.005-.001.006-.002h.005l.006-.002.005-.001.006-.002h.005l.006-.002.005-.002h.006l.005-.002.006-.001.005-.002h.006l.005-.002a.129.129 0 0 0 .011-.003l.006-.001.005-.001.006-.002h.005l.006-.002.005-.001.006-.002.005-.001.006-.001.005-.002h.006l.005-.002.006-.001.005-.002.006-.001.005-.001.006-.002h.005l.006-.002.005-.001.006-.002h.005l.006-.002.005-.002h.006l.005-.002.006-.001.005-.002h.006l.005-.002.006-.002h.005l.006-.002.005-.001a.129.129 0 0 1 .011-.003l.006-.001.005-.002h.006l.005-.002.006-.001.005-.002h.006l.005-.002.006-.001.005-.002.006-.001.005-.001.006-.002h.005l.006-.002.005-.001.006-.002.005-.001.006-.001.005-.002h.005l.006-.002.005-.001.006-.002h.005a.129.129 0 0 1 .011-.004h.006l.005-.002.006-.001.005-.002a.129.129 0 0 1 .011-.002l.006-.002h.005l.006-.002.005-.001.006-.002h.005a.129.129 0 0 0 .011-.003l.006-.002.005-.001.006-.001.005-.002h.006l.005-.002.006-.001.005-.002.006-.001.005-.001.006-.002h.005l.006-.002.005-.001.006-.002h.005l.006-.002.005-.002h.006l.005-.002.006-.001.005-.002h.006l.005-.002.006-.002h.005l.006-.002.005-.001.006-.002h.005l.006-.002.005-.002h.006l.005-.002.006-.001.005-.002h.006l.005-.002.006-.001.005-.002.006-.001.005-.001.006-.002h.005l.006-.002.005-.001.006-.002.005-.001.006-.001.005-.002h.006l.005-.002.005-.001.006-.002h.005l.006-.002.005-.002h.006l.005-.002.006-.001.005-.002h.006l.005-.002.006-.002h.005l.006-.002.005-.001-.909-3.896-.005.002h-.005l-.006.002-.005.001-.006.002-.005.001-.006.001-.005.002h-.006l-.005.002-.006.001-.005.002-.006.001-.005.001-.006.002h-.005a.129.129 0 0 1-.011.003.129.129 0 0 0-.011.003l-.006.001-.005.002h-.006l-.005.002-.006.001-.005.002h-.006l-.005.002-.006.002h-.005l-.006.002-.005.001-.006.002h-.005l-.006.002-.005.002h-.006l-.005.002-.006.001-.005.002h-.006l-.005.002-.006.001-.005.002-.006.001-.005.001-.006.002h-.005l-.006.002-.005.001-.006.002-.005.001-.006.001-.005.002a.129.129 0 0 1-.011.002l-.006.001-.005.002h-.006l-.005.002-.006.002h-.005l-.006.002-.005.001-.006.002h-.005l-.006.002-.005.002h-.006l-.005.002-.006.001-.005.002h-.006l-.005.002-.005.001-.006.002-.005.001-.006.001-.005.002h-.006l-.005.002-.006.001-.005.002-.006.001-.005.001-.006.002h-.005a.129.129 0 0 1-.011.003l-.006.002-.005.001-.006.001-.005.002h-.006l-.005.002a.129.129 0 0 0-.011.003h-.006l-.005.002-.006.002h-.005l-.006.002-.005.001-.006.002h-.005l-.006.002-.005.002h-.006l-.005.002-.006.001-.005.002h-.006l-.005.002-.006.001-.005.002-.006.001-.005.001-.006.002h-.005l-.006.002-.005.001-.006.002-.005.001-.006.001-.005.002h-.006l-.005.002-.006.001-.005.002h-.006l-.005.002a.129.129 0 0 1-.011.003l-.006.001-.005.001-.006.002h-.005l-.006.002-.005.002h-.006l-.005.002-.006.001-.005.002h-.006l-.005.002a.129.129 0 0 0-.011.003l-.005.001-.006.001-.005.002h-.006l-.005.002-.006.001-.005.002-.006.001-.005.001a.129.129 0 0 0-.011.003l-.006.001-.005.001-.006.002-.005.001-.006.001-.005.002h-.006l-.005.002-.006.001-.005.002h-.006l-.005.002-.006.002h-.005l-.006.002-.005.001-.006.002h-.005l-.006.002-.005.002h-.006l-.005.002-.006.001-.005.002h-.006l-.005.002-.006.001-.005.002-.006.001-.005.001-.006.002h-.005l-.006.002-.005.001-.006.002-.005.001-.006.001-.005.002a.129.129 0 0 1-.011.002l-.006.001-.005.002h-.006l-.005.002-.006.002h-.005l-.006.002-.005.001-.006.002h-.005l-.006.002-.005.002h-.006l-.005.002-.006.001-.005.002h-.006l-.005.002-.006.002h-.005l-.006.002-.005.001-.005.002a.129.129 0 0 0-.011.002l-.006.001-.005.002-.006.001-.005.001a.129.129 0 0 0-.011.003l-.006.001-.005.001-.006.002-.005.001-.006.001-.005.002a.129.129 0 0 1-.011.002.129.129 0 0 0-.011.003h-.006l-.005.002-.006.002h-.005a.129.129 0 0 0-.011.003l-.006.002h-.005l-.006.002-.005.002h-.006l-.005.002-.006.001-.005.002h-.006l-.005.002-.006.001-.005.002-.006.001-.005.001-.006.002h-.005l-.006.002-.005.001-.006.002-.005.001-.006.001-.005.002h-.006l-.005.002-.006.001-.005.002-.006.001-.005.001a.129.129 0 0 1-.011.003l-.006.001-.005.001-.006.002h-.005l-.006.002-.005.002h-.006l-.005.002-.006.001-.005.002h-.006l-.005.002a.129.129 0 0 0-.011.003.129.129 0 0 1-.011.002l-.006.002h-.005l-.005.002-.006.001-.005.002-.006.001-.005.001a.129.129 0 0 0-.011.003.129.129 0 0 1-.011.002l-.006.002-.005.001-.006.001-.005.002h-.006l-.005.002-.006.001-.005.002h-.006l-.005.002-.006.002h-.005a.129.129 0 0 0-.011.003l-.006.002h-.005l-.006.002-.005.002h-.006l-.005.002-.006.001-.005.002h-.006l-.005.002-.006.001-.005.002-.006.001-.005.001-.006.002h-.005l-.006.002-.005.001-.006.002-.005.001-.006.001-.005.002h-.006l-.005.002-.006.001-.005.002-.006.001-.005.001a.129.129 0 0 1-.011.003l-.006.001-.005.001-.006.002h-.005a.129.129 0 0 1-.011.004h-.006l-.005.002-.006.001-.005.002h-.006l-.005.002-.006.002h-.005l-.006.002-.005.001-.006.002h-.005a.129.129 0 0 0-.011.003l-.005.002-.006.001-.005.001a.129.129 0 0 0-.011.003l-.006.001-.005.001-.006.002-.005.001-.006.001-.005.002a.129.129 0 0 1-.011.002l-.006.001-.005.002h-.006l-.005.002-.006.002h-.005l-.006.002-.005.001-.006.002h-.005l-.006.002-.005.002h-.006l-.005.002-.006.001-.005.002h-.006l-.005.002-.006.001-.005.002-.006.001-.005.001-.006.002h-.005l-.006.002-.005.001-.006.002-.005.001-.006.001-.005.002h-.006l-.005.002-.006.001-.005.002-.006.001-.005.001-.006.002h-.005l-.006.002-.005.001-.006.002h-.005l-.006.002-.005.001-.006.002-.005.001-.006.001-.005.002h-.006l-.005.002a.129.129 0 0 0-.011.003.129.129 0 0 1-.011.002l-.006.002h-.005l-.006.002-.005.001-.006.002-.005.001-.005.001-.006.002h-.005l-.006.002-.005.001-.006.002-.005.001a.129.129 0 0 0-.011.002l-.006.002-.005.001-.006.001-.005.002h-.006l-.005.002a.129.129 0 0 1-.011.003.129.129 0 0 0-.011.002l-.006.002h-.005l-.006.002-.005.002h-.006l-.005.002-.006.001-.005.002h-.006l-.005.002-.006.002h-.005l-.006.002-.005.001-.006.002h-.005l-.006.002-.005.001-.006.002-.005.001-.006.001-.005.002h-.006l-.005.002-.006.001-.005.002-.006.001-.005.001-.006.002h-.005l-.006.002-.005.001-.006.002h-.005l-.006.002-.005.002h-.006l-.005.002-.006.001-.005.002h-.006l-.005.002-.006.002h-.005l-.006.002-.005.001-.006.002h-.005l-.006.002-.005.001a.129.129 0 0 1-.011.003l-.006.001-.005.002.909 3.895Zm2.776-.647c.976-.209 1.784-.3 2.441-.3v-4c-1.009 0-2.107.138-3.277.388l.836 3.912Zm2.441-.3c.114 0 .152.01.135.007a.84.84 0 0 1-.271-.132 1.255 1.255 0 0 1-.409-.485 1.071 1.071 0 0 1-.111-.452h4c0-.857-.348-1.755-1.192-2.344-.712-.497-1.533-.594-2.152-.594v4Zm-.656-1.062c0-.041.003-.071.004-.088a.079.079 0 0 1 .004-.023l3.922.784c.04-.2.07-.428.07-.673h-4Zm.01-.122c.038-.186.136-.384.292-.543a.776.776 0 0 1 .272-.192l1.321 3.776c.91-.319 1.785-1.031 2.033-2.235l-3.918-.806Zm1.065-.84c-.304.024-.772.075-1.377.148l.479 3.971c.603-.073 1-.115 1.217-.132l-.319-3.988Zm-1.377.148c-.73.088-1.825.316-3.213.65l.936 3.89c1.383-.333 2.278-.511 2.756-.569l-.479-3.971Zm-3.198.647c-.767.179-1.371.33-1.783.451l1.129 3.838a31.58 31.58 0 0 1 1.561-.393l-.907-3.896Zm-1.791.454c-.486.145-.934.298-1.3.462a4.016 4.016 0 0 0-.601.327 2.42 2.42 0 0 0-.794.863l3.535 1.871c-.115.218-.246.36-.323.434a1.323 1.323 0 0 1-.179.146c-.057.04-.071.04-.003.01.061-.028.157-.067.298-.116.139-.049.308-.104.512-.165l-1.145-3.832Zm-2.717 1.693a2.797 2.797 0 0 0-.273 1.254h4c0 .006 0 .056-.014.136a1.487 1.487 0 0 1-.135.4l-3.578-1.79Zm-.273 1.254c0 1.6 1.116 2.546 2.143 3l1.619-3.657c-.132-.059-.074-.061.028.063.054.067.112.16.153.277a.945.945 0 0 1 .057.317h-4Zm2.151 3.004a5.935 5.935 0 0 0 2.396.496v-4a1.93 1.93 0 0 1-.792-.16l-1.604 3.664Zm2.396.496c.931 0 1.928-.145 2.975-.4l-.95-3.886c-.829.202-1.498.286-2.025.286v4Zm2.999-.407c.374-.096 1.234-.35 2.52-.742l-1.164-3.827c-1.317.4-2.083.626-2.355.696l.999 3.873Zm2.473-.728c.142-.04.245-.063.315-.075.073-.013.081-.009.041-.009v-4c-.488 0-.99.108-1.426.23l1.07 3.854Zm.356-.084a.898.898 0 0 1-.515-.171l2.373-3.22a3.103 3.103 0 0 0-1.858-.609v4Zm-.587-.226a1.399 1.399 0 0 1-.449-1.322l3.916.816c.095-.46.08-.975-.119-1.483a2.708 2.708 0 0 0-.831-1.12l-2.517 3.109Zm-.45-1.318c.049-.238.146-.41.221-.512a.86.86 0 0 1 .126-.14s-.031.024-.11.067a3.406 3.406 0 0 1-.331.153l1.511 3.703c.483-.197.977-.445 1.396-.773.403-.316.934-.862 1.105-1.69l-3.918-.808Zm-.092-.433c-2.629 1.07-4.641 1.524-6.106 1.524v4c2.202 0 4.764-.66 7.614-1.82l-1.508-3.704Zm-6.106 1.524c-.847 0-1.333-.215-1.644-.479l-2.586 3.052c1.189 1.007 2.661 1.427 4.23 1.427v-4Zm-1.646-.48c-.233-.198-.4-.462-.4-1.035h-4c0 1.593.572 3.037 1.818 4.09l2.582-3.056Zm-.4-1.035c0-.173.019-.376.068-.613l-3.918-.806c-.097.471-.15.945-.15 1.419h4Zm.065-.597c.299-1.398 1.269-3.139 3.212-5.23l-2.93-2.723c-2.182 2.348-3.681 4.721-4.194 7.115l3.912.838Zm3.209-5.226c1.83-1.962 3.96-3.409 6.404-4.36l-1.451-3.728c-3.014 1.173-5.645 2.966-7.877 5.359l2.924 2.729Zm5.711-4.224c.004 0-.014 0-.045-.008a.38.38 0 0 1-.095-.037c-.065-.036-.057-.056 0 .027l3.31-2.246c-.726-1.07-1.843-1.759-3.235-1.736l.065 4Zm-.124.006c.114.162.185.355.185.65h4c0-1.06-.292-2.064-.908-2.944l-3.277 2.294Zm.185.65c0 .163-.031.217-.031.218l3.532 1.877a4.427 4.427 0 0 0 .499-2.095h-4Zm-.035.225a1.04 1.04 0 0 1 .848-.475v4c.543 0 1.106-.137 1.618-.467.502-.323.845-.76 1.074-1.195l-3.54-1.863Zm.848-.475a1.022 1.022 0 0 1 .26.035l-.03-.014a1.448 1.448 0 0 1-.107-.057l-2.028 3.447c.469.276 1.137.589 1.905.589v-4Zm.123-.036a64.382 64.382 0 0 1-.372-.221l-.047-.03.021.015.064.045c.015.011.043.032.077.06a2.02 2.02 0 0 1 .379.415 1.998 1.998 0 0 1-.516 2.773 2 2 0 0 1-1.135.354v-4a2 2 0 0 0-1.186 3.612c.06.044.114.079.128.088.045.03.097.06.142.088.098.06.239.143.417.248l2.028-3.447Zm-1.529-.589c-.867 0-1.699.408-2.294.746-.684.39-1.469.937-2.338 1.61l2.451 3.162c.797-.618 1.414-1.039 1.865-1.295a3.38 3.38 0 0 1 .459-.227c.101-.038.035.004-.143.004v-4Zm-4.63 2.356c-.862.666-1.585 1.278-2.144 1.831-.514.51-1.058 1.128-1.349 1.814l3.683 1.56c-.03.072.035-.09.479-.53.399-.395.983-.897 1.778-1.512l-2.447-3.163Z" + mask="url(#a)" + /> ); From 861cb6224cb15942617b2ff83cd5f1557de78db3 Mon Sep 17 00:00:00 2001 From: Lewin Bobda <116130662+Lewin-B@users.noreply.github.com> Date: Tue, 13 May 2025 16:58:03 -0400 Subject: [PATCH 09/15] Light mode works --- apps/blade/package.json | 2 + apps/blade/src/app/emailTest/page.tsx | 13 +- .../emails/acceptance-email.tsx | 396 ++++-- .../emails/assets/confirm-box.tsx | 29 - .../emails/assets/confirm-button.tsx | 30 - .../emails/assets/congrats-box.tsx | 34 - .../email-templates/emails/assets/contact.tsx | 35 - .../emails/assets/discord-box.tsx | 29 - .../emails/assets/discord-button.tsx | 26 - .../emails/assets/graphics-box.tsx | 29 - .../emails/assets/graphics-button.tsx | 31 - .../emails/assets/guide-button.tsx | 45 - apps/email-templates/emails/assets/hero.tsx | 308 ----- .../email-templates/emails/assets/kh-logo.tsx | 167 --- .../emails/assets/next-steps-divider.tsx | 27 - .../emails/assets/resources-divider.tsx | 26 - .../emails/assets/website-button.tsx | 46 - apps/email-templates/package.json | 11 +- packages/api/src/routers/email.ts | 2 +- pnpm-lock.yaml | 1187 ++++++++++++++++- 20 files changed, 1509 insertions(+), 964 deletions(-) delete mode 100644 apps/email-templates/emails/assets/confirm-box.tsx delete mode 100644 apps/email-templates/emails/assets/confirm-button.tsx delete mode 100644 apps/email-templates/emails/assets/congrats-box.tsx delete mode 100644 apps/email-templates/emails/assets/contact.tsx delete mode 100644 apps/email-templates/emails/assets/discord-box.tsx delete mode 100644 apps/email-templates/emails/assets/discord-button.tsx delete mode 100644 apps/email-templates/emails/assets/graphics-box.tsx delete mode 100644 apps/email-templates/emails/assets/graphics-button.tsx delete mode 100644 apps/email-templates/emails/assets/guide-button.tsx delete mode 100644 apps/email-templates/emails/assets/hero.tsx delete mode 100644 apps/email-templates/emails/assets/kh-logo.tsx delete mode 100644 apps/email-templates/emails/assets/next-steps-divider.tsx delete mode 100644 apps/email-templates/emails/assets/resources-divider.tsx delete mode 100644 apps/email-templates/emails/assets/website-button.tsx diff --git a/apps/blade/package.json b/apps/blade/package.json index beff788a5..6a7b24237 100644 --- a/apps/blade/package.json +++ b/apps/blade/package.json @@ -21,8 +21,10 @@ "@forge/auth": "workspace:*", "@forge/consts": "workspace:*", "@forge/db": "workspace:*", + "@forge/emails": "workspace:^", "@forge/ui": "workspace:*", "@forge/validators": "workspace:*", + "@react-email/render": "1.1.0", "@stripe/react-stripe-js": "^3.0.0", "@stripe/stripe-js": "^5.2.0", "@t3-oss/env-nextjs": "^0.11.1", diff --git a/apps/blade/src/app/emailTest/page.tsx b/apps/blade/src/app/emailTest/page.tsx index 431725785..a752ee73c 100644 --- a/apps/blade/src/app/emailTest/page.tsx +++ b/apps/blade/src/app/emailTest/page.tsx @@ -1,12 +1,19 @@ +import { pretty, render } from "@react-email/render"; + +import { AcceptanceEmail } from "~/../../email-templates/emails/acceptance-email"; import { api } from "~/trpc/server"; -export default function EmailPage() { - api.email.sendEmail({ +export default async function EmailPage() { + const html = await pretty( + await render(), + ); + await api.email.sendEmail({ from: "donotreply@knighthacks.org", to: "lwbobda@gmail.com", subject: "test", - body: "test", + body: html, }); + return ( <> diff --git a/apps/email-templates/emails/acceptance-email.tsx b/apps/email-templates/emails/acceptance-email.tsx index 6c3eae41b..48389765b 100644 --- a/apps/email-templates/emails/acceptance-email.tsx +++ b/apps/email-templates/emails/acceptance-email.tsx @@ -3,26 +3,13 @@ import { Container, Head, Html, + Img, Preview, Section, Tailwind, Text, } from "@react-email/components"; -import ConfirmBox from "./assets/confirm-box"; -import ConfirmButton from "./assets/confirm-button"; -import CongratsBox from "./assets/congrats-box"; -import Contact from "./assets/contact"; -import DiscordBox from "./assets/discord-box"; -import DiscordButton from "./assets/discord-button"; -import GraphicsBox from "./assets/graphics-box"; -import GraphicsButton from "./assets/graphics-button"; -import GuideButton from "./assets/guide-button"; -import Hero from "./assets/hero"; -import NextSteps from "./assets/next-steps-divider"; -import ResourcesDivider from "./assets/resources-divider"; -import WebsiteButton from "./assets/website-button"; - interface AcceptanceEmailProps { name: string; } @@ -47,95 +34,326 @@ export const AcceptanceEmail = ({ name }: AcceptanceEmailProps) => { {previewText} - -
-
- -
- - Congrats,  - - Katherina - - + + {/* HERO SECTION */} +
+ + + + +
+ +    Congrats,  + + {name} + + +
-
- + {/* BANNER IMAGE */} +
+ KnightHacks Banner
-
- + {/* DIVIDER IMAGE - Properly centered */} +
+ + + + +
+ Divider +
-
- - 1. CONFIRM YOUR{" "} - SPOT! - - - (Spots are filling up quickly confirm ASAP!) - - - + {/* 1. CONFIRM YOUR SPOT */} +
+ + + + + + + + + + + + + +
+ + 1. CONFIRM YOUR{" "} + SPOT! + +
+ + (Spots are filling up quickly confirm ASAP!) + +
+ Confirm Spot Graphic +
+ + Confirm Button + +
-
- - 2. JOIN OUR{" "} - DISCORD! - - - (Required by October 23rd) - - -
- - - - -
+ {/* 2. JOIN OUR DISCORD */} +
+ + + + + + + + + + + + + +
+ + 2. JOIN OUR{" "} + DISCORD! + +
+ + (Required by October 23rd) + +
+ Discord Graphic +
+ + Join Discord Button + +
-
- - 3. SPREAD THE -
- - EXCITEMENT! - -
- -
- - - - -
+ {/* 3. SPREAD THE EXCITEMENT */} +
+ + + + + + + + + + +
+ + 3. SPREAD THE +
+ + EXCITEMENT! + +
+
+ Social Media Graphic +
+ + Share Button + +
-
- + {/* DIVIDER IMAGE - Properly centered */} +
+ + + + +
+ Divider +
-
- - -
- -
+ {/* RESOURCES LINKS */} +
+ + + + + + + +
+ + + + + +
+ + Resource 1 + + + + Resource 2 + +
+
+ Footer Image +
diff --git a/apps/email-templates/emails/assets/confirm-box.tsx b/apps/email-templates/emails/assets/confirm-box.tsx deleted file mode 100644 index 3c1f20789..000000000 --- a/apps/email-templates/emails/assets/confirm-box.tsx +++ /dev/null @@ -1,29 +0,0 @@ -import { SVGProps } from "react"; - -const ConfirmButton = (props: SVGProps) => ( - - - - - -); - -export default ConfirmButton; diff --git a/apps/email-templates/emails/assets/confirm-button.tsx b/apps/email-templates/emails/assets/confirm-button.tsx deleted file mode 100644 index 5f7d8aeca..000000000 --- a/apps/email-templates/emails/assets/confirm-button.tsx +++ /dev/null @@ -1,30 +0,0 @@ -import { SVGProps } from "react"; - -const ConfirmButton = (props: SVGProps) => ( - - - - - - -); - -export default ConfirmButton; diff --git a/apps/email-templates/emails/assets/congrats-box.tsx b/apps/email-templates/emails/assets/congrats-box.tsx deleted file mode 100644 index 61629c6f9..000000000 --- a/apps/email-templates/emails/assets/congrats-box.tsx +++ /dev/null @@ -1,34 +0,0 @@ -import { SVGProps } from "react"; - -const SvgIcon = (props: SVGProps) => ( - - - - - - - - - -); - -export default SvgIcon; diff --git a/apps/email-templates/emails/assets/contact.tsx b/apps/email-templates/emails/assets/contact.tsx deleted file mode 100644 index 9bb1bbf4c..000000000 --- a/apps/email-templates/emails/assets/contact.tsx +++ /dev/null @@ -1,35 +0,0 @@ -import { SVGProps } from "react"; - -const Contact = (props: SVGProps) => ( - - - - - - - - - -); -export default Contact; diff --git a/apps/email-templates/emails/assets/discord-box.tsx b/apps/email-templates/emails/assets/discord-box.tsx deleted file mode 100644 index 2b3fc7bd9..000000000 --- a/apps/email-templates/emails/assets/discord-box.tsx +++ /dev/null @@ -1,29 +0,0 @@ -import { SVGProps } from "react"; - -const DiscordBox = (props: SVGProps) => ( - - - - - -); - -export default DiscordBox; diff --git a/apps/email-templates/emails/assets/discord-button.tsx b/apps/email-templates/emails/assets/discord-button.tsx deleted file mode 100644 index 6970c7d4b..000000000 --- a/apps/email-templates/emails/assets/discord-button.tsx +++ /dev/null @@ -1,26 +0,0 @@ -import { SVGProps } from "react"; - -const DiscordButton = (props: SVGProps) => ( - - - - - -); - -export default DiscordButton; diff --git a/apps/email-templates/emails/assets/graphics-box.tsx b/apps/email-templates/emails/assets/graphics-box.tsx deleted file mode 100644 index 7b22f9613..000000000 --- a/apps/email-templates/emails/assets/graphics-box.tsx +++ /dev/null @@ -1,29 +0,0 @@ -import { SVGProps } from "react"; - -const GraphicsBox = (props: SVGProps) => ( - - - - - -); - -export default GraphicsBox; diff --git a/apps/email-templates/emails/assets/graphics-button.tsx b/apps/email-templates/emails/assets/graphics-button.tsx deleted file mode 100644 index 22057beb6..000000000 --- a/apps/email-templates/emails/assets/graphics-button.tsx +++ /dev/null @@ -1,31 +0,0 @@ -import { SVGProps } from "react"; - -const GraphicsButton = (props: SVGProps) => ( - - - - - - - - - - - - -); - -export default GraphicsButton; diff --git a/apps/email-templates/emails/assets/guide-button.tsx b/apps/email-templates/emails/assets/guide-button.tsx deleted file mode 100644 index 72b98efbc..000000000 --- a/apps/email-templates/emails/assets/guide-button.tsx +++ /dev/null @@ -1,45 +0,0 @@ -import { SVGProps } from "react"; - -const GuideButton = (props: SVGProps) => ( - - - - - - - - - -); - -export default GuideButton; diff --git a/apps/email-templates/emails/assets/hero.tsx b/apps/email-templates/emails/assets/hero.tsx deleted file mode 100644 index 2068e22da..000000000 --- a/apps/email-templates/emails/assets/hero.tsx +++ /dev/null @@ -1,308 +0,0 @@ -import { SVGProps } from "react"; - -const Hero = (props: SVGProps) => ( - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -); -export default Hero; diff --git a/apps/email-templates/emails/assets/kh-logo.tsx b/apps/email-templates/emails/assets/kh-logo.tsx deleted file mode 100644 index fa2d080d1..000000000 --- a/apps/email-templates/emails/assets/kh-logo.tsx +++ /dev/null @@ -1,167 +0,0 @@ -import { SVGProps } from "react"; - -const KhLogo = (props: SVGProps) => ( - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -); - -export default KhLogo; diff --git a/apps/email-templates/emails/assets/next-steps-divider.tsx b/apps/email-templates/emails/assets/next-steps-divider.tsx deleted file mode 100644 index c49226509..000000000 --- a/apps/email-templates/emails/assets/next-steps-divider.tsx +++ /dev/null @@ -1,27 +0,0 @@ -import * as React from "react"; -import { SVGProps } from "react"; - -const NextSteps = (props: SVGProps) => ( - - - - - -); - -export default NextSteps; diff --git a/apps/email-templates/emails/assets/resources-divider.tsx b/apps/email-templates/emails/assets/resources-divider.tsx deleted file mode 100644 index 1702450d6..000000000 --- a/apps/email-templates/emails/assets/resources-divider.tsx +++ /dev/null @@ -1,26 +0,0 @@ -import { SVGProps } from "react"; - -const ResourcesDivider = (props: SVGProps) => ( - - - - - -); - -export default ResourcesDivider; diff --git a/apps/email-templates/emails/assets/website-button.tsx b/apps/email-templates/emails/assets/website-button.tsx deleted file mode 100644 index 73ee86b77..000000000 --- a/apps/email-templates/emails/assets/website-button.tsx +++ /dev/null @@ -1,46 +0,0 @@ -import { SVGProps } from "react"; - -const WebsiteButton = (props: SVGProps) => ( - - - - - - - - - -); - -export default WebsiteButton; diff --git a/apps/email-templates/package.json b/apps/email-templates/package.json index 566b88ba3..df73df67e 100644 --- a/apps/email-templates/package.json +++ b/apps/email-templates/package.json @@ -1,6 +1,7 @@ { - "name": "react-email-starter", + "name": "@forge/emails", "version": "1.1.0", + "type": "module", "private": true, "scripts": { "build": "email build", @@ -9,12 +10,12 @@ }, "dependencies": { "@react-email/components": "0.0.38", - "react-dom": "^19.0.0", - "react": "^19.0.0" + "react": "^19.0.0", + "react-dom": "^19.0.0" }, "devDependencies": { - "@types/react": "^19.0.1", - "@types/react-dom": "^19.0.1", + "@types/react": "^19.0.10", + "@types/react-dom": "^19.0.4", "react-email": "4.0.11" } } diff --git a/packages/api/src/routers/email.ts b/packages/api/src/routers/email.ts index 2972bbdef..9ef9e9733 100644 --- a/packages/api/src/routers/email.ts +++ b/packages/api/src/routers/email.ts @@ -38,7 +38,7 @@ export const emailRouter = { `From: ${alias}`, `To: ${input.to}`, "MIME-Version: 1.0", - "Content-Type: text/plain; charset=utf-8", + "Content-Type: text/html; charset=utf-8", `Subject: ${input.subject}`, "", input.body, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 49231c49a..595a37a48 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -90,12 +90,18 @@ importers: '@forge/db': specifier: workspace:* version: link:../../packages/db + '@forge/emails': + specifier: workspace:^ + version: link:../email-templates '@forge/ui': specifier: workspace:* version: link:../../packages/ui '@forge/validators': specifier: workspace:* version: link:../../packages/validators + '@react-email/render': + specifier: 1.1.0 + version: 1.1.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@stripe/react-stripe-js': specifier: ^3.0.0 version: 3.1.1(@stripe/stripe-js@5.4.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -294,6 +300,28 @@ importers: specifier: 'catalog:' version: 5.7.2 + apps/email-templates: + dependencies: + '@react-email/components': + specifier: 0.0.38 + version: 0.0.38(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + react: + specifier: ^19.0.0 + version: 19.1.0 + react-dom: + specifier: ^19.0.0 + version: 19.1.0(react@19.1.0) + devDependencies: + '@types/react': + specifier: ^19.0.10 + version: 19.1.2 + '@types/react-dom': + specifier: ^19.0.4 + version: 19.1.2(@types/react@19.1.2) + react-email: + specifier: 4.0.11 + version: 4.0.11(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + apps/tk: dependencies: '@forge/consts': @@ -743,7 +771,7 @@ importers: version: 14.2.21 eslint-plugin-import: specifier: ^2.31.0 - version: 2.31.0(eslint@9.17.0(jiti@2.4.2)) + version: 2.31.0(@typescript-eslint/parser@8.31.0(eslint@9.17.0(jiti@2.4.2))(typescript@5.7.2))(eslint@9.17.0(jiti@2.4.2)) eslint-plugin-jsx-a11y: specifier: ^6.10.0 version: 6.10.2(eslint@9.17.0(jiti@2.4.2)) @@ -1673,6 +1701,9 @@ packages: '@drizzle-team/brocli@0.10.2': resolution: {integrity: sha512-z33Il7l5dKjUgGULTqBsQBQwckHh5AbIuxhdsIxDDiZAzBOrZO6q9ogcWC65kU382AfynTfgNumVcNIjuIua6w==} + '@emnapi/runtime@1.4.3': + resolution: {integrity: sha512-pBPWdu6MLKROBX05wSNKcNb++m5Er+KQ9QkB+WVM+pW2Kx9hoSrVTnu3BdkI5eBLZoKu/J6mW/B6i6bJB2ytXQ==} + '@esbuild-kit/core-utils@3.3.2': resolution: {integrity: sha512-sPRAnw9CdSsRmEtnsl2WXWdyquogVpB3yZ3dgwJfe8zrOzTsV7cJvmwrKVa+0ma5BoiGJ+BoqkMvawbayKUsqQ==} deprecated: 'Merged into tsx: https://tsx.is' @@ -2231,6 +2262,116 @@ packages: '@vue/compiler-sfc': optional: true + '@img/sharp-darwin-arm64@0.34.1': + resolution: {integrity: sha512-pn44xgBtgpEbZsu+lWf2KNb6OAf70X68k+yk69Ic2Xz11zHR/w24/U49XT7AeRwJ0Px+mhALhU5LPci1Aymk7A==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [arm64] + os: [darwin] + + '@img/sharp-darwin-x64@0.34.1': + resolution: {integrity: sha512-VfuYgG2r8BpYiOUN+BfYeFo69nP/MIwAtSJ7/Zpxc5QF3KS22z8Pvg3FkrSFJBPNQ7mmcUcYQFBmEQp7eu1F8Q==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [x64] + os: [darwin] + + '@img/sharp-libvips-darwin-arm64@1.1.0': + resolution: {integrity: sha512-HZ/JUmPwrJSoM4DIQPv/BfNh9yrOA8tlBbqbLz4JZ5uew2+o22Ik+tHQJcih7QJuSa0zo5coHTfD5J8inqj9DA==} + cpu: [arm64] + os: [darwin] + + '@img/sharp-libvips-darwin-x64@1.1.0': + resolution: {integrity: sha512-Xzc2ToEmHN+hfvsl9wja0RlnXEgpKNmftriQp6XzY/RaSfwD9th+MSh0WQKzUreLKKINb3afirxW7A0fz2YWuQ==} + cpu: [x64] + os: [darwin] + + '@img/sharp-libvips-linux-arm64@1.1.0': + resolution: {integrity: sha512-IVfGJa7gjChDET1dK9SekxFFdflarnUB8PwW8aGwEoF3oAsSDuNUTYS+SKDOyOJxQyDC1aPFMuRYLoDInyV9Ew==} + cpu: [arm64] + os: [linux] + + '@img/sharp-libvips-linux-arm@1.1.0': + resolution: {integrity: sha512-s8BAd0lwUIvYCJyRdFqvsj+BJIpDBSxs6ivrOPm/R7piTs5UIwY5OjXrP2bqXC9/moGsyRa37eYWYCOGVXxVrA==} + cpu: [arm] + os: [linux] + + '@img/sharp-libvips-linux-ppc64@1.1.0': + resolution: {integrity: sha512-tiXxFZFbhnkWE2LA8oQj7KYR+bWBkiV2nilRldT7bqoEZ4HiDOcePr9wVDAZPi/Id5fT1oY9iGnDq20cwUz8lQ==} + cpu: [ppc64] + os: [linux] + + '@img/sharp-libvips-linux-s390x@1.1.0': + resolution: {integrity: sha512-xukSwvhguw7COyzvmjydRb3x/09+21HykyapcZchiCUkTThEQEOMtBj9UhkaBRLuBrgLFzQ2wbxdeCCJW/jgJA==} + cpu: [s390x] + os: [linux] + + '@img/sharp-libvips-linux-x64@1.1.0': + resolution: {integrity: sha512-yRj2+reB8iMg9W5sULM3S74jVS7zqSzHG3Ol/twnAAkAhnGQnpjj6e4ayUz7V+FpKypwgs82xbRdYtchTTUB+Q==} + cpu: [x64] + os: [linux] + + '@img/sharp-libvips-linuxmusl-arm64@1.1.0': + resolution: {integrity: sha512-jYZdG+whg0MDK+q2COKbYidaqW/WTz0cc1E+tMAusiDygrM4ypmSCjOJPmFTvHHJ8j/6cAGyeDWZOsK06tP33w==} + cpu: [arm64] + os: [linux] + + '@img/sharp-libvips-linuxmusl-x64@1.1.0': + resolution: {integrity: sha512-wK7SBdwrAiycjXdkPnGCPLjYb9lD4l6Ze2gSdAGVZrEL05AOUJESWU2lhlC+Ffn5/G+VKuSm6zzbQSzFX/P65A==} + cpu: [x64] + os: [linux] + + '@img/sharp-linux-arm64@0.34.1': + resolution: {integrity: sha512-kX2c+vbvaXC6vly1RDf/IWNXxrlxLNpBVWkdpRq5Ka7OOKj6nr66etKy2IENf6FtOgklkg9ZdGpEu9kwdlcwOQ==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [arm64] + os: [linux] + + '@img/sharp-linux-arm@0.34.1': + resolution: {integrity: sha512-anKiszvACti2sGy9CirTlNyk7BjjZPiML1jt2ZkTdcvpLU1YH6CXwRAZCA2UmRXnhiIftXQ7+Oh62Ji25W72jA==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [arm] + os: [linux] + + '@img/sharp-linux-s390x@0.34.1': + resolution: {integrity: sha512-7s0KX2tI9mZI2buRipKIw2X1ufdTeaRgwmRabt5bi9chYfhur+/C1OXg3TKg/eag1W+6CCWLVmSauV1owmRPxA==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [s390x] + os: [linux] + + '@img/sharp-linux-x64@0.34.1': + resolution: {integrity: sha512-wExv7SH9nmoBW3Wr2gvQopX1k8q2g5V5Iag8Zk6AVENsjwd+3adjwxtp3Dcu2QhOXr8W9NusBU6XcQUohBZ5MA==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [x64] + os: [linux] + + '@img/sharp-linuxmusl-arm64@0.34.1': + resolution: {integrity: sha512-DfvyxzHxw4WGdPiTF0SOHnm11Xv4aQexvqhRDAoD00MzHekAj9a/jADXeXYCDFH/DzYruwHbXU7uz+H+nWmSOQ==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [arm64] + os: [linux] + + '@img/sharp-linuxmusl-x64@0.34.1': + resolution: {integrity: sha512-pax/kTR407vNb9qaSIiWVnQplPcGU8LRIJpDT5o8PdAx5aAA7AS3X9PS8Isw1/WfqgQorPotjrZL3Pqh6C5EBg==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [x64] + os: [linux] + + '@img/sharp-wasm32@0.34.1': + resolution: {integrity: sha512-YDybQnYrLQfEpzGOQe7OKcyLUCML4YOXl428gOOzBgN6Gw0rv8dpsJ7PqTHxBnXnwXr8S1mYFSLSa727tpz0xg==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [wasm32] + + '@img/sharp-win32-ia32@0.34.1': + resolution: {integrity: sha512-WKf/NAZITnonBf3U1LfdjoMgNO5JYRSlhovhRhMxXVdvWYveM4kM3L8m35onYIdh75cOMCo1BexgVQcCDzyoWw==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [ia32] + os: [win32] + + '@img/sharp-win32-x64@0.34.1': + resolution: {integrity: sha512-hw1iIAHpNE8q3uMIRCgGOeDoz9KtFNarFLQclLxr/LK1VBkj8nby18RjFvr6aP7USRYAjTZW6yisnBWMX571Tw==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [x64] + os: [win32] + '@isaacs/cliui@8.0.2': resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} engines: {node: '>=12'} @@ -2435,6 +2576,9 @@ packages: '@next/env@14.2.28': resolution: {integrity: sha512-PAmWhJfJQlP+kxZwCjrVd9QnR5x0R3u0mTXTiZDgSd4h5LdXmjxCCWbN9kq6hkZBOax8Rm3xDW5HagWyJuT37g==} + '@next/env@15.3.2': + resolution: {integrity: sha512-xURk++7P7qR9JG1jJtLzPzf0qEvqCN0A/T3DXf8IPMKo9/6FfjxtEffRJIIew/bIL4T3C2jLLqBor8B/zVlx6g==} + '@next/eslint-plugin-next@14.2.21': resolution: {integrity: sha512-bxfiExnMkpwo4bBhCqnDhdgFyxSp6Xt6xu4Ne7En6MpgqwiER95Or+q1WDUDX4e888taeIAdPIAVaY+Wv0kiwQ==} @@ -2444,42 +2588,84 @@ packages: cpu: [arm64] os: [darwin] + '@next/swc-darwin-arm64@15.3.2': + resolution: {integrity: sha512-2DR6kY/OGcokbnCsjHpNeQblqCZ85/1j6njYSkzRdpLn5At7OkSdmk7WyAmB9G0k25+VgqVZ/u356OSoQZ3z0g==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [darwin] + '@next/swc-darwin-x64@14.2.28': resolution: {integrity: sha512-z6FXYHDJlFOzVEOiiJ/4NG8aLCeayZdcRSMjPDysW297Up6r22xw6Ea9AOwQqbNsth8JNgIK8EkWz2IDwaLQcw==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] + '@next/swc-darwin-x64@15.3.2': + resolution: {integrity: sha512-ro/fdqaZWL6k1S/5CLv1I0DaZfDVJkWNaUU3un8Lg6m0YENWlDulmIWzV96Iou2wEYyEsZq51mwV8+XQXqMp3w==} + engines: {node: '>= 10'} + cpu: [x64] + os: [darwin] + '@next/swc-linux-arm64-gnu@14.2.28': resolution: {integrity: sha512-9ARHLEQXhAilNJ7rgQX8xs9aH3yJSj888ssSjJLeldiZKR4D7N08MfMqljk77fAwZsWwsrp8ohHsMvurvv9liQ==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] + '@next/swc-linux-arm64-gnu@15.3.2': + resolution: {integrity: sha512-covwwtZYhlbRWK2HlYX9835qXum4xYZ3E2Mra1mdQ+0ICGoMiw1+nVAn4d9Bo7R3JqSmK1grMq/va+0cdh7bJA==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + '@next/swc-linux-arm64-musl@14.2.28': resolution: {integrity: sha512-p6gvatI1nX41KCizEe6JkF0FS/cEEF0u23vKDpl+WhPe/fCTBeGkEBh7iW2cUM0rvquPVwPWdiUR6Ebr/kQWxQ==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] + '@next/swc-linux-arm64-musl@15.3.2': + resolution: {integrity: sha512-KQkMEillvlW5Qk5mtGA/3Yz0/tzpNlSw6/3/ttsV1lNtMuOHcGii3zVeXZyi4EJmmLDKYcTcByV2wVsOhDt/zg==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + '@next/swc-linux-x64-gnu@14.2.28': resolution: {integrity: sha512-nsiSnz2wO6GwMAX2o0iucONlVL7dNgKUqt/mDTATGO2NY59EO/ZKnKEr80BJFhuA5UC1KZOMblJHWZoqIJddpA==} engines: {node: '>= 10'} cpu: [x64] os: [linux] + '@next/swc-linux-x64-gnu@15.3.2': + resolution: {integrity: sha512-uRBo6THWei0chz+Y5j37qzx+BtoDRFIkDzZjlpCItBRXyMPIg079eIkOCl3aqr2tkxL4HFyJ4GHDes7W8HuAUg==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + '@next/swc-linux-x64-musl@14.2.28': resolution: {integrity: sha512-+IuGQKoI3abrXFqx7GtlvNOpeExUH1mTIqCrh1LGFf8DnlUcTmOOCApEnPJUSLrSbzOdsF2ho2KhnQoO0I1RDw==} engines: {node: '>= 10'} cpu: [x64] os: [linux] + '@next/swc-linux-x64-musl@15.3.2': + resolution: {integrity: sha512-+uxFlPuCNx/T9PdMClOqeE8USKzj8tVz37KflT3Kdbx/LOlZBRI2yxuIcmx1mPNK8DwSOMNCr4ureSet7eyC0w==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + '@next/swc-win32-arm64-msvc@14.2.28': resolution: {integrity: sha512-l61WZ3nevt4BAnGksUVFKy2uJP5DPz2E0Ma/Oklvo3sGj9sw3q7vBWONFRgz+ICiHpW5mV+mBrkB3XEubMrKaA==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] + '@next/swc-win32-arm64-msvc@15.3.2': + resolution: {integrity: sha512-LLTKmaI5cfD8dVzh5Vt7+OMo+AIOClEdIU/TSKbXXT2iScUTSxOGoBhfuv+FU8R9MLmrkIL1e2fBMkEEjYAtPQ==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [win32] + '@next/swc-win32-ia32-msvc@14.2.28': resolution: {integrity: sha512-+Kcp1T3jHZnJ9v9VTJ/yf1t/xmtFAc/Sge4v7mVc1z+NYfYzisi8kJ9AsY8itbgq+WgEwMtOpiLLJsUy2qnXZw==} engines: {node: '>= 10'} @@ -2492,6 +2678,12 @@ packages: cpu: [x64] os: [win32] + '@next/swc-win32-x64-msvc@15.3.2': + resolution: {integrity: sha512-aW5B8wOPioJ4mBdMDXkt5f3j8pUr9W8AnlX0Df35uRWNT1Y6RIybxjnSUe+PhM+M1bwgyY8PHLmXZC6zT1o5tA==} + engines: {node: '>= 10'} + cpu: [x64] + os: [win32] + '@nodelib/fs.scandir@2.1.5': resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} engines: {node: '>= 8'} @@ -3103,6 +3295,131 @@ packages: '@radix-ui/rect@1.1.0': resolution: {integrity: sha512-A9+lCBZoaMJlVKcRBz2YByCG+Cp2t6nAnMnNba+XiWxnj6r4JUFqfsgwocMBZU9LPtdxC6wB56ySYpc7LQIoJg==} + '@react-email/body@0.0.11': + resolution: {integrity: sha512-ZSD2SxVSgUjHGrB0Wi+4tu3MEpB4fYSbezsFNEJk2xCWDBkFiOeEsjTmR5dvi+CxTK691hQTQlHv0XWuP7ENTg==} + peerDependencies: + react: ^18.0 || ^19.0 || ^19.0.0-rc + + '@react-email/button@0.0.19': + resolution: {integrity: sha512-HYHrhyVGt7rdM/ls6FuuD6XE7fa7bjZTJqB2byn6/oGsfiEZaogY77OtoLL/mrQHjHjZiJadtAMSik9XLcm7+A==} + engines: {node: '>=18.0.0'} + peerDependencies: + react: ^18.0 || ^19.0 || ^19.0.0-rc + + '@react-email/code-block@0.0.13': + resolution: {integrity: sha512-4DE4yPSgKEOnZMzcrDvRuD6mxsNxOex0hCYEG9F9q23geYgb2WCCeGBvIUXVzK69l703Dg4Vzrd5qUjl+JfcwA==} + engines: {node: '>=18.0.0'} + peerDependencies: + react: ^18.0 || ^19.0 || ^19.0.0-rc + + '@react-email/code-inline@0.0.5': + resolution: {integrity: sha512-MmAsOzdJpzsnY2cZoPHFPk6uDO/Ncpb4Kh1hAt9UZc1xOW3fIzpe1Pi9y9p6wwUmpaeeDalJxAxH6/fnTquinA==} + engines: {node: '>=18.0.0'} + peerDependencies: + react: ^18.0 || ^19.0 || ^19.0.0-rc + + '@react-email/column@0.0.13': + resolution: {integrity: sha512-Lqq17l7ShzJG/d3b1w/+lVO+gp2FM05ZUo/nW0rjxB8xBICXOVv6PqjDnn3FXKssvhO5qAV20lHM6S+spRhEwQ==} + engines: {node: '>=18.0.0'} + peerDependencies: + react: ^18.0 || ^19.0 || ^19.0.0-rc + + '@react-email/components@0.0.38': + resolution: {integrity: sha512-2cjMBZsSPjD1Iyur/MzGrgW/n5A6ONOJQ97pNaVOClxz/EaqNZTo1lFmKdH7p54P7LG9ZxRXxoTe2075VCCGQA==} + engines: {node: '>=18.0.0'} + peerDependencies: + react: ^18.0 || ^19.0 || ^19.0.0-rc + + '@react-email/container@0.0.15': + resolution: {integrity: sha512-Qo2IQo0ru2kZq47REmHW3iXjAQaKu4tpeq/M8m1zHIVwKduL2vYOBQWbC2oDnMtWPmkBjej6XxgtZByxM6cCFg==} + engines: {node: '>=18.0.0'} + peerDependencies: + react: ^18.0 || ^19.0 || ^19.0.0-rc + + '@react-email/font@0.0.9': + resolution: {integrity: sha512-4zjq23oT9APXkerqeslPH3OZWuh5X4crHK6nx82mVHV2SrLba8+8dPEnWbaACWTNjOCbcLIzaC9unk7Wq2MIXw==} + peerDependencies: + react: ^18.0 || ^19.0 || ^19.0.0-rc + + '@react-email/head@0.0.12': + resolution: {integrity: sha512-X2Ii6dDFMF+D4niNwMAHbTkeCjlYYnMsd7edXOsi0JByxt9wNyZ9EnhFiBoQdqkE+SMDcu8TlNNttMrf5sJeMA==} + engines: {node: '>=18.0.0'} + peerDependencies: + react: ^18.0 || ^19.0 || ^19.0.0-rc + + '@react-email/heading@0.0.15': + resolution: {integrity: sha512-xF2GqsvBrp/HbRHWEfOgSfRFX+Q8I5KBEIG5+Lv3Vb2R/NYr0s8A5JhHHGf2pWBMJdbP4B2WHgj/VUrhy8dkIg==} + engines: {node: '>=18.0.0'} + peerDependencies: + react: ^18.0 || ^19.0 || ^19.0.0-rc + + '@react-email/hr@0.0.11': + resolution: {integrity: sha512-S1gZHVhwOsd1Iad5IFhpfICwNPMGPJidG/Uysy1AwmspyoAP5a4Iw3OWEpINFdgh9MHladbxcLKO2AJO+cA9Lw==} + engines: {node: '>=18.0.0'} + peerDependencies: + react: ^18.0 || ^19.0 || ^19.0.0-rc + + '@react-email/html@0.0.11': + resolution: {integrity: sha512-qJhbOQy5VW5qzU74AimjAR9FRFQfrMa7dn4gkEXKMB/S9xZN8e1yC1uA9C15jkXI/PzmJ0muDIWmFwatm5/+VA==} + engines: {node: '>=18.0.0'} + peerDependencies: + react: ^18.0 || ^19.0 || ^19.0.0-rc + + '@react-email/img@0.0.11': + resolution: {integrity: sha512-aGc8Y6U5C3igoMaqAJKsCpkbm1XjguQ09Acd+YcTKwjnC2+0w3yGUJkjWB2vTx4tN8dCqQCXO8FmdJpMfOA9EQ==} + engines: {node: '>=18.0.0'} + peerDependencies: + react: ^18.0 || ^19.0 || ^19.0.0-rc + + '@react-email/link@0.0.12': + resolution: {integrity: sha512-vF+xxQk2fGS1CN7UPQDbzvcBGfffr+GjTPNiWM38fhBfsLv6A/YUfaqxWlmL7zLzVmo0K2cvvV9wxlSyNba1aQ==} + engines: {node: '>=18.0.0'} + peerDependencies: + react: ^18.0 || ^19.0 || ^19.0.0-rc + + '@react-email/markdown@0.0.15': + resolution: {integrity: sha512-UQA9pVm5sbflgtg3EX3FquUP4aMBzmLReLbGJ6DZQZnAskBF36aI56cRykDq1o+1jT+CKIK1CducPYziaXliag==} + engines: {node: '>=18.0.0'} + peerDependencies: + react: ^18.0 || ^19.0 || ^19.0.0-rc + + '@react-email/preview@0.0.12': + resolution: {integrity: sha512-g/H5fa9PQPDK6WUEG7iTlC19sAktI23qyoiJtMLqQiXFCfWeQMhqjLGKeLSKkfzszqmfJCjZtpSiKtBoOdxp3Q==} + engines: {node: '>=18.0.0'} + peerDependencies: + react: ^18.0 || ^19.0 || ^19.0.0-rc + + '@react-email/render@1.1.0': + resolution: {integrity: sha512-X4CsHvXi5X7kTn5NgXNGg8Y5U1VtVJmlpNLlTc2E8RVHKFS3bpr+o/ZXhEPN4yRkdY+ZYN5eqVTV922Hujqsxw==} + engines: {node: '>=18.0.0'} + peerDependencies: + react: ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^18.0 || ^19.0 || ^19.0.0-rc + + '@react-email/row@0.0.12': + resolution: {integrity: sha512-HkCdnEjvK3o+n0y0tZKXYhIXUNPDx+2vq1dJTmqappVHXS5tXS6W5JOPZr5j+eoZ8gY3PShI2LWj5rWF7ZEtIQ==} + engines: {node: '>=18.0.0'} + peerDependencies: + react: ^18.0 || ^19.0 || ^19.0.0-rc + + '@react-email/section@0.0.16': + resolution: {integrity: sha512-FjqF9xQ8FoeUZYKSdt8sMIKvoT9XF8BrzhT3xiFKdEMwYNbsDflcjfErJe3jb7Wj/es/lKTbV5QR1dnLzGpL3w==} + engines: {node: '>=18.0.0'} + peerDependencies: + react: ^18.0 || ^19.0 || ^19.0.0-rc + + '@react-email/tailwind@1.0.5': + resolution: {integrity: sha512-BH00cZSeFfP9HiDASl+sPHi7Hh77W5nzDgdnxtsVr/m3uQD9g180UwxcE3PhOfx0vRdLzQUU8PtmvvDfbztKQg==} + engines: {node: '>=18.0.0'} + peerDependencies: + react: ^18.0 || ^19.0 || ^19.0.0-rc + + '@react-email/text@0.1.3': + resolution: {integrity: sha512-H22KR54MXUg29a+1/lTfg9oCQA65V8+TL4v19OzV7RsOxnEnzGOc287XKh8vc+v7ENewrMV97BzUPOnKz3bqkA==} + engines: {node: '>=18.0.0'} + peerDependencies: + react: ^18.0 || ^19.0 || ^19.0.0-rc + '@rollup/rollup-android-arm-eabi@4.40.1': resolution: {integrity: sha512-kxz0YeeCrRUHz3zyqvd7n+TVRlNyTifBsmnmNPtk3hQURUyG9eAB+usz6DAwagMusjx/zb3AjvDUvhFGDAexGw==} cpu: [arm] @@ -3227,6 +3544,9 @@ packages: resolution: {integrity: sha512-jjmJywLAFoWeBi1W7994zZyiNWPIiqRRNAmSERxyg93xRGzNYvGjlZ0gR6x0F4gPRi2+0O6S71kOZYyr3cxaIQ==} engines: {node: '>=v14.0.0', npm: '>=7.0.0'} + '@selderee/plugin-htmlparser2@0.11.0': + resolution: {integrity: sha512-P33hHGdldxGabLFjPPpaTxVolMrzrcegejx+0GxjrIb9Zv48D8yAIA/QTDR2dFl7Uz7urX8aX6+5bCZslr+gWQ==} + '@smithy/abort-controller@3.1.9': resolution: {integrity: sha512-yiW0WI30zj8ZKoSYNx90no7ugVn3khlyH/z5W8qtKBtVE6awRALbhSG+2SAHA1r6bO/6M9utxYKVZ3PCJ1rWxw==} engines: {node: '>=16.0.0'} @@ -3430,6 +3750,9 @@ packages: resolution: {integrity: sha512-PpjSboaDUE6yl+1qlg3Si57++e84oXdWGbuFUSAciXsVfEZJJJupR2Nb0QuXHiunt2vGR+1PTizOMvnUPaG2Qg==} engines: {node: '>=16.0.0'} + '@socket.io/component-emitter@3.1.2': + resolution: {integrity: sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==} + '@stripe/react-stripe-js@3.1.1': resolution: {integrity: sha512-+JzYFgUivVD7koqYV7LmLlt9edDMAwKH7XhZAHFQMo7NeRC+6D2JmQGzp9tygWerzwttwFLlExGp4rAOvD6l9g==} peerDependencies: @@ -3522,6 +3845,9 @@ packages: '@swc/counter@0.1.3': resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==} + '@swc/helpers@0.5.15': + resolution: {integrity: sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==} + '@swc/helpers@0.5.5': resolution: {integrity: sha512-KGYxvIOXcceOAbEk4bi/dVLEK9z8sZ0uBB3Il5b1rhfClSpcX0yfRO0KmTkqR2cnQDymwLB+25ZyMzICg/cm/A==} @@ -3718,6 +4044,9 @@ packages: '@types/cookie@0.6.0': resolution: {integrity: sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==} + '@types/cors@2.8.18': + resolution: {integrity: sha512-nX3d0sxJW41CqQvfOzVG1NCTXfFDrDWIghCZncpHeWlVFd81zxB/DLhg7avFg6eHLCRX7ckBmoIIcqa++upvJA==} + '@types/d3-array@3.2.1': resolution: {integrity: sha512-Y2Jn2idRrLzUfAKV2LyRImR+y4oa2AntrgID95SHJxuMUrkNXmanDSed71sRNZysveJVt1hLLemQZIady0FpEg==} @@ -3914,6 +4243,10 @@ packages: '@zxing/text-encoding@0.9.0': resolution: {integrity: sha512-U/4aVJ2mxI0aDNI8Uq0wEhMgY+u4CNtEb0om3+y3+niDAsoTCOB33UF0sxpzqzdqXLqmvc+vZyAt4O8pPdfkwA==} + accepts@1.3.8: + resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} + engines: {node: '>= 0.6'} + acorn-jsx@5.3.2: resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: @@ -4072,6 +4405,10 @@ packages: base64-js@1.5.1: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + base64id@2.0.0: + resolution: {integrity: sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==} + engines: {node: ^4.5.0 || >= 5.9} + basic-ftp@5.0.5: resolution: {integrity: sha512-4Bcg1P8xhUuqcii/S0Z9wiHIrQVPMermM1any+MX5GeGD7faD3/msQUDGLol9wOcz4/jbg/WJnGqoJF6LiBdtg==} engines: {node: '>=10.0.0'} @@ -4192,6 +4529,10 @@ packages: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} engines: {node: '>=10'} + chalk@5.4.1: + resolution: {integrity: sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==} + engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + change-case@3.1.0: resolution: {integrity: sha512-2AZp7uJZbYEzRPsFoa+ijKdvp9zsrnnt6+yFokfwEpeJm0xuJDVoxiRCAaTzyJND8GJkofo2IcKWaUZ/OECVzw==} @@ -4214,6 +4555,10 @@ packages: resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} engines: {node: '>= 8.10.0'} + chokidar@4.0.3: + resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} + engines: {node: '>= 14.16.0'} + class-variance-authority@0.7.1: resolution: {integrity: sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==} @@ -4228,6 +4573,10 @@ packages: resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} engines: {node: '>=8'} + cli-cursor@5.0.0: + resolution: {integrity: sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==} + engines: {node: '>=18'} + cli-spinners@2.9.2: resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==} engines: {node: '>=6'} @@ -4269,6 +4618,13 @@ packages: 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'} + comma-separated-tokens@2.0.3: resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} @@ -4276,6 +4632,10 @@ packages: resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==} engines: {node: '>=14'} + commander@13.1.0: + resolution: {integrity: sha512-/rFeCpNJQbhSZjGVwO9RFV3xPqbnERS8MmIQzCtD/zl6gpJuV/bMLuN92oG3F7d8oDEHHRrujSXNUr8fpjntKw==} + engines: {node: '>=18'} + commander@4.1.1: resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} engines: {node: '>= 6'} @@ -4297,6 +4657,10 @@ packages: resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==} engines: {node: '>= 0.6'} + cookie@0.7.2: + resolution: {integrity: sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==} + engines: {node: '>= 0.6'} + copy-anything@3.0.5: resolution: {integrity: sha512-yCEafptTtb4bk7GLEQoM8KVJpxAfdBJYaXyzQEgQQQgYrZiDp8SJmGKlYza6CYjEDNstAdNdKA3UuoULlEbS6w==} engines: {node: '>=12.13'} @@ -4307,6 +4671,10 @@ packages: core-js-pure@3.39.0: resolution: {integrity: sha512-7fEcWwKI4rJinnK+wLTezeg2smbFFdSBP6E2kQZNbnzM2s1rpKQ6aaRteZSSg7FLU3P0HGGVo/gbpfanU36urg==} + cors@2.8.5: + resolution: {integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==} + engines: {node: '>= 0.10'} + cosmiconfig@8.3.6: resolution: {integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==} engines: {node: '>=14'} @@ -4420,6 +4788,10 @@ packages: date-fns@3.6.0: resolution: {integrity: sha512-fRHTG8g/Gif+kSh50gaGEdToemgfj74aRX3swtiouboip5JDLAyDE9F11nHMIcvOaXeOC6D7SpNhi7uFyB7Uww==} + debounce@2.2.0: + resolution: {integrity: sha512-Xks6RUDLZFdz8LIdR6q0MTH44k7FikOmnh5xkSjMig6ch45afc8sjTjRQf3P6ax8dMgcQrYO/AR2RGWURrruqw==} + engines: {node: '>=18'} + debug@3.2.7: resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} peerDependencies: @@ -4428,6 +4800,15 @@ packages: supports-color: optional: true + debug@4.3.7: + resolution: {integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + debug@4.4.0: resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==} engines: {node: '>=6.0'} @@ -4689,12 +5070,23 @@ packages: electron-to-chromium@1.5.88: resolution: {integrity: sha512-K3C2qf1o+bGzbilTDCTBhTQcMS9KW60yTAaTeeXsfvQuTDDwlokLam/AdqlqcSy9u4UainDgsHV23ksXAOgamw==} + emoji-regex@10.4.0: + resolution: {integrity: sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==} + emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} emoji-regex@9.2.2: resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + engine.io-parser@5.2.3: + resolution: {integrity: sha512-HqD3yTBfnBxIrbnM1DoD6Pcq8NECnh8d4As1Qgh0z5Gg3jRRIqijury0CL3ghu/edArpUYiYqQiDUQBIs4np3Q==} + engines: {node: '>=10.0.0'} + + engine.io@6.6.4: + resolution: {integrity: sha512-ZCkIjSYNDyGn0R6ewHDtXgns/Zre/NT6Agvq1/WobF7JXgFff4SeDroKiCO3fNJreU9YG429Sc81o4w5ok/W5g==} + engines: {node: '>=10.2.0'} + enhanced-resolve@5.18.1: resolution: {integrity: sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==} engines: {node: '>=10.13.0'} @@ -4920,6 +5312,9 @@ packages: resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} engines: {node: '>=4'} + fast-deep-equal@2.0.1: + resolution: {integrity: sha512-bCK/2Z4zLidyB4ReuIsvALH6w31YfAQDmXMqMx6FyfHqvBxtjC0eRumeSu4Bs3XtXwpyIywtSTrVT99BxY1f9w==} + fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} @@ -5064,6 +5459,10 @@ packages: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} engines: {node: 6.* || 8.* || >= 10.*} + get-east-asian-width@1.3.0: + resolution: {integrity: sha512-vpeMIQKxczTD/0s2CdEWHcb0eeJe6TFjxb+J5xgX7hScxqrGuyjmv4c1D4A/gelKfyox0gJJwIHF+fLjeaM8kQ==} + engines: {node: '>=18'} + get-intrinsic@1.2.6: resolution: {integrity: sha512-qxsEs+9A+u85HhllWJJFicJfPDhRmjzoYdl64aMWW9yRIJmSyxdn8IEkuIM530/7T+lv0TIHd8L6Q/ra0tEoeA==} engines: {node: '>= 0.4'} @@ -5111,6 +5510,11 @@ packages: resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} hasBin: true + glob@11.0.2: + resolution: {integrity: sha512-YT7U7Vye+t5fZ/QMkBFrTJ7ZQxInIUjwyAjVj84CYXqgBdv30MFUPGnBR6sQaVq6Is15wYJUsnzTuWaGRBhBAQ==} + engines: {node: 20 || >=22} + hasBin: true + glob@7.2.3: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} deprecated: Glob versions prior to v9 are no longer supported @@ -5216,9 +5620,16 @@ packages: header-case@1.0.1: resolution: {integrity: sha512-i0q9mkOeSuhXw6bGgiQCCBgY/jlZuV/7dZXyZ9c6LcBrqwvT8eT719E9uxE5LiZftdl+z81Ugbg/VvXV4OJOeQ==} + html-to-text@9.0.5: + resolution: {integrity: sha512-qY60FjREgVZL03vJU6IfMV4GDjGBIoOyvuFdpBDIX9yTlDw0TjxVBQp+P8NvpdIXNJvfWBTNul7fsAQJq2FNpg==} + engines: {node: '>=14'} + html-url-attributes@3.0.1: resolution: {integrity: sha512-ol6UPyBWqsrO6EJySPz2O7ZSr856WDrEzM5zMqp+FJJLGMW35cLYmmZnl0vztAZxRUoNZJFTCohfjuIJ8I4QBQ==} + htmlparser2@8.0.2: + resolution: {integrity: sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==} + http-proxy-agent@7.0.2: resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} engines: {node: '>= 14'} @@ -5311,6 +5722,9 @@ packages: is-arrayish@0.2.1: resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + is-arrayish@0.3.2: + resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} + is-async-function@2.0.0: resolution: {integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==} engines: {node: '>= 0.4'} @@ -5376,6 +5790,10 @@ packages: resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==} engines: {node: '>=8'} + is-interactive@2.0.0: + resolution: {integrity: sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==} + engines: {node: '>=12'} + is-lower-case@1.1.3: resolution: {integrity: sha512-+5A1e/WJpLLXZEDlgz4G//WYSHyQBD32qa4Jd3Lw06qQlv3fJHnp3YIHjTQSGzHMgzmVKz2ZP3rBxTHkPw/lxA==} @@ -5443,6 +5861,14 @@ packages: resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} engines: {node: '>=10'} + is-unicode-supported@1.3.0: + resolution: {integrity: sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==} + engines: {node: '>=12'} + + is-unicode-supported@2.1.0: + resolution: {integrity: sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==} + engines: {node: '>=18'} + is-upper-case@1.1.2: resolution: {integrity: sha512-GQYSJMgfeAmVwh9ixyk888l7OIhNAGKtY6QA+IrWlu9MDTCaXmeozOZ2S9Knj7bQwBO/H6J2kb+pbyTUiMNbsw==} @@ -5490,6 +5916,10 @@ packages: jackspeak@3.4.3: resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} + jackspeak@4.1.0: + resolution: {integrity: sha512-9DDdhb5j6cpeitCbvLO7n7J4IxnbM6hoF6O1g4HQ5TfhvvKN8ywDM7668ZhMHRqVmxqhps/F6syWK2KcPxYlkw==} + engines: {node: 20 || >=22} + jimp@0.22.12: resolution: {integrity: sha512-R5jZaYDnfkxKJy1dwLpj/7cvyjxiclxU3F4TrI/J4j2rS0niq6YDUMoPn5hs8GDpO+OZGo7Ky057CRtWesyhfg==} @@ -5577,6 +6007,9 @@ packages: resolution: {integrity: sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==} engines: {node: '>=0.10'} + leac@0.6.0: + resolution: {integrity: sha512-y+SqErxb8h7nE/fiEX07jsbuhrpO9lL8eca7/Y1nuWV2moNlXhyd59iDGcRf6moVyDMbmTNzL40SUyrFU/yDpg==} + levn@0.4.1: resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} engines: {node: '>= 0.8.0'} @@ -5687,6 +6120,14 @@ packages: resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} engines: {node: '>=10'} + log-symbols@6.0.0: + resolution: {integrity: sha512-i24m8rpwhmPIS4zscNzK6MSEhk0DUWa/8iYQWxhffV8jkI4Phvs3F+quL5xvS0gdQR0FyTCMMH33Y78dDTzzIw==} + engines: {node: '>=18'} + + log-symbols@7.0.0: + resolution: {integrity: sha512-zrc91EDk2M+2AXo/9BTvK91pqb7qrPg2nX/Hy+u8a5qQlbaOflCKO+6SqgZ+M+xUFxGdKTgwnGiL96b1W3ikRA==} + engines: {node: '>=18'} + longest-streak@3.1.0: resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} @@ -5706,6 +6147,10 @@ packages: lru-cache@10.4.3: resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} + lru-cache@11.1.0: + resolution: {integrity: sha512-QIXZUBJUx+2zHUdQujWejBkcD9+cs94tLn0+YL8UrCh+D5sCXZ4c7LaEH48pNwRY3MLDgqUFyhlCyjJPf1WP0A==} + engines: {node: 20 || >=22} + lru-cache@5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} @@ -5724,10 +6169,20 @@ packages: make-error@1.3.6: resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} + marked@7.0.4: + resolution: {integrity: sha512-t8eP0dXRJMtMvBojtkcsA7n48BkauktUKzfkPSCq85ZMTJ0v76Rke4DYz01omYpPTUh4p/f7HePgRo3ebG8+QQ==} + engines: {node: '>= 16'} + hasBin: true + math-intrinsics@1.1.0: resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} engines: {node: '>= 0.4'} + md-to-react-email@5.0.5: + resolution: {integrity: sha512-OvAXqwq57uOk+WZqFFNCMZz8yDp8BD3WazW1wAKHUrPbbdr89K9DWS6JXY09vd9xNdPNeurI8DU/X4flcfaD8A==} + peerDependencies: + react: ^18.0 || ^19.0 + mdast-util-from-markdown@2.0.2: resolution: {integrity: sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==} @@ -5839,10 +6294,18 @@ packages: resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} engines: {node: '>= 0.6'} + mime-db@1.54.0: + resolution: {integrity: sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==} + engines: {node: '>= 0.6'} + mime-types@2.1.35: resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} engines: {node: '>= 0.6'} + mime-types@3.0.1: + resolution: {integrity: sha512-xRc4oEhT6eaBpU1XF7AjpOFD+xQmXNB5OVKwp4tqCuBpHLS/ZbBDrc07mYTDqVMg6PfxUjjNp85O6Cd2Z/5HWA==} + engines: {node: '>= 0.6'} + mime@1.6.0: resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} engines: {node: '>=4'} @@ -5852,9 +6315,17 @@ packages: resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} engines: {node: '>=6'} + mimic-function@5.0.1: + resolution: {integrity: sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==} + engines: {node: '>=18'} + min-document@2.19.0: resolution: {integrity: sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ==} + minimatch@10.0.1: + resolution: {integrity: sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==} + engines: {node: 20 || >=22} + minimatch@3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} @@ -5905,6 +6376,10 @@ packages: natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + negotiator@0.6.3: + resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} + engines: {node: '>= 0.6'} + neo-async@2.6.2: resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} @@ -5952,6 +6427,27 @@ packages: sass: optional: true + next@15.3.2: + resolution: {integrity: sha512-CA3BatMyHkxZ48sgOCLdVHjFU36N7TF1HhqAHLFOkV6buwZnvMI84Cug8xD56B9mCuKrqXnLn94417GrZ/jjCQ==} + 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 + no-case@2.3.2: resolution: {integrity: sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==} @@ -6041,6 +6537,10 @@ packages: resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} engines: {node: '>=6'} + onetime@7.0.0: + resolution: {integrity: sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==} + engines: {node: '>=18'} + optionator@0.9.4: resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} engines: {node: '>= 0.8.0'} @@ -6053,6 +6553,10 @@ packages: resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==} engines: {node: '>=10'} + ora@8.2.0: + resolution: {integrity: sha512-weP+BZ8MVNnlCm8c0Qdc1WSWq4Qn7I+9CJGm7Qali6g44e/PUzbjNqJX5NJ9ljlNMosfJvg1fKEGILklK9cwnw==} + engines: {node: '>=18'} + os-tmpdir@1.0.2: resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} engines: {node: '>=0.10.0'} @@ -6121,6 +6625,9 @@ packages: resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} engines: {node: '>=8'} + parseley@0.12.1: + resolution: {integrity: sha512-e6qHKe3a9HWr0oMRVDTRhKce+bRO8VGQR3NyVwcjwrbhMmFCX9KszEV35+rn4AdilFAq9VPxP/Fe1wC9Qjd2lw==} + pascal-case@2.0.1: resolution: {integrity: sha512-qjS4s8rBOJa2Xm0jmxXiyh1+OFf6ekCWOvUaRgAQSktzlTbMotS0nmG9gyYAybCWBcuP4fsBeRCKNwGBnMe2OQ==} @@ -6146,10 +6653,17 @@ packages: resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} engines: {node: '>=16 || 14 >=14.18'} + path-scurry@2.0.0: + resolution: {integrity: sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==} + engines: {node: 20 || >=22} + path-type@4.0.0: resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} engines: {node: '>=8'} + peberminta@0.9.0: + resolution: {integrity: sha512-XIxfHpEuSJbITd1H3EeQwpcZbTLHc+VVr8ANI9t5sit565tsI4/xK3KWTUFE2e6QiangUkh3B0jihzmGnNrRsQ==} + peek-readable@4.1.0: resolution: {integrity: sha512-ZI3LnwUv5nOGbQzD9c2iDG6toheuXSZP5esSHBjopsXH4dg19soufvpUGA3uohi5anFtGb2lhAVdHzH6R/Evvg==} engines: {node: '>=8'} @@ -6398,9 +6912,18 @@ packages: engines: {node: '>=14'} hasBin: true + prettier@3.5.3: + resolution: {integrity: sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==} + engines: {node: '>=14'} + hasBin: true + pretty-format@3.8.0: resolution: {integrity: sha512-WuxUnVtlWL1OfZFQFuqvnvs6MiAGk9UNsBostyBOB0Is9wb5uRESevA6rnl/rkksXaGX3GzZhPup5d6Vp1nFew==} + prismjs@1.30.0: + resolution: {integrity: sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw==} + engines: {node: '>=6'} + process@0.11.10: resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} engines: {node: '>= 0.6.0'} @@ -6458,6 +6981,11 @@ packages: peerDependencies: react: ^19.1.0 + react-email@4.0.11: + resolution: {integrity: sha512-t/8ZlVSOXVlmtbLLAinTePYefdx1FipPiu9a4RmFar7vizevrDoTNz8mEzOBEMTJp/OhloP3UOkLJN0iCjBDrg==} + engines: {node: '>=18.0.0'} + hasBin: true + react-hook-form@7.54.2: resolution: {integrity: sha512-eHpAUgUjWbZocoQYUHposymRb4ZP6d0uwUnooL2uOybA9/3tPUvoAKqEWK1WaSiTxxOfTpffNZP7QwlnM3/gEg==} engines: {node: '>=18.0.0'} @@ -6484,6 +7012,9 @@ packages: '@types/react': '>=18' react: '>=18' + react-promise-suspense@0.3.4: + resolution: {integrity: sha512-I42jl7L3Ze6kZaq+7zXWSunBa3b1on5yfvUW6Eo/3fFOj6dZ5Bqmcd264nJbTK/gn1HjjILAjSwnZbV4RpSaNQ==} + react-qr-reader@3.0.0-beta-1: resolution: {integrity: sha512-5HeFH9x/BlziRYQYGK2AeWS9WiKYZtGGMs9DXy3bcySTX3C9UJL9EwcPnWw8vlf7JP4FcrAlr1SnZ5nsWLQGyw==} peerDependencies: @@ -6581,6 +7112,10 @@ packages: resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} engines: {node: '>=8.10.0'} + readdirp@4.1.2: + resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==} + engines: {node: '>= 14.18.0'} + recharts-scale@0.4.5: resolution: {integrity: sha512-kivNFO+0OcUNu7jQquLXAxz1FIwZj8nrj+YkOKc5694NbjCvcT6aSZiIzNzd2Kul4o4rTto8QVR9lMNtxD4G1w==} @@ -6666,6 +7201,10 @@ packages: resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} engines: {node: '>=8'} + restore-cursor@5.1.0: + resolution: {integrity: sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==} + engines: {node: '>=18'} + reusify@1.0.4: resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} @@ -6738,6 +7277,9 @@ packages: schema-typed@2.2.2: resolution: {integrity: sha512-hRmqKr5V6UyhmZ0FixRVetgxvudRPjDynVZZRNq6t4EZHii7U33vmqd9uap3s4aqBcDg1JtubMNvCEmsZTpm3Q==} + selderee@0.11.0: + resolution: {integrity: sha512-5TF+l7p4+OsnP8BCCvSyZiSPc4x4//p5uPwK8TCnVPJYRmU2aYKMpOXvw8zM5a5JvuuCGN1jmsMwuU2W02ukfA==} + semver@6.3.1: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true @@ -6752,6 +7294,11 @@ packages: engines: {node: '>=10'} hasBin: true + semver@7.7.1: + resolution: {integrity: sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==} + engines: {node: '>=10'} + hasBin: true + sentence-case@2.1.1: resolution: {integrity: sha512-ENl7cYHaK/Ktwk5OTD+aDbQ3uC8IByu/6Bkg+HDv8Mm+XnBnppVNalcfJTNsp1ibstKh030/JKQQWglDvtKwEQ==} @@ -6770,6 +7317,10 @@ packages: resolution: {integrity: sha512-zTEg4HL0RwVrqcWs3ztF+x1vkxfm0lP+MQQFPiMJTKVceBwEV0A569Ou8l9IYQG8jOZdMVI1hGsc0tmeD2o/Lw==} engines: {node: '>=11.0'} + sharp@0.34.1: + resolution: {integrity: sha512-1j0w61+eVxu7DawFJtnfYcvSv6qPFvfTaqzTQ2BLknVhHTwGS8sc63ZBF4rzkWMBVKybo4S5OBtDdZahh2A1xg==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + shebang-command@2.0.0: resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} engines: {node: '>=8'} @@ -6801,6 +7352,9 @@ packages: resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} engines: {node: '>=14'} + simple-swizzle@0.2.2: + resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==} + slash@3.0.0: resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} engines: {node: '>=8'} @@ -6815,6 +7369,17 @@ packages: snake-case@3.0.4: resolution: {integrity: sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==} + socket.io-adapter@2.5.5: + resolution: {integrity: sha512-eLDQas5dzPgOWCk9GuuJC2lBqItuhKI4uxGgo9aIV7MYbk2h9Q6uULEh8WBzThoI7l+qU9Ast9fVUmkqPP9wYg==} + + socket.io-parser@4.2.4: + resolution: {integrity: sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==} + engines: {node: '>=10.0.0'} + + socket.io@4.8.1: + resolution: {integrity: sha512-oZ7iUCxph8WYRHHcjBEc9unw3adt5CmSNlppj/5Q4k2RIrhl8Z5yY2Xr4j9zj0+wzVZ0bxmYoGSzKJnRl6A4yg==} + engines: {node: '>=10.2.0'} + socks-proxy-agent@8.0.5: resolution: {integrity: sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw==} engines: {node: '>= 14'} @@ -6854,6 +7419,10 @@ packages: sprintf-js@1.1.3: resolution: {integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==} + stdin-discarder@0.2.2: + resolution: {integrity: sha512-UhDfHmA92YAlNnCfhmq0VeNL5bDbiZGg7sZ2IvPsXubGkiNa9EC+tUTsjBRsYUAz87btI6/1wf4XoVvQ3uRnmQ==} + engines: {node: '>=18'} + stream-chain@2.2.5: resolution: {integrity: sha512-1TJmBx6aSWqZ4tx7aTpBDXK0/e2hhcNSTV8+CbFJtDjbb+I1mZ8lHit0Grw9GRT+6JbIrrDd8esncgBi8aBXGA==} @@ -6876,6 +7445,10 @@ packages: resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} engines: {node: '>=12'} + string-width@7.2.0: + resolution: {integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==} + engines: {node: '>=18'} + string.prototype.includes@2.0.1: resolution: {integrity: sha512-o7+c9bW6zpAdJHTtujeePODAhkuicdAryFsfVKwA+wGw89wJ4GTY484WTucM9hLtDEOpOvI+aHnzqnC5lHp4Rg==} engines: {node: '>= 0.4'} @@ -6956,6 +7529,19 @@ packages: babel-plugin-macros: optional: true + 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 + sucrase@3.35.0: resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==} engines: {node: '>=16 || 14 >=14.17'} @@ -7296,6 +7882,10 @@ packages: resolution: {integrity: sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + vary@1.1.2: + resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} + engines: {node: '>= 0.8'} + vaul@1.1.2: resolution: {integrity: sha512-ZFkClGpWyI2WUQjdLJ/BaGuV6AVQiJ3uELGk3OYtP+B6yCO7Cmn9vPFXVJkRaGkOJu3m8bQMgtyzNHixULceQA==} peerDependencies: @@ -7412,6 +8002,18 @@ packages: wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + ws@8.17.1: + resolution: {integrity: sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + ws@8.18.0: resolution: {integrity: sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==} engines: {node: '>=10.0.0'} @@ -7469,6 +8071,10 @@ packages: resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} engines: {node: '>=10'} + yoctocolors@2.1.1: + resolution: {integrity: sha512-GQHQqAopRhwU8Kt1DDM8NjibDXHC8eoh1erhGAJPEyveY9qqVeXvVikNKrDz69sHowPMorbPUrH/mx8c50eiBQ==} + engines: {node: '>=18'} + zod@3.24.1: resolution: {integrity: sha512-muH7gBL9sI1nciMZV67X5fTKKBLtwpZ5VBp1vsOQzj1MhrBZ4wlVCm3gedKZWLp0Oyel8sIGfeiz54Su+OVT+A==} @@ -8910,6 +9516,11 @@ snapshots: '@drizzle-team/brocli@0.10.2': {} + '@emnapi/runtime@1.4.3': + dependencies: + tslib: 2.8.1 + optional: true + '@esbuild-kit/core-utils@3.3.2': dependencies: esbuild: 0.18.20 @@ -9269,6 +9880,84 @@ snapshots: transitivePeerDependencies: - supports-color + '@img/sharp-darwin-arm64@0.34.1': + optionalDependencies: + '@img/sharp-libvips-darwin-arm64': 1.1.0 + optional: true + + '@img/sharp-darwin-x64@0.34.1': + optionalDependencies: + '@img/sharp-libvips-darwin-x64': 1.1.0 + optional: true + + '@img/sharp-libvips-darwin-arm64@1.1.0': + optional: true + + '@img/sharp-libvips-darwin-x64@1.1.0': + optional: true + + '@img/sharp-libvips-linux-arm64@1.1.0': + optional: true + + '@img/sharp-libvips-linux-arm@1.1.0': + optional: true + + '@img/sharp-libvips-linux-ppc64@1.1.0': + optional: true + + '@img/sharp-libvips-linux-s390x@1.1.0': + optional: true + + '@img/sharp-libvips-linux-x64@1.1.0': + optional: true + + '@img/sharp-libvips-linuxmusl-arm64@1.1.0': + optional: true + + '@img/sharp-libvips-linuxmusl-x64@1.1.0': + optional: true + + '@img/sharp-linux-arm64@0.34.1': + optionalDependencies: + '@img/sharp-libvips-linux-arm64': 1.1.0 + optional: true + + '@img/sharp-linux-arm@0.34.1': + optionalDependencies: + '@img/sharp-libvips-linux-arm': 1.1.0 + optional: true + + '@img/sharp-linux-s390x@0.34.1': + optionalDependencies: + '@img/sharp-libvips-linux-s390x': 1.1.0 + optional: true + + '@img/sharp-linux-x64@0.34.1': + optionalDependencies: + '@img/sharp-libvips-linux-x64': 1.1.0 + optional: true + + '@img/sharp-linuxmusl-arm64@0.34.1': + optionalDependencies: + '@img/sharp-libvips-linuxmusl-arm64': 1.1.0 + optional: true + + '@img/sharp-linuxmusl-x64@0.34.1': + optionalDependencies: + '@img/sharp-libvips-linuxmusl-x64': 1.1.0 + optional: true + + '@img/sharp-wasm32@0.34.1': + dependencies: + '@emnapi/runtime': 1.4.3 + optional: true + + '@img/sharp-win32-ia32@0.34.1': + optional: true + + '@img/sharp-win32-x64@0.34.1': + optional: true + '@isaacs/cliui@8.0.2': dependencies: string-width: 5.1.2 @@ -9529,6 +10218,8 @@ snapshots: '@next/env@14.2.28': {} + '@next/env@15.3.2': {} + '@next/eslint-plugin-next@14.2.21': dependencies: glob: 10.3.10 @@ -9536,30 +10227,54 @@ snapshots: '@next/swc-darwin-arm64@14.2.28': optional: true + '@next/swc-darwin-arm64@15.3.2': + optional: true + '@next/swc-darwin-x64@14.2.28': optional: true + '@next/swc-darwin-x64@15.3.2': + optional: true + '@next/swc-linux-arm64-gnu@14.2.28': optional: true + '@next/swc-linux-arm64-gnu@15.3.2': + optional: true + '@next/swc-linux-arm64-musl@14.2.28': optional: true + '@next/swc-linux-arm64-musl@15.3.2': + optional: true + '@next/swc-linux-x64-gnu@14.2.28': optional: true + '@next/swc-linux-x64-gnu@15.3.2': + optional: true + '@next/swc-linux-x64-musl@14.2.28': optional: true + '@next/swc-linux-x64-musl@15.3.2': + optional: true + '@next/swc-win32-arm64-msvc@14.2.28': optional: true + '@next/swc-win32-arm64-msvc@15.3.2': + optional: true + '@next/swc-win32-ia32-msvc@14.2.28': optional: true '@next/swc-win32-x64-msvc@14.2.28': optional: true + '@next/swc-win32-x64-msvc@15.3.2': + optional: true + '@nodelib/fs.scandir@2.1.5': dependencies: '@nodelib/fs.stat': 2.0.5 @@ -10176,6 +10891,126 @@ snapshots: '@radix-ui/rect@1.1.0': {} + '@react-email/body@0.0.11(react@19.1.0)': + dependencies: + react: 19.1.0 + + '@react-email/button@0.0.19(react@19.1.0)': + dependencies: + react: 19.1.0 + + '@react-email/code-block@0.0.13(react@19.1.0)': + dependencies: + prismjs: 1.30.0 + react: 19.1.0 + + '@react-email/code-inline@0.0.5(react@19.1.0)': + dependencies: + react: 19.1.0 + + '@react-email/column@0.0.13(react@19.1.0)': + dependencies: + react: 19.1.0 + + '@react-email/components@0.0.38(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@react-email/body': 0.0.11(react@19.1.0) + '@react-email/button': 0.0.19(react@19.1.0) + '@react-email/code-block': 0.0.13(react@19.1.0) + '@react-email/code-inline': 0.0.5(react@19.1.0) + '@react-email/column': 0.0.13(react@19.1.0) + '@react-email/container': 0.0.15(react@19.1.0) + '@react-email/font': 0.0.9(react@19.1.0) + '@react-email/head': 0.0.12(react@19.1.0) + '@react-email/heading': 0.0.15(react@19.1.0) + '@react-email/hr': 0.0.11(react@19.1.0) + '@react-email/html': 0.0.11(react@19.1.0) + '@react-email/img': 0.0.11(react@19.1.0) + '@react-email/link': 0.0.12(react@19.1.0) + '@react-email/markdown': 0.0.15(react@19.1.0) + '@react-email/preview': 0.0.12(react@19.1.0) + '@react-email/render': 1.1.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@react-email/row': 0.0.12(react@19.1.0) + '@react-email/section': 0.0.16(react@19.1.0) + '@react-email/tailwind': 1.0.5(react@19.1.0) + '@react-email/text': 0.1.3(react@19.1.0) + react: 19.1.0 + transitivePeerDependencies: + - react-dom + + '@react-email/container@0.0.15(react@19.1.0)': + dependencies: + react: 19.1.0 + + '@react-email/font@0.0.9(react@19.1.0)': + dependencies: + react: 19.1.0 + + '@react-email/head@0.0.12(react@19.1.0)': + dependencies: + react: 19.1.0 + + '@react-email/heading@0.0.15(react@19.1.0)': + dependencies: + react: 19.1.0 + + '@react-email/hr@0.0.11(react@19.1.0)': + dependencies: + react: 19.1.0 + + '@react-email/html@0.0.11(react@19.1.0)': + dependencies: + react: 19.1.0 + + '@react-email/img@0.0.11(react@19.1.0)': + dependencies: + react: 19.1.0 + + '@react-email/link@0.0.12(react@19.1.0)': + dependencies: + react: 19.1.0 + + '@react-email/markdown@0.0.15(react@19.1.0)': + dependencies: + md-to-react-email: 5.0.5(react@19.1.0) + react: 19.1.0 + + '@react-email/preview@0.0.12(react@19.1.0)': + dependencies: + react: 19.1.0 + + '@react-email/render@1.1.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + html-to-text: 9.0.5 + prettier: 3.5.3 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-promise-suspense: 0.3.4 + + '@react-email/render@1.1.0(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + html-to-text: 9.0.5 + prettier: 3.5.3 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + react-promise-suspense: 0.3.4 + + '@react-email/row@0.0.12(react@19.1.0)': + dependencies: + react: 19.1.0 + + '@react-email/section@0.0.16(react@19.1.0)': + dependencies: + react: 19.1.0 + + '@react-email/tailwind@1.0.5(react@19.1.0)': + dependencies: + react: 19.1.0 + + '@react-email/text@0.1.3(react@19.1.0)': + dependencies: + react: 19.1.0 + '@rollup/rollup-android-arm-eabi@4.40.1': optional: true @@ -10256,6 +11091,11 @@ snapshots: '@sapphire/snowflake@3.5.3': {} + '@selderee/plugin-htmlparser2@0.11.0': + dependencies: + domhandler: 5.0.3 + selderee: 0.11.0 + '@smithy/abort-controller@3.1.9': dependencies: '@smithy/types': 3.7.2 @@ -10587,6 +11427,8 @@ snapshots: '@smithy/types': 3.7.2 tslib: 2.8.1 + '@socket.io/component-emitter@3.1.2': {} + '@stripe/react-stripe-js@3.1.1(@stripe/stripe-js@5.4.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@stripe/stripe-js': 5.4.0 @@ -10691,6 +11533,10 @@ snapshots: '@swc/counter@0.1.3': {} + '@swc/helpers@0.5.15': + dependencies: + tslib: 2.8.1 + '@swc/helpers@0.5.5': dependencies: '@swc/counter': 0.1.3 @@ -10878,6 +11724,10 @@ snapshots: '@types/cookie@0.6.0': {} + '@types/cors@2.8.18': + dependencies: + '@types/node': 22.10.2 + '@types/d3-array@3.2.1': {} '@types/d3-color@3.1.3': {} @@ -11171,6 +12021,11 @@ snapshots: '@zxing/text-encoding@0.9.0': optional: true + accepts@1.3.8: + dependencies: + mime-types: 2.1.35 + negotiator: 0.6.3 + acorn-jsx@5.3.2(acorn@8.14.0): dependencies: acorn: 8.14.0 @@ -11346,6 +12201,8 @@ snapshots: base64-js@1.5.1: {} + base64id@2.0.0: {} + basic-ftp@5.0.5: {} bignumber.js@9.1.2: {} @@ -11465,6 +12322,8 @@ snapshots: ansi-styles: 4.3.0 supports-color: 7.2.0 + chalk@5.4.1: {} + change-case@3.1.0: dependencies: camel-case: 3.0.0 @@ -11508,6 +12367,10 @@ snapshots: optionalDependencies: fsevents: 2.3.3 + chokidar@4.0.3: + dependencies: + readdirp: 4.1.2 + class-variance-authority@0.7.1: dependencies: clsx: 2.1.1 @@ -11520,6 +12383,10 @@ snapshots: dependencies: restore-cursor: 3.1.0 + cli-cursor@5.0.0: + dependencies: + restore-cursor: 5.1.0 + cli-spinners@2.9.2: {} cli-width@3.0.0: {} @@ -11558,10 +12425,24 @@ snapshots: color-name@1.1.4: {} + 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 + comma-separated-tokens@2.0.3: {} commander@10.0.1: {} + commander@13.1.0: {} + commander@4.1.1: {} commander@7.2.0: {} @@ -11577,6 +12458,8 @@ snapshots: cookie@0.6.0: {} + cookie@0.7.2: {} + copy-anything@3.0.5: dependencies: is-what: 4.1.16 @@ -11587,6 +12470,11 @@ snapshots: core-js-pure@3.39.0: {} + cors@2.8.5: + dependencies: + object-assign: 4.1.1 + vary: 1.1.2 + cosmiconfig@8.3.6(typescript@5.7.2): dependencies: import-fresh: 3.3.0 @@ -11698,10 +12586,16 @@ snapshots: date-fns@3.6.0: {} + debounce@2.2.0: {} + debug@3.2.7: dependencies: ms: 2.1.3 + debug@4.3.7: + dependencies: + ms: 2.1.3 + debug@4.4.0: dependencies: ms: 2.1.3 @@ -11895,10 +12789,30 @@ snapshots: electron-to-chromium@1.5.88: {} + emoji-regex@10.4.0: {} + emoji-regex@8.0.0: {} emoji-regex@9.2.2: {} + engine.io-parser@5.2.3: {} + + engine.io@6.6.4: + dependencies: + '@types/cors': 2.8.18 + '@types/node': 22.10.2 + accepts: 1.3.8 + base64id: 2.0.0 + cookie: 0.7.2 + cors: 2.8.5 + debug: 4.3.7 + engine.io-parser: 5.2.3 + ws: 8.17.1 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + enhanced-resolve@5.18.1: dependencies: graceful-fs: 4.2.11 @@ -12111,16 +13025,17 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.0(eslint-import-resolver-node@0.3.9)(eslint@9.17.0(jiti@2.4.2)): + eslint-module-utils@2.12.0(@typescript-eslint/parser@8.31.0(eslint@9.17.0(jiti@2.4.2))(typescript@5.7.2))(eslint-import-resolver-node@0.3.9)(eslint@9.17.0(jiti@2.4.2)): dependencies: debug: 3.2.7 optionalDependencies: + '@typescript-eslint/parser': 8.31.0(eslint@9.17.0(jiti@2.4.2))(typescript@5.7.2) eslint: 9.17.0(jiti@2.4.2) eslint-import-resolver-node: 0.3.9 transitivePeerDependencies: - supports-color - eslint-plugin-import@2.31.0(eslint@9.17.0(jiti@2.4.2)): + eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.31.0(eslint@9.17.0(jiti@2.4.2))(typescript@5.7.2))(eslint@9.17.0(jiti@2.4.2)): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.8 @@ -12131,7 +13046,7 @@ snapshots: doctrine: 2.1.0 eslint: 9.17.0(jiti@2.4.2) eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.0(eslint-import-resolver-node@0.3.9)(eslint@9.17.0(jiti@2.4.2)) + eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.31.0(eslint@9.17.0(jiti@2.4.2))(typescript@5.7.2))(eslint-import-resolver-node@0.3.9)(eslint@9.17.0(jiti@2.4.2)) hasown: 2.0.2 is-core-module: 2.16.0 is-glob: 4.0.3 @@ -12142,6 +13057,8 @@ snapshots: semver: 6.3.1 string.prototype.trimend: 1.0.9 tsconfig-paths: 3.15.0 + optionalDependencies: + '@typescript-eslint/parser': 8.31.0(eslint@9.17.0(jiti@2.4.2))(typescript@5.7.2) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack @@ -12350,6 +13267,8 @@ snapshots: iconv-lite: 0.4.24 tmp: 0.0.33 + fast-deep-equal@2.0.1: {} + fast-deep-equal@3.1.3: {} fast-equals@5.2.2: {} @@ -12490,6 +13409,8 @@ snapshots: get-caller-file@2.0.5: {} + get-east-asian-width@1.3.0: {} + get-intrinsic@1.2.6: dependencies: call-bind-apply-helpers: 1.0.1 @@ -12559,6 +13480,15 @@ snapshots: package-json-from-dist: 1.0.1 path-scurry: 1.11.1 + glob@11.0.2: + dependencies: + foreground-child: 3.3.0 + jackspeak: 4.1.0 + minimatch: 10.0.1 + minipass: 7.1.2 + package-json-from-dist: 1.0.1 + path-scurry: 2.0.0 + glob@7.2.3: dependencies: fs.realpath: 1.0.0 @@ -12710,8 +13640,23 @@ snapshots: no-case: 2.3.2 upper-case: 1.1.3 + html-to-text@9.0.5: + dependencies: + '@selderee/plugin-htmlparser2': 0.11.0 + deepmerge: 4.3.1 + dom-serializer: 2.0.0 + htmlparser2: 8.0.2 + selderee: 0.11.0 + html-url-attributes@3.0.1: {} + htmlparser2@8.0.2: + dependencies: + domelementtype: 2.3.0 + domhandler: 5.0.3 + domutils: 3.2.2 + entities: 4.5.0 + http-proxy-agent@7.0.2: dependencies: agent-base: 7.1.3 @@ -12829,6 +13774,9 @@ snapshots: is-arrayish@0.2.1: {} + is-arrayish@0.3.2: + optional: true + is-async-function@2.0.0: dependencies: has-tostringtag: 1.0.2 @@ -12887,6 +13835,8 @@ snapshots: is-interactive@1.0.0: {} + is-interactive@2.0.0: {} + is-lower-case@1.1.3: dependencies: lower-case: 1.1.4 @@ -12944,6 +13894,10 @@ snapshots: is-unicode-supported@0.1.0: {} + is-unicode-supported@1.3.0: {} + + is-unicode-supported@2.1.0: {} + is-upper-case@1.1.2: dependencies: upper-case: 1.1.3 @@ -12997,6 +13951,10 @@ snapshots: optionalDependencies: '@pkgjs/parseargs': 0.11.0 + jackspeak@4.1.0: + dependencies: + '@isaacs/cliui': 8.0.2 + jimp@0.22.12: dependencies: '@jimp/custom': 0.22.12 @@ -13081,6 +14039,8 @@ snapshots: dependencies: language-subtag-registry: 0.3.23 + leac@0.6.0: {} + levn@0.4.1: dependencies: prelude-ls: 1.2.1 @@ -13175,6 +14135,16 @@ snapshots: chalk: 4.1.2 is-unicode-supported: 0.1.0 + log-symbols@6.0.0: + dependencies: + chalk: 5.4.1 + is-unicode-supported: 1.3.0 + + log-symbols@7.0.0: + dependencies: + is-unicode-supported: 2.1.0 + yoctocolors: 2.1.1 + longest-streak@3.1.0: {} loose-envify@1.4.0: @@ -13193,6 +14163,8 @@ snapshots: lru-cache@10.4.3: {} + lru-cache@11.1.0: {} + lru-cache@5.1.1: dependencies: yallist: 3.1.1 @@ -13207,8 +14179,15 @@ snapshots: make-error@1.3.6: {} + marked@7.0.4: {} + math-intrinsics@1.1.0: {} + md-to-react-email@5.0.5(react@19.1.0): + dependencies: + marked: 7.0.4 + react: 19.1.0 + mdast-util-from-markdown@2.0.2: dependencies: '@types/mdast': 4.0.4 @@ -13448,18 +14427,30 @@ snapshots: mime-db@1.52.0: {} + mime-db@1.54.0: {} + mime-types@2.1.35: dependencies: mime-db: 1.52.0 + mime-types@3.0.1: + dependencies: + mime-db: 1.54.0 + mime@1.6.0: {} mimic-fn@2.1.0: {} + mimic-function@5.0.1: {} + min-document@2.19.0: dependencies: dom-walk: 0.1.2 + minimatch@10.0.1: + dependencies: + brace-expansion: 2.0.1 + minimatch@3.1.2: dependencies: brace-expansion: 1.1.11 @@ -13515,6 +14506,8 @@ snapshots: natural-compare@1.4.0: {} + negotiator@0.6.3: {} + neo-async@2.6.2: {} netmask@2.0.2: {} @@ -13560,6 +14553,31 @@ snapshots: - '@babel/core' - babel-plugin-macros + next@15.3.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0): + dependencies: + '@next/env': 15.3.2 + '@swc/counter': 0.1.3 + '@swc/helpers': 0.5.15 + busboy: 1.6.0 + caniuse-lite: 1.0.30001714 + postcss: 8.4.31 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + styled-jsx: 5.1.6(react@19.1.0) + optionalDependencies: + '@next/swc-darwin-arm64': 15.3.2 + '@next/swc-darwin-x64': 15.3.2 + '@next/swc-linux-arm64-gnu': 15.3.2 + '@next/swc-linux-arm64-musl': 15.3.2 + '@next/swc-linux-x64-gnu': 15.3.2 + '@next/swc-linux-x64-musl': 15.3.2 + '@next/swc-win32-arm64-msvc': 15.3.2 + '@next/swc-win32-x64-msvc': 15.3.2 + sharp: 0.34.1 + transitivePeerDependencies: + - '@babel/core' + - babel-plugin-macros + no-case@2.3.2: dependencies: lower-case: 1.1.4 @@ -13660,6 +14678,10 @@ snapshots: dependencies: mimic-fn: 2.1.0 + onetime@7.0.0: + dependencies: + mimic-function: 5.0.1 + optionator@0.9.4: dependencies: deep-is: 0.1.4 @@ -13692,6 +14714,18 @@ snapshots: strip-ansi: 6.0.1 wcwidth: 1.0.1 + ora@8.2.0: + dependencies: + chalk: 5.4.1 + cli-cursor: 5.0.0 + cli-spinners: 2.9.2 + is-interactive: 2.0.0 + is-unicode-supported: 2.1.0 + log-symbols: 6.0.0 + stdin-discarder: 0.2.2 + string-width: 7.2.0 + strip-ansi: 7.1.0 + os-tmpdir@1.0.2: {} p-limit@2.3.0: @@ -13774,6 +14808,11 @@ snapshots: json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 + parseley@0.12.1: + dependencies: + leac: 0.6.0 + peberminta: 0.9.0 + pascal-case@2.0.1: dependencies: camel-case: 3.0.0 @@ -13796,8 +14835,15 @@ snapshots: lru-cache: 10.4.3 minipass: 7.1.2 + path-scurry@2.0.0: + dependencies: + lru-cache: 11.1.0 + minipass: 7.1.2 + path-type@4.0.0: {} + peberminta@0.9.0: {} + peek-readable@4.1.0: {} pg-cloudflare@1.1.1: @@ -13966,8 +15012,12 @@ snapshots: prettier@3.4.2: {} + prettier@3.5.3: {} + pretty-format@3.8.0: {} + prismjs@1.30.0: {} + process@0.11.10: {} prop-types@15.8.1: @@ -14042,6 +15092,35 @@ snapshots: react: 19.1.0 scheduler: 0.26.0 + react-email@4.0.11(react-dom@19.1.0(react@19.1.0))(react@19.1.0): + dependencies: + '@babel/parser': 7.27.0 + '@babel/traverse': 7.27.0 + chalk: 5.4.1 + chokidar: 4.0.3 + commander: 13.1.0 + debounce: 2.2.0 + esbuild: 0.25.3 + glob: 11.0.2 + log-symbols: 7.0.0 + mime-types: 3.0.1 + next: 15.3.2(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + normalize-path: 3.0.0 + ora: 8.2.0 + socket.io: 4.8.1 + transitivePeerDependencies: + - '@babel/core' + - '@opentelemetry/api' + - '@playwright/test' + - babel-plugin-macros + - babel-plugin-react-compiler + - bufferutil + - react + - react-dom + - sass + - supports-color + - utf-8-validate + react-hook-form@7.54.2(react@18.3.1): dependencies: react: 18.3.1 @@ -14073,6 +15152,10 @@ snapshots: transitivePeerDependencies: - supports-color + react-promise-suspense@0.3.4: + dependencies: + fast-deep-equal: 2.0.1 + react-qr-reader@3.0.0-beta-1(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: '@zxing/browser': 0.0.7(@zxing/library@0.18.6) @@ -14190,6 +15273,8 @@ snapshots: dependencies: picomatch: 2.3.1 + readdirp@4.1.2: {} + recharts-scale@0.4.5: dependencies: decimal.js-light: 2.5.1 @@ -14318,6 +15403,11 @@ snapshots: onetime: 5.1.2 signal-exit: 3.0.7 + restore-cursor@5.1.0: + dependencies: + onetime: 7.0.0 + signal-exit: 4.1.0 + reusify@1.0.4: {} rimraf@3.0.2: @@ -14432,12 +15522,19 @@ snapshots: get-value: 3.0.1 set-value: 4.1.0 + selderee@0.11.0: + dependencies: + parseley: 0.12.1 + semver@6.3.1: {} semver@7.6.2: {} semver@7.6.3: {} + semver@7.7.1: + optional: true + sentence-case@2.1.1: dependencies: no-case: 2.3.2 @@ -14466,6 +15563,34 @@ snapshots: is-plain-object: 2.0.4 is-primitive: 3.0.1 + sharp@0.34.1: + dependencies: + color: 4.2.3 + detect-libc: 2.0.3 + semver: 7.7.1 + optionalDependencies: + '@img/sharp-darwin-arm64': 0.34.1 + '@img/sharp-darwin-x64': 0.34.1 + '@img/sharp-libvips-darwin-arm64': 1.1.0 + '@img/sharp-libvips-darwin-x64': 1.1.0 + '@img/sharp-libvips-linux-arm': 1.1.0 + '@img/sharp-libvips-linux-arm64': 1.1.0 + '@img/sharp-libvips-linux-ppc64': 1.1.0 + '@img/sharp-libvips-linux-s390x': 1.1.0 + '@img/sharp-libvips-linux-x64': 1.1.0 + '@img/sharp-libvips-linuxmusl-arm64': 1.1.0 + '@img/sharp-libvips-linuxmusl-x64': 1.1.0 + '@img/sharp-linux-arm': 0.34.1 + '@img/sharp-linux-arm64': 0.34.1 + '@img/sharp-linux-s390x': 0.34.1 + '@img/sharp-linux-x64': 0.34.1 + '@img/sharp-linuxmusl-arm64': 0.34.1 + '@img/sharp-linuxmusl-x64': 0.34.1 + '@img/sharp-wasm32': 0.34.1 + '@img/sharp-win32-ia32': 0.34.1 + '@img/sharp-win32-x64': 0.34.1 + optional: true + shebang-command@2.0.0: dependencies: shebang-regex: 3.0.0 @@ -14504,6 +15629,11 @@ snapshots: signal-exit@4.1.0: {} + simple-swizzle@0.2.2: + dependencies: + is-arrayish: 0.3.2 + optional: true + slash@3.0.0: {} smart-buffer@4.2.0: {} @@ -14517,6 +15647,36 @@ snapshots: dot-case: 3.0.4 tslib: 2.8.1 + socket.io-adapter@2.5.5: + dependencies: + debug: 4.3.7 + ws: 8.17.1 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + socket.io-parser@4.2.4: + dependencies: + '@socket.io/component-emitter': 3.1.2 + debug: 4.3.7 + transitivePeerDependencies: + - supports-color + + socket.io@4.8.1: + dependencies: + accepts: 1.3.8 + base64id: 2.0.0 + cors: 2.8.5 + debug: 4.3.7 + engine.io: 6.6.4 + socket.io-adapter: 2.5.5 + socket.io-parser: 4.2.4 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + socks-proxy-agent@8.0.5: dependencies: agent-base: 7.1.3 @@ -14552,6 +15712,8 @@ snapshots: sprintf-js@1.1.3: {} + stdin-discarder@0.2.2: {} + stream-chain@2.2.5: {} stream-json@1.9.1: @@ -14574,6 +15736,12 @@ snapshots: emoji-regex: 9.2.2 strip-ansi: 7.1.0 + string-width@7.2.0: + dependencies: + emoji-regex: 10.4.0 + get-east-asian-width: 1.3.0 + strip-ansi: 7.1.0 + string.prototype.includes@2.0.1: dependencies: call-bind: 1.0.8 @@ -14672,6 +15840,11 @@ snapshots: optionalDependencies: '@babel/core': 7.26.7 + styled-jsx@5.1.6(react@19.1.0): + dependencies: + client-only: 0.0.1 + react: 19.1.0 + sucrase@3.35.0: dependencies: '@jridgewell/gen-mapping': 0.3.8 @@ -15061,6 +16234,8 @@ snapshots: validate-npm-package-name@5.0.1: {} + vary@1.1.2: {} + vaul@1.1.2(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@19.1.0(react@18.3.1))(react@18.3.1): dependencies: '@radix-ui/react-dialog': 1.1.4(@types/react-dom@19.1.2(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@19.1.0(react@18.3.1))(react@18.3.1) @@ -15201,6 +16376,8 @@ snapshots: wrappy@1.0.2: {} + ws@8.17.1: {} + ws@8.18.0: {} xhr@2.6.0: @@ -15250,6 +16427,8 @@ snapshots: yocto-queue@0.1.0: {} + yoctocolors@2.1.1: {} + zod@3.24.1: {} zwitch@2.0.4: {} From 554da78e37f84ab4f50689a5b2e5cb805fcffa04 Mon Sep 17 00:00:00 2001 From: Lewin Bobda <116130662+Lewin-B@users.noreply.github.com> Date: Thu, 15 May 2025 22:24:41 -0400 Subject: [PATCH 10/15] grid layout --- apps/blade/src/app/emailTest/page.tsx | 22 ------ .../emails/acceptance-email.tsx | 73 ++++++++++++++++--- packages/api/src/routers/email.ts | 1 + 3 files changed, 63 insertions(+), 33 deletions(-) delete mode 100644 apps/blade/src/app/emailTest/page.tsx diff --git a/apps/blade/src/app/emailTest/page.tsx b/apps/blade/src/app/emailTest/page.tsx deleted file mode 100644 index a752ee73c..000000000 --- a/apps/blade/src/app/emailTest/page.tsx +++ /dev/null @@ -1,22 +0,0 @@ -import { pretty, render } from "@react-email/render"; - -import { AcceptanceEmail } from "~/../../email-templates/emails/acceptance-email"; -import { api } from "~/trpc/server"; - -export default async function EmailPage() { - const html = await pretty( - await render(), - ); - await api.email.sendEmail({ - from: "donotreply@knighthacks.org", - to: "lwbobda@gmail.com", - subject: "test", - body: html, - }); - - return ( - <> - - - ); -} diff --git a/apps/email-templates/emails/acceptance-email.tsx b/apps/email-templates/emails/acceptance-email.tsx index 48389765b..58da1a553 100644 --- a/apps/email-templates/emails/acceptance-email.tsx +++ b/apps/email-templates/emails/acceptance-email.tsx @@ -25,18 +25,43 @@ export const AcceptanceEmail = ({ name }: AcceptanceEmailProps) => { theme: { extend: { fontFamily: { - manga: ["'Manga Temple'", "cursive"], + manga: ["'Manga Temple'"], }, }, }, }} > - + {previewText} - {/* HERO SECTION */} -
+
+ + + + +
+ Divider +
+
+ +
{ > @@ -73,7 +98,7 @@ export const AcceptanceEmail = ({ name }: AcceptanceEmailProps) => { {/* BANNER IMAGE */}
KnightHacks Banner {
{ }} > -    Congrats,  +     Congrats,  - {name} + {name}!
- + {
+ +
+ + + + +
+ Divider +
+
diff --git a/packages/api/src/routers/email.ts b/packages/api/src/routers/email.ts index 9ef9e9733..199c7c09a 100644 --- a/packages/api/src/routers/email.ts +++ b/packages/api/src/routers/email.ts @@ -17,6 +17,7 @@ export const emailRouter = { ) .mutation(async ({ input }) => { const alias = input.from; + try { await gmail.users.settings.sendAs.create({ userId: "me", From fc311658fd6158136b818622877b40cfda63913d Mon Sep 17 00:00:00 2001 From: Lewin Bobda <116130662+Lewin-B@users.noreply.github.com> Date: Thu, 15 May 2025 22:32:04 -0400 Subject: [PATCH 11/15] Remove type and lint erros --- apps/email-templates/emails/acceptance-email.tsx | 1 + packages/api/src/routers/email.ts | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/apps/email-templates/emails/acceptance-email.tsx b/apps/email-templates/emails/acceptance-email.tsx index 58da1a553..dc9d3a76e 100644 --- a/apps/email-templates/emails/acceptance-email.tsx +++ b/apps/email-templates/emails/acceptance-email.tsx @@ -71,6 +71,7 @@ export const AcceptanceEmail = ({ name }: AcceptanceEmailProps) => { > Date: Thu, 15 May 2025 23:17:41 -0400 Subject: [PATCH 12/15] Fix reviews --- apps/email-templates/readme.md | 27 --------------------------- packages/api/src/routers/email.ts | 2 +- 2 files changed, 1 insertion(+), 28 deletions(-) delete mode 100644 apps/email-templates/readme.md diff --git a/apps/email-templates/readme.md b/apps/email-templates/readme.md deleted file mode 100644 index fc875bfa3..000000000 --- a/apps/email-templates/readme.md +++ /dev/null @@ -1,27 +0,0 @@ -# React Email Starter - -A live preview right in your browser so you don't need to keep sending real emails during development. - -## Getting Started - -First, install the dependencies: - -```sh -npm install -# or -yarn -``` - -Then, run the development server: - -```sh -npm run dev -# or -yarn dev -``` - -Open [localhost:3000](http://localhost:3000) with your browser to see the result. - -## License - -MIT License diff --git a/packages/api/src/routers/email.ts b/packages/api/src/routers/email.ts index 848abaaef..c8cf7b4f1 100644 --- a/packages/api/src/routers/email.ts +++ b/packages/api/src/routers/email.ts @@ -23,7 +23,7 @@ export const emailRouter = { userId: "me", requestBody: { sendAsEmail: alias, - displayName: "KnightHacks", + displayName: "Knight Hacks", treatAsAlias: true, isDefault: false, }, From a36197e81ef14355951e510a03dbc1ef0d10e6a0 Mon Sep 17 00:00:00 2001 From: Lewin Bobda <116130662+Lewin-B@users.noreply.github.com> Date: Thu, 15 May 2025 23:50:43 -0400 Subject: [PATCH 13/15] Fix lint --- .../email-templates/.react-email/CHANGELOG.md | 302 + apps/email-templates/.react-email/license.md | 7 + .../.react-email/module-punycode.d.ts | 3 + .../.react-email/next.config.js | 34 + .../.react-email/package-lock.json | 7114 ++ .../email-templates/.react-email/package.json | 1 + .../.react-email/postcss.config.js | 8 + apps/email-templates/.react-email/readme.md | 44 + .../scripts/build-preview-server.mjs | 33 + .../scripts/fill-caniemail-data.mjs | 36 + .../email-validation/caniemail-data.ts | 85993 ++++++++++++++++ .../email-validation/check-compatibility.ts | 333 + .../email-validation/check-images.spec.tsx | 100 + .../actions/email-validation/check-images.ts | 160 + .../email-validation/check-links.spec.tsx | 113 + .../actions/email-validation/check-links.ts | 113 + .../get-code-location-from-ast-element.ts | 18 + .../actions/email-validation/quick-fetch.ts | 14 + .../src/actions/get-email-path-from-slug.ts | 32 + .../get-emails-directory-metadata-action.ts | 19 + .../src/actions/render-email-by-path.tsx | 121 + .../src/animated-icons-data/help.json | 1082 + .../src/animated-icons-data/link.json | 1309 + .../src/animated-icons-data/load.json | 443 + .../src/animated-icons-data/mail.json | 1320 + .../.react-email/src/app/env.ts | 15 + .../.react-email/src/app/favicon.ico | Bin 0 -> 15406 bytes .../.react-email/src/app/fonts.ts | 39 + .../src/app/fonts/SFMono/SFMonoBold.otf | Bin 0 -> 93808 bytes .../src/app/fonts/SFMono/SFMonoBoldItalic.otf | Bin 0 -> 90496 bytes .../src/app/fonts/SFMono/SFMonoHeavy.otf | Bin 0 -> 87452 bytes .../app/fonts/SFMono/SFMonoHeavyItalic.otf | Bin 0 -> 81636 bytes .../src/app/fonts/SFMono/SFMonoLight.otf | Bin 0 -> 86872 bytes .../app/fonts/SFMono/SFMonoLightItalic.otf | Bin 0 -> 82448 bytes .../src/app/fonts/SFMono/SFMonoMedium.otf | Bin 0 -> 94216 bytes .../app/fonts/SFMono/SFMonoMediumItalic.otf | Bin 0 -> 90848 bytes .../src/app/fonts/SFMono/SFMonoRegular.otf | Bin 0 -> 93944 bytes .../app/fonts/SFMono/SFMonoRegularItalic.otf | Bin 0 -> 91296 bytes .../src/app/fonts/SFMono/SFMonoSemibold.otf | Bin 0 -> 93852 bytes .../app/fonts/SFMono/SFMonoSemiboldItalic.otf | Bin 0 -> 91788 bytes .../.react-email/src/app/globals.css | 15 + .../.react-email/src/app/layout.tsx | 45 + .../.react-email/src/app/logo.png | Bin 0 -> 116494 bytes .../.react-email/src/app/page.tsx | 46 + .../src/app/preview/[...slug]/page.tsx | 164 + .../src/app/preview/[...slug]/preview.tsx | 216 + .../app/preview/[...slug]/rendering-error.tsx | 40 + .../.react-email/src/components/button.tsx | 101 + .../src/components/code-container.tsx | 164 + .../src/components/code-snippet.tsx | 9 + .../.react-email/src/components/code.tsx | 184 + .../.react-email/src/components/heading.tsx | 113 + .../src/components/icons/icon-arrow-down.tsx | 16 + .../src/components/icons/icon-base.tsx | 26 + .../src/components/icons/icon-bug.tsx | 19 + .../src/components/icons/icon-button.tsx | 23 + .../src/components/icons/icon-check.tsx | 19 + .../src/components/icons/icon-clipboard.tsx | 40 + .../src/components/icons/icon-download.tsx | 19 + .../src/components/icons/icon-email.tsx | 18 + .../src/components/icons/icon-file.tsx | 19 + .../src/components/icons/icon-folder-open.tsx | 19 + .../src/components/icons/icon-folder.tsx | 18 + .../components/icons/icon-hide-sidebar.tsx | 23 + .../src/components/icons/icon-image.tsx | 19 + .../src/components/icons/icon-info.tsx | 18 + .../src/components/icons/icon-link.tsx | 14 + .../src/components/icons/icon-monitor.tsx | 19 + .../src/components/icons/icon-phone.tsx | 26 + .../src/components/icons/icon-reload.tsx | 18 + .../src/components/icons/icon-source.tsx | 19 + .../src/components/icons/icon-stamp.tsx | 14 + .../src/components/icons/icon-warning.tsx | 31 + .../.react-email/src/components/index.ts | 7 + .../.react-email/src/components/logo.tsx | 63 + .../src/components/resizable-wrapper.tsx | 173 + .../.react-email/src/components/send.tsx | 134 + .../.react-email/src/components/shell.tsx | 92 + .../sidebar/file-tree-directory-children.tsx | 134 + .../sidebar/file-tree-directory.tsx | 92 + .../src/components/sidebar/file-tree.tsx | 31 + .../src/components/sidebar/index.ts | 1 + .../src/components/sidebar/sidebar.tsx | 43 + .../.react-email/src/components/text.tsx | 99 + .../.react-email/src/components/toolbar.tsx | 349 + .../components/toolbar/checking-results.tsx | 150 + .../toolbar/code-preview-line-link.tsx | 40 + .../src/components/toolbar/compatibility.tsx | 113 + .../src/components/toolbar/linter.tsx | 278 + .../src/components/toolbar/results-table.tsx | 0 .../src/components/toolbar/results.tsx | 51 + .../src/components/toolbar/spam-assassin.tsx | 155 + .../src/components/toolbar/toolbar-button.tsx | 52 + .../components/toolbar/use-cached-state.ts | 33 + .../src/components/tooltip-content.tsx | 31 + .../.react-email/src/components/tooltip.tsx | 19 + .../.react-email/src/components/topbar.tsx | 59 + .../topbar/active-view-toggle-group.tsx | 86 + .../components/topbar/view-size-controls.tsx | 247 + .../.react-email/src/contexts/emails.tsx | 59 + .../src/contexts/fragment-identifier.tsx | 48 + .../.react-email/src/contexts/preview.tsx | 79 + .../src/hooks/use-clamped-state.ts | 24 + .../src/hooks/use-email-rendering-result.ts | 58 + .../src/hooks/use-fragment-identifier.ts | 14 + .../.react-email/src/hooks/use-hot-reload.ts | 31 + .../src/hooks/use-icon-animation.ts | 41 + .../src/hooks/use-rendering-metadata.ts | 36 + .../get-email-component.spec.ts.snap | 3 + .../src/utils/caniemail/all-css-properties.ts | 358 + .../get-object-variables.spec.ts.snap | 74 + .../get-used-style-properties.spec.ts.snap | 24 + .../ast/get-object-variables.spec.ts | 19 + .../caniemail/ast/get-object-variables.ts | 61 + .../ast/get-used-style-properties.spec.ts | 23 + .../ast/get-used-style-properties.ts | 91 + .../get-compatibility-stats-for-entry.ts | 118 + .../src/utils/caniemail/get-css-functions.ts | 25 + .../utils/caniemail/get-css-property-names.ts | 32 + .../caniemail/get-css-property-with-value.ts | 14 + .../src/utils/caniemail/get-css-unit.ts | 3 + .../utils/caniemail/get-element-attributes.ts | 7 + .../src/utils/caniemail/get-element-names.ts | 20 + .../tailwind/generate-tailwind-rules.ts | 30 + .../caniemail/tailwind/get-tailwind-config.ts | 187 + .../tailwind/get-tailwind-metadata.spec.ts | 25 + .../tailwind/get-tailwind-metadata.ts | 45 + .../tailwind/setup-tailwind-context.ts | 15 + .../.react-email/src/utils/cn.ts | 6 + .../.react-email/src/utils/constants.ts | 6 + .../src/utils/contains-email-template.spec.ts | 107 + .../src/utils/contains-email-template.ts | 33 + .../src/utils/copy-text-to-clipboard.ts | 7 + .../utils/esbuild/escape-string-for-regex.ts | 3 + .../esbuild/renderring-utilities-exporter.ts | 63 + .../src/utils/get-email-component.spec.ts | 41 + .../src/utils/get-email-component.ts | 134 + .../get-emails-directory-metadata.spec.ts | 82 + .../utils/get-emails-directory-metadata.ts | 141 + .../get-line-and-column-from-offset.spec.ts | 11 + .../utils/get-line-and-column-from-offset.ts | 11 + .../src/utils/improve-error-with-sourcemap.ts | 86 + .../.react-email/src/utils/index.ts | 6 + .../src/utils/js-email-detection.spec.ts | 24 + .../.react-email/src/utils/language-map.ts | 7 + .../.react-email/src/utils/linting.ts | 60 + .../.react-email/src/utils/load-stream.ts | 15 + .../utils/register-spinner-autostopping.ts | 28 + .../.react-email/src/utils/result.ts | 49 + .../src/utils/run-bundled-code.ts | 64 + .../.react-email/src/utils/sanitize.ts | 6 + .../src/utils/static-node-modules-for-vm.ts | 93 + .../utils/testing/js-email-export-default.js | 17 + .../src/utils/testing/js-email-test.js | 18 + .../src/utils/testing/mdx-email-test.js | 128 + .../utils/testing/request-response-email.tsx | 9 + .../.react-email/src/utils/types/as.ts | 26 + .../src/utils/types/email-template.ts | 8 + .../src/utils/types/error-object.ts | 11 + .../src/utils/types/hot-reload-change.ts | 6 + .../src/utils/types/hot-reload-event.ts | 3 + .../.react-email/src/utils/unreachable.ts | 8 + .../.react-email/tailwind-internals.d.ts | 133 + .../.react-email/tailwind.config.ts | 99 + .../.react-email/tsconfig.json | 45 + .../.react-email/vitest.config.ts | 15 + 166 files changed, 106045 insertions(+) create mode 100644 apps/email-templates/.react-email/CHANGELOG.md create mode 100644 apps/email-templates/.react-email/license.md create mode 100644 apps/email-templates/.react-email/module-punycode.d.ts create mode 100644 apps/email-templates/.react-email/next.config.js create mode 100644 apps/email-templates/.react-email/package-lock.json create mode 100644 apps/email-templates/.react-email/package.json create mode 100644 apps/email-templates/.react-email/postcss.config.js create mode 100644 apps/email-templates/.react-email/readme.md create mode 100644 apps/email-templates/.react-email/scripts/build-preview-server.mjs create mode 100644 apps/email-templates/.react-email/scripts/fill-caniemail-data.mjs create mode 100644 apps/email-templates/.react-email/src/actions/email-validation/caniemail-data.ts create mode 100644 apps/email-templates/.react-email/src/actions/email-validation/check-compatibility.ts create mode 100644 apps/email-templates/.react-email/src/actions/email-validation/check-images.spec.tsx create mode 100644 apps/email-templates/.react-email/src/actions/email-validation/check-images.ts create mode 100644 apps/email-templates/.react-email/src/actions/email-validation/check-links.spec.tsx create mode 100644 apps/email-templates/.react-email/src/actions/email-validation/check-links.ts create mode 100644 apps/email-templates/.react-email/src/actions/email-validation/get-code-location-from-ast-element.ts create mode 100644 apps/email-templates/.react-email/src/actions/email-validation/quick-fetch.ts create mode 100644 apps/email-templates/.react-email/src/actions/get-email-path-from-slug.ts create mode 100644 apps/email-templates/.react-email/src/actions/get-emails-directory-metadata-action.ts create mode 100644 apps/email-templates/.react-email/src/actions/render-email-by-path.tsx create mode 100644 apps/email-templates/.react-email/src/animated-icons-data/help.json create mode 100644 apps/email-templates/.react-email/src/animated-icons-data/link.json create mode 100644 apps/email-templates/.react-email/src/animated-icons-data/load.json create mode 100644 apps/email-templates/.react-email/src/animated-icons-data/mail.json create mode 100644 apps/email-templates/.react-email/src/app/env.ts create mode 100644 apps/email-templates/.react-email/src/app/favicon.ico create mode 100644 apps/email-templates/.react-email/src/app/fonts.ts create mode 100644 apps/email-templates/.react-email/src/app/fonts/SFMono/SFMonoBold.otf create mode 100644 apps/email-templates/.react-email/src/app/fonts/SFMono/SFMonoBoldItalic.otf create mode 100644 apps/email-templates/.react-email/src/app/fonts/SFMono/SFMonoHeavy.otf create mode 100644 apps/email-templates/.react-email/src/app/fonts/SFMono/SFMonoHeavyItalic.otf create mode 100644 apps/email-templates/.react-email/src/app/fonts/SFMono/SFMonoLight.otf create mode 100644 apps/email-templates/.react-email/src/app/fonts/SFMono/SFMonoLightItalic.otf create mode 100644 apps/email-templates/.react-email/src/app/fonts/SFMono/SFMonoMedium.otf create mode 100644 apps/email-templates/.react-email/src/app/fonts/SFMono/SFMonoMediumItalic.otf create mode 100644 apps/email-templates/.react-email/src/app/fonts/SFMono/SFMonoRegular.otf create mode 100644 apps/email-templates/.react-email/src/app/fonts/SFMono/SFMonoRegularItalic.otf create mode 100644 apps/email-templates/.react-email/src/app/fonts/SFMono/SFMonoSemibold.otf create mode 100644 apps/email-templates/.react-email/src/app/fonts/SFMono/SFMonoSemiboldItalic.otf create mode 100644 apps/email-templates/.react-email/src/app/globals.css create mode 100644 apps/email-templates/.react-email/src/app/layout.tsx create mode 100644 apps/email-templates/.react-email/src/app/logo.png create mode 100644 apps/email-templates/.react-email/src/app/page.tsx create mode 100644 apps/email-templates/.react-email/src/app/preview/[...slug]/page.tsx create mode 100644 apps/email-templates/.react-email/src/app/preview/[...slug]/preview.tsx create mode 100644 apps/email-templates/.react-email/src/app/preview/[...slug]/rendering-error.tsx create mode 100644 apps/email-templates/.react-email/src/components/button.tsx create mode 100644 apps/email-templates/.react-email/src/components/code-container.tsx create mode 100644 apps/email-templates/.react-email/src/components/code-snippet.tsx create mode 100644 apps/email-templates/.react-email/src/components/code.tsx create mode 100644 apps/email-templates/.react-email/src/components/heading.tsx create mode 100644 apps/email-templates/.react-email/src/components/icons/icon-arrow-down.tsx create mode 100644 apps/email-templates/.react-email/src/components/icons/icon-base.tsx create mode 100644 apps/email-templates/.react-email/src/components/icons/icon-bug.tsx create mode 100644 apps/email-templates/.react-email/src/components/icons/icon-button.tsx create mode 100644 apps/email-templates/.react-email/src/components/icons/icon-check.tsx create mode 100644 apps/email-templates/.react-email/src/components/icons/icon-clipboard.tsx create mode 100644 apps/email-templates/.react-email/src/components/icons/icon-download.tsx create mode 100644 apps/email-templates/.react-email/src/components/icons/icon-email.tsx create mode 100644 apps/email-templates/.react-email/src/components/icons/icon-file.tsx create mode 100644 apps/email-templates/.react-email/src/components/icons/icon-folder-open.tsx create mode 100644 apps/email-templates/.react-email/src/components/icons/icon-folder.tsx create mode 100644 apps/email-templates/.react-email/src/components/icons/icon-hide-sidebar.tsx create mode 100644 apps/email-templates/.react-email/src/components/icons/icon-image.tsx create mode 100644 apps/email-templates/.react-email/src/components/icons/icon-info.tsx create mode 100644 apps/email-templates/.react-email/src/components/icons/icon-link.tsx create mode 100644 apps/email-templates/.react-email/src/components/icons/icon-monitor.tsx create mode 100644 apps/email-templates/.react-email/src/components/icons/icon-phone.tsx create mode 100644 apps/email-templates/.react-email/src/components/icons/icon-reload.tsx create mode 100644 apps/email-templates/.react-email/src/components/icons/icon-source.tsx create mode 100644 apps/email-templates/.react-email/src/components/icons/icon-stamp.tsx create mode 100644 apps/email-templates/.react-email/src/components/icons/icon-warning.tsx create mode 100644 apps/email-templates/.react-email/src/components/index.ts create mode 100644 apps/email-templates/.react-email/src/components/logo.tsx create mode 100644 apps/email-templates/.react-email/src/components/resizable-wrapper.tsx create mode 100644 apps/email-templates/.react-email/src/components/send.tsx create mode 100644 apps/email-templates/.react-email/src/components/shell.tsx create mode 100644 apps/email-templates/.react-email/src/components/sidebar/file-tree-directory-children.tsx create mode 100644 apps/email-templates/.react-email/src/components/sidebar/file-tree-directory.tsx create mode 100644 apps/email-templates/.react-email/src/components/sidebar/file-tree.tsx create mode 100644 apps/email-templates/.react-email/src/components/sidebar/index.ts create mode 100644 apps/email-templates/.react-email/src/components/sidebar/sidebar.tsx create mode 100644 apps/email-templates/.react-email/src/components/text.tsx create mode 100644 apps/email-templates/.react-email/src/components/toolbar.tsx create mode 100644 apps/email-templates/.react-email/src/components/toolbar/checking-results.tsx create mode 100644 apps/email-templates/.react-email/src/components/toolbar/code-preview-line-link.tsx create mode 100644 apps/email-templates/.react-email/src/components/toolbar/compatibility.tsx create mode 100644 apps/email-templates/.react-email/src/components/toolbar/linter.tsx create mode 100644 apps/email-templates/.react-email/src/components/toolbar/results-table.tsx create mode 100644 apps/email-templates/.react-email/src/components/toolbar/results.tsx create mode 100644 apps/email-templates/.react-email/src/components/toolbar/spam-assassin.tsx create mode 100644 apps/email-templates/.react-email/src/components/toolbar/toolbar-button.tsx create mode 100644 apps/email-templates/.react-email/src/components/toolbar/use-cached-state.ts create mode 100644 apps/email-templates/.react-email/src/components/tooltip-content.tsx create mode 100644 apps/email-templates/.react-email/src/components/tooltip.tsx create mode 100644 apps/email-templates/.react-email/src/components/topbar.tsx create mode 100644 apps/email-templates/.react-email/src/components/topbar/active-view-toggle-group.tsx create mode 100644 apps/email-templates/.react-email/src/components/topbar/view-size-controls.tsx create mode 100644 apps/email-templates/.react-email/src/contexts/emails.tsx create mode 100644 apps/email-templates/.react-email/src/contexts/fragment-identifier.tsx create mode 100644 apps/email-templates/.react-email/src/contexts/preview.tsx create mode 100644 apps/email-templates/.react-email/src/hooks/use-clamped-state.ts create mode 100644 apps/email-templates/.react-email/src/hooks/use-email-rendering-result.ts create mode 100644 apps/email-templates/.react-email/src/hooks/use-fragment-identifier.ts create mode 100644 apps/email-templates/.react-email/src/hooks/use-hot-reload.ts create mode 100644 apps/email-templates/.react-email/src/hooks/use-icon-animation.ts create mode 100644 apps/email-templates/.react-email/src/hooks/use-rendering-metadata.ts create mode 100644 apps/email-templates/.react-email/src/utils/__snapshots__/get-email-component.spec.ts.snap create mode 100644 apps/email-templates/.react-email/src/utils/caniemail/all-css-properties.ts create mode 100644 apps/email-templates/.react-email/src/utils/caniemail/ast/__snapshots__/get-object-variables.spec.ts.snap create mode 100644 apps/email-templates/.react-email/src/utils/caniemail/ast/__snapshots__/get-used-style-properties.spec.ts.snap create mode 100644 apps/email-templates/.react-email/src/utils/caniemail/ast/get-object-variables.spec.ts create mode 100644 apps/email-templates/.react-email/src/utils/caniemail/ast/get-object-variables.ts create mode 100644 apps/email-templates/.react-email/src/utils/caniemail/ast/get-used-style-properties.spec.ts create mode 100644 apps/email-templates/.react-email/src/utils/caniemail/ast/get-used-style-properties.ts create mode 100644 apps/email-templates/.react-email/src/utils/caniemail/get-compatibility-stats-for-entry.ts create mode 100644 apps/email-templates/.react-email/src/utils/caniemail/get-css-functions.ts create mode 100644 apps/email-templates/.react-email/src/utils/caniemail/get-css-property-names.ts create mode 100644 apps/email-templates/.react-email/src/utils/caniemail/get-css-property-with-value.ts create mode 100644 apps/email-templates/.react-email/src/utils/caniemail/get-css-unit.ts create mode 100644 apps/email-templates/.react-email/src/utils/caniemail/get-element-attributes.ts create mode 100644 apps/email-templates/.react-email/src/utils/caniemail/get-element-names.ts create mode 100644 apps/email-templates/.react-email/src/utils/caniemail/tailwind/generate-tailwind-rules.ts create mode 100644 apps/email-templates/.react-email/src/utils/caniemail/tailwind/get-tailwind-config.ts create mode 100644 apps/email-templates/.react-email/src/utils/caniemail/tailwind/get-tailwind-metadata.spec.ts create mode 100644 apps/email-templates/.react-email/src/utils/caniemail/tailwind/get-tailwind-metadata.ts create mode 100644 apps/email-templates/.react-email/src/utils/caniemail/tailwind/setup-tailwind-context.ts create mode 100644 apps/email-templates/.react-email/src/utils/cn.ts create mode 100644 apps/email-templates/.react-email/src/utils/constants.ts create mode 100644 apps/email-templates/.react-email/src/utils/contains-email-template.spec.ts create mode 100644 apps/email-templates/.react-email/src/utils/contains-email-template.ts create mode 100644 apps/email-templates/.react-email/src/utils/copy-text-to-clipboard.ts create mode 100644 apps/email-templates/.react-email/src/utils/esbuild/escape-string-for-regex.ts create mode 100644 apps/email-templates/.react-email/src/utils/esbuild/renderring-utilities-exporter.ts create mode 100644 apps/email-templates/.react-email/src/utils/get-email-component.spec.ts create mode 100644 apps/email-templates/.react-email/src/utils/get-email-component.ts create mode 100644 apps/email-templates/.react-email/src/utils/get-emails-directory-metadata.spec.ts create mode 100644 apps/email-templates/.react-email/src/utils/get-emails-directory-metadata.ts create mode 100644 apps/email-templates/.react-email/src/utils/get-line-and-column-from-offset.spec.ts create mode 100644 apps/email-templates/.react-email/src/utils/get-line-and-column-from-offset.ts create mode 100644 apps/email-templates/.react-email/src/utils/improve-error-with-sourcemap.ts create mode 100644 apps/email-templates/.react-email/src/utils/index.ts create mode 100644 apps/email-templates/.react-email/src/utils/js-email-detection.spec.ts create mode 100644 apps/email-templates/.react-email/src/utils/language-map.ts create mode 100644 apps/email-templates/.react-email/src/utils/linting.ts create mode 100644 apps/email-templates/.react-email/src/utils/load-stream.ts create mode 100644 apps/email-templates/.react-email/src/utils/register-spinner-autostopping.ts create mode 100644 apps/email-templates/.react-email/src/utils/result.ts create mode 100644 apps/email-templates/.react-email/src/utils/run-bundled-code.ts create mode 100644 apps/email-templates/.react-email/src/utils/sanitize.ts create mode 100644 apps/email-templates/.react-email/src/utils/static-node-modules-for-vm.ts create mode 100644 apps/email-templates/.react-email/src/utils/testing/js-email-export-default.js create mode 100644 apps/email-templates/.react-email/src/utils/testing/js-email-test.js create mode 100644 apps/email-templates/.react-email/src/utils/testing/mdx-email-test.js create mode 100644 apps/email-templates/.react-email/src/utils/testing/request-response-email.tsx create mode 100644 apps/email-templates/.react-email/src/utils/types/as.ts create mode 100644 apps/email-templates/.react-email/src/utils/types/email-template.ts create mode 100644 apps/email-templates/.react-email/src/utils/types/error-object.ts create mode 100644 apps/email-templates/.react-email/src/utils/types/hot-reload-change.ts create mode 100644 apps/email-templates/.react-email/src/utils/types/hot-reload-event.ts create mode 100644 apps/email-templates/.react-email/src/utils/unreachable.ts create mode 100644 apps/email-templates/.react-email/tailwind-internals.d.ts create mode 100644 apps/email-templates/.react-email/tailwind.config.ts create mode 100644 apps/email-templates/.react-email/tsconfig.json create mode 100644 apps/email-templates/.react-email/vitest.config.ts diff --git a/apps/email-templates/.react-email/CHANGELOG.md b/apps/email-templates/.react-email/CHANGELOG.md new file mode 100644 index 000000000..f8dc3d7fe --- /dev/null +++ b/apps/email-templates/.react-email/CHANGELOG.md @@ -0,0 +1,302 @@ +# react-email + +## 4.0.11 + +### Patch Changes + +- 1a17219: fix improper `require` in `email export` +- 45ab698: update next to 15.3.1 + +## 4.0.10 + +### Patch Changes + +- 5ef9fe8: fix support for `import ... = require(...)` syntax +- 4c7f597: fix `email dev` not working with `traversal` error + +## 4.0.9 + +### Patch Changes + +- 643d841: Add .json import support for hot reloading +- f21a983: fix Node 18 support +- cd02449: Ensure dependencies outside emails directory are completely resolved +- 73a31ed: Fix dependent of dependents not causing hot reloads +- bdffd8c: fix backwards compatibility with `render` versions +- e7fa043: Fix access to files outside `static` directory +- 9aa033c: Use range of versions for dependencies +- ab70556: Fix non-email files being rendered during hot reloading +- 9c9aa5d: Add error message for when an email template does not have a default export + +## 4.0.8 + +### Patch Changes + +- ea579b5: Log out errors that happen when `export`'s esbuild fails + +## 4.0.7 + +### Patch Changes + +- 403e415: Fix `deno` not working as an option for `email build` + +## 4.0.6 + +### Patch Changes + +- 809130e: `next@15.2.4` + +## 4.0.5 + +### Patch Changes + +- e1dc351: Add support for path aliases when linter runs tailwind config + +## 4.0.4 + +### Patch Changes + +- 1a7f9e6: Update dependencies: `next@15.2.3` +- 9832b5e: Fixed support for importing modules when linter loads Tailwind config + +## 4.0.3 + +### Patch Changes + +- 962f768: update esbuild to 0.25.0 +- 2225fe6: Fix detection of files with various export patterns + +## 4.0.2 + +### Patch Changes + +- ddf9652: Fix crashing when the link or image does not exist + +## 4.0.1 + +### Patch Changes + +- 8fd7409: Fix static files regression +- 8448a0b: Improved classes, better borders on table, improved scollbar colors + +## 4.0.0 + +### Major Changes + +- 56ab5ab: Add toolbar with image/link validation, compatibility checking and a spam scoring system + +## 3.0.7 + +### Patch Changes + +- c61760e: use the `punycode` package for the static modules +- 382c305: Fixes active state for root email templats on file tree +- 519f0c6: Respect user's NODE_ENV when previewing templates +- e149816: Upgrade socket.io to 4.8.1 + +## 3.0.7-canary.1 + +### Patch Changes + +- 57db6f7: Upgrade socket.io to 4.8.1 + +## 3.0.7-canary.0 + +### Patch Changes + +- 98b434c: Fixes active state for root email templats on file tree +- 1c5c986: Respect user's NODE_ENV when previewing templates + +## 3.0.6 + +### Patch Changes + +- c6fcd94: Fix preview server crashing without React 19 + +## 3.0.5 + +### Patch Changes + +- 7337d04: Fix emails being re-rendered each time there is navigation in the preview server + +## 3.0.4 + +### Patch Changes + +- 8f395d2: Update to React 19 + +## 3.0.3 + +### Patch Changes + +- 1e82151: fix null byte characters being rendered in the preview server +- b34aa90: Move react and react-dom to just dependencies for better DX +- 6781316: Improve error messages for all CLI commands + +## 3.0.3-canary.2 + +### Patch Changes + +- 6781316: Improve error messages for all CLI commands + +## 3.0.3-canary.1 + +### Patch Changes + +- 6facd7c: fix null byte characters being rendered in the preview server + +## 3.0.3-canary.0 + +### Patch Changes + +- f7833da: Move react and react-dom to just dependencies for better DX + +## 3.0.2 + +### Patch Changes + +- dc72ca4: bump chokidar to v4 +- 2a8675a: Add util/types as a module +- 4b174a4: Fix missing Request and Response globals +- 7eb68af: Fix NODE_ENV for emails as "PRODUCTION" instead of "DEVELOPMENT" +- 76183e0: Update socket.io and socket.io-client +- f295614: Add AbortSignal, Event and EventTarget +- bb79540: Add missing timers/promises Node module for `email dev` + +## 3.0.2-canary.4 + +### Patch Changes + +- 76183e0: Update socket.io and socket.io-client + +## 3.0.2-canary.3 + +### Patch Changes + +- ac01c91: bump chokidar to v4 + +## 3.0.2-canary.2 + +### Patch Changes + +- 59e27bc: Add missing timers/promises Node module for `email dev` + +## 3.0.2-canary.1 + +### Patch Changes + +- 8ceb667: Add util/types as a module +- da82d77: Add AbortSignal, Event and EventTarget + +## 3.0.2-canary.0 + +### Patch Changes + +- 76bbf7b: Fix missing Request and Response globals +- 1af53fb: Fix NODE_ENV for emails as "PRODUCTION" instead of "DEVELOPMENT" + +## 3.0.1 + +### Patch Changes + +- a40904e: Fix hot reloading + +## 3.0.0 + +### Major Changes + +- 1a47335: Use a built version of preview app when running `email dev` + +### Patch Changes + +- 19cab7b: Fixes decorators causing dependency tree babel parsing to fail +- 14b7d1d: update socket.io/socket.io-client to 4.7.5 +- b68e166: Fix sharp warning when running `email dev` +- 3caaf53: Updated peer dependencies to allow for React 19 release candidated and React 19 itself +- 9a5fd78: fix email template preview failing with emails having spaces +- d118a39: Fixes tooltip color being black for specific theming configurations +- 481e339: Fixes root directories being hidden when they are alone at their depth +- f9483ec: Deprecated `renderAsync` and made `render` itself always async + + ## Why + + Three reasons: + + 1. Better support of NextJS's latest versions + 2. Being ready for future React API deprecations + 3. Support for Suspense which allows for using async inside components + + See https://github.com/resend/react-email/discussions/1144 for more info. + + ## How to upgrade + + If you are using the old `render`, you will need to now treat the Promise + that comes out of it, as it is now async. If you are using `renderAsync`, + you can replace it with `render` and things should work the same. + +## 3.0.0-canary.1 + +### Patch Changes + +- b87cbbf: Fix sharp warning when running `email dev` + +## 3.0.0-canary.0 + +### Major Changes + +- f552226: Use a built version of preview app when running `email dev` + +### Patch Changes + +- 2799bb4: fix email template preview failing with emails having spaces +- 3f67038: Deprecated `renderAsync` and made `render` itself always async + + ## Why + + Three reasons: + + 1. Better support of NextJS's latest versions + 2. Being ready for future React API deprecations + 3. Support for Suspense which allows for using async inside components + + See https://github.com/resend/react-email/discussions/1144 for more info. + + ## How to upgrade + + If you are using the old `render`, you will need to now treat the Promise + that comes out of it, as it is now async. If you are using `renderAsync`, + you can replace it with `render` and things should work the same. + +## 2.1.7-canary.2 + +### Patch Changes + +- 349e5d5: Fixes decorators causing dependency tree babel parsing to fail +- 983626d: Fixes root directories being hidden when they are alone at their depth + +## 2.1.7-canary.1 + +### Patch Changes + +- 6f5204e: Fixes tooltip color being black for specific theming configurations + +## 2.1.7-canary.0 + +### Patch Changes + +- 27234ec: update socket.io/socket.io-client to 4.7.5 +- a1c016b: Updated peer dependencies to allow for React 19 release candidated and React 19 itself + +## 2.1.6 + +### Patch changes + +- Fixes live refresh not working with files outside `emails` directory +- Fixes export failing when templates have different suffixes + +## 2.1.6-canary.0 + +### Patch changes + +- Fixes live refresh not working with files outside `emails` directory +- Fixes export failing when templates have different suffixes diff --git a/apps/email-templates/.react-email/license.md b/apps/email-templates/.react-email/license.md new file mode 100644 index 000000000..5058f53eb --- /dev/null +++ b/apps/email-templates/.react-email/license.md @@ -0,0 +1,7 @@ +Copyright 2024 Plus Five Five, Inc + +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/apps/email-templates/.react-email/module-punycode.d.ts b/apps/email-templates/.react-email/module-punycode.d.ts new file mode 100644 index 000000000..ca2baa243 --- /dev/null +++ b/apps/email-templates/.react-email/module-punycode.d.ts @@ -0,0 +1,3 @@ +declare module 'module-punycode' { + export * from 'node:punycode'; +} diff --git a/apps/email-templates/.react-email/next.config.js b/apps/email-templates/.react-email/next.config.js new file mode 100644 index 000000000..5a3359a34 --- /dev/null +++ b/apps/email-templates/.react-email/next.config.js @@ -0,0 +1,34 @@ + +const path = require('path'); +const emailsDirRelativePath = path.normalize('./emails'); +const userProjectLocation = path.resolve(process.cwd(), '../'); +/** @type {import('next').NextConfig} */ +module.exports = { + env: { + NEXT_PUBLIC_IS_BUILDING: 'true', + EMAILS_DIR_RELATIVE_PATH: emailsDirRelativePath, + EMAILS_DIR_ABSOLUTE_PATH: path.resolve(userProjectLocation, emailsDirRelativePath), + USER_PROJECT_LOCATION: userProjectLocation + }, + // this is needed so that the code for building emails works properly + webpack: ( + /** @type {import('webpack').Configuration & { externals: string[] }} */ + config, + { isServer } + ) => { + if (isServer) { + config.externals.push('esbuild'); + } + + return config; + }, + typescript: { + ignoreBuildErrors: true + }, + eslint: { + ignoreDuringBuilds: true + }, + experimental: { + webpackBuildWorker: true + }, +} \ No newline at end of file diff --git a/apps/email-templates/.react-email/package-lock.json b/apps/email-templates/.react-email/package-lock.json new file mode 100644 index 000000000..52670fe61 --- /dev/null +++ b/apps/email-templates/.react-email/package-lock.json @@ -0,0 +1,7114 @@ +{ + "name": "preview-server", + "version": "4.0.11", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "preview-server", + "version": "4.0.11", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.27.0", + "@babel/traverse": "^7.27.0", + "chalk": "^5.0.0", + "chokidar": "^4.0.3", + "commander": "^13.0.0", + "debounce": "^2.0.0", + "esbuild": "^0.25.0", + "glob": "^11.0.0", + "log-symbols": "^7.0.0", + "mime-types": "^3.0.0", + "next": "^15.3.1", + "normalize-path": "^3.0.0", + "ora": "^8.0.0", + "socket.io": "^4.8.1" + }, + "bin": { + "email": "dist/cli/index.mjs" + }, + "devDependencies": { + "@babel/core": "7.26.10", + "@lottiefiles/dotlottie-react": "0.13.3", + "@radix-ui/colors": "3.0.0", + "@radix-ui/react-collapsible": "1.1.7", + "@radix-ui/react-dropdown-menu": "2.1.10", + "@radix-ui/react-popover": "1.1.10", + "@radix-ui/react-slot": "1.2.0", + "@radix-ui/react-tabs": "1.1.7", + "@radix-ui/react-toggle-group": "1.1.6", + "@radix-ui/react-tooltip": "1.2.3", + "@swc/core": "1.11.21", + "@types/babel__core": "7.20.5", + "@types/babel__traverse": "7.20.7", + "@types/fs-extra": "11.0.1", + "@types/mime-types": "2.1.4", + "@types/node": "22.14.1", + "@types/normalize-path": "3.0.2", + "@types/react": "19.0.10", + "@types/react-dom": "19.0.4", + "@types/webpack": "5.28.5", + "autoprefixer": "10.4.21", + "clsx": "2.1.1", + "framer-motion": "12.7.5", + "jiti": "2.4.2", + "json5": "2.2.3", + "module-punycode": "npm:punycode@2.3.1", + "node-html-parser": "7.0.1", + "postcss": "8.5.3", + "pretty-bytes": "6.1.1", + "prism-react-renderer": "2.4.1", + "react": "19.0.0", + "react-dom": "19.0.0", + "sharp": "0.34.1", + "socket.io-client": "4.8.1", + "sonner": "2.0.3", + "source-map-js": "1.2.1", + "spamc": "0.0.5", + "stacktrace-parser": "0.1.11", + "tailwind-merge": "3.2.0", + "tailwindcss": "3.4.0", + "tsup": "8.4.0", + "tsx": "4.19.3", + "typescript": "5.8.3", + "use-debounce": "10.0.4", + "zod": "3.24.3" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "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==", + "dev": true, + "license": "MIT", + "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, + "license": "Apache-2.0", + "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.27.1", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz", + "integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==", + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.27.1", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.27.2.tgz", + "integrity": "sha512-TUtMJYRPyUb/9aU8f3K0mjmjf6M9N5Woshn2CS6nqJSeJtTtQcpLUXjGt9vbF8ZGff0El99sWkLgzwW3VXnxZQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.26.10", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.10.tgz", + "integrity": "sha512-vMqyb7XCDMPvJFFOaT9kxtiRh42GwlZEg1/uIgtZshS5a/8OaduUfCi7kynKgc3Tw/6Uo2D+db9qBttghhmxwQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.26.2", + "@babel/generator": "^7.26.10", + "@babel/helper-compilation-targets": "^7.26.5", + "@babel/helper-module-transforms": "^7.26.0", + "@babel/helpers": "^7.26.10", + "@babel/parser": "^7.26.10", + "@babel/template": "^7.26.9", + "@babel/traverse": "^7.26.10", + "@babel/types": "^7.26.10", + "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/generator": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.27.1.tgz", + "integrity": "sha512-UnJfnIpc/+JO0/+KRVQNGU+y5taA5vCbwN8+azkX6beii/ZF+enZJSOKo11ZSzGJjlNfJHfQtmQT8H+9TXPG2w==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.27.1", + "@babel/types": "^7.27.1", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^3.0.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz", + "integrity": "sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.27.2", + "@babel/helper-validator-option": "^7.27.1", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz", + "integrity": "sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.27.1.tgz", + "integrity": "sha512-9yHn519/8KvTU5BjTVEEeIM3w9/2yXNKoD82JifINImhpKkARMJKPP59kLo+BafpdN5zgNeIcS4jsGDmd3l58g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1", + "@babel/traverse": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", + "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz", + "integrity": "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", + "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.27.1.tgz", + "integrity": "sha512-FCvFTm0sWV8Fxhpp2McP5/W53GPllQ9QeQ7SiqGWjMf/LVG07lFa5+pgK05IRhVwtvafT22KF+ZSnM9I545CvQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.27.1", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.27.2.tgz", + "integrity": "sha512-QYLs8299NA7WM/bZAdp+CviYYkVoYXlDW2rzliy3chxd1PQjej7JORuMJDJXJUb9g0TT+B99EwaVLKmX+sPXWw==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.27.1" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/template": { + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz", + "integrity": "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/parser": "^7.27.2", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.27.1.tgz", + "integrity": "sha512-ZCYtZciz1IWJB4U61UPu4KEaqyfj+r5T1Q5mqPo+IBpcG9kHv30Z0aD8LXPgC1trYa6rK0orRyAhqUgk4MjmEg==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.27.1", + "@babel/parser": "^7.27.1", + "@babel/template": "^7.27.1", + "@babel/types": "^7.27.1", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.27.1.tgz", + "integrity": "sha512-+EzkxvLNfiUeKMgy/3luqfsCWFRXLb7U6wNQTk60tovuckwB15B191tJWvpp4HjiQWdJkCxO3Wbvc6jlk3Xb2Q==", + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@emnapi/runtime": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.4.3.tgz", + "integrity": "sha512-pBPWdu6MLKROBX05wSNKcNb++m5Er+KQ9QkB+WVM+pW2Kx9hoSrVTnu3BdkI5eBLZoKu/J6mW/B6i6bJB2ytXQ==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.4.tgz", + "integrity": "sha512-1VCICWypeQKhVbE9oW/sJaAmjLxhVqacdkvPLEjwlttjfwENRSClS8EjBz0KzRyFSCPDIkuXW34Je/vk7zdB7Q==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.4.tgz", + "integrity": "sha512-QNdQEps7DfFwE3hXiU4BZeOV68HHzYwGd0Nthhd3uCkkEKK7/R6MTgM0P7H7FAs5pU/DIWsviMmEGxEoxIZ+ZQ==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.4.tgz", + "integrity": "sha512-bBy69pgfhMGtCnwpC/x5QhfxAz/cBgQ9enbtwjf6V9lnPI/hMyT9iWpR1arm0l3kttTr4L0KSLpKmLp/ilKS9A==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.4.tgz", + "integrity": "sha512-TVhdVtQIFuVpIIR282btcGC2oGQoSfZfmBdTip2anCaVYcqWlZXGcdcKIUklfX2wj0JklNYgz39OBqh2cqXvcQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.4.tgz", + "integrity": "sha512-Y1giCfM4nlHDWEfSckMzeWNdQS31BQGs9/rouw6Ub91tkK79aIMTH3q9xHvzH8d0wDru5Ci0kWB8b3up/nl16g==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.4.tgz", + "integrity": "sha512-CJsry8ZGM5VFVeyUYB3cdKpd/H69PYez4eJh1W/t38vzutdjEjtP7hB6eLKBoOdxcAlCtEYHzQ/PJ/oU9I4u0A==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.4.tgz", + "integrity": "sha512-yYq+39NlTRzU2XmoPW4l5Ifpl9fqSk0nAJYM/V/WUGPEFfek1epLHJIkTQM6bBs1swApjO5nWgvr843g6TjxuQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.4.tgz", + "integrity": "sha512-0FgvOJ6UUMflsHSPLzdfDnnBBVoCDtBTVyn/MrWloUNvq/5SFmh13l3dvgRPkDihRxb77Y17MbqbCAa2strMQQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.4.tgz", + "integrity": "sha512-kro4c0P85GMfFYqW4TWOpvmF8rFShbWGnrLqlzp4X1TNWjRY3JMYUfDCtOxPKOIY8B0WC8HN51hGP4I4hz4AaQ==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.4.tgz", + "integrity": "sha512-+89UsQTfXdmjIvZS6nUnOOLoXnkUTB9hR5QAeLrQdzOSWZvNSAXAtcRDHWtqAUtAmv7ZM1WPOOeSxDzzzMogiQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.4.tgz", + "integrity": "sha512-yTEjoapy8UP3rv8dB0ip3AfMpRbyhSN3+hY8mo/i4QXFeDxmiYbEKp3ZRjBKcOP862Ua4b1PDfwlvbuwY7hIGQ==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.4.tgz", + "integrity": "sha512-NeqqYkrcGzFwi6CGRGNMOjWGGSYOpqwCjS9fvaUlX5s3zwOtn1qwg1s2iE2svBe4Q/YOG1q6875lcAoQK/F4VA==", + "cpu": [ + "loong64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.4.tgz", + "integrity": "sha512-IcvTlF9dtLrfL/M8WgNI/qJYBENP3ekgsHbYUIzEzq5XJzzVEV/fXY9WFPfEEXmu3ck2qJP8LG/p3Q8f7Zc2Xg==", + "cpu": [ + "mips64el" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.4.tgz", + "integrity": "sha512-HOy0aLTJTVtoTeGZh4HSXaO6M95qu4k5lJcH4gxv56iaycfz1S8GO/5Jh6X4Y1YiI0h7cRyLi+HixMR+88swag==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.4.tgz", + "integrity": "sha512-i8JUDAufpz9jOzo4yIShCTcXzS07vEgWzyX3NH2G7LEFVgrLEhjwL3ajFE4fZI3I4ZgiM7JH3GQ7ReObROvSUA==", + "cpu": [ + "riscv64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.4.tgz", + "integrity": "sha512-jFnu+6UbLlzIjPQpWCNh5QtrcNfMLjgIavnwPQAfoGx4q17ocOU9MsQ2QVvFxwQoWpZT8DvTLooTvmOQXkO51g==", + "cpu": [ + "s390x" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.4.tgz", + "integrity": "sha512-6e0cvXwzOnVWJHq+mskP8DNSrKBr1bULBvnFLpc1KY+d+irZSgZ02TGse5FsafKS5jg2e4pbvK6TPXaF/A6+CA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.4.tgz", + "integrity": "sha512-vUnkBYxZW4hL/ie91hSqaSNjulOnYXE1VSLusnvHg2u3jewJBz3YzB9+oCw8DABeVqZGg94t9tyZFoHma8gWZQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.4.tgz", + "integrity": "sha512-XAg8pIQn5CzhOB8odIcAm42QsOfa98SBeKUdo4xa8OvX8LbMZqEtgeWE9P/Wxt7MlG2QqvjGths+nq48TrUiKw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.4.tgz", + "integrity": "sha512-Ct2WcFEANlFDtp1nVAXSNBPDxyU+j7+tId//iHXU2f/lN5AmO4zLyhDcpR5Cz1r08mVxzt3Jpyt4PmXQ1O6+7A==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.4.tgz", + "integrity": "sha512-xAGGhyOQ9Otm1Xu8NT1ifGLnA6M3sJxZ6ixylb+vIUVzvvd6GOALpwQrYrtlPouMqd/vSbgehz6HaVk4+7Afhw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.4.tgz", + "integrity": "sha512-Mw+tzy4pp6wZEK0+Lwr76pWLjrtjmJyUB23tHKqEDP74R3q95luY/bXqXZeYl4NYlvwOqoRKlInQialgCKy67Q==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.4.tgz", + "integrity": "sha512-AVUP428VQTSddguz9dO9ngb+E5aScyg7nOeJDrF1HPYu555gmza3bDGMPhmVXL8svDSoqPCsCPjb265yG/kLKQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.4.tgz", + "integrity": "sha512-i1sW+1i+oWvQzSgfRcxxG2k4I9n3O9NRqy8U+uugaT2Dy7kLO9Y7wI72haOahxceMX8hZAzgGou1FhndRldxRg==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.4.tgz", + "integrity": "sha512-nOT2vZNw6hJ+z43oP1SPea/G/6AbN6X+bGNhNuq8NtRHy4wsMhw765IKLNmnjek7GvjWBYQ8Q5VBoYTFg9y1UQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@floating-ui/core": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.7.0.tgz", + "integrity": "sha512-FRdBLykrPPA6P76GGGqlex/e7fbe0F1ykgxHYNXQsH/iTEtjMj/f9bpY5oQqbjt5VgZvgz/uKXbGuROijh3VLA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@floating-ui/utils": "^0.2.9" + } + }, + "node_modules/@floating-ui/dom": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.7.0.tgz", + "integrity": "sha512-lGTor4VlXcesUMh1cupTUTDoCxMb0V6bm3CnxHzQcw8Eaf1jQbgQX4i02fYgT0vJ82tb5MZ4CZk1LRGkktJCzg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@floating-ui/core": "^1.7.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==", + "dev": true, + "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==", + "dev": true, + "license": "MIT" + }, + "node_modules/@img/sharp-darwin-arm64": { + "version": "0.34.1", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.34.1.tgz", + "integrity": "sha512-pn44xgBtgpEbZsu+lWf2KNb6OAf70X68k+yk69Ic2Xz11zHR/w24/U49XT7AeRwJ0Px+mhALhU5LPci1Aymk7A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-darwin-arm64": "1.1.0" + } + }, + "node_modules/@img/sharp-darwin-x64": { + "version": "0.34.1", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.34.1.tgz", + "integrity": "sha512-VfuYgG2r8BpYiOUN+BfYeFo69nP/MIwAtSJ7/Zpxc5QF3KS22z8Pvg3FkrSFJBPNQ7mmcUcYQFBmEQp7eu1F8Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-darwin-x64": "1.1.0" + } + }, + "node_modules/@img/sharp-libvips-darwin-arm64": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.1.0.tgz", + "integrity": "sha512-HZ/JUmPwrJSoM4DIQPv/BfNh9yrOA8tlBbqbLz4JZ5uew2+o22Ik+tHQJcih7QJuSa0zo5coHTfD5J8inqj9DA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "darwin" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-darwin-x64": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.1.0.tgz", + "integrity": "sha512-Xzc2ToEmHN+hfvsl9wja0RlnXEgpKNmftriQp6XzY/RaSfwD9th+MSh0WQKzUreLKKINb3afirxW7A0fz2YWuQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "darwin" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-arm": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.1.0.tgz", + "integrity": "sha512-s8BAd0lwUIvYCJyRdFqvsj+BJIpDBSxs6ivrOPm/R7piTs5UIwY5OjXrP2bqXC9/moGsyRa37eYWYCOGVXxVrA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-arm64": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.1.0.tgz", + "integrity": "sha512-IVfGJa7gjChDET1dK9SekxFFdflarnUB8PwW8aGwEoF3oAsSDuNUTYS+SKDOyOJxQyDC1aPFMuRYLoDInyV9Ew==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-ppc64": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-ppc64/-/sharp-libvips-linux-ppc64-1.1.0.tgz", + "integrity": "sha512-tiXxFZFbhnkWE2LA8oQj7KYR+bWBkiV2nilRldT7bqoEZ4HiDOcePr9wVDAZPi/Id5fT1oY9iGnDq20cwUz8lQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-s390x": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.1.0.tgz", + "integrity": "sha512-xukSwvhguw7COyzvmjydRb3x/09+21HykyapcZchiCUkTThEQEOMtBj9UhkaBRLuBrgLFzQ2wbxdeCCJW/jgJA==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-x64": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.1.0.tgz", + "integrity": "sha512-yRj2+reB8iMg9W5sULM3S74jVS7zqSzHG3Ol/twnAAkAhnGQnpjj6e4ayUz7V+FpKypwgs82xbRdYtchTTUB+Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linuxmusl-arm64": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.1.0.tgz", + "integrity": "sha512-jYZdG+whg0MDK+q2COKbYidaqW/WTz0cc1E+tMAusiDygrM4ypmSCjOJPmFTvHHJ8j/6cAGyeDWZOsK06tP33w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linuxmusl-x64": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.1.0.tgz", + "integrity": "sha512-wK7SBdwrAiycjXdkPnGCPLjYb9lD4l6Ze2gSdAGVZrEL05AOUJESWU2lhlC+Ffn5/G+VKuSm6zzbQSzFX/P65A==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-linux-arm": { + "version": "0.34.1", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.34.1.tgz", + "integrity": "sha512-anKiszvACti2sGy9CirTlNyk7BjjZPiML1jt2ZkTdcvpLU1YH6CXwRAZCA2UmRXnhiIftXQ7+Oh62Ji25W72jA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-arm": "1.1.0" + } + }, + "node_modules/@img/sharp-linux-arm64": { + "version": "0.34.1", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.34.1.tgz", + "integrity": "sha512-kX2c+vbvaXC6vly1RDf/IWNXxrlxLNpBVWkdpRq5Ka7OOKj6nr66etKy2IENf6FtOgklkg9ZdGpEu9kwdlcwOQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-arm64": "1.1.0" + } + }, + "node_modules/@img/sharp-linux-s390x": { + "version": "0.34.1", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.34.1.tgz", + "integrity": "sha512-7s0KX2tI9mZI2buRipKIw2X1ufdTeaRgwmRabt5bi9chYfhur+/C1OXg3TKg/eag1W+6CCWLVmSauV1owmRPxA==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-s390x": "1.1.0" + } + }, + "node_modules/@img/sharp-linux-x64": { + "version": "0.34.1", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.34.1.tgz", + "integrity": "sha512-wExv7SH9nmoBW3Wr2gvQopX1k8q2g5V5Iag8Zk6AVENsjwd+3adjwxtp3Dcu2QhOXr8W9NusBU6XcQUohBZ5MA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-x64": "1.1.0" + } + }, + "node_modules/@img/sharp-linuxmusl-arm64": { + "version": "0.34.1", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.34.1.tgz", + "integrity": "sha512-DfvyxzHxw4WGdPiTF0SOHnm11Xv4aQexvqhRDAoD00MzHekAj9a/jADXeXYCDFH/DzYruwHbXU7uz+H+nWmSOQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linuxmusl-arm64": "1.1.0" + } + }, + "node_modules/@img/sharp-linuxmusl-x64": { + "version": "0.34.1", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.34.1.tgz", + "integrity": "sha512-pax/kTR407vNb9qaSIiWVnQplPcGU8LRIJpDT5o8PdAx5aAA7AS3X9PS8Isw1/WfqgQorPotjrZL3Pqh6C5EBg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linuxmusl-x64": "1.1.0" + } + }, + "node_modules/@img/sharp-wasm32": { + "version": "0.34.1", + "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.34.1.tgz", + "integrity": "sha512-YDybQnYrLQfEpzGOQe7OKcyLUCML4YOXl428gOOzBgN6Gw0rv8dpsJ7PqTHxBnXnwXr8S1mYFSLSa727tpz0xg==", + "cpu": [ + "wasm32" + ], + "dev": true, + "license": "Apache-2.0 AND LGPL-3.0-or-later AND MIT", + "optional": true, + "dependencies": { + "@emnapi/runtime": "^1.4.0" + }, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-ia32": { + "version": "0.34.1", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.34.1.tgz", + "integrity": "sha512-WKf/NAZITnonBf3U1LfdjoMgNO5JYRSlhovhRhMxXVdvWYveM4kM3L8m35onYIdh75cOMCo1BexgVQcCDzyoWw==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "Apache-2.0 AND LGPL-3.0-or-later", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-x64": { + "version": "0.34.1", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.34.1.tgz", + "integrity": "sha512-hw1iIAHpNE8q3uMIRCgGOeDoz9KtFNarFLQclLxr/LK1VBkj8nby18RjFvr6aP7USRYAjTZW6yisnBWMX571Tw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0 AND LGPL-3.0-or-later", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "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==", + "license": "ISC", + "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/@jridgewell/gen-mapping": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", + "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", + "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@lottiefiles/dotlottie-react": { + "version": "0.13.3", + "resolved": "https://registry.npmjs.org/@lottiefiles/dotlottie-react/-/dotlottie-react-0.13.3.tgz", + "integrity": "sha512-V4FfdYlqzjBUX7f0KV6vfQOOI0Cp+3XeG/ZqSDFSEVg5P7fpROpDv5/I9aTM8sOCESK1SWT96Fem+QVUnBV1wQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@lottiefiles/dotlottie-web": "0.42.0" + }, + "peerDependencies": { + "react": "^17 || ^18 || ^19" + } + }, + "node_modules/@lottiefiles/dotlottie-web": { + "version": "0.42.0", + "resolved": "https://registry.npmjs.org/@lottiefiles/dotlottie-web/-/dotlottie-web-0.42.0.tgz", + "integrity": "sha512-Zr2LCaOAoPCsdAQgeLyCSiQ1+xrAJtRCyuEYDj0qR5heUwpc+Pxbb88JyTVumcXFfKOBMOMmrlsTScLz2mrvQQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@next/env": { + "version": "15.3.2", + "resolved": "https://registry.npmjs.org/@next/env/-/env-15.3.2.tgz", + "integrity": "sha512-xURk++7P7qR9JG1jJtLzPzf0qEvqCN0A/T3DXf8IPMKo9/6FfjxtEffRJIIew/bIL4T3C2jLLqBor8B/zVlx6g==", + "license": "MIT" + }, + "node_modules/@next/swc-darwin-arm64": { + "version": "15.3.2", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-15.3.2.tgz", + "integrity": "sha512-2DR6kY/OGcokbnCsjHpNeQblqCZ85/1j6njYSkzRdpLn5At7OkSdmk7WyAmB9G0k25+VgqVZ/u356OSoQZ3z0g==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-darwin-x64": { + "version": "15.3.2", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-15.3.2.tgz", + "integrity": "sha512-ro/fdqaZWL6k1S/5CLv1I0DaZfDVJkWNaUU3un8Lg6m0YENWlDulmIWzV96Iou2wEYyEsZq51mwV8+XQXqMp3w==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-arm64-gnu": { + "version": "15.3.2", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-15.3.2.tgz", + "integrity": "sha512-covwwtZYhlbRWK2HlYX9835qXum4xYZ3E2Mra1mdQ+0ICGoMiw1+nVAn4d9Bo7R3JqSmK1grMq/va+0cdh7bJA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-arm64-musl": { + "version": "15.3.2", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-15.3.2.tgz", + "integrity": "sha512-KQkMEillvlW5Qk5mtGA/3Yz0/tzpNlSw6/3/ttsV1lNtMuOHcGii3zVeXZyi4EJmmLDKYcTcByV2wVsOhDt/zg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-x64-gnu": { + "version": "15.3.2", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-15.3.2.tgz", + "integrity": "sha512-uRBo6THWei0chz+Y5j37qzx+BtoDRFIkDzZjlpCItBRXyMPIg079eIkOCl3aqr2tkxL4HFyJ4GHDes7W8HuAUg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-x64-musl": { + "version": "15.3.2", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-15.3.2.tgz", + "integrity": "sha512-+uxFlPuCNx/T9PdMClOqeE8USKzj8tVz37KflT3Kdbx/LOlZBRI2yxuIcmx1mPNK8DwSOMNCr4ureSet7eyC0w==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-win32-arm64-msvc": { + "version": "15.3.2", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-15.3.2.tgz", + "integrity": "sha512-LLTKmaI5cfD8dVzh5Vt7+OMo+AIOClEdIU/TSKbXXT2iScUTSxOGoBhfuv+FU8R9MLmrkIL1e2fBMkEEjYAtPQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-win32-x64-msvc": { + "version": "15.3.2", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-15.3.2.tgz", + "integrity": "sha512-aW5B8wOPioJ4mBdMDXkt5f3j8pUr9W8AnlX0Df35uRWNT1Y6RIybxjnSUe+PhM+M1bwgyY8PHLmXZC6zT1o5tA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "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==", + "dev": true, + "license": "MIT", + "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==", + "dev": true, + "license": "MIT", + "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==", + "dev": true, + "license": "MIT", + "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==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@radix-ui/colors": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@radix-ui/colors/-/colors-3.0.0.tgz", + "integrity": "sha512-FUOsGBkHrYJwCSEtWRCIfQbZG7q1e6DgxCIOe1SUQzDe/7rXXeA47s8yCn6fuTNQAj1Zq4oTFi9Yjp3wzElcxg==", + "dev": true, + "license": "MIT" + }, + "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==", + "dev": true, + "license": "MIT" + }, + "node_modules/@radix-ui/react-arrow": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@radix-ui/react-arrow/-/react-arrow-1.1.4.tgz", + "integrity": "sha512-qz+fxrqgNxG0dYew5l7qR3c7wdgRu1XVUHGnGYX7rg5HM4p9SWaRmJwfgR3J0SgyUKayLmzQIun+N6rWRgiRKw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@radix-ui/react-primitive": "2.1.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-collapsible": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/@radix-ui/react-collapsible/-/react-collapsible-1.1.7.tgz", + "integrity": "sha512-zGFsPcFJNdQa/UNd6MOgF40BS054FIGj32oOWBllixz42f+AkQg3QJ1YT9pw7vs+Ai+EgWkh839h69GEK8oH2A==", + "dev": true, + "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.1.0", + "@radix-ui/react-use-controllable-state": "1.2.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-collection": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@radix-ui/react-collection/-/react-collection-1.1.4.tgz", + "integrity": "sha512-cv4vSf7HttqXilDnAnvINd53OTl1/bjUYVZrkFnA7nwmY9Ob2POUy0WY0sfqBAe1s5FyKsyceQlqiEGPYNTadg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-primitive": "2.1.0", + "@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==", + "dev": true, + "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==", + "dev": true, + "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-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==", + "dev": true, + "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.7", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.1.7.tgz", + "integrity": "sha512-j5+WBUdhccJsmH5/H0K6RncjDtoALSEr6jbkaZu+bjw6hOPOhHycr6vEUujl+HBK8kjUfWcoCJXxP6e4lUlMZw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.2", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-primitive": "2.1.0", + "@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.10", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dropdown-menu/-/react-dropdown-menu-2.1.10.tgz", + "integrity": "sha512-8qnILty92BmXbxKugWX3jgEeFeMoxtdggeCCxb/aB7l34QFAKB23IhJfnwyVMbRnAUJiT5LOay4kUS22+AWuRg==", + "dev": true, + "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.10", + "@radix-ui/react-primitive": "2.1.0", + "@radix-ui/react-use-controllable-state": "1.2.2" + }, + "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==", + "dev": true, + "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.4", + "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-scope/-/react-focus-scope-1.1.4.tgz", + "integrity": "sha512-r2annK27lIW5w9Ho5NyQgqs0MmgZSTIKXWpVCJaLC1q2kZrZkcqnmHkCHMEmv8XLvsLlurKMPT+kbKkRkm/xVA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-primitive": "2.1.0", + "@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-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==", + "dev": true, + "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.10", + "resolved": "https://registry.npmjs.org/@radix-ui/react-menu/-/react-menu-2.1.10.tgz", + "integrity": "sha512-OupA+1PrVf2H0K4jIwkDyA+rsJ7vF1y/VxLEO43dmZ68GtCjvx9K1/B/QscPZM3jIeFNK/wPd0HmiLjT36hVcA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.2", + "@radix-ui/react-collection": "1.1.4", + "@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.7", + "@radix-ui/react-focus-guards": "1.1.2", + "@radix-ui/react-focus-scope": "1.1.4", + "@radix-ui/react-id": "1.1.1", + "@radix-ui/react-popper": "1.2.4", + "@radix-ui/react-portal": "1.1.6", + "@radix-ui/react-presence": "1.1.3", + "@radix-ui/react-primitive": "2.1.0", + "@radix-ui/react-roving-focus": "1.1.6", + "@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-popover": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/@radix-ui/react-popover/-/react-popover-1.1.10.tgz", + "integrity": "sha512-IZN7b3sXqajiPsOzKuNJBSP9obF4MX5/5UhTgWNofw4r1H+eATWb0SyMlaxPD/kzA4vadFgy1s7Z1AEJ6WMyHQ==", + "dev": true, + "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.7", + "@radix-ui/react-focus-guards": "1.1.2", + "@radix-ui/react-focus-scope": "1.1.4", + "@radix-ui/react-id": "1.1.1", + "@radix-ui/react-popper": "1.2.4", + "@radix-ui/react-portal": "1.1.6", + "@radix-ui/react-presence": "1.1.3", + "@radix-ui/react-primitive": "2.1.0", + "@radix-ui/react-slot": "1.2.0", + "@radix-ui/react-use-controllable-state": "1.2.2", + "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-popper": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@radix-ui/react-popper/-/react-popper-1.2.4.tgz", + "integrity": "sha512-3p2Rgm/a1cK0r/UVkx5F/K9v/EplfjAeIFCGOPYPO4lZ0jtg4iSQXt/YGTSLWaf4x7NG6Z4+uKFcylcTZjeqDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@floating-ui/react-dom": "^2.0.0", + "@radix-ui/react-arrow": "1.1.4", + "@radix-ui/react-compose-refs": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-primitive": "2.1.0", + "@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.6", + "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.1.6.tgz", + "integrity": "sha512-XmsIl2z1n/TsYFLIdYam2rmFwf9OC/Sh2avkbmVMDuBZIe7hSpM0cYnWPAo7nHOVx8zTuwDZGByfcqLdnzp3Vw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@radix-ui/react-primitive": "2.1.0", + "@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==", + "dev": true, + "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.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.1.0.tgz", + "integrity": "sha512-/J/FhLdK0zVcILOwt5g+dH4KnkonCtkVJsa2G6JmvbbtZfBEI1gMsO3QMjseL4F/SwfAMt1Vc/0XKYKq+xJ1sw==", + "dev": true, + "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.6", + "resolved": "https://registry.npmjs.org/@radix-ui/react-roving-focus/-/react-roving-focus-1.1.6.tgz", + "integrity": "sha512-D2ReXCuIueKf5L2f1ks/wTj3bWck1SvK1pjLmEHPbwksS1nOHBsvgY0b9Hypt81FczqBqSyLHQxn/vbsQ0gDHw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.2", + "@radix-ui/react-collection": "1.1.4", + "@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.1.0", + "@radix-ui/react-use-callback-ref": "1.1.1", + "@radix-ui/react-use-controllable-state": "1.2.2" + }, + "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==", + "dev": true, + "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-tabs": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/@radix-ui/react-tabs/-/react-tabs-1.1.7.tgz", + "integrity": "sha512-sawt4HkD+6haVGjYOC3BMIiCumBpqTK6o407n6zN/6yReed2EN7bXyykNrpqg+xCfudpBUZg7Y2cJBd/x/iybA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "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-presence": "1.1.3", + "@radix-ui/react-primitive": "2.1.0", + "@radix-ui/react-roving-focus": "1.1.6", + "@radix-ui/react-use-controllable-state": "1.2.2" + }, + "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-toggle": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/@radix-ui/react-toggle/-/react-toggle-1.1.6.tgz", + "integrity": "sha512-3SeJxKeO3TO1zVw1Nl++Cp0krYk6zHDHMCUXXVkosIzl6Nxcvb07EerQpyD2wXQSJ5RZajrYAmPaydU8Hk1IyQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.2", + "@radix-ui/react-primitive": "2.1.0", + "@radix-ui/react-use-controllable-state": "1.2.2" + }, + "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-toggle-group": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/@radix-ui/react-toggle-group/-/react-toggle-group-1.1.6.tgz", + "integrity": "sha512-XOBq9VqC+mIn5hzjGdJLhQbvQeiOpV5ExNE6qMQQPvFsCT44QUcxFzYytTWVoyWg9XKfgrleKmTeEyu6aoTPhg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.2", + "@radix-ui/react-context": "1.1.2", + "@radix-ui/react-direction": "1.1.1", + "@radix-ui/react-primitive": "2.1.0", + "@radix-ui/react-roving-focus": "1.1.6", + "@radix-ui/react-toggle": "1.1.6", + "@radix-ui/react-use-controllable-state": "1.2.2" + }, + "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-tooltip": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-tooltip/-/react-tooltip-1.2.3.tgz", + "integrity": "sha512-0KX7jUYFA02np01Y11NWkk6Ip6TqMNmD4ijLelYAzeIndl2aVeltjJFJ2gwjNa1P8U/dgjQ+8cr9Y3Ni+ZNoRA==", + "dev": true, + "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.7", + "@radix-ui/react-id": "1.1.1", + "@radix-ui/react-popper": "1.2.4", + "@radix-ui/react-portal": "1.1.6", + "@radix-ui/react-presence": "1.1.3", + "@radix-ui/react-primitive": "2.1.0", + "@radix-ui/react-slot": "1.2.0", + "@radix-ui/react-use-controllable-state": "1.2.2", + "@radix-ui/react-visually-hidden": "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-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==", + "dev": true, + "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.2.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.2.2.tgz", + "integrity": "sha512-BjasUjixPFdS+NKkypcyyN5Pmg83Olst0+c6vGov0diwTEo6mgdqVR6hxcEgFuh4QrAs7Rc+9KuGJ9TVCj0Zzg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@radix-ui/react-use-effect-event": "0.0.2", + "@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-use-effect-event": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-effect-event/-/react-use-effect-event-0.0.2.tgz", + "integrity": "sha512-Qp8WbZOBe+blgpuUT+lw2xheLP8q0oatc9UpmiemEICxGvFLYmHm9QowVZGHtJlGbS6A6yJ3iViad/2cVjnOiA==", + "dev": true, + "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-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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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.2.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-visually-hidden/-/react-visually-hidden-1.2.0.tgz", + "integrity": "sha512-rQj0aAWOpCdCMRbI6pLQm8r7S2BM3YhTa0SzOYD55k+hJA8oo9J+H+9wLM9oMlZWOX/wJWPTzfDfmZkf7LvCfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@radix-ui/react-primitive": "2.1.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/rect": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/rect/-/rect-1.1.1.tgz", + "integrity": "sha512-HPwpGIzkl28mWyZqG52jiqDJ12waP11Pa1lGoiyUkIEuMLBP0oeK/C89esbXrxsky5we7dfd8U58nm0SgAWpVw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.40.2.tgz", + "integrity": "sha512-JkdNEq+DFxZfUwxvB58tHMHBHVgX23ew41g1OQinthJ+ryhdRk67O31S7sYw8u2lTjHUPFxwar07BBt1KHp/hg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.40.2.tgz", + "integrity": "sha512-13unNoZ8NzUmnndhPTkWPWbX3vtHodYmy+I9kuLxN+F+l+x3LdVF7UCu8TWVMt1POHLh6oDHhnOA04n8oJZhBw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.40.2.tgz", + "integrity": "sha512-Gzf1Hn2Aoe8VZzevHostPX23U7N5+4D36WJNHK88NZHCJr7aVMG4fadqkIf72eqVPGjGc0HJHNuUaUcxiR+N/w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.40.2.tgz", + "integrity": "sha512-47N4hxa01a4x6XnJoskMKTS8XZ0CZMd8YTbINbi+w03A2w4j1RTlnGHOz/P0+Bg1LaVL6ufZyNprSg+fW5nYQQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.40.2.tgz", + "integrity": "sha512-8t6aL4MD+rXSHHZUR1z19+9OFJ2rl1wGKvckN47XFRVO+QL/dUSpKA2SLRo4vMg7ELA8pzGpC+W9OEd1Z/ZqoQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.40.2.tgz", + "integrity": "sha512-C+AyHBzfpsOEYRFjztcYUFsH4S7UsE9cDtHCtma5BK8+ydOZYgMmWg1d/4KBytQspJCld8ZIujFMAdKG1xyr4Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.40.2.tgz", + "integrity": "sha512-de6TFZYIvJwRNjmW3+gaXiZ2DaWL5D5yGmSYzkdzjBDS3W+B9JQ48oZEsmMvemqjtAFzE16DIBLqd6IQQRuG9Q==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.40.2.tgz", + "integrity": "sha512-urjaEZubdIkacKc930hUDOfQPysezKla/O9qV+O89enqsqUmQm8Xj8O/vh0gHg4LYfv7Y7UsE3QjzLQzDYN1qg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.40.2.tgz", + "integrity": "sha512-KlE8IC0HFOC33taNt1zR8qNlBYHj31qGT1UqWqtvR/+NuCVhfufAq9fxO8BMFC22Wu0rxOwGVWxtCMvZVLmhQg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.40.2.tgz", + "integrity": "sha512-j8CgxvfM0kbnhu4XgjnCWJQyyBOeBI1Zq91Z850aUddUmPeQvuAy6OiMdPS46gNFgy8gN1xkYyLgwLYZG3rBOg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loongarch64-gnu": { + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.40.2.tgz", + "integrity": "sha512-Ybc/1qUampKuRF4tQXc7G7QY9YRyeVSykfK36Y5Qc5dmrIxwFhrOzqaVTNoZygqZ1ZieSWTibfFhQ5qK8jpWxw==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.40.2.tgz", + "integrity": "sha512-3FCIrnrt03CCsZqSYAOW/k9n625pjpuMzVfeI+ZBUSDT3MVIFDSPfSUgIl9FqUftxcUXInvFah79hE1c9abD+Q==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.40.2.tgz", + "integrity": "sha512-QNU7BFHEvHMp2ESSY3SozIkBPaPBDTsfVNGx3Xhv+TdvWXFGOSH2NJvhD1zKAT6AyuuErJgbdvaJhYVhVqrWTg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-musl": { + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.40.2.tgz", + "integrity": "sha512-5W6vNYkhgfh7URiXTO1E9a0cy4fSgfE4+Hl5agb/U1sa0kjOLMLC1wObxwKxecE17j0URxuTrYZZME4/VH57Hg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.40.2.tgz", + "integrity": "sha512-B7LKIz+0+p348JoAL4X/YxGx9zOx3sR+o6Hj15Y3aaApNfAshK8+mWZEf759DXfRLeL2vg5LYJBB7DdcleYCoQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.40.2.tgz", + "integrity": "sha512-lG7Xa+BmBNwpjmVUbmyKxdQJ3Q6whHjMjzQplOs5Z+Gj7mxPtWakGHqzMqNER68G67kmCX9qX57aRsW5V0VOng==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.40.2.tgz", + "integrity": "sha512-tD46wKHd+KJvsmije4bUskNuvWKFcTOIM9tZ/RrmIvcXnbi0YK/cKS9FzFtAm7Oxi2EhV5N2OpfFB348vSQRXA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.40.2.tgz", + "integrity": "sha512-Bjv/HG8RRWLNkXwQQemdsWw4Mg+IJ29LK+bJPW2SCzPKOUaMmPEppQlu/Fqk1d7+DX3V7JbFdbkh/NMmurT6Pg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.40.2.tgz", + "integrity": "sha512-dt1llVSGEsGKvzeIO76HToiYPNPYPkmjhMHhP00T9S4rDern8P2ZWvWAQUEJ+R1UdMWJ/42i/QqJ2WV765GZcA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.40.2.tgz", + "integrity": "sha512-bwspbWB04XJpeElvsp+DCylKfF4trJDa2Y9Go8O6A7YLX2LIKGcNK/CYImJN6ZP4DcuOHB4Utl3iCbnR62DudA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@socket.io/component-emitter": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.2.tgz", + "integrity": "sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==", + "license": "MIT" + }, + "node_modules/@swc/core": { + "version": "1.11.21", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.11.21.tgz", + "integrity": "sha512-/Y3BJLcwd40pExmdar8MH2UGGvCBrqNN7hauOMckrEX2Ivcbv3IMhrbGX4od1dnF880Ed8y/E9aStZCIQi0EGw==", + "dev": true, + "hasInstallScript": true, + "license": "Apache-2.0", + "dependencies": { + "@swc/counter": "^0.1.3", + "@swc/types": "^0.1.21" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/swc" + }, + "optionalDependencies": { + "@swc/core-darwin-arm64": "1.11.21", + "@swc/core-darwin-x64": "1.11.21", + "@swc/core-linux-arm-gnueabihf": "1.11.21", + "@swc/core-linux-arm64-gnu": "1.11.21", + "@swc/core-linux-arm64-musl": "1.11.21", + "@swc/core-linux-x64-gnu": "1.11.21", + "@swc/core-linux-x64-musl": "1.11.21", + "@swc/core-win32-arm64-msvc": "1.11.21", + "@swc/core-win32-ia32-msvc": "1.11.21", + "@swc/core-win32-x64-msvc": "1.11.21" + }, + "peerDependencies": { + "@swc/helpers": ">=0.5.17" + }, + "peerDependenciesMeta": { + "@swc/helpers": { + "optional": true + } + } + }, + "node_modules/@swc/core-darwin-arm64": { + "version": "1.11.21", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.11.21.tgz", + "integrity": "sha512-v6gjw9YFWvKulCw3ZA1dY+LGMafYzJksm1mD4UZFZ9b36CyHFowYVYug1ajYRIRqEvvfIhHUNV660zTLoVFR8g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-darwin-x64": { + "version": "1.11.21", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.11.21.tgz", + "integrity": "sha512-CUiTiqKlzskwswrx9Ve5NhNoab30L1/ScOfQwr1duvNlFvarC8fvQSgdtpw2Zh3MfnfNPpyLZnYg7ah4kbT9JQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm-gnueabihf": { + "version": "1.11.21", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.11.21.tgz", + "integrity": "sha512-YyBTAFM/QPqt1PscD8hDmCLnqPGKmUZpqeE25HXY8OLjl2MUs8+O4KjwPZZ+OGxpdTbwuWFyMoxjcLy80JODvg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm64-gnu": { + "version": "1.11.21", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.11.21.tgz", + "integrity": "sha512-DQD+ooJmwpNsh4acrftdkuwl5LNxxg8U4+C/RJNDd7m5FP9Wo4c0URi5U0a9Vk/6sQNh9aSGcYChDpqCDWEcBw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm64-musl": { + "version": "1.11.21", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.11.21.tgz", + "integrity": "sha512-y1L49+snt1a1gLTYPY641slqy55QotPdtRK9Y6jMi4JBQyZwxC8swWYlQWb+MyILwxA614fi62SCNZNznB3XSA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-x64-gnu": { + "version": "1.11.21", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.11.21.tgz", + "integrity": "sha512-NesdBXv4CvVEaFUlqKj+GA4jJMNUzK2NtKOrUNEtTbXaVyNiXjFCSaDajMTedEB0jTAd9ybB0aBvwhgkJUWkWA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-x64-musl": { + "version": "1.11.21", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.11.21.tgz", + "integrity": "sha512-qFV60pwpKVOdmX67wqQzgtSrUGWX9Cibnp1CXyqZ9Mmt8UyYGvmGu7p6PMbTyX7vdpVUvWVRf8DzrW2//wmVHg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-arm64-msvc": { + "version": "1.11.21", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.11.21.tgz", + "integrity": "sha512-DJJe9k6gXR/15ZZVLv1SKhXkFst8lYCeZRNHH99SlBodvu4slhh/MKQ6YCixINRhCwliHrpXPym8/5fOq8b7Ig==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-ia32-msvc": { + "version": "1.11.21", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.11.21.tgz", + "integrity": "sha512-TqEXuy6wedId7bMwLIr9byds+mKsaXVHctTN88R1UIBPwJA92Pdk0uxDgip0pEFzHB/ugU27g6d8cwUH3h2eIw==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-x64-msvc": { + "version": "1.11.21", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.11.21.tgz", + "integrity": "sha512-BT9BNNbMxdpUM1PPAkYtviaV0A8QcXttjs2MDtOeSqqvSJaPtyM+Fof2/+xSwQDmDEFzbGCcn75M5+xy3lGqpA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/counter": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz", + "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==", + "license": "Apache-2.0" + }, + "node_modules/@swc/helpers": { + "version": "0.5.15", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.15.tgz", + "integrity": "sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.8.0" + } + }, + "node_modules/@swc/types": { + "version": "0.1.21", + "resolved": "https://registry.npmjs.org/@swc/types/-/types-0.1.21.tgz", + "integrity": "sha512-2YEtj5HJVbKivud9N4bpPBAyZhj4S2Ipe5LkUG94alTpr7in/GU/EARgPAd3BwU+YOmFVJC2+kjqhGRi3r0ZpQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@swc/counter": "^0.1.3" + } + }, + "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, + "license": "MIT", + "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.27.0", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz", + "integrity": "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==", + "dev": true, + "license": "MIT", + "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, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.7.tgz", + "integrity": "sha512-dkO5fhS7+/oos4ciWxyEyjWe48zmG6wbCheo/G2ZnHx4fs3EU6YC6UM8rk56gAjNJ9P3MTH2jo5jb92/K6wbng==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.20.7" + } + }, + "node_modules/@types/cors": { + "version": "2.8.18", + "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.18.tgz", + "integrity": "sha512-nX3d0sxJW41CqQvfOzVG1NCTXfFDrDWIghCZncpHeWlVFd81zxB/DLhg7avFg6eHLCRX7ckBmoIIcqa++upvJA==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/eslint": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-9.6.1.tgz", + "integrity": "sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "node_modules/@types/eslint-scope": { + "version": "3.7.7", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", + "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "node_modules/@types/estree": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.7.tgz", + "integrity": "sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/fs-extra": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-11.0.1.tgz", + "integrity": "sha512-MxObHvNl4A69ofaTRU8DFqvgzzv8s9yRtaPPm5gud9HDNvpB3GPQFvNuTWAI59B9huVGV5jXYJwbCsmBsOGYWA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/jsonfile": "*", + "@types/node": "*" + } + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/jsonfile": { + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/@types/jsonfile/-/jsonfile-6.1.4.tgz", + "integrity": "sha512-D5qGUYwjvnNNextdU59/+fI+spnwtTFmyQP0h+PfIOSkNfpU6AOICUOkm4i0OnSk+NyjdPJrxCDro0sJsWlRpQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/mime-types": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@types/mime-types/-/mime-types-2.1.4.tgz", + "integrity": "sha512-lfU4b34HOri+kAY5UheuFMWPDOI+OPceBSHZKp69gEyTL/mmJ4cnU6Y/rlme3UL3GyOn6Y42hyIEw0/q8sWx5w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "22.14.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.14.1.tgz", + "integrity": "sha512-u0HuPQwe/dHrItgHHpmw3N2fYCR6x4ivMNbPHRkBVP4CvN+kiRrKHWk3i8tXiO/joPwXLMYvF9TTF0eqgHIuOw==", + "license": "MIT", + "dependencies": { + "undici-types": "~6.21.0" + } + }, + "node_modules/@types/normalize-path": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/normalize-path/-/normalize-path-3.0.2.tgz", + "integrity": "sha512-DO++toKYPaFn0Z8hQ7Tx+3iT9t77IJo/nDiqTXilgEP+kPNIYdpS9kh3fXuc53ugqwp9pxC1PVjCpV1tQDyqMA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/prismjs": { + "version": "1.26.5", + "resolved": "https://registry.npmjs.org/@types/prismjs/-/prismjs-1.26.5.tgz", + "integrity": "sha512-AUZTa7hQ2KY5L7AmtSiqxlhWxb4ina0yd8hNbl4TWuqnv/pFP0nDMb3YrfSBf4hJVGLh2YEIBfKaBW/9UEl6IQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/react": { + "version": "19.0.10", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.0.10.tgz", + "integrity": "sha512-JuRQ9KXLEjaUNjTWpzuR231Z2WpIwczOkBEIvbHNCzQefFIT0L8IqE6NV6ULLyC1SI/i234JnDoMkfg+RjQj2g==", + "dev": true, + "license": "MIT", + "dependencies": { + "csstype": "^3.0.2" + } + }, + "node_modules/@types/react-dom": { + "version": "19.0.4", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.0.4.tgz", + "integrity": "sha512-4fSQ8vWFkg+TGhePfUzVmat3eC14TXYSsiiDSLI0dVLsrm9gZFABjPy/Qu6TKgl1tq1Bu1yDsuQgY3A3DOjCcg==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "@types/react": "^19.0.0" + } + }, + "node_modules/@types/webpack": { + "version": "5.28.5", + "resolved": "https://registry.npmjs.org/@types/webpack/-/webpack-5.28.5.tgz", + "integrity": "sha512-wR87cgvxj3p6D0Crt1r5avwqffqPXUkNlnQ1mjU93G7gCuFjufZR4I6j8cz5g1F1tTYpfOOFvly+cmIQwL9wvw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*", + "tapable": "^2.2.0", + "webpack": "^5" + } + }, + "node_modules/@webassemblyjs/ast": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.14.1.tgz", + "integrity": "sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/helper-numbers": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2" + } + }, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz", + "integrity": "sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz", + "integrity": "sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz", + "integrity": "sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-numbers": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz", + "integrity": "sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/floating-point-hex-parser": "1.13.2", + "@webassemblyjs/helper-api-error": "1.13.2", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz", + "integrity": "sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz", + "integrity": "sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/wasm-gen": "1.14.1" + } + }, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz", + "integrity": "sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/@webassemblyjs/leb128": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.13.2.tgz", + "integrity": "sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/utf8": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.13.2.tgz", + "integrity": "sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz", + "integrity": "sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/helper-wasm-section": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-opt": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1", + "@webassemblyjs/wast-printer": "1.14.1" + } + }, + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz", + "integrity": "sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" + } + }, + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz", + "integrity": "sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1" + } + }, + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz", + "integrity": "sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-api-error": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" + } + }, + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz", + "integrity": "sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "license": "MIT", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/accepts/node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/accepts/node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "8.14.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.1.tgz", + "integrity": "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/ajv": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "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==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "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==", + "dev": true, + "license": "MIT" + }, + "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==", + "dev": true, + "license": "ISC", + "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==", + "dev": true, + "license": "MIT" + }, + "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==", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/autoprefixer": { + "version": "10.4.21", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.21.tgz", + "integrity": "sha512-O+A6LWV5LDHSJD3LjHYoNi4VLsj/Whi7k6zG12xTYaU4cQ8oxQGckXNX8cRHK5yOZ/ppVHe0ZBXGzSV9jXdVbQ==", + "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" + } + ], + "license": "MIT", + "dependencies": { + "browserslist": "^4.24.4", + "caniuse-lite": "^1.0.30001702", + "fraction.js": "^4.3.7", + "normalize-range": "^0.1.2", + "picocolors": "^1.1.1", + "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==", + "license": "MIT" + }, + "node_modules/base64id": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz", + "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==", + "license": "MIT", + "engines": { + "node": "^4.5.0 || >= 5.9" + } + }, + "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==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "dev": true, + "license": "ISC" + }, + "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==", + "license": "MIT", + "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==", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.24.5", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.5.tgz", + "integrity": "sha512-FDToo4Wo82hIdgc1CQ+NQD0hEhmpPjrZ3hiUgwgOG6IuTdlpr8jdjyG24P6cNP1yJpTLzS5OcGgSw0xmDU1/Tw==", + "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" + } + ], + "license": "MIT", + "dependencies": { + "caniuse-lite": "^1.0.30001716", + "electron-to-chromium": "^1.5.149", + "node-releases": "^2.0.19", + "update-browserslist-db": "^1.1.3" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/bundle-require": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/bundle-require/-/bundle-require-5.1.0.tgz", + "integrity": "sha512-3WrrOuZiyaaZPWiEt4G3+IffISVC9HYlWueJEBWED4ZH4aIAC2PnkdnuRrR94M+w6yGWn4AglWtJtBI8YqvgoA==", + "dev": true, + "license": "MIT", + "dependencies": { + "load-tsconfig": "^0.2.3" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "peerDependencies": { + "esbuild": ">=0.18" + } + }, + "node_modules/busboy": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", + "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", + "dependencies": { + "streamsearch": "^1.1.0" + }, + "engines": { + "node": ">=10.16.0" + } + }, + "node_modules/cac": { + "version": "6.7.14", + "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", + "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "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==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001718", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001718.tgz", + "integrity": "sha512-AflseV1ahcSunK53NfEs9gFWgOEmzr0f+kaMFA4xiLZlr9Hzt7HxcSpIFcnNCUkz6R6dWKa54rUz3HUmI3nVcw==", + "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" + } + ], + "license": "CC-BY-4.0" + }, + "node_modules/chalk": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.4.1.tgz", + "integrity": "sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==", + "license": "MIT", + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chokidar": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", + "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", + "license": "MIT", + "dependencies": { + "readdirp": "^4.0.1" + }, + "engines": { + "node": ">= 14.16.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/chrome-trace-event": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", + "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0" + } + }, + "node_modules/cli-cursor": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-5.0.0.tgz", + "integrity": "sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==", + "license": "MIT", + "dependencies": { + "restore-cursor": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-spinners": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz", + "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==", + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/client-only": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz", + "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==", + "license": "MIT" + }, + "node_modules/clsx": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/color": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz", + "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1", + "color-string": "^1.9.0" + }, + "engines": { + "node": ">=12.5.0" + } + }, + "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==", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "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==", + "license": "MIT" + }, + "node_modules/color-string": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", + "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, + "node_modules/commander": { + "version": "13.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-13.1.0.tgz", + "integrity": "sha512-/rFeCpNJQbhSZjGVwO9RFV3xPqbnERS8MmIQzCtD/zl6gpJuV/bMLuN92oG3F7d8oDEHHRrujSXNUr8fpjntKw==", + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/consola": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/consola/-/consola-3.4.2.tgz", + "integrity": "sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^14.18.0 || >=16.10.0" + } + }, + "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, + "license": "MIT" + }, + "node_modules/cookie": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", + "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "license": "MIT", + "dependencies": { + "object-assign": "^4", + "vary": "^1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/css-select": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", + "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "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==", + "dev": true, + "license": "MIT", + "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==", + "dev": true, + "license": "MIT" + }, + "node_modules/debounce": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/debounce/-/debounce-2.2.0.tgz", + "integrity": "sha512-Xks6RUDLZFdz8LIdR6q0MTH44k7FikOmnh5xkSjMig6ch45afc8sjTjRQf3P6ax8dMgcQrYO/AR2RGWURrruqw==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/debug": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", + "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/detect-libc": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.4.tgz", + "integrity": "sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==", + "devOptional": true, + "license": "Apache-2.0", + "engines": { + "node": ">=8" + } + }, + "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==", + "dev": true, + "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==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", + "dev": true, + "license": "MIT" + }, + "node_modules/dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "dev": true, + "license": "MIT", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "BSD-2-Clause" + }, + "node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz", + "integrity": "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "license": "MIT" + }, + "node_modules/electron-to-chromium": { + "version": "1.5.155", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.155.tgz", + "integrity": "sha512-ps5KcGGmwL8VaeJlvlDlu4fORQpv3+GIcF5I3f9tUKUlJ/wsysh6HU8P5L1XWRYeXfA0oJd4PyM8ds8zTFf6Ng==", + "dev": true, + "license": "ISC" + }, + "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==", + "license": "MIT" + }, + "node_modules/engine.io": { + "version": "6.6.4", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.6.4.tgz", + "integrity": "sha512-ZCkIjSYNDyGn0R6ewHDtXgns/Zre/NT6Agvq1/WobF7JXgFff4SeDroKiCO3fNJreU9YG429Sc81o4w5ok/W5g==", + "license": "MIT", + "dependencies": { + "@types/cors": "^2.8.12", + "@types/node": ">=10.0.0", + "accepts": "~1.3.4", + "base64id": "2.0.0", + "cookie": "~0.7.2", + "cors": "~2.8.5", + "debug": "~4.3.1", + "engine.io-parser": "~5.2.1", + "ws": "~8.17.1" + }, + "engines": { + "node": ">=10.2.0" + } + }, + "node_modules/engine.io-client": { + "version": "6.6.3", + "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.6.3.tgz", + "integrity": "sha512-T0iLjnyNWahNyv/lcjS2y4oE358tVS/SYQNxYXGAJ9/GLgH4VCvOQ/mhTjqU88mLZCQgiG8RIegFHYCdVC+j5w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@socket.io/component-emitter": "~3.1.0", + "debug": "~4.3.1", + "engine.io-parser": "~5.2.1", + "ws": "~8.17.1", + "xmlhttprequest-ssl": "~2.1.1" + } + }, + "node_modules/engine.io-client/node_modules/debug": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/engine.io-parser": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.2.3.tgz", + "integrity": "sha512-HqD3yTBfnBxIrbnM1DoD6Pcq8NECnh8d4As1Qgh0z5Gg3jRRIqijury0CL3ghu/edArpUYiYqQiDUQBIs4np3Q==", + "license": "MIT", + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/engine.io/node_modules/debug": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/enhanced-resolve": { + "version": "5.18.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.1.tgz", + "integrity": "sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/es-module-lexer": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.7.0.tgz", + "integrity": "sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==", + "dev": true, + "license": "MIT" + }, + "node_modules/esbuild": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.4.tgz", + "integrity": "sha512-8pgjLUcUjcgDg+2Q4NYXnPbo/vncAY4UmyaCm0jZevERqCHZIaWwdJHkf8XQtu4AxSKCdvrUbT0XUr1IdZzI8Q==", + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.25.4", + "@esbuild/android-arm": "0.25.4", + "@esbuild/android-arm64": "0.25.4", + "@esbuild/android-x64": "0.25.4", + "@esbuild/darwin-arm64": "0.25.4", + "@esbuild/darwin-x64": "0.25.4", + "@esbuild/freebsd-arm64": "0.25.4", + "@esbuild/freebsd-x64": "0.25.4", + "@esbuild/linux-arm": "0.25.4", + "@esbuild/linux-arm64": "0.25.4", + "@esbuild/linux-ia32": "0.25.4", + "@esbuild/linux-loong64": "0.25.4", + "@esbuild/linux-mips64el": "0.25.4", + "@esbuild/linux-ppc64": "0.25.4", + "@esbuild/linux-riscv64": "0.25.4", + "@esbuild/linux-s390x": "0.25.4", + "@esbuild/linux-x64": "0.25.4", + "@esbuild/netbsd-arm64": "0.25.4", + "@esbuild/netbsd-x64": "0.25.4", + "@esbuild/openbsd-arm64": "0.25.4", + "@esbuild/openbsd-x64": "0.25.4", + "@esbuild/sunos-x64": "0.25.4", + "@esbuild/win32-arm64": "0.25.4", + "@esbuild/win32-ia32": "0.25.4", + "@esbuild/win32-x64": "0.25.4" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "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, + "license": "BSD-2-Clause", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse/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, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.x" + } + }, + "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, + "license": "MIT" + }, + "node_modules/fast-glob": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", + "dev": true, + "license": "MIT", + "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.8" + }, + "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==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-uri": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.6.tgz", + "integrity": "sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/fastq": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz", + "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "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==", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/foreground-child": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz", + "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==", + "license": "ISC", + "dependencies": { + "cross-spawn": "^7.0.6", + "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, + "license": "MIT", + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://github.com/sponsors/rawify" + } + }, + "node_modules/framer-motion": { + "version": "12.7.5", + "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-12.7.5.tgz", + "integrity": "sha512-iD+vBOLn8E8bwBAFUQ1DYXjivm+cGGPgQUQ4Doleq7YP/zHdozUVwAMBJwOOfCTbtM8uOooMi77noD261Kxiyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "motion-dom": "^12.7.5", + "motion-utils": "^12.7.5", + "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/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "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==", + "dev": true, + "license": "MIT", + "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, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-east-asian-width": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.3.0.tgz", + "integrity": "sha512-vpeMIQKxczTD/0s2CdEWHcb0eeJe6TFjxb+J5xgX7hScxqrGuyjmv4c1D4A/gelKfyox0gJJwIHF+fLjeaM8kQ==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/get-tsconfig": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.10.0.tgz", + "integrity": "sha512-kGzZ3LWWQcGIAmg6iWvXn0ei6WDtV26wzHRMwDSzmAbcXrTEXxHy6IehI6/4eT6VRKyMP1eF1VqwrVUmE/LR7A==", + "dev": true, + "license": "MIT", + "dependencies": { + "resolve-pkg-maps": "^1.0.0" + }, + "funding": { + "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" + } + }, + "node_modules/glob": { + "version": "11.0.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-11.0.2.tgz", + "integrity": "sha512-YT7U7Vye+t5fZ/QMkBFrTJ7ZQxInIUjwyAjVj84CYXqgBdv30MFUPGnBR6sQaVq6Is15wYJUsnzTuWaGRBhBAQ==", + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^4.0.1", + "minimatch": "^10.0.0", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^2.0.0" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": "20 || >=22" + }, + "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==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "dev": true, + "license": "BSD-2-Clause" + }, + "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==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true, + "license": "ISC" + }, + "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, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true, + "license": "MIT", + "bin": { + "he": "bin/he" + } + }, + "node_modules/is-arrayish": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", + "devOptional": true, + "license": "MIT" + }, + "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==", + "dev": true, + "license": "MIT", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-core-module": { + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "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==", + "dev": true, + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-interactive": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-2.0.0.tgz", + "integrity": "sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-unicode-supported": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-2.1.0.tgz", + "integrity": "sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "license": "ISC" + }, + "node_modules/jackspeak": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-4.1.0.tgz", + "integrity": "sha512-9DDdhb5j6cpeitCbvLO7n7J4IxnbM6hoF6O1g4HQ5TfhvvKN8ywDM7668ZhMHRqVmxqhps/F6syWK2KcPxYlkw==", + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/jiti": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.4.2.tgz", + "integrity": "sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==", + "dev": true, + "license": "MIT", + "bin": { + "jiti": "lib/jiti-cli.mjs" + } + }, + "node_modules/joycon": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/joycon/-/joycon-3.1.1.tgz", + "integrity": "sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "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==", + "license": "MIT" + }, + "node_modules/jsesc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true, + "license": "MIT" + }, + "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, + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/lilconfig": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", + "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", + "dev": true, + "license": "MIT", + "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==", + "dev": true, + "license": "MIT" + }, + "node_modules/load-tsconfig": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/load-tsconfig/-/load-tsconfig-0.2.5.tgz", + "integrity": "sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/loader-runner": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.11.5" + } + }, + "node_modules/lodash.sortby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", + "integrity": "sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==", + "dev": true, + "license": "MIT" + }, + "node_modules/log-symbols": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-7.0.0.tgz", + "integrity": "sha512-zrc91EDk2M+2AXo/9BTvK91pqb7qrPg2nX/Hy+u8a5qQlbaOflCKO+6SqgZ+M+xUFxGdKTgwnGiL96b1W3ikRA==", + "license": "MIT", + "dependencies": { + "is-unicode-supported": "^2.0.0", + "yoctocolors": "^2.1.1" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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, + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true, + "license": "MIT" + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dev": true, + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime-db": { + "version": "1.54.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", + "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.1.tgz", + "integrity": "sha512-xRc4oEhT6eaBpU1XF7AjpOFD+xQmXNB5OVKwp4tqCuBpHLS/ZbBDrc07mYTDqVMg6PfxUjjNp85O6Cd2Z/5HWA==", + "license": "MIT", + "dependencies": { + "mime-db": "^1.54.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-function": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/mimic-function/-/mimic-function-5.0.1.tgz", + "integrity": "sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/minimatch": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.0.1.tgz", + "integrity": "sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": "20 || >=22" + }, + "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==", + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/module-punycode": { + "name": "punycode", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/motion-dom": { + "version": "12.11.4", + "resolved": "https://registry.npmjs.org/motion-dom/-/motion-dom-12.11.4.tgz", + "integrity": "sha512-1z/qYsrDjSx5QjOH8GfJ2RfFBvEzI2gdAEt2zNW+f7QkLlqjM3sQieESJr5+QtVmvD81qPANM7t97ROixKIt9Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "motion-utils": "^12.9.4" + } + }, + "node_modules/motion-utils": { + "version": "12.9.4", + "resolved": "https://registry.npmjs.org/motion-utils/-/motion-utils-12.9.4.tgz", + "integrity": "sha512-BW3I65zeM76CMsfh3kHid9ansEJk9Qvl+K5cu4DVHKGsI52n76OJ4z2CUJUV+Mn3uEP9k1JJA3tClG0ggSrRcg==", + "dev": true, + "license": "MIT" + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "node_modules/nanoid": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true, + "license": "MIT" + }, + "node_modules/next": { + "version": "15.3.2", + "resolved": "https://registry.npmjs.org/next/-/next-15.3.2.tgz", + "integrity": "sha512-CA3BatMyHkxZ48sgOCLdVHjFU36N7TF1HhqAHLFOkV6buwZnvMI84Cug8xD56B9mCuKrqXnLn94417GrZ/jjCQ==", + "license": "MIT", + "dependencies": { + "@next/env": "15.3.2", + "@swc/counter": "0.1.3", + "@swc/helpers": "0.5.15", + "busboy": "1.6.0", + "caniuse-lite": "^1.0.30001579", + "postcss": "8.4.31", + "styled-jsx": "5.1.6" + }, + "bin": { + "next": "dist/bin/next" + }, + "engines": { + "node": "^18.18.0 || ^19.8.0 || >= 20.0.0" + }, + "optionalDependencies": { + "@next/swc-darwin-arm64": "15.3.2", + "@next/swc-darwin-x64": "15.3.2", + "@next/swc-linux-arm64-gnu": "15.3.2", + "@next/swc-linux-arm64-musl": "15.3.2", + "@next/swc-linux-x64-gnu": "15.3.2", + "@next/swc-linux-x64-musl": "15.3.2", + "@next/swc-win32-arm64-msvc": "15.3.2", + "@next/swc-win32-x64-msvc": "15.3.2", + "sharp": "^0.34.1" + }, + "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 + } + } + }, + "node_modules/next/node_modules/postcss": { + "version": "8.4.31", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", + "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", + "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" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.6", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/node-html-parser": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/node-html-parser/-/node-html-parser-7.0.1.tgz", + "integrity": "sha512-KGtmPY2kS0thCWGK0VuPyOS+pBKhhe8gXztzA2ilAOhbUbxa9homF1bOyKvhGzMLXUoRds9IOmr/v5lr/lqNmA==", + "dev": true, + "license": "MIT", + "dependencies": { + "css-select": "^5.1.0", + "he": "1.2.0" + } + }, + "node_modules/node-releases": { + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", + "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", + "dev": true, + "license": "MIT" + }, + "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==", + "license": "MIT", + "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, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "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==", + "license": "MIT", + "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==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/onetime": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-7.0.0.tgz", + "integrity": "sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==", + "license": "MIT", + "dependencies": { + "mimic-function": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ora": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/ora/-/ora-8.2.0.tgz", + "integrity": "sha512-weP+BZ8MVNnlCm8c0Qdc1WSWq4Qn7I+9CJGm7Qali6g44e/PUzbjNqJX5NJ9ljlNMosfJvg1fKEGILklK9cwnw==", + "license": "MIT", + "dependencies": { + "chalk": "^5.3.0", + "cli-cursor": "^5.0.0", + "cli-spinners": "^2.9.2", + "is-interactive": "^2.0.0", + "is-unicode-supported": "^2.0.0", + "log-symbols": "^6.0.0", + "stdin-discarder": "^0.2.2", + "string-width": "^7.2.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ora/node_modules/emoji-regex": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.4.0.tgz", + "integrity": "sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==", + "license": "MIT" + }, + "node_modules/ora/node_modules/log-symbols": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-6.0.0.tgz", + "integrity": "sha512-i24m8rpwhmPIS4zscNzK6MSEhk0DUWa/8iYQWxhffV8jkI4Phvs3F+quL5xvS0gdQR0FyTCMMH33Y78dDTzzIw==", + "license": "MIT", + "dependencies": { + "chalk": "^5.3.0", + "is-unicode-supported": "^1.3.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ora/node_modules/log-symbols/node_modules/is-unicode-supported": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz", + "integrity": "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ora/node_modules/string-width": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", + "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^10.3.0", + "get-east-asian-width": "^1.0.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/package-json-from-dist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", + "license": "BlueOak-1.0.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==", + "license": "MIT", + "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==", + "dev": true, + "license": "MIT" + }, + "node_modules/path-scurry": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.0.tgz", + "integrity": "sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==", + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^11.0.0", + "minipass": "^7.1.2" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.1.0.tgz", + "integrity": "sha512-QIXZUBJUx+2zHUdQujWejBkcD9+cs94tLn0+YL8UrCh+D5sCXZ4c7LaEH48pNwRY3MLDgqUFyhlCyjJPf1WP0A==", + "license": "ISC", + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "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==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pirates": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.7.tgz", + "integrity": "sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/postcss": { + "version": "8.5.3", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.3.tgz", + "integrity": "sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==", + "dev": true, + "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" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.8", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "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==", + "dev": true, + "license": "MIT", + "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==", + "dev": true, + "license": "MIT", + "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==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "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.3", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz", + "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" + } + }, + "node_modules/postcss-nested": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.2.0.tgz", + "integrity": "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^6.1.1" + }, + "engines": { + "node": ">=12.0" + }, + "peerDependencies": { + "postcss": "^8.2.14" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", + "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", + "dev": true, + "license": "MIT", + "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==", + "dev": true, + "license": "MIT" + }, + "node_modules/pretty-bytes": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-6.1.1.tgz", + "integrity": "sha512-mQUvGU6aUFQ+rNvTIAcZuWGRT9a6f6Yrg9bHs4ImKF+HZCEK+plBvnAZYSIQztknZF2qnzNtr6F8s0+IuptdlQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/prism-react-renderer": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/prism-react-renderer/-/prism-react-renderer-2.4.1.tgz", + "integrity": "sha512-ey8Ls/+Di31eqzUxC46h8MksNuGx/n0AAC8uKpwFau4RPDYLuE3EXTp8N8G2vX2N7UC/+IXeNUnlWBGGcAG+Ig==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/prismjs": "^1.26.0", + "clsx": "^2.0.0" + }, + "peerDependencies": { + "react": ">=16.0.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, + "license": "MIT", + "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==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/react": { + "version": "19.0.0", + "resolved": "https://registry.npmjs.org/react/-/react-19.0.0.tgz", + "integrity": "sha512-V8AVnmPIICiWpGfm6GLzCR/W5FXLchHop40W4nXBmdlEceh16rCN8O8LNWm5bh5XUX91fh7KpA+W0TgMKmgTpQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "19.0.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.0.0.tgz", + "integrity": "sha512-4GV5sHFG0e/0AD4X+ySy6UJd3jVl1iNsNHdpad0qhABJ11twS3TTBnseqsKurKcsNqCEFeGL3uLpVChpIO3QfQ==", + "license": "MIT", + "dependencies": { + "scheduler": "^0.25.0" + }, + "peerDependencies": { + "react": "^19.0.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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "license": "MIT", + "dependencies": { + "pify": "^2.3.0" + } + }, + "node_modules/readdirp": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", + "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==", + "license": "MIT", + "engines": { + "node": ">= 14.18.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve": { + "version": "1.22.10", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", + "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-core-module": "^2.16.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-pkg-maps": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", + "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" + } + }, + "node_modules/restore-cursor": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-5.1.0.tgz", + "integrity": "sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==", + "license": "MIT", + "dependencies": { + "onetime": "^7.0.0", + "signal-exit": "^4.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/reusify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", + "dev": true, + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rollup": { + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.40.2.tgz", + "integrity": "sha512-tfUOg6DTP4rhQ3VjOO6B4wyrJnGOX85requAXvqYTHsOgb2TFJdZ3aWpT8W2kPoypSGP7dZUyzxJ9ee4buM5Fg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.7" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.40.2", + "@rollup/rollup-android-arm64": "4.40.2", + "@rollup/rollup-darwin-arm64": "4.40.2", + "@rollup/rollup-darwin-x64": "4.40.2", + "@rollup/rollup-freebsd-arm64": "4.40.2", + "@rollup/rollup-freebsd-x64": "4.40.2", + "@rollup/rollup-linux-arm-gnueabihf": "4.40.2", + "@rollup/rollup-linux-arm-musleabihf": "4.40.2", + "@rollup/rollup-linux-arm64-gnu": "4.40.2", + "@rollup/rollup-linux-arm64-musl": "4.40.2", + "@rollup/rollup-linux-loongarch64-gnu": "4.40.2", + "@rollup/rollup-linux-powerpc64le-gnu": "4.40.2", + "@rollup/rollup-linux-riscv64-gnu": "4.40.2", + "@rollup/rollup-linux-riscv64-musl": "4.40.2", + "@rollup/rollup-linux-s390x-gnu": "4.40.2", + "@rollup/rollup-linux-x64-gnu": "4.40.2", + "@rollup/rollup-linux-x64-musl": "4.40.2", + "@rollup/rollup-win32-arm64-msvc": "4.40.2", + "@rollup/rollup-win32-ia32-msvc": "4.40.2", + "@rollup/rollup-win32-x64-msvc": "4.40.2", + "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==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/scheduler": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.25.0.tgz", + "integrity": "sha512-xFVuu11jh+xcO7JOAGJNOXld8/TcEHK/4CituBUeUb5hqxJLj9YuemAEuvm9gQ/+pgXYfbQuqAkiYu+u7YEsNA==", + "license": "MIT" + }, + "node_modules/schema-utils": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.2.tgz", + "integrity": "sha512-Gn/JaSk/Mt9gYubxTtSn/QCV4em9mpAPiR1rqy/Ocu19u/G9J5WWdNoUT4SiV6mFC3y6cxyFcFwdzPM3FgxGAQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "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, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/serialize-javascript": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", + "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/sharp": { + "version": "0.34.1", + "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.34.1.tgz", + "integrity": "sha512-1j0w61+eVxu7DawFJtnfYcvSv6qPFvfTaqzTQ2BLknVhHTwGS8sc63ZBF4rzkWMBVKybo4S5OBtDdZahh2A1xg==", + "devOptional": true, + "hasInstallScript": true, + "license": "Apache-2.0", + "dependencies": { + "color": "^4.2.3", + "detect-libc": "^2.0.3", + "semver": "^7.7.1" + }, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-darwin-arm64": "0.34.1", + "@img/sharp-darwin-x64": "0.34.1", + "@img/sharp-libvips-darwin-arm64": "1.1.0", + "@img/sharp-libvips-darwin-x64": "1.1.0", + "@img/sharp-libvips-linux-arm": "1.1.0", + "@img/sharp-libvips-linux-arm64": "1.1.0", + "@img/sharp-libvips-linux-ppc64": "1.1.0", + "@img/sharp-libvips-linux-s390x": "1.1.0", + "@img/sharp-libvips-linux-x64": "1.1.0", + "@img/sharp-libvips-linuxmusl-arm64": "1.1.0", + "@img/sharp-libvips-linuxmusl-x64": "1.1.0", + "@img/sharp-linux-arm": "0.34.1", + "@img/sharp-linux-arm64": "0.34.1", + "@img/sharp-linux-s390x": "0.34.1", + "@img/sharp-linux-x64": "0.34.1", + "@img/sharp-linuxmusl-arm64": "0.34.1", + "@img/sharp-linuxmusl-x64": "0.34.1", + "@img/sharp-wasm32": "0.34.1", + "@img/sharp-win32-ia32": "0.34.1", + "@img/sharp-win32-x64": "0.34.1" + } + }, + "node_modules/sharp/node_modules/semver": { + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", + "devOptional": true, + "license": "ISC", + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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==", + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/simple-swizzle": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", + "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.3.1" + } + }, + "node_modules/socket.io": { + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.8.1.tgz", + "integrity": "sha512-oZ7iUCxph8WYRHHcjBEc9unw3adt5CmSNlppj/5Q4k2RIrhl8Z5yY2Xr4j9zj0+wzVZ0bxmYoGSzKJnRl6A4yg==", + "license": "MIT", + "dependencies": { + "accepts": "~1.3.4", + "base64id": "~2.0.0", + "cors": "~2.8.5", + "debug": "~4.3.2", + "engine.io": "~6.6.0", + "socket.io-adapter": "~2.5.2", + "socket.io-parser": "~4.2.4" + }, + "engines": { + "node": ">=10.2.0" + } + }, + "node_modules/socket.io-adapter": { + "version": "2.5.5", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.5.5.tgz", + "integrity": "sha512-eLDQas5dzPgOWCk9GuuJC2lBqItuhKI4uxGgo9aIV7MYbk2h9Q6uULEh8WBzThoI7l+qU9Ast9fVUmkqPP9wYg==", + "license": "MIT", + "dependencies": { + "debug": "~4.3.4", + "ws": "~8.17.1" + } + }, + "node_modules/socket.io-adapter/node_modules/debug": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/socket.io-client": { + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.8.1.tgz", + "integrity": "sha512-hJVXfu3E28NmzGk8o1sHhN3om52tRvwYeidbj7xKy2eIIse5IoKX3USlS6Tqt3BHAtflLIkCQBkzVrEEfWUyYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@socket.io/component-emitter": "~3.1.0", + "debug": "~4.3.2", + "engine.io-client": "~6.6.1", + "socket.io-parser": "~4.2.4" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/socket.io-client/node_modules/debug": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/socket.io-parser": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.4.tgz", + "integrity": "sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==", + "license": "MIT", + "dependencies": { + "@socket.io/component-emitter": "~3.1.0", + "debug": "~4.3.1" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/socket.io-parser/node_modules/debug": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/socket.io/node_modules/debug": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/sonner": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/sonner/-/sonner-2.0.3.tgz", + "integrity": "sha512-njQ4Hht92m0sMqqHVDL32V2Oun9W1+PHO9NDv9FHfJjT3JT22IG4Jpo3FPQy+mouRKCXFWO+r67v6MrHX2zeIA==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "react": "^18.0.0 || ^19.0.0 || ^19.0.0-rc", + "react-dom": "^18.0.0 || ^19.0.0 || ^19.0.0-rc" + } + }, + "node_modules/source-map": { + "version": "0.8.0-beta.0", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.8.0-beta.0.tgz", + "integrity": "sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "whatwg-url": "^7.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/source-map-support/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/spamc": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/spamc/-/spamc-0.0.5.tgz", + "integrity": "sha512-jYXItuZuiWZyG9fIdvgTUbp2MNRuyhuSwvvhhpPJd4JK/9oSZxkD7zAj53GJtowSlXwCJzLg6sCKAoE9wXsKgg==", + "dev": true + }, + "node_modules/stacktrace-parser": { + "version": "0.1.11", + "resolved": "https://registry.npmjs.org/stacktrace-parser/-/stacktrace-parser-0.1.11.tgz", + "integrity": "sha512-WjlahMgHmCJpqzU8bIBy4qtsZdU9lRlcZE3Lvyej6t4tuOuv1vk57OW3MBrj6hXBFx/nNoC9MPMTcr5YA7NQbg==", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^0.7.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/stdin-discarder": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/stdin-discarder/-/stdin-discarder-0.2.2.tgz", + "integrity": "sha512-UhDfHmA92YAlNnCfhmq0VeNL5bDbiZGg7sZ2IvPsXubGkiNa9EC+tUTsjBRsYUAz87btI6/1wf4XoVvQ3uRnmQ==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/streamsearch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", + "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", + "engines": { + "node": ">=10.0.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==", + "license": "MIT", + "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==", + "license": "MIT", + "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/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", + "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==", + "license": "MIT" + }, + "node_modules/string-width-cjs/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==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "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==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "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==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs/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==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/styled-jsx": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.6.tgz", + "integrity": "sha512-qSVyDTeMotdvQYoHWLNGwRFJHC+i+ZvdBRYosOFgC+Wg1vx4frN2/RG/NA7SYqqvKNLf39P2LSRA2pu6n0XYZA==", + "license": "MIT", + "dependencies": { + "client-only": "0.0.1" + }, + "engines": { + "node": ">= 12.0.0" + }, + "peerDependencies": { + "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 + } + } + }, + "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==", + "dev": true, + "license": "MIT", + "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/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/sucrase/node_modules/glob": { + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", + "dev": true, + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/sucrase/node_modules/jackspeak": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/sucrase/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/sucrase/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/sucrase/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==", + "dev": true, + "license": "BlueOak-1.0.0", + "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/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "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==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/tailwind-merge": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-3.2.0.tgz", + "integrity": "sha512-FQT/OVqCD+7edmmJpsgCsY820RTD5AkBryuG5IUqR5YQZSdj5xlH5nLgH7YPths7WsLPSpSBNneJdM8aS8aeFA==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/dcastil" + } + }, + "node_modules/tailwindcss": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.0.tgz", + "integrity": "sha512-VigzymniH77knD1dryXbyxR+ePHihHociZbXnLZHUyzf2MMs2ZVqlUrZ3FvpXP8pno9JzmILt1sZPD19M3IxtA==", + "dev": true, + "license": "MIT", + "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.19.1", + "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/node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dev": true, + "license": "MIT", + "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/tailwindcss/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==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/tailwindcss/node_modules/jiti": { + "version": "1.21.7", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.7.tgz", + "integrity": "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==", + "dev": true, + "license": "MIT", + "bin": { + "jiti": "bin/jiti.js" + } + }, + "node_modules/tailwindcss/node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/terser": { + "version": "5.39.2", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.39.2.tgz", + "integrity": "sha512-yEPUmWve+VA78bI71BW70Dh0TuV4HHd+I5SHOAfS1+QBOmvmCiiffgjR8ryyEd3KIfvPGFqoADt8LdQ6XpXIvg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.14.0", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser-webpack-plugin": { + "version": "5.3.14", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.14.tgz", + "integrity": "sha512-vkZjpUjb6OMS7dhV+tILUW6BhpDR7P2L/aQSAv+Uwk+m8KATX9EccViHTJR2qDtACKPIYndLGCyl3FMo+r2LMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.25", + "jest-worker": "^27.4.5", + "schema-utils": "^4.3.0", + "serialize-javascript": "^6.0.2", + "terser": "^5.31.1" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "uglify-js": { + "optional": true + } + } + }, + "node_modules/terser/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "dev": true, + "license": "MIT", + "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==", + "dev": true, + "license": "MIT", + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/tinyexec": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.2.tgz", + "integrity": "sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==", + "dev": true, + "license": "MIT" + }, + "node_modules/tinyglobby": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.13.tgz", + "integrity": "sha512-mEwzpUgrLySlveBwEVDMKk5B57bhLPYovRfPAXD5gA/98Opn0rCDj3GtLwFvCvH5RK9uPCExUROW5NjDwvqkxw==", + "dev": true, + "license": "MIT", + "dependencies": { + "fdir": "^6.4.4", + "picomatch": "^4.0.2" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/tinyglobby/node_modules/fdir": { + "version": "6.4.4", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.4.tgz", + "integrity": "sha512-1NZP+GK4GfuAv3PqKvxQRDMjdSRZjnkq7KfhlNrCNNlZ0ygQFpebfrnfnq/W7fpUnAv9aGWmY1zKx7FYL3gwhg==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/tinyglobby/node_modules/picomatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "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==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/tr46": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", + "integrity": "sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==", + "dev": true, + "license": "MIT", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/tree-kill": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", + "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", + "dev": true, + "license": "MIT", + "bin": { + "tree-kill": "cli.js" + } + }, + "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==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" + }, + "node_modules/tsup": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/tsup/-/tsup-8.4.0.tgz", + "integrity": "sha512-b+eZbPCjz10fRryaAA7C8xlIHnf8VnsaRqydheLIqwG/Mcpfk8Z5zp3HayX7GaTygkigHl5cBUs+IhcySiIexQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "bundle-require": "^5.1.0", + "cac": "^6.7.14", + "chokidar": "^4.0.3", + "consola": "^3.4.0", + "debug": "^4.4.0", + "esbuild": "^0.25.0", + "joycon": "^3.1.1", + "picocolors": "^1.1.1", + "postcss-load-config": "^6.0.1", + "resolve-from": "^5.0.0", + "rollup": "^4.34.8", + "source-map": "0.8.0-beta.0", + "sucrase": "^3.35.0", + "tinyexec": "^0.3.2", + "tinyglobby": "^0.2.11", + "tree-kill": "^1.2.2" + }, + "bin": { + "tsup": "dist/cli-default.js", + "tsup-node": "dist/cli-node.js" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@microsoft/api-extractor": "^7.36.0", + "@swc/core": "^1", + "postcss": "^8.4.12", + "typescript": ">=4.5.0" + }, + "peerDependenciesMeta": { + "@microsoft/api-extractor": { + "optional": true + }, + "@swc/core": { + "optional": true + }, + "postcss": { + "optional": true + }, + "typescript": { + "optional": true + } + } + }, + "node_modules/tsup/node_modules/lilconfig": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz", + "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" + } + }, + "node_modules/tsup/node_modules/postcss-load-config": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-6.0.1.tgz", + "integrity": "sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "lilconfig": "^3.1.1" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "jiti": ">=1.21.0", + "postcss": ">=8.0.9", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + }, + "postcss": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "node_modules/tsx": { + "version": "4.19.3", + "resolved": "https://registry.npmjs.org/tsx/-/tsx-4.19.3.tgz", + "integrity": "sha512-4H8vUNGNjQ4V2EOoGw005+c+dGuPSnhpPBPHBtsZdGZBk/iJb4kguGlPWaZTZ3q5nMtFOEsY0nRDlh9PJyd6SQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "~0.25.0", + "get-tsconfig": "^4.7.5" + }, + "bin": { + "tsx": "dist/cli.mjs" + }, + "engines": { + "node": ">=18.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + } + }, + "node_modules/type-fest": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.7.1.tgz", + "integrity": "sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=8" + } + }, + "node_modules/typescript": { + "version": "5.8.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz", + "integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/undici-types": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", + "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", + "license": "MIT" + }, + "node_modules/update-browserslist-db": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz", + "integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==", + "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" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.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==", + "dev": true, + "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-debounce": { + "version": "10.0.4", + "resolved": "https://registry.npmjs.org/use-debounce/-/use-debounce-10.0.4.tgz", + "integrity": "sha512-6Cf7Yr7Wk7Kdv77nnJMf6de4HuDE4dTxKij+RqE9rufDsI6zsbjyAxcH5y2ueJCQAnfgKbzXbZHYlkFwmBlWkw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 16.0.0" + }, + "peerDependencies": { + "react": "*" + } + }, + "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==", + "dev": true, + "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==", + "dev": true, + "license": "MIT" + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/watchpack": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.2.tgz", + "integrity": "sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==", + "dev": true, + "license": "MIT", + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webidl-conversions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", + "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/webpack": { + "version": "5.99.8", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.99.8.tgz", + "integrity": "sha512-lQ3CPiSTpfOnrEGeXDwoq5hIGzSjmwD72GdfVzF7CQAI7t47rJG9eDWvcEkEn3CUQymAElVvDg3YNTlCYj+qUQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/eslint-scope": "^3.7.7", + "@types/estree": "^1.0.6", + "@types/json-schema": "^7.0.15", + "@webassemblyjs/ast": "^1.14.1", + "@webassemblyjs/wasm-edit": "^1.14.1", + "@webassemblyjs/wasm-parser": "^1.14.1", + "acorn": "^8.14.0", + "browserslist": "^4.24.0", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.17.1", + "es-module-lexer": "^1.2.1", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.11", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^4.3.2", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.3.11", + "watchpack": "^2.4.1", + "webpack-sources": "^3.2.3" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-sources": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack/node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/webpack/node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/whatwg-url": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", + "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", + "dev": true, + "license": "MIT", + "dependencies": { + "lodash.sortby": "^4.7.0", + "tr46": "^1.0.1", + "webidl-conversions": "^4.0.2" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "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==", + "license": "MIT", + "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==", + "license": "MIT", + "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-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "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==", + "license": "MIT", + "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/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==", + "license": "MIT" + }, + "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==", + "license": "MIT", + "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-cjs/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==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ws": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz", + "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==", + "license": "MIT", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/xmlhttprequest-ssl": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.1.2.tgz", + "integrity": "sha512-TEU+nJVUUnA4CYJFLvK5X9AOeH4KvDvhIfm0vV1GaQRtchnG0hgK5p8hw/xjv8cunWYCsiPCSDzObPyhEwq3KQ==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true, + "license": "ISC" + }, + "node_modules/yaml": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.0.tgz", + "integrity": "sha512-4lLa/EcQCB0cJkyts+FpIRx5G/llPxfP6VQU5KByHEhLxY3IJCH0f0Hy1MHI8sClTvsIb8qwRJ6R/ZdlDJ/leQ==", + "dev": true, + "license": "ISC", + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14.6" + } + }, + "node_modules/yoctocolors": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/yoctocolors/-/yoctocolors-2.1.1.tgz", + "integrity": "sha512-GQHQqAopRhwU8Kt1DDM8NjibDXHC8eoh1erhGAJPEyveY9qqVeXvVikNKrDz69sHowPMorbPUrH/mx8c50eiBQ==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/zod": { + "version": "3.24.3", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.24.3.tgz", + "integrity": "sha512-HhY1oqzWCQWuUqvBFnsyrtZRhyPeR7SUGv+C4+MsisMuVfSPx8HpwWqH8tRahSlt6M3PiFAcoeFhZAqIXTxoSg==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } + } + } +} diff --git a/apps/email-templates/.react-email/package.json b/apps/email-templates/.react-email/package.json new file mode 100644 index 000000000..710172ebd --- /dev/null +++ b/apps/email-templates/.react-email/package.json @@ -0,0 +1 @@ +{"name":"preview-server","version":"4.0.11","description":"A live preview of your emails right in your browser.","bin":{"email":"./dist/cli/index.mjs"},"license":"MIT","repository":{"type":"git","url":"https://github.com/resend/react-email.git","directory":"packages/react-email"},"keywords":["react","email"],"engines":{"node":">=18.0.0"},"dependencies":{"@babel/parser":"^7.27.0","@babel/traverse":"^7.27.0","chalk":"^5.0.0","chokidar":"^4.0.3","commander":"^13.0.0","debounce":"^2.0.0","esbuild":"^0.25.0","glob":"^11.0.0","log-symbols":"^7.0.0","mime-types":"^3.0.0","next":"^15.3.1","normalize-path":"^3.0.0","ora":"^8.0.0","socket.io":"^4.8.1"},"devDependencies":{"@babel/core":"7.26.10","@lottiefiles/dotlottie-react":"0.13.3","@radix-ui/colors":"3.0.0","@radix-ui/react-collapsible":"1.1.7","@radix-ui/react-dropdown-menu":"2.1.10","@radix-ui/react-popover":"1.1.10","@radix-ui/react-slot":"1.2.0","@radix-ui/react-tabs":"1.1.7","@radix-ui/react-toggle-group":"1.1.6","@radix-ui/react-tooltip":"1.2.3","@swc/core":"1.11.21","@types/babel__core":"7.20.5","@types/babel__traverse":"7.20.7","@types/fs-extra":"11.0.1","@types/mime-types":"2.1.4","@types/node":"22.14.1","@types/normalize-path":"3.0.2","@types/react":"19.0.10","@types/react-dom":"19.0.4","@types/webpack":"5.28.5","autoprefixer":"10.4.21","clsx":"2.1.1","framer-motion":"12.7.5","jiti":"2.4.2","json5":"2.2.3","module-punycode":"npm:punycode@2.3.1","node-html-parser":"7.0.1","postcss":"8.5.3","pretty-bytes":"6.1.1","prism-react-renderer":"2.4.1","react":"19.0.0","react-dom":"19.0.0","sharp":"0.34.1","socket.io-client":"4.8.1","sonner":"2.0.3","source-map-js":"1.2.1","spamc":"0.0.5","stacktrace-parser":"0.1.11","tailwind-merge":"3.2.0","tailwindcss":"3.4.0","tsup":"8.4.0","tsx":"4.19.3","typescript":"5.8.3","use-debounce":"10.0.4","zod":"3.24.3"},"scripts":{"build":"next build","caniemail:fetch":"node ./scripts/fill-caniemail-data.mjs","clean":"rm -rf dist","dev":"tsup-node --watch","dev:preview":"cd ../../apps/demo && tsx ../../packages/react-email/src/cli/index.ts dev","test":"vitest run","test:watch":"vitest","start":"next start"}} \ No newline at end of file diff --git a/apps/email-templates/.react-email/postcss.config.js b/apps/email-templates/.react-email/postcss.config.js new file mode 100644 index 000000000..b2d8946b3 --- /dev/null +++ b/apps/email-templates/.react-email/postcss.config.js @@ -0,0 +1,8 @@ +const path = require('node:path'); + +module.exports = { + plugins: { + tailwindcss: { config: path.resolve(__dirname, 'tailwind.config.ts') }, + autoprefixer: {}, + }, +}; diff --git a/apps/email-templates/.react-email/readme.md b/apps/email-templates/.react-email/readme.md new file mode 100644 index 000000000..dba783716 --- /dev/null +++ b/apps/email-templates/.react-email/readme.md @@ -0,0 +1,44 @@ +![React email cover](https://react.email/static/covers/react-email.png) + +
React Email
+
The next generation of writing emails.
High-quality, unstyled components for creating emails.
+
+
+Website + · +GitHub + · +Discord +
+ +## Getting started + +To get started, open a new shell and run: + +```sh +npx create-email +``` + +This will create a new folder called `emails` with a few email templates. + +## Commands + +### `email dev` + +Starts a local development server that will watch your files and automatically rebuild your email when you make changes. + +```sh +npx react-email dev +``` + +### `email export` + +Generates the plain HTML files of your emails into a `out` directory. + +```sh +npx react-email export +``` + +## License + +MIT License diff --git a/apps/email-templates/.react-email/scripts/build-preview-server.mjs b/apps/email-templates/.react-email/scripts/build-preview-server.mjs new file mode 100644 index 000000000..8c54a6608 --- /dev/null +++ b/apps/email-templates/.react-email/scripts/build-preview-server.mjs @@ -0,0 +1,33 @@ +import { spawn } from 'node:child_process'; +import fs from 'node:fs'; +import path from 'node:path'; +import { fileURLToPath } from 'node:url'; + +const __dirname = path.dirname(fileURLToPath(import.meta.url)); + +const nextBuildProcess = spawn('pnpm', ['next', 'build'], { + detached: true, + shell: true, + stdio: 'inherit', + cwd: path.resolve(__dirname, '../'), +}); + +process.on('SIGINT', () => { + nextBuildProcess.kill('SIGINT'); +}); + +nextBuildProcess.on('exit', (code) => { + if (code !== 0) { + console.error(`next build failed with exit code ${code}`); + process.exit(code); + } + + const builtPreviewPath = path.resolve(__dirname, '../dist/preview'); + + if (fs.existsSync(builtPreviewPath)) { + fs.rmSync(builtPreviewPath, { recursive: true }); + } + fs.mkdirSync(builtPreviewPath, { recursive: true }); + fs.rmSync('.next/cache', { recursive: true }); + fs.renameSync('.next', path.join(builtPreviewPath, '/.next')); +}); diff --git a/apps/email-templates/.react-email/scripts/fill-caniemail-data.mjs b/apps/email-templates/.react-email/scripts/fill-caniemail-data.mjs new file mode 100644 index 000000000..a5330775f --- /dev/null +++ b/apps/email-templates/.react-email/scripts/fill-caniemail-data.mjs @@ -0,0 +1,36 @@ +import { promises as fs } from 'node:fs'; +import path from 'node:path'; +import { fileURLToPath } from 'node:url'; + +export const caniemailDataURL = + 'https://www.caniemail.com/api/data-ordered.json'; + +const responseFromCaniemail = await fetch(caniemailDataURL); +if (!responseFromCaniemail.ok) { + throw new Error( + `Could not get the data from Caniemail and there is no cached data under your temporary folder to fallback for. + +This could be happneing for the following reasons: +- You don't have internet connectivity +- Caniemail is down +- Caniemail changed from where to fetch their data from, which means we need to fix this. If this is the case, please open up an issue.`, + { + cause: { + responseFromCaniemail, + }, + }, + ); +} + +const response = await responseFromCaniemail.json(); + +const __dirname = path.dirname(fileURLToPath(import.meta.url)); + +await fs.writeFile( + path.resolve(__dirname, '../src/actions/email-validation/caniemail-data.ts'), + `import type { SupportEntry } from "./check-compatibility"; + +export const nicenames = ${JSON.stringify(response.nicenames, null, 2)}; + +export const supportEntries: SupportEntry[] = ${JSON.stringify(response.data, null, 2)}`, +); diff --git a/apps/email-templates/.react-email/src/actions/email-validation/caniemail-data.ts b/apps/email-templates/.react-email/src/actions/email-validation/caniemail-data.ts new file mode 100644 index 000000000..1e5934f2a --- /dev/null +++ b/apps/email-templates/.react-email/src/actions/email-validation/caniemail-data.ts @@ -0,0 +1,85993 @@ +import type { SupportEntry } from "./check-compatibility"; + +export const nicenames = { + "family": { + "gmail": "Gmail", + "outlook": "Outlook", + "yahoo": "Yahoo! Mail", + "apple-mail": "Apple Mail", + "aol": "AOL", + "thunderbird": "Mozilla Thunderbird", + "microsoft": "Microsoft", + "samsung-email": "Samsung Email", + "sfr": "SFR", + "orange": "Orange", + "protonmail": "ProtonMail", + "hey": "HEY", + "mail-ru": "Mail.ru", + "fastmail": "Fastmail", + "laposte": "LaPoste.net", + "t-online-de": "T-online.de", + "free-fr": "Free.fr", + "gmx": "GMX", + "web-de": "WEB.DE", + "ionos-1and1": "1&1", + "rainloop": "RainLoop", + "wp-pl": "WP.pl" + }, + "platform": { + "desktop-app": "Desktop", + "desktop-webmail": "Desktop Webmail", + "mobile-webmail": "Mobile Webmail", + "webmail": "Webmail", + "ios": "iOS", + "android": "Android", + "windows": "Windows", + "macos": "macOS", + "windows-mail": "Windows Mail", + "outlook-com": "Outlook.com" + }, + "support": { + "supported": "Supported", + "mitigated": "Partially supported", + "unsupported": "Not supported", + "unknown": "Support unknown", + "mixed": "Mixed support" + }, + "category": { + "html": "HTML", + "css": "CSS", + "image": "Image formats", + "others": "Others" + } +}; + +export const supportEntries: SupportEntry[] = [ + { + "slug": "amp", + "title": "AMP for Email", + "description": "Support for rendering emails in the AMP format.", + "url": "https://www.caniemail.com/features/amp/", + "category": "others", + "tags": [], + "keywords": "amp4email", + "last_test_date": "2020-03-31", + "test_url": "https://www.caniemail.com/tests/amp.html", + "test_results_url": null, + "stats": { + "apple-mail": { + "macos": [ + { + "12.4": "n" + } + ], + "ios": [ + { + "13.1": "n" + } + ] + }, + "gmail": { + "desktop-webmail": [ + { + "2020-04": "y" + }, + { + "2022-02": "y #1" + } + ], + "ios": [ + { + "2020-04": "y" + } + ], + "android": [ + { + "2020-04": "y" + } + ], + "mobile-webmail": [ + { + "2020-04": "n" + } + ] + }, + "orange": { + "desktop-webmail": [ + { + "2020-01": "n" + }, + { + "2021-03": "n" + } + ], + "ios": [ + { + "2020-01": "n" + } + ], + "android": [ + { + "2020-01": "n" + } + ] + }, + "outlook": { + "windows": [ + { + "2007": "n" + }, + { + "2010": "n" + }, + { + "2013": "n" + }, + { + "2016": "n" + }, + { + "2019": "n" + } + ], + "windows-mail": [ + { + "2019-10": "n" + } + ], + "macos": [ + { + "2019-10": "n" + }, + { + "16.80": "n" + } + ], + "outlook-com": [ + { + "2020-01": "n" + } + ], + "ios": [ + { + "2019-10": "n" + } + ], + "android": [ + { + "2019-10": "n" + } + ] + }, + "yahoo": { + "desktop-webmail": [ + { + "2019-10": "y" + }, + { + "2021-01": "y" + }, + { + "2022-02": "y #1" + } + ], + "ios": [ + { + "2019-10": "n" + }, + { + "2022-12": "y" + } + ], + "android": [ + { + "2019-10": "n" + }, + { + "2022-12": "y" + } + ] + }, + "aol": { + "desktop-webmail": [ + { + "2019-10": "n" + } + ], + "ios": [ + { + "2019-10": "n" + } + ], + "android": [ + { + "2019-10": "n" + } + ] + }, + "samsung-email": { + "android": [ + { + "5.0.10.2": "n" + } + ] + }, + "sfr": { + "desktop-webmail": [ + { + "2020-01": "n" + } + ], + "ios": [ + { + "2020-01": "n" + } + ], + "android": [ + { + "2020-01": "n" + } + ] + }, + "thunderbird": { + "macos": [ + { + "68.4": "n" + } + ] + }, + "protonmail": { + "desktop-webmail": [ + { + "2020-03": "n" + } + ], + "ios": [ + { + "2020-03": "n" + } + ], + "android": [ + { + "2020-03": "n" + } + ] + }, + "hey": { + "desktop-webmail": [ + { + "2020-06": "n" + } + ] + }, + "mail-ru": { + "desktop-webmail": [ + { + "2020-10": "y" + } + ] + }, + "fastmail": { + "desktop-webmail": [ + { + "2021-07": "n" + } + ] + }, + "laposte": { + "desktop-webmail": [ + { + "2021-08": "n" + } + ] + }, + "free-fr": { + "desktop-webmail": [ + { + "2022-12": "n" + } + ] + }, + "t-online-de": { + "desktop-webmail": [ + { + "2022-12": "n" + } + ] + }, + "gmx": { + "desktop-webmail": [ + { + "2022-06": "n" + } + ], + "ios": [ + { + "2022-06": "n" + } + ], + "android": [ + { + "2022-06": "n" + } + ] + }, + "web-de": { + "desktop-webmail": [ + { + "2022-06": "n" + } + ], + "ios": [ + { + "2022-06": "n" + } + ], + "android": [ + { + "2022-06": "n" + } + ] + }, + "ionos-1and1": { + "desktop-webmail": [ + { + "2022-06": "n" + } + ], + "android": [ + { + "2022-06": "n" + } + ] + } + }, + "notes": null, + "notes_by_num": { + "1": "Supported on compatible browsers. Refer to ‘supported platforms’ links listed below under resources." + } + }, + { + "slug": "bimi", + "title": "BIMI", + "description": "BIMI (Brand Indicators for Message Identification) is a specification allowing for the display of brand logos next to authenticated e-mails.", + "url": "https://www.caniemail.com/features/bimi/", + "category": "others", + "tags": [], + "keywords": "bimi, logo, brand", + "last_test_date": "2022-12-29", + "test_url": "https://www.caniemail.com", + "test_results_url": null, + "stats": { + "apple-mail": { + "macos": [ + { + "15": "n" + }, + { + "16": "y" + } + ], + "ios": [ + { + "15": "n" + }, + { + "16": "y" + } + ] + }, + "gmail": { + "desktop-webmail": [ + { + "2023-01": "y" + } + ], + "ios": [ + { + "2023-01": "y" + } + ], + "android": [ + { + "2023-01": "y" + } + ], + "mobile-webmail": [ + { + "2023-01": "n" + } + ] + }, + "orange": { + "desktop-webmail": [ + { + "2023-01": "n" + } + ], + "ios": [ + { + "2023-01": "n" + } + ], + "android": [ + { + "2023-01": "n" + } + ] + }, + "outlook": { + "windows": [ + { + "2007": "n" + }, + { + "2010": "n" + }, + { + "2013": "n" + }, + { + "2016": "n" + }, + { + "2019": "n" + } + ], + "windows-mail": [ + { + "2023-01": "n" + } + ], + "macos": [ + { + "16.56": "n" + } + ], + "outlook-com": [ + { + "2023-01": "n" + } + ], + "ios": [ + { + "2023-01": "n" + } + ], + "android": [ + { + "2023-01": "n" + } + ] + }, + "samsung-email": { + "android": [ + { + "6.0": "n" + } + ] + }, + "sfr": { + "desktop-webmail": [ + { + "2023-01": "n" + } + ], + "ios": [ + { + "2023-01": "n" + } + ], + "android": [ + { + "2023-01": "n" + } + ] + }, + "thunderbird": { + "macos": [ + { + "78.14": "n" + } + ] + }, + "aol": { + "desktop-webmail": [ + { + "2023-01": "n" + } + ], + "ios": [ + { + "2023-01": "n" + } + ], + "android": [ + { + "2023-01": "n" + } + ] + }, + "yahoo": { + "desktop-webmail": [ + { + "2023-01": "y" + } + ], + "ios": [ + { + "2023-01": "y" + } + ], + "android": [ + { + "2023-01": "y" + } + ] + }, + "protonmail": { + "desktop-webmail": [ + { + "2023-01": "n" + } + ], + "ios": [ + { + "2023-01": "n" + } + ], + "android": [ + { + "2023-01": "n" + } + ] + }, + "hey": { + "desktop-webmail": [ + { + "2023-01": "n" + } + ] + }, + "mail-ru": { + "desktop-webmail": [ + { + "2023-01": "n" + } + ] + }, + "fastmail": { + "desktop-webmail": [ + { + "2023-01": "y" + } + ] + }, + "laposte": { + "desktop-webmail": [ + { + "2022-08": "y" + } + ] + }, + "free-fr": { + "desktop-webmail": [ + { + "2023-01": "n" + } + ] + }, + "gmx": { + "desktop-webmail": [ + { + "2023-01": "n" + } + ] + }, + "t-online-de": { + "desktop-webmail": [ + { + "2023-01": "n" + } + ] + } + }, + "notes": "Data based on email clients providers own declarations.", + "notes_by_num": null + }, + { + "slug": "css-accent-color", + "title": "accent-color", + "description": "", + "url": "https://www.caniemail.com/features/css-accent-color/", + "category": "css", + "tags": [], + "keywords": "accent,color", + "last_test_date": "2023-12-19", + "test_url": "https://www.caniemail.com/tests/css-accent-color.html", + "test_results_url": "https://testi.at/proj/LAzSmlkimAnFmnrtPjPuPjpT1rO", + "stats": { + "apple-mail": { + "macos": [ + { + "16": "n" + }, + { + "17": "n" + }, + { + "18": "n" + }, + { + "19": "n" + }, + { + "20": "n" + }, + { + "21": "y" + } + ], + "ios": [ + { + "11": "n" + }, + { + "12": "n" + }, + { + "13": "n" + }, + { + "14": "y #1" + }, + { + "15": "y #1" + } + ] + }, + "gmail": { + "desktop-webmail": [ + { + "2022-07": "n" + } + ], + "ios": [ + { + "2022-07": "n" + } + ], + "android": [ + { + "2022-07": "n" + } + ], + "mobile-webmail": [ + { + "2022-07": "n" + } + ] + }, + "orange": { + "desktop-webmail": [ + { + "2022-07": "n" + } + ], + "ios": [ + { + "2022-07": "n" + } + ], + "android": [ + { + "2022-07": "n" + } + ] + }, + "outlook": { + "windows": [ + { + "2007": "n" + }, + { + "2010": "n" + }, + { + "2013": "n" + }, + { + "2016": "n" + }, + { + "2019": "n" + }, + { + "2021": "n" + } + ], + "windows-mail": [ + { + "2022-07": "n" + } + ], + "macos": [ + { + "2022-07": "n" + }, + { + "16.80": "n" + } + ], + "outlook-com": [ + { + "2022-07": "n" + } + ], + "ios": [ + { + "2022-07": "n" + } + ], + "android": [ + { + "2022-07": "n" + } + ] + }, + "yahoo": { + "desktop-webmail": [ + { + "2022-07": "n" + } + ], + "ios": [ + { + "2022-07": "n" + } + ], + "android": [ + { + "2022-07": "n" + } + ] + }, + "aol": { + "desktop-webmail": [ + { + "2022-07": "n" + } + ], + "ios": [ + { + "2022-07": "n" + } + ], + "android": [ + { + "2022-07": "n" + } + ] + }, + "samsung-email": { + "android": [ + { + "2022-07": "y #1" + } + ] + }, + "sfr": { + "desktop-webmail": [ + { + "2022-07": "y" + } + ], + "ios": [ + { + "2022-07": "n" + } + ], + "android": [ + { + "2022-07": "n" + } + ] + }, + "protonmail": { + "desktop-webmail": [ + { + "2022-07": "n" + } + ], + "ios": [ + { + "2022-07": "n" + } + ], + "android": [ + { + "2022-07": "n" + } + ] + }, + "hey": { + "desktop-webmail": [ + { + "2022-07": "y" + } + ] + }, + "mail-ru": { + "desktop-webmail": [ + { + "2022-07": "y #1" + } + ] + }, + "fastmail": { + "desktop-webmail": [ + { + "2022-07": "n" + } + ] + } + }, + "notes": null, + "notes_by_num": { + "1": "Supports `accent-color` but rendering depends on browser support." + } + }, + { + "slug": "css-align-items", + "title": "align-items", + "description": "", + "url": "https://www.caniemail.com/features/css-align-items/", + "category": "css", + "tags": [], + "keywords": "align,items,flexbox,grid", + "last_test_date": "2023-12-19", + "test_url": "https://www.caniemail.com/tests/css-align-items.html", + "test_results_url": "https://app.emailonacid.com/app/acidtest/FvYneb1dhiR4we6rAOf4AC02oFa6ksA0sTWxbEjgmt6Mg/list", + "stats": { + "apple-mail": { + "macos": [ + { + "11": "y" + }, + { + "12": "y" + }, + { + "13": "y" + } + ], + "ios": [ + { + "11": "y" + }, + { + "12": "y" + }, + { + "13": "y" + }, + { + "14": "y" + } + ] + }, + "gmail": { + "desktop-webmail": [ + { + "2020-12": "n" + } + ], + "ios": [ + { + "2020-12": "n" + } + ], + "android": [ + { + "2020-12": "n" + } + ], + "mobile-webmail": [ + { + "2020-12": "n" + } + ] + }, + "orange": { + "desktop-webmail": [ + { + "2021-02": "y" + }, + { + "2021-03": "n" + } + ], + "ios": [ + { + "2021-03": "y" + }, + { + "2024-04": "n" + } + ], + "android": [ + { + "2021-03": "y" + }, + { + "2024-04": "n" + } + ] + }, + "outlook": { + "windows": [ + { + "2007": "n" + }, + { + "2010": "n" + }, + { + "2013": "n" + }, + { + "2016": "n" + }, + { + "2019": "n" + } + ], + "windows-mail": [ + { + "2020-12": "n" + } + ], + "macos": [ + { + "2020-12": "y" + }, + { + "16.80": "y" + } + ], + "outlook-com": [ + { + "2020-12": "y" + } + ], + "ios": [ + { + "2020-12": "y" + } + ], + "android": [ + { + "4.2048.4": "y" + } + ] + }, + "yahoo": { + "desktop-webmail": [ + { + "2020-12": "n" + } + ], + "ios": [ + { + "2021-03": "n" + } + ], + "android": [ + { + "6.16.2.1519779": "n" + } + ] + }, + "aol": { + "desktop-webmail": [ + { + "2020-12": "n" + } + ], + "ios": [ + { + "2021-03": "n" + } + ], + "android": [ + { + "2021-03": "n" + } + ] + }, + "samsung-email": { + "android": [ + { + "6.1.31.2": "y" + } + ] + }, + "sfr": { + "desktop-webmail": [ + { + "2021-03": "y" + } + ], + "ios": [ + { + "2021-03": "y" + } + ], + "android": [ + { + "2021-03": "y" + } + ] + }, + "thunderbird": { + "macos": [ + { + "2020-12": "y" + } + ] + }, + "protonmail": { + "desktop-webmail": [ + { + "2021-03": "y" + } + ], + "ios": [ + { + "2021-03": "y" + } + ], + "android": [ + { + "2021-03": "y" + } + ] + }, + "hey": { + "desktop-webmail": [ + { + "2021-03": "y" + } + ] + }, + "mail-ru": { + "desktop-webmail": [ + { + "2020-12": "y" + } + ] + }, + "fastmail": { + "desktop-webmail": [ + { + "2021-07": "y" + } + ] + }, + "laposte": { + "desktop-webmail": [ + { + "2021-08": "y #1" + } + ] + }, + "gmx": { + "desktop-webmail": [ + { + "2022-06": "n" + } + ], + "ios": [ + { + "2022-06": "y" + } + ], + "android": [ + { + "2022-06": "y" + } + ] + }, + "web-de": { + "desktop-webmail": [ + { + "2022-06": "n" + } + ], + "ios": [ + { + "2022-06": "y" + } + ], + "android": [ + { + "2022-06": "y" + } + ] + }, + "ionos-1and1": { + "desktop-webmail": [ + { + "2022-06": "y" + } + ], + "android": [ + { + "2022-06": "y" + } + ] + } + }, + "notes": null, + "notes_by_num": { + "1": "Supported. But a default style of `margin:auto` is applied on every element and can prevent the expected result." + } + }, + { + "slug": "css-animation", + "title": "animation", + "description": "Tests for the shorthand `animation` property and its longhand equivalents.", + "url": "https://www.caniemail.com/features/css-animation/", + "category": "css", + "tags": [], + "keywords": "keyframes", + "last_test_date": "2023-12-19", + "test_url": "https://www.caniemail.com/tests/css-animation.html", + "test_results_url": "https://app.emailonacid.com/app/acidtest/u4oWccYOFNNyTagHs2NSUZqJYQ3MssrqDMocBnRa35hf7/list", + "stats": { + "apple-mail": { + "macos": [ + { + "13": "y" + } + ], + "ios": [ + { + "13": "y" + } + ] + }, + "gmail": { + "desktop-webmail": [ + { + "2021-05": "n" + } + ], + "ios": [ + { + "2021-05": "n" + } + ], + "android": [ + { + "2021-05": "n" + } + ], + "mobile-webmail": [ + { + "2021-05": "n" + } + ] + }, + "orange": { + "desktop-webmail": [ + { + "2021-05": "n" + } + ], + "ios": [ + { + "2021-05": "n" + } + ], + "android": [ + { + "2021-05": "n" + } + ] + }, + "outlook": { + "windows": [ + { + "2003": "n" + }, + { + "2007": "n" + }, + { + "2010": "n" + }, + { + "2013": "n" + }, + { + "2016": "n" + }, + { + "2019": "n" + } + ], + "windows-mail": [ + { + "2021-05": "n" + } + ], + "macos": [ + { + "2011": "y" + }, + { + "2016": "y" + }, + { + "16.80": "n" + } + ], + "outlook-com": [ + { + "2021-05": "n" + } + ], + "ios": [ + { + "2021-05": "n" + } + ], + "android": [ + { + "2021-05": "n" + } + ] + }, + "samsung-email": { + "android": [ + { + "6.1": "y" + } + ] + }, + "sfr": { + "desktop-webmail": [ + { + "2021-05": "a #1" + } + ], + "ios": [ + { + "2021-05": "n" + } + ], + "android": [ + { + "2021-05": "n" + } + ] + }, + "thunderbird": { + "macos": [ + { + "78.10": "y" + } + ] + }, + "aol": { + "desktop-webmail": [ + { + "2021-05": "n" + } + ], + "ios": [ + { + "2021-05": "n" + } + ], + "android": [ + { + "2021-05": "n" + } + ] + }, + "yahoo": { + "desktop-webmail": [ + { + "2021-05": "n" + } + ], + "ios": [ + { + "2021-05": "n" + } + ], + "android": [ + { + "2021-05": "n" + } + ] + }, + "protonmail": { + "desktop-webmail": [ + { + "2021-05": "n" + } + ], + "ios": [ + { + "2021-05": "n" + } + ], + "android": [ + { + "2021-05": "n" + } + ] + }, + "hey": { + "desktop-webmail": [ + { + "2021-05": "y" + } + ] + }, + "mail-ru": { + "desktop-webmail": [ + { + "2021-05": "n" + } + ] + }, + "fastmail": { + "desktop-webmail": [ + { + "2021-07": "y" + } + ] + }, + "laposte": { + "desktop-webmail": [ + { + "2021-08": "a #1" + } + ] + }, + "gmx": { + "desktop-webmail": [ + { + "2022-06": "n" + } + ], + "ios": [ + { + "2022-06": "y" + } + ], + "android": [ + { + "2022-06": "y" + } + ] + }, + "web-de": { + "desktop-webmail": [ + { + "2022-06": "n" + } + ], + "ios": [ + { + "2022-06": "y" + } + ], + "android": [ + { + "2022-06": "y" + } + ] + }, + "ionos-1and1": { + "desktop-webmail": [ + { + "2022-06": "a #2" + } + ], + "android": [ + { + "2022-06": "y" + } + ] + } + }, + "notes": null, + "notes_by_num": { + "1": "Buggy. Animation properties are supported but `@keyframes` are incorrectly prefixed.", + "2": "Partial. Only supports from and to keyframes. Does not support % keyframes" + } + }, + { + "slug": "css-aspect-ratio", + "title": "aspect-ratio", + "description": "Sets a preferred aspect ratio for the element", + "url": "https://www.caniemail.com/features/css-aspect-ratio/", + "category": "css", + "tags": [], + "keywords": "ratio", + "last_test_date": "2023-12-19", + "test_url": "https://www.caniemail.com/tests/css-aspect-ratio.html", + "test_results_url": "https://testi.at/proj/Mv0IO0vs3vTgRQuJ8IzyBfD6", + "stats": { + "apple-mail": { + "macos": [ + { + "14": "n" + }, + { + "15.0": "y" + } + ], + "ios": [ + { + "11": "n" + }, + { + "12": "n" + }, + { + "13": "n" + }, + { + "14": "n" + }, + { + "15": "y" + } + ] + }, + "gmail": { + "desktop-webmail": [ + { + "2021-10": "n" + } + ], + "ios": [ + { + "2021-10": "n" + } + ], + "android": [ + { + "2021-10": "n" + } + ], + "mobile-webmail": [ + { + "2021-10": "n" + } + ] + }, + "orange": { + "desktop-webmail": [ + { + "2021-10": "n" + } + ], + "ios": [ + { + "2021-10": "n" + } + ], + "android": [ + { + "2021-10": "n" + } + ] + }, + "outlook": { + "windows": [ + { + "2007": "n" + }, + { + "2010": "n" + }, + { + "2013": "n" + }, + { + "2016": "n" + }, + { + "2019": "n" + } + ], + "windows-mail": [ + { + "2021-10": "n" + } + ], + "macos": [ + { + "2021-10": "n" + }, + { + "16.80": "n" + } + ], + "outlook-com": [ + { + "2021-10": "n" + }, + { + "2023-12": "n" + } + ], + "ios": [ + { + "2021-10": "n" + } + ], + "android": [ + { + "2021-10": "n" + } + ] + }, + "yahoo": { + "desktop-webmail": [ + { + "2021-10": "n" + } + ], + "ios": [ + { + "2021-10": "n" + } + ], + "android": [ + { + "6.37": "n" + } + ] + }, + "aol": { + "desktop-webmail": [ + { + "2021-10": "n" + } + ], + "ios": [ + { + "2021-10": "n" + } + ], + "android": [ + { + "2021-10": "n" + } + ] + }, + "samsung-email": { + "android": [ + { + "2021-10": "n" + } + ] + }, + "sfr": { + "desktop-webmail": [ + { + "2021-11": "y" + } + ], + "ios": [ + { + "2021-11": "y #1" + } + ], + "android": [ + { + "2021-11": "y" + } + ] + }, + "thunderbird": { + "macos": [ + { + "78.10.2": "n" + } + ] + }, + "protonmail": { + "desktop-webmail": [ + { + "2021-11": "y" + } + ], + "ios": [ + { + "2021-11": "y #1" + } + ], + "android": [ + { + "2021-11": "y" + } + ] + }, + "hey": { + "desktop-webmail": [ + { + "2021-11": "y" + } + ] + }, + "mail-ru": { + "desktop-webmail": [ + { + "2021-10": "y" + } + ] + }, + "fastmail": { + "desktop-webmail": [ + { + "2021-11": "n" + } + ] + }, + "laposte": { + "desktop-webmail": [ + { + "2021-10": "y" + } + ] + }, + "gmx": { + "desktop-webmail": [ + { + "2022-06": "n" + } + ], + "ios": [ + { + "2022-06": "y" + } + ], + "android": [ + { + "2022-06": "y" + } + ] + }, + "web-de": { + "desktop-webmail": [ + { + "2022-06": "n" + } + ], + "ios": [ + { + "2022-06": "y" + } + ], + "android": [ + { + "2022-06": "y" + } + ] + }, + "ionos-1and1": { + "desktop-webmail": [ + { + "2022-06": "y" + } + ], + "android": [ + { + "2022-06": "y" + } + ] + } + }, + "notes": null, + "notes_by_num": { + "1": "Requires iOS 15." + } + }, + { + "slug": "css-at-font-face", + "title": "@font-face", + "description": "`@font-face` in CSS allows to include your own fonts inside an email.", + "url": "https://www.caniemail.com/features/css-at-font-face/", + "category": "css", + "tags": [], + "keywords": "font face, web fonts, google fonts", + "last_test_date": "2023-12-19", + "test_url": "https://www.caniemail.com/tests/css-font-face.html", + "test_results_url": "https://app.emailonacid.com/app/acidtest/veY9MhuhgFeF1ly5crrhTXawfLJSwxgpYi27OElI7iSoc/list", + "stats": { + "apple-mail": { + "macos": [ + { + "12.2": "y" + } + ], + "ios": [ + { + "10.3": "y" + }, + { + "12.3.1": "y" + } + ] + }, + "gmail": { + "desktop-webmail": [ + { + "2019-07": "n #6" + } + ], + "ios": [ + { + "2019-07": "n" + } + ], + "android": [ + { + "2019-07": "n" + } + ], + "mobile-webmail": [ + { + "2020-02": "n" + } + ] + }, + "orange": { + "desktop-webmail": [ + { + "2019-05": "a #2" + }, + { + "2021-03": "n #7" + }, + { + "2024-03": "n" + } + ], + "ios": [ + { + "2019-07": "y" + }, + { + "2024-03": "n" + } + ], + "android": [ + { + "2019-07": "a #1" + }, + { + "2024-04": "n" + } + ] + }, + "outlook": { + "windows": [ + { + "2003": "a #3" + }, + { + "2007": "a #4 #5" + }, + { + "2010": "a #4 #5" + }, + { + "2013": "a #4 #5" + }, + { + "2016": "a #4 #5" + }, + { + "2019": "a #4" + } + ], + "windows-mail": [ + { + "2020-01": "n" + } + ], + "macos": [ + { + "2011": "y" + }, + { + "2016": "y" + }, + { + "16.80": "n" + } + ], + "outlook-com": [ + { + "2019-07": "n" + }, + { + "2023-12": "n" + } + ], + "ios": [ + { + "2.51.1": "y" + }, + { + "3.29.0": "n" + } + ], + "android": [ + { + "2019-07": "n" + } + ] + }, + "samsung-email": { + "android": [ + { + "6.0": "y #8" + }, + { + "2021-11": "y #8" + } + ] + }, + "sfr": { + "desktop-webmail": [ + { + "2019-07": "a #2" + } + ], + "ios": [ + { + "2019-07": "n" + } + ], + "android": [ + { + "2019-07": "n" + } + ] + }, + "thunderbird": { + "macos": [ + { + "60.7": "y" + }, + { + "78.5": "y" + } + ] + }, + "aol": { + "desktop-webmail": [ + { + "2020-01": "n" + } + ], + "ios": [ + { + "2020-01": "n" + } + ], + "android": [ + { + "2020-01": "n" + } + ] + }, + "yahoo": { + "desktop-webmail": [ + { + "2019-07": "n" + } + ], + "ios": [ + { + "2019-07": "n" + } + ], + "android": [ + { + "2019-07": "n" + } + ] + }, + "protonmail": { + "desktop-webmail": [ + { + "2020-03": "n" + } + ], + "ios": [ + { + "2020-03": "n" + } + ], + "android": [ + { + "2020-03": "y" + } + ] + }, + "hey": { + "desktop-webmail": [ + { + "2020-06": "y" + } + ] + }, + "mail-ru": { + "desktop-webmail": [ + { + "2020-10": "n" + } + ] + }, + "fastmail": { + "desktop-webmail": [ + { + "2021-07": "n" + } + ] + }, + "laposte": { + "desktop-webmail": [ + { + "2021-08": "a #2" + } + ] + }, + "gmx": { + "desktop-webmail": [ + { + "2022-06": "n" + } + ], + "ios": [ + { + "2022-06": "y" + } + ], + "android": [ + { + "2022-06": "n" + } + ] + }, + "web-de": { + "desktop-webmail": [ + { + "2022-06": "n" + } + ], + "ios": [ + { + "2022-06": "y" + } + ], + "android": [ + { + "2022-06": "n" + } + ] + }, + "ionos-1and1": { + "desktop-webmail": [ + { + "2022-06": "y" + } + ], + "android": [ + { + "2022-06": "n" + } + ] + } + }, + "notes": null, + "notes_by_num": { + "1": "Partial. Only supported through a `` tag.", + "2": "Partial. Only supported directly through a `