diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 7121463..f4e5eb6 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -2,26 +2,25 @@ // This container standardizes the local development environment for the Monorepo. { "name": "FE Monorepo Template", - + // Base image providing Node.js v24, TypeScript, and a Debian Bookworm environment. "image": "mcr.microsoft.com/devcontainers/typescript-node:24-bookworm", - + // DevContainer Features: Pre-installed tools needed for our workflow. "features": { "ghcr.io/devcontainers/features/git:1": {}, "ghcr.io/devcontainers-extra/features/pnpm:2": {}, "ghcr.io/devcontainers/features/sshd:1": {} }, - + // ─── Port Topology ────────────────────────────────────────────────────────── // 6060: VitePress Docs (Development) // 4173: VitePress Docs (Preview) // 5173: Web App (Must be strictly 5173 for Electron IPC compatibility) // 3000: Landing App (Isolated from Vite's default 517x blast radius) - // 3001: Company Profile App // 3005: Showcase App - "forwardPorts": [6060, 4173, 5173, 3000, 3001, 3005], - + "forwardPorts": [6060, 4173, 5173, 3000, 3005], + "portsAttributes": { "6060": { "label": "VitePress Docs", @@ -42,17 +41,13 @@ "3000": { "label": "Landing App (Public)", "onAutoForward": "notify" - }, - "3001": { - "label": "Product Site App", - "onAutoForward": "notify" } }, - + // ─── Lifecycle Hooks ──────────────────────────────────────────────────────── // Automatically install all workspace dependencies once the container is built. "postCreateCommand": "pnpm install", - + // ─── Editor Standardization ───────────────────────────────────────────────── // Enforces code style and tooling across all developers' machines. "customizations": { @@ -62,18 +57,18 @@ "editor.defaultFormatter": "esbenp.prettier-vscode" }, "extensions": [ - "dbaeumer.vscode-eslint", // Linting - "esbenp.prettier-vscode", // Formatting - "bradlc.vscode-tailwindcss", // Tailwind v4 IntelliSense - "yoavbls.pretty-ts-errors", // Human-readable TypeScript errors - "editorconfig.editorconfig" // Standardized indentation + "dbaeumer.vscode-eslint", // Linting + "esbenp.prettier-vscode", // Formatting + "bradlc.vscode-tailwindcss", // Tailwind v4 IntelliSense + "yoavbls.pretty-ts-errors", // Human-readable TypeScript errors + "editorconfig.editorconfig" // Standardized indentation ] } }, - + // ─── Security & Permissions ───────────────────────────────────────────────── - // CRITICAL: Run the container as 'node' instead of 'root'. - // This prevents 'Permission Denied' errors on the host OS when trying to + // CRITICAL: Run the container as 'node' instead of 'root'. + // This prevents 'Permission Denied' errors on the host OS when trying to // delete or modify the 'node_modules' folder created inside the container. "remoteUser": "node" } diff --git a/apps/product-site/.gitignore b/apps/product-site/.gitignore deleted file mode 100644 index 5ef6a52..0000000 --- a/apps/product-site/.gitignore +++ /dev/null @@ -1,41 +0,0 @@ -# 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/apps/product-site/AGENTS.md b/apps/product-site/AGENTS.md deleted file mode 100644 index 8bd0e39..0000000 --- a/apps/product-site/AGENTS.md +++ /dev/null @@ -1,5 +0,0 @@ - -# This is NOT the Next.js you know - -This version has breaking changes — APIs, conventions, and file structure may all differ from your training data. Read the relevant guide in `node_modules/next/dist/docs/` before writing any code. Heed deprecation notices. - diff --git a/apps/product-site/CLAUDE.md b/apps/product-site/CLAUDE.md deleted file mode 100644 index 43c994c..0000000 --- a/apps/product-site/CLAUDE.md +++ /dev/null @@ -1 +0,0 @@ -@AGENTS.md diff --git a/apps/product-site/README.md b/apps/product-site/README.md deleted file mode 100644 index e215bc4..0000000 --- a/apps/product-site/README.md +++ /dev/null @@ -1,36 +0,0 @@ -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/apps/product-site/eslint.config.mjs b/apps/product-site/eslint.config.mjs deleted file mode 100644 index 1341e32..0000000 --- a/apps/product-site/eslint.config.mjs +++ /dev/null @@ -1,3 +0,0 @@ -import { nextjsConfig } from "@repo/eslint-config/nextjs.mjs"; - -export default nextjsConfig; diff --git a/apps/product-site/messages/en.json b/apps/product-site/messages/en.json deleted file mode 100644 index df198df..0000000 --- a/apps/product-site/messages/en.json +++ /dev/null @@ -1,215 +0,0 @@ -{ - "Metadata": { - "title": "Pintu Masuk — Manage Visitors, From Tickets to Gates", - "description": "The First Integrated Ticketing and Access Platform in Indonesia" - }, - "Nav": { - "home": "Home", - "solutions": "Solutions", - "industries": "Industries", - "pricing": "Pricing", - "contact": "Contact", - "demo": "Schedule Demo" - }, - "Hero": { - "title1": "Manage Visitors.", - "title2": "From Tickets to Gates.", - "desc": "Manage the entire visitor journey in one platform, from ticket sales, access validation, queue management, to operational reporting. Keeps running even when internet connection is not always available.", - "subtitle": "The First Integrated Ticketing and Access Platform in Indonesia", - "cta": "Learn more", - "stats": { - "timeAccess": "Time access", - "seconds": "seconds", - "avgValidation": "Avg validation time", - "ticketsSold": "Tickets sold", - "todayAllChannels": "Today · all channels", - "sync": "Synchronization", - "txSynced": "transactions Successfully synced", - "visitorOps": "Visitor operations", - "activeZones": "3 active queue zones" - } - }, - "Why": { - "title": "Built for non-stop operations", - "desc": "More than just a ticketing system, Pintu Masuk is an access infrastructure that keeps working when signals drop, queues lengthen, and when you need quick data-driven decisions.", - "items": { - "offline": { - "title": "Offline-first", - "desc": "Transactions remain recorded locally when internet drops, then sync automatically once the network returns." - }, - "speed": { - "title": "Speed Validation", - "desc": "QR, RFID, and gate barriers validated in milliseconds, even during peak queue times." - }, - "flexibility": { - "title": "Flexibility Model", - "desc": "Cloud, on-premise, perpetual license, or rental can be tailored to your duration and infrastructure." - } - } - }, - "Ecosystem": { - "title": "Four steps. One ecosystem.", - "desc": "Each stage is integrated into one platform, allowing data to flow automatically from ticket purchase to operational reporting without manual processes or repetitive input.", - "ticketing": { - "title": "Ticketing", - "desc": "Sell tickets online via web, apps, or counters. Prices and quotas are always synced in one system." - }, - "access": { - "title": "Access Management", - "desc": "Validate tickets using QR Code, RFID, or automated gates. Fast, accurate process completed in seconds." - }, - "visitor": { - "title": "Visitor Operations", - "desc": "Manage queues, zone capacities, and visit schedules in real-time for a more orderly experience." - }, - "report": { - "title": "Report", - "desc": "Monitor transactions, visitor numbers, occupancy, and operational performance through a single dashboard." - }, - "stats": { - "qr": "QR Code", - "gate": "Gate Barrier", - "rfid": "RFID", - "avg": "average", - "queue": "124 visitors in queue", - "revenue": "Revenue", - "visitors": "Visitor", - "checkin": "Check-in" - } - }, - "Destinations": { - "title": "One platform, designed for every type of destination", - "desc": "Pintu Masuk adapts to your business processes, because we believe every industry has different visitor flows and operational needs.", - "title21": "One platform,", - "title22": "Various applications for every need.", - "desc2": "Ticket sales, check-ins, to zone occupancies are updated in real-time without needing to wait to know what's happening.", - "items": { - "themePark": { - "title": "Theme Park", - "desc": "Manage daily rides and tickets with a more efficient queuing system." - }, - "event": { - "title": "Event & Festival", - "desc": "Handle thousands of visitors with fast ticket sales and access validation." - }, - "museum": { - "title": "Museum", - "desc": "Create a more organized visit experience through schedule and capacity management." - }, - "stadium": { - "title": "Stadium & Venue", - "desc": "Speed up entry processes with accurate ticket validation, even when queues overflow." - }, - "exhibition": { - "title": "Exhibition", - "desc": "Flexible for multi-day exhibitions with integrated ticket access settings." - } - }, - "apps": { - "online": { - "title": "Online Booking", - "desc": "Manage reservations and ticket purchases from various digital channels." - }, - "cashier": { - "title": "Buy at Cashier", - "desc": "Ticket sales at the cashier to serve visitors directly." - }, - "pos": { - "title": "Offline POS (Multi Outlet)", - "desc": "Record transactions, redeem bookings, and operate cashiers without relying on internet." - }, - "queue": { - "title": "Queue App", - "desc": "Helps manage entry queues for a more comfortable visitor experience." - }, - "admin": { - "title": "Web Admin", - "desc": "Control center to manage master data, transactions, and system synchronization." - } - } - }, - "Pricing": { - "title1": "Start according to needs,", - "title2": "grow without limits", - "desc": "No need to pay more for unused features. Choose the most suitable package, then upgrade anytime as your operations grow.", - "contactUs": "Contact Us", - "whatYouGet": "What you get", - "rental": { - "title": "Rental", - "tags": [ - "Event", - "Festival", - "Concert" - ], - "desc": "Practical solution for short-duration events. Rent complete devices and systems, ready to use in days.", - "f1": "Ticketing & QR check-in", - "f2": "Gate & scanner device rental", - "f3": "Real-time monitoring dashboard", - "f4": "Visitor reports D+1", - "f5": "Fast setup & teardown (ready D-1)" - }, - "subscription": { - "title": "Subscription", - "tags": [ - "Tourist attraction", - "Waterpark" - ], - "desc": "Monthly subscription model for destinations operating daily, without initial infrastructure investment.", - "f1": "All Rental features", - "f2": "Multi outlet & multi gate", - "f3": "Quota & visit schedule management", - "f4": "Monthly operational dashboard", - "f5": "Automatic feature updates" - }, - "onPremise": { - "title": "On-Premise", - "tags": [ - "Enterprise", - "Institution" - ], - "desc": "System runs on your own servers and networks, for full control over data and security.", - "f1": "All Subscription features", - "f2": "Local server installation", - "f3": "Internal system integration (SSO, ERP)", - "f4": "Advanced access & security control", - "f5": "Dedicated deployment support" - }, - "buyOut": { - "title": "Buy Out", - "tags": [ - "Company", - "Integrator", - "Developer" - ], - "desc": "Solution with permanent license for organizations wanting long-term implementation and broader operational control.", - "f1": "Permanent License", - "f2": "Complete technical documentation", - "f3": "Internal engineering team training", - "f4": "Free from ongoing license fees", - "f5": "Priority support for first year" - } - }, - "Contact": { - "eyebrow": "Contact us", - "title": "Let's discuss your operational needs", - "desc": "Our team is ready to help determine the most suitable package for the scale and type of your event or destination.", - "email": "Email", - "phone": "Phone / WhatsApp", - "office": "Office", - "form": { - "title": "Send a message to our team", - "name": "Full name", - "needs": "Tell us your needs", - "submit": "Send Message", - "note": "Our team responds within 1x24 hours on working days.", - "placeholderName": "John Doe", - "placeholderEmail": "name@company.com", - "placeholderNeeds": "Type of event or destination, estimated number of visitors, and the package you are considering." - } - }, - "Footer": { - "desc": "Manage integrated ticketing and access for theme parks, events, museums, and venues across Indonesia.", - "links": "Quick Links", - "copyright": "Pintu Masuk. All rights reserved." - } -} \ No newline at end of file diff --git a/apps/product-site/messages/id.json b/apps/product-site/messages/id.json deleted file mode 100644 index 7333fba..0000000 --- a/apps/product-site/messages/id.json +++ /dev/null @@ -1,215 +0,0 @@ -{ - "Metadata": { - "title": "Pintu Masuk — Kelola Pengunjung, Dari Tiket Hingga Gerbang", - "description": "Platform Tiket dan Akses Terintegrasi Pertama di Indonesia" - }, - "Nav": { - "home": "Beranda", - "solutions": "Solusi", - "industries": "Industri", - "pricing": "Paket", - "contact": "Kontak", - "demo": "Jadwalkan Demo" - }, - "Hero": { - "title1": "Kelola Pengunjung.", - "title2": "Dari Tiket Hingga Gerbang.", - "desc": "Kelola seluruh perjalanan pengunjung dalam satu platform, mulai dari penjualan tiket, validasi akses, manajemen antrean, hingga pelaporan operasional. Tetap berjalan meski koneksi internet tidak selalu tersedia.", - "subtitle": "Platform Tiket dan Akses Terintegrasi Pertama di Indonesia", - "cta": "Lihat selengkapnya", - "stats": { - "timeAccess": "Time access", - "seconds": "detik", - "avgValidation": "Rerata waktu validasi", - "ticketsSold": "Tiket terjual", - "todayAllChannels": "Hari ini · semua kanal", - "sync": "Sinkronisasi", - "txSynced": "transaksi Berhasil disinkronkan", - "visitorOps": "Visitor operations", - "activeZones": "3 zona antrean aktif" - } - }, - "Why": { - "title": "Dibangun untuk operasional yang tidak boleh berhenti", - "desc": "Bukan hanya sekadar sistem tiket, Pintu Masuk adalah infrastruktur akses yang tetap bekerja saat sinyal hilang, saat antrean memanjang, dan saat kamu butuh keputusan cepat berbasis data.", - "items": { - "offline": { - "title": "Offline-first", - "desc": "Transaksi tetap tercatat lokal saat internet putus, lalu sinkron otomatis begitu jaringan kembali." - }, - "speed": { - "title": "Speed Validation", - "desc": "QR, RFID, dan gate barrier tervalidasi dalam hitungan milidetik, bahkan saat antrean sedang padat." - }, - "flexibility": { - "title": "Flexibility Model", - "desc": "Cloud, on-premise, perpetual license, atau rental dapat disesuaikan dengan durasi dan infrastruktur kamu." - } - } - }, - "Ecosystem": { - "title": "Empat langkah. Satu ekosistem.", - "desc": "Setiap tahap saling terintegrasi dalam satu platform, sehingga data mengalir otomatis dari pembelian tiket hingga pelaporan operasional tanpa proses manual atau input berulang.", - "ticketing": { - "title": "Ticketing", - "desc": "Jual tiket online melalui web, aplikasi, atau loket. Harga dan kuota selalu tersinkron dalam satu sistem." - }, - "access": { - "title": "Access Management", - "desc": "Validasi tiket menggunakan QR Code, RFID, atau gate otomatis. Proses cepat, akurat, dan selesai dalam hitungan detik." - }, - "visitor": { - "title": "Visitor Operations", - "desc": "Atur antrean, kapasitas zona, dan jadwal kunjungan secara real-time untuk pengalaman yang lebih tertib." - }, - "report": { - "title": "Report", - "desc": "Pantau transaksi, jumlah pengunjung, okupansi, dan performa operasional melalui satu dashboard." - }, - "stats": { - "qr": "QR Code", - "gate": "Gate Barrier", - "rfid": "RFID", - "avg": "rata-rata", - "queue": "124 pengunjung dalam antrean", - "revenue": "Revenue", - "visitors": "Visitor", - "checkin": "Check-in" - } - }, - "Destinations": { - "title": "Satu platform, dirancang untuk setiap jenis destinasi", - "desc": "Pintu Masuk beradaptasi dengan proses bisnis Anda, karena Kami percaya setiap industri memiliki alur pengunjung dan kebutuhan operasional yang berbeda.", - "title21": "Satu platform,", - "title22": "Berbagai aplikasi untuk setiap kebutuhan.", - "desc2": "Penjualan tiket, check-in, hingga okupansi zona diperbarui secara real-time tanpa perlu menunggu untuk tahu apa yang sedang terjadi.", - "items": { - "themePark": { - "title": "Theme Park", - "desc": "Kelola wahana dan tiket harian dengan sistem antrean yang lebih efisien." - }, - "event": { - "title": "Event & Festival", - "desc": "Tangani ribuan pengunjung dengan penjualan tiket dan validasi akses yang cepat." - }, - "museum": { - "title": "Museum", - "desc": "Ciptakan pengalaman kunjungan yang lebih tertata melalui pengaturan jadwal dan kapasitas." - }, - "stadium": { - "title": "Stadium & Venue", - "desc": "Percepat proses masuk dengan validasi tiket yang akurat, bahkan saat antrean membludak." - }, - "exhibition": { - "title": "Exhibition", - "desc": "Fleksibel untuk pameran beberapa hari dengan pengaturan akses tiket yang terintegrasi." - } - }, - "apps": { - "online": { - "title": "Pemesanan Online", - "desc": "Kelola reservasi dan pembelian tiket dari berbagai kanal digital." - }, - "cashier": { - "title": "Beli di Kasir", - "desc": "Penjualan tiket di kasir untuk melayani pengunjung secara langsung." - }, - "pos": { - "title": "POS Offline (Multi Outlet)", - "desc": "Catat transaksi, redeem booking, dan operasikan kasir tanpa bergantung pada internet." - }, - "queue": { - "title": "Queue App", - "desc": "Membantu mengatur antrean masuk agar pengalaman pengunjung lebih nyaman." - }, - "admin": { - "title": "Web Admin", - "desc": "Pusat kontrol untuk mengelola data master, transaksi, dan sinkronisasi sistem." - } - } - }, - "Pricing": { - "title1": "Mulai sesuai kebutuhan,", - "title2": "berkembang tanpa batas", - "desc": "Tidak perlu membayar lebih untuk fitur yang tidak digunakan. Pilih paket yang paling sesuai, lalu tingkatkan kapan saja seiring berkembangnya operasional Anda.", - "contactUs": "Hubungi Kami", - "whatYouGet": "Yang kamu dapatkan", - "rental": { - "title": "Rental", - "tags": [ - "Event", - "Festival", - "Konser" - ], - "desc": "Solusi praktis untuk acara berdurasi pendek. Sewa perangkat dan sistem lengkap, siap pakai dalam hitungan hari.", - "f1": "Ticketing & QR check-in", - "f2": "Sewa perangkat gate & scanner", - "f3": "Dashboard monitoring real-time", - "f4": "Laporan pengunjung H+1", - "f5": "Setup & teardown cepat (siap H-1)" - }, - "subscription": { - "title": "Subscription", - "tags": [ - "Tempat wisata", - "Waterpark" - ], - "desc": "Model langganan bulanan untuk destinasi yang beroperasi setiap hari, tanpa investasi infrastruktur di awal.", - "f1": "Semua fitur Rental", - "f2": "Multi outlet & multi gate", - "f3": "Manajemen kuota & jadwal kunjungan", - "f4": "Dashboard operasional bulanan", - "f5": "Update fitur otomatis" - }, - "onPremise": { - "title": "On-Premise", - "tags": [ - "Enterprise", - "Instansi" - ], - "desc": "Sistem berjalan di server dan jaringan milik kamu sendiri, untuk kontrol penuh atas data dan keamanan.", - "f1": "Semua fitur Subscription", - "f2": "Instalasi di server lokal", - "f3": "Integrasi sistem internal (SSO, ERP)", - "f4": "Kontrol akses & keamanan lanjutan", - "f5": "Dukungan deployment khusus" - }, - "buyOut": { - "title": "Buy Out", - "tags": [ - "Perusahaan", - "Integrator", - "Developer" - ], - "desc": "Solusi dengan lisensi permanen untuk organisasi yang menginginkan implementasi jangka panjang dan kontrol operasional yang lebih luas.", - "f1": "Lisensi Permanen", - "f2": "Dokumentasi teknis lengkap", - "f3": "Pelatihan tim engineering internal", - "f4": "Bebas biaya lisensi berkelanjutan", - "f5": "Priority support 1 tahun pertama" - } - }, - "Contact": { - "eyebrow": "Hubungi kami", - "title": "Mari diskusikan kebutuhan operasional kamu", - "desc": "Tim kami siap membantu menentukan paket yang paling sesuai dengan skala dan jenis acara atau destinasi kamu.", - "email": "Email", - "phone": "Telepon / WhatsApp", - "office": "Kantor", - "form": { - "title": "Kirim pesan ke tim kami", - "name": "Nama lengkap", - "needs": "Ceritakan kebutuhan kamu", - "submit": "Kirim Pesan", - "note": "Tim kami merespons dalam 1x24 jam pada hari kerja.", - "placeholderName": "John Doe", - "placeholderEmail": "nama@perusahaan.com", - "placeholderNeeds": "Jenis acara atau destinasi, estimasi jumlah pengunjung, dan paket yang kamu pertimbangkan." - } - }, - "Footer": { - "desc": "Kelola tiket dan akses terintegrasi untuk taman hiburan, event, museum, dan venue di seluruh Indonesia.", - "links": "Quick Links", - "copyright": "Pintu Masuk. Seluruh hak cipta dilindungi." - } -} \ No newline at end of file diff --git a/apps/product-site/next.config.ts b/apps/product-site/next.config.ts deleted file mode 100644 index 815c259..0000000 --- a/apps/product-site/next.config.ts +++ /dev/null @@ -1,10 +0,0 @@ -import type { NextConfig } from "next"; -import createNextIntlPlugin from 'next-intl/plugin'; - -const withNextIntl = createNextIntlPlugin(); - -const nextConfig: NextConfig = { - /* config options here */ -}; - -export default withNextIntl(nextConfig); diff --git a/apps/product-site/package.json b/apps/product-site/package.json deleted file mode 100644 index c2626dd..0000000 --- a/apps/product-site/package.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "name": "product-site", - "version": "0.1.0", - "private": true, - "scripts": { - "copy:brand": "node ../../packages/brand/scripts/copy-brand-assets.js", - "dev": "pnpm run copy:brand && next dev", - "build": "pnpm run copy:brand && next build", - "start": "next start", - "lint": "eslint \"src/**/*.ts*\"", - "typecheck": "tsc --noEmit" - }, - "dependencies": { - "@repo/brand": "workspace:*", - "next": "16.2.12", - "next-intl": "^4.13.4", - "react": "19.2.4", - "react-dom": "19.2.4" - }, - "devDependencies": { - "@repo/eslint-config": "workspace:*", - "@repo/typescript-config": "workspace:*", - "@tailwindcss/postcss": "^4", - "@types/node": "^20", - "@types/react": "^19", - "@types/react-dom": "^19", - "eslint": "^9", - "eslint-config-next": "16.2.12", - "tailwindcss": "^4", - "typescript": "^5" - } -} diff --git a/apps/product-site/postcss.config.mjs b/apps/product-site/postcss.config.mjs deleted file mode 100644 index 61e3684..0000000 --- a/apps/product-site/postcss.config.mjs +++ /dev/null @@ -1,7 +0,0 @@ -const config = { - plugins: { - "@tailwindcss/postcss": {}, - }, -}; - -export default config; diff --git a/apps/product-site/src/app/[locale]/layout.tsx b/apps/product-site/src/app/[locale]/layout.tsx deleted file mode 100644 index c072e36..0000000 --- a/apps/product-site/src/app/[locale]/layout.tsx +++ /dev/null @@ -1,66 +0,0 @@ -import type { Metadata } from "next"; -import { Geist, Geist_Mono, Instrument_Sans } from "next/font/google"; -import { NextIntlClientProvider } from 'next-intl'; -import { getMessages, getTranslations } from 'next-intl/server'; -import { notFound } from 'next/navigation'; -import { routing } from '@/i18n/routing'; -import "../globals.css"; - -const geistSans = Geist({ - variable: "--font-geist-sans", - subsets: ["latin"], -}); - -const geistMono = Geist_Mono({ - variable: "--font-geist-mono", - subsets: ["latin"], -}); - -const instrumentSans = Instrument_Sans({ - variable: "--font-instrument-sans", - subsets: ["latin"], -}); - -export async function generateMetadata({ params }: { params: Promise<{ locale: string }> }): Promise { - const { locale } = await params; - const t = await getTranslations({ locale, namespace: 'Metadata' }); - return { - title: t('title'), - description: t('description'), - icons: { - icon: "/brand/favicon.svg" - } - }; -} - -export default async function RootLayout({ - children, - params, -}: Readonly<{ - children: React.ReactNode; - params: Promise<{ locale: string }>; -}>) { - const { locale } = await params; - if (!routing.locales.includes(locale as any)) { - notFound(); - } - - const messages = await getMessages(); - - return ( - - - - - - - {children} - - - - ); -} - diff --git a/apps/product-site/src/app/[locale]/page.tsx b/apps/product-site/src/app/[locale]/page.tsx deleted file mode 100644 index 1a903d8..0000000 --- a/apps/product-site/src/app/[locale]/page.tsx +++ /dev/null @@ -1,42 +0,0 @@ -import { Navbar } from '@/components/sections/Navbar'; -import { Hero } from '@/components/sections/Hero'; -import { Why } from '@/components/sections/Why'; -import { Ecosystem } from '@/components/sections/Ecosystem'; -import { Destinations } from '@/components/sections/Destinations'; -import { Dashboard } from '@/components/sections/Dashboard'; -import { Pricing } from '@/components/sections/Pricing'; -import { Contact } from '@/components/sections/Contact'; -import { Footer } from '@/components/sections/Footer'; - -export default function Page() { - return ( -
- {/* ============ FIXED NAV ============ */} - - - {/* ============ HERO ============ */} - - - {/* ============ WHY SECTION ============ */} - - - {/* ============ ECOSYSTEM / BENTO ============ */} - - - {/* ============ DESTINATIONS (carousel) ============ */} - - - {/* ============ DASHBOARD ============ */} - - - {/* ============ PRICING ============ */} - - - {/* ============ CONTACT ============ */} - - - {/* ============ FOOTER ============ */} -
-
- ); -} diff --git a/apps/product-site/src/app/globals.css b/apps/product-site/src/app/globals.css deleted file mode 100644 index d4f1b36..0000000 --- a/apps/product-site/src/app/globals.css +++ /dev/null @@ -1,2052 +0,0 @@ -@import 'tailwindcss'; - -@theme { - /* Orange Scale */ - --color-orange-50: #fef0e7; - --color-orange-100: #fedac1; - --color-orange-200: #fdc39b; - --color-orange-300: #fcaa75; - --color-orange-400: #fb924f; - --color-orange-500: #f66b0e; - --color-orange-600: #d65a06; - --color-orange-700: #ab4804; - --color-orange-800: #803603; - --color-orange-900: #552402; - - /* Lime Scale */ - --color-lime-50: #f7fee5; - --color-lime-100: #ecfcbe; - --color-lime-200: #dff997; - --color-lime-300: #d2f770; - --color-lime-400: #c6f449; - --color-lime-500: #b9f001; - --color-lime-600: #93bf00; - --color-lime-700: #6d8e00; - --color-lime-800: #475d00; - --color-lime-900: #222d00; - - /* Navy/Blue Scale */ - --color-blue-50: #eef3f6; - --color-blue-100: #d4e1ea; - --color-blue-200: #b9d0dd; - --color-blue-300: #9fbdd1; - --color-blue-400: #84acc4; - --color-blue-500: #699ab8; - --color-blue-600: #205375; - --color-blue-700: #1a425d; - --color-blue-800: #15354a; - --color-blue-900: #112b3c; - - /* Other Brand Colors */ - --color-cream-50: #f5f6f3; - --color-white-10: rgba(255, 255, 255, 0.1); - --color-ink-900: #112b3c; - --color-ink-600: #51606c; - --color-ink-400: #8b98a2; - --color-line: #e1e5e3; - --color-line-dark: rgba(255, 255, 255, 0.14); - - /* Fonts */ - --font-display: var(--font-instrument-sans), 'Instrument Sans', sans-serif; - --font-body: var(--font-geist-sans), 'Geist', sans-serif; - --font-mono: var(--font-geist-mono), 'IBM Plex Mono', monospace; - - /* Radii */ - --radius-2xl: 28px; - --radius-xl: 20px; - --radius-lg: 16px; - --radius-md: 12px; - --radius-sm: 8px; - --radius-full: 999px; - - /* Brand Scales */ - --color-brand-1-50: var(--color-blue-50); - --color-brand-1-100: var(--color-blue-100); - --color-brand-1-200: var(--color-blue-200); - --color-brand-1-300: var(--color-blue-300); - --color-brand-1-400: var(--color-blue-400); - --color-brand-1-500: var(--color-blue-500); - --color-brand-1-600: var(--color-blue-600); - --color-brand-1-700: var(--color-blue-700); - --color-brand-1-800: var(--color-blue-800); - --color-brand-1-900: var(--color-blue-900); - - --color-brand-2-50: var(--color-orange-50); - --color-brand-2-100: var(--color-orange-100); - --color-brand-2-200: var(--color-orange-200); - --color-brand-2-300: var(--color-orange-300); - --color-brand-2-400: var(--color-orange-400); - --color-brand-2-500: var(--color-orange-500); - --color-brand-2-600: var(--color-orange-600); - --color-brand-2-700: var(--color-orange-700); - --color-brand-2-800: var(--color-orange-800); - --color-brand-2-900: var(--color-orange-900); - - --color-brand-3-50: var(--color-lime-50); - --color-brand-3-100: var(--color-lime-100); - --color-brand-3-200: var(--color-lime-200); - --color-brand-3-300: var(--color-lime-300); - --color-brand-3-400: var(--color-lime-400); - --color-brand-3-500: var(--color-lime-500); - --color-brand-3-600: var(--color-lime-600); - --color-brand-3-700: var(--color-lime-700); - --color-brand-3-800: var(--color-lime-800); - --color-brand-3-900: var(--color-lime-900); -} - -@layer base { - * { - box-sizing: border-box; - } - - html { - scroll-behavior: smooth; - } - - body { - margin: 0; - font-family: var(--font-body); - color: var(--color-ink-900); - background: var(--color-white); - -webkit-font-smoothing: antialiased; - } - - h1, - h2, - h3, - h4 { - font-family: var(--font-display); - margin: 0; - letter-spacing: -0.02em; - color: var(--color-ink-900); - font-weight: 700; - } - - p { - margin: 0; - } - ul { - margin: 0; - padding: 0; - list-style: none; - } - svg { - display: block; - } - img { - max-width: 100%; - display: block; - } - button { - font-family: inherit; - } - - a:focus-visible, - button:focus-visible, - input:focus-visible, - textarea:focus-visible { - outline: 2px solid var(--color-brand-2-500); - outline-offset: 2px; - } -} - -/* Animations that are hard to replicate purely via utility classes */ -@layer utilities { - - - .drift-a { - animation: driftA 7s ease-in-out infinite; - } - - .drift-b { - animation: driftB 8s ease-in-out infinite; - } - - @keyframes driftA { - 0%, - 100% { - transform: translateX(0); - } - 50% { - transform: translateX(-210px); - } - } - - @keyframes driftB { - 0%, - 100% { - transform: translateX(-24px); - } - 50% { - transform: translateX(10px); - } - } - - .chip-pulse { - animation: chipPulse 2.6s ease-out infinite; - } - - @keyframes chipPulse { - 0% { - transform: scale(1); - } - 50% { - transform: scale(1.05); - } - 100% { - transform: scale(1); - } - } - - /* Specific background overlays that need psuedo elements */ - .hero-bg { - background-image: radial-gradient(circle, rgba(255, 255, 255, 0.09) 1.3px, transparent 1px); - background-size: 22px 22px; - } - - .hero-bg::before { - content: ''; - position: absolute; - top: 0; - right: 0; - width: 46%; - height: 100%; - background: linear-gradient(155deg, var(--color-brand-1-600) 0%, var(--color-brand-1-900) 55%); - clip-path: polygon(38% 0, 100% 0, 100% 100%, 68% 100%); - opacity: 0.9; - pointer-events: none; - } - - .why-card-decorator { - position: relative; - overflow: hidden; - } - - .why-card-decorator::after { - content: ''; - position: absolute; - right: -65px; - bottom: -85px; - width: 150px; - height: 150px; - border-radius: 20%; - background: var(--color-brand-2-500); - transform: rotate(-29deg); - } - - .why-card-decorator::before { - content: ''; - position: absolute; - top: -22px; - right: -106px; - width: 172px; - height: 178px; - border-radius: 20%; - background: linear-gradient(170deg, var(--color-brand-1-600) 0%, var(--color-brand-1-900) 85%); - transform: rotate(-16deg); - } -} - -@media (prefers-reduced-motion: reduce) { - * { - animation: none !important; - transition: none !important; - } -} - -.container { - width: 100%; - max-width: 1180px; - margin: 0 auto; - padding: 0 32px; -} - -.container-lg { - width: 100%; - max-width: 1480px; - margin: 0 auto; - padding: 0 18px; -} - -/* ---------- Buttons ---------- */ -.btn { - display: inline-flex; - align-items: center; - gap: 8px; - padding: 13px 22px; - border-radius: var(--radius-sm); - font-family: var(--font-body); - font-weight: 600; - font-size: 14px; - border: none; - cursor: pointer; - transition: - transform 0.15s ease, - background 0.15s ease; -} - -.btn:hover { - transform: translateY(-1px); -} - -.btn-orange { - background: var(--color-brand-2-500); - color: var(--color-white); -} - -.btn-navy { - background: var(--color-brand-1-600); - color: var(--color-white); -} - -.btn-border-orange { - border: 1px solid var(--color-brand-2-500); - color: var(--color-white); -} - -.btn-orange:hover { - background: var(--color-brand-2-600); -} - -.btn-orange svg { - stroke: var(--color-white); -} - -.btn-icon-circle { - width: 20px; - height: 20px; - border-radius: 50%; - background: rgba(255, 255, 255, 0.25); - display: inline-flex; - align-items: center; - justify-content: center; - flex-shrink: 0; -} - -.btn-icon-circle i { - font-size: 12px; - color: #fff; - line-height: 1; -} - -.eyebrow { - display: inline-flex; - align-items: center; - gap: 8px; - font-size: 13px; - font-weight: 600; - letter-spacing: 0.02em; - font-family: var(--font-body); -} - -.eyebrow-light { - color: var(--color-line); -} - -.eyebrow-pill { - border: 1px solid rgba(255, 255, 255, 0.25); - background-color: var(--color-white-10); - border-radius: var(--radius-full); - padding: 9px 18px 9px 14px; -} - -.dot { - width: 6px; - height: 6px; - border-radius: 50%; - background: var(--color-white); - flex-shrink: 0; -} - -.dot-orange { - width: 6px; - height: 6px; - border-radius: 50%; - background: var(--color-brand-2-500); - flex-shrink: 0; -} - -/* ---------- Nav ---------- */ -.nav-wrapper { - position: fixed; - top: 0; - left: 0; - width: 100%; - z-index: 1000; - pointer-events: none; /* Let clicks pass through empty space */ -} - -.nav-wrapper .container { - pointer-events: auto; /* Enable clicks on the nav itself */ -} - -.nav { - display: flex; - align-items: center; - justify-content: space-between; - padding: 26px 0; - border-radius: var(--radius-md); - margin-top: 0; - border: 1px solid transparent; - transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1); -} - -.nav-wrapper.floating .nav { - margin-top: 16px; - background: var(--color-brand-1-900); - backdrop-filter: blur(14px); - -webkit-backdrop-filter: blur(14px); - border: 1px solid rgba(255, 255, 255, 0.1); - padding: 12px 26px; - box-shadow: 0 24px 48px -20px rgba(0, 0, 0, 0.55); -} - -.brand { - display: flex; - align-items: center; - gap: 10px; -} - -.brand-mark { - /* height: 34px; */ - width: 150px; - border-radius: var(--radius-md); - display: flex; - align-items: center; - justify-content: center; -} - -.brand-name { - background-image: url('/brand/logo.png'); - font-family: var(--font-body); - font-weight: 700; - font-size: 16.5px; -} - -.nav-links { - display: flex; - align-items: center; - gap: 32px; -} - -.nav-divider { - width: 1px; - height: 24px; - background-color: rgba(255, 255, 255, 0.2); -} - -.nav-links a { - font-family: var(--font-body); - font-size: 14px; - font-weight: 500; - opacity: 0.85; -} - -.nav-links a:hover { - opacity: 1; -} - -.nav-toggle { - display: none; - background: none; - border: none; - cursor: pointer; - padding: 4px; -} - -/* ---------- Hero ---------- */ -.hero { - position: relative; - background: var(--color-brand-1-900); - background-image: radial-gradient(circle, rgba(255, 255, 255, 0.09) 1.3px, transparent 1px); - background-size: 22px 22px; - overflow: hidden; -} - -.hero::before { - content: ''; - position: absolute; - top: 0; - right: 0; - width: 46%; - height: 100%; - background: linear-gradient(155deg, var(--color-brand-1-600) 0%, var(--color-brand-1-900) 55%); - clip-path: polygon(38% 0, 100% 0, 100% 100%, 68% 100%); - opacity: 0.9; - pointer-events: none; -} - -.hero-inner { - position: relative; - z-index: 2; - padding: 94px 0 64px; -} - -.hero h1 { - color: var(--color-white); - font-size: 60px; - line-height: 1.08; - font-weight: 800; - margin-top: 44px; -} - -.stat-row { - display: grid; - grid-template-columns: repeat(4, 1fr); - gap: 16px; - margin: 44px 0px; -} - -.stat-card { - background: var(--color-white); - border-radius: var(--radius-lg); - display: flex; - flex-direction: column; - justify-content: space-between; - padding: 18px 18px 16px; - box-shadow: 0 20px 40px -18px rgba(0, 0, 0, 0.45); -} - -.stat-icon { - width: 42px; - height: 42px; - border-radius: var(--radius-sm); - background: var(--color-cream-50); - display: flex; - align-items: center; - justify-content: center; - margin-bottom: 14px; -} - -.stat-icon svg { - width: 18px; - height: 18px; - stroke: var(--color-brand-1-900); -} - -.stat-icon i { - font-size: 18px; - color: var(--color-brand-1-900); - line-height: 1; -} - -.stat-label { - font-size: 12px; - color: var(--color-ink-400); - text-transform: uppercase; - font-family: var(--font-mono); -} - -.stat-value { - font-family: var(--font-body); - font-weight: 800; - font-size: 36px; - margin-top: 6px; -} - -.stat-value span { - font-size: 12px; - font-weight: 600; - color: var(--color-ink-400); - margin-left: 3px; -} - -.stat-sub { - font-size: 14px; - color: var(--color-ink-400); - margin-top: 4px; -} - -.stat-bars { - display: flex; - align-items: flex-end; - gap: 3px; - height: 48px; - margin-bottom: 12px; -} - -.stat-bars span { - width: 16px; - border-radius: 2px; - background: var(--color-brand-3-400); - display: block; -} - -.hero-body { - max-width: 720px; -} - -.hero-body p { - color: rgba(255, 255, 255, 0.62); - font-size: 18px; - line-height: 1.7; - margin-top: 14px; -} - -.hero-body .btn { - margin-top: 26px; -} - -/* ---------- Why section ---------- */ -.why { - padding: 120px 0 100px; -} - -.why-grid { - display: grid; - grid-template-columns: 0.85fr 1fr; - gap: 64px; - align-items: start; -} - -.why h2 { - font-size: 34px; - line-height: 1.18; -} - -.why-grid p { - color: var(--color-ink-600); - font-size: 15px; - line-height: 1.75; - margin-top: 18px; - max-width: 420px; -} - -.why-arrow { - margin-top: 56px; - width: 58px; - height: 58px; - border-radius: var(--radius-lg); - background: var(--color-cream-50); - display: flex; - align-items: center; - justify-content: center; -} - -.why-arrow i.uil { - font-size: 24px; - color: var(--color-brand-1-600); -} - -/* sticky headline: stays in view while the 3 point-cards scroll past on the right */ -.why-sticky { - position: sticky; - top: 168px; -} - -.why-cards { - display: flex; - flex-direction: column; - gap: 28px; -} -.why-card { - position: relative; - background: var(--color-cream-50); - border-radius: var(--radius-xl); - padding: 30px 32px; - overflow: hidden; -} - -.why-card::after { - content: ''; - position: absolute; - right: -65px; - bottom: -85px; - width: 150px; - height: 150px; - border-radius: 20%; - background: var(--color-brand-2-500); - transform: rotate(-29deg); -} - -.why-card::before { - content: ''; - position: absolute; - top: -22px; - right: -106px; - width: 172px; - height: 178px; - border-radius: 20%; - background: linear-gradient(170deg, var(--color-brand-1-600) 0%, var(--color-brand-1-900) 85%); - transform: rotate(-16deg); -} - -.why-card-icon { - width: 38px; - height: 38px; - border-radius: var(--radius-md); - background: var(--color-white); - display: flex; - align-items: center; - justify-content: center; - margin-bottom: 20px; - position: relative; - z-index: 1; -} - -.why-card-icon svg { - width: 18px; - height: 18px; - stroke: var(--color-brand-1-900); -} - -.why-card h3 { - font-size: 18px; - position: relative; - margin-top: 42px; - z-index: 1; -} - -.why-card p { - font-size: 14px; - color: var(--color-ink-600); - line-height: 1.65; - margin-top: 8px; - max-width: 78%; - position: relative; - z-index: 1; -} - -/* ---------- Ecosystem / bento ---------- */ -.ecosystem { - padding: 100px 0 120px; - background: var(--color-white); -} - -.ecosystem-head { - text-align: center; - max-width: 640px; - margin: 0 auto 56px; -} - -.ecosystem-head h2 { - font-size: 32px; -} - -.ecosystem-head p { - color: var(--color-ink-600); - font-size: 15px; - line-height: 1.7; - margin-top: 14px; -} - -.bento { - display: grid; - grid-template-columns: 1fr 1fr; - gap: 20px; - grid-auto-rows: 1fr; -} - -.bento-card { - background: var(--color-cream-50); - border-radius: var(--radius-md); - padding: 32px 34px; - min-height: 360px; - min-width: 0; - width: 100%; - display: flex; - flex-direction: column; - justify-content: space-between; -} - -.bento-card h3 { - font-size: 20px; -} - -.bento-card > p { - font-size: 14px; - color: var(--color-ink-600); - line-height: 1.65; - margin-top: 8px; - max-width: auto; -} - -.bento-illustration { - margin-bottom: 24px; - flex: 1; - display: flex; - flex-direction: column; - justify-content: center; -} - -/* ticketing pills — ambient marquee drift */ -.ticket-rows { - display: flex; - flex-direction: column; - justify-content: end; - flex: 1; - gap: 18px; -} - -.ticket-row { - position: relative; - overflow: hidden; -} - -.ticket-row::before, -.ticket-row::after { - content: ''; - position: absolute; - top: 0; - bottom: 0; - width: 26px; - z-index: 2; -} - -.ticket-row::before { - left: 0; - background: linear-gradient(to right, var(--color-cream-50), transparent); -} - -.ticket-row::after { - right: 0; - background: linear-gradient(to left, var(--color-cream-50), transparent); -} - -.ticket-track { - display: flex; - gap: 8px; - white-space: nowrap; -} - -.ticket-track.drift-a { - animation: driftA 7s ease-in-out infinite; -} - -.ticket-track.drift-b { - animation: driftB 8s ease-in-out infinite; -} - -@keyframes driftA { - 0%, - 100% { - transform: translateX(0); - } - - 50% { - transform: translateX(-210px); - } -} - -@keyframes driftB { - 0%, - 100% { - transform: translateX(-24px); - } - - 50% { - transform: translateX(10px); - } -} - -.pill { - border-radius: var(--radius-sm); - padding: 12px; - font-size: 12px; - font-weight: 600; - font-family: var(--font-mono); - display: inline-flex; - align-items: center; -} -.pill-navy { - background: var(--color-brand-1-900); - color: var(--color-white); -} -.pill-outline { - background: transparent; - border: 1px solid var(--color-line); - color: var(--color-ink-400); -} -.pill-lime { - background: var(--color-brand-3-400); - color: var(--color-brand-1-900); -} -.pill-orange { - background: var(--color-brand-2-500); - color: var(--color-white); -} - -.ticket-track .pill { - position: relative; - padding-left: 16px; - padding-right: 16px; -} - -.ticket-track .pill::before, -.ticket-track .pill::after { - content: ''; - position: absolute; - top: 50%; - width: 12px; - height: 12px; - border-radius: 50%; - background: var(--color-cream-50); - transform: translateY(-50%); -} -.ticket-track .pill::before { - left: -4px; -} -.ticket-track .pill::after { - right: -4px; -} - -/* access management */ -.access-illustration { - display: flex; - flex-direction: row; - align-items: center; - gap: 48px; - justify-content: left; -} - -.chip-row { - display: flex; - gap: 12px; -} - -.chip { - width: 86px; - height: 122px; - padding: 16px 0; - border-radius: var(--radius-lg); - display: flex; - flex-direction: column; - align-items: center; - justify-content: space-between; - gap: 6px; - border: 1px solid var(--color-line); -} - -.chip i { - font-size: 26px; - color: var(--color-brand-1-900); -} - -.chip span { - font-size: 12px; - color: var(--color-ink-400); - text-align: center; - font-weight: 600; - font-family: var(--font-mono); -} - -.chip.active { - background: var(--color-brand-3-400); - /* border-color: var(--color-brand-1-900); */ - animation: chipPulse 2.6s ease-out infinite; -} - -.chip.active svg { - stroke: var(--color-brand-1-900); -} - -.chip.active span { - color: var(--color-brand-1-900); -} - -@keyframes chipPulse { - 0%, - 100% { - box-shadow: 0 0 0 0 rgba(185, 240, 1, 0.55); - } - - 50% { - box-shadow: 0 0 0 9px rgba(185, 240, 1, 0); - } -} - -.ring-wrap { - position: relative; - width: 140px; - height: 140px; - flex-shrink: 0; -} - -.ring-wrap .ring-text { - position: absolute; - inset: 0; - display: flex; - flex-direction: column; - align-items: center; - justify-content: center; -} - -.ring-text b { - font-size: 15px; - font-family: var(--font-body); -} - -.ring-text small { - font-size: 8.5px; - color: var(--color-ink-400); -} - -.ring-progress { - stroke-dasharray: 0 213.6; - transition: stroke-dasharray 1.2s cubic-bezier(0.16, 0.8, 0.44, 1); -} - -/* report bars — reveal on scroll */ -.report-bars { - display: flex; - flex-direction: column; - justify-content: end; - gap: 18px; - flex: 1; -} - -.report-bar-row { - display: flex; - align-items: center; - gap: 16px; -} - -.report-bar { - height: 42px; - border-radius: var(--radius-full); - flex-shrink: 0; - width: 0; - transition: width 1.1s cubic-bezier(0.16, 0.8, 0.44, 1); -} - -.report-bar-value b { - display: block; - font-size: 14px; - font-family: var(--font-body); -} - -.report-bar-value small { - font-size: 10px; - color: var(--color-ink-400); -} - -/* visitor operations */ -.visitor-illustration { - margin-bottom: 22px; -} - -.avatar-row { - display: flex; - align-items: center; - gap: 12px; - margin-bottom: 16px; -} - -.avatar-stack { - display: flex; -} - -.avatar { - width: 28px; - height: 28px; - border-radius: 50%; - border: 2px solid var(--color-cream-50); - margin-left: -9px; - display: flex; - align-items: center; - justify-content: center; -} - -.avatar:first-child { - margin-left: 0; -} - -.avatar-row span { - font-size: 12px; - color: var(--color-ink-600); -} - -.zone-grid { - display: grid; - grid-template-columns: repeat(4, 92px); - gap: 12px; -} - -.zone-cell { - height: 84px; - border-radius: var(--radius-md); - animation: zonePulse 2.8s ease-in-out infinite; -} - -.zone-cell:nth-child(1) { - animation-delay: 0s; -} - -.zone-cell:nth-child(2) { - animation-delay: 0.15s; -} - -.zone-cell:nth-child(3) { - animation-delay: 0.3s; -} - -.zone-cell:nth-child(4) { - animation-delay: 0.45s; -} - -.zone-cell:nth-child(5) { - animation-delay: 0.6s; -} - -.zone-cell:nth-child(6) { - animation-delay: 0.75s; -} - -.zone-cell:nth-child(7) { - animation-delay: 0.9s; -} - -.zone-cell:nth-child(8) { - animation-delay: 1.05s; -} - -@keyframes zonePulse { - 0%, - 100% { - opacity: 1; - } - - 50% { - opacity: 0.4; - } -} - -.bento-r1 { - grid-column: 1/2; - grid-row: 1/2; -} - -.bento-r2 { - grid-column: 2/3; - grid-row: 1/2; -} - -.bento-r3 { - grid-column: 1/2; - grid-row: 2/3; -} - -.bento-r4 { - grid-column: 2/3; - grid-row: 2/3; -} - -/* ---------- Destinations (carousel) ---------- */ -.destinations { - background-color: var(--color-brand-1-900); - background-image: - radial-gradient(circle, rgba(255, 255, 255, 0.07) 1px, transparent 1px), - linear-gradient(160deg, var(--color-brand-1-600) 0%, var(--color-brand-1-900) 70%); - background-size: - 22px 22px, - 100% 100%; - padding: 110px 0 90px; - height: 680px; -} - -.destinations-head-row { - display: flex; - justify-content: space-between; - align-items: flex-end; - gap: 24px; - margin-bottom: 44px; - flex-wrap: wrap; -} - -.destinations-head { - max-width: 600px; -} - -.destinations-head h2 { - width: 420px; - color: var(--color-white); - font-size: 32px; - line-height: 1.2; -} - -.destinations-head p { - color: rgba(255, 255, 255, 0.6); - font-size: 15px; - line-height: 1.7; - margin-top: 14px; -} - -.dest-controls { - display: flex; - gap: 10px; - flex-shrink: 0; -} - -.dest-btn { - width: 44px; - height: 44px; - border-radius: 50%; - border: 1px solid var(--color-line-dark); - background: transparent; - display: flex; - align-items: center; - justify-content: center; - cursor: pointer; - transition: background 0.15s; -} - -.dest-btn:hover { - background: rgba(255, 255, 255, 0.08); -} - -.dest-btn i { - font-size: 28px; - color: #fff; -} - -.dest-viewport { - overflow: hidden; - padding: 52px 0 46px; - /* generous vertical room so the active card's shadow/lift never gets clipped */ - margin: -24px 0 -46px; -} - -.dest-track { - display: flex; - gap: 16px; - will-change: transform; - transition: transform 0.5s cubic-bezier(0.16, 0.8, 0.44, 1); -} - -.dest-track.no-anim { - transition: none; -} - -.dest-card { - flex: 0 0 auto; - width: 200px; - cursor: pointer; - background: var(--color-brand-1-600); - border: 1px solid var(--color-line-dark); - border-radius: var(--radius-xl); - padding: 30px 22px; - min-height: 216px; - display: flex; - flex-direction: column; - justify-content: space-between; - transition: - background 0.4s ease, - transform 0.5s cubic-bezier(0.16, 0.8, 0.44, 1), - box-shadow 0.4s ease, - width 0.5s cubic-bezier(0.16, 0.8, 0.44, 1); - cursor: pointer; -} - -.dest-card h4 { - color: var(--color-white); - font-size: 18px; -} - -.dest-card p { - color: rgba(255, 255, 255, 0.6); - font-size: 14px; - line-height: 1.6; - margin-top: 8px; -} - -.dest-icon { - width: 40px; - height: 40px; - border-radius: var(--radius-md); - background: rgba(255, 255, 255, 0.1); - display: flex; - align-items: center; - justify-content: center; - order: 2; - margin-top: 18px; -} - -.dest-icon i { - font-size: 24px; - color: var(--color-brand-1-600); -} - -/* NOTE: width/padding/min-height are intentionally NOT changed here — animating those - forces layout reflow every frame and is what made this carousel feel janky before. - The "active" look is done with transform:scale (GPU-only) so width stays fixed at - 228px for every card, which the carousel JS's position math also depends on. */ -.dest-card.active { - background: var(--color-white); - box-shadow: 0 30px 60px -20px rgba(0, 0, 0, 0.5); - transform: translateY(-20px) scale(1.045); - width: 320px; -} - -.dest-card.active h4 { - color: var(--color-brand-1-900); -} - -.dest-card.active p { - color: var(--color-ink-600); -} - -.dest-card.active .dest-icon { - background: var(--color-brand-3-400); -} - -.dest-card.active .dest-icon i { - color: var(--color-brand-1-900); -} - -.dest-dots { - display: flex; - justify-content: center; - gap: 8px; - margin-top: 36px; -} - -.dest-dots button { - width: 7px; - height: 7px; - padding: 0; - border: none; - border-radius: 50%; - background: rgba(255, 255, 255, 0.25); - cursor: pointer; - transition: - width 0.25s, - background 0.25s; -} - -.dest-dots button.on { - background: var(--color-brand-2-500); - width: 20px; - border-radius: 4px; -} - -/* ---------- Dashboard Showcase ---------- */ -.dash-showcase { - padding: 112px 0 118px; - background: var(--color-white); -} -.dash-head { - max-width: 640px; - margin: 0 0 52px auto; - text-align: right; -} -.dash-head h2 { - font-size: 32px; - line-height: 1.25; -} -.dash-head p { - color: var(--color-ink-600); - font-size: 15px; - line-height: 1.7; - margin-top: 14px; -} - -/* business-flow diagram: online booking / direct cashier both funnel into -POS Offline, which registers the visitor into Queue App, syncing into -Web Admin once online. */ -.dash-flow { - display: flex; - align-items: center; - justify-content: center; - gap: 0; -} -.dash-flow-row { - display: flex; - flex-direction: column; - gap: 16px; - flex-shrink: 0; -} - -.dash-source-card { - background: var(--color-cream-50); - border: 1px solid var(--color-line); - border-radius: var(--radius-xl); - padding: 22px 22px; - text-align: left; - transition: - transform 0.2s ease, - box-shadow 0.2s ease, - border-color 0.2s ease; -} -/* NEW: hover effect — card lifts with a soft shadow and an accent-colored border */ -.dash-source-card:hover { - transform: translateY(-5px); - box-shadow: 0 22px 40px -22px rgba(17, 43, 60, 0.3); - border-color: var(--color-brand-1-600); -} -.dash-source-card.accent:hover { - border-color: var(--color-brand-3-400); - box-shadow: 0 22px 40px -18px rgba(0, 0, 0, 0.45); -} -.dash-source-card.wide { - max-width: 230px; - min-width: 180px; -} -.dash-source-card.accent { - background: var(--color-brand-1-900); - border-color: var(--color-brand-1-900); - color: var(--color-brand-3-400); -} -.dash-source-card.accent h4 { - color: var(--color-white); -} -.dash-source-card.accent p { - color: rgba(255, 255, 255, 0.62); -} -.dash-source-card.accent .dash-source-icon { - background: rgba(255, 255, 255, 0.1); -} -.dash-source-card.accent .dash-source-icon svg { - stroke: var(--color-brand-3-400); -} - -.dash-source-icon { - width: 40px; - height: 40px; - border-radius: var(--radius-md); - background: var(--color-white); - display: flex; - align-items: center; - justify-content: center; - margin-bottom: 14px; - flex-shrink: 0; -} -.dash-source-icon i { - font-size: 18px; -} -.dash-source-card h4 { - font-size: 14px; -} -.dash-source-card p { - font-size: 12px; - color: var(--color-ink-600); - line-height: 1.55; - margin-top: 6px; -} - -/* animated dashed connector between flow steps */ -/* CHANGED: connector arrows — thicker, curved, animated navy→orange gradient stroke (was a flat straight ink-400 dash) */ -.dash-flow-arrow { - display: flex; - align-items: center; - justify-content: center; - flex-shrink: 0; - width: 44px; -} -.dash-flow-arrow svg.flow-curve { - width: 100%; - height: 20px; - overflow: visible; -} -.flow-dash { - fill: none; - stroke: url(#flowGrad); - stroke-width: 3; - stroke-linecap: round; - stroke-dasharray: 5 7; - vector-effect: non-scaling-stroke; - animation: flowDash 1s linear infinite; -} -.flow-head { - fill: none; - stroke: var(--color-brand-2-500); - stroke-width: 3; - stroke-linecap: round; - stroke-linejoin: round; - vector-effect: non-scaling-stroke; -} -@keyframes flowDash { - to { - stroke-dashoffset: -24; - } -} - -/* NEW: merge connector — two separate curved arrows (Order Online + Buy at Cashier) flowing into POS Offline */ -.dash-flow-merge { - align-self: stretch; - flex-shrink: 0; - width: 60px; - min-height: 150px; -} -.dash-flow-merge svg.flow-curve { - width: 100%; - height: 100%; - overflow: visible; -} - -/* NEW: plain animated arrow (uil-style chevron) shown only on mobile in place of the curved gradient connector */ -.flow-simple { - display: none; - align-items: center; - justify-content: center; - width: 100%; - height: 100%; - color: var(--color-brand-2-500); -} -.flow-simple i { - font-size: 24px; - margin: 12px 0px; - animation: flowBounce 1.2s ease-in-out infinite; -} -@keyframes flowBounce { - 0%, - 100% { - transform: translateY(-3px); - opacity: 0.55; - } - 50% { - transform: translateY(4px); - opacity: 1; - } -} - -@media (max-width: 900px) { - .dash-head { - text-align: left; - margin: 0 0 44px; - } - .dash-flow { - flex-direction: column; - align-items: stretch; - } - .dash-flow-row { - flex-direction: row; - flex-wrap: wrap; - } - - .dash-source-icon { - align-items: center; - } - .dash-source-card.wide { - text-align: center; - max-width: none; - flex: 1 1; - justify-items: center; - height: 100%; - } - .dash-flow-arrow { - width: 100%; - /* height: 34px; */ - } - .dash-flow-merge { - width: 100%; - min-height: 34px; - } - .flow-curve { - display: none; - } - .flow-simple { - display: flex; - } -} - -/* ---------- Pricing ---------- */ -.pricing { - background-color: var(--color-brand-1-900); - background-image: - radial-gradient(circle, rgba(255, 255, 255, 0.06) 2px, transparent 1px), - linear-gradient(160deg, var(--color-brand-1-600) 0%, var(--color-brand-1-900) 70%); - background-size: - 22px 22px, - 100% 100%; - padding: 112px 0 120px; -} - -.pricing-head { - text-align: center; - max-width: 620px; - margin: 0 auto 52px; -} - -.pricing-head h2 { - color: var(--color-white); - font-size: 32px; -} - -.pricing-head p { - color: rgba(255, 255, 255, 0.6); - font-size: 15px; - line-height: 1.7; - margin-top: 14px; -} - -.pricing-grid { - display: grid; - grid-template-columns: repeat(4, 1fr); - gap: 18px; -} - -.price-card { - background: var(--color-white); - border-radius: var(--radius-md); - padding: 22px 20px 24px; - display: flex; - flex-direction: column; - border: 1px solid transparent; - transition: - transform 0.3s cubic-bezier(0.16, 0.8, 0.44, 1), - box-shadow 0.3s ease, - border-color 0.3s ease; -} - -.price-card:hover { - transform: translateY(-6px); - box-shadow: 0 30px 60px -24px rgba(17, 43, 60, 0.35); - border-color: var(--color-brand-2-500); -} - -.price-card:hover .btn-orange { - background: var(--color-brand-1-900); -} - -.price-card h3 { - font-size: 18px; - margin-bottom: 14px; -} - -.price-tags { - display: flex; - flex-wrap: wrap; - gap: 2px; - margin-bottom: 18px; - min-height: 42px; -} - -.tag { - font-size: 10px; - height: fit-content; - font-weight: 600; - color: var(--color-white); - border: 1px solid var(--color-line); - border-radius: var(--radius-full); - padding: 4px 10px; - background-color: var(--color-brand-1-600); - font-family: var(--font-body); -} - -.price-desc { - min-height: 20px; - font-size: 13px; - color: var(--color-ink-600); - line-height: 1.6; - margin-bottom: 20px; -} - -.price-card .btn-orange { - width: 100%; - justify-content: center; - margin-bottom: 22px; - transition: - transform 0.15s ease, - background 0.2s ease; -} - -.price-card .feat-label { - font-size: 11.5px; - font-weight: 700; - color: var(--color-ink-400); - text-transform: uppercase; - letter-spacing: 0.03em; - margin-bottom: 12px; - display: block; - font-family: var(--font-body); -} - -.feat-list { - display: flex; - flex-direction: column; - gap: 10px; -} - -.feat-list li { - display: flex; - align-items: flex-start; - gap: 8px; - font-size: 13px; - color: var(--color-ink-600); - line-height: 1.5; -} - -.feat-list svg { - width: 15px; - height: 15px; - stroke: var(--color-brand-2-500); - flex-shrink: 0; - margin-top: 2px; -} - -/* ---------- Contact ---------- */ -.contact { - background: var(--color-cream-50); - padding: 110px 0; -} - -.contact-card { - display: grid; - grid-template-columns: 0.9fr 1.1fr; - border-radius: var(--radius-2xl); - overflow: hidden; - box-shadow: 0 30px 60px -32px rgba(17, 43, 60, 0.3); -} - -.contact-info { - background-color: var(--color-brand-1-900); - background-image: - radial-gradient(circle, rgba(255, 255, 255, 0.07) 1.8px, transparent 1px), - linear-gradient(160deg, var(--color-brand-1-600) 0%, var(--color-brand-1-900) 75%); - background-size: - 28px 28px, - 100% 100%; - padding: 52px 46px; - position: relative; - overflow: hidden; -} - -.contact-info h2 { - color: var(--color-white); - font-size: 27px; - line-height: 1.25; - position: relative; - z-index: 1; -} - -.contact-info > p { - color: rgba(255, 255, 255, 0.62); - margin-top: 14px; - font-size: 14px; - line-height: 1.7; - max-width: 394px; - position: relative; - z-index: 1; -} - -.contact-list { - margin-top: 36px; - display: flex; - flex-direction: column; - gap: 20px; - position: relative; - z-index: 1; -} - -.contact-item { - display: flex; - gap: 14px; - align-items: flex-start; -} - -.contact-item .ci-icon { - width: 38px; - height: 38px; - border-radius: var(--radius-md); - background: rgba(255, 255, 255, 0.08); - display: flex; - align-items: center; - justify-content: center; - flex-shrink: 0; -} - -.contact-item i { - font-size: 14px; - color: white; -} - -.contact-item b { - display: block; - font-size: 14px; - color: var(--color-white); - font-family: var(--font-body); - font-weight: 600; -} - -.contact-item span { - font-size: 12px; - color: rgba(255, 255, 255, 0.58); -} - -.contact-form { - background: var(--color-white); - padding: 52px 46px; -} - -.contact-form h3 { - font-size: 16px; - margin-bottom: 22px; -} - -.field-row { - display: grid; - grid-template-columns: 1fr 1fr; - gap: 16px; -} - -.field { - margin-bottom: 16px; -} - -.field label { - font-size: 12px; - font-weight: 600; - color: var(--color-ink-900); - margin-bottom: 6px; - display: block; - font-family: var(--font-body); -} - -.field input, -.field textarea { - width: 100%; - border: 1px solid var(--color-line); - border-radius: var(--radius-md); - padding: 12px 14px; - font-family: var(--font-body); - font-size: 14px; - color: var(--color-ink-900); - background: var(--color-cream-50); - transition: - border-color 0.15s ease, - background 0.15s ease; -} - -.field input:hover, -.field textarea:hover { - border-color: #c7cdc9; -} - -.field input:focus, -.field textarea:focus { - outline: none; - border-color: var(--color-brand-2-500); - background: var(--color-white); - box-shadow: 0 0 0 3px rgba(246, 107, 14, 0.12); -} - -.field textarea { - min-height: 110px; - resize: vertical; -} - -.contact-form .btn-orange { - width: 100%; - justify-content: center; - margin-top: 4px; -} - -.form-note { - font-size: 11.5px; - color: var(--color-ink-400); - margin-top: 12px; - text-align: center; -} - -@media (max-width: 520px) { - .field-row { - grid-template-columns: 1fr; - } -} - -/* ---------- Footer ---------- */ -.footer { - background-color: var(--color-brand-1-900); - background-image: linear-gradient(160deg, var(--color-brand-1-600) 0%, var(--color-brand-1-900) 65%); - border-top: 1px solid var(--color-line-dark); - padding: 56px 0 28px; -} - -.footer-top { - display: flex; - justify-content: space-between; - gap: 40px; - flex-wrap: wrap; - margin-bottom: 44px; -} - -.footer-brand p { - color: rgba(255, 255, 255, 0.5); - font-size: 14px; - line-height: 1.7; - margin-top: 14px; - max-width: 360px; -} - -.footer-brand p.address { - margin-top: 54px; -} - -.footer-cols { - display: flex; - gap: 64px; - flex-wrap: wrap; -} - -.footer-col { - width: 180px; -} - -.footer-col h5 { - color: var(--color-white); - font-size: 13px; - font-family: var(--font-body); - margin-bottom: 14px; -} - -.footer-col a { - display: block; - color: rgba(255, 255, 255, 0.55); - font-size: 14px; - margin-bottom: 10px; -} - -.footer-col a:hover { - color: var(--color-white); -} - -.footer-bottom { - display: flex; - justify-content: space-between; - align-items: center; - flex-wrap: wrap; - gap: 12px; - padding-top: 24px; - border-top: 1px solid var(--color-line-dark); -} - -.footer-bottom p { - color: rgba(255, 255, 255, 0.4); - font-size: 12px; -} - -.footer-social { - display: flex; - gap: 10px; -} - -.footer-social a { - width: 34px; - height: 34px; - border-radius: 50%; - border: 1px solid var(--color-line-dark); - display: flex; - align-items: center; - justify-content: center; -} - -.footer-social i { - font-size: 12px; - color: white; - stroke: rgba(255, 255, 255, 0.7); -} - -/* ---------- Responsive ---------- */ -@media (max-width: 980px) { - .hero h1 { - font-size: 38px; - } - - .stat-row { - grid-template-columns: repeat(2, 1fr); - } - - .why-grid { - grid-template-columns: 1fr; - gap: 36px; - } - - .why-sticky { - position: static; - } - - .bento { - grid-template-columns: 1fr; - } - - .bento-r1, - .bento-r2, - .bento-r3, - .bento-r4 { - grid-column: auto; - grid-row: auto; - } - - .pricing-grid { - grid-template-columns: repeat(2, 1fr); - } - - .contact-card { - grid-template-columns: 1fr; - } -} - -@media (max-width: 680px) { - .container { - padding: 0 20px; - } - - .nav-links { - position: absolute; - top: 100%; - left: 0; - right: 0; - background: rgba(253, 253, 253, 1); - border-radius: var(--radius-md); - flex-direction: column; - align-items: flex-start; - padding: 20px 20px 26px; - gap: 32px; - box-shadow: 0 20px 30px -20px rgba(0, 0, 0, 0.2); - display: none; - } - - .nav-links.open { - display: flex; - } - - .nav-divider { - width: 100%; - height: 1px; - background-color: rgba(0, 0, 0, 0.1); - } - - .nav-links a { - width: 100% !important; - align-items: center; - text-align: center; - justify-content: center; - color: var(--color-ink-900) !important; - } - - .nav-links .btn { - color: var(--color-white) !important; - width: 100% !important; - justify-content: center; - } - - .nav-toggle { - display: block; - } - - .stat-row { - grid-template-columns: 1fr 1fr; - } - - .access-illustration { - flex-direction: column; - align-items: flex-start; - } - - .pricing-grid { - grid-template-columns: 1fr; - } - - .footer-top { - flex-direction: column; - } - - .destinations-head-row { - align-items: flex-start; - } - - .contact-info, - .contact-form { - padding: 36px 26px; - } -} diff --git a/apps/product-site/src/components/DestinationsCarousel.tsx b/apps/product-site/src/components/DestinationsCarousel.tsx deleted file mode 100644 index 07c8269..0000000 --- a/apps/product-site/src/components/DestinationsCarousel.tsx +++ /dev/null @@ -1,227 +0,0 @@ -"use client"; - -import { useEffect, useRef } from "react"; - -export function DestinationsCarousel({ - header, - children -}: { - header: React.ReactNode; - children: React.ReactNode; -}) { - const viewportRef = useRef(null); - const trackRef = useRef(null); - const dotsRef = useRef(null); - const prevBtnRef = useRef(null); - const nextBtnRef = useRef(null); - - useEffect(() => { - const viewport = viewportRef.current; - const track = trackRef.current; - const dotsWrap = dotsRef.current; - if (!track || !viewport || !dotsWrap) return; - - const realCards = Array.from(track.children) as HTMLElement[]; - const n = realCards.length; - if (n === 0) return; - - const CARD_WIDTH = 200; - const ACTIVE_WIDTH = 320; - const GAP = 16; - let isAnimating = false; - - function realIndexOf(pos: number) { - return ((pos % n) + n) % n; - } - - function widthOfSlot(i: number, activeReal: number) { - return realIndexOf(i) === activeReal ? ACTIVE_WIDTH : CARD_WIDTH; - } - - dotsWrap.innerHTML = ""; - const dots: HTMLButtonElement[] = []; - realCards.forEach((c, i) => { - const d = document.createElement("button"); - d.setAttribute("aria-label", "Ke slide " + (i + 1)); - d.addEventListener("click", () => { - goTo(i); - resetAutoplay(); - }); - dotsWrap.appendChild(d); - dots.push(d); - }); - - const beforeClones = realCards.map((c) => { - const cl = c.cloneNode(true) as HTMLElement; - cl.setAttribute("aria-hidden", "true"); - return cl; - }); - const afterClones = realCards.map((c) => { - const cl = c.cloneNode(true) as HTMLElement; - cl.setAttribute("aria-hidden", "true"); - return cl; - }); - - track.innerHTML = ""; - beforeClones.concat(realCards, afterClones).forEach((el) => { - track.appendChild(el); - }); - - const slots = Array.from(track.children) as HTMLElement[]; - let position = n + 2; - - function render(instant: boolean) { - if (instant) track!.classList.add("no-anim"); - else track!.classList.remove("no-anim"); - - const activeReal = realIndexOf(position); - - let offset = 0; - for (let i = 0; i < position; i++) { - offset += widthOfSlot(i, activeReal) + GAP; - } - offset += widthOfSlot(position, activeReal) / 2; - - const viewportRect = viewport!.getBoundingClientRect(); - const translate = viewportRect.width / 2 - offset; - track!.style.transform = "translateX(" + translate + "px)"; - - slots.forEach((s, i) => { - const isActive = realIndexOf(i) === activeReal; - s.classList.toggle("active", isActive); - }); - dots.forEach((d, i) => { - d.classList.toggle("on", i === activeReal); - }); - - if (instant) { - void track!.offsetWidth; - track!.classList.remove("no-anim"); - } - } - - function goToPosition(pos: number) { - position = pos; - isAnimating = true; - render(false); - } - - function next() { - if (isAnimating) return; - goToPosition(position + 1); - } - - function prev() { - if (isAnimating) return; - goToPosition(position - 1); - } - - function goTo(realIndex: number) { - if (isAnimating) return; - goToPosition(n + realIndex); - } - - const onTransitionEnd = (e: TransitionEvent) => { - if (e.target !== track || e.propertyName !== "transform") return; - if (position >= 2 * n) { - position -= n; - render(true); - } else if (position < n) { - position += n; - render(true); - } - isAnimating = false; - }; - track.addEventListener("transitionend", onTransitionEnd); - - const onPrevClick = () => { prev(); resetAutoplay(); }; - const onNextClick = () => { next(); resetAutoplay(); }; - - const prevBtn = prevBtnRef.current; - const nextBtn = nextBtnRef.current; - if (prevBtn) prevBtn.addEventListener("click", onPrevClick); - if (nextBtn) nextBtn.addEventListener("click", onNextClick); - - const onTrackClick = (e: MouseEvent) => { - const target = e.target as HTMLElement; - const card = target.closest('.dest-card') as HTMLElement; - if (!card || isAnimating) return; - - const slotsArray = Array.from(track.children) as HTMLElement[]; - const slotIndex = slotsArray.indexOf(card); - - if (slotIndex !== -1) { - goToPosition(slotIndex); - resetAutoplay(); - } - }; - track.addEventListener("click", onTrackClick); - - let autoplayTimer: ReturnType; - function startAutoplay() { - autoplayTimer = setInterval(next, 5000); - } - function stopAutoplay() { - clearInterval(autoplayTimer); - } - function resetAutoplay() { - stopAutoplay(); - startAutoplay(); - } - viewport.addEventListener("mouseenter", stopAutoplay); - viewport.addEventListener("mouseleave", startAutoplay); - - const onResize = () => render(true); - window.addEventListener("resize", onResize); - - render(true); - startAutoplay(); - - return () => { - stopAutoplay(); - window.removeEventListener("resize", onResize); - track.removeEventListener("transitionend", onTransitionEnd); - track.removeEventListener("click", onTrackClick); - viewport.removeEventListener("mouseenter", stopAutoplay); - viewport.removeEventListener("mouseleave", startAutoplay); - if (prevBtn) prevBtn.removeEventListener("click", onPrevClick); - if (nextBtn) nextBtn.removeEventListener("click", onNextClick); - - track.innerHTML = ""; - realCards.forEach((c) => track.appendChild(c)); - dotsWrap.innerHTML = ""; - }; - }, [header, children]); - - return ( - <> -
- {header} -
- - -
-
- -
-
- {children} -
-
- -
- - ); -} diff --git a/apps/product-site/src/components/LanguageSwitcher.tsx b/apps/product-site/src/components/LanguageSwitcher.tsx deleted file mode 100644 index ea426c5..0000000 --- a/apps/product-site/src/components/LanguageSwitcher.tsx +++ /dev/null @@ -1,39 +0,0 @@ -'use client'; - -import { usePathname, useRouter } from '@/i18n/routing'; -import { useLocale } from 'next-intl'; -import { ChangeEvent } from 'react'; - -export function LanguageSwitcher() { - const locale = useLocale(); - const router = useRouter(); - const pathname = usePathname(); - - function onSelectChange(event: ChangeEvent) { - const nextLocale = event.target.value; - router.replace(pathname, { locale: nextLocale }); - } - - return ( - - ); -} diff --git a/apps/product-site/src/components/sections/Contact.tsx b/apps/product-site/src/components/sections/Contact.tsx deleted file mode 100644 index f4a78d5..0000000 --- a/apps/product-site/src/components/sections/Contact.tsx +++ /dev/null @@ -1,82 +0,0 @@ -'use client'; - -import { useTranslations, useLocale } from 'next-intl'; -import { brandInfo } from '@repo/brand'; - -export function Contact() { - const t = useTranslations(); - const locale = useLocale() as 'id' | 'en'; - - const contactList = [ - { - icon: 'uil-envelope-alt', - titleKey: 'Contact.email', - value: brandInfo.email, - }, - { - icon: 'uil-phone', - titleKey: 'Contact.phone', - value: brandInfo.phone, - }, - { - icon: 'uil-map-marker', - titleKey: 'Contact.office', - value: brandInfo.address[locale] || brandInfo.address.id, - }, - ]; - - return ( -
-
-
-
- - - {t('Contact.eyebrow')} - -

{t('Contact.title')}

-

{t('Contact.desc')}

- -
- {contactList.map((item, i) => ( -
-
- -
-
- {(t as any)(item.titleKey)} - {item.value} -
-
- ))} -
-
- -
-

{t('Contact.form.title')}

-
e.preventDefault()}> -
-
- - -
-
- - -
-
-
- - -
- -

{t('Contact.form.note')}

-
-
-
-
-
- ); -} diff --git a/apps/product-site/src/components/sections/Dashboard.tsx b/apps/product-site/src/components/sections/Dashboard.tsx deleted file mode 100644 index cb09344..0000000 --- a/apps/product-site/src/components/sections/Dashboard.tsx +++ /dev/null @@ -1,101 +0,0 @@ -import { useTranslations } from 'next-intl'; - -export function Dashboard() { - const t = useTranslations(); - - return ( -
-
-
-

- {t('Destinations.title21')} -
- {t('Destinations.title22')} -

-

{t('Destinations.desc2')}

-
- - - - - - - - - - -
-
-
-
- -
-

{t('Destinations.apps.online.title')}

-

{t('Destinations.apps.online.desc')}

-
- -
-
- -
-

{t('Destinations.apps.cashier.title')}

-

{t('Destinations.apps.cashier.desc')}

-
-
- -
- - - - - - - -
- -
-
- -
-

{t('Destinations.apps.pos.title')}

-

{t('Destinations.apps.pos.desc')}

-
- -
- - - - - - -
- -
-
- -
-

{t('Destinations.apps.queue.title')}

-

{t('Destinations.apps.queue.desc')}

-
- -
- - - - - - -
- -
-
- -
-

{t('Destinations.apps.admin.title')}

-

{t('Destinations.apps.admin.desc')}

-
-
-
-
- ); -} diff --git a/apps/product-site/src/components/sections/Destinations.tsx b/apps/product-site/src/components/sections/Destinations.tsx deleted file mode 100644 index ec7a04b..0000000 --- a/apps/product-site/src/components/sections/Destinations.tsx +++ /dev/null @@ -1,59 +0,0 @@ -import { useTranslations } from 'next-intl'; -import { DestinationsCarousel } from '@/components/DestinationsCarousel'; - -export function Destinations() { - const t = useTranslations(); - - const destinationsData = [ - { - icon: 'uil-trees', - titleKey: 'Destinations.items.themePark.title', - descKey: 'Destinations.items.themePark.desc', - }, - { - icon: 'uil-ticket', - titleKey: 'Destinations.items.event.title', - descKey: 'Destinations.items.event.desc', - }, - { - icon: 'uil-archway', - titleKey: 'Destinations.items.museum.title', - descKey: 'Destinations.items.museum.desc', - }, - { - icon: 'uil-basketball', - titleKey: 'Destinations.items.stadium.title', - descKey: 'Destinations.items.stadium.desc', - }, - { - icon: 'uil-scenery', - titleKey: 'Destinations.items.exhibition.title', - descKey: 'Destinations.items.exhibition.desc', - }, - ]; - - return ( -
-
- -

{t('Destinations.title')}

-

{t('Destinations.desc')}

-
- } - > - {destinationsData.map((item, i) => ( -
-

{(t as any)(item.titleKey)}

-

{(t as any)(item.descKey)}

-
- -
-
- ))} - - -
- ); -} diff --git a/apps/product-site/src/components/sections/Ecosystem.tsx b/apps/product-site/src/components/sections/Ecosystem.tsx deleted file mode 100644 index 47b0595..0000000 --- a/apps/product-site/src/components/sections/Ecosystem.tsx +++ /dev/null @@ -1,208 +0,0 @@ -'use client'; - -import { useTranslations } from 'next-intl'; -import { useEffect } from 'react'; - -export function Ecosystem() { - const t = useTranslations(); - - useEffect(() => { - const grid = document.getElementById('bentoGrid'); - let obs: IntersectionObserver; - - if (grid) { - const bars = grid.querySelectorAll('.report-bar'); - const ring = grid.querySelector('.ring-progress'); - const timeouts: ReturnType[] = []; - - obs = new IntersectionObserver( - (entries) => { - entries.forEach((entry) => { - if (entry.isIntersecting) { - bars.forEach((bar, i) => { - timeouts.push( - setTimeout(() => { - if (bar.dataset.w) bar.style.width = bar.dataset.w; - }, i * 150) - ); - }); - if (ring && ring.dataset.dash) { - timeouts.push( - setTimeout(() => { - ring.style.strokeDasharray = ring.dataset.dash!; - }, 200) - ); - } - } else { - // Clear pending timeouts - timeouts.forEach(clearTimeout); - timeouts.length = 0; - - // Reset elements to trigger transition again on next enter - bars.forEach((bar) => { - bar.style.width = '0'; - }); - if (ring) { - ring.style.strokeDasharray = '0 213.6'; - } - } - }); - }, - { threshold: 0.35 }, - ); - obs.observe(grid); - } - - return () => { - if (obs) obs.disconnect(); - }; - }, []); - - return ( -
-
-
-

{t('Ecosystem.title')}

-

{t('Ecosystem.desc')}

-
- -
- {/* Ticketing */} -
-

{t('Ecosystem.ticketing.title')}

-

{t('Ecosystem.ticketing.desc')}

-
-
-
-
- TX24409198-8798 - TX24409198-8797 - TX24409198-8798 - TX24409198-8901 - TX24409198-8811 -
-
-
-
- TX24409198-8801 - TX24409198-8787 - TX24409198-8786 - TX24409198-8901 - TX24409198-8881 -
-
-
-
- TX24409198-8902 - TX24409198-8788 - TX24409198-8790 - TX24409198-8905 - TX24409198-8812 -
-
-
-
-
- - {/* Access Management */} -
-
-
-
- {t('Ecosystem.stats.qr')} - -
-
- {t('Ecosystem.stats.gate')} - -
-
- {t('Ecosystem.stats.rfid')} - -
-
-
- - - - - - - - - - - -
- 0.4s - {t('Ecosystem.stats.avg')} -
-
-
-

{t('Ecosystem.access.title')}

-

{t('Ecosystem.access.desc')}

-
- - {/* Visitor Operations */} -
-
-
-
-
-
-
-
-
- {t('Ecosystem.stats.queue')} -
-
-
-
-
-
-
-
-
-
-
-
-

{t('Ecosystem.visitor.title')}

-

{t('Ecosystem.visitor.desc')}

-
- - {/* Report */} -
-

{t('Ecosystem.report.title')}

-

{t('Ecosystem.report.desc')}

-
- {[ - { w: '150px', bg: '#b9f001', val: 'Rp32.5M', key: 'Ecosystem.stats.revenue' }, - { w: '220px', bg: '#f66b0e', val: '1,284', key: 'Ecosystem.stats.visitors' }, - { w: '300px', bg: '#112b3c', val: '1,120,240', key: 'Ecosystem.stats.checkin' }, - ].map((item, idx) => ( -
-
-
- {item.val} - {(t as any)(item.key)} -
-
- ))} -
-
-
-
-
- ); -} diff --git a/apps/product-site/src/components/sections/Footer.tsx b/apps/product-site/src/components/sections/Footer.tsx deleted file mode 100644 index 7ef8ec3..0000000 --- a/apps/product-site/src/components/sections/Footer.tsx +++ /dev/null @@ -1,69 +0,0 @@ -import { useTranslations, useLocale } from 'next-intl'; -import { brandInfo } from '@repo/brand'; - -export function Footer() { - const t = useTranslations(); - const locale = useLocale() as 'id' | 'en'; - - const footerLinks = [ - { labelKey: 'Nav.home', href: '#' }, - { labelKey: 'Nav.solutions', href: '#ecosystem' }, - { labelKey: 'Nav.industries', href: '#destinations' }, - { labelKey: 'Nav.pricing', href: '#pricing' }, - { labelKey: 'Nav.contact', href: '#contact' }, - ]; - - const socialLinks = [ - { icon: 'uil-envelope-alt', href: brandInfo.socialLinks.email }, - { icon: 'uil-phone', href: brandInfo.socialLinks.phone }, - { icon: 'uil-youtube', href: brandInfo.socialLinks.youtube }, - ]; - - return ( - - ); -} diff --git a/apps/product-site/src/components/sections/Hero.tsx b/apps/product-site/src/components/sections/Hero.tsx deleted file mode 100644 index 432e4fe..0000000 --- a/apps/product-site/src/components/sections/Hero.tsx +++ /dev/null @@ -1,85 +0,0 @@ -import { useTranslations } from 'next-intl'; - -export function Hero() { - const t = useTranslations(); - - const statsData = [ - { - icon: 'uil-clock-eight', - labelKey: 'Hero.stats.timeAccess', - value: ( - <> - 0.4{t('Hero.stats.seconds')} - - ), - subKey: 'Hero.stats.avgValidation', - }, - { - icon: 'uil-ticket', - labelKey: 'Hero.stats.ticketsSold', - value: '1.249', - subKey: 'Hero.stats.todayAllChannels', - }, - { - icon: 'uil-sync', - labelKey: 'Hero.stats.sync', - value: '12', - subKey: 'Hero.stats.txSynced', - }, - { - icon: 'uil-sliders-v', - labelKey: 'Hero.stats.visitorOps', - bars: [40, 70, 55, 90], - subKey: 'Hero.stats.activeZones', - }, - ]; - - return ( -
-
-
-

- {t('Hero.title1')} -
- {t('Hero.title2')} -

- -
- {statsData.map((stat, i) => ( -
-
- -
-
{(t as any)(stat.labelKey)}
- - {stat.bars ? ( -
- {stat.bars.map((h, j) => ( - - ))} -
- ) : ( -
{stat.value}
- )} - -
{(t as any)(stat.subKey)}
-
- ))} -
- -
- - - {t('Hero.subtitle')} - -

{t('Hero.desc')}

- - {t('Hero.cta')} - - -
-
-
-
- ); -} diff --git a/apps/product-site/src/components/sections/Navbar.tsx b/apps/product-site/src/components/sections/Navbar.tsx deleted file mode 100644 index d7c8591..0000000 --- a/apps/product-site/src/components/sections/Navbar.tsx +++ /dev/null @@ -1,70 +0,0 @@ -'use client'; - -import { useTranslations } from 'next-intl'; -import { LanguageSwitcher } from '@/components/LanguageSwitcher'; -import { useEffect, useState } from 'react'; - -export function Navbar() { - const t = useTranslations(); - const [isScrolled, setIsScrolled] = useState(false); - const [isMenuOpen, setIsMenuOpen] = useState(false); - - useEffect(() => { - const handleScroll = () => { - const floating = window.scrollY > 60; - setIsScrolled(floating); - document.body.classList.toggle('nav-is-floating', floating); - }; - window.addEventListener('scroll', handleScroll, { passive: true }); - handleScroll(); - - return () => { - window.removeEventListener('scroll', handleScroll); - }; - }, []); - - return ( -
-
- -
-
- ); -} diff --git a/apps/product-site/src/components/sections/Pricing.tsx b/apps/product-site/src/components/sections/Pricing.tsx deleted file mode 100644 index a084d6b..0000000 --- a/apps/product-site/src/components/sections/Pricing.tsx +++ /dev/null @@ -1,71 +0,0 @@ -import { useTranslations } from 'next-intl'; - -export function Pricing() { - const t = useTranslations(); - - const pricingPlans = [ - { - key: 'rental', - tags: [0, 1, 2], - features: ['f1', 'f2', 'f3', 'f4', 'f5'], - }, - { - key: 'subscription', - tags: [0, 1], - features: ['f1', 'f2', 'f3', 'f4', 'f5'], - }, - { - key: 'onPremise', - tags: [0, 1], - features: ['f1', 'f2', 'f3', 'f4', 'f5'], - }, - { - key: 'buyOut', - tags: [0, 1, 2], - features: ['f1', 'f2', 'f3', 'f4', 'f5'], - }, - ]; - - return ( -
-
-
-

- {t('Pricing.title1')} -
- {t('Pricing.title2')} -

-

{t('Pricing.desc')}

-
- -
- {pricingPlans.map((plan) => ( -
-

{(t as any)(`Pricing.${plan.key}.title`)}

-
- {plan.tags.map((tagIndex) => ( - - {(t as any)(`Pricing.${plan.key}.tags.${tagIndex}`)} - - ))} -
-

{(t as any)(`Pricing.${plan.key}.desc`)}

- - {t('Pricing.contactUs')} - - {t('Pricing.whatYouGet')} -
    - {plan.features.map((featKey) => ( -
  • - - {(t as any)(`Pricing.${plan.key}.${featKey}`)} -
  • - ))} -
-
- ))} -
-
-
- ); -} diff --git a/apps/product-site/src/components/sections/Why.tsx b/apps/product-site/src/components/sections/Why.tsx deleted file mode 100644 index b06e418..0000000 --- a/apps/product-site/src/components/sections/Why.tsx +++ /dev/null @@ -1,49 +0,0 @@ -import { useTranslations } from 'next-intl'; - -export function Why() { - const t = useTranslations(); - - const reasonsData = [ - { - icon: 'uil-wifi-slash', - titleKey: 'Why.items.offline.title', - descKey: 'Why.items.offline.desc', - }, - { - icon: 'uil-bolt', - titleKey: 'Why.items.speed.title', - descKey: 'Why.items.speed.desc', - }, - { - icon: 'uil-expand-arrows-alt', - titleKey: 'Why.items.flexibility.title', - descKey: 'Why.items.flexibility.desc', - }, - ]; - - return ( -
-
-
-

{t('Why.title')}

-

{t('Why.desc')}

-
- -
-
- -
- {reasonsData.map((reason, i) => ( -
-
- -
-

{(t as any)(reason.titleKey)}

-

{(t as any)(reason.descKey)}

-
- ))} -
-
-
- ); -} diff --git a/apps/product-site/src/i18n/request.ts b/apps/product-site/src/i18n/request.ts deleted file mode 100644 index 678a2a2..0000000 --- a/apps/product-site/src/i18n/request.ts +++ /dev/null @@ -1,15 +0,0 @@ -import {getRequestConfig} from 'next-intl/server'; -import {routing} from './routing'; - -export default getRequestConfig(async ({requestLocale}) => { - let locale = await requestLocale; - - if (!locale || !routing.locales.includes(locale as any)) { - locale = routing.defaultLocale; - } - - return { - locale, - messages: (await import(`../../messages/${locale}.json`)).default - }; -}); diff --git a/apps/product-site/src/i18n/routing.ts b/apps/product-site/src/i18n/routing.ts deleted file mode 100644 index 220cfc4..0000000 --- a/apps/product-site/src/i18n/routing.ts +++ /dev/null @@ -1,10 +0,0 @@ -import {defineRouting} from 'next-intl/routing'; -import {createNavigation} from 'next-intl/navigation'; - -export const routing = defineRouting({ - locales: ['en', 'id'], - defaultLocale: 'en' -}); - -export const {Link, redirect, usePathname, useRouter} = - createNavigation(routing); diff --git a/apps/product-site/src/middleware.ts b/apps/product-site/src/middleware.ts deleted file mode 100644 index 84283db..0000000 --- a/apps/product-site/src/middleware.ts +++ /dev/null @@ -1,8 +0,0 @@ -import createMiddleware from 'next-intl/middleware'; -import {routing} from './i18n/routing'; - -export default createMiddleware(routing); - -export const config = { - matcher: ['/', '/(id|en)/:path*'] -}; diff --git a/apps/product-site/tsconfig.json b/apps/product-site/tsconfig.json deleted file mode 100644 index d1a5693..0000000 --- a/apps/product-site/tsconfig.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "extends": "@repo/typescript-config/nextjs.json", - "compilerOptions": { - "plugins": [ - { - "name": "next" - } - ], - "paths": { - "@/*": ["./src/*"] - } - }, - "include": [ - "next-env.d.ts", - "**/*.ts", - "**/*.tsx", - ".next/types/**/*.ts", - ".next/dev/types/**/*.ts", - "**/*.mts" - ], - "exclude": ["node_modules"] -} diff --git a/package.json b/package.json index f63c84f..c04febc 100644 --- a/package.json +++ b/package.json @@ -9,14 +9,12 @@ "build:docs-dev": "turbo run build --filter=docs-dev", "build:desktop": "turbo run build --filter=desktop", "build:showcase": "turbo run build --filter=showcase", - "build:product-site": "turbo run build --filter=product-site", "dev": "turbo run dev", "dev:web": "turbo run dev --filter=web", "dev:landing": "turbo run dev --filter=landing", "dev:docs-dev": "turbo run dev --filter=docs-dev", "dev:desktop": "turbo run dev --filter=web --filter=desktop --parallel", "dev:showcase": "turbo run dev --filter=showcase", - "dev:product-site": "turbo run dev --filter=product-site", "package:desktop": "pnpm run build:desktop && pnpm --filter desktop run package", "package:mac": "pnpm run build:desktop && pnpm --filter desktop run package:mac", "package:win": "pnpm run build:desktop && pnpm --filter desktop run package:win", @@ -29,7 +27,6 @@ "typecheck:landing": "turbo run typecheck --filter=landing", "typecheck:desktop": "turbo run typecheck --filter=desktop", "typecheck:showcase": "turbo run typecheck --filter=showcase", - "typecheck:product-site": "turbo run typecheck --filter=product-site", "check:all": "turbo run lint typecheck test", "clean:workspaces": "rm -rf node_modules **/*/node_modules .turbo **/*/.turbo dist **/*/dist out **/*/out web-dist **/*/web-dist release **/*/release", "nuke": "pnpm run clean:workspaces && pnpm install && pnpm build" diff --git a/packages/brand/public/favicon.svg b/packages/brand/public/favicon.svg index d73eeaf..4328d48 100644 --- a/packages/brand/public/favicon.svg +++ b/packages/brand/public/favicon.svg @@ -1,4 +1,6 @@ - - - + + + + + diff --git a/packages/brand/public/logo-primary.png b/packages/brand/public/logo-primary.png deleted file mode 100644 index 3715f38..0000000 Binary files a/packages/brand/public/logo-primary.png and /dev/null differ diff --git a/packages/brand/public/logo-primary.svg b/packages/brand/public/logo-primary.svg deleted file mode 100644 index 245f7cf..0000000 --- a/packages/brand/public/logo-primary.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 83fe5d0..baad5ee 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -150,55 +150,6 @@ importers: specifier: ^5.1.4 version: 5.4.17(@types/node@22.19.3) - apps/product-site: - dependencies: - '@repo/brand': - specifier: workspace:* - version: link:../../packages/brand - next: - specifier: 16.2.12 - version: 16.2.12(@babel/core@7.28.5)(react-dom@19.2.4)(react@19.2.4) - next-intl: - specifier: ^4.13.4 - version: 4.13.4(next@16.2.12)(react@19.2.4)(typescript@5.5.4) - react: - specifier: 19.2.4 - version: 19.2.4 - react-dom: - specifier: 19.2.4 - version: 19.2.4(react@19.2.4) - devDependencies: - '@repo/eslint-config': - specifier: workspace:* - version: link:../../packages/configs/eslint - '@repo/typescript-config': - specifier: workspace:* - version: link:../../packages/configs/typescript - '@tailwindcss/postcss': - specifier: ^4 - version: 4.3.3 - '@types/node': - specifier: ^20 - version: 20.19.39 - '@types/react': - specifier: ^19 - version: 19.2.7 - '@types/react-dom': - specifier: ^19 - version: 19.2.3(@types/react@19.2.7) - eslint: - specifier: ^9 - version: 9.39.5 - eslint-config-next: - specifier: 16.2.12 - version: 16.2.12(@typescript-eslint/parser@8.65.0)(eslint@9.39.5)(typescript@5.5.4) - tailwindcss: - specifier: ^4 - version: 4.3.3 - typescript: - specifier: ^5 - version: 5.5.4 - apps/showcase: dependencies: '@hookform/resolvers': @@ -952,11 +903,6 @@ packages: '@algolia/client-common': 5.55.1 dev: true - /@alloc/quick-lru@5.2.0: - resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} - engines: {node: '>=10'} - dev: true - /@antfu/install-pkg@1.1.0: resolution: {integrity: sha512-MGQsmw10ZyI+EJo45CdSER4zEb+p31LpDAFp2Z3gkSd1yqVZGi0Ebx++YTEMonJy4oChEMLsxZ64j8FH6sSqtQ==} dependencies: @@ -1412,6 +1358,7 @@ packages: dependencies: '@emnapi/wasi-threads': 1.1.0 tslib: 2.8.1 + dev: false optional: true /@emnapi/runtime@1.8.1: @@ -1419,6 +1366,7 @@ packages: requiresBuild: true dependencies: tslib: 2.8.1 + dev: false optional: true /@emnapi/wasi-threads@1.1.0: @@ -1426,6 +1374,7 @@ packages: requiresBuild: true dependencies: tslib: 2.8.1 + dev: false optional: true /@esbuild/aix-ppc64@0.21.5: @@ -1846,16 +1795,6 @@ packages: dev: true optional: true - /@eslint-community/eslint-utils@4.10.1(eslint@9.39.5): - resolution: {integrity: sha512-cuadcxVFE8sDK6iWJbs8Sn0av2Nrh2QSGQhVlBW9AaAHqHwjWsZHT8LJ4hFGPh7ASBV2deFdM7H/DPjulmh8rg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - dependencies: - eslint: 9.39.5 - eslint-visitor-keys: 3.4.3 - dev: true - /@eslint-community/eslint-utils@4.5.1(eslint@8.57.1): resolution: {integrity: sha512-soEIOALTfTK6EjmKMMoLugwaP0rzkad90iIWd1hMO9ARkSAyjfMfkRRhLvD5qH7vvM0Cg72pieUfR6yh6XxC4w==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -1869,36 +1808,6 @@ packages: resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - /@eslint-community/regexpp@4.12.2: - resolution: {integrity: sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==} - engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - dev: true - - /@eslint/config-array@0.21.2: - resolution: {integrity: sha512-nJl2KGTlrf9GjLimgIru+V/mzgSK0ABCDQRvxw5BjURL7WfH5uoWmizbH7QB6MmnMBd8cIC9uceWnezL1VZWWw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - dependencies: - '@eslint/object-schema': 2.1.7 - debug: 4.4.3 - minimatch: 3.1.5 - transitivePeerDependencies: - - supports-color - dev: true - - /@eslint/config-helpers@0.4.2: - resolution: {integrity: sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - dependencies: - '@eslint/core': 0.17.0 - dev: true - - /@eslint/core@0.17.0: - resolution: {integrity: sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - dependencies: - '@types/json-schema': 7.0.15 - dev: true - /@eslint/eslintrc@2.1.4: resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -1915,45 +1824,10 @@ packages: transitivePeerDependencies: - supports-color - /@eslint/eslintrc@3.3.6: - resolution: {integrity: sha512-l2Ul9PrHsPCKcEY/ac7VgFj9D80C7S68sOKc618SyHDPK36s1XcFebXY0iTzUVn4Yq+YbwvSnDmCz9yxjX+QrA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - dependencies: - ajv: 6.15.0 - debug: 4.4.3 - espree: 10.4.0 - globals: 14.0.0 - ignore: 5.3.2 - import-fresh: 3.3.1 - js-yaml: 4.3.0 - minimatch: 3.1.5 - strip-json-comments: 3.1.1 - transitivePeerDependencies: - - supports-color - dev: true - /@eslint/js@8.57.1: resolution: {integrity: sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - /@eslint/js@9.39.5: - resolution: {integrity: sha512-QywQuszQh77pIXCsq998c8hbhSTI/azTty1Z6N53dmAudKHhy573j3yvRLsX2BSp8YpLtoCEG8E9DJe+8zUh4A==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - dev: true - - /@eslint/object-schema@2.1.7: - resolution: {integrity: sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - dev: true - - /@eslint/plugin-kit@0.4.1: - resolution: {integrity: sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - dependencies: - '@eslint/core': 0.17.0 - levn: 0.4.1 - dev: true - /@floating-ui/core@1.7.4: resolution: {integrity: sha512-C3HlIdsBxszvm5McXlB8PeOEWfBhcGBTZGkGlWc2U0KFY5IwG5OQEuQ8rq52DZmcHDlPLd+YFBK+cZcytwIFWg==} requiresBuild: true @@ -1996,26 +1870,6 @@ packages: resolution: {integrity: sha512-aGTxbpbg8/b5JfU1HXSrbH3wXZuLPJcNEcZQFMxLs3oSzgtVu6nFPkbbGGUvBcUjKV2YyB9Wxxabo+HEH9tcRQ==} dev: false - /@formatjs/fast-memoize@3.1.7: - resolution: {integrity: sha512-zXfhLpvA6T7+efdt9JLbBwZ00tT7NsBMDVnDu8rpHeNNv8KfRZAMo2gkG0k9lK/Nzc//3kJ9pImsfuJxk3KhUA==} - dev: false - - /@formatjs/icu-messageformat-parser@3.5.15: - resolution: {integrity: sha512-5o4grXKotAB3JqQuisLApHG43g17N+paoRTa92Jiz35Zvfemq0cVf4EDvuxyHAzmsJji7igaEowicLO/VmfJ8Q==} - dependencies: - '@formatjs/icu-skeleton-parser': 2.1.11 - dev: false - - /@formatjs/icu-skeleton-parser@2.1.11: - resolution: {integrity: sha512-j8cUmOJzVgkHuS0QiQ6ga76UIoLOFSAMWhs7aZJztH3aAdCOAE6vpC8KVvFB4cU10ON0y2/5oOVmPJ43s2lTwA==} - dev: false - - /@formatjs/intl-localematcher@0.8.13: - resolution: {integrity: sha512-kHEAFOkeJSPNi7c5PaKaRjxcBrJwzzt81ifUu+8uve1EDW/VJl83KsxmqgqNZLzcFEhSliZGvx3+pk/RH0IOmg==} - dependencies: - '@formatjs/fast-memoize': 3.1.7 - dev: false - /@gar/promisify@1.1.3: resolution: {integrity: sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==} dev: true @@ -2086,27 +1940,6 @@ packages: react-hook-form: 7.79.0(react@19.2.3) dev: false - /@humanfs/core@0.19.2: - resolution: {integrity: sha512-UhXNm+CFMWcbChXywFwkmhqjs3PRCmcSa/hfBgLIb7oQ5HNb1wS0icWsGtSAUNgefHeI+eBrA8I1fxmbHsGdvA==} - engines: {node: '>=18.18.0'} - dependencies: - '@humanfs/types': 0.15.0 - dev: true - - /@humanfs/node@0.16.8: - resolution: {integrity: sha512-gE1eQNZ3R++kTzFUpdGlpmy8kDZD/MLyHqDwqjkVQI0JMdI1D51sy1H958PNXYkM2rAac7e5/CnIKZrHtPh3BQ==} - engines: {node: '>=18.18.0'} - dependencies: - '@humanfs/core': 0.19.2 - '@humanfs/types': 0.15.0 - '@humanwhocodes/retry': 0.4.3 - dev: true - - /@humanfs/types@0.15.0: - resolution: {integrity: sha512-ZZ1w0aoQkwuUuC7Yf+7sdeaNfqQiiLcSRbfI08oAxqLtpXQr9AIVX7Ay7HLDuiLYAaFPu8oBYNq/QIi9URHJ3Q==} - engines: {node: '>=18.18.0'} - dev: true - /@humanwhocodes/config-array@0.13.0: resolution: {integrity: sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==} engines: {node: '>=10.10.0'} @@ -2124,11 +1957,6 @@ packages: /@humanwhocodes/object-schema@2.0.3: resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} - /@humanwhocodes/retry@0.4.3: - resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==} - engines: {node: '>=18.18'} - dev: true - /@iconify-json/simple-icons@1.2.87: resolution: {integrity: sha512-8YciStObhSji3OZFmWAWK6kBujyqO5bLCxeDwLxf3CR3F4PVelq7keC2LBvgTqviWzSTysj5/g4PCFLiAMVGsw==} dependencies: @@ -2147,240 +1975,6 @@ packages: import-meta-resolve: 4.2.0 dev: true - /@img/colour@1.1.0: - resolution: {integrity: sha512-Td76q7j57o/tLVdgS746cYARfSyxk8iEfRxewL9h4OMzYhbW4TAcppl0mT4eyqXddh6L/jwoM75mo7ixa/pCeQ==} - engines: {node: '>=18'} - requiresBuild: true - dev: false - optional: true - - /@img/sharp-darwin-arm64@0.34.5: - resolution: {integrity: sha512-imtQ3WMJXbMY4fxb/Ndp6HBTNVtWCUI0WdobyheGf5+ad6xX8VIDO8u2xE4qc/fr08CKG/7dDseFtn6M6g/r3w==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [arm64] - os: [darwin] - requiresBuild: true - optionalDependencies: - '@img/sharp-libvips-darwin-arm64': 1.2.4 - dev: false - optional: true - - /@img/sharp-darwin-x64@0.34.5: - resolution: {integrity: sha512-YNEFAF/4KQ/PeW0N+r+aVVsoIY0/qxxikF2SWdp+NRkmMB7y9LBZAVqQ4yhGCm/H3H270OSykqmQMKLBhBJDEw==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [x64] - os: [darwin] - requiresBuild: true - optionalDependencies: - '@img/sharp-libvips-darwin-x64': 1.2.4 - dev: false - optional: true - - /@img/sharp-libvips-darwin-arm64@1.2.4: - resolution: {integrity: sha512-zqjjo7RatFfFoP0MkQ51jfuFZBnVE2pRiaydKJ1G/rHZvnsrHAOcQALIi9sA5co5xenQdTugCvtb1cuf78Vf4g==} - cpu: [arm64] - os: [darwin] - requiresBuild: true - dev: false - optional: true - - /@img/sharp-libvips-darwin-x64@1.2.4: - resolution: {integrity: sha512-1IOd5xfVhlGwX+zXv2N93k0yMONvUlANylbJw1eTah8K/Jtpi15KC+WSiaX/nBmbm2HxRM1gZ0nSdjSsrZbGKg==} - cpu: [x64] - os: [darwin] - requiresBuild: true - dev: false - optional: true - - /@img/sharp-libvips-linux-arm64@1.2.4: - resolution: {integrity: sha512-excjX8DfsIcJ10x1Kzr4RcWe1edC9PquDRRPx3YVCvQv+U5p7Yin2s32ftzikXojb1PIFc/9Mt28/y+iRklkrw==} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /@img/sharp-libvips-linux-arm@1.2.4: - resolution: {integrity: sha512-bFI7xcKFELdiNCVov8e44Ia4u2byA+l3XtsAj+Q8tfCwO6BQ8iDojYdvoPMqsKDkuoOo+X6HZA0s0q11ANMQ8A==} - cpu: [arm] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /@img/sharp-libvips-linux-ppc64@1.2.4: - resolution: {integrity: sha512-FMuvGijLDYG6lW+b/UvyilUWu5Ayu+3r2d1S8notiGCIyYU/76eig1UfMmkZ7vwgOrzKzlQbFSuQfgm7GYUPpA==} - cpu: [ppc64] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /@img/sharp-libvips-linux-riscv64@1.2.4: - resolution: {integrity: sha512-oVDbcR4zUC0ce82teubSm+x6ETixtKZBh/qbREIOcI3cULzDyb18Sr/Wcyx7NRQeQzOiHTNbZFF1UwPS2scyGA==} - cpu: [riscv64] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /@img/sharp-libvips-linux-s390x@1.2.4: - resolution: {integrity: sha512-qmp9VrzgPgMoGZyPvrQHqk02uyjA0/QrTO26Tqk6l4ZV0MPWIW6LTkqOIov+J1yEu7MbFQaDpwdwJKhbJvuRxQ==} - cpu: [s390x] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /@img/sharp-libvips-linux-x64@1.2.4: - resolution: {integrity: sha512-tJxiiLsmHc9Ax1bz3oaOYBURTXGIRDODBqhveVHonrHJ9/+k89qbLl0bcJns+e4t4rvaNBxaEZsFtSfAdquPrw==} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /@img/sharp-libvips-linuxmusl-arm64@1.2.4: - resolution: {integrity: sha512-FVQHuwx1IIuNow9QAbYUzJ+En8KcVm9Lk5+uGUQJHaZmMECZmOlix9HnH7n1TRkXMS0pGxIJokIVB9SuqZGGXw==} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /@img/sharp-libvips-linuxmusl-x64@1.2.4: - resolution: {integrity: sha512-+LpyBk7L44ZIXwz/VYfglaX/okxezESc6UxDSoyo2Ks6Jxc4Y7sGjpgU9s4PMgqgjj1gZCylTieNamqA1MF7Dg==} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /@img/sharp-linux-arm64@0.34.5: - resolution: {integrity: sha512-bKQzaJRY/bkPOXyKx5EVup7qkaojECG6NLYswgktOZjaXecSAeCWiZwwiFf3/Y+O1HrauiE3FVsGxFg8c24rZg==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [arm64] - os: [linux] - requiresBuild: true - optionalDependencies: - '@img/sharp-libvips-linux-arm64': 1.2.4 - dev: false - optional: true - - /@img/sharp-linux-arm@0.34.5: - resolution: {integrity: sha512-9dLqsvwtg1uuXBGZKsxem9595+ujv0sJ6Vi8wcTANSFpwV/GONat5eCkzQo/1O6zRIkh0m/8+5BjrRr7jDUSZw==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [arm] - os: [linux] - requiresBuild: true - optionalDependencies: - '@img/sharp-libvips-linux-arm': 1.2.4 - dev: false - optional: true - - /@img/sharp-linux-ppc64@0.34.5: - resolution: {integrity: sha512-7zznwNaqW6YtsfrGGDA6BRkISKAAE1Jo0QdpNYXNMHu2+0dTrPflTLNkpc8l7MUP5M16ZJcUvysVWWrMefZquA==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [ppc64] - os: [linux] - requiresBuild: true - optionalDependencies: - '@img/sharp-libvips-linux-ppc64': 1.2.4 - dev: false - optional: true - - /@img/sharp-linux-riscv64@0.34.5: - resolution: {integrity: sha512-51gJuLPTKa7piYPaVs8GmByo7/U7/7TZOq+cnXJIHZKavIRHAP77e3N2HEl3dgiqdD/w0yUfiJnII77PuDDFdw==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [riscv64] - os: [linux] - requiresBuild: true - optionalDependencies: - '@img/sharp-libvips-linux-riscv64': 1.2.4 - dev: false - optional: true - - /@img/sharp-linux-s390x@0.34.5: - resolution: {integrity: sha512-nQtCk0PdKfho3eC5MrbQoigJ2gd1CgddUMkabUj+rBevs8tZ2cULOx46E7oyX+04WGfABgIwmMC0VqieTiR4jg==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [s390x] - os: [linux] - requiresBuild: true - optionalDependencies: - '@img/sharp-libvips-linux-s390x': 1.2.4 - dev: false - optional: true - - /@img/sharp-linux-x64@0.34.5: - resolution: {integrity: sha512-MEzd8HPKxVxVenwAa+JRPwEC7QFjoPWuS5NZnBt6B3pu7EG2Ge0id1oLHZpPJdn3OQK+BQDiw9zStiHBTJQQQQ==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [x64] - os: [linux] - requiresBuild: true - optionalDependencies: - '@img/sharp-libvips-linux-x64': 1.2.4 - dev: false - optional: true - - /@img/sharp-linuxmusl-arm64@0.34.5: - resolution: {integrity: sha512-fprJR6GtRsMt6Kyfq44IsChVZeGN97gTD331weR1ex1c1rypDEABN6Tm2xa1wE6lYb5DdEnk03NZPqA7Id21yg==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [arm64] - os: [linux] - requiresBuild: true - optionalDependencies: - '@img/sharp-libvips-linuxmusl-arm64': 1.2.4 - dev: false - optional: true - - /@img/sharp-linuxmusl-x64@0.34.5: - resolution: {integrity: sha512-Jg8wNT1MUzIvhBFxViqrEhWDGzqymo3sV7z7ZsaWbZNDLXRJZoRGrjulp60YYtV4wfY8VIKcWidjojlLcWrd8Q==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [x64] - os: [linux] - requiresBuild: true - optionalDependencies: - '@img/sharp-libvips-linuxmusl-x64': 1.2.4 - dev: false - optional: true - - /@img/sharp-wasm32@0.34.5: - resolution: {integrity: sha512-OdWTEiVkY2PHwqkbBI8frFxQQFekHaSSkUIJkwzclWZe64O1X4UlUjqqqLaPbUpMOQk6FBu/HtlGXNblIs0huw==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [wasm32] - requiresBuild: true - dependencies: - '@emnapi/runtime': 1.8.1 - dev: false - optional: true - - /@img/sharp-win32-arm64@0.34.5: - resolution: {integrity: sha512-WQ3AgWCWYSb2yt+IG8mnC6Jdk9Whs7O0gxphblsLvdhSpSTtmu69ZG1Gkb6NuvxsNACwiPV6cNSZNzt0KPsw7g==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [arm64] - os: [win32] - requiresBuild: true - dev: false - optional: true - - /@img/sharp-win32-ia32@0.34.5: - resolution: {integrity: sha512-FV9m/7NmeCmSHDD5j4+4pNI8Cp3aW+JvLoXcTUo0IqyjSfAZJ8dIUmijx1qaJsIiU+Hosw6xM5KijAWRJCSgNg==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [ia32] - os: [win32] - requiresBuild: true - dev: false - optional: true - - /@img/sharp-win32-x64@0.34.5: - resolution: {integrity: sha512-+29YMsqY2/9eFEiW93eqWnuLcWcufowXewwSNIT6UwZdUUCrM3oFjMWH/Z6/TMmb4hlFenmfAVbpWeup2jryCw==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [x64] - os: [win32] - requiresBuild: true - dev: false - optional: true - /@isaacs/cliui@8.0.2: resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} engines: {node: '>=12'} @@ -2581,87 +2175,6 @@ packages: '@emnapi/core': 1.8.1 '@emnapi/runtime': 1.8.1 '@tybys/wasm-util': 0.10.1 - optional: true - - /@next/env@16.2.12: - resolution: {integrity: sha512-d0Z5Bc13Fa4nR8pFAKx2jay2yhJM16vlfHbTzYnUQAxlNb6B6lmn4hjt69lYNt4kRtyYP6gEM49lPRHNbIyneg==} - dev: false - - /@next/eslint-plugin-next@16.2.12: - resolution: {integrity: sha512-uF2z/qAK2q7B5/6CpnFcBRX6jOq5iCO+Uqh1UkJhXljX1JwLarLYhhoJadO6dPb6moTprOKewMXheBcbIoSbug==} - dependencies: - fast-glob: 3.3.1 - dev: true - - /@next/swc-darwin-arm64@16.2.12: - resolution: {integrity: sha512-0W1R0teHWJrqKX0FH20IzzIWAOuGtBxPGuObrxy1lE8hQvCFj49KE8a3WUg0D7sq6rn6zkM4c7YGUnhudBS6oA==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [darwin] - requiresBuild: true - dev: false - optional: true - - /@next/swc-darwin-x64@16.2.12: - resolution: {integrity: sha512-Hy5Ls099+aFUmOLmIgPfLqNi6iCwhL3uQCssz5rWk+5Nkc6TUKCE83DY5BbNylfm3+mfwcSFnLRfrZDJhVxdtw==} - engines: {node: '>= 10'} - cpu: [x64] - os: [darwin] - requiresBuild: true - dev: false - optional: true - - /@next/swc-linux-arm64-gnu@16.2.12: - resolution: {integrity: sha512-+YqU2h1cQkHsGfvjAsrSmst8UIFBibBGm5x3Xgel8NLMiDQtNOM4sM2GOEMvG5YiOBNeN/Ykk8cQC2S0Xrqljg==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /@next/swc-linux-arm64-musl@16.2.12: - resolution: {integrity: sha512-0qjhiYBaKAqF63LA1ZWAAnKTzFUguAaZiRa5etMLGGPj/B6uEVjtIZldIzFEp3wHlB0koK6aTzqPtSdplTCjoA==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /@next/swc-linux-x64-gnu@16.2.12: - resolution: {integrity: sha512-7A3q26W+h7gnA15uqBToNuDqBEFZZcqh0mW2mn4AJh/G5pdg2RVE3n4slzLEliASZFG3NmsbEzng/x2Sh09mBg==} - engines: {node: '>= 10'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /@next/swc-linux-x64-musl@16.2.12: - resolution: {integrity: sha512-qSjL/uppm+cbh21s72Ss8gkiOhQ4dExWHNGOWy6eZV7STj5WsKehgxT61beSsOj+YYQuTplL376lOCdMQU5T8w==} - engines: {node: '>= 10'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /@next/swc-win32-arm64-msvc@16.2.12: - resolution: {integrity: sha512-X6hzsOUJac/e7AWSbn9gQ9nzHld1xWP5iyjHpYWvud8pufB679O1xg4JDyKr8Xd69Jvd+kM2Der6uftiZCmjYA==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [win32] - requiresBuild: true - dev: false - optional: true - - /@next/swc-win32-x64-msvc@16.2.12: - resolution: {integrity: sha512-F6fakeHuFTLOPt0bslQJdf+xtT+WIP9DVn/m4y1w1mRnVPyh3D/cNvzlRkxM444xfm+IvvYNSOrKiA2CDJ0Uxw==} - engines: {node: '>= 10'} - cpu: [x64] - os: [win32] - requiresBuild: true dev: false optional: true @@ -2692,6 +2205,7 @@ packages: /@nolyfill/is-core-module@1.0.39: resolution: {integrity: sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA==} engines: {node: '>=12.4.0'} + dev: false /@npmcli/config@8.3.4: resolution: {integrity: sha512-01rtHedemDNhUXdicU7s+QYz/3JyV5Naj84cvdXGH4mgCdL+agmSYaLF4LUG4vMCLzhBO8YtS0gPpH1FGvbgAw==} @@ -3053,138 +2567,6 @@ packages: engines: {node: '>=14'} dev: false - /@parcel/watcher-android-arm64@2.6.0: - resolution: {integrity: sha512-trgpLSCKRC/huFjXX/Smh+0sWe4+YtKfktIToiMl59ghz7z+qkH6kMvNnUbLyRs9N11t8l4svSCs1+5B3rOAhA==} - engines: {node: '>= 10.0.0'} - cpu: [arm64] - os: [android] - requiresBuild: true - dev: false - optional: true - - /@parcel/watcher-darwin-arm64@2.6.0: - resolution: {integrity: sha512-Y3QV0gl7Q1zbfueunkWIERICbEojQFCgpyG7YqOGNFLsckXyI1xu9mAIUpKY9QBYzBtSkN8dBPwd3yiAO9ovMw==} - engines: {node: '>= 10.0.0'} - cpu: [arm64] - os: [darwin] - requiresBuild: true - dev: false - optional: true - - /@parcel/watcher-darwin-x64@2.6.0: - resolution: {integrity: sha512-Ohv6OpzhUfKYD7Beb8kDvG0jbIxORCYY1JRdZnaBtnjjkJxgD7ZVL0nw2sCYd0yTMKTvz3nnTnOF3cDifK+kvw==} - engines: {node: '>= 10.0.0'} - cpu: [x64] - os: [darwin] - requiresBuild: true - dev: false - optional: true - - /@parcel/watcher-freebsd-x64@2.6.0: - resolution: {integrity: sha512-5HmXvDgs8VK+74jF9y9/2FE3/OnlcKmc56tjmSrEuZjpSZOGL+fvAu+HKJBdPs9uwoP2hE6TlSUpXZ/C5jUFmQ==} - engines: {node: '>= 10.0.0'} - cpu: [x64] - os: [freebsd] - requiresBuild: true - dev: false - optional: true - - /@parcel/watcher-linux-arm-glibc@2.6.0: - resolution: {integrity: sha512-Ps/hui3A+vMbjdqlqAowK2ZL8+BO8dBjxeWXj6npTBs3jx4wWmbPpaLuqwrQrSqIVMCnpWo238bJ1U37GhQOYg==} - engines: {node: '>= 10.0.0'} - cpu: [arm] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /@parcel/watcher-linux-arm-musl@2.6.0: - resolution: {integrity: sha512-9c6AUHgHoG+IY88MRIHupztQiQnrbqHYQjkM2btA+Bf/wQnQMuiD0Wfk1EVv3TlNT3x41uU71rn6E4xh/+zvkw==} - engines: {node: '>= 10.0.0'} - cpu: [arm] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /@parcel/watcher-linux-arm64-glibc@2.6.0: - resolution: {integrity: sha512-yHRqS2owEXe6Hic9z6Mh1ECsCd+ODVOGvZDyciqRd21+v+o+DnXMOrw50DSpIG2sb8GPEaPPmfeCAWKPJdq46g==} - engines: {node: '>= 10.0.0'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /@parcel/watcher-linux-arm64-musl@2.6.0: - resolution: {integrity: sha512-WhB2e/V7rqdHHWZusBSPuy5Ei8S6lSz6FE5TKKQz5h3a0O+C+mhY7vxU9b/stqvMb8beLnPY82ZrFTLKs+SrKA==} - engines: {node: '>= 10.0.0'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /@parcel/watcher-linux-x64-glibc@2.6.0: - resolution: {integrity: sha512-ulGE6x6Oz6iAwg75T8YQSoguBWasniIbX+QWpaYPcCnDOpdWX3k+4xbEYPZVLxOuoJI+svJJPD3sEj8G7lrQ3A==} - engines: {node: '>= 10.0.0'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /@parcel/watcher-linux-x64-musl@2.6.0: - resolution: {integrity: sha512-tkBYKt7YQrjIJWYDnto2YgO8MRkjlMTSNoRHzsXinBqbLdeOM3L32wPZJvIZxqaLMfSlS/4sUjH/6STVP/XDLw==} - engines: {node: '>= 10.0.0'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /@parcel/watcher-win32-arm64@2.6.0: - resolution: {integrity: sha512-gIZAP23jaHjGWasY/TY6yL7NHFClf0Ga7FN+iINvk+KN94rhm94lYZhFsbYFNcA04/onvGD9kKmiJLJB2HbNwQ==} - engines: {node: '>= 10.0.0'} - cpu: [arm64] - os: [win32] - requiresBuild: true - dev: false - optional: true - - /@parcel/watcher-win32-x64@2.6.0: - resolution: {integrity: sha512-cA+/pXV2YkfxlIcXOQ5fSWqAzzPyD78/x5qbK/I0vUkrlYHA8TIz+MXjAbGouguKVSI4bOmkTSJ1/poVSsgt+A==} - engines: {node: '>= 10.0.0'} - cpu: [x64] - os: [win32] - requiresBuild: true - dev: false - optional: true - - /@parcel/watcher@2.6.0: - resolution: {integrity: sha512-7FNeNl8NCE7aINx7WXiKQrPYZWC/hvrTsmk6zmxbI7LTXE7hVek/n8AfVgpe2y82zl3w0HvCHN0bVKMBoJcC0w==} - engines: {node: '>= 10.0.0'} - requiresBuild: true - dependencies: - detect-libc: 2.1.2 - is-glob: 4.0.3 - node-addon-api: 7.1.1 - picomatch: 4.0.5 - optionalDependencies: - '@parcel/watcher-android-arm64': 2.6.0 - '@parcel/watcher-darwin-arm64': 2.6.0 - '@parcel/watcher-darwin-x64': 2.6.0 - '@parcel/watcher-freebsd-x64': 2.6.0 - '@parcel/watcher-linux-arm-glibc': 2.6.0 - '@parcel/watcher-linux-arm-musl': 2.6.0 - '@parcel/watcher-linux-arm64-glibc': 2.6.0 - '@parcel/watcher-linux-arm64-musl': 2.6.0 - '@parcel/watcher-linux-x64-glibc': 2.6.0 - '@parcel/watcher-linux-x64-musl': 2.6.0 - '@parcel/watcher-win32-arm64': 2.6.0 - '@parcel/watcher-win32-x64': 2.6.0 - dev: false - /@pkgjs/parseargs@0.11.0: resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} @@ -3584,15 +2966,12 @@ packages: /@rtsao/scc@1.1.0: resolution: {integrity: sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==} + dev: false /@rushstack/eslint-patch@1.15.0: resolution: {integrity: sha512-ojSshQPKwVvSMR8yT2L/QtUkV5SXi/IfDiJ4/8d6UbTPjiHVmxZzUAzGD8Tzks1b9+qQkZa0isUOvYObedITaw==} dev: false - /@schummar/icu-type-parser@1.21.5: - resolution: {integrity: sha512-bXHSaW5jRTmke9Vd0h5P7BtWZG9Znqb8gSDxZnxaGSJnGwPLDPfS+3g0BKzeWqzgZPsIVZkM7m2tbo18cm5HBw==} - dev: false - /@shikijs/core@2.5.0: resolution: {integrity: sha512-uu/8RExTKtavlpH7XqnVYBrfBkUc20ngXiX9NSrBhOVZYv/7XQRKUyhtkeflY5QsxC0GbJThCerruZfsUaSldg==} dependencies: @@ -3668,157 +3047,6 @@ packages: lodash: 4.17.21 dev: false - /@swc/core-darwin-arm64@1.15.46: - resolution: {integrity: sha512-IsISIT22EfktVJrlvIpnAxG2u/A9aob9l99HMlx80x72WlFmFPk1V3UhkEzx86eJP8hw049KTFv/RISho2cq2Q==} - engines: {node: '>=10'} - cpu: [arm64] - os: [darwin] - requiresBuild: true - dev: false - optional: true - - /@swc/core-darwin-x64@1.15.46: - resolution: {integrity: sha512-4Tj4ppVIPCmUMpmGFiGtyEriwLyJ+yi/US4WfBrP/ok8COGddDZXLEzQETnKyK46mjvr1v0jevrS23zjoff7vA==} - engines: {node: '>=10'} - cpu: [x64] - os: [darwin] - requiresBuild: true - dev: false - optional: true - - /@swc/core-linux-arm-gnueabihf@1.15.46: - resolution: {integrity: sha512-i8tUGnNjyOgMmfmgFSg4aeJLQoFyfpIHK5FjpQAwpRyQIqEUB2w1e8zIDQzY1WhOxx8NoS1S5iUL813Un4Sf5A==} - engines: {node: '>=10'} - cpu: [arm] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /@swc/core-linux-arm64-gnu@1.15.46: - resolution: {integrity: sha512-c0OnhqzdhfOvv6qhNCcByepB+sNYOGZyhtr2Qa6ZCHvAWTYhSRw4j/u92Stue9PbZ/6q74b9nHzi76+kVzqQHQ==} - engines: {node: '>=10'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /@swc/core-linux-arm64-musl@1.15.46: - resolution: {integrity: sha512-imyRpNEcUzFQFV2LE4jL68ErvmKEuZCbvZru77iQREunJ+bR4i658cupTgtG1mLYM3F1Tzy3Sb9xYb02KghWTg==} - engines: {node: '>=10'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /@swc/core-linux-ppc64-gnu@1.15.46: - resolution: {integrity: sha512-ctEfcl/HcUeomK33cbySiHZm98GEDIxTm1EkpBsYCiHxElYBzvTXVeuQT2YwbUXn9XCrjiw4ipyUNk33k26qRg==} - engines: {node: '>=10'} - cpu: [ppc64] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /@swc/core-linux-s390x-gnu@1.15.46: - resolution: {integrity: sha512-DxlMdnt84TtRVTv7WL/thWyz9+QU8QZNNoAP9rrk0P68LziuhfePp8MjQ44zIprpTHTsEwyziIuGUUN5iSC1bQ==} - engines: {node: '>=10'} - cpu: [s390x] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /@swc/core-linux-x64-gnu@1.15.46: - resolution: {integrity: sha512-SKxI7J6t90XPl8hRUqtJi9NfGdunN/E/vZMc7Bc0figeRdOPDBT+Tm8g7cx9xM0T0mewh2l+8dewa3Am27/P+A==} - engines: {node: '>=10'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /@swc/core-linux-x64-musl@1.15.46: - resolution: {integrity: sha512-qj9T6B7bosI0VEsrWOVXZN1OXxS8Tp63ywyrLxNdOycnUtLdkgYcoBsN5y8ImnDDsnwrEWZOy1e+J4xSe7mA3Q==} - engines: {node: '>=10'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /@swc/core-win32-arm64-msvc@1.15.46: - resolution: {integrity: sha512-8p7l4c3LU+eA5g9Et1JPhNeMC1oQwXTGU+uah8DPIBX7YXzqswvaBtyKVmXefVGi/DJU1x3YJsc3mbAp9aWzSQ==} - engines: {node: '>=10'} - cpu: [arm64] - os: [win32] - requiresBuild: true - dev: false - optional: true - - /@swc/core-win32-ia32-msvc@1.15.46: - resolution: {integrity: sha512-tUEnfr3Bn9u6FOjUb3PN9p+09qZC2j+wNDLKHzXXZn22rqGcUqR/ohCRSS+nG9B9+X+U+3FewNEHJkTmdIvMjQ==} - engines: {node: '>=10'} - cpu: [ia32] - os: [win32] - requiresBuild: true - dev: false - optional: true - - /@swc/core-win32-x64-msvc@1.15.46: - resolution: {integrity: sha512-Vux7UDzBJYQggSuPfcl2w9iu+IJpgpRCxHzgCaVkELnAXAE4XZMOTX9HNcaNiwfeIDqdu2rkr69RuDm6wY8neA==} - engines: {node: '>=10'} - cpu: [x64] - os: [win32] - requiresBuild: true - dev: false - optional: true - - /@swc/core@1.15.46: - resolution: {integrity: sha512-Ri3em2mBpq3h2zSPliCYl63otDGqek8PPEfv2nWgRQEbZ/VBCNyypVTVQ6cEbTCXBhy+WE2T3fQb08moIyuYaw==} - engines: {node: '>=10'} - requiresBuild: true - peerDependencies: - '@swc/helpers': '>=0.5.17' - peerDependenciesMeta: - '@swc/helpers': - optional: true - dependencies: - '@swc/counter': 0.1.3 - '@swc/types': 0.1.27 - optionalDependencies: - '@swc/core-darwin-arm64': 1.15.46 - '@swc/core-darwin-x64': 1.15.46 - '@swc/core-linux-arm-gnueabihf': 1.15.46 - '@swc/core-linux-arm64-gnu': 1.15.46 - '@swc/core-linux-arm64-musl': 1.15.46 - '@swc/core-linux-ppc64-gnu': 1.15.46 - '@swc/core-linux-s390x-gnu': 1.15.46 - '@swc/core-linux-x64-gnu': 1.15.46 - '@swc/core-linux-x64-musl': 1.15.46 - '@swc/core-win32-arm64-msvc': 1.15.46 - '@swc/core-win32-ia32-msvc': 1.15.46 - '@swc/core-win32-x64-msvc': 1.15.46 - dev: false - - /@swc/counter@0.1.3: - resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==} - dev: false - - /@swc/helpers@0.5.15: - resolution: {integrity: sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==} - dependencies: - tslib: 2.8.1 - dev: false - - /@swc/types@0.1.27: - resolution: {integrity: sha512-K6h3iUlqeM946U4sXFYeahefR1YBbXJvko+hv8WS8/0BNJ4OHiHRywMnQUJCqkR7Y9+hqQ1TvEpiKqUhz7NEFg==} - dependencies: - '@swc/counter': 0.1.3 - dev: false - /@szmarczak/http-timer@4.0.6: resolution: {integrity: sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==} engines: {node: '>=10'} @@ -3837,18 +3065,6 @@ packages: source-map-js: 1.2.1 tailwindcss: 4.1.18 - /@tailwindcss/node@4.3.3: - resolution: {integrity: sha512-/T8IKEsf9VTU6tLjgC7+sv2mOPtQxzE2jMw7u4Tt40Tx+QSZxpzh95/H6cMKoja9XuW7iMdLJYBB0o9G1CaAgg==} - dependencies: - '@jridgewell/remapping': 2.3.5 - enhanced-resolve: 5.24.4 - jiti: 2.7.0 - lightningcss: 1.32.0 - magic-string: 0.30.21 - source-map-js: 1.2.1 - tailwindcss: 4.3.3 - dev: true - /@tailwindcss/oxide-android-arm64@4.1.18: resolution: {integrity: sha512-dJHz7+Ugr9U/diKJA0W6N/6/cjI+ZTAoxPf9Iz9BFRF2GzEX8IvXxFIi/dZBloVJX/MZGvRuFA9rqwdiIEZQ0Q==} engines: {node: '>= 10'} @@ -3857,15 +3073,6 @@ packages: requiresBuild: true optional: true - /@tailwindcss/oxide-android-arm64@4.3.3: - resolution: {integrity: sha512-Y85A2gmPSkl5Ve5qR86GL4HT509cFqQh1aes9p3sSkyTPwt0Pppf3GkwGe4JPACcRYjgJIEhQgM6dBClnr0NYw==} - engines: {node: '>= 20'} - cpu: [arm64] - os: [android] - requiresBuild: true - dev: true - optional: true - /@tailwindcss/oxide-darwin-arm64@4.1.18: resolution: {integrity: sha512-Gc2q4Qhs660bhjyBSKgq6BYvwDz4G+BuyJ5H1xfhmDR3D8HnHCmT/BSkvSL0vQLy/nkMLY20PQ2OoYMO15Jd0A==} engines: {node: '>= 10'} @@ -3874,15 +3081,6 @@ packages: requiresBuild: true optional: true - /@tailwindcss/oxide-darwin-arm64@4.3.3: - resolution: {integrity: sha512-BiaWatpBcERQFDlOjRDpIVXuFK5PJez5SA4JMg6VYZdBYU+qKfV/vqjcIs+IYmtitf1xYQZTwXvU/8y4lfZUGw==} - engines: {node: '>= 20'} - cpu: [arm64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - /@tailwindcss/oxide-darwin-x64@4.1.18: resolution: {integrity: sha512-FL5oxr2xQsFrc3X9o1fjHKBYBMD1QZNyc1Xzw/h5Qu4XnEBi3dZn96HcHm41c/euGV+GRiXFfh2hUCyKi/e+yw==} engines: {node: '>= 10'} @@ -3891,15 +3089,6 @@ packages: requiresBuild: true optional: true - /@tailwindcss/oxide-darwin-x64@4.3.3: - resolution: {integrity: sha512-fAeUqfV5ndhxRwai8cXGzdLvul9utWOmeTkv69unv4ZXixjn61Z+p9lCWdwOwA3TYboG3BwdVuN/RDjhBRl0mw==} - engines: {node: '>= 20'} - cpu: [x64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - /@tailwindcss/oxide-freebsd-x64@4.1.18: resolution: {integrity: sha512-Fj+RHgu5bDodmV1dM9yAxlfJwkkWvLiRjbhuO2LEtwtlYlBgiAT4x/j5wQr1tC3SANAgD+0YcmWVrj8R9trVMA==} engines: {node: '>= 10'} @@ -3908,15 +3097,6 @@ packages: requiresBuild: true optional: true - /@tailwindcss/oxide-freebsd-x64@4.3.3: - resolution: {integrity: sha512-iyf5bV6+wnAlflVeEy7R25dupxTNECZN5QMI0qNT6eT+EgaGdZcKhGkr5SdoaWiLJ3spLqIY9VCeSGrwmtg4kw==} - engines: {node: '>= 20'} - cpu: [x64] - os: [freebsd] - requiresBuild: true - dev: true - optional: true - /@tailwindcss/oxide-linux-arm-gnueabihf@4.1.18: resolution: {integrity: sha512-Fp+Wzk/Ws4dZn+LV2Nqx3IilnhH51YZoRaYHQsVq3RQvEl+71VGKFpkfHrLM/Li+kt5c0DJe/bHXK1eHgDmdiA==} engines: {node: '>= 10'} @@ -3925,15 +3105,6 @@ packages: requiresBuild: true optional: true - /@tailwindcss/oxide-linux-arm-gnueabihf@4.3.3: - resolution: {integrity: sha512-aAYUprJAJQWWbRrPvtjdroZ56Md+JM8pMiopS6xGEwDfLhqj+2ver2p4nU4Mb3CRqcMmNBjo8KkUgcxhkzVQGQ==} - engines: {node: '>= 20'} - cpu: [arm] - os: [linux] - requiresBuild: true - dev: true - optional: true - /@tailwindcss/oxide-linux-arm64-gnu@4.1.18: resolution: {integrity: sha512-S0n3jboLysNbh55Vrt7pk9wgpyTTPD0fdQeh7wQfMqLPM/Hrxi+dVsLsPrycQjGKEQk85Kgbx+6+QnYNiHalnw==} engines: {node: '>= 10'} @@ -3942,15 +3113,6 @@ packages: requiresBuild: true optional: true - /@tailwindcss/oxide-linux-arm64-gnu@4.3.3: - resolution: {integrity: sha512-nDxldcEENOxZRzC2uu9jrutZdAAQtb+8WWDCSnWL1zvBk1+FN+x6MtDViPB5AJMfttVCUhehGWus3XBPgatM/w==} - engines: {node: '>= 20'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: true - optional: true - /@tailwindcss/oxide-linux-arm64-musl@4.1.18: resolution: {integrity: sha512-1px92582HkPQlaaCkdRcio71p8bc8i/ap5807tPRDK/uw953cauQBT8c5tVGkOwrHMfc2Yh6UuxaH4vtTjGvHg==} engines: {node: '>= 10'} @@ -3959,15 +3121,6 @@ packages: requiresBuild: true optional: true - /@tailwindcss/oxide-linux-arm64-musl@4.3.3: - resolution: {integrity: sha512-Md44bD6veX/PC5iyF8cDVnw4HBIANZepRZZ7a8DQOvkfo5WUBwcp6iAuCUz23u+4SUkhJlD3eL7hNdW8ezd/kA==} - engines: {node: '>= 20'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: true - optional: true - /@tailwindcss/oxide-linux-x64-gnu@4.1.18: resolution: {integrity: sha512-v3gyT0ivkfBLoZGF9LyHmts0Isc8jHZyVcbzio6Wpzifg/+5ZJpDiRiUhDLkcr7f/r38SWNe7ucxmGW3j3Kb/g==} engines: {node: '>= 10'} @@ -3976,15 +3129,6 @@ packages: requiresBuild: true optional: true - /@tailwindcss/oxide-linux-x64-gnu@4.3.3: - resolution: {integrity: sha512-tx7us1muwOKAKWao2v/GaafFeQboE6aj88vC6ziN2NCGcRm8gWUhwjzg+YdVB1e4boAtdtma4L43onunI6NS4w==} - engines: {node: '>= 20'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: true - optional: true - /@tailwindcss/oxide-linux-x64-musl@4.1.18: resolution: {integrity: sha512-bhJ2y2OQNlcRwwgOAGMY0xTFStt4/wyU6pvI6LSuZpRgKQwxTec0/3Scu91O8ir7qCR3AuepQKLU/kX99FouqQ==} engines: {node: '>= 10'} @@ -3993,15 +3137,6 @@ packages: requiresBuild: true optional: true - /@tailwindcss/oxide-linux-x64-musl@4.3.3: - resolution: {integrity: sha512-SJxX60smvHgasZoBy11dX6YRjXJFovwWBoedhbQPOBzgFWBHGB+TVPWB9BxzR7TTxU8FQZAI2AyiNCMzFm8Img==} - engines: {node: '>= 20'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: true - optional: true - /@tailwindcss/oxide-wasm32-wasi@4.1.18: resolution: {integrity: sha512-LffYTvPjODiP6PT16oNeUQJzNVyJl1cjIebq/rWWBF+3eDst5JGEFSc5cWxyRCJ0Mxl+KyIkqRxk1XPEs9x8TA==} engines: {node: '>=14.0.0'} @@ -4016,21 +3151,6 @@ packages: - '@emnapi/wasi-threads' - tslib - /@tailwindcss/oxide-wasm32-wasi@4.3.3: - resolution: {integrity: sha512-jx1+rPhY/5Ympkktd656HBWEBLxP7dH06losBLjjf5vgCODXvi9KhtftWcMIwTFIDqBr7cRnQkdLnAG+IOlGvQ==} - engines: {node: '>=14.0.0'} - cpu: [wasm32] - requiresBuild: true - dev: true - optional: true - bundledDependencies: - - '@napi-rs/wasm-runtime' - - '@emnapi/core' - - '@emnapi/runtime' - - '@tybys/wasm-util' - - '@emnapi/wasi-threads' - - tslib - /@tailwindcss/oxide-win32-arm64-msvc@4.1.18: resolution: {integrity: sha512-HjSA7mr9HmC8fu6bdsZvZ+dhjyGCLdotjVOgLA2vEqxEBZaQo9YTX4kwgEvPCpRh8o4uWc4J/wEoFzhEmjvPbA==} engines: {node: '>= 10'} @@ -4039,15 +3159,6 @@ packages: requiresBuild: true optional: true - /@tailwindcss/oxide-win32-arm64-msvc@4.3.3: - resolution: {integrity: sha512-3rc292Ca2ceK6Ulcc/bAVnTs/3nDtoPhyEKlgPv+yQJQi/JS/AMJlqzxvlDacL1nekbrcf6bTqp/jV4qgnPxNQ==} - engines: {node: '>= 20'} - cpu: [arm64] - os: [win32] - requiresBuild: true - dev: true - optional: true - /@tailwindcss/oxide-win32-x64-msvc@4.1.18: resolution: {integrity: sha512-bJWbyYpUlqamC8dpR7pfjA0I7vdF6t5VpUGMWRkXVE3AXgIZjYUYAK7II1GNaxR8J1SSrSrppRar8G++JekE3Q==} engines: {node: '>= 10'} @@ -4056,15 +3167,6 @@ packages: requiresBuild: true optional: true - /@tailwindcss/oxide-win32-x64-msvc@4.3.3: - resolution: {integrity: sha512-yJ0pwIVc/nYeGoV02WtsN8KYyLQv7kyI2wDnkezyJlGGjkd4QLwDGAwl47YpPJeuI0M0ObaXGSPjvWDPeTPggw==} - engines: {node: '>= 20'} - cpu: [x64] - os: [win32] - requiresBuild: true - dev: true - optional: true - /@tailwindcss/oxide@4.1.18: resolution: {integrity: sha512-EgCR5tTS5bUSKQgzeMClT6iCY3ToqE1y+ZB0AKldj809QXk1Y+3jB0upOYZrn9aGIzPtUsP7sX4QQ4XtjBB95A==} engines: {node: '>= 10'} @@ -4082,34 +3184,6 @@ packages: '@tailwindcss/oxide-win32-arm64-msvc': 4.1.18 '@tailwindcss/oxide-win32-x64-msvc': 4.1.18 - /@tailwindcss/oxide@4.3.3: - resolution: {integrity: sha512-krXjAikiaFSPaK/FkAQT5UTx3VormQaiZ5hBFlJZ9UFQGB/rwg1MZIhHAG9smMQRTdyJxP6Qt5MwMtdyU5FWrA==} - engines: {node: '>= 20'} - optionalDependencies: - '@tailwindcss/oxide-android-arm64': 4.3.3 - '@tailwindcss/oxide-darwin-arm64': 4.3.3 - '@tailwindcss/oxide-darwin-x64': 4.3.3 - '@tailwindcss/oxide-freebsd-x64': 4.3.3 - '@tailwindcss/oxide-linux-arm-gnueabihf': 4.3.3 - '@tailwindcss/oxide-linux-arm64-gnu': 4.3.3 - '@tailwindcss/oxide-linux-arm64-musl': 4.3.3 - '@tailwindcss/oxide-linux-x64-gnu': 4.3.3 - '@tailwindcss/oxide-linux-x64-musl': 4.3.3 - '@tailwindcss/oxide-wasm32-wasi': 4.3.3 - '@tailwindcss/oxide-win32-arm64-msvc': 4.3.3 - '@tailwindcss/oxide-win32-x64-msvc': 4.3.3 - dev: true - - /@tailwindcss/postcss@4.3.3: - resolution: {integrity: sha512-JTSZZGQi1AyKirbLN3azmjVzef92tcX7h+iSqPdaeStyFpGpDlKvvpxeOE8njhbUanbRwr3z8DyzhICWnMtQeg==} - dependencies: - '@alloc/quick-lru': 5.2.0 - '@tailwindcss/node': 4.3.3 - '@tailwindcss/oxide': 4.3.3 - postcss: 8.5.24 - tailwindcss: 4.3.3 - dev: true - /@tailwindcss/vite@4.1.18(vite@5.4.17): resolution: {integrity: sha512-jVA+/UpKL1vRLg6Hkao5jldawNmRo7mQYrZtNHMIVpLfLhDml5nMRUo/8MwoX2vNXvnaXNNMedrMfMugAVX1nA==} peerDependencies: @@ -4491,6 +3565,7 @@ packages: requiresBuild: true dependencies: tslib: 2.8.1 + dev: false optional: true /@types/aria-query@5.0.4: @@ -4777,9 +3852,11 @@ packages: /@types/json-schema@7.0.15: resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + dev: false /@types/json5@0.0.29: resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} + dev: false /@types/keyv@3.1.4: resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==} @@ -5084,29 +4161,6 @@ packages: - supports-color dev: false - /@typescript-eslint/eslint-plugin@8.65.0(@typescript-eslint/parser@8.65.0)(eslint@9.39.5)(typescript@5.5.4): - resolution: {integrity: sha512-IEgob78X12rHpUmtcwFsXhZdVGJtwTVP8FiCLZkR6GlYVrl2PcuB+KhCE5BlVC/eQpQnu8WXRtkHZuPar+gCRA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - '@typescript-eslint/parser': ^8.65.0 - eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 - typescript: '>=4.8.4 <6.1.0' - dependencies: - '@eslint-community/regexpp': 4.12.2 - '@typescript-eslint/parser': 8.65.0(eslint@9.39.5)(typescript@5.5.4) - '@typescript-eslint/scope-manager': 8.65.0 - '@typescript-eslint/type-utils': 8.65.0(eslint@9.39.5)(typescript@5.5.4) - '@typescript-eslint/utils': 8.65.0(eslint@9.39.5)(typescript@5.5.4) - '@typescript-eslint/visitor-keys': 8.65.0 - eslint: 9.39.5 - ignore: 7.0.6 - natural-compare: 1.4.0 - ts-api-utils: 2.5.0(typescript@5.5.4) - typescript: 5.5.4 - transitivePeerDependencies: - - supports-color - dev: true - /@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.5.4): resolution: {integrity: sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==} engines: {node: ^16.0.0 || >=18.0.0} @@ -5149,38 +4203,6 @@ packages: - supports-color dev: false - /@typescript-eslint/parser@8.65.0(eslint@9.39.5)(typescript@5.5.4): - resolution: {integrity: sha512-CZ4nMxWwgu1HEEFNkeaCptra9QCtkmKdgf3sWh1rl1trIhmxLilgTV4cwcbQ4wemnT4sWQN8CaKOmdYx+g2gMA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 - typescript: '>=4.8.4 <6.1.0' - dependencies: - '@typescript-eslint/scope-manager': 8.65.0 - '@typescript-eslint/types': 8.65.0 - '@typescript-eslint/typescript-estree': 8.65.0(typescript@5.5.4) - '@typescript-eslint/visitor-keys': 8.65.0 - debug: 4.4.3 - eslint: 9.39.5 - typescript: 5.5.4 - transitivePeerDependencies: - - supports-color - dev: true - - /@typescript-eslint/project-service@8.65.0(typescript@5.5.4): - resolution: {integrity: sha512-SxnPhbTsGahizDgbu7oqFH/xVtzIqMd/s+WtnSxNxJZJpLbdT5IPdzg8EZxO3+PoKahXmwJLeNQOpKJb3/bi7Q==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '>=4.8.4 <6.1.0' - dependencies: - '@typescript-eslint/tsconfig-utils': 8.65.0(typescript@5.5.4) - '@typescript-eslint/types': 8.65.0 - debug: 4.4.3 - typescript: 5.5.4 - transitivePeerDependencies: - - supports-color - dev: true - /@typescript-eslint/scope-manager@5.62.0: resolution: {integrity: sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -5205,23 +4227,6 @@ packages: '@typescript-eslint/visitor-keys': 7.18.0 dev: false - /@typescript-eslint/scope-manager@8.65.0: - resolution: {integrity: sha512-Esbl8OSYiVxBokYgWPf7VVWg/BE798wXhimnn9ML9Pt5qoDf8bfQlgjlKXR/k98+AcNzlLKYrpCcrcuZ9DZLgg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - dependencies: - '@typescript-eslint/types': 8.65.0 - '@typescript-eslint/visitor-keys': 8.65.0 - dev: true - - /@typescript-eslint/tsconfig-utils@8.65.0(typescript@5.5.4): - resolution: {integrity: sha512-j6GzGqCiRdA7Qhur2VVmKZAkBLfnHFQfx4TaJGL9RMveZqCo48jSHHO0DTgizEnGhtWnqmbtCUSrqSkdiY/0Hg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '>=4.8.4 <6.1.0' - dependencies: - typescript: 5.5.4 - dev: true - /@typescript-eslint/type-utils@6.21.0(eslint@8.57.1)(typescript@5.5.4): resolution: {integrity: sha512-rZQI7wHfao8qMX3Rd3xqeYSMCL3SoiSQLBATSiVKARdFGCYSRvmViieZjqc58jKgs8Y8i9YvVVhRbHSTA4VBag==} engines: {node: ^16.0.0 || >=18.0.0} @@ -5262,24 +4267,6 @@ packages: - supports-color dev: false - /@typescript-eslint/type-utils@8.65.0(eslint@9.39.5)(typescript@5.5.4): - resolution: {integrity: sha512-YjaZ7PRI5qY7ax2L3PbvX0rRyGtipAReCWs0mhhDBHjH/vl0g0BonaGXrKdKpMbIIsMIwDgbk/xzkBTyAltS5g==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 - typescript: '>=4.8.4 <6.1.0' - dependencies: - '@typescript-eslint/types': 8.65.0 - '@typescript-eslint/typescript-estree': 8.65.0(typescript@5.5.4) - '@typescript-eslint/utils': 8.65.0(eslint@9.39.5)(typescript@5.5.4) - debug: 4.4.3 - eslint: 9.39.5 - ts-api-utils: 2.5.0(typescript@5.5.4) - typescript: 5.5.4 - transitivePeerDependencies: - - supports-color - dev: true - /@typescript-eslint/types@5.62.0: resolution: {integrity: sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -5295,11 +4282,6 @@ packages: engines: {node: ^18.18.0 || >=20.0.0} dev: false - /@typescript-eslint/types@8.65.0: - resolution: {integrity: sha512-JSSwWNy+H0E/01jJEM+hrX6N0OFDzFzeIhHFSAS01tlVaevpG8cFyYRPhS5yjGOvBUx3sqQHVMjCL1CAZZMxBg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - dev: true - /@typescript-eslint/typescript-estree@5.62.0(typescript@5.5.4): resolution: {integrity: sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -5365,26 +4347,6 @@ packages: - supports-color dev: false - /@typescript-eslint/typescript-estree@8.65.0(typescript@5.5.4): - resolution: {integrity: sha512-JboAE2swaYt4tb1fHhHTABE2K+OLy09XfcTbhnk4Pw96f9dd2e9iYsJ28gBggHlo5z5x1rkyWvcPoTuNTd4oGg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '>=4.8.4 <6.1.0' - dependencies: - '@typescript-eslint/project-service': 8.65.0(typescript@5.5.4) - '@typescript-eslint/tsconfig-utils': 8.65.0(typescript@5.5.4) - '@typescript-eslint/types': 8.65.0 - '@typescript-eslint/visitor-keys': 8.65.0 - debug: 4.4.3 - minimatch: 10.2.5 - semver: 7.7.4 - tinyglobby: 0.2.17 - ts-api-utils: 2.5.0(typescript@5.5.4) - typescript: 5.5.4 - transitivePeerDependencies: - - supports-color - dev: true - /@typescript-eslint/utils@5.62.0(eslint@8.57.1)(typescript@5.5.4): resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -5440,23 +4402,6 @@ packages: - typescript dev: false - /@typescript-eslint/utils@8.65.0(eslint@9.39.5)(typescript@5.5.4): - resolution: {integrity: sha512-gXiwIHsYreboxeJucHKPvgwl7dXt50mF8s1/c00cP/WoVTyWKFdtfhRWwZiXYFU5H2O8vVoSLNrexFZjYS/SGA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 - typescript: '>=4.8.4 <6.1.0' - dependencies: - '@eslint-community/eslint-utils': 4.10.1(eslint@9.39.5) - '@typescript-eslint/scope-manager': 8.65.0 - '@typescript-eslint/types': 8.65.0 - '@typescript-eslint/typescript-estree': 8.65.0(typescript@5.5.4) - eslint: 9.39.5 - typescript: 5.5.4 - transitivePeerDependencies: - - supports-color - dev: true - /@typescript-eslint/visitor-keys@5.62.0: resolution: {integrity: sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -5481,14 +4426,6 @@ packages: eslint-visitor-keys: 3.4.3 dev: false - /@typescript-eslint/visitor-keys@8.65.0: - resolution: {integrity: sha512-8C71BQkGjiMmXtop7pHVJu1l2NNShFdkCyD6a2ezzs5vU/L3LRtb69EtcteFwz0mYMPzIgOw0n6OV4VBUWZd7A==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - dependencies: - '@typescript-eslint/types': 8.65.0 - eslint-visitor-keys: 5.0.1 - dev: true - /@ungap/structured-clone@1.3.0: resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==} @@ -5497,6 +4434,7 @@ packages: cpu: [arm] os: [android] requiresBuild: true + dev: false optional: true /@unrs/resolver-binding-android-arm64@1.11.1: @@ -5504,6 +4442,7 @@ packages: cpu: [arm64] os: [android] requiresBuild: true + dev: false optional: true /@unrs/resolver-binding-darwin-arm64@1.11.1: @@ -5511,6 +4450,7 @@ packages: cpu: [arm64] os: [darwin] requiresBuild: true + dev: false optional: true /@unrs/resolver-binding-darwin-x64@1.11.1: @@ -5518,6 +4458,7 @@ packages: cpu: [x64] os: [darwin] requiresBuild: true + dev: false optional: true /@unrs/resolver-binding-freebsd-x64@1.11.1: @@ -5525,6 +4466,7 @@ packages: cpu: [x64] os: [freebsd] requiresBuild: true + dev: false optional: true /@unrs/resolver-binding-linux-arm-gnueabihf@1.11.1: @@ -5532,6 +4474,7 @@ packages: cpu: [arm] os: [linux] requiresBuild: true + dev: false optional: true /@unrs/resolver-binding-linux-arm-musleabihf@1.11.1: @@ -5539,6 +4482,7 @@ packages: cpu: [arm] os: [linux] requiresBuild: true + dev: false optional: true /@unrs/resolver-binding-linux-arm64-gnu@1.11.1: @@ -5546,6 +4490,7 @@ packages: cpu: [arm64] os: [linux] requiresBuild: true + dev: false optional: true /@unrs/resolver-binding-linux-arm64-musl@1.11.1: @@ -5553,6 +4498,7 @@ packages: cpu: [arm64] os: [linux] requiresBuild: true + dev: false optional: true /@unrs/resolver-binding-linux-ppc64-gnu@1.11.1: @@ -5560,6 +4506,7 @@ packages: cpu: [ppc64] os: [linux] requiresBuild: true + dev: false optional: true /@unrs/resolver-binding-linux-riscv64-gnu@1.11.1: @@ -5567,6 +4514,7 @@ packages: cpu: [riscv64] os: [linux] requiresBuild: true + dev: false optional: true /@unrs/resolver-binding-linux-riscv64-musl@1.11.1: @@ -5574,6 +4522,7 @@ packages: cpu: [riscv64] os: [linux] requiresBuild: true + dev: false optional: true /@unrs/resolver-binding-linux-s390x-gnu@1.11.1: @@ -5581,6 +4530,7 @@ packages: cpu: [s390x] os: [linux] requiresBuild: true + dev: false optional: true /@unrs/resolver-binding-linux-x64-gnu@1.11.1: @@ -5588,6 +4538,7 @@ packages: cpu: [x64] os: [linux] requiresBuild: true + dev: false optional: true /@unrs/resolver-binding-linux-x64-musl@1.11.1: @@ -5595,6 +4546,7 @@ packages: cpu: [x64] os: [linux] requiresBuild: true + dev: false optional: true /@unrs/resolver-binding-wasm32-wasi@1.11.1: @@ -5604,6 +4556,7 @@ packages: requiresBuild: true dependencies: '@napi-rs/wasm-runtime': 0.2.12 + dev: false optional: true /@unrs/resolver-binding-win32-arm64-msvc@1.11.1: @@ -5611,6 +4564,7 @@ packages: cpu: [arm64] os: [win32] requiresBuild: true + dev: false optional: true /@unrs/resolver-binding-win32-ia32-msvc@1.11.1: @@ -5618,6 +4572,7 @@ packages: cpu: [ia32] os: [win32] requiresBuild: true + dev: false optional: true /@unrs/resolver-binding-win32-x64-msvc@1.11.1: @@ -5625,6 +4580,7 @@ packages: cpu: [x64] os: [win32] requiresBuild: true + dev: false optional: true /@upsetjs/venn.js@2.0.0: @@ -5994,6 +4950,7 @@ packages: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: acorn: 8.15.0 + dev: false /acorn@8.14.1: resolution: {integrity: sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==} @@ -6003,6 +4960,7 @@ packages: resolution: {integrity: sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==} engines: {node: '>=0.4.0'} hasBin: true + dev: false /ag-charts-community@14.0.1: resolution: {integrity: sha512-XHYdDRtEz4OYyZZuut9BiHSDy6KjXoVXNom2Zvq8EEO6HN67x73xLZNlo/9Vxwoch/3mNGkQkVTzi0zqdKFQ4w==} @@ -6120,12 +5078,14 @@ packages: /ajv@6.15.0: resolution: {integrity: sha512-fgFx7Hfoq60ytK2c7DhnF8jIvzYgOMxfugjLOSMHjLIPgenqa7S7oaagATUq99mV6IYvN2tRmC0wnTYX6iPbMw==} + requiresBuild: true dependencies: fast-deep-equal: 3.1.3 fast-json-stable-stringify: 2.1.0 json-schema-traverse: 0.4.1 uri-js: 4.4.1 dev: true + optional: true /algoliasearch@5.55.1: resolution: {integrity: sha512-FyaFnnsbVPtevQwqSj/SdxE3jAsSsY0BEH8IVLf9rXxEBdAhAmT6VKCVSMWoaPIHVN1Eufh/1w8q6k8URpIkWw==} @@ -6297,6 +5257,7 @@ packages: dependencies: call-bound: 1.0.4 is-array-buffer: 3.0.5 + dev: false /array-includes@3.1.9: resolution: {integrity: sha512-FmeCCAenzH0KH381SPT5FZmiA/TmpndpcaShhfgEN9eCVjnFBqq3l1xrI42y8+PPLI6hypzou4GXw00WHmPBLQ==} @@ -6310,6 +5271,7 @@ packages: get-intrinsic: 1.3.0 is-string: 1.1.1 math-intrinsics: 1.1.0 + dev: false /array-union@2.1.0: resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} @@ -6326,6 +5288,7 @@ packages: es-errors: 1.3.0 es-object-atoms: 1.1.1 es-shim-unscopables: 1.1.0 + dev: false /array.prototype.findlastindex@1.2.6: resolution: {integrity: sha512-F/TKATkzseUExPlfvmwQKGITM3DGTK+vkAsCZoDc5daVygbJBnjEUCbgkAvVFsgfXfX4YIqZ/27G3k3tdXrTxQ==} @@ -6338,6 +5301,7 @@ packages: es-errors: 1.3.0 es-object-atoms: 1.1.1 es-shim-unscopables: 1.1.0 + dev: false /array.prototype.flat@1.3.3: resolution: {integrity: sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==} @@ -6347,6 +5311,7 @@ packages: define-properties: 1.2.1 es-abstract: 1.24.1 es-shim-unscopables: 1.1.0 + dev: false /array.prototype.flatmap@1.3.3: resolution: {integrity: sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==} @@ -6356,6 +5321,7 @@ packages: define-properties: 1.2.1 es-abstract: 1.24.1 es-shim-unscopables: 1.1.0 + dev: false /array.prototype.tosorted@1.1.4: resolution: {integrity: sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==} @@ -6366,6 +5332,7 @@ packages: es-abstract: 1.24.1 es-errors: 1.3.0 es-shim-unscopables: 1.1.0 + dev: false /arraybuffer.prototype.slice@1.0.4: resolution: {integrity: sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==} @@ -6378,6 +5345,7 @@ packages: es-errors: 1.3.0 get-intrinsic: 1.3.0 is-array-buffer: 3.0.5 + dev: false /assert-plus@1.0.0: resolution: {integrity: sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==} @@ -6393,6 +5361,7 @@ packages: /ast-types-flow@0.0.8: resolution: {integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==} + dev: false /astral-regex@2.0.0: resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} @@ -6409,6 +5378,7 @@ packages: /async-function@1.0.0: resolution: {integrity: sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==} engines: {node: '>= 0.4'} + dev: false /async@3.2.6: resolution: {integrity: sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==} @@ -6427,10 +5397,12 @@ packages: engines: {node: '>= 0.4'} dependencies: possible-typed-array-names: 1.1.0 + dev: false /axe-core@4.11.1: resolution: {integrity: sha512-BASOg+YwO2C+346x3LZOeoovTIoTrRqEsqMa6fmfAV0P+U9mFr9NsyOEpiYvFjbc64NMrSswhV50WdXzdb/Z5A==} engines: {node: '>=4'} + dev: false /axios@1.16.1: resolution: {integrity: sha512-caYkukvroVPO8KrzuJEb50Hm07KwfBZPEC3VeFHTsqWHvKTsy54hjJz9BS/cdaypROE2rH6xvm9mHX4fgWkr3A==} @@ -6447,6 +5419,7 @@ packages: /axobject-query@4.1.0: resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} engines: {node: '>= 0.4'} + dev: false /bail@2.0.2: resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} @@ -6465,12 +5438,6 @@ packages: requiresBuild: true dev: true - /baseline-browser-mapping@2.11.6: - resolution: {integrity: sha512-69D/imtToCsIcAl8WBS2YaRwA4jO/j0HhU+hELqMEu9f54MoUtI6+XH5mrKU8rEFNEk/Ui1I2MK4/JkWacclGw==} - engines: {node: '>=6.0.0'} - hasBin: true - dev: false - /baseline-browser-mapping@2.9.11: resolution: {integrity: sha512-Sg0xJUNDU1sJNGdfGWhVHX0kkZ+HWcvmVymJbj6NSgZZmW/8S9Y2HQ5euytnIgakgxN6papOAWiwDo1ctFDcoQ==} hasBin: true @@ -6527,6 +5494,7 @@ packages: engines: {node: '>=8'} dependencies: fill-range: 7.1.1 + dev: false /browserslist@4.28.1: resolution: {integrity: sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==} @@ -6665,6 +5633,7 @@ packages: es-define-property: 1.0.1 get-intrinsic: 1.3.0 set-function-length: 1.2.2 + dev: false /call-bound@1.0.4: resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==} @@ -6672,6 +5641,7 @@ packages: dependencies: call-bind-apply-helpers: 1.0.2 get-intrinsic: 1.3.0 + dev: false /callsites@3.1.0: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} @@ -6765,10 +5735,6 @@ packages: dev: true optional: true - /client-only@0.0.1: - resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==} - dev: false - /cliui@8.0.1: resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} engines: {node: '>=12'} @@ -7261,6 +6227,7 @@ packages: /damerau-levenshtein@1.0.8: resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==} + dev: false /data-urls@5.0.0: resolution: {integrity: sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==} @@ -7277,6 +6244,7 @@ packages: call-bound: 1.0.4 es-errors: 1.3.0 is-data-view: 1.0.2 + dev: false /data-view-byte-length@1.0.2: resolution: {integrity: sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==} @@ -7285,6 +6253,7 @@ packages: call-bound: 1.0.4 es-errors: 1.3.0 is-data-view: 1.0.2 + dev: false /data-view-byte-offset@1.0.1: resolution: {integrity: sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==} @@ -7293,6 +6262,7 @@ packages: call-bound: 1.0.4 es-errors: 1.3.0 is-data-view: 1.0.2 + dev: false /dayjs@1.11.19: resolution: {integrity: sha512-t5EcLVS6QPBNqM2z8fakk/NKel+Xzshgt8FFKAn+qwlD1pzZWxh0nVCrvFK7ZDb6XucZeF9z8C7CBWTRIVApAw==} @@ -7306,6 +6276,7 @@ packages: optional: true dependencies: ms: 2.1.3 + dev: false /debug@4.4.0: resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==} @@ -7491,6 +6462,7 @@ packages: engines: {node: '>=0.10.0'} dependencies: esutils: 2.0.3 + dev: false /doctrine@3.0.0: resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} @@ -7695,14 +6667,6 @@ packages: graceful-fs: 4.2.11 tapable: 2.3.0 - /enhanced-resolve@5.24.4: - resolution: {integrity: sha512-GVoi+ICHocoOIU7qVVM48wOJziRsqrsyqlI0Ce0LdowRn6v3bcH2zUa9kp85ncx0nwIb9/HOCOLS3fdThDG/XQ==} - engines: {node: '>=10.13.0'} - dependencies: - graceful-fs: 4.2.11 - tapable: 2.3.3 - dev: true - /entities@6.0.1: resolution: {integrity: sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==} engines: {node: '>=0.12'} @@ -7792,6 +6756,7 @@ packages: typed-array-length: 1.0.7 unbox-primitive: 1.1.0 which-typed-array: 1.1.19 + dev: false /es-define-property@1.0.1: resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==} @@ -7821,6 +6786,7 @@ packages: internal-slot: 1.1.0 iterator.prototype: 1.1.5 safe-array-concat: 1.1.3 + dev: false /es-module-lexer@1.7.0: resolution: {integrity: sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==} @@ -7846,6 +6812,7 @@ packages: engines: {node: '>= 0.4'} dependencies: hasown: 2.0.2 + dev: false /es-to-primitive@1.3.0: resolution: {integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==} @@ -7854,6 +6821,7 @@ packages: is-callable: 1.2.7 is-date-object: 1.1.0 is-symbol: 1.1.1 + dev: false /es-toolkit@1.48.1: resolution: {integrity: sha512-wfnXlwd5I75eXRtdD2vuEs50xHHESECDsGD7yiQnfFVNoa5522NwXEbmgo98LfiukSQHs+mBM7/YG3qKJB9/mQ==} @@ -7941,33 +6909,6 @@ packages: resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} engines: {node: '>=10'} - /eslint-config-next@16.2.12(@typescript-eslint/parser@8.65.0)(eslint@9.39.5)(typescript@5.5.4): - resolution: {integrity: sha512-iaaf4vvKo5h2LBdGt0JuRv7t0Ysqr9FMCiFxbptDg8LqOE//mIKR80DdpOnSVM7qjLH3jT8P0aFiwXxBEGZRXw==} - peerDependencies: - eslint: '>=9.0.0' - typescript: '>=3.3.1' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@next/eslint-plugin-next': 16.2.12 - eslint: 9.39.5 - eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@9.39.5) - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.65.0)(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.5) - eslint-plugin-jsx-a11y: 6.10.2(eslint@9.39.5) - eslint-plugin-react: 7.37.5(eslint@9.39.5) - eslint-plugin-react-hooks: 7.1.1(eslint@9.39.5) - globals: 16.4.0 - typescript: 5.5.4 - typescript-eslint: 8.65.0(eslint@9.39.5)(typescript@5.5.4) - transitivePeerDependencies: - - '@typescript-eslint/parser' - - eslint-import-resolver-webpack - - eslint-plugin-import-x - - supports-color - dev: true - /eslint-config-prettier@9.1.0(eslint@8.57.1): resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==} hasBin: true @@ -8005,6 +6946,7 @@ packages: resolve: 1.22.11 transitivePeerDependencies: - supports-color + dev: false /eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0)(eslint@8.57.1): resolution: {integrity: sha512-A1rHYb06zjMGAxdLSkN2fXPBwuSaQ0iO5M/hdyS0Ajj1VBaRp0sPD3dn1FhME3c/JluGFbwSxyCfqdSbtQLAHQ==} @@ -8032,32 +6974,6 @@ packages: - supports-color dev: false - /eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0)(eslint@9.39.5): - resolution: {integrity: sha512-A1rHYb06zjMGAxdLSkN2fXPBwuSaQ0iO5M/hdyS0Ajj1VBaRp0sPD3dn1FhME3c/JluGFbwSxyCfqdSbtQLAHQ==} - engines: {node: ^14.18.0 || >=16.0.0} - peerDependencies: - eslint: '*' - eslint-plugin-import: '*' - eslint-plugin-import-x: '*' - peerDependenciesMeta: - eslint-plugin-import: - optional: true - eslint-plugin-import-x: - optional: true - dependencies: - '@nolyfill/is-core-module': 1.0.39 - debug: 4.4.3 - eslint: 9.39.5 - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.65.0)(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.5) - get-tsconfig: 4.13.0 - is-bun-module: 2.0.0 - stable-hash: 0.0.5 - tinyglobby: 0.2.15 - unrs-resolver: 1.11.1 - transitivePeerDependencies: - - supports-color - dev: true - /eslint-mdx@3.6.2(eslint@8.57.1): resolution: {integrity: sha512-5hczn5iSSEcwtNtVXFwCKIk6iLEDaZpwc3vjYDl/B779OzaAAK/ou16J2xVdO6ecOLEO1WZqp7MRCQ/WsKDUig==} engines: {node: '>=18.0.0'} @@ -8116,36 +7032,6 @@ packages: - supports-color dev: false - /eslint-module-utils@2.12.1(@typescript-eslint/parser@8.65.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.5): - resolution: {integrity: sha512-L8jSWTze7K2mTg0vos/RuLRS5soomksDPoJLXIslC7c8Wmut3bx7CPpJijDcBZtxQ5lrbUdM+s0OlNbz0DCDNw==} - engines: {node: '>=4'} - peerDependencies: - '@typescript-eslint/parser': '*' - eslint: '*' - eslint-import-resolver-node: '*' - eslint-import-resolver-typescript: '*' - eslint-import-resolver-webpack: '*' - peerDependenciesMeta: - '@typescript-eslint/parser': - optional: true - eslint: - optional: true - eslint-import-resolver-node: - optional: true - eslint-import-resolver-typescript: - optional: true - eslint-import-resolver-webpack: - optional: true - dependencies: - '@typescript-eslint/parser': 8.65.0(eslint@9.39.5)(typescript@5.5.4) - debug: 3.2.7 - eslint: 9.39.5 - eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@9.39.5) - transitivePeerDependencies: - - supports-color - dev: true - /eslint-plugin-eslint-comments@3.2.0(eslint@8.57.1): resolution: {integrity: sha512-0jkOl0hfojIHHmEHgmNdqv4fmh7300NdpA9FFpF7zaoLvB/QeXOGNLIo86oAveJFrfB1p05kC8hpEMHM8DwWVQ==} engines: {node: '>=6.5.0'} @@ -8194,43 +7080,6 @@ packages: - supports-color dev: false - /eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.65.0)(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.5): - resolution: {integrity: sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA==} - engines: {node: '>=4'} - peerDependencies: - '@typescript-eslint/parser': '*' - eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9 - peerDependenciesMeta: - '@typescript-eslint/parser': - optional: true - dependencies: - '@rtsao/scc': 1.1.0 - '@typescript-eslint/parser': 8.65.0(eslint@9.39.5)(typescript@5.5.4) - array-includes: 3.1.9 - array.prototype.findlastindex: 1.2.6 - array.prototype.flat: 1.3.3 - array.prototype.flatmap: 1.3.3 - debug: 3.2.7 - doctrine: 2.1.0 - eslint: 9.39.5 - eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.65.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.5) - hasown: 2.0.2 - is-core-module: 2.16.1 - is-glob: 4.0.3 - minimatch: 3.1.5 - object.fromentries: 2.0.8 - object.groupby: 1.0.3 - object.values: 1.2.1 - semver: 6.3.1 - string.prototype.trimend: 1.0.9 - tsconfig-paths: 3.15.0 - transitivePeerDependencies: - - eslint-import-resolver-typescript - - eslint-import-resolver-webpack - - supports-color - dev: true - /eslint-plugin-jest@27.9.0(@typescript-eslint/eslint-plugin@6.21.0)(eslint@8.57.1)(typescript@5.5.4): resolution: {integrity: sha512-QIT7FH7fNmd9n4se7FFKHbsLKGQiw885Ds6Y/sxKgCZ6natwCsXdgPOADnYVxN2QrRweF0FZWbJ6S7Rsn7llug==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -8276,30 +7125,6 @@ packages: string.prototype.includes: 2.0.1 dev: false - /eslint-plugin-jsx-a11y@6.10.2(eslint@9.39.5): - resolution: {integrity: sha512-scB3nz4WmG75pV8+3eRUQOHZlNSUhFNq37xnpgRkCCELU3XMvXAxLk1eqWWyE22Ki4Q01Fnsw9BA3cJHDPgn2Q==} - engines: {node: '>=4.0'} - peerDependencies: - eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9 - dependencies: - aria-query: 5.3.2 - array-includes: 3.1.9 - array.prototype.flatmap: 1.3.3 - ast-types-flow: 0.0.8 - axe-core: 4.11.1 - axobject-query: 4.1.0 - damerau-levenshtein: 1.0.8 - emoji-regex: 9.2.2 - eslint: 9.39.5 - hasown: 2.0.2 - jsx-ast-utils: 3.3.5 - language-tags: 1.0.9 - minimatch: 3.1.5 - object.fromentries: 2.0.8 - safe-regex-test: 1.1.0 - string.prototype.includes: 2.0.1 - dev: true - /eslint-plugin-mdx@3.6.2(eslint@8.57.1): resolution: {integrity: sha512-RfMd5HYD/9+cqANhVWJbuBRg3huWUsAoGJNGmPsyiRD2X6BaG6bvt1omyk1ORlg81GK8ST7Ojt5fNAuwWhWU8A==} engines: {node: '>=18.0.0'} @@ -8350,22 +7175,6 @@ packages: eslint: 8.57.1 dev: false - /eslint-plugin-react-hooks@7.1.1(eslint@9.39.5): - resolution: {integrity: sha512-f2I7Gw6JbvCexzIInuSbZpfdQ44D7iqdWX01FKLvrPgqxoE7oMj8clOfto8U6vYiz4yd5oKu39rRSVOe1zRu0g==} - engines: {node: '>=18'} - peerDependencies: - eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0 || ^10.0.0 - dependencies: - '@babel/core': 7.28.5 - '@babel/parser': 7.29.7 - eslint: 9.39.5 - hermes-parser: 0.25.1 - zod: 3.25.76 - zod-validation-error: 4.0.2(zod@3.25.76) - transitivePeerDependencies: - - supports-color - dev: true - /eslint-plugin-react@7.37.5(eslint@8.57.1): resolution: {integrity: sha512-Qteup0SqU15kdocexFNAJMvCJEfa2xUKNV4CC1xsVMrIIqEy3SQ/rqyxCWNzfrd3/ldy6HMlD2e0JDVpDg2qIA==} engines: {node: '>=4'} @@ -8393,33 +7202,6 @@ packages: string.prototype.repeat: 1.0.0 dev: false - /eslint-plugin-react@7.37.5(eslint@9.39.5): - resolution: {integrity: sha512-Qteup0SqU15kdocexFNAJMvCJEfa2xUKNV4CC1xsVMrIIqEy3SQ/rqyxCWNzfrd3/ldy6HMlD2e0JDVpDg2qIA==} - engines: {node: '>=4'} - peerDependencies: - eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7 - dependencies: - array-includes: 3.1.9 - array.prototype.findlast: 1.2.5 - array.prototype.flatmap: 1.3.3 - array.prototype.tosorted: 1.1.4 - doctrine: 2.1.0 - es-iterator-helpers: 1.2.2 - eslint: 9.39.5 - estraverse: 5.3.0 - hasown: 2.0.2 - jsx-ast-utils: 3.3.5 - minimatch: 3.1.5 - object.entries: 1.1.9 - object.fromentries: 2.0.8 - object.values: 1.2.1 - prop-types: 15.8.1 - resolve: 2.0.0-next.5 - semver: 6.3.1 - string.prototype.matchall: 4.0.12 - string.prototype.repeat: 1.0.0 - dev: true - /eslint-plugin-storybook@0.8.0(eslint@8.57.1)(typescript@5.5.4): resolution: {integrity: sha512-CZeVO5EzmPY7qghO2t64oaFM+8FTaD4uzOEjHKp516exyTKo+skKAL9GI3QALS2BXhyALJjNtwbmr1XinGE8bA==} engines: {node: '>= 18'} @@ -8506,14 +7288,6 @@ packages: esrecurse: 4.3.0 estraverse: 5.3.0 - /eslint-scope@8.4.0: - resolution: {integrity: sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - dependencies: - esrecurse: 4.3.0 - estraverse: 5.3.0 - dev: true - /eslint-visitor-keys@2.1.0: resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==} engines: {node: '>=10'} @@ -8523,16 +7297,6 @@ packages: resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - /eslint-visitor-keys@4.2.1: - resolution: {integrity: sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - dev: true - - /eslint-visitor-keys@5.0.1: - resolution: {integrity: sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==} - engines: {node: ^20.19.0 || ^22.13.0 || >=24} - dev: true - /eslint@8.57.1: resolution: {integrity: sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -8578,63 +7342,6 @@ packages: transitivePeerDependencies: - supports-color - /eslint@9.39.5: - resolution: {integrity: sha512-DgZS62aPLXKlnxILS/AYCoRvHaZeXceIzlXPkkGGzJWSow1aEk0lbTlxUSlyjC8jcaKxAdOnTDz+o1JFSBsyjw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - hasBin: true - peerDependencies: - jiti: '*' - peerDependenciesMeta: - jiti: - optional: true - dependencies: - '@eslint-community/eslint-utils': 4.10.1(eslint@9.39.5) - '@eslint-community/regexpp': 4.12.2 - '@eslint/config-array': 0.21.2 - '@eslint/config-helpers': 0.4.2 - '@eslint/core': 0.17.0 - '@eslint/eslintrc': 3.3.6 - '@eslint/js': 9.39.5 - '@eslint/plugin-kit': 0.4.1 - '@humanfs/node': 0.16.8 - '@humanwhocodes/module-importer': 1.0.1 - '@humanwhocodes/retry': 0.4.3 - '@types/estree': 1.0.8 - ajv: 6.15.0 - chalk: 4.1.2 - cross-spawn: 7.0.6 - debug: 4.4.3 - escape-string-regexp: 4.0.0 - eslint-scope: 8.4.0 - eslint-visitor-keys: 4.2.1 - espree: 10.4.0 - esquery: 1.6.0 - esutils: 2.0.3 - fast-deep-equal: 3.1.3 - file-entry-cache: 8.0.0 - find-up: 5.0.0 - glob-parent: 6.0.2 - ignore: 5.3.2 - imurmurhash: 0.1.4 - is-glob: 4.0.3 - json-stable-stringify-without-jsonify: 1.0.1 - lodash.merge: 4.6.2 - minimatch: 3.1.5 - natural-compare: 1.4.0 - optionator: 0.9.4 - transitivePeerDependencies: - - supports-color - dev: true - - /espree@10.4.0: - resolution: {integrity: sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - dependencies: - acorn: 8.15.0 - acorn-jsx: 5.3.2(acorn@8.15.0) - eslint-visitor-keys: 4.2.1 - dev: true - /espree@9.6.1: resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -8736,17 +7443,6 @@ packages: engines: {node: '>=6.0.0'} dev: false - /fast-glob@3.3.1: - resolution: {integrity: sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==} - engines: {node: '>=8.6.0'} - dependencies: - '@nodelib/fs.stat': 2.0.5 - '@nodelib/fs.walk': 1.2.8 - glob-parent: 5.1.2 - merge2: 1.4.1 - micromatch: 4.0.8 - dev: true - /fast-glob@3.3.3: resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} engines: {node: '>=8.6.0'} @@ -8796,6 +7492,7 @@ packages: optional: true dependencies: picomatch: 4.0.5 + dev: false /fetch-cookie@2.2.0: resolution: {integrity: sha512-h9AgfjURuCgA2+2ISl8GbavpUdR+WGAM2McW/ovn4tVccegp8ZqCKWSBR8uRdM8dDNlx5WdKRWxBYUwteLDCNQ==} @@ -8809,13 +7506,6 @@ packages: dependencies: flat-cache: 3.2.0 - /file-entry-cache@8.0.0: - resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} - engines: {node: '>=16.0.0'} - dependencies: - flat-cache: 4.0.1 - dev: true - /filelist@1.0.6: resolution: {integrity: sha512-5giy2PkLYY1cP39p17Ech+2xlpTRL9HLspOfEgm0L6CwBXBTgsK5ou0JtzYuepxkaQ/tvhCFIJ5uXo0OrM2DxA==} dependencies: @@ -8827,6 +7517,7 @@ packages: engines: {node: '>=8'} dependencies: to-regex-range: 5.0.1 + dev: false /find-up@4.1.0: resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} @@ -8851,14 +7542,6 @@ packages: keyv: 4.5.4 rimraf: 3.0.2 - /flat-cache@4.0.1: - resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} - engines: {node: '>=16'} - dependencies: - flatted: 3.3.3 - keyv: 4.5.4 - dev: true - /flatted@3.3.3: resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==} @@ -8883,6 +7566,7 @@ packages: engines: {node: '>= 0.4'} dependencies: is-callable: 1.2.7 + dev: false /foreground-child@3.3.1: resolution: {integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==} @@ -8971,6 +7655,7 @@ packages: functions-have-names: 1.2.3 hasown: 2.0.2 is-callable: 1.2.7 + dev: false /functional-red-black-tree@1.0.1: resolution: {integrity: sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==} @@ -8978,6 +7663,7 @@ packages: /functions-have-names@1.2.3: resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} + dev: false /gauge@4.0.4: resolution: {integrity: sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==} @@ -8997,6 +7683,7 @@ packages: /generator-function@2.0.1: resolution: {integrity: sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g==} engines: {node: '>= 0.4'} + dev: false /gensync@1.0.0-beta.2: resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} @@ -9048,6 +7735,7 @@ packages: call-bound: 1.0.4 es-errors: 1.3.0 get-intrinsic: 1.3.0 + dev: false /get-tsconfig@4.13.0: resolution: {integrity: sha512-1VKTZJCwBrvbd+Wn3AOgQP/2Av+TfTCOlE4AcRJE72W1ksZXbAx8PPBR9RzgTeSPzlPMHrbANMH3LbltH73wxQ==} @@ -9063,6 +7751,7 @@ packages: engines: {node: '>= 6'} dependencies: is-glob: 4.0.3 + dev: false /glob-parent@6.0.2: resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} @@ -9123,16 +7812,6 @@ packages: dependencies: type-fest: 0.20.2 - /globals@14.0.0: - resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} - engines: {node: '>=18'} - dev: true - - /globals@16.4.0: - resolution: {integrity: sha512-ob/2LcVVaVGCYN+r14cnwnoDPUufjiYgSqRhiFD0Q1iI4Odora5RE8Iv1D24hAz5oMophRGkGz+yuvQmmUMnMw==} - engines: {node: '>=18'} - dev: true - /globalthis@1.0.4: resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} engines: {node: '>= 0.4'} @@ -9186,6 +7865,7 @@ packages: /has-bigints@1.1.0: resolution: {integrity: sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==} engines: {node: '>= 0.4'} + dev: false /has-flag@4.0.0: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} @@ -9201,6 +7881,7 @@ packages: engines: {node: '>= 0.4'} dependencies: dunder-proto: 1.0.1 + dev: false /has-symbols@1.1.0: resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} @@ -9244,16 +7925,6 @@ packages: '@types/hast': 3.0.4 dev: true - /hermes-estree@0.25.1: - resolution: {integrity: sha512-0wUoCcLp+5Ev5pDW2OriHC2MJCbwLwuRx+gAqMTOkGKJJiBCLjtrvy4PWUGn6MIVefecRpzoOZ/UV6iGdOr+Cw==} - dev: true - - /hermes-parser@0.25.1: - resolution: {integrity: sha512-6pEjquH3rqaI6cYAXYPcz9MS4rY6R4ngRgrgfDshRptUZIc3lw0MCIJIGDj9++mfySOuPTHB4nrSW99BCvOPIA==} - dependencies: - hermes-estree: 0.25.1 - dev: true - /hoist-non-react-statics@3.3.2: resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==} dependencies: @@ -9385,12 +8056,6 @@ packages: safer-buffer: 2.1.2 dev: true - /icu-minify@4.13.4: - resolution: {integrity: sha512-yK6HyPLGlQjqm8fTKtnBpM77z7vl7JdDBN2EXLvmgAu/b7XaOHWZb73M3ISl9ahBTehBv7RYeqqWSHfk1v2YcA==} - dependencies: - '@formatjs/icu-messageformat-parser': 3.5.15 - dev: false - /ieee754@1.2.1: resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} requiresBuild: true @@ -9405,11 +8070,6 @@ packages: engines: {node: '>= 4'} dev: false - /ignore@7.0.6: - resolution: {integrity: sha512-BAg6QkE8W+TuQLrrw0Ugr7HegXduRuuj8/ti2kSOc+jz1dmx8/WNcjr6XGnq5YpDWxFwwaavqD0+jIUOKelTsw==} - engines: {node: '>= 4'} - dev: true - /immediate@3.3.0: resolution: {integrity: sha512-HR7EVodfFUdQCTIeySw+WDRFJlPcLOJbXfwwZ7Oom6tjsvZ3bOkCDJHehQC3nxJrv7+f9XecwazynjU8e4Vw3Q==} dev: true @@ -9467,6 +8127,7 @@ packages: es-errors: 1.3.0 hasown: 2.0.2 side-channel: 1.1.0 + dev: false /internmap@1.0.1: resolution: {integrity: sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw==} @@ -9477,13 +8138,6 @@ packages: engines: {node: '>=12'} dev: true - /intl-messageformat@11.2.12: - resolution: {integrity: sha512-KW70Xxfcvy7vV3qODfvShWkFDPMqKDAa4N+hSyVBWGNtVhTUFYaqlD/l88DaYPKiVcPP4rPQ3qnH7i5K82Mg7g==} - dependencies: - '@formatjs/fast-memoize': 3.1.7 - '@formatjs/icu-messageformat-parser': 3.5.15 - dev: false - /ip-address@10.1.0: resolution: {integrity: sha512-XXADHxXmvT9+CRxhXg56LJovE+bmWnEWB78LB83VZTprKTmaC5QfruXocxzTZ2Kl0DNwKuBdlIhjL8LeY8Sf8Q==} engines: {node: '>= 12'} @@ -9507,6 +8161,7 @@ packages: call-bind: 1.0.8 call-bound: 1.0.4 get-intrinsic: 1.3.0 + dev: false /is-arrayish@0.2.1: resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} @@ -9521,12 +8176,14 @@ packages: get-proto: 1.0.1 has-tostringtag: 1.0.2 safe-regex-test: 1.1.0 + dev: false /is-bigint@1.1.0: resolution: {integrity: sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==} engines: {node: '>= 0.4'} dependencies: has-bigints: 1.1.0 + dev: false /is-boolean-object@1.2.2: resolution: {integrity: sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==} @@ -9534,6 +8191,7 @@ packages: dependencies: call-bound: 1.0.4 has-tostringtag: 1.0.2 + dev: false /is-builtin-module@3.2.1: resolution: {integrity: sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==} @@ -9546,10 +8204,12 @@ packages: resolution: {integrity: sha512-gNCGbnnnnFAUGKeZ9PdbyeGYJqewpmc2aKHUEMO5nQPWU9lOmv7jcmQIv+qHD8fXW6W7qfuCwX4rY9LNRjXrkQ==} dependencies: semver: 7.7.1 + dev: false /is-callable@1.2.7: resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} engines: {node: '>= 0.4'} + dev: false /is-ci@3.0.1: resolution: {integrity: sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==} @@ -9563,6 +8223,7 @@ packages: engines: {node: '>= 0.4'} dependencies: hasown: 2.0.2 + dev: false /is-data-view@1.0.2: resolution: {integrity: sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==} @@ -9571,6 +8232,7 @@ packages: call-bound: 1.0.4 get-intrinsic: 1.3.0 is-typed-array: 1.1.15 + dev: false /is-date-object@1.1.0: resolution: {integrity: sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==} @@ -9578,6 +8240,7 @@ packages: dependencies: call-bound: 1.0.4 has-tostringtag: 1.0.2 + dev: false /is-decimal@2.0.1: resolution: {integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==} @@ -9596,6 +8259,7 @@ packages: engines: {node: '>= 0.4'} dependencies: call-bound: 1.0.4 + dev: false /is-fullwidth-code-point@3.0.0: resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} @@ -9610,6 +8274,7 @@ packages: get-proto: 1.0.1 has-tostringtag: 1.0.2 safe-regex-test: 1.1.0 + dev: false /is-glob@4.0.3: resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} @@ -9633,10 +8298,12 @@ packages: /is-map@2.0.3: resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} engines: {node: '>= 0.4'} + dev: false /is-negative-zero@2.0.3: resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} engines: {node: '>= 0.4'} + dev: false /is-number-object@1.1.1: resolution: {integrity: sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==} @@ -9644,10 +8311,12 @@ packages: dependencies: call-bound: 1.0.4 has-tostringtag: 1.0.2 + dev: false /is-number@7.0.0: resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} engines: {node: '>=0.12.0'} + dev: false /is-path-inside@3.0.3: resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} @@ -9670,16 +8339,19 @@ packages: gopd: 1.2.0 has-tostringtag: 1.0.2 hasown: 2.0.2 + dev: false /is-set@2.0.3: resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==} engines: {node: '>= 0.4'} + dev: false /is-shared-array-buffer@1.0.4: resolution: {integrity: sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==} engines: {node: '>= 0.4'} dependencies: call-bound: 1.0.4 + dev: false /is-string@1.1.1: resolution: {integrity: sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==} @@ -9687,6 +8359,7 @@ packages: dependencies: call-bound: 1.0.4 has-tostringtag: 1.0.2 + dev: false /is-symbol@1.1.1: resolution: {integrity: sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==} @@ -9695,12 +8368,14 @@ packages: call-bound: 1.0.4 has-symbols: 1.1.0 safe-regex-test: 1.1.0 + dev: false /is-typed-array@1.1.15: resolution: {integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==} engines: {node: '>= 0.4'} dependencies: which-typed-array: 1.1.19 + dev: false /is-unicode-supported@0.1.0: resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} @@ -9710,12 +8385,14 @@ packages: /is-weakmap@2.0.2: resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==} engines: {node: '>= 0.4'} + dev: false /is-weakref@1.1.1: resolution: {integrity: sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==} engines: {node: '>= 0.4'} dependencies: call-bound: 1.0.4 + dev: false /is-weakset@2.0.4: resolution: {integrity: sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==} @@ -9723,6 +8400,7 @@ packages: dependencies: call-bound: 1.0.4 get-intrinsic: 1.3.0 + dev: false /is-what@5.5.0: resolution: {integrity: sha512-oG7cgbmg5kLYae2N5IVd3jm2s+vldjxJzK1pcu9LfpGuQ93MQSzo0okvRna+7y5ifrD+20FE8FvjusyGaz14fw==} @@ -9739,6 +8417,7 @@ packages: /isarray@2.0.5: resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} + dev: false /isbinaryfile@4.0.10: resolution: {integrity: sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==} @@ -9768,6 +8447,7 @@ packages: get-proto: 1.0.1 has-symbols: 1.1.0 set-function-name: 2.0.2 + dev: false /jackspeak@3.4.3: resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} @@ -9790,11 +8470,6 @@ packages: resolution: {integrity: sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==} hasBin: true - /jiti@2.7.0: - resolution: {integrity: sha512-AC/7JofJvZGrrneWNaEnJeOLUx+JlGt7tNa0wZiRPT4MY1wmfKjt2+6O2p2uz2+skll8OZZmJMNqeke7kKbNgQ==} - hasBin: true - dev: true - /jju@1.4.0: resolution: {integrity: sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==} dev: false @@ -9807,13 +8482,6 @@ packages: dependencies: argparse: 2.0.1 - /js-yaml@4.3.0: - resolution: {integrity: sha512-1td788aAnnZ5qs7V2QIRl1owjtYpbKt749Y3xauqQgwIIGF/xXWz1wMTEBx5O3LK3lXLVuqXPdPxj2BoFHaW9Q==} - hasBin: true - dependencies: - argparse: 2.0.1 - dev: true - /jsdom@26.1.0: resolution: {integrity: sha512-Cvc9WUhxSMEo4McES3P7oK3QaXldCfNWp7pl2NNeiIFlCoLr3kfq9kb1fxftiwk1FLV7CvpvDfonxtzUDeSOPg==} engines: {node: '>=18'} @@ -9888,6 +8556,7 @@ packages: hasBin: true dependencies: minimist: 1.2.8 + dev: false /json5@2.2.3: resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} @@ -9915,6 +8584,7 @@ packages: array.prototype.flat: 1.3.3 object.assign: 4.1.7 object.values: 1.2.1 + dev: false /katex@0.16.47: resolution: {integrity: sha512-Eeo8Ys1doU1z+x8AZsPpQu+p/QcZBI5PeOo7QGQdy2x2m0MU/hYagBbGOmXwr5KVbEfVuWv9LpnQWeehogurjg==} @@ -9939,12 +8609,14 @@ packages: /language-subtag-registry@0.3.23: resolution: {integrity: sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==} + dev: false /language-tags@1.0.9: resolution: {integrity: sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==} engines: {node: '>=0.10'} dependencies: language-subtag-registry: 0.3.23 + dev: false /layout-base@1.0.2: resolution: {integrity: sha512-8h2oVEZNktL4BH2JCOI90iD1yXwL6iNW7KcCKT2QZgQJR2vbqDsldCTPRU9NifTCqHZci57XvQQ15YTu+sTYPg==} @@ -10029,15 +8701,6 @@ packages: requiresBuild: true optional: true - /lightningcss-android-arm64@1.32.0: - resolution: {integrity: sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg==} - engines: {node: '>= 12.0.0'} - cpu: [arm64] - os: [android] - requiresBuild: true - dev: true - optional: true - /lightningcss-darwin-arm64@1.30.2: resolution: {integrity: sha512-ylTcDJBN3Hp21TdhRT5zBOIi73P6/W0qwvlFEk22fkdXchtNTOU4Qc37SkzV+EKYxLouZ6M4LG9NfZ1qkhhBWA==} engines: {node: '>= 12.0.0'} @@ -10046,15 +8709,6 @@ packages: requiresBuild: true optional: true - /lightningcss-darwin-arm64@1.32.0: - resolution: {integrity: sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ==} - engines: {node: '>= 12.0.0'} - cpu: [arm64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - /lightningcss-darwin-x64@1.30.2: resolution: {integrity: sha512-oBZgKchomuDYxr7ilwLcyms6BCyLn0z8J0+ZZmfpjwg9fRVZIR5/GMXd7r9RH94iDhld3UmSjBM6nXWM2TfZTQ==} engines: {node: '>= 12.0.0'} @@ -10063,15 +8717,6 @@ packages: requiresBuild: true optional: true - /lightningcss-darwin-x64@1.32.0: - resolution: {integrity: sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w==} - engines: {node: '>= 12.0.0'} - cpu: [x64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - /lightningcss-freebsd-x64@1.30.2: resolution: {integrity: sha512-c2bH6xTrf4BDpK8MoGG4Bd6zAMZDAXS569UxCAGcA7IKbHNMlhGQ89eRmvpIUGfKWNVdbhSbkQaWhEoMGmGslA==} engines: {node: '>= 12.0.0'} @@ -10080,15 +8725,6 @@ packages: requiresBuild: true optional: true - /lightningcss-freebsd-x64@1.32.0: - resolution: {integrity: sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig==} - engines: {node: '>= 12.0.0'} - cpu: [x64] - os: [freebsd] - requiresBuild: true - dev: true - optional: true - /lightningcss-linux-arm-gnueabihf@1.30.2: resolution: {integrity: sha512-eVdpxh4wYcm0PofJIZVuYuLiqBIakQ9uFZmipf6LF/HRj5Bgm0eb3qL/mr1smyXIS1twwOxNWndd8z0E374hiA==} engines: {node: '>= 12.0.0'} @@ -10097,15 +8733,6 @@ packages: requiresBuild: true optional: true - /lightningcss-linux-arm-gnueabihf@1.32.0: - resolution: {integrity: sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw==} - engines: {node: '>= 12.0.0'} - cpu: [arm] - os: [linux] - requiresBuild: true - dev: true - optional: true - /lightningcss-linux-arm64-gnu@1.30.2: resolution: {integrity: sha512-UK65WJAbwIJbiBFXpxrbTNArtfuznvxAJw4Q2ZGlU8kPeDIWEX1dg3rn2veBVUylA2Ezg89ktszWbaQnxD/e3A==} engines: {node: '>= 12.0.0'} @@ -10114,15 +8741,6 @@ packages: requiresBuild: true optional: true - /lightningcss-linux-arm64-gnu@1.32.0: - resolution: {integrity: sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ==} - engines: {node: '>= 12.0.0'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: true - optional: true - /lightningcss-linux-arm64-musl@1.30.2: resolution: {integrity: sha512-5Vh9dGeblpTxWHpOx8iauV02popZDsCYMPIgiuw97OJ5uaDsL86cnqSFs5LZkG3ghHoX5isLgWzMs+eD1YzrnA==} engines: {node: '>= 12.0.0'} @@ -10131,15 +8749,6 @@ packages: requiresBuild: true optional: true - /lightningcss-linux-arm64-musl@1.32.0: - resolution: {integrity: sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg==} - engines: {node: '>= 12.0.0'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: true - optional: true - /lightningcss-linux-x64-gnu@1.30.2: resolution: {integrity: sha512-Cfd46gdmj1vQ+lR6VRTTadNHu6ALuw2pKR9lYq4FnhvgBc4zWY1EtZcAc6EffShbb1MFrIPfLDXD6Xprbnni4w==} engines: {node: '>= 12.0.0'} @@ -10148,15 +8757,6 @@ packages: requiresBuild: true optional: true - /lightningcss-linux-x64-gnu@1.32.0: - resolution: {integrity: sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA==} - engines: {node: '>= 12.0.0'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: true - optional: true - /lightningcss-linux-x64-musl@1.30.2: resolution: {integrity: sha512-XJaLUUFXb6/QG2lGIW6aIk6jKdtjtcffUT0NKvIqhSBY3hh9Ch+1LCeH80dR9q9LBjG3ewbDjnumefsLsP6aiA==} engines: {node: '>= 12.0.0'} @@ -10165,15 +8765,6 @@ packages: requiresBuild: true optional: true - /lightningcss-linux-x64-musl@1.32.0: - resolution: {integrity: sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg==} - engines: {node: '>= 12.0.0'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: true - optional: true - /lightningcss-win32-arm64-msvc@1.30.2: resolution: {integrity: sha512-FZn+vaj7zLv//D/192WFFVA0RgHawIcHqLX9xuWiQt7P0PtdFEVaxgF9rjM/IRYHQXNnk61/H/gb2Ei+kUQ4xQ==} engines: {node: '>= 12.0.0'} @@ -10182,15 +8773,6 @@ packages: requiresBuild: true optional: true - /lightningcss-win32-arm64-msvc@1.32.0: - resolution: {integrity: sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw==} - engines: {node: '>= 12.0.0'} - cpu: [arm64] - os: [win32] - requiresBuild: true - dev: true - optional: true - /lightningcss-win32-x64-msvc@1.30.2: resolution: {integrity: sha512-5g1yc73p+iAkid5phb4oVFMB45417DkRevRbt/El/gKXJk4jid+vPFF/AXbxn05Aky8PapwzZrdJShv5C0avjw==} engines: {node: '>= 12.0.0'} @@ -10199,15 +8781,6 @@ packages: requiresBuild: true optional: true - /lightningcss-win32-x64-msvc@1.32.0: - resolution: {integrity: sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q==} - engines: {node: '>= 12.0.0'} - cpu: [x64] - os: [win32] - requiresBuild: true - dev: true - optional: true - /lightningcss@1.30.2: resolution: {integrity: sha512-utfs7Pr5uJyyvDETitgsaqSyjCb2qNRAtuqUeWIAKztsOYdcACf2KtARYXg2pSvhkt+9NfoaNY7fxjl6nuMjIQ==} engines: {node: '>= 12.0.0'} @@ -10226,25 +8799,6 @@ packages: lightningcss-win32-arm64-msvc: 1.30.2 lightningcss-win32-x64-msvc: 1.30.2 - /lightningcss@1.32.0: - resolution: {integrity: sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ==} - engines: {node: '>= 12.0.0'} - dependencies: - detect-libc: 2.1.2 - optionalDependencies: - lightningcss-android-arm64: 1.32.0 - lightningcss-darwin-arm64: 1.32.0 - lightningcss-darwin-x64: 1.32.0 - lightningcss-freebsd-x64: 1.32.0 - lightningcss-linux-arm-gnueabihf: 1.32.0 - lightningcss-linux-arm64-gnu: 1.32.0 - lightningcss-linux-arm64-musl: 1.32.0 - lightningcss-linux-x64-gnu: 1.32.0 - lightningcss-linux-x64-musl: 1.32.0 - lightningcss-win32-arm64-msvc: 1.32.0 - lightningcss-win32-x64-msvc: 1.32.0 - dev: true - /lines-and-columns@1.2.4: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} dev: false @@ -10344,6 +8898,7 @@ packages: hasBin: true dependencies: js-tokens: 4.0.0 + dev: false /lowercase-keys@2.0.0: resolution: {integrity: sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==} @@ -10572,6 +9127,7 @@ packages: /merge2@1.4.1: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} engines: {node: '>= 8'} + dev: false /mermaid@11.15.0: resolution: {integrity: sha512-pTMbcf3rWdtLiYGpmoTjHEpeY8seiy6sR+9nD7LOs8KfUbHE4lOUAprTRqRAcWSQ6MQpdX+YEsxShtGsINtPtw==} @@ -10862,6 +9418,7 @@ packages: dependencies: braces: 3.0.3 picomatch: 2.3.1 + dev: false /mime-db@1.33.0: resolution: {integrity: sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==} @@ -11036,15 +9593,11 @@ packages: hasBin: true dev: true - /nanoid@3.3.16: - resolution: {integrity: sha512-bzlKTyNJ7+LdGIIwy8ijFpIqEQIvafahV7eYykJ8Cvh42EdJeODoJ6gUJXpQJvej1BddH8OqTXZNE/KfbWAu8Q==} - engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} - hasBin: true - /napi-postinstall@0.3.4: resolution: {integrity: sha512-PHI5f1O0EP5xJ9gQmFGMS6IZcrVvTjpXjz7Na41gTE7eE2hK11lg04CECCYEEjdc17EV4DO+fkGEtt7TpTaTiQ==} engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} hasBin: true + dev: false /natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} @@ -11054,84 +9607,6 @@ packages: engines: {node: '>= 0.6'} dev: true - /negotiator@1.0.0: - resolution: {integrity: sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==} - engines: {node: '>= 0.6'} - dev: false - - /next-intl-swc-plugin-extractor@4.13.4: - resolution: {integrity: sha512-uN1+NMUYbG6YkO3q+rjc2bvAPX9nQ23owemvHJAyW0pRbQjVDwvNhmrV5qaak0oQc/9okbK17KLT49AoMGhVEQ==} - dev: false - - /next-intl@4.13.4(next@16.2.12)(react@19.2.4)(typescript@5.5.4): - resolution: {integrity: sha512-jhPAT0u0lahIK6E4gVdZAehugWCosBhLG8sV7xMzgSVoJpxHObP+Fiu+z2FfkEW0XPPtr7uEXoUlLEfhxhNMTg==} - peerDependencies: - next: ^12.0.0 || ^13.0.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || >=19.0.0-rc <19.0.0 || ^19.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@formatjs/intl-localematcher': 0.8.13 - '@parcel/watcher': 2.6.0 - '@swc/core': 1.15.46 - icu-minify: 4.13.4 - negotiator: 1.0.0 - next: 16.2.12(@babel/core@7.28.5)(react-dom@19.2.4)(react@19.2.4) - next-intl-swc-plugin-extractor: 4.13.4 - po-parser: 2.1.1 - react: 19.2.4 - typescript: 5.5.4 - use-intl: 4.13.4(react@19.2.4) - transitivePeerDependencies: - - '@swc/helpers' - dev: false - - /next@16.2.12(@babel/core@7.28.5)(react-dom@19.2.4)(react@19.2.4): - resolution: {integrity: sha512-iD59eYQWmbFcEbX7v/acG5DRym9iw1DdaPoD0WTA920naWsE25wShzJW4+UvAs8MK9EC2kBfIH6vtto1H1PHGw==} - engines: {node: '>=20.9.0'} - hasBin: true - peerDependencies: - '@opentelemetry/api': ^1.1.0 - '@playwright/test': ^1.51.1 - 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 - dependencies: - '@next/env': 16.2.12 - '@swc/helpers': 0.5.15 - baseline-browser-mapping: 2.11.6 - caniuse-lite: 1.0.30001762 - postcss: 8.4.31 - react: 19.2.4 - react-dom: 19.2.4(react@19.2.4) - styled-jsx: 5.1.6(@babel/core@7.28.5)(react@19.2.4) - optionalDependencies: - '@next/swc-darwin-arm64': 16.2.12 - '@next/swc-darwin-x64': 16.2.12 - '@next/swc-linux-arm64-gnu': 16.2.12 - '@next/swc-linux-arm64-musl': 16.2.12 - '@next/swc-linux-x64-gnu': 16.2.12 - '@next/swc-linux-x64-musl': 16.2.12 - '@next/swc-win32-arm64-msvc': 16.2.12 - '@next/swc-win32-x64-msvc': 16.2.12 - sharp: 0.34.5 - transitivePeerDependencies: - - '@babel/core' - - babel-plugin-macros - dev: false - /node-abi@3.89.0: resolution: {integrity: sha512-6u9UwL0HlAl21+agMN3YAMXcKByMqwGx+pq+P76vii5f7hTPtKDp08/H9py6DY+cfDw7kQNTGEj/rly3IgbNQA==} engines: {node: '>=10'} @@ -11145,10 +9620,6 @@ packages: dev: true optional: true - /node-addon-api@7.1.1: - resolution: {integrity: sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==} - dev: false - /node-api-version@0.2.1: resolution: {integrity: sha512-2xP/IGGMmmSQpI1+O/k72jF/ykvZ89JeuKX3TLJAYPDVLUalrshrLHkeVcCCZqG/eEa635cr8IBYzgnDvM2O8Q==} dependencies: @@ -11290,10 +9761,12 @@ packages: /object-assign@4.1.1: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} engines: {node: '>=0.10.0'} + dev: false /object-inspect@1.13.4: resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==} engines: {node: '>= 0.4'} + dev: false /object-keys@1.1.1: resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} @@ -11309,6 +9782,7 @@ packages: es-object-atoms: 1.1.1 has-symbols: 1.1.0 object-keys: 1.1.1 + dev: false /object.entries@1.1.9: resolution: {integrity: sha512-8u/hfXFRBD1O0hPUjioLhoWFHRmt6tKA4/vZPyckBr18l1KE9uHrFaFaUi8MDRTpi4uak2goyPTSNJLXX2k2Hw==} @@ -11318,6 +9792,7 @@ packages: call-bound: 1.0.4 define-properties: 1.2.1 es-object-atoms: 1.1.1 + dev: false /object.fromentries@2.0.8: resolution: {integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==} @@ -11327,6 +9802,7 @@ packages: define-properties: 1.2.1 es-abstract: 1.24.1 es-object-atoms: 1.1.1 + dev: false /object.groupby@1.0.3: resolution: {integrity: sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==} @@ -11335,6 +9811,7 @@ packages: call-bind: 1.0.8 define-properties: 1.2.1 es-abstract: 1.24.1 + dev: false /object.values@1.2.1: resolution: {integrity: sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==} @@ -11344,6 +9821,7 @@ packages: call-bound: 1.0.4 define-properties: 1.2.1 es-object-atoms: 1.1.1 + dev: false /obug@2.1.1: resolution: {integrity: sha512-uTqF9MuPraAQ+IsnPf366RG4cP9RtUi7MLO1N3KEc+wb0a6yKpeL0lmk2IB1jY5KHPAlTc6T/JRdC/YqxHNwkQ==} @@ -11406,6 +9884,7 @@ packages: get-intrinsic: 1.3.0 object-keys: 1.1.1 safe-push-apply: 1.0.0 + dev: false /p-cancelable@2.1.1: resolution: {integrity: sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==} @@ -11520,6 +9999,7 @@ packages: /path-parse@1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + dev: false /path-scurry@1.11.1: resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} @@ -11556,6 +10036,7 @@ packages: /picomatch@2.3.1: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} + dev: false /picomatch@4.0.3: resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==} @@ -11564,6 +10045,7 @@ packages: /picomatch@4.0.5: resolution: {integrity: sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A==} engines: {node: '>=12'} + dev: false /plist@3.1.0: resolution: {integrity: sha512-uysumyrvkUX0rX/dEVqt8gC3sTBzd4zoWfLeS29nb53imdaXVvLINYXTI2GNqzaMuvacNx4uJQ8+b3zXR0pkgQ==} @@ -11579,10 +10061,6 @@ packages: engines: {node: '>=4'} dev: false - /po-parser@2.1.1: - resolution: {integrity: sha512-ECF4zHLbUItpUgE3OTtLKlPjeBN+fKEczj2zYjDfCGOzicNs0GK3Vg2IoAYwx7LH/XYw43fZQP6xnZ4TkNxSLQ==} - dev: false - /points-on-curve@0.2.0: resolution: {integrity: sha512-0mYKnYYe9ZcqMCWhUjItv/oHjvgEsfKvnUTg8sAtnHr3GVy7rGkXCb6d5cSyqrWqL4k81b9CPg3urd+T7aop3A==} dev: true @@ -11597,14 +10075,6 @@ packages: /possible-typed-array-names@1.1.0: resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==} engines: {node: '>= 0.4'} - - /postcss@8.4.31: - resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} - engines: {node: ^10 || ^12 || >=14} - dependencies: - nanoid: 3.3.16 - picocolors: 1.1.1 - source-map-js: 1.2.1 dev: false /postcss@8.5.15: @@ -11616,15 +10086,6 @@ packages: source-map-js: 1.2.1 dev: true - /postcss@8.5.24: - resolution: {integrity: sha512-8RyVklq0owXUTa4xlpzu4l9AaVKIdQvAcOHZWaMh98HgySsUtxRVf/chRe3dsSLqb6i40BzGRzEUddRaI+9TSw==} - engines: {node: ^10 || ^12 || >=14} - dependencies: - nanoid: 3.3.16 - picocolors: 1.1.1 - source-map-js: 1.2.1 - dev: true - /postcss@8.5.3: resolution: {integrity: sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==} engines: {node: ^10 || ^12 || >=14} @@ -11868,6 +10329,7 @@ packages: loose-envify: 1.4.0 object-assign: 4.1.1 react-is: 16.13.1 + dev: false /property-information@7.2.0: resolution: {integrity: sha512-IAtzIB6sUiWaJYrX9smp3V46pBGbBeLFRGdh25kg1334VcBlD8HzhPeNIWQH9zhGmo2itIe25EHt9dQP7G5hmg==} @@ -12036,15 +10498,6 @@ packages: react: 19.2.3 scheduler: 0.27.0 - /react-dom@19.2.4(react@19.2.4): - resolution: {integrity: sha512-AXJdLo8kgMbimY95O2aKQqsz2iWi9jMgKJhRBAxECE4IFxfcazB2LmzloIoibJI3C12IlY20+KFaLv+71bUJeQ==} - peerDependencies: - react: ^19.2.4 - dependencies: - react: 19.2.4 - scheduler: 0.27.0 - dev: false - /react-hook-form@7.79.0(react@19.2.3): resolution: {integrity: sha512-mhYp/MTmXvzYX6AJcJVko0rktoIhhmRnEouObj4wF5i/tCttgJvnp1+9wRkpITZjDTqpo4IOSJqu0dBlPlV/Lw==} engines: {node: '>=18.0.0'} @@ -12079,6 +10532,7 @@ packages: /react-is@16.13.1: resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} + dev: false /react-is@17.0.2: resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==} @@ -12210,11 +10664,6 @@ packages: resolution: {integrity: sha512-Ku/hhYbVjOQnXDZFv2+RibmLFGwFdeeKHFcOTlrt7xplBnya5OGn/hIRDsqDiSUcfORsDC7MPxwork8jBwsIWA==} engines: {node: '>=0.10.0'} - /react@19.2.4: - resolution: {integrity: sha512-9nfp2hYpCwOjAN+8TZFGhtWEwgvWHXqESH8qT89AT/lWklpLON22Lc8pEtnpsZz7VmawabSU0gCjnj8aC0euHQ==} - engines: {node: '>=0.10.0'} - dev: false - /read-binary-file-arch@1.0.6: resolution: {integrity: sha512-BNg9EN3DD3GsDXX7Aa8O4p92sryjkmzYYgmgTAc6CA4uGLEDzFfxOxugu21akOxpcXHiEgsYkC6nPsQvLLLmEg==} hasBin: true @@ -12306,6 +10755,7 @@ packages: get-intrinsic: 1.3.0 get-proto: 1.0.1 which-builtin-type: 1.2.1 + dev: false /regex-recursion@6.0.2: resolution: {integrity: sha512-0YCaSCq2VRIebiaUviZNs0cBz1kg5kVS2UKUfNIx8YVs1cN3AV7NTctO5FOKBA+UT2BPJIWZauYHPqJODG50cg==} @@ -12338,6 +10788,7 @@ packages: get-proto: 1.0.1 gopd: 1.2.0 set-function-name: 2.0.2 + dev: false /regjsparser@0.10.0: resolution: {integrity: sha512-qx+xQGZVsy55CH0a1hiVwHmqjLryfh7wQyF5HO07XJ9f7dQMY/gPQHhlyDkIzJKC+x2fUCpCcUODUUUFrm7SHA==} @@ -12430,6 +10881,7 @@ packages: is-core-module: 2.16.1 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 + dev: false /resolve@2.0.0-next.5: resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==} @@ -12438,6 +10890,7 @@ packages: is-core-module: 2.16.1 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 + dev: false /responselike@2.0.1: resolution: {integrity: sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==} @@ -12593,6 +11046,7 @@ packages: get-intrinsic: 1.3.0 has-symbols: 1.1.0 isarray: 2.0.5 + dev: false /safe-buffer@5.1.2: resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} @@ -12607,6 +11061,7 @@ packages: dependencies: es-errors: 1.3.0 isarray: 2.0.5 + dev: false /safe-regex-test@1.1.0: resolution: {integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==} @@ -12615,6 +11070,7 @@ packages: call-bound: 1.0.4 es-errors: 1.3.0 is-regex: 1.2.1 + dev: false /safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} @@ -12695,6 +11151,7 @@ packages: get-intrinsic: 1.3.0 gopd: 1.2.0 has-property-descriptors: 1.0.2 + dev: false /set-function-name@2.0.2: resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} @@ -12704,6 +11161,7 @@ packages: es-errors: 1.3.0 functions-have-names: 1.2.3 has-property-descriptors: 1.0.2 + dev: false /set-proto@1.0.0: resolution: {integrity: sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==} @@ -12712,42 +11170,7 @@ packages: dunder-proto: 1.0.1 es-errors: 1.3.0 es-object-atoms: 1.1.1 - - /sharp@0.34.5: - resolution: {integrity: sha512-Ou9I5Ft9WNcCbXrU9cMgPBcCK8LiwLqcbywW3t4oDV37n1pzpuNLsYiAV8eODnjbtQlSDwZ2cUEeQz4E54Hltg==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - requiresBuild: true - dependencies: - '@img/colour': 1.1.0 - detect-libc: 2.1.2 - semver: 7.7.4 - optionalDependencies: - '@img/sharp-darwin-arm64': 0.34.5 - '@img/sharp-darwin-x64': 0.34.5 - '@img/sharp-libvips-darwin-arm64': 1.2.4 - '@img/sharp-libvips-darwin-x64': 1.2.4 - '@img/sharp-libvips-linux-arm': 1.2.4 - '@img/sharp-libvips-linux-arm64': 1.2.4 - '@img/sharp-libvips-linux-ppc64': 1.2.4 - '@img/sharp-libvips-linux-riscv64': 1.2.4 - '@img/sharp-libvips-linux-s390x': 1.2.4 - '@img/sharp-libvips-linux-x64': 1.2.4 - '@img/sharp-libvips-linuxmusl-arm64': 1.2.4 - '@img/sharp-libvips-linuxmusl-x64': 1.2.4 - '@img/sharp-linux-arm': 0.34.5 - '@img/sharp-linux-arm64': 0.34.5 - '@img/sharp-linux-ppc64': 0.34.5 - '@img/sharp-linux-riscv64': 0.34.5 - '@img/sharp-linux-s390x': 0.34.5 - '@img/sharp-linux-x64': 0.34.5 - '@img/sharp-linuxmusl-arm64': 0.34.5 - '@img/sharp-linuxmusl-x64': 0.34.5 - '@img/sharp-wasm32': 0.34.5 - '@img/sharp-win32-arm64': 0.34.5 - '@img/sharp-win32-ia32': 0.34.5 - '@img/sharp-win32-x64': 0.34.5 dev: false - optional: true /shebang-command@2.0.0: resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} @@ -12778,6 +11201,7 @@ packages: dependencies: es-errors: 1.3.0 object-inspect: 1.13.4 + dev: false /side-channel-map@1.0.1: resolution: {integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==} @@ -12787,6 +11211,7 @@ packages: es-errors: 1.3.0 get-intrinsic: 1.3.0 object-inspect: 1.13.4 + dev: false /side-channel-weakmap@1.0.2: resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==} @@ -12797,6 +11222,7 @@ packages: get-intrinsic: 1.3.0 object-inspect: 1.13.4 side-channel-map: 1.0.1 + dev: false /side-channel@1.1.0: resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==} @@ -12807,6 +11233,7 @@ packages: side-channel-list: 1.0.0 side-channel-map: 1.0.1 side-channel-weakmap: 1.0.2 + dev: false /siginfo@2.0.0: resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} @@ -12950,6 +11377,7 @@ packages: /stable-hash@0.0.5: resolution: {integrity: sha512-+L3ccpzibovGXFK+Ap/f8LOS0ahMrHTf3xu7mMLSpEGU0EO9ucaysSylKo9eRDFNhWve/y275iPmIZ4z39a9iA==} + dev: false /stackback@0.0.2: resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} @@ -12970,6 +11398,7 @@ packages: dependencies: es-errors: 1.3.0 internal-slot: 1.1.0 + dev: false /string-width@4.2.3: resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} @@ -13003,6 +11432,7 @@ packages: call-bind: 1.0.8 define-properties: 1.2.1 es-abstract: 1.24.1 + dev: false /string.prototype.matchall@4.0.12: resolution: {integrity: sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==} @@ -13021,12 +11451,14 @@ packages: regexp.prototype.flags: 1.5.4 set-function-name: 2.0.2 side-channel: 1.1.0 + dev: false /string.prototype.repeat@1.0.0: resolution: {integrity: sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==} dependencies: define-properties: 1.2.1 es-abstract: 1.24.1 + dev: false /string.prototype.trim@1.2.10: resolution: {integrity: sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==} @@ -13039,6 +11471,7 @@ packages: es-abstract: 1.24.1 es-object-atoms: 1.1.1 has-property-descriptors: 1.0.2 + dev: false /string.prototype.trimend@1.0.9: resolution: {integrity: sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==} @@ -13048,6 +11481,7 @@ packages: call-bound: 1.0.4 define-properties: 1.2.1 es-object-atoms: 1.1.1 + dev: false /string.prototype.trimstart@1.0.8: resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} @@ -13056,6 +11490,7 @@ packages: call-bind: 1.0.8 define-properties: 1.2.1 es-object-atoms: 1.1.1 + dev: false /string_decoder@0.10.31: resolution: {integrity: sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==} @@ -13093,6 +11528,7 @@ packages: /strip-bom@3.0.0: resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} engines: {node: '>=4'} + dev: false /strip-indent@3.0.0: resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} @@ -13104,24 +11540,6 @@ packages: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} - /styled-jsx@5.1.6(@babel/core@7.28.5)(react@19.2.4): - 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 - dependencies: - '@babel/core': 7.28.5 - client-only: 0.0.1 - react: 19.2.4 - dev: false - /stylis@4.4.0: resolution: {integrity: sha512-5Z9ZpRzfuH6l/UAvCPAPUo3665Nk2wLaZU3x+TLHKVzIz33+sbJqbtrYoC3KD4/uVOr2Zp+L0LySezP9OHV9yA==} dev: true @@ -13164,6 +11582,7 @@ packages: /supports-preserve-symlinks-flag@1.0.0: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} + dev: false /symbol-tree@3.2.4: resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} @@ -13200,19 +11619,10 @@ packages: /tailwindcss@4.1.18: resolution: {integrity: sha512-4+Z+0yiYyEtUVCScyfHCxOYP06L5Ne+JiHhY2IjR2KWMIWhJOYZKLSGZaP5HkZ8+bY0cxfzwDE5uOmzFXyIwxw==} - /tailwindcss@4.3.3: - resolution: {integrity: sha512-gOhV3P7ufE62QDGg1zVaTgCR+EtPv92k2nIhVcVKcLmxT1sUBsQGhnZj175j+MqRt4zLF7ic+sCYjfhxMxj7YQ==} - dev: true - /tapable@2.3.0: resolution: {integrity: sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==} engines: {node: '>=6'} - /tapable@2.3.3: - resolution: {integrity: sha512-uxc/zpqFg6x7C8vOE7lh6Lbda8eEL9zmVm/PLeTPBRhh1xCgdWaQ+J1CUieGpIfm2HdtsUpRv+HshiasBMcc6A==} - engines: {node: '>=6'} - dev: true - /tar-stream@2.2.0: resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} engines: {node: '>=6'} @@ -13280,6 +11690,7 @@ packages: dependencies: fdir: 6.5.0(picomatch@4.0.5) picomatch: 4.0.5 + dev: false /tinyrainbow@3.0.3: resolution: {integrity: sha512-PSkbLUoxOFRzJYjjxHJt9xro7D+iilgMX/C9lawzVuYiIdcihh9DXmVibBe8lmcFrRi/VzlPjBxbN7rH24q8/Q==} @@ -13313,6 +11724,7 @@ packages: engines: {node: '>=8.0'} dependencies: is-number: 7.0.0 + dev: false /tough-cookie@4.1.4: resolution: {integrity: sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==} @@ -13363,15 +11775,6 @@ packages: typescript: 5.5.4 dev: false - /ts-api-utils@2.5.0(typescript@5.5.4): - resolution: {integrity: sha512-OJ/ibxhPlqrMM0UiNHJ/0CKQkoKF243/AEmplt3qpRgkW8VG7IfOS41h7V8TjITqdByHzrjcS/2si+y4lIh8NA==} - engines: {node: '>=18.12'} - peerDependencies: - typescript: '>=4.8.4' - dependencies: - typescript: 5.5.4 - dev: true - /ts-dedent@2.2.0: resolution: {integrity: sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==} engines: {node: '>=6.10'} @@ -13383,6 +11786,7 @@ packages: json5: 1.0.2 minimist: 1.2.8 strip-bom: 3.0.0 + dev: false /tslib@1.14.1: resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} @@ -13391,6 +11795,7 @@ packages: /tslib@2.8.1: resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} requiresBuild: true + dev: false /tsutils@3.21.0(typescript@5.5.4): resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} @@ -13510,6 +11915,7 @@ packages: call-bound: 1.0.4 es-errors: 1.3.0 is-typed-array: 1.1.15 + dev: false /typed-array-byte-length@1.0.3: resolution: {integrity: sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==} @@ -13520,6 +11926,7 @@ packages: gopd: 1.2.0 has-proto: 1.2.0 is-typed-array: 1.1.15 + dev: false /typed-array-byte-offset@1.0.4: resolution: {integrity: sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==} @@ -13532,6 +11939,7 @@ packages: has-proto: 1.2.0 is-typed-array: 1.1.15 reflect.getprototypeof: 1.0.10 + dev: false /typed-array-length@1.0.7: resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==} @@ -13543,28 +11951,12 @@ packages: is-typed-array: 1.1.15 possible-typed-array-names: 1.1.0 reflect.getprototypeof: 1.0.10 + dev: false /typedarray@0.0.6: resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==} dev: false - /typescript-eslint@8.65.0(eslint@9.39.5)(typescript@5.5.4): - resolution: {integrity: sha512-/ggrHAwyjENDusvyxbuqxAC2dTnZg/Z8F+fgQtYIz+L6n/9HfSlEZcFGV/NsMNa6CkGk0xUjUAFwC0vHOflvIA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 - typescript: '>=4.8.4 <6.1.0' - dependencies: - '@typescript-eslint/eslint-plugin': 8.65.0(@typescript-eslint/parser@8.65.0)(eslint@9.39.5)(typescript@5.5.4) - '@typescript-eslint/parser': 8.65.0(eslint@9.39.5)(typescript@5.5.4) - '@typescript-eslint/typescript-estree': 8.65.0(typescript@5.5.4) - '@typescript-eslint/utils': 8.65.0(eslint@9.39.5)(typescript@5.5.4) - eslint: 9.39.5 - typescript: 5.5.4 - transitivePeerDependencies: - - supports-color - dev: true - /typescript@5.5.4: resolution: {integrity: sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==} engines: {node: '>=14.17'} @@ -13583,6 +11975,7 @@ packages: has-bigints: 1.1.0 has-symbols: 1.1.0 which-boxed-primitive: 1.1.1 + dev: false /undici-types@6.21.0: resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} @@ -13721,6 +12114,7 @@ packages: '@unrs/resolver-binding-win32-arm64-msvc': 1.11.1 '@unrs/resolver-binding-win32-ia32-msvc': 1.11.1 '@unrs/resolver-binding-win32-x64-msvc': 1.11.1 + dev: false /update-browserslist-db@1.2.3(browserslist@4.28.1): resolution: {integrity: sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==} @@ -13771,18 +12165,6 @@ packages: react: 19.2.3 dev: false - /use-intl@4.13.4(react@19.2.4): - resolution: {integrity: sha512-wRhU5zyPNgu845++EJ8ckQsi89b22QUop7NlGxNXpsnKSwEJr7WErAkdAYeVQgFTmDWsa8e2NI1e14XbWz9Ecw==} - peerDependencies: - react: ^17.0.0 || ^18.0.0 || >=19.0.0-rc <19.0.0 || ^19.0.0 - dependencies: - '@formatjs/fast-memoize': 3.1.7 - '@schummar/icu-type-parser': 1.21.5 - icu-minify: 4.13.4 - intl-messageformat: 11.2.12 - react: 19.2.4 - dev: false - /use-isomorphic-layout-effect@1.2.1(@types/react@19.2.7)(react@19.2.3): resolution: {integrity: sha512-tpZZ+EX0gaghDAiFR37hj5MgY6ZN55kLiPkJsKxBMZ6GZdOSPJXiOzPM984oPYZ5AnehYx5WQp1+ME8I/P/pRA==} peerDependencies: @@ -14311,6 +12693,7 @@ packages: is-number-object: 1.1.1 is-string: 1.1.1 is-symbol: 1.1.1 + dev: false /which-builtin-type@1.2.1: resolution: {integrity: sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==} @@ -14329,6 +12712,7 @@ packages: which-boxed-primitive: 1.1.1 which-collection: 1.0.2 which-typed-array: 1.1.19 + dev: false /which-collection@1.0.2: resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==} @@ -14338,6 +12722,7 @@ packages: is-set: 2.0.3 is-weakmap: 2.0.2 is-weakset: 2.0.4 + dev: false /which-typed-array@1.1.19: resolution: {integrity: sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==} @@ -14350,6 +12735,7 @@ packages: get-proto: 1.0.1 gopd: 1.2.0 has-tostringtag: 1.0.2 + dev: false /which@2.0.2: resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} @@ -14492,17 +12878,9 @@ packages: readable-stream: 3.6.2 dev: true - /zod-validation-error@4.0.2(zod@3.25.76): - resolution: {integrity: sha512-Q6/nZLe6jxuU80qb/4uJ4t5v2VEZ44lzQjPDhYJNztRQ4wyWc6VF3D3Kb/fAuPetZQnhS3hnajCf9CsWesghLQ==} - engines: {node: '>=18.0.0'} - peerDependencies: - zod: ^3.25.0 || ^4.0.0 - dependencies: - zod: 3.25.76 - dev: true - /zod@3.25.76: resolution: {integrity: sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==} + dev: false /zustand@5.0.14(@types/react@19.2.7)(react@19.2.3): resolution: {integrity: sha512-/8tAspM5LMPr28b3fwLYrtdj77ECpfZviaP75CMTnwO8ISyaE4GDIG/9rDDYq/cH9D2Xw2A2RXglLInmVBQB/g==}