From 08d9acaf58ea429526f0432759cb50886a2f3957 Mon Sep 17 00:00:00 2001 From: Erik Brinkman Date: Sat, 6 Jun 2026 14:09:25 -0400 Subject: [PATCH] chore: updates update deps and modernize deployment --- .github/workflows/build.yml | 17 +++ .github/workflows/deploy.yml | 47 +++++++ .github/workflows/nextjs.yml | 73 ---------- .gitignore | 4 + app/globals.css | 10 +- biome.json | 14 +- bun.lock | 249 +++++++++++++++++++++++++++++++++++ bun.lockb | Bin 54101 -> 0 bytes next-env.d.ts | 2 +- next.config.js | 1 + package.json | 23 ++-- tailwind.config.js | 5 +- tsconfig.json | 16 +-- 13 files changed, 355 insertions(+), 106 deletions(-) create mode 100644 .github/workflows/build.yml create mode 100644 .github/workflows/deploy.yml delete mode 100644 .github/workflows/nextjs.yml create mode 100644 bun.lock delete mode 100755 bun.lockb diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..8ac3620 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,17 @@ +name: build + +on: + push: + pull_request: + workflow_call: + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + - uses: oven-sh/setup-bun@v2 + - run: bun install + - run: bun lint + - run: bun export diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml new file mode 100644 index 0000000..2b69657 --- /dev/null +++ b/.github/workflows/deploy.yml @@ -0,0 +1,47 @@ +name: deploy + +on: + workflow_dispatch: + +permissions: + contents: read + pages: write + id-token: write + +concurrency: + group: pages + cancel-in-progress: false + +jobs: + gate: + uses: ./.github/workflows/build.yml + + build: + needs: gate + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: oven-sh/setup-bun@v2 + - run: bun install + - uses: actions/configure-pages@v5 + - uses: actions/cache@v4 + with: + path: | + .next/cache + key: ${{ runner.os }}-nextjs-${{ hashFiles('bun.lock') }}-${{ hashFiles('**.[jt]s', '**.[jt]sx') }} + restore-keys: | + ${{ runner.os }}-nextjs-${{ hashFiles('bun.lock') }}- + - run: bun export + - uses: actions/upload-pages-artifact@v3 + with: + path: ./out + + deploy: + needs: build + runs-on: ubuntu-latest + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + steps: + - id: deployment + uses: actions/deploy-pages@v4 diff --git a/.github/workflows/nextjs.yml b/.github/workflows/nextjs.yml deleted file mode 100644 index 7c4eff6..0000000 --- a/.github/workflows/nextjs.yml +++ /dev/null @@ -1,73 +0,0 @@ -# Sample workflow for building and deploying a Next.js site to GitHub Pages -# -# To get started with Next.js see: https://nextjs.org/docs/getting-started -# -name: deploy - -on: - # Runs on pushes targeting the default branch - push: - branches: ["main"] - - # Allows you to run this workflow manually from the Actions tab - workflow_dispatch: - -# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages -permissions: - contents: read - pages: write - id-token: write - -# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued. -# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete. -concurrency: - group: "pages" - cancel-in-progress: false - -jobs: - # Build job - build: - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v4 - - name: Setup Bun - uses: oven-sh/setup-bun@v1 - - name: Setup Pages - uses: actions/configure-pages@v5 - with: - # Automatically inject basePath in your Next.js configuration file and disable - # server side image optimization (https://nextjs.org/docs/api-reference/next/image#unoptimized). - # - # You may remove this line if you want to manage the configuration yourself. - static_site_generator: next - - name: Restore cache - uses: actions/cache@v4 - with: - path: | - .next/cache - # Generate a new cache whenever packages or source files change. - key: ${{ runner.os }}-nextjs-${{ hashFiles('**/bun.lockb') }}-${{ hashFiles('**.[jt]s', '**.[jt]sx') }} - # If source files changed but packages didn't, rebuild from a prior cache. - restore-keys: | - ${{ runner.os }}-nextjs-${{ hashFiles('**/bun.lockb') }}- - - name: Install dependencies - run: bun install - - name: Build with Next.js - run: bun export - - name: Upload artifact - uses: actions/upload-pages-artifact@v3 - with: - path: ./out - - # Deployment job - deploy: - environment: - name: github-pages - url: ${{ steps.deployment.outputs.page_url }} - runs-on: ubuntu-latest - needs: build - steps: - - name: Deploy to GitHub Pages - id: deployment - uses: actions/deploy-pages@v4 diff --git a/.gitignore b/.gitignore index da3258c..c3978cb 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,7 @@ node_modules cache .eslintcache out + +# editor / os cruft +*.un~ +.DS_Store diff --git a/app/globals.css b/app/globals.css index 90785b8..23448f9 100644 --- a/app/globals.css +++ b/app/globals.css @@ -1,12 +1,12 @@ -@import url('https://fonts.googleapis.com/css2?family=Niconne&display=swap') -layer(base); +@import url("https://fonts.googleapis.com/css2?family=Niconne&display=swap") + layer(base); -@import 'tailwindcss'; +@import "tailwindcss"; -@config '../tailwind.config.js'; +@config "../tailwind.config.js"; @theme { - --font-cursive: 'Niconne', 'ui-cursive', 'cursive'; + --font-cursive: "Niconne", "ui-cursive", "cursive"; } html { diff --git a/biome.json b/biome.json index fef194f..237705c 100644 --- a/biome.json +++ b/biome.json @@ -1,15 +1,14 @@ { - "$schema": "https://biomejs.dev/schemas/2.2.3/schema.json", + "$schema": "https://biomejs.dev/schemas/2.4.16/schema.json", "vcs": { - "enabled": false, + "enabled": true, "clientKind": "git", - "useIgnoreFile": false + "useIgnoreFile": true }, "files": { "includes": [ - "app/**/*.{ts,tsx}", + "app/**/*.{ts,tsx,css}", "components/**/*.{ts,tsx}", - "styles/**/*.css", "*.{json,js,ts}" ], "ignoreUnknown": false @@ -29,6 +28,11 @@ "quoteStyle": "double" } }, + "css": { + "parser": { + "tailwindDirectives": true + } + }, "assist": { "enabled": true, "actions": { diff --git a/bun.lock b/bun.lock new file mode 100644 index 0000000..3f20978 --- /dev/null +++ b/bun.lock @@ -0,0 +1,249 @@ +{ + "lockfileVersion": 1, + "configVersion": 1, + "workspaces": { + "": { + "name": "hafa-next", + "devDependencies": { + "@biomejs/biome": "^2.4.16", + "@tailwindcss/postcss": "^4.3.0", + "@types/node": "^25.9.2", + "@types/react": "^19.2.17", + "next": "^16.2.7", + "postcss": "^8.5.15", + "react": "^19.2.7", + "react-dom": "^19.2.7", + "react-icons": "^5.6.0", + "tailwindcss": "^4.3.0", + "typescript": "~5.9.3", + }, + }, + }, + "packages": { + "@alloc/quick-lru": ["@alloc/quick-lru@5.2.0", "", {}, "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw=="], + + "@biomejs/biome": ["@biomejs/biome@2.4.16", "", { "optionalDependencies": { "@biomejs/cli-darwin-arm64": "2.4.16", "@biomejs/cli-darwin-x64": "2.4.16", "@biomejs/cli-linux-arm64": "2.4.16", "@biomejs/cli-linux-arm64-musl": "2.4.16", "@biomejs/cli-linux-x64": "2.4.16", "@biomejs/cli-linux-x64-musl": "2.4.16", "@biomejs/cli-win32-arm64": "2.4.16", "@biomejs/cli-win32-x64": "2.4.16" }, "bin": { "biome": "bin/biome" } }, "sha512-x9ajFh1zChVybCiM3TN6OD4phAqLgtPZjFrZF+aTMYCPjwBO+k529TX7PPsAqtGNLeV4UgzwQnowEgS7bGmzcA=="], + + "@biomejs/cli-darwin-arm64": ["@biomejs/cli-darwin-arm64@2.4.16", "", { "os": "darwin", "cpu": "arm64" }, "sha512-wxPvu4XOA85YJk9ixSWUmq/QBHbid85BISbOAqqBM/5xQpPk9ayjk5375tOlSC0BeCwNSbPFafQBm+vBumXq0A=="], + + "@biomejs/cli-darwin-x64": ["@biomejs/cli-darwin-x64@2.4.16", "", { "os": "darwin", "cpu": "x64" }, "sha512-xFCqGPwYusQJp4N4NJLi1XJiZqjwFdjhT+KqtNy+Ug3qgfczqnTa6MSDvxJF6TkuDLoYJItMapz6tAf7kCekFw=="], + + "@biomejs/cli-linux-arm64": ["@biomejs/cli-linux-arm64@2.4.16", "", { "os": "linux", "cpu": "arm64" }, "sha512-2kFb4//jxfZaP6D+Rj5VkHkxgyD9EoRAVBEQb8PKRv+s4NO2zYNJKXFaJmK1CmhufJOWEfpHKaRbOja7qjmdhQ=="], + + "@biomejs/cli-linux-arm64-musl": ["@biomejs/cli-linux-arm64-musl@2.4.16", "", { "os": "linux", "cpu": "arm64" }, "sha512-oYxnW0ARfJkr72ezzF2OR8N/rtkgLUQeYtF8cFhVswbknHxtTcmzSsanVJP8yQKnGpGpc2ck6c5zLvHahL6Cbg=="], + + "@biomejs/cli-linux-x64": ["@biomejs/cli-linux-x64@2.4.16", "", { "os": "linux", "cpu": "x64" }, "sha512-NbcBbi/nJqn5baae6wqRXdS7Gadf2uRpehSh6vMSYpG8OhkXl/Xg8aorWrJ+9VWqAT5ml90alLvorkpMW0nBwQ=="], + + "@biomejs/cli-linux-x64-musl": ["@biomejs/cli-linux-x64-musl@2.4.16", "", { "os": "linux", "cpu": "x64" }, "sha512-iHDS+MCM65DPqWGu+ECC3uoALyj2H7F4nVUPxIPjz/PIl94EUu+EDfGZDzFP+NY1EOPVt9NQvwFqq7HdMmowdg=="], + + "@biomejs/cli-win32-arm64": ["@biomejs/cli-win32-arm64@2.4.16", "", { "os": "win32", "cpu": "arm64" }, "sha512-0rgImMsNb5v/chhkIFe3wu7PEFClS6RBAYUijGL9UsYN3PanSaoK24HSSuSJb1pYbYYVjzAyZTl3gtjJ84BM8A=="], + + "@biomejs/cli-win32-x64": ["@biomejs/cli-win32-x64@2.4.16", "", { "os": "win32", "cpu": "x64" }, "sha512-Kp85jgoBHa05gix6UIRjfCDiUV3w/8VIdZ247VyyO2gEjaw12WEVhdIjlxp/AMzXxqxQwbxNTDVZ3Mwd2RG5rw=="], + + "@emnapi/runtime": ["@emnapi/runtime@1.10.0", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA=="], + + "@img/colour": ["@img/colour@1.1.0", "", {}, "sha512-Td76q7j57o/tLVdgS746cYARfSyxk8iEfRxewL9h4OMzYhbW4TAcppl0mT4eyqXddh6L/jwoM75mo7ixa/pCeQ=="], + + "@img/sharp-darwin-arm64": ["@img/sharp-darwin-arm64@0.34.5", "", { "optionalDependencies": { "@img/sharp-libvips-darwin-arm64": "1.2.4" }, "os": "darwin", "cpu": "arm64" }, "sha512-imtQ3WMJXbMY4fxb/Ndp6HBTNVtWCUI0WdobyheGf5+ad6xX8VIDO8u2xE4qc/fr08CKG/7dDseFtn6M6g/r3w=="], + + "@img/sharp-darwin-x64": ["@img/sharp-darwin-x64@0.34.5", "", { "optionalDependencies": { "@img/sharp-libvips-darwin-x64": "1.2.4" }, "os": "darwin", "cpu": "x64" }, "sha512-YNEFAF/4KQ/PeW0N+r+aVVsoIY0/qxxikF2SWdp+NRkmMB7y9LBZAVqQ4yhGCm/H3H270OSykqmQMKLBhBJDEw=="], + + "@img/sharp-libvips-darwin-arm64": ["@img/sharp-libvips-darwin-arm64@1.2.4", "", { "os": "darwin", "cpu": "arm64" }, "sha512-zqjjo7RatFfFoP0MkQ51jfuFZBnVE2pRiaydKJ1G/rHZvnsrHAOcQALIi9sA5co5xenQdTugCvtb1cuf78Vf4g=="], + + "@img/sharp-libvips-darwin-x64": ["@img/sharp-libvips-darwin-x64@1.2.4", "", { "os": "darwin", "cpu": "x64" }, "sha512-1IOd5xfVhlGwX+zXv2N93k0yMONvUlANylbJw1eTah8K/Jtpi15KC+WSiaX/nBmbm2HxRM1gZ0nSdjSsrZbGKg=="], + + "@img/sharp-libvips-linux-arm": ["@img/sharp-libvips-linux-arm@1.2.4", "", { "os": "linux", "cpu": "arm" }, "sha512-bFI7xcKFELdiNCVov8e44Ia4u2byA+l3XtsAj+Q8tfCwO6BQ8iDojYdvoPMqsKDkuoOo+X6HZA0s0q11ANMQ8A=="], + + "@img/sharp-libvips-linux-arm64": ["@img/sharp-libvips-linux-arm64@1.2.4", "", { "os": "linux", "cpu": "arm64" }, "sha512-excjX8DfsIcJ10x1Kzr4RcWe1edC9PquDRRPx3YVCvQv+U5p7Yin2s32ftzikXojb1PIFc/9Mt28/y+iRklkrw=="], + + "@img/sharp-libvips-linux-ppc64": ["@img/sharp-libvips-linux-ppc64@1.2.4", "", { "os": "linux", "cpu": "ppc64" }, "sha512-FMuvGijLDYG6lW+b/UvyilUWu5Ayu+3r2d1S8notiGCIyYU/76eig1UfMmkZ7vwgOrzKzlQbFSuQfgm7GYUPpA=="], + + "@img/sharp-libvips-linux-riscv64": ["@img/sharp-libvips-linux-riscv64@1.2.4", "", { "os": "linux", "cpu": "none" }, "sha512-oVDbcR4zUC0ce82teubSm+x6ETixtKZBh/qbREIOcI3cULzDyb18Sr/Wcyx7NRQeQzOiHTNbZFF1UwPS2scyGA=="], + + "@img/sharp-libvips-linux-s390x": ["@img/sharp-libvips-linux-s390x@1.2.4", "", { "os": "linux", "cpu": "s390x" }, "sha512-qmp9VrzgPgMoGZyPvrQHqk02uyjA0/QrTO26Tqk6l4ZV0MPWIW6LTkqOIov+J1yEu7MbFQaDpwdwJKhbJvuRxQ=="], + + "@img/sharp-libvips-linux-x64": ["@img/sharp-libvips-linux-x64@1.2.4", "", { "os": "linux", "cpu": "x64" }, "sha512-tJxiiLsmHc9Ax1bz3oaOYBURTXGIRDODBqhveVHonrHJ9/+k89qbLl0bcJns+e4t4rvaNBxaEZsFtSfAdquPrw=="], + + "@img/sharp-libvips-linuxmusl-arm64": ["@img/sharp-libvips-linuxmusl-arm64@1.2.4", "", { "os": "linux", "cpu": "arm64" }, "sha512-FVQHuwx1IIuNow9QAbYUzJ+En8KcVm9Lk5+uGUQJHaZmMECZmOlix9HnH7n1TRkXMS0pGxIJokIVB9SuqZGGXw=="], + + "@img/sharp-libvips-linuxmusl-x64": ["@img/sharp-libvips-linuxmusl-x64@1.2.4", "", { "os": "linux", "cpu": "x64" }, "sha512-+LpyBk7L44ZIXwz/VYfglaX/okxezESc6UxDSoyo2Ks6Jxc4Y7sGjpgU9s4PMgqgjj1gZCylTieNamqA1MF7Dg=="], + + "@img/sharp-linux-arm": ["@img/sharp-linux-arm@0.34.5", "", { "optionalDependencies": { "@img/sharp-libvips-linux-arm": "1.2.4" }, "os": "linux", "cpu": "arm" }, "sha512-9dLqsvwtg1uuXBGZKsxem9595+ujv0sJ6Vi8wcTANSFpwV/GONat5eCkzQo/1O6zRIkh0m/8+5BjrRr7jDUSZw=="], + + "@img/sharp-linux-arm64": ["@img/sharp-linux-arm64@0.34.5", "", { "optionalDependencies": { "@img/sharp-libvips-linux-arm64": "1.2.4" }, "os": "linux", "cpu": "arm64" }, "sha512-bKQzaJRY/bkPOXyKx5EVup7qkaojECG6NLYswgktOZjaXecSAeCWiZwwiFf3/Y+O1HrauiE3FVsGxFg8c24rZg=="], + + "@img/sharp-linux-ppc64": ["@img/sharp-linux-ppc64@0.34.5", "", { "optionalDependencies": { "@img/sharp-libvips-linux-ppc64": "1.2.4" }, "os": "linux", "cpu": "ppc64" }, "sha512-7zznwNaqW6YtsfrGGDA6BRkISKAAE1Jo0QdpNYXNMHu2+0dTrPflTLNkpc8l7MUP5M16ZJcUvysVWWrMefZquA=="], + + "@img/sharp-linux-riscv64": ["@img/sharp-linux-riscv64@0.34.5", "", { "optionalDependencies": { "@img/sharp-libvips-linux-riscv64": "1.2.4" }, "os": "linux", "cpu": "none" }, "sha512-51gJuLPTKa7piYPaVs8GmByo7/U7/7TZOq+cnXJIHZKavIRHAP77e3N2HEl3dgiqdD/w0yUfiJnII77PuDDFdw=="], + + "@img/sharp-linux-s390x": ["@img/sharp-linux-s390x@0.34.5", "", { "optionalDependencies": { "@img/sharp-libvips-linux-s390x": "1.2.4" }, "os": "linux", "cpu": "s390x" }, "sha512-nQtCk0PdKfho3eC5MrbQoigJ2gd1CgddUMkabUj+rBevs8tZ2cULOx46E7oyX+04WGfABgIwmMC0VqieTiR4jg=="], + + "@img/sharp-linux-x64": ["@img/sharp-linux-x64@0.34.5", "", { "optionalDependencies": { "@img/sharp-libvips-linux-x64": "1.2.4" }, "os": "linux", "cpu": "x64" }, "sha512-MEzd8HPKxVxVenwAa+JRPwEC7QFjoPWuS5NZnBt6B3pu7EG2Ge0id1oLHZpPJdn3OQK+BQDiw9zStiHBTJQQQQ=="], + + "@img/sharp-linuxmusl-arm64": ["@img/sharp-linuxmusl-arm64@0.34.5", "", { "optionalDependencies": { "@img/sharp-libvips-linuxmusl-arm64": "1.2.4" }, "os": "linux", "cpu": "arm64" }, "sha512-fprJR6GtRsMt6Kyfq44IsChVZeGN97gTD331weR1ex1c1rypDEABN6Tm2xa1wE6lYb5DdEnk03NZPqA7Id21yg=="], + + "@img/sharp-linuxmusl-x64": ["@img/sharp-linuxmusl-x64@0.34.5", "", { "optionalDependencies": { "@img/sharp-libvips-linuxmusl-x64": "1.2.4" }, "os": "linux", "cpu": "x64" }, "sha512-Jg8wNT1MUzIvhBFxViqrEhWDGzqymo3sV7z7ZsaWbZNDLXRJZoRGrjulp60YYtV4wfY8VIKcWidjojlLcWrd8Q=="], + + "@img/sharp-wasm32": ["@img/sharp-wasm32@0.34.5", "", { "dependencies": { "@emnapi/runtime": "^1.7.0" }, "cpu": "none" }, "sha512-OdWTEiVkY2PHwqkbBI8frFxQQFekHaSSkUIJkwzclWZe64O1X4UlUjqqqLaPbUpMOQk6FBu/HtlGXNblIs0huw=="], + + "@img/sharp-win32-arm64": ["@img/sharp-win32-arm64@0.34.5", "", { "os": "win32", "cpu": "arm64" }, "sha512-WQ3AgWCWYSb2yt+IG8mnC6Jdk9Whs7O0gxphblsLvdhSpSTtmu69ZG1Gkb6NuvxsNACwiPV6cNSZNzt0KPsw7g=="], + + "@img/sharp-win32-ia32": ["@img/sharp-win32-ia32@0.34.5", "", { "os": "win32", "cpu": "ia32" }, "sha512-FV9m/7NmeCmSHDD5j4+4pNI8Cp3aW+JvLoXcTUo0IqyjSfAZJ8dIUmijx1qaJsIiU+Hosw6xM5KijAWRJCSgNg=="], + + "@img/sharp-win32-x64": ["@img/sharp-win32-x64@0.34.5", "", { "os": "win32", "cpu": "x64" }, "sha512-+29YMsqY2/9eFEiW93eqWnuLcWcufowXewwSNIT6UwZdUUCrM3oFjMWH/Z6/TMmb4hlFenmfAVbpWeup2jryCw=="], + + "@jridgewell/gen-mapping": ["@jridgewell/gen-mapping@0.3.13", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.0", "@jridgewell/trace-mapping": "^0.3.24" } }, "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA=="], + + "@jridgewell/remapping": ["@jridgewell/remapping@2.3.5", "", { "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.24" } }, "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ=="], + + "@jridgewell/resolve-uri": ["@jridgewell/resolve-uri@3.1.2", "", {}, "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw=="], + + "@jridgewell/sourcemap-codec": ["@jridgewell/sourcemap-codec@1.5.5", "", {}, "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og=="], + + "@jridgewell/trace-mapping": ["@jridgewell/trace-mapping@0.3.31", "", { "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" } }, "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw=="], + + "@next/env": ["@next/env@16.2.7", "", {}, "sha512-tMJizPlj6ZYpBMMdK8S0LJufrP4QTdR6pcv9KQ/bVETPAmg0j1mlHE9G2c38UyGHxoBapgwuj7XjbGJ2RcDFOg=="], + + "@next/swc-darwin-arm64": ["@next/swc-darwin-arm64@16.2.7", "", { "os": "darwin", "cpu": "arm64" }, "sha512-vm1EDI/pVaBNNiychmxk3fft+OhQPVD9cIM/tReLZIQ3TfQ4kqI9DwKk00dzuS1ulC7icbrzCFrmRRlk9PfNdw=="], + + "@next/swc-darwin-x64": ["@next/swc-darwin-x64@16.2.7", "", { "os": "darwin", "cpu": "x64" }, "sha512-O3IRSv1ZBL1zs0WrIgefTEcTKFVn+ryxBNe54erJ6KsD+2f/Mmt7g2jOYh8PSBdUwPtKQJuCsTMlZ7tIu2AcsQ=="], + + "@next/swc-linux-arm64-gnu": ["@next/swc-linux-arm64-gnu@16.2.7", "", { "os": "linux", "cpu": "arm64" }, "sha512-Re6PZtjBDd0aMU+VcZcC/PrIvj4WhrjDYtMhhCVQamWN4L90EVP0pcEOBQD25prSlw7OzNw5QpHLWMilRLsRNw=="], + + "@next/swc-linux-arm64-musl": ["@next/swc-linux-arm64-musl@16.2.7", "", { "os": "linux", "cpu": "arm64" }, "sha512-qyogG9QtBzWxgJfeGBvOEHI3851gTfCF3wLZ5RDLTBJGAmE9p1qDwKCOdrBrvBzRvYDT+gUDp72pzlSEfAXgNA=="], + + "@next/swc-linux-x64-gnu": ["@next/swc-linux-x64-gnu@16.2.7", "", { "os": "linux", "cpu": "x64" }, "sha512-Vhe4ZDuBpmMogrGi5D4R2Kq4JAQlj6+wvgaFYy31zfES0zPmt6TLA+cuYpM/OLrPZjo2MYQTHVqNUSCR6+fDZQ=="], + + "@next/swc-linux-x64-musl": ["@next/swc-linux-x64-musl@16.2.7", "", { "os": "linux", "cpu": "x64" }, "sha512-srvian89JahFLw1YLBEuhvPJ0DO5lpUeJQMXy4xYo7g628ZlNgXdNkqoxSAv9OYrBfByh6vxISMwW/mRbzCY+g=="], + + "@next/swc-win32-arm64-msvc": ["@next/swc-win32-arm64-msvc@16.2.7", "", { "os": "win32", "cpu": "arm64" }, "sha512-GX3wvLpULFuRFJzwHaKfm7QZJ18F4ZSuxlPJ96BoBglCzBmdSjyeBKF+ZhWhvL/ckxNfLnNa7bsObO2ipYpszw=="], + + "@next/swc-win32-x64-msvc": ["@next/swc-win32-x64-msvc@16.2.7", "", { "os": "win32", "cpu": "x64" }, "sha512-J4WlM72NMk076Qsg0jTdK3SNXatlSdnjW7L7oNGLst1tAGjHrJh/FYi+pw9wyIjEtGRKDNzD0zuiY16oWYWVaw=="], + + "@swc/helpers": ["@swc/helpers@0.5.15", "", { "dependencies": { "tslib": "^2.8.0" } }, "sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g=="], + + "@tailwindcss/node": ["@tailwindcss/node@4.3.0", "", { "dependencies": { "@jridgewell/remapping": "^2.3.5", "enhanced-resolve": "^5.21.0", "jiti": "^2.6.1", "lightningcss": "1.32.0", "magic-string": "^0.30.21", "source-map-js": "^1.2.1", "tailwindcss": "4.3.0" } }, "sha512-aFb4gUhFOgdh9AXo4IzBEOzBkkAxm9VigwDJnMIYv3lcfXCJVesNfbEaBl4BNgVRyid92AmdviqwBUBRKSeY3g=="], + + "@tailwindcss/oxide": ["@tailwindcss/oxide@4.3.0", "", { "optionalDependencies": { "@tailwindcss/oxide-android-arm64": "4.3.0", "@tailwindcss/oxide-darwin-arm64": "4.3.0", "@tailwindcss/oxide-darwin-x64": "4.3.0", "@tailwindcss/oxide-freebsd-x64": "4.3.0", "@tailwindcss/oxide-linux-arm-gnueabihf": "4.3.0", "@tailwindcss/oxide-linux-arm64-gnu": "4.3.0", "@tailwindcss/oxide-linux-arm64-musl": "4.3.0", "@tailwindcss/oxide-linux-x64-gnu": "4.3.0", "@tailwindcss/oxide-linux-x64-musl": "4.3.0", "@tailwindcss/oxide-wasm32-wasi": "4.3.0", "@tailwindcss/oxide-win32-arm64-msvc": "4.3.0", "@tailwindcss/oxide-win32-x64-msvc": "4.3.0" } }, "sha512-F7HZGBeN9I0/AuuJS5PwcD8xayx5ri5GhjYUDBEVYUkexyA/giwbDNjRVrxSezE3T250OU2K/wp/ltWx3UOefg=="], + + "@tailwindcss/oxide-android-arm64": ["@tailwindcss/oxide-android-arm64@4.3.0", "", { "os": "android", "cpu": "arm64" }, "sha512-TJPiq67tKlLuObP6RkwvVGDoxCMBVtDgKkLfa/uyj7/FyxvQwHS+UOnVrXXgbEsfUaMgiVvC4KbJnRr26ho4Ng=="], + + "@tailwindcss/oxide-darwin-arm64": ["@tailwindcss/oxide-darwin-arm64@4.3.0", "", { "os": "darwin", "cpu": "arm64" }, "sha512-oMN/WZRb+SO37BmUElEgeEWuU8E/HXRkiODxJxLe1UTHVXLrdVSgfaJV7pSlhRGMSOiXLuxTIjfsF3wYvz8cgQ=="], + + "@tailwindcss/oxide-darwin-x64": ["@tailwindcss/oxide-darwin-x64@4.3.0", "", { "os": "darwin", "cpu": "x64" }, "sha512-N6CUmu4a6bKVADfw77p+iw6Yd9Q3OBhe0veaDX+QazfuVYlQsHfDgxBrsjQ/IW+zywL8mTrNd0SdJT/zgtvMdA=="], + + "@tailwindcss/oxide-freebsd-x64": ["@tailwindcss/oxide-freebsd-x64@4.3.0", "", { "os": "freebsd", "cpu": "x64" }, "sha512-zDL5hBkQdH5C6MpqbK3gQAgP80tsMwSI26vjOzjJtNCMUo0lFgOItzHKBIupOZNQxt3ouPH7RPhvNhiTfCe5CQ=="], + + "@tailwindcss/oxide-linux-arm-gnueabihf": ["@tailwindcss/oxide-linux-arm-gnueabihf@4.3.0", "", { "os": "linux", "cpu": "arm" }, "sha512-R06HdNi7A7OEoMsf6d4tjZ71RCWnZQPHj2mnotSFURjNLdBC+cIgXQ7l81CqeoiQftjf6OOblxXMInMgN2VzMA=="], + + "@tailwindcss/oxide-linux-arm64-gnu": ["@tailwindcss/oxide-linux-arm64-gnu@4.3.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-qTJHELX8jetjhRQHCLilkVLmybpzNQAtaI/gaoVoidn/ufbNDbAo8KlK2J+yPoc8wQxvDxCmh/5lr8nC1+lTbg=="], + + "@tailwindcss/oxide-linux-arm64-musl": ["@tailwindcss/oxide-linux-arm64-musl@4.3.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-Z6sukiQsngnWO+l39X4pPbiWT81IC+PLKF+PHxIlyZbGNb9MODfYlXEVlFvej5BOZInWX01kVyzeLvHsXhfczQ=="], + + "@tailwindcss/oxide-linux-x64-gnu": ["@tailwindcss/oxide-linux-x64-gnu@4.3.0", "", { "os": "linux", "cpu": "x64" }, "sha512-DRNdQRpSGzRGfARVuVkxvM8Q12nh19l4BF/G7zGA1oe+9wcC6saFBHTISrpIcKzhiXtSrlSrluCfvMuledoCTQ=="], + + "@tailwindcss/oxide-linux-x64-musl": ["@tailwindcss/oxide-linux-x64-musl@4.3.0", "", { "os": "linux", "cpu": "x64" }, "sha512-Z0IADbDo8bh6I7h2IQMx601AdXBLfFpEdUotft86evd/8ZPflZe9COPO8Q1vw+pfLWIUo9zN/JGZvwuAJqduqg=="], + + "@tailwindcss/oxide-wasm32-wasi": ["@tailwindcss/oxide-wasm32-wasi@4.3.0", "", { "dependencies": { "@emnapi/core": "^1.10.0", "@emnapi/runtime": "^1.10.0", "@emnapi/wasi-threads": "^1.2.1", "@napi-rs/wasm-runtime": "^1.1.4", "@tybys/wasm-util": "^0.10.1", "tslib": "^2.8.1" }, "cpu": "none" }, "sha512-HNZGOUxEmElksYR7S6sC5jTeNGpobAsy9u7Gu0AskJ8/20FR9GqebUyB+HBcU/ax6BHuiuJi+Oda4B+YX6H1yA=="], + + "@tailwindcss/oxide-win32-arm64-msvc": ["@tailwindcss/oxide-win32-arm64-msvc@4.3.0", "", { "os": "win32", "cpu": "arm64" }, "sha512-Pe+RPVTi1T+qymuuRpcdvwSVZjnll/f7n8gBxMMh3xLTctMDKqpdfGimbMyioqtLhUYZxdJ9wGNhV7MKHvgZsQ=="], + + "@tailwindcss/oxide-win32-x64-msvc": ["@tailwindcss/oxide-win32-x64-msvc@4.3.0", "", { "os": "win32", "cpu": "x64" }, "sha512-Mvrf2kXW/yeW/OTezZlCGOirXRcUuLIBx/5Y12BaPM7wJoryG6dfS/NJL8aBPqtTEx/Vm4T4vKzFUcKDT+TKUA=="], + + "@tailwindcss/postcss": ["@tailwindcss/postcss@4.3.0", "", { "dependencies": { "@alloc/quick-lru": "^5.2.0", "@tailwindcss/node": "4.3.0", "@tailwindcss/oxide": "4.3.0", "postcss": "^8.5.10", "tailwindcss": "4.3.0" } }, "sha512-Jm05Tjx+9yCLGv5qw1c+84Psds8MnyrEQYCB+FFk2lgGiUjlRqdxke4mVTuYrj2xnVZqKim2Apr5ySuQRYAw/w=="], + + "@types/node": ["@types/node@25.9.2", "", { "dependencies": { "undici-types": ">=7.24.0 <7.24.7" } }, "sha512-G05zqtJhcDLb8uslf5EjCxXg9G1KQxiV8OS0R26IC//Eoyitzqe8z37I7cqvnZlrlSfgocQRfSn/AHBZJJFyGw=="], + + "@types/react": ["@types/react@19.2.17", "", { "dependencies": { "csstype": "^3.2.2" } }, "sha512-MXfmqaVPEVgkBT/aY0aGCkRWWtByiYQXo3xdQ8r5RzuFrPiRn8Gar2tQdXSUQ2GKV3bkXckek89V8wQBY2Q/Aw=="], + + "baseline-browser-mapping": ["baseline-browser-mapping@2.10.34", "", { "bin": { "baseline-browser-mapping": "dist/cli.cjs" } }, "sha512-IMDedajPifLnHNY0X9n8hKxRTQ6/eTHwr5bDo04WnuqxyKw6LYtQywCuuqPZwhl3aBXMvQpJov42GLCwRRdQzw=="], + + "caniuse-lite": ["caniuse-lite@1.0.30001797", "", {}, "sha512-l8xKG+gwAIExZGl9FrF7KUwuOmk6wbEPC9Xoy/RtnWv1XG0Q4LFlagaLpUv3Kiza3W/wm27zy0yWJEieYKAP6w=="], + + "client-only": ["client-only@0.0.1", "", {}, "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA=="], + + "csstype": ["csstype@3.2.3", "", {}, "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ=="], + + "detect-libc": ["detect-libc@2.1.2", "", {}, "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ=="], + + "enhanced-resolve": ["enhanced-resolve@5.23.0", "", { "dependencies": { "graceful-fs": "^4.2.4", "tapable": "^2.3.3" } }, "sha512-yJN/BOOLxcOW2aQgeif9mSnaUB8KtvmMMp56oA1kx1CRfBKbhZm2pJ+NBY+3eOboHxix8lfjWpHE0Ei5U8RbSA=="], + + "graceful-fs": ["graceful-fs@4.2.11", "", {}, "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ=="], + + "jiti": ["jiti@2.7.0", "", { "bin": { "jiti": "lib/jiti-cli.mjs" } }, "sha512-AC/7JofJvZGrrneWNaEnJeOLUx+JlGt7tNa0wZiRPT4MY1wmfKjt2+6O2p2uz2+skll8OZZmJMNqeke7kKbNgQ=="], + + "lightningcss": ["lightningcss@1.32.0", "", { "dependencies": { "detect-libc": "^2.0.3" }, "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" } }, "sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ=="], + + "lightningcss-android-arm64": ["lightningcss-android-arm64@1.32.0", "", { "os": "android", "cpu": "arm64" }, "sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg=="], + + "lightningcss-darwin-arm64": ["lightningcss-darwin-arm64@1.32.0", "", { "os": "darwin", "cpu": "arm64" }, "sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ=="], + + "lightningcss-darwin-x64": ["lightningcss-darwin-x64@1.32.0", "", { "os": "darwin", "cpu": "x64" }, "sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w=="], + + "lightningcss-freebsd-x64": ["lightningcss-freebsd-x64@1.32.0", "", { "os": "freebsd", "cpu": "x64" }, "sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig=="], + + "lightningcss-linux-arm-gnueabihf": ["lightningcss-linux-arm-gnueabihf@1.32.0", "", { "os": "linux", "cpu": "arm" }, "sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw=="], + + "lightningcss-linux-arm64-gnu": ["lightningcss-linux-arm64-gnu@1.32.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ=="], + + "lightningcss-linux-arm64-musl": ["lightningcss-linux-arm64-musl@1.32.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg=="], + + "lightningcss-linux-x64-gnu": ["lightningcss-linux-x64-gnu@1.32.0", "", { "os": "linux", "cpu": "x64" }, "sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA=="], + + "lightningcss-linux-x64-musl": ["lightningcss-linux-x64-musl@1.32.0", "", { "os": "linux", "cpu": "x64" }, "sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg=="], + + "lightningcss-win32-arm64-msvc": ["lightningcss-win32-arm64-msvc@1.32.0", "", { "os": "win32", "cpu": "arm64" }, "sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw=="], + + "lightningcss-win32-x64-msvc": ["lightningcss-win32-x64-msvc@1.32.0", "", { "os": "win32", "cpu": "x64" }, "sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q=="], + + "magic-string": ["magic-string@0.30.21", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.5" } }, "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ=="], + + "nanoid": ["nanoid@3.3.12", "", { "bin": { "nanoid": "bin/nanoid.cjs" } }, "sha512-ZB9RH/39qpq5Vu6Y+NmUaFhQR6pp+M2Xt76XBnEwDaGcVAqhlvxrl3B2bKS5D3NH3QR76v3aSrKaF/Kiy7lEtQ=="], + + "next": ["next@16.2.7", "", { "dependencies": { "@next/env": "16.2.7", "@swc/helpers": "0.5.15", "baseline-browser-mapping": "^2.9.19", "caniuse-lite": "^1.0.30001579", "postcss": "8.4.31", "styled-jsx": "5.1.6" }, "optionalDependencies": { "@next/swc-darwin-arm64": "16.2.7", "@next/swc-darwin-x64": "16.2.7", "@next/swc-linux-arm64-gnu": "16.2.7", "@next/swc-linux-arm64-musl": "16.2.7", "@next/swc-linux-x64-gnu": "16.2.7", "@next/swc-linux-x64-musl": "16.2.7", "@next/swc-win32-arm64-msvc": "16.2.7", "@next/swc-win32-x64-msvc": "16.2.7", "sharp": "^0.34.5" }, "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" }, "optionalPeers": ["@opentelemetry/api", "@playwright/test", "babel-plugin-react-compiler", "sass"], "bin": { "next": "dist/bin/next" } }, "sha512-eMJxgjRzBaj3olkP4cBamHDXL79A8FC6u1GcsO1D1Tsx8bw/LLXUJCaoajVxtnhD3A1IJqIT8IcRJjgBIPJq4w=="], + + "picocolors": ["picocolors@1.1.1", "", {}, "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA=="], + + "postcss": ["postcss@8.5.15", "", { "dependencies": { "nanoid": "^3.3.12", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" } }, "sha512-FfR8sjd4em2T6fb3I2MwAJU7HWVMr9zba+enmQeeWFfCbm+UOC/0X4DS8XtpUTMwWMGbjKYP7xjfNekzyGmB3A=="], + + "react": ["react@19.2.7", "", {}, "sha512-HNe9WslTbXmFK8o8cmwgAeJFSBvt1bPdHCVKtaaV+WlAN36mpT4hcRpwbf3fY56ar2oIXzsBpOAiIRHAdY0OlQ=="], + + "react-dom": ["react-dom@19.2.7", "", { "dependencies": { "scheduler": "^0.27.0" }, "peerDependencies": { "react": "^19.2.7" } }, "sha512-t0BRVXvbiE/o20Hfw669rLbMCDWtYZLvmJigy2f0MxsXF+71pxhR3xOkspmsO8h3ZlNzyibAmtCa3l4lYKk6gQ=="], + + "react-icons": ["react-icons@5.6.0", "", { "peerDependencies": { "react": "*" } }, "sha512-RH93p5ki6LfOiIt0UtDyNg/cee+HLVR6cHHtW3wALfo+eOHTp8RnU2kRkI6E+H19zMIs03DyxUG/GfZMOGvmiA=="], + + "scheduler": ["scheduler@0.27.0", "", {}, "sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q=="], + + "semver": ["semver@7.8.2", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-c8jsqUZm3omBOI66G90z1Dyw5z622G8oLG+omfsHBJf3CWQTlOcwOjvOG6wtiNfW6anKm/eA39LMwMtMez2TiQ=="], + + "sharp": ["sharp@0.34.5", "", { "dependencies": { "@img/colour": "^1.0.0", "detect-libc": "^2.1.2", "semver": "^7.7.3" }, "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" } }, "sha512-Ou9I5Ft9WNcCbXrU9cMgPBcCK8LiwLqcbywW3t4oDV37n1pzpuNLsYiAV8eODnjbtQlSDwZ2cUEeQz4E54Hltg=="], + + "source-map-js": ["source-map-js@1.2.1", "", {}, "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA=="], + + "styled-jsx": ["styled-jsx@5.1.6", "", { "dependencies": { "client-only": "0.0.1" }, "peerDependencies": { "react": ">= 16.8.0 || 17.x.x || ^18.0.0-0 || ^19.0.0-0" } }, "sha512-qSVyDTeMotdvQYoHWLNGwRFJHC+i+ZvdBRYosOFgC+Wg1vx4frN2/RG/NA7SYqqvKNLf39P2LSRA2pu6n0XYZA=="], + + "tailwindcss": ["tailwindcss@4.3.0", "", {}, "sha512-y6nxMGB1nMW9R6k96e5gdIFzcfL/gTJRNaqGes1YvkLnPVXzWgbqFF2yLC0T8G774n24cx3Pe8XrKoniCOAH+Q=="], + + "tapable": ["tapable@2.3.3", "", {}, "sha512-uxc/zpqFg6x7C8vOE7lh6Lbda8eEL9zmVm/PLeTPBRhh1xCgdWaQ+J1CUieGpIfm2HdtsUpRv+HshiasBMcc6A=="], + + "tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="], + + "typescript": ["typescript@5.9.3", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw=="], + + "undici-types": ["undici-types@7.24.6", "", {}, "sha512-WRNW+sJgj5OBN4/0JpHFqtqzhpbnV0GuB+OozA9gCL7a993SmU+1JBZCzLNxYsbMfIeDL+lTsphD5jN5N+n0zg=="], + + "@tailwindcss/oxide-wasm32-wasi/@emnapi/core": ["@emnapi/core@1.10.0", "", { "dependencies": { "@emnapi/wasi-threads": "1.2.1", "tslib": "^2.4.0" }, "bundled": true }, "sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw=="], + + "@tailwindcss/oxide-wasm32-wasi/@emnapi/runtime": ["@emnapi/runtime@1.10.0", "", { "dependencies": { "tslib": "^2.4.0" }, "bundled": true }, "sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA=="], + + "@tailwindcss/oxide-wasm32-wasi/@emnapi/wasi-threads": ["@emnapi/wasi-threads@1.2.1", "", { "dependencies": { "tslib": "^2.4.0" }, "bundled": true }, "sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w=="], + + "@tailwindcss/oxide-wasm32-wasi/@napi-rs/wasm-runtime": ["@napi-rs/wasm-runtime@1.1.4", "", { "dependencies": { "@tybys/wasm-util": "^0.10.1" }, "peerDependencies": { "@emnapi/core": "^1.7.1", "@emnapi/runtime": "^1.7.1" }, "bundled": true }, "sha512-3NQNNgA1YSlJb/kMH1ildASP9HW7/7kYnRI2szWJaofaS1hWmbGI4H+d3+22aGzXXN9IJ+n+GiFVcGipJP18ow=="], + + "@tailwindcss/oxide-wasm32-wasi/@tybys/wasm-util": ["@tybys/wasm-util@0.10.2", "", { "dependencies": { "tslib": "^2.4.0" }, "bundled": true }, "sha512-RoBvJ2X0wuKlWFIjrwffGw1IqZHKQqzIchKaadZZfnNpsAYp2mM0h36JtPCjNDAHGgYez/15uMBpfGwchhiMgg=="], + + "@tailwindcss/oxide-wasm32-wasi/tslib": ["tslib@2.8.1", "", { "bundled": true }, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="], + + "next/postcss": ["postcss@8.4.31", "", { "dependencies": { "nanoid": "^3.3.6", "picocolors": "^1.0.0", "source-map-js": "^1.0.2" } }, "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ=="], + } +} diff --git a/bun.lockb b/bun.lockb deleted file mode 100755 index 17cac5a03aefbe7f0270af7c20cfb58a47f0340e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 54101 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 diff --git a/next-env.d.ts b/next-env.d.ts index 830fb59..9edff1c 100644 --- a/next-env.d.ts +++ b/next-env.d.ts @@ -1,6 +1,6 @@ /// /// -/// +import "./.next/types/routes.d.ts"; // NOTE: This file should not be edited // see https://nextjs.org/docs/app/api-reference/config/typescript for more information. diff --git a/next.config.js b/next.config.js index 3b9f82c..6632fbc 100644 --- a/next.config.js +++ b/next.config.js @@ -1,4 +1,5 @@ export default { + reactStrictMode: true, images: { unoptimized: true }, output: "export", }; diff --git a/package.json b/package.json index 028a5a4..7ab6f31 100644 --- a/package.json +++ b/package.json @@ -10,17 +10,16 @@ "lint": "tsc && biome check" }, "devDependencies": { - "@biomejs/biome": "^2.2.3", - "@tailwindcss/postcss": "^4.1.13", - "@types/node": "^24.3.1", - "@types/react": "^19.1.12", - "autoprefixer": "^10.4.21", - "next": "^15.5.2", - "postcss": "^8.5.6", - "react": "19.1.1", - "react-dom": "19.1.1", - "react-icons": "^5.5.0", - "tailwindcss": "^4.1.13", - "typescript": "~5.9.2" + "@biomejs/biome": "^2.4.16", + "@tailwindcss/postcss": "^4.3.0", + "@types/node": "^25.9.2", + "@types/react": "^19.2.17", + "next": "^16.2.7", + "postcss": "^8.5.15", + "react": "^19.2.7", + "react-dom": "^19.2.7", + "react-icons": "^5.6.0", + "tailwindcss": "^4.3.0", + "typescript": "~5.9.3" } } diff --git a/tailwind.config.js b/tailwind.config.js index d13efa7..d19e964 100644 --- a/tailwind.config.js +++ b/tailwind.config.js @@ -1,5 +1,6 @@ +/** @type {import('tailwindcss').Config} */ export default { - mode: "jit", - content: ["./app/**/*.{ts,tsx}", "./components/**/*.{ts,tsx}"], + theme: {}, + plugins: [], darkMode: "class", }; diff --git a/tsconfig.json b/tsconfig.json index 10e8647..31343b3 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,6 +1,6 @@ { "compilerOptions": { - "target": "es5", + "target": "ES2017", "lib": ["dom", "dom.iterable", "esnext"], "allowJs": true, "skipLibCheck": true, @@ -9,10 +9,10 @@ "noEmit": true, "esModuleInterop": true, "module": "esnext", - "moduleResolution": "node", + "moduleResolution": "bundler", "resolveJsonModule": true, "isolatedModules": true, - "jsx": "preserve", + "jsx": "react-jsx", "incremental": true, "plugins": [ { @@ -22,10 +22,10 @@ }, "include": [ "next-env.d.ts", - "images.d.ts", - "app/**/*.tsx", - "components/**/*.tsx", - ".next/types/**/*.ts" + "**/*.ts", + "**/*.tsx", + ".next/types/**/*.ts", + ".next/dev/types/**/*.ts" ], - "exclude": ["node_modules"] + "exclude": ["node_modules", "out"] }