From 53b1ad3a310b4dd706a300a5e47407425fba211f Mon Sep 17 00:00:00 2001 From: bagas Date: Thu, 24 Jul 2025 13:42:05 +0700 Subject: [PATCH] first commit --- .dockerignore | 7 + .gitignore | 41 ++ Dockerfile | 40 ++ README.md | 36 + app/card.tsx | 64 ++ app/favicon.ico | Bin 0 -> 76888 bytes app/globals.css | 26 + app/layout.tsx | 34 + app/page.tsx | 634 ++++++++++++++++++ next.config.ts | 7 + package-lock.json | 1567 ++++++++++++++++++++++++++++++++++++++++++++ package.json | 25 + postcss.config.mjs | 58 ++ tsconfig.json | 27 + 14 files changed, 2566 insertions(+) create mode 100644 .dockerignore create mode 100644 .gitignore create mode 100644 Dockerfile create mode 100644 README.md create mode 100644 app/card.tsx create mode 100644 app/favicon.ico create mode 100644 app/globals.css create mode 100644 app/layout.tsx create mode 100644 app/page.tsx create mode 100644 next.config.ts create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 postcss.config.mjs create mode 100644 tsconfig.json diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..72e9aa4 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,7 @@ +Dockerfile +.dockerignore +node_modules +npm-debug.log +README.md +.next +.git \ No newline at end of file diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..5ef6a52 --- /dev/null +++ b/.gitignore @@ -0,0 +1,41 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +/node_modules +/.pnp +.pnp.* +.yarn/* +!.yarn/patches +!.yarn/plugins +!.yarn/releases +!.yarn/versions + +# testing +/coverage + +# next.js +/.next/ +/out/ + +# production +/build + +# misc +.DS_Store +*.pem + +# debug +npm-debug.log* +yarn-debug.log* +yarn-error.log* +.pnpm-debug.log* + +# env files (can opt-in for committing if needed) +.env* + +# vercel +.vercel + +# typescript +*.tsbuildinfo +next-env.d.ts diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..67c6437 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,40 @@ +# Step 1: Build the application +FROM node:22-alpine AS builder + +# Set working directory +WORKDIR /app + +# Install dependencies +COPY package.json package-lock.json* ./ +RUN npm ci + +# Copy application source +COPY . . + +# Build the application +RUN npm run build + +# Step 2: Run the application using a minimal image +FROM node:22-alpine AS runner + +# Set working directory +WORKDIR /app + +# Install only production dependencies +COPY package.json package-lock.json ./ +RUN npm ci --omit=dev + +# Copy built assets from builder +COPY --from=builder --chown=nextjs:nodejs /app/.next ./.next +COPY --from=builder --chown=nextjs:nodejs /app/public ./public +COPY --from=builder --chown=nextjs:nodejs /app/node_modules ./node_modules +COPY --from=builder --chown=nextjs:nodejs /app/package.json ./package.json +COPY --from=builder --chown=nextjs:nodejs /app/.next/static ./.next/static +# Set environment variable for production +ENV NODE_ENV=production + +# Expose port (default for Next.js) +EXPOSE 3000 + +# Start the Next.js app +CMD ["npm", "start"] diff --git a/README.md b/README.md new file mode 100644 index 0000000..e215bc4 --- /dev/null +++ b/README.md @@ -0,0 +1,36 @@ +This is a [Next.js](https://nextjs.org) project bootstrapped with [`create-next-app`](https://nextjs.org/docs/app/api-reference/cli/create-next-app). + +## Getting Started + +First, run the development server: + +```bash +npm run dev +# or +yarn dev +# or +pnpm dev +# or +bun dev +``` + +Open [http://localhost:3000](http://localhost:3000) with your browser to see the result. + +You can start editing the page by modifying `app/page.tsx`. The page auto-updates as you edit the file. + +This project uses [`next/font`](https://nextjs.org/docs/app/building-your-application/optimizing/fonts) to automatically optimize and load [Geist](https://vercel.com/font), a new font family for Vercel. + +## Learn More + +To learn more about Next.js, take a look at the following resources: + +- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API. +- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial. + +You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js) - your feedback and contributions are welcome! + +## Deploy on Vercel + +The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js. + +Check out our [Next.js deployment documentation](https://nextjs.org/docs/app/building-your-application/deploying) for more details. diff --git a/app/card.tsx b/app/card.tsx new file mode 100644 index 0000000..0957eae --- /dev/null +++ b/app/card.tsx @@ -0,0 +1,64 @@ +"use client" + +import { useState } from "react" + +export default function Card() { + const [copied, setCopied] = useState(false) + const command = "ssh tunnl.live -p 2200 -R 443:localhost:8000" + + const copyToClipboard = () => { + navigator.clipboard.writeText(command) + setCopied(true) + setTimeout(() => setCopied(false), 2000) + } + return ( +
+

Connect with a single command

+
+
+
{command}
+
+ +
+

+ This command creates a secure tunnel from our server to your localhost:8000 +

+
+ ) +} \ No newline at end of file diff --git a/app/favicon.ico b/app/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..8396530dfd677bc31b47f123c16f7b25e89b133d GIT binary patch literal 76888 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%0Ab%IXT3_ZyH4j+E}!1v6+Nb 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 literal 0 HcmV?d00001 diff --git a/app/globals.css b/app/globals.css new file mode 100644 index 0000000..a2dc41e --- /dev/null +++ b/app/globals.css @@ -0,0 +1,26 @@ +@import "tailwindcss"; + +:root { + --background: #ffffff; + --foreground: #171717; +} + +@theme inline { + --color-background: var(--background); + --color-foreground: var(--foreground); + --font-sans: var(--font-geist-sans); + --font-mono: var(--font-geist-mono); +} + +@media (prefers-color-scheme: dark) { + :root { + --background: #0a0a0a; + --foreground: #ededed; + } +} + +body { + background: var(--background); + color: var(--foreground); + font-family: Arial, Helvetica, sans-serif; +} diff --git a/app/layout.tsx b/app/layout.tsx new file mode 100644 index 0000000..bfed29b --- /dev/null +++ b/app/layout.tsx @@ -0,0 +1,34 @@ +import type { Metadata } from "next"; +import { Geist, Geist_Mono } from "next/font/google"; +import "./globals.css"; + +const geistSans = Geist({ + variable: "--font-geist-sans", + subsets: ["latin"], +}); + +const geistMono = Geist_Mono({ + variable: "--font-geist-mono", + subsets: ["latin"], +}); + +export const metadata: Metadata = { + title: "Tunnl Please", + description: "Tunnl is a fast and secure network with low-latency servers in Singapore. Simple, private, and reliable.", +}; + +export default function RootLayout({ + children, +}: Readonly<{ + children: React.ReactNode; +}>) { + return ( + + + {children} + + + ); +} diff --git a/app/page.tsx b/app/page.tsx new file mode 100644 index 0000000..3f32cd0 --- /dev/null +++ b/app/page.tsx @@ -0,0 +1,634 @@ +import Card from "./card" + +export default function Home() { + return ( +
+
+
+
+

+ tunnl.live +

+

+ Expose your local services to the internet securely with our fast and reliable SSH tunneling service. +

+
+ +
+
+
+ + + + + +
+

Global Network

+

+ We offer low-latency, high-availability servers located in Singapore for optimal performance. +

+
+
+
+ + + +
+

Secure by Default

+

+ End-to-end encryption with SSH ensures your data remains private and secure. +

+
+
+
+ + + + + +
+

Easy Sharing

+

+ Share your local development with clients or teammates without complex setup. +

+
+
+ +
+

100% Free Service

+

+ No registration required. Just run the command and start using the tunnel immediately. +

+
+
+
+ +
+ ) +} diff --git a/next.config.ts b/next.config.ts new file mode 100644 index 0000000..e9ffa30 --- /dev/null +++ b/next.config.ts @@ -0,0 +1,7 @@ +import type { NextConfig } from "next"; + +const nextConfig: NextConfig = { + /* config options here */ +}; + +export default nextConfig; diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..b171e4e --- /dev/null +++ b/package-lock.json @@ -0,0 +1,1567 @@ +{ + "name": "tunnlpls_frontend", + "version": "0.1.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "tunnlpls_frontend", + "version": "0.1.0", + "dependencies": { + "next": "15.3.1", + "react": "^19.0.0", + "react-dom": "^19.0.0", + "tailwindcss-animate": "^1.0.7" + }, + "devDependencies": { + "@tailwindcss/postcss": "^4", + "@types/node": "^20", + "@types/react": "^19", + "@types/react-dom": "^19", + "tailwindcss": "^4", + "typescript": "^5" + } + }, + "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/@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==", + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "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" + ], + "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" + ], + "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" + ], + "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" + ], + "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" + ], + "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" + ], + "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" + ], + "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" + ], + "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" + ], + "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" + ], + "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" + ], + "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" + ], + "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" + ], + "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" + ], + "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" + ], + "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" + ], + "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" + ], + "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" + ], + "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" + ], + "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" + ], + "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/@next/env": { + "version": "15.3.1", + "resolved": "https://registry.npmjs.org/@next/env/-/env-15.3.1.tgz", + "integrity": "sha512-cwK27QdzrMblHSn9DZRV+DQscHXRuJv6MydlJRpFSqJWZrTYMLzKDeyueJNN9MGd8NNiUKzDQADAf+dMLXX7YQ==", + "license": "MIT" + }, + "node_modules/@next/swc-darwin-arm64": { + "version": "15.3.1", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-15.3.1.tgz", + "integrity": "sha512-hjDw4f4/nla+6wysBL07z52Gs55Gttp5Bsk5/8AncQLJoisvTBP0pRIBK/B16/KqQyH+uN4Ww8KkcAqJODYH3w==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-darwin-x64": { + "version": "15.3.1", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-15.3.1.tgz", + "integrity": "sha512-q+aw+cJ2ooVYdCEqZVk+T4Ni10jF6Fo5DfpEV51OupMaV5XL6pf3GCzrk6kSSZBsMKZtVC1Zm/xaNBFpA6bJ2g==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-arm64-gnu": { + "version": "15.3.1", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-15.3.1.tgz", + "integrity": "sha512-wBQ+jGUI3N0QZyWmmvRHjXjTWFy8o+zPFLSOyAyGFI94oJi+kK/LIZFJXeykvgXUk1NLDAEFDZw/NVINhdk9FQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-arm64-musl": { + "version": "15.3.1", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-15.3.1.tgz", + "integrity": "sha512-IIxXEXRti/AulO9lWRHiCpUUR8AR/ZYLPALgiIg/9ENzMzLn3l0NSxVdva7R/VDcuSEBo0eGVCe3evSIHNz0Hg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-x64-gnu": { + "version": "15.3.1", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-15.3.1.tgz", + "integrity": "sha512-bfI4AMhySJbyXQIKH5rmLJ5/BP7bPwuxauTvVEiJ/ADoddaA9fgyNNCcsbu9SlqfHDoZmfI6g2EjzLwbsVTr5A==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-x64-musl": { + "version": "15.3.1", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-15.3.1.tgz", + "integrity": "sha512-FeAbR7FYMWR+Z+M5iSGytVryKHiAsc0x3Nc3J+FD5NVbD5Mqz7fTSy8CYliXinn7T26nDMbpExRUI/4ekTvoiA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-win32-arm64-msvc": { + "version": "15.3.1", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-15.3.1.tgz", + "integrity": "sha512-yP7FueWjphQEPpJQ2oKmshk/ppOt+0/bB8JC8svPUZNy0Pi3KbPx2Llkzv1p8CoQa+D2wknINlJpHf3vtChVBw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-win32-x64-msvc": { + "version": "15.3.1", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-15.3.1.tgz", + "integrity": "sha512-3PMvF2zRJAifcRNni9uMk/gulWfWS+qVI/pagd+4yLF5bcXPZPPH2xlYRYOsUjmCJOXSTAC2PjRzbhsRzR2fDQ==", + "cpu": [ + "x64" + ], + "license": "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/@tailwindcss/node": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.1.5.tgz", + "integrity": "sha512-CBhSWo0vLnWhXIvpD0qsPephiaUYfHUX3U9anwDaHZAeuGpTiB3XmsxPAN6qX7bFhipyGBqOa1QYQVVhkOUGxg==", + "dev": true, + "license": "MIT", + "dependencies": { + "enhanced-resolve": "^5.18.1", + "jiti": "^2.4.2", + "lightningcss": "1.29.2", + "tailwindcss": "4.1.5" + } + }, + "node_modules/@tailwindcss/oxide": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.1.5.tgz", + "integrity": "sha512-1n4br1znquEvyW/QuqMKQZlBen+jxAbvyduU87RS8R3tUSvByAkcaMTkJepNIrTlYhD+U25K4iiCIxE6BGdRYA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10" + }, + "optionalDependencies": { + "@tailwindcss/oxide-android-arm64": "4.1.5", + "@tailwindcss/oxide-darwin-arm64": "4.1.5", + "@tailwindcss/oxide-darwin-x64": "4.1.5", + "@tailwindcss/oxide-freebsd-x64": "4.1.5", + "@tailwindcss/oxide-linux-arm-gnueabihf": "4.1.5", + "@tailwindcss/oxide-linux-arm64-gnu": "4.1.5", + "@tailwindcss/oxide-linux-arm64-musl": "4.1.5", + "@tailwindcss/oxide-linux-x64-gnu": "4.1.5", + "@tailwindcss/oxide-linux-x64-musl": "4.1.5", + "@tailwindcss/oxide-wasm32-wasi": "4.1.5", + "@tailwindcss/oxide-win32-arm64-msvc": "4.1.5", + "@tailwindcss/oxide-win32-x64-msvc": "4.1.5" + } + }, + "node_modules/@tailwindcss/oxide-android-arm64": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.1.5.tgz", + "integrity": "sha512-LVvM0GirXHED02j7hSECm8l9GGJ1RfgpWCW+DRn5TvSaxVsv28gRtoL4aWKGnXqwvI3zu1GABeDNDVZeDPOQrw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-darwin-arm64": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.1.5.tgz", + "integrity": "sha512-//TfCA3pNrgnw4rRJOqavW7XUk8gsg9ddi8cwcsWXp99tzdBAZW0WXrD8wDyNbqjW316Pk2hiN/NJx/KWHl8oA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-darwin-x64": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.1.5.tgz", + "integrity": "sha512-XQorp3Q6/WzRd9OalgHgaqgEbjP3qjHrlSUb5k1EuS1Z9NE9+BbzSORraO+ecW432cbCN7RVGGL/lSnHxcd+7Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-freebsd-x64": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.1.5.tgz", + "integrity": "sha512-bPrLWbxo8gAo97ZmrCbOdtlz/Dkuy8NK97aFbVpkJ2nJ2Jo/rsCbu0TlGx8joCuA3q6vMWTSn01JY46iwG+clg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm-gnueabihf": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.1.5.tgz", + "integrity": "sha512-1gtQJY9JzMAhgAfvd/ZaVOjh/Ju/nCoAsvOVJenWZfs05wb8zq+GOTnZALWGqKIYEtyNpCzvMk+ocGpxwdvaVg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm64-gnu": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.1.5.tgz", + "integrity": "sha512-dtlaHU2v7MtdxBXoqhxwsWjav7oim7Whc6S9wq/i/uUMTWAzq/gijq1InSgn2yTnh43kR+SFvcSyEF0GCNu1PQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-linux-arm64-musl": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.1.5.tgz", + "integrity": "sha512-fg0F6nAeYcJ3CriqDT1iVrqALMwD37+sLzXs8Rjy8Z1ZHshJoYceodfyUwGJEsQoTyWbliFNRs2wMQNXtT7MVA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-linux-x64-gnu": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.1.5.tgz", + "integrity": "sha512-SO+F2YEIAHa1AITwc8oPwMOWhgorPzzcbhWEb+4oLi953h45FklDmM8dPSZ7hNHpIk9p/SCZKUYn35t5fjGtHA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-linux-x64-musl": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.1.5.tgz", + "integrity": "sha512-6UbBBplywkk/R+PqqioskUeXfKcBht3KU7juTi1UszJLx0KPXUo10v2Ok04iBJIaDPkIFkUOVboXms5Yxvaz+g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-wasm32-wasi": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-wasm32-wasi/-/oxide-wasm32-wasi-4.1.5.tgz", + "integrity": "sha512-hwALf2K9FHuiXTPqmo1KeOb83fTRNbe9r/Ixv9ZNQ/R24yw8Ge1HOWDDgTdtzntIaIUJG5dfXCf4g9AD4RiyhQ==", + "bundleDependencies": [ + "@napi-rs/wasm-runtime", + "@emnapi/core", + "@emnapi/runtime", + "@tybys/wasm-util", + "@emnapi/wasi-threads", + "tslib" + ], + "cpu": [ + "wasm32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/core": "^1.4.3", + "@emnapi/runtime": "^1.4.3", + "@emnapi/wasi-threads": "^1.0.2", + "@napi-rs/wasm-runtime": "^0.2.9", + "@tybys/wasm-util": "^0.9.0", + "tslib": "^2.8.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@tailwindcss/oxide-win32-arm64-msvc": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.1.5.tgz", + "integrity": "sha512-oDKncffWzaovJbkuR7/OTNFRJQVdiw/n8HnzaCItrNQUeQgjy7oUiYpsm9HUBgpmvmDpSSbGaCa2Evzvk3eFmA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/oxide-win32-x64-msvc": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.1.5.tgz", + "integrity": "sha512-WiR4dtyrFdbb+ov0LK+7XsFOsG+0xs0PKZKkt41KDn9jYpO7baE3bXiudPVkTqUEwNfiglCygQHl2jklvSBi7Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tailwindcss/postcss": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@tailwindcss/postcss/-/postcss-4.1.5.tgz", + "integrity": "sha512-5lAC2/pzuyfhsFgk6I58HcNy6vPK3dV/PoPxSDuOTVbDvCddYHzHiJZZInGIY0venvzzfrTEUAXJFULAfFmObg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@alloc/quick-lru": "^5.2.0", + "@tailwindcss/node": "4.1.5", + "@tailwindcss/oxide": "4.1.5", + "postcss": "^8.4.41", + "tailwindcss": "4.1.5" + } + }, + "node_modules/@types/node": { + "version": "20.17.32", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.17.32.tgz", + "integrity": "sha512-zeMXFn8zQ+UkjK4ws0RiOC9EWByyW1CcVmLe+2rQocXRsGEDxUCwPEIVgpsGcLHS/P8JkT0oa3839BRABS0oPw==", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~6.19.2" + } + }, + "node_modules/@types/react": { + "version": "19.1.2", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.1.2.tgz", + "integrity": "sha512-oxLPMytKchWGbnQM9O7D67uPa9paTNxO7jVoNMXgkkErULBPhPARCfkKL9ytcIJJRGjbsVwW4ugJzyFFvm/Tiw==", + "dev": true, + "license": "MIT", + "dependencies": { + "csstype": "^3.0.2" + } + }, + "node_modules/@types/react-dom": { + "version": "19.1.3", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.1.3.tgz", + "integrity": "sha512-rJXC08OG0h3W6wDMFxQrZF00Kq6qQvw0djHRdzl3U5DnIERz0MRce3WVc7IS6JYBwtaP/DwYtRRjVlvivNveKg==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "@types/react": "^19.0.0" + } + }, + "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/caniuse-lite": { + "version": "1.0.30001716", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001716.tgz", + "integrity": "sha512-49/c1+x3Kwz7ZIWt+4DvK3aMJy9oYXXG6/97JKsnjdCk/6n9vVyWL8NAwVt95Lwt9eigI10Hl782kDfZUUlRXw==", + "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/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/color": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz", + "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==", + "license": "MIT", + "optional": true, + "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", + "optional": true, + "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", + "optional": true + }, + "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==", + "license": "MIT", + "optional": true, + "dependencies": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, + "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/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/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/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/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==", + "license": "MIT", + "optional": true + }, + "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/lightningcss": { + "version": "1.29.2", + "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.29.2.tgz", + "integrity": "sha512-6b6gd/RUXKaw5keVdSEtqFVdzWnU5jMxTUjA2bVcMNPLwSQ08Sv/UodBVtETLCn7k4S1Ibxwh7k68IwLZPgKaA==", + "dev": true, + "license": "MPL-2.0", + "dependencies": { + "detect-libc": "^2.0.3" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "lightningcss-darwin-arm64": "1.29.2", + "lightningcss-darwin-x64": "1.29.2", + "lightningcss-freebsd-x64": "1.29.2", + "lightningcss-linux-arm-gnueabihf": "1.29.2", + "lightningcss-linux-arm64-gnu": "1.29.2", + "lightningcss-linux-arm64-musl": "1.29.2", + "lightningcss-linux-x64-gnu": "1.29.2", + "lightningcss-linux-x64-musl": "1.29.2", + "lightningcss-win32-arm64-msvc": "1.29.2", + "lightningcss-win32-x64-msvc": "1.29.2" + } + }, + "node_modules/lightningcss-darwin-arm64": { + "version": "1.29.2", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.29.2.tgz", + "integrity": "sha512-cK/eMabSViKn/PG8U/a7aCorpeKLMlK0bQeNHmdb7qUnBkNPnL+oV5DjJUo0kqWsJUapZsM4jCfYItbqBDvlcA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-darwin-x64": { + "version": "1.29.2", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.29.2.tgz", + "integrity": "sha512-j5qYxamyQw4kDXX5hnnCKMf3mLlHvG44f24Qyi2965/Ycz829MYqjrVg2H8BidybHBp9kom4D7DR5VqCKDXS0w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-freebsd-x64": { + "version": "1.29.2", + "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.29.2.tgz", + "integrity": "sha512-wDk7M2tM78Ii8ek9YjnY8MjV5f5JN2qNVO+/0BAGZRvXKtQrBC4/cn4ssQIpKIPP44YXw6gFdpUF+Ps+RGsCwg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm-gnueabihf": { + "version": "1.29.2", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.29.2.tgz", + "integrity": "sha512-IRUrOrAF2Z+KExdExe3Rz7NSTuuJ2HvCGlMKoquK5pjvo2JY4Rybr+NrKnq0U0hZnx5AnGsuFHjGnNT14w26sg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-gnu": { + "version": "1.29.2", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.29.2.tgz", + "integrity": "sha512-KKCpOlmhdjvUTX/mBuaKemp0oeDIBBLFiU5Fnqxh1/DZ4JPZi4evEH7TKoSBFOSOV3J7iEmmBaw/8dpiUvRKlQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-musl": { + "version": "1.29.2", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.29.2.tgz", + "integrity": "sha512-Q64eM1bPlOOUgxFmoPUefqzY1yV3ctFPE6d/Vt7WzLW4rKTv7MyYNky+FWxRpLkNASTnKQUaiMJ87zNODIrrKQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-gnu": { + "version": "1.29.2", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.29.2.tgz", + "integrity": "sha512-0v6idDCPG6epLXtBH/RPkHvYx74CVziHo6TMYga8O2EiQApnUPZsbR9nFNrg2cgBzk1AYqEd95TlrsL7nYABQg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-musl": { + "version": "1.29.2", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.29.2.tgz", + "integrity": "sha512-rMpz2yawkgGT8RULc5S4WiZopVMOFWjiItBT7aSfDX4NQav6M44rhn5hjtkKzB+wMTRlLLqxkeYEtQ3dd9696w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-win32-arm64-msvc": { + "version": "1.29.2", + "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.29.2.tgz", + "integrity": "sha512-nL7zRW6evGQqYVu/bKGK+zShyz8OVzsCotFgc7judbt6wnB2KbiKKJwBE4SGoDBQ1O94RjW4asrCjQL4i8Fhbw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-win32-x64-msvc": { + "version": "1.29.2", + "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.29.2.tgz", + "integrity": "sha512-EdIUW3B2vLuHmv7urfzMI/h2fmlnOQBk1xlsDxkN1tCWKjNFjfLhGxYk8C8mzpSfr+A6jFFIi8fU6LbQGsRWjA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "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/next": { + "version": "15.3.1", + "resolved": "https://registry.npmjs.org/next/-/next-15.3.1.tgz", + "integrity": "sha512-8+dDV0xNLOgHlyBxP1GwHGVaNXsmp+2NhZEYrXr24GWLHtt27YrBPbPuHvzlhi7kZNYjeJNR93IF5zfFu5UL0g==", + "license": "MIT", + "dependencies": { + "@next/env": "15.3.1", + "@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.1", + "@next/swc-darwin-x64": "15.3.1", + "@next/swc-linux-arm64-gnu": "15.3.1", + "@next/swc-linux-arm64-musl": "15.3.1", + "@next/swc-linux-x64-gnu": "15.3.1", + "@next/swc-linux-x64-musl": "15.3.1", + "@next/swc-win32-arm64-msvc": "15.3.1", + "@next/swc-win32-x64-msvc": "15.3.1", + "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/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/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/react": { + "version": "19.1.0", + "resolved": "https://registry.npmjs.org/react/-/react-19.1.0.tgz", + "integrity": "sha512-FS+XFBNvn3GTAWq26joslQgWNoFu08F4kl0J4CgdNKADkdSGXQyTCnKteIAJy96Br6YbpEU1LSzV5dYtjMkMDg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "19.1.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.1.0.tgz", + "integrity": "sha512-Xs1hdnE+DyKgeHJeJznQmYMIBG3TKIHJJT95Q58nHLSrElKlGQqDTR2HQ9fx5CN/Gk6Vh/kupBTDLU11/nDk/g==", + "license": "MIT", + "dependencies": { + "scheduler": "^0.26.0" + }, + "peerDependencies": { + "react": "^19.1.0" + } + }, + "node_modules/scheduler": { + "version": "0.26.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.26.0.tgz", + "integrity": "sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA==", + "license": "MIT" + }, + "node_modules/semver": { + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", + "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", + "license": "ISC", + "optional": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/sharp": { + "version": "0.34.1", + "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.34.1.tgz", + "integrity": "sha512-1j0w61+eVxu7DawFJtnfYcvSv6qPFvfTaqzTQ2BLknVhHTwGS8sc63ZBF4rzkWMBVKybo4S5OBtDdZahh2A1xg==", + "hasInstallScript": true, + "license": "Apache-2.0", + "optional": true, + "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/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==", + "license": "MIT", + "optional": true, + "dependencies": { + "is-arrayish": "^0.3.1" + } + }, + "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/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/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/tailwindcss": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.1.5.tgz", + "integrity": "sha512-nYtSPfWGDiWgCkwQG/m+aX83XCwf62sBgg3bIlNiiOcggnS1x3uVRDAuyelBFL+vJdOPPCGElxv9DjHJjRHiVA==", + "license": "MIT" + }, + "node_modules/tailwindcss-animate": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/tailwindcss-animate/-/tailwindcss-animate-1.0.7.tgz", + "integrity": "sha512-bl6mpH3T7I3UFxuvDEXLxy/VuFxBk5bbzplh7tXI68mwMokNYd1t9qPBHlnyTwfa4JGC4zP516I1hYYtQ/vspA==", + "license": "MIT", + "peerDependencies": { + "tailwindcss": ">=3.0.0 || insiders" + } + }, + "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/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/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.19.8", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", + "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", + "dev": true, + "license": "MIT" + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..218d3bd --- /dev/null +++ b/package.json @@ -0,0 +1,25 @@ +{ + "name": "tunnlpls_frontend", + "version": "0.1.0", + "private": true, + "scripts": { + "dev": "next dev --turbopack", + "build": "next build", + "start": "next start", + "lint": "next lint" + }, + "dependencies": { + "next": "15.3.1", + "react": "^19.0.0", + "react-dom": "^19.0.0", + "tailwindcss-animate": "^1.0.7" + }, + "devDependencies": { + "@tailwindcss/postcss": "^4", + "@types/node": "^20", + "@types/react": "^19", + "@types/react-dom": "^19", + "tailwindcss": "^4", + "typescript": "^5" + } +} diff --git a/postcss.config.mjs b/postcss.config.mjs new file mode 100644 index 0000000..01dfea9 --- /dev/null +++ b/postcss.config.mjs @@ -0,0 +1,58 @@ +const config = { + darkMode: ["class"], + prefix: "", + theme: { + container: { + center: true, + padding: "2rem", + screens: { + "2xl": "1400px", + }, + }, + extend: { + colors: { + border: "hsl(var(--border))", + input: "hsl(var(--input))", + ring: "hsl(var(--ring))", + background: "hsl(var(--background))", + foreground: "hsl(var(--foreground))", + primary: { + DEFAULT: "hsl(var(--primary))", + foreground: "hsl(var(--primary-foreground))", + }, + secondary: { + DEFAULT: "hsl(var(--secondary))", + foreground: "hsl(var(--secondary-foreground))", + }, + destructive: { + DEFAULT: "hsl(var(--destructive))", + foreground: "hsl(var(--destructive-foreground))", + }, + muted: { + DEFAULT: "hsl(var(--muted))", + foreground: "hsl(var(--muted-foreground))", + }, + accent: { + DEFAULT: "hsl(var(--accent))", + foreground: "hsl(var(--accent-foreground))", + }, + popover: { + DEFAULT: "hsl(var(--popover))", + foreground: "hsl(var(--popover-foreground))", + }, + card: { + DEFAULT: "hsl(var(--card))", + foreground: "hsl(var(--card-foreground))", + }, + }, + borderRadius: { + lg: "var(--radius)", + md: "calc(var(--radius) - 2px)", + sm: "calc(var(--radius) - 4px)", + }, + }, + }, + plugins: ["@tailwindcss/postcss"], +} + +export default config diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..d8b9323 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,27 @@ +{ + "compilerOptions": { + "target": "ES2017", + "lib": ["dom", "dom.iterable", "esnext"], + "allowJs": true, + "skipLibCheck": true, + "strict": true, + "noEmit": true, + "esModuleInterop": true, + "module": "esnext", + "moduleResolution": "bundler", + "resolveJsonModule": true, + "isolatedModules": true, + "jsx": "preserve", + "incremental": true, + "plugins": [ + { + "name": "next" + } + ], + "paths": { + "@/*": ["./*"] + } + }, + "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"], + "exclude": ["node_modules"] +}