From 59842d72383bb7ad6801c7d95778e82067fa677b Mon Sep 17 00:00:00 2001 From: Jan Amann Date: Fri, 29 Aug 2025 13:48:27 +0200 Subject: [PATCH 1/8] Set up `example-app-router-patterns` --- .../example-app-router-patterns/.gitignore | 4 + .../example-app-router-patterns/README.md | 9 ++ .../eslint.config.mjs | 22 +++++ .../example-app-router-patterns/next-env.d.ts | 6 ++ .../next.config.mjs | 4 + .../example-app-router-patterns/package.json | 34 ++++++++ .../src/app/favicon.ico | Bin 0 -> 15086 bytes .../src/app/layout.tsx | 7 ++ .../src/app/page.tsx | 3 + .../example-app-router-patterns/tsconfig.json | 30 +++++++ pnpm-lock.yaml | 79 +++++++++++++----- 11 files changed, 178 insertions(+), 20 deletions(-) create mode 100644 examples/example-app-router-patterns/.gitignore create mode 100644 examples/example-app-router-patterns/README.md create mode 100644 examples/example-app-router-patterns/eslint.config.mjs create mode 100644 examples/example-app-router-patterns/next-env.d.ts create mode 100644 examples/example-app-router-patterns/next.config.mjs create mode 100644 examples/example-app-router-patterns/package.json create mode 100644 examples/example-app-router-patterns/src/app/favicon.ico create mode 100644 examples/example-app-router-patterns/src/app/layout.tsx create mode 100644 examples/example-app-router-patterns/src/app/page.tsx create mode 100644 examples/example-app-router-patterns/tsconfig.json diff --git a/examples/example-app-router-patterns/.gitignore b/examples/example-app-router-patterns/.gitignore new file mode 100644 index 000000000..04239e7d0 --- /dev/null +++ b/examples/example-app-router-patterns/.gitignore @@ -0,0 +1,4 @@ +/node_modules +/.next/ +.DS_Store +tsconfig.tsbuildinfo diff --git a/examples/example-app-router-patterns/README.md b/examples/example-app-router-patterns/README.md new file mode 100644 index 000000000..6c3beabe0 --- /dev/null +++ b/examples/example-app-router-patterns/README.md @@ -0,0 +1,9 @@ +# example-app-router-patterns + +This example demonstrates various use cases and patterns for using `next-intl` with the App Router. + +## Deploy your own + +By deploying to [Vercel](https://vercel.com), you can check out the example in action. Note that you'll be prompted to create a new GitHub repository as part of this, allowing you to make subsequent changes. + +[![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/clone?repository-url=https://github.com/amannn/next-intl/tree/main/examples/example-app-router-patterns) diff --git a/examples/example-app-router-patterns/eslint.config.mjs b/examples/example-app-router-patterns/eslint.config.mjs new file mode 100644 index 000000000..144292198 --- /dev/null +++ b/examples/example-app-router-patterns/eslint.config.mjs @@ -0,0 +1,22 @@ +import {dirname} from 'path'; +import {fileURLToPath} from 'url'; +import {FlatCompat} from '@eslint/eslintrc'; + +const __filename = fileURLToPath(import.meta.url); +const __dirname = dirname(__filename); + +const compat = new FlatCompat({ + baseDirectory: __dirname +}); + +const eslintConfig = [ + ...compat.extends('next/core-web-vitals', 'next/typescript'), + { + rules: { + '@typescript-eslint/no-explicit-any': 'off', + '@typescript-eslint/ban-ts-comment': 'off' + } + } +]; + +export default eslintConfig; diff --git a/examples/example-app-router-patterns/next-env.d.ts b/examples/example-app-router-patterns/next-env.d.ts new file mode 100644 index 000000000..830fb594c --- /dev/null +++ b/examples/example-app-router-patterns/next-env.d.ts @@ -0,0 +1,6 @@ +/// +/// +/// + +// NOTE: This file should not be edited +// see https://nextjs.org/docs/app/api-reference/config/typescript for more information. diff --git a/examples/example-app-router-patterns/next.config.mjs b/examples/example-app-router-patterns/next.config.mjs new file mode 100644 index 000000000..4678774e6 --- /dev/null +++ b/examples/example-app-router-patterns/next.config.mjs @@ -0,0 +1,4 @@ +/** @type {import('next').NextConfig} */ +const nextConfig = {}; + +export default nextConfig; diff --git a/examples/example-app-router-patterns/package.json b/examples/example-app-router-patterns/package.json new file mode 100644 index 000000000..5f4903ddf --- /dev/null +++ b/examples/example-app-router-patterns/package.json @@ -0,0 +1,34 @@ +{ + "name": "example-app-router-patterns", + "private": true, + "scripts": { + "dev": "next dev", + "lint": "eslint src && prettier src --check", + "build": "next build", + "start": "next start" + }, + "dependencies": { + "next": "^15.5.0", + "next-intl": "^4.0.0", + "react": "^19.0.0", + "react-dom": "^19.0.0" + }, + "devDependencies": { + "@eslint/eslintrc": "^3.1.0", + "@types/node": "^20.14.5", + "@types/react": "^19.0.0", + "@types/react-dom": "^19.0.0", + "eslint": "9.11.1", + "eslint-config-next": "^15.5.0", + "prettier": "^3.3.3", + "typescript": "^5.5.3" + }, + "prettier": { + "singleQuote": true, + "bracketSpacing": false, + "trailingComma": "none" + }, + "engines": { + "node": ">=20.0.0" + } +} diff --git a/examples/example-app-router-patterns/src/app/favicon.ico b/examples/example-app-router-patterns/src/app/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..4ddd8fff7086c240ed21438ca7d96f1b8dae0bc0 GIT binary patch literal 15086 zcmdU$O=uNY6vrnYO%#n9m0G$<)C8)FRuGb41&a%z2%-zOrYkKQ7LVcV8tZ8{r_I(J}2Xwd3WZ$*OwePxifd}IsgB? z@7{AiX5x7@UY)mPi>I{JyV~w~9iHd4w)*$0Jnt9fty0SKPwPGJD;0Q8Wn|)gA|*d3 zZJyV>ZcgVi%JR2KUOJ_pNiRu%l#WaPk^bu|*W~exGL*#z+iFOiKxv{cq~A-QNoSnvZWVz$%y2 z$kB(=jC597D#v2>V1NZC*rkY~fpzbN^>mc9}aM-le$W`3Rbh-!*zlSeaS_(t57xidzf?h9!_wJ6XMpeG;F(2?%@^} zTZz5QCkusdm&t8;0X=2;v z=4NyA=FO7%Pfbmky?gg2#`ihHeJl-sYxshdXBjsq7mY z8_mUw7gO^e8yhp7ot>$$ea>(%X}z;`>sB*5I-05ur%#_Y#Iv;R=W{QKf7*DOB3>4% zC)`u_AKPw8<7vuxS%^Q}Q;%QEpEOB4Eg@cp>j3vu@iWMsYu9*MV!RCVhdXmXI6u|B zOFS(xUWR$WJ@NV>s=meIX&K^WkiT6&bc&Dj`YnpP&5w(xWr&wS{&xM=By8vPv*j6; zM#a-I#mgXnIKv%r-oL19&_}`Ra6BzzybR*m{R{jzNz1x_B%V%BPv_?4GR8~GAFgn= z!d{p?v3*{0N<1AJ8Zs|lyeMUT8O4LM2F@IU!kI)_e}g@H_L#xJL9=w}(kLEj^5Mu? zPa!Gm`4#bW_3G7WI7ZpTonKL(#c+POu291V^0w=Gv7X=BY8=qTLOVb2w&WaA-W4pg z_ZPfVNg|8+{gJIFb*3*>V?2NfcG7m2$vk0h`@i3x4*QtFGv;}uQrr+*nI9_oTi_dv zxOXgioLZQ(?e_y}6iZ{#ZwxL^&=9>|`hvL_vv zayCHQqFj^5GrQ-*#;)IWnNEy;<($6sycVvrp4Uj4(FrcKN zvwpkUcIKIsPTVT}NSgmnYgOv+w20N4r9IMbr9Vq2rL(?rO&-rELs@J}6~-g|aZs9- zPD^QmIHgQhiVe2-NF(pcs9(zWSaEo9&#=V@zLH3X3Xe$n+2j1XJi`aR@aZBuRp=+F zi|-_5@QLp@fnz1GEl+$$wFAG=4^msUQYjeW{!ptt`bniQ!+ya6(@K{v%63*JUtzrP zJy>8OjL&bR;WD}Vy1F`(R_p8QS z3)aiW1e0>+L40 z-*@!(_U7itD4r4d!TA^bRO^q1h6b~2*|K1rT(A3mOt7s~bNyvGRCE1lIqcL$qL`%e zF71v_e7gwkz@DKR`wz>H{y;x@CUvP_p)%OwBfQ>LmXi=0*h5xh{~07$vHiE{t1C-pXV!RjLzkh$YPT0;{WAHuhnKNhJu)lWgTA}x{_V=CVx2>(su;#M@ zA9w|M`q$Xc<8RBbW@GJ!#C#`=ZNB}iEh&4Pk&zMe=+Pt7-riman>=juzhBUvYv%ET z2M) { + return ( + + {children} + + ); +} diff --git a/examples/example-app-router-patterns/src/app/page.tsx b/examples/example-app-router-patterns/src/app/page.tsx new file mode 100644 index 000000000..50ed73181 --- /dev/null +++ b/examples/example-app-router-patterns/src/app/page.tsx @@ -0,0 +1,3 @@ +export default function Home() { + return
Hello World
; +} diff --git a/examples/example-app-router-patterns/tsconfig.json b/examples/example-app-router-patterns/tsconfig.json new file mode 100644 index 000000000..1638156ff --- /dev/null +++ b/examples/example-app-router-patterns/tsconfig.json @@ -0,0 +1,30 @@ +{ + "compilerOptions": { + "allowArbitraryExtensions": true, + "target": "es5", + "lib": ["dom", "dom.iterable", "esnext"], + "strict": true, + "allowJs": true, + "skipLibCheck": true, + "noEmit": true, + "esModuleInterop": true, + "module": "ESNext", + "moduleResolution": "Bundler", + "resolveJsonModule": true, + "isolatedModules": true, + "jsx": "preserve", + "incremental": true, + "plugins": [ + { + "name": "next" + } + ], + "paths": { + "@/*": ["./src/*"] + }, + // See https://github.com/amannn/next-intl/pull/1509 + "declaration": true + }, + "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"], + "exclude": ["node_modules"] +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 8460e530c..dfd89fa80 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -319,6 +319,46 @@ importers: specifier: ^5.5.3 version: 5.8.2 + examples/example-app-router-patterns: + dependencies: + next: + specifier: ^15.5.0 + version: 15.5.0(@babel/core@7.26.10)(@playwright/test@1.55.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + next-intl: + specifier: ^4.0.0 + version: link:../../packages/next-intl + react: + specifier: ^19.0.0 + version: 19.0.0 + react-dom: + specifier: ^19.0.0 + version: 19.0.0(react@19.0.0) + devDependencies: + '@eslint/eslintrc': + specifier: ^3.1.0 + version: 3.3.0 + '@types/node': + specifier: ^20.14.5 + version: 20.17.24 + '@types/react': + specifier: ^19.0.0 + version: 19.0.10 + '@types/react-dom': + specifier: ^19.0.0 + version: 19.0.4(@types/react@19.0.10) + eslint: + specifier: 9.11.1 + version: 9.11.1(jiti@2.4.2) + eslint-config-next: + specifier: ^15.5.0 + version: 15.5.0(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2) + prettier: + specifier: ^3.3.3 + version: 3.5.3 + typescript: + specifier: ^5.5.3 + version: 5.8.2 + examples/example-app-router-playground: dependencies: '@radix-ui/react-dropdown-menu': @@ -17276,7 +17316,7 @@ snapshots: '@formatjs/icu-skeleton-parser@1.8.13': dependencies: '@formatjs/ecma402-abstract': 2.3.3 - tslib: 2.8.0 + tslib: 2.8.1 '@formatjs/intl-localematcher@0.2.25': dependencies: @@ -18344,11 +18384,11 @@ snapshots: '@npmcli/fs@1.1.1': dependencies: '@gar/promisify': 1.1.3 - semver: 7.7.1 + semver: 7.7.2 '@npmcli/fs@3.1.1': dependencies: - semver: 7.6.2 + semver: 7.7.2 '@npmcli/git@4.1.0': dependencies: @@ -18358,7 +18398,7 @@ snapshots: proc-log: 3.0.0 promise-inflight: 1.0.1(bluebird@3.7.2) promise-retry: 2.0.1 - semver: 7.6.2 + semver: 7.7.2 which: 3.0.1 transitivePeerDependencies: - bluebird @@ -18372,7 +18412,7 @@ snapshots: proc-log: 4.2.0 promise-inflight: 1.0.1(bluebird@3.7.2) promise-retry: 2.0.1 - semver: 7.7.1 + semver: 7.7.2 which: 4.0.0 transitivePeerDependencies: - bluebird @@ -18395,7 +18435,7 @@ snapshots: json-parse-even-better-errors: 3.0.2 pacote: 18.0.6 proc-log: 4.2.0 - semver: 7.7.1 + semver: 7.7.2 transitivePeerDependencies: - bluebird - supports-color @@ -20774,7 +20814,7 @@ snapshots: acorn-globals@7.0.1: dependencies: - acorn: 8.12.0 + acorn: 8.14.1 acorn-walk: 8.3.3 acorn-jsx@5.3.2(acorn@8.13.0): @@ -22165,7 +22205,7 @@ snapshots: handlebars: 4.7.8 json-stringify-safe: 5.0.1 meow: 12.1.1 - semver: 7.7.1 + semver: 7.7.2 split2: 4.2.0 conventional-commits-filter@4.0.0: {} @@ -24932,7 +24972,7 @@ snapshots: git-semver-tags@7.0.1: dependencies: meow: 12.1.1 - semver: 7.7.1 + semver: 7.7.2 git-up@7.0.0: dependencies: @@ -26188,7 +26228,7 @@ snapshots: '@babel/parser': 7.21.9 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 - semver: 7.7.1 + semver: 7.7.2 transitivePeerDependencies: - supports-color @@ -27129,7 +27169,7 @@ snapshots: make-dir@4.0.0: dependencies: - semver: 7.7.1 + semver: 7.7.2 make-dir@5.0.0: {} @@ -28977,7 +29017,7 @@ snapshots: make-fetch-happen: 13.0.1 nopt: 7.2.1 proc-log: 4.2.0 - semver: 7.7.1 + semver: 7.7.2 tar: 6.2.1 which: 4.0.0 transitivePeerDependencies: @@ -29067,13 +29107,13 @@ snapshots: dependencies: hosted-git-info: 6.1.1 is-core-module: 2.13.1 - semver: 7.6.2 + semver: 7.7.2 validate-npm-package-license: 3.0.4 normalize-package-data@6.0.2: dependencies: hosted-git-info: 7.0.2 - semver: 7.7.1 + semver: 7.7.2 validate-npm-package-license: 3.0.4 normalize-path@2.1.1: @@ -29096,7 +29136,7 @@ snapshots: npm-install-checks@6.3.0: dependencies: - semver: 7.7.1 + semver: 7.7.2 npm-normalize-package-bin@2.0.0: {} @@ -29106,7 +29146,7 @@ snapshots: dependencies: hosted-git-info: 6.1.1 proc-log: 3.0.0 - semver: 7.7.1 + semver: 7.7.2 validate-npm-package-name: 5.0.1 npm-package-arg@11.0.3: @@ -29139,14 +29179,14 @@ snapshots: npm-install-checks: 6.3.0 npm-normalize-package-bin: 3.0.1 npm-package-arg: 10.1.0 - semver: 7.7.1 + semver: 7.7.2 npm-pick-manifest@9.1.0: dependencies: npm-install-checks: 6.3.0 npm-normalize-package-bin: 3.0.1 npm-package-arg: 11.0.3 - semver: 7.7.1 + semver: 7.7.2 npm-registry-fetch@17.1.0: dependencies: @@ -31355,8 +31395,7 @@ snapshots: semver@7.7.1: {} - semver@7.7.2: - optional: true + semver@7.7.2: {} send@0.18.0: dependencies: From 5b23c2524288a8a91dc90f1b0b59f66697fb049d Mon Sep 17 00:00:00 2001 From: Jan Amann Date: Fri, 29 Aug 2025 15:10:26 +0200 Subject: [PATCH 2/8] Set up design system --- .../example-app-router-patterns/package.json | 14 +- .../postcss.config.mjs | 6 + .../src/app/design/DesignColorSwatch.tsx | 15 + .../src/app/design/DesignSection.tsx | 17 + .../src/app/design/page.tsx | 170 +++ .../src/app/globals.css | 23 + .../src/app/layout.tsx | 11 +- .../src/app/page.tsx | 6 +- pnpm-lock.yaml | 984 ++++++++++++------ 9 files changed, 915 insertions(+), 331 deletions(-) create mode 100644 examples/example-app-router-patterns/postcss.config.mjs create mode 100644 examples/example-app-router-patterns/src/app/design/DesignColorSwatch.tsx create mode 100644 examples/example-app-router-patterns/src/app/design/DesignSection.tsx create mode 100644 examples/example-app-router-patterns/src/app/design/page.tsx create mode 100644 examples/example-app-router-patterns/src/app/globals.css diff --git a/examples/example-app-router-patterns/package.json b/examples/example-app-router-patterns/package.json index 5f4903ddf..f35bd99ba 100644 --- a/examples/example-app-router-patterns/package.json +++ b/examples/example-app-router-patterns/package.json @@ -8,25 +8,35 @@ "start": "next start" }, "dependencies": { + "clsx": "^2.1.1", "next": "^15.5.0", "next-intl": "^4.0.0", "react": "^19.0.0", - "react-dom": "^19.0.0" + "react-dom": "^19.0.0", + "tailwindcss": "^4.1.12" }, "devDependencies": { "@eslint/eslintrc": "^3.1.0", + "@tailwindcss/postcss": "^4.1.12", "@types/node": "^20.14.5", "@types/react": "^19.0.0", "@types/react-dom": "^19.0.0", "eslint": "9.11.1", "eslint-config-next": "^15.5.0", + "postcss": "^8.5.3", "prettier": "^3.3.3", + "prettier-plugin-organize-imports": "^4.2.0", + "prettier-plugin-tailwindcss": "^0.6.14", "typescript": "^5.5.3" }, "prettier": { "singleQuote": true, "bracketSpacing": false, - "trailingComma": "none" + "trailingComma": "none", + "plugins": [ + "prettier-plugin-organize-imports", + "prettier-plugin-tailwindcss" + ] }, "engines": { "node": ">=20.0.0" diff --git a/examples/example-app-router-patterns/postcss.config.mjs b/examples/example-app-router-patterns/postcss.config.mjs new file mode 100644 index 000000000..313840505 --- /dev/null +++ b/examples/example-app-router-patterns/postcss.config.mjs @@ -0,0 +1,6 @@ +const config = { + plugins: { + '@tailwindcss/postcss': {} + } +}; +export default config; diff --git a/examples/example-app-router-patterns/src/app/design/DesignColorSwatch.tsx b/examples/example-app-router-patterns/src/app/design/DesignColorSwatch.tsx new file mode 100644 index 000000000..7f6222457 --- /dev/null +++ b/examples/example-app-router-patterns/src/app/design/DesignColorSwatch.tsx @@ -0,0 +1,15 @@ +import clsx from 'clsx'; + +type Props = { + className: string; + value: string; +}; + +export default function DesignColorSwatch({className, value}: Props) { + return ( +
+
+
{value}
+
+ ); +} diff --git a/examples/example-app-router-patterns/src/app/design/DesignSection.tsx b/examples/example-app-router-patterns/src/app/design/DesignSection.tsx new file mode 100644 index 000000000..433cbf251 --- /dev/null +++ b/examples/example-app-router-patterns/src/app/design/DesignSection.tsx @@ -0,0 +1,17 @@ +import {ReactNode} from 'react'; + +type Props = { + children: ReactNode; + title: string; +}; + +export default function DesignSection({children, title}: Props) { + return ( +
+

+ {title} +

+ {children} +
+ ); +} diff --git a/examples/example-app-router-patterns/src/app/design/page.tsx b/examples/example-app-router-patterns/src/app/design/page.tsx new file mode 100644 index 000000000..1fcd139d5 --- /dev/null +++ b/examples/example-app-router-patterns/src/app/design/page.tsx @@ -0,0 +1,170 @@ +// Documentation page for the next-intl design system + +import DesignColorSwatch from './DesignColorSwatch'; +import DesignSection from './DesignSection'; + +export default function DesignPage() { + return ( +
+
+

+ Design system +

+
+ +
+
+

+ Blue (primary) +

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

Gray

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

+ Title large +

+

+ Title normal +

+

Title description

+

+ Title caption +

+

+ Title small +

+

+ Headline +

+

+ Headline caption +

+

Body large

+

Body large muted

+

+ Body with{' '} + + a link + +

+

Body muted

+

Label

+

+ Label muted +

+

+ Inline code +

+
+
+
+
+

+ Title large +

+

+ Title normal +

+

Title description

+

+ Title caption +

+

+ Title small +

+

Headline

+

+ Headline caption +

+

Body large

+

Body large muted

+

+ Body with{' '} + + a link + +

+

Body muted

+

Label

+

+ Label muted +

+

+ Inline code +

+
+
+
+
+ +
+
+
+

+ Title caption +

+

+ Title normal +

+

+ Title description +

+
+
+
+
+

+ Title caption +

+

+ Title normal +

+

+ Title description +

+
+
+
+
+
+
+
+ ); +} diff --git a/examples/example-app-router-patterns/src/app/globals.css b/examples/example-app-router-patterns/src/app/globals.css new file mode 100644 index 000000000..73bb5b727 --- /dev/null +++ b/examples/example-app-router-patterns/src/app/globals.css @@ -0,0 +1,23 @@ +@import 'tailwindcss'; + +@theme { + --color-white: #ffffff; + + --color-gray-50: #f7f7f8; + --color-gray-100: #ebebef; + --color-gray-200: #d1d1db; + --color-gray-300: #a9a9bc; + --color-gray-400: #8a8aa3; + --color-gray-500: #6c6c89; + --color-gray-600: #55556d; + --color-gray-700: #3f3f50; + --color-gray-800: #282833; + --color-gray-900: #121217; + + --color-blue-300: #70d2ff; + --color-blue-700: #008fd6; + + --font-mono: + Monaco, ui-monospace, SFMono-Regular, Menlo, Consolas, Liberation Mono, + Courier New, monospace; +} diff --git a/examples/example-app-router-patterns/src/app/layout.tsx b/examples/example-app-router-patterns/src/app/layout.tsx index 8957311c8..f2c77bbad 100644 --- a/examples/example-app-router-patterns/src/app/layout.tsx +++ b/examples/example-app-router-patterns/src/app/layout.tsx @@ -1,7 +1,16 @@ +import {Inter} from 'next/font/google'; +import './globals.css'; +import {clsx} from 'clsx'; + +const inter = Inter({ + subsets: ['latin'], + variable: '--font-inter' +}); + export default function RootLayout({children}: LayoutProps<'/'>) { return ( - {children} + {children} ); } diff --git a/examples/example-app-router-patterns/src/app/page.tsx b/examples/example-app-router-patterns/src/app/page.tsx index 50ed73181..f5638571b 100644 --- a/examples/example-app-router-patterns/src/app/page.tsx +++ b/examples/example-app-router-patterns/src/app/page.tsx @@ -1,3 +1,5 @@ -export default function Home() { - return
Hello World
; +import {redirect} from 'next/navigation'; + +export default function HomePage() { + redirect('/design'); } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index dfd89fa80..43b394cbf 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -45,10 +45,10 @@ importers: version: 2.2.0(react@18.3.1) '@vercel/analytics': specifier: 1.5.0 - version: 1.5.0(@remix-run/react@2.16.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.2))(next@14.2.24(@playwright/test@1.55.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) + version: 1.5.0(@remix-run/react@2.16.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.2))(next@14.2.24(@babel/core@7.26.10)(@playwright/test@1.55.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) '@vercel/speed-insights': specifier: ^1.2.0 - version: 1.2.0(next@14.2.24(@playwright/test@1.55.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) + version: 1.2.0(next@14.2.24(@babel/core@7.26.10)(@playwright/test@1.55.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) clsx: specifier: ^2.1.1 version: 2.1.1 @@ -57,13 +57,13 @@ importers: version: 2.3.0 next: specifier: ^14.2.4 - version: 14.2.24(@playwright/test@1.55.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 14.2.24(@babel/core@7.26.10)(@playwright/test@1.55.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) nextra: specifier: ^3.3.1 - version: 3.3.1(@types/react@19.0.10)(acorn@8.14.1)(next@14.2.24(@playwright/test@1.55.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.2) + version: 3.3.1(@types/react@19.0.10)(acorn@8.14.1)(next@14.2.24(@babel/core@7.26.10)(@playwright/test@1.55.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.2) nextra-theme-docs: specifier: ^3.3.1 - version: 3.3.1(patch_hash=37qjvtnqoj5dxgzxofrrj6xcdq)(next@14.2.24(@playwright/test@1.55.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(nextra@3.3.1(@types/react@19.0.10)(acorn@8.14.1)(next@14.2.24(@playwright/test@1.55.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 3.3.1(patch_hash=37qjvtnqoj5dxgzxofrrj6xcdq)(next@14.2.24(@babel/core@7.26.10)(@playwright/test@1.55.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(nextra@3.3.1(@types/react@19.0.10)(acorn@8.14.1)(next@14.2.24(@babel/core@7.26.10)(@playwright/test@1.55.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: specifier: ^18.3.1 version: 18.3.1 @@ -91,10 +91,10 @@ importers: version: 10.4.21(postcss@8.5.3) eslint: specifier: 9.11.1 - version: 9.11.1(jiti@2.4.2) + version: 9.11.1(jiti@2.5.1) eslint-config-molindo: specifier: ^8.0.0 - version: 8.0.0(@typescript-eslint/eslint-plugin@8.26.1(@typescript-eslint/parser@8.9.0(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2))(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2))(@typescript-eslint/parser@8.9.0(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2))(eslint@9.11.1(jiti@2.4.2))(jest@29.7.0(@types/node@20.17.24))(tailwindcss@3.4.17)(typescript@5.8.2)(vitest@3.0.8(@edge-runtime/vm@5.0.0)(@types/debug@4.1.12)(@types/node@20.17.24)(jiti@2.4.2)(jsdom@26.0.0)(lightningcss@1.29.2)(terser@5.39.0)(yaml@2.7.0)) + version: 8.0.0(@typescript-eslint/eslint-plugin@8.26.1(@typescript-eslint/parser@8.9.0(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(@typescript-eslint/parser@8.9.0(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint@9.11.1(jiti@2.5.1))(jest@29.7.0(@types/node@20.17.24))(tailwindcss@3.4.17)(typescript@5.8.2)(vitest@3.0.8(@edge-runtime/vm@5.0.0)(@types/debug@4.1.12)(@types/node@20.17.24)(jiti@2.5.1)(jsdom@26.0.0)(lightningcss@1.30.1)(terser@5.39.0)(yaml@2.7.0)) fast-glob: specifier: ^3.3.3 version: 3.3.3 @@ -103,7 +103,7 @@ importers: version: 16.0.0 next-sitemap: specifier: ^4.2.3 - version: 4.2.3(next@14.2.24(@playwright/test@1.55.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) + version: 4.2.3(next@14.2.24(@babel/core@7.26.10)(@playwright/test@1.55.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) next-validate-link: specifier: ^1.5.1 version: 1.5.1 @@ -164,10 +164,10 @@ importers: version: 10.4.21(postcss@8.5.3) eslint: specifier: 9.11.1 - version: 9.11.1(jiti@2.4.2) + version: 9.11.1(jiti@2.5.1) eslint-config-next: specifier: ^15.5.0 - version: 15.5.0(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2) + version: 15.5.0(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2) jest: specifier: ^29.7.0 version: 29.7.0(@types/node@20.17.24) @@ -213,10 +213,10 @@ importers: version: 19.0.10 eslint: specifier: 9.11.1 - version: 9.11.1(jiti@2.4.2) + version: 9.11.1(jiti@2.5.1) eslint-config-next: specifier: ^15.5.0 - version: 15.5.0(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2) + version: 15.5.0(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2) prettier: specifier: ^3.3.3 version: 3.5.3 @@ -259,10 +259,10 @@ importers: version: 10.4.21(postcss@8.5.3) eslint: specifier: 9.11.1 - version: 9.11.1(jiti@2.4.2) + version: 9.11.1(jiti@2.5.1) eslint-config-next: specifier: ^15.5.0 - version: 15.5.0(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2) + version: 15.5.0(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2) postcss: specifier: ^8.5.3 version: 8.5.3 @@ -308,10 +308,10 @@ importers: version: 19.0.10 eslint: specifier: 9.11.1 - version: 9.11.1(jiti@2.4.2) + version: 9.11.1(jiti@2.5.1) eslint-config-next: specifier: ^15.5.0 - version: 15.5.0(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2) + version: 15.5.0(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2) prettier: specifier: ^3.3.3 version: 3.5.3 @@ -321,6 +321,9 @@ importers: examples/example-app-router-patterns: dependencies: + clsx: + specifier: ^2.1.1 + version: 2.1.1 next: specifier: ^15.5.0 version: 15.5.0(@babel/core@7.26.10)(@playwright/test@1.55.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) @@ -333,10 +336,16 @@ importers: react-dom: specifier: ^19.0.0 version: 19.0.0(react@19.0.0) + tailwindcss: + specifier: ^4.1.12 + version: 4.1.12 devDependencies: '@eslint/eslintrc': specifier: ^3.1.0 version: 3.3.0 + '@tailwindcss/postcss': + specifier: ^4.1.12 + version: 4.1.12 '@types/node': specifier: ^20.14.5 version: 20.17.24 @@ -348,13 +357,22 @@ importers: version: 19.0.4(@types/react@19.0.10) eslint: specifier: 9.11.1 - version: 9.11.1(jiti@2.4.2) + version: 9.11.1(jiti@2.5.1) eslint-config-next: specifier: ^15.5.0 - version: 15.5.0(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2) + version: 15.5.0(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2) + postcss: + specifier: ^8.5.3 + version: 8.5.3 prettier: specifier: ^3.3.3 version: 3.5.3 + prettier-plugin-organize-imports: + specifier: ^4.2.0 + version: 4.2.0(prettier@3.5.3)(typescript@5.8.2) + prettier-plugin-tailwindcss: + specifier: ^0.6.14 + version: 0.6.14(prettier-plugin-organize-imports@4.2.0(prettier@3.5.3)(typescript@5.8.2))(prettier@3.5.3) typescript: specifier: ^5.5.3 version: 5.8.2 @@ -442,10 +460,10 @@ importers: version: 6.11.0(webpack@5.98.0(esbuild@0.25.1)) eslint: specifier: 9.11.1 - version: 9.11.1(jiti@2.4.2) + version: 9.11.1(jiti@2.5.1) eslint-config-next: specifier: ^15.5.0 - version: 15.5.0(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2) + version: 15.5.0(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2) jest: specifier: ^29.7.0 version: 29.7.0(@types/node@20.17.24) @@ -500,10 +518,10 @@ importers: version: 19.0.10 eslint: specifier: 9.11.1 - version: 9.11.1(jiti@2.4.2) + version: 9.11.1(jiti@2.5.1) eslint-config-next: specifier: ^15.5.0 - version: 15.5.0(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2) + version: 15.5.0(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2) prettier: specifier: ^3.3.3 version: 3.5.3 @@ -564,10 +582,10 @@ importers: version: 10.4.21(postcss@8.5.3) eslint: specifier: 9.11.1 - version: 9.11.1(jiti@2.4.2) + version: 9.11.1(jiti@2.5.1) eslint-config-next: specifier: ^15.5.0 - version: 15.5.0(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2) + version: 15.5.0(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2) postcss: specifier: ^8.5.3 version: 8.5.3 @@ -613,10 +631,10 @@ importers: version: 19.0.10 eslint: specifier: 9.11.1 - version: 9.11.1(jiti@2.4.2) + version: 9.11.1(jiti@2.5.1) eslint-config-next: specifier: ^15.5.0 - version: 15.5.0(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2) + version: 15.5.0(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2) prettier: specifier: ^3.3.3 version: 3.5.3 @@ -668,10 +686,10 @@ importers: version: 19.0.10 eslint: specifier: 9.11.1 - version: 9.11.1(jiti@2.4.2) + version: 9.11.1(jiti@2.5.1) eslint-config-next: specifier: ^15.5.0 - version: 15.5.0(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2) + version: 15.5.0(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2) jest: specifier: ^29.7.0 version: 29.7.0(@types/node@20.17.24) @@ -708,7 +726,7 @@ importers: dependencies: '@expo/webpack-config': specifier: ^0.17.2 - version: 0.17.4(encoding@0.1.13)(eslint@9.22.0(jiti@2.4.2))(expo@47.0.14(@babel/core@7.26.10)(encoding@0.1.13))(typescript@5.8.2) + version: 0.17.4(encoding@0.1.13)(eslint@9.22.0(jiti@2.5.1))(expo@47.0.14(@babel/core@7.26.10)(encoding@0.1.13))(typescript@5.8.2) expo: specifier: ~47.0.12 version: 47.0.14(@babel/core@7.26.10)(encoding@0.1.13) @@ -764,7 +782,7 @@ importers: devDependencies: '@remix-run/dev': specifier: ^2.9.2 - version: 2.16.0(@remix-run/react@2.16.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.2))(@remix-run/serve@2.16.0(typescript@5.8.2))(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(typescript@5.8.2)(vite@6.2.1(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(yaml@2.7.0))(yaml@2.7.0) + version: 2.16.0(@remix-run/react@2.16.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.2))(@remix-run/serve@2.16.0(typescript@5.8.2))(@types/node@22.13.10)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.39.0)(typescript@5.8.2)(vite@6.2.1(@types/node@22.13.10)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.39.0)(yaml@2.7.0))(yaml@2.7.0) '@types/accept-language-parser': specifier: ^1.5.7 version: 1.5.7 @@ -801,7 +819,7 @@ importers: version: 19.0.4(@types/react@19.0.10) '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@6.2.1(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(yaml@2.7.0)) + version: 4.3.4(vite@6.2.1(@types/node@22.13.10)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.39.0)(yaml@2.7.0)) prettier: specifier: ^3.3.3 version: 3.5.3 @@ -810,7 +828,7 @@ importers: version: 5.8.2 vite: specifier: ^6.2.1 - version: 6.2.1(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(yaml@2.7.0) + version: 6.2.1(@types/node@22.13.10)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.39.0)(yaml@2.7.0) packages/next-intl: dependencies: @@ -850,13 +868,13 @@ importers: version: 19.0.4(@types/react@19.0.10) eslint: specifier: 9.11.1 - version: 9.11.1(jiti@2.4.2) + version: 9.11.1(jiti@2.5.1) eslint-config-molindo: specifier: ^8.0.0 - version: 8.0.0(@typescript-eslint/eslint-plugin@8.26.1(@typescript-eslint/parser@8.26.1(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2))(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2))(@typescript-eslint/parser@8.26.1(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2))(eslint@9.11.1(jiti@2.4.2))(jest@29.7.0(@types/node@20.17.24))(tailwindcss@4.0.13)(typescript@5.8.2)(vitest@3.0.8(@edge-runtime/vm@5.0.0)(@types/debug@4.1.12)(@types/node@20.17.24)(jiti@2.4.2)(jsdom@26.0.0)(lightningcss@1.29.2)(terser@5.39.0)(yaml@2.7.0)) + version: 8.0.0(@typescript-eslint/eslint-plugin@8.26.1(@typescript-eslint/parser@8.26.1(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(@typescript-eslint/parser@8.26.1(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint@9.11.1(jiti@2.5.1))(jest@29.7.0(@types/node@20.17.24))(tailwindcss@4.1.12)(typescript@5.8.2)(vitest@3.0.8(@edge-runtime/vm@5.0.0)(@types/debug@4.1.12)(@types/node@20.17.24)(jiti@2.5.1)(jsdom@26.0.0)(lightningcss@1.30.1)(terser@5.39.0)(yaml@2.7.0)) eslint-plugin-react-compiler: specifier: 0.0.0-experimental-8e3b87c-20240822 - version: 0.0.0-experimental-8e3b87c-20240822(eslint@9.11.1(jiti@2.4.2)) + version: 0.0.0-experimental-8e3b87c-20240822(eslint@9.11.1(jiti@2.5.1)) next: specifier: ^15.5.0 version: 15.5.0(@babel/core@7.26.10)(@playwright/test@1.55.0)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) @@ -892,7 +910,7 @@ importers: version: 5.8.2 vitest: specifier: ^3.0.8 - version: 3.0.8(@edge-runtime/vm@5.0.0)(@types/debug@4.1.12)(@types/node@20.17.24)(jiti@2.4.2)(jsdom@26.0.0)(lightningcss@1.29.2)(terser@5.39.0)(yaml@2.7.0) + version: 3.0.8(@edge-runtime/vm@5.0.0)(@types/debug@4.1.12)(@types/node@20.17.24)(jiti@2.5.1)(jsdom@26.0.0)(lightningcss@1.30.1)(terser@5.39.0)(yaml@2.7.0) packages/use-intl: dependencies: @@ -929,13 +947,13 @@ importers: version: 4.1.0 eslint: specifier: 9.11.1 - version: 9.11.1(jiti@2.4.2) + version: 9.11.1(jiti@2.5.1) eslint-config-molindo: specifier: ^8.0.0 - version: 8.0.0(@typescript-eslint/eslint-plugin@8.26.1(@typescript-eslint/parser@8.26.1(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2))(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2))(@typescript-eslint/parser@8.26.1(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2))(eslint@9.11.1(jiti@2.4.2))(jest@29.7.0(@types/node@20.17.24))(tailwindcss@4.0.13)(typescript@5.8.2)(vitest@3.0.8(@edge-runtime/vm@5.0.0)(@types/debug@4.1.12)(@types/node@20.17.24)(jiti@2.4.2)(jsdom@26.0.0)(lightningcss@1.29.2)(terser@5.39.0)(yaml@2.7.0)) + version: 8.0.0(@typescript-eslint/eslint-plugin@8.26.1(@typescript-eslint/parser@8.26.1(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(@typescript-eslint/parser@8.26.1(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint@9.11.1(jiti@2.5.1))(jest@29.7.0(@types/node@20.17.24))(tailwindcss@4.1.12)(typescript@5.8.2)(vitest@3.0.8(@edge-runtime/vm@5.0.0)(@types/debug@4.1.12)(@types/node@20.17.24)(jiti@2.5.1)(jsdom@26.0.0)(lightningcss@1.30.1)(terser@5.39.0)(yaml@2.7.0)) eslint-plugin-react-compiler: specifier: 0.0.0-experimental-8e3b87c-20240822 - version: 0.0.0-experimental-8e3b87c-20240822(eslint@9.11.1(jiti@2.4.2)) + version: 0.0.0-experimental-8e3b87c-20240822(eslint@9.11.1(jiti@2.5.1)) prettier: specifier: ^3.3.3 version: 3.5.3 @@ -965,7 +983,7 @@ importers: version: 5.8.2 vitest: specifier: ^3.0.8 - version: 3.0.8(@edge-runtime/vm@5.0.0)(@types/debug@4.1.12)(@types/node@20.17.24)(jiti@2.4.2)(jsdom@26.0.0)(lightningcss@1.29.2)(terser@5.39.0)(yaml@2.7.0) + version: 3.0.8(@edge-runtime/vm@5.0.0)(@types/debug@4.1.12)(@types/node@20.17.24)(jiti@2.5.1)(jsdom@26.0.0)(lightningcss@1.30.1)(terser@5.39.0)(yaml@2.7.0) tools: devDependencies: @@ -995,10 +1013,10 @@ importers: version: 0.4.4(rollup@4.35.0) eslint: specifier: 9.11.1 - version: 9.11.1(jiti@2.4.2) + version: 9.11.1(jiti@2.5.1) eslint-config-molindo: specifier: ^8.0.0 - version: 8.0.0(@typescript-eslint/eslint-plugin@8.26.1(@typescript-eslint/parser@8.26.1(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2))(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2))(@typescript-eslint/parser@8.26.1(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2))(eslint@9.11.1(jiti@2.4.2))(jest@29.7.0(@types/node@22.13.10))(tailwindcss@4.0.13)(typescript@5.8.2)(vitest@3.0.8(@edge-runtime/vm@5.0.0)(@types/debug@4.1.12)(@types/node@22.13.10)(jiti@2.4.2)(jsdom@26.0.0)(lightningcss@1.29.2)(terser@5.39.0)(yaml@2.7.0)) + version: 8.0.0(@typescript-eslint/eslint-plugin@8.26.1(@typescript-eslint/parser@8.26.1(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(@typescript-eslint/parser@8.26.1(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint@9.11.1(jiti@2.5.1))(jest@29.7.0(@types/node@22.13.10))(tailwindcss@4.1.12)(typescript@5.8.2)(vitest@3.0.8(@edge-runtime/vm@5.0.0)(@types/debug@4.1.12)(@types/node@22.13.10)(jiti@2.5.1)(jsdom@26.0.0)(lightningcss@1.30.1)(terser@5.39.0)(yaml@2.7.0)) execa: specifier: ^9.5.2 version: 9.5.2 @@ -2584,7 +2602,7 @@ packages: '@expo/bunyan@4.0.1': resolution: {integrity: sha512-+Lla7nYSiHZirgK+U/uYzsLv/X+HaJienbD5AKX1UQZHYfWaP+9uuQluRB4GrEVWF0GZ7vEVp/jzaOT9k/SQlg==} - engines: {'0': node >=0.10.0} + engines: {node: '>=0.10.0'} '@expo/cli@0.4.11': resolution: {integrity: sha512-L9Ci9RBh0aPFEDF1AjDYPk54OgeUJIKzxF3lRgITm+lQpI3IEKjAc9LaYeQeO1mlZMUQmPkHArF8iyz1eOeVoQ==} @@ -3046,6 +3064,10 @@ packages: resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} engines: {node: '>=12'} + '@isaacs/fs-minipass@4.0.1': + resolution: {integrity: sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==} + engines: {node: '>=18.0.0'} + '@isaacs/string-locale-compare@1.1.0': resolution: {integrity: sha512-SQ7Kzhh9+D+ZW9MA0zkYv3VXhIDNx+LzM6EJ+/65I3QY+enU6Itte7E5XX7EWrqLW2FN4n06GWzBnPoC3th2aQ==} @@ -3143,6 +3165,9 @@ packages: resolution: {integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==} engines: {node: '>=6.0.0'} + '@jridgewell/remapping@2.3.5': + resolution: {integrity: sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==} + '@jridgewell/resolve-uri@3.1.2': resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} engines: {node: '>=6.0.0'} @@ -4604,6 +4629,94 @@ packages: '@swc/helpers@0.5.5': resolution: {integrity: sha512-KGYxvIOXcceOAbEk4bi/dVLEK9z8sZ0uBB3Il5b1rhfClSpcX0yfRO0KmTkqR2cnQDymwLB+25ZyMzICg/cm/A==} + '@tailwindcss/node@4.1.12': + resolution: {integrity: sha512-3hm9brwvQkZFe++SBt+oLjo4OLDtkvlE8q2WalaD/7QWaeM7KEJbAiY/LJZUaCs7Xa8aUu4xy3uoyX4q54UVdQ==} + + '@tailwindcss/oxide-android-arm64@4.1.12': + resolution: {integrity: sha512-oNY5pq+1gc4T6QVTsZKwZaGpBb2N1H1fsc1GD4o7yinFySqIuRZ2E4NvGasWc6PhYJwGK2+5YT1f9Tp80zUQZQ==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [android] + + '@tailwindcss/oxide-darwin-arm64@4.1.12': + resolution: {integrity: sha512-cq1qmq2HEtDV9HvZlTtrj671mCdGB93bVY6J29mwCyaMYCP/JaUBXxrQQQm7Qn33AXXASPUb2HFZlWiiHWFytw==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [darwin] + + '@tailwindcss/oxide-darwin-x64@4.1.12': + resolution: {integrity: sha512-6UCsIeFUcBfpangqlXay9Ffty9XhFH1QuUFn0WV83W8lGdX8cD5/+2ONLluALJD5+yJ7k8mVtwy3zMZmzEfbLg==} + engines: {node: '>= 10'} + cpu: [x64] + os: [darwin] + + '@tailwindcss/oxide-freebsd-x64@4.1.12': + resolution: {integrity: sha512-JOH/f7j6+nYXIrHobRYCtoArJdMJh5zy5lr0FV0Qu47MID/vqJAY3r/OElPzx1C/wdT1uS7cPq+xdYYelny1ww==} + engines: {node: '>= 10'} + cpu: [x64] + os: [freebsd] + + '@tailwindcss/oxide-linux-arm-gnueabihf@4.1.12': + resolution: {integrity: sha512-v4Ghvi9AU1SYgGr3/j38PD8PEe6bRfTnNSUE3YCMIRrrNigCFtHZ2TCm8142X8fcSqHBZBceDx+JlFJEfNg5zQ==} + engines: {node: '>= 10'} + cpu: [arm] + os: [linux] + + '@tailwindcss/oxide-linux-arm64-gnu@4.1.12': + resolution: {integrity: sha512-YP5s1LmetL9UsvVAKusHSyPlzSRqYyRB0f+Kl/xcYQSPLEw/BvGfxzbH+ihUciePDjiXwHh+p+qbSP3SlJw+6g==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + + '@tailwindcss/oxide-linux-arm64-musl@4.1.12': + resolution: {integrity: sha512-V8pAM3s8gsrXcCv6kCHSuwyb/gPsd863iT+v1PGXC4fSL/OJqsKhfK//v8P+w9ThKIoqNbEnsZqNy+WDnwQqCA==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + + '@tailwindcss/oxide-linux-x64-gnu@4.1.12': + resolution: {integrity: sha512-xYfqYLjvm2UQ3TZggTGrwxjYaLB62b1Wiysw/YE3Yqbh86sOMoTn0feF98PonP7LtjsWOWcXEbGqDL7zv0uW8Q==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + + '@tailwindcss/oxide-linux-x64-musl@4.1.12': + resolution: {integrity: sha512-ha0pHPamN+fWZY7GCzz5rKunlv9L5R8kdh+YNvP5awe3LtuXb5nRi/H27GeL2U+TdhDOptU7T6Is7mdwh5Ar3A==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + + '@tailwindcss/oxide-wasm32-wasi@4.1.12': + resolution: {integrity: sha512-4tSyu3dW+ktzdEpuk6g49KdEangu3eCYoqPhWNsZgUhyegEda3M9rG0/j1GV/JjVVsj+lG7jWAyrTlLzd/WEBg==} + engines: {node: '>=14.0.0'} + cpu: [wasm32] + bundledDependencies: + - '@napi-rs/wasm-runtime' + - '@emnapi/core' + - '@emnapi/runtime' + - '@tybys/wasm-util' + - '@emnapi/wasi-threads' + - tslib + + '@tailwindcss/oxide-win32-arm64-msvc@4.1.12': + resolution: {integrity: sha512-iGLyD/cVP724+FGtMWslhcFyg4xyYyM+5F4hGvKA7eifPkXHRAUDFaimu53fpNg9X8dfP75pXx/zFt/jlNF+lg==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [win32] + + '@tailwindcss/oxide-win32-x64-msvc@4.1.12': + resolution: {integrity: sha512-NKIh5rzw6CpEodv/++r0hGLlfgT/gFN+5WNdZtvh6wpU2BpGNgdjvj6H2oFc8nCM839QM1YOhjpgbAONUb4IxA==} + engines: {node: '>= 10'} + cpu: [x64] + os: [win32] + + '@tailwindcss/oxide@4.1.12': + resolution: {integrity: sha512-gM5EoKHW/ukmlEtphNwaGx45fGoEmP10v51t9unv55voWh6WrOL19hfuIdo2FjxIaZzw776/BUQg7Pck++cIVw==} + engines: {node: '>= 10'} + + '@tailwindcss/postcss@4.1.12': + resolution: {integrity: sha512-5PpLYhCAwf9SJEeIsSmCDLgyVfdBhdBpzX1OJ87anT9IVR0Z9pjM0FNixCAUAHGnMBGB8K99SwAheXrT0Kh6QQ==} + '@tanstack/react-virtual@3.13.2': resolution: {integrity: sha512-LceSUgABBKF6HSsHK2ZqHzQ37IKV/jlaWbHm+NyTa3/WNb/JZVcThDuTainf+PixltOOcFCYXwxbLpOX9sCx+g==} peerDependencies: @@ -6256,6 +6369,10 @@ packages: resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} engines: {node: '>=10'} + chownr@3.0.0: + resolution: {integrity: sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==} + engines: {node: '>=18'} + chrome-trace-event@1.0.4: resolution: {integrity: sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==} engines: {node: '>=6.0'} @@ -7442,6 +7559,10 @@ packages: resolution: {integrity: sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==} engines: {node: '>=10.13.0'} + enhanced-resolve@5.18.3: + resolution: {integrity: sha512-d4lC8xfavMeBjzGr2vECC3fsGXziXZQyJxD868h2M/mBI3PwAuODxAkLkq5HYuvrPYcUtiLzsTo8U3PgX3Ocww==} + engines: {node: '>=10.13.0'} + entities@2.2.0: resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==} @@ -9773,6 +9894,10 @@ packages: resolution: {integrity: sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==} hasBin: true + jiti@2.5.1: + resolution: {integrity: sha512-twQoecYPiVA5K/h6SxtORw/Bs3ar+mLUtoPSc7iMXzQzK8d7eJ/R09wmTwAjiamETn1cXYPGfNnu7DMoHgu12w==} + hasBin: true + joi@17.13.3: resolution: {integrity: sha512-otDA4ldcIx+ZXsKHWmp0YizCweVRZG96J10b0FevjfuncLO1oX59THoAmHkNubYJ+9gWsYsp5k8v4ib6oDv1fA==} @@ -9994,68 +10119,68 @@ packages: resolution: {integrity: sha512-26zzwoBNAvX9AWOPiqqF6FG4HrSCPsHFkQm7nT+xU1ggAujL/eae81RnCv4CJ2In9q9fh10B88sYSzKCUh/Ghg==} engines: {node: ^16.14.0 || >=18.0.0} - lightningcss-darwin-arm64@1.29.2: - resolution: {integrity: sha512-cK/eMabSViKn/PG8U/a7aCorpeKLMlK0bQeNHmdb7qUnBkNPnL+oV5DjJUo0kqWsJUapZsM4jCfYItbqBDvlcA==} + lightningcss-darwin-arm64@1.30.1: + resolution: {integrity: sha512-c8JK7hyE65X1MHMN+Viq9n11RRC7hgin3HhYKhrMyaXflk5GVplZ60IxyoVtzILeKr+xAJwg6zK6sjTBJ0FKYQ==} engines: {node: '>= 12.0.0'} cpu: [arm64] os: [darwin] - lightningcss-darwin-x64@1.29.2: - resolution: {integrity: sha512-j5qYxamyQw4kDXX5hnnCKMf3mLlHvG44f24Qyi2965/Ycz829MYqjrVg2H8BidybHBp9kom4D7DR5VqCKDXS0w==} + lightningcss-darwin-x64@1.30.1: + resolution: {integrity: sha512-k1EvjakfumAQoTfcXUcHQZhSpLlkAuEkdMBsI/ivWw9hL+7FtilQc0Cy3hrx0AAQrVtQAbMI7YjCgYgvn37PzA==} engines: {node: '>= 12.0.0'} cpu: [x64] os: [darwin] - lightningcss-freebsd-x64@1.29.2: - resolution: {integrity: sha512-wDk7M2tM78Ii8ek9YjnY8MjV5f5JN2qNVO+/0BAGZRvXKtQrBC4/cn4ssQIpKIPP44YXw6gFdpUF+Ps+RGsCwg==} + lightningcss-freebsd-x64@1.30.1: + resolution: {integrity: sha512-kmW6UGCGg2PcyUE59K5r0kWfKPAVy4SltVeut+umLCFoJ53RdCUWxcRDzO1eTaxf/7Q2H7LTquFHPL5R+Gjyig==} engines: {node: '>= 12.0.0'} cpu: [x64] os: [freebsd] - lightningcss-linux-arm-gnueabihf@1.29.2: - resolution: {integrity: sha512-IRUrOrAF2Z+KExdExe3Rz7NSTuuJ2HvCGlMKoquK5pjvo2JY4Rybr+NrKnq0U0hZnx5AnGsuFHjGnNT14w26sg==} + lightningcss-linux-arm-gnueabihf@1.30.1: + resolution: {integrity: sha512-MjxUShl1v8pit+6D/zSPq9S9dQ2NPFSQwGvxBCYaBYLPlCWuPh9/t1MRS8iUaR8i+a6w7aps+B4N0S1TYP/R+Q==} engines: {node: '>= 12.0.0'} cpu: [arm] os: [linux] - lightningcss-linux-arm64-gnu@1.29.2: - resolution: {integrity: sha512-KKCpOlmhdjvUTX/mBuaKemp0oeDIBBLFiU5Fnqxh1/DZ4JPZi4evEH7TKoSBFOSOV3J7iEmmBaw/8dpiUvRKlQ==} + lightningcss-linux-arm64-gnu@1.30.1: + resolution: {integrity: sha512-gB72maP8rmrKsnKYy8XUuXi/4OctJiuQjcuqWNlJQ6jZiWqtPvqFziskH3hnajfvKB27ynbVCucKSm2rkQp4Bw==} engines: {node: '>= 12.0.0'} cpu: [arm64] os: [linux] - lightningcss-linux-arm64-musl@1.29.2: - resolution: {integrity: sha512-Q64eM1bPlOOUgxFmoPUefqzY1yV3ctFPE6d/Vt7WzLW4rKTv7MyYNky+FWxRpLkNASTnKQUaiMJ87zNODIrrKQ==} + lightningcss-linux-arm64-musl@1.30.1: + resolution: {integrity: sha512-jmUQVx4331m6LIX+0wUhBbmMX7TCfjF5FoOH6SD1CttzuYlGNVpA7QnrmLxrsub43ClTINfGSYyHe2HWeLl5CQ==} engines: {node: '>= 12.0.0'} cpu: [arm64] os: [linux] - lightningcss-linux-x64-gnu@1.29.2: - resolution: {integrity: sha512-0v6idDCPG6epLXtBH/RPkHvYx74CVziHo6TMYga8O2EiQApnUPZsbR9nFNrg2cgBzk1AYqEd95TlrsL7nYABQg==} + lightningcss-linux-x64-gnu@1.30.1: + resolution: {integrity: sha512-piWx3z4wN8J8z3+O5kO74+yr6ze/dKmPnI7vLqfSqI8bccaTGY5xiSGVIJBDd5K5BHlvVLpUB3S2YCfelyJ1bw==} engines: {node: '>= 12.0.0'} cpu: [x64] os: [linux] - lightningcss-linux-x64-musl@1.29.2: - resolution: {integrity: sha512-rMpz2yawkgGT8RULc5S4WiZopVMOFWjiItBT7aSfDX4NQav6M44rhn5hjtkKzB+wMTRlLLqxkeYEtQ3dd9696w==} + lightningcss-linux-x64-musl@1.30.1: + resolution: {integrity: sha512-rRomAK7eIkL+tHY0YPxbc5Dra2gXlI63HL+v1Pdi1a3sC+tJTcFrHX+E86sulgAXeI7rSzDYhPSeHHjqFhqfeQ==} engines: {node: '>= 12.0.0'} cpu: [x64] os: [linux] - lightningcss-win32-arm64-msvc@1.29.2: - resolution: {integrity: sha512-nL7zRW6evGQqYVu/bKGK+zShyz8OVzsCotFgc7judbt6wnB2KbiKKJwBE4SGoDBQ1O94RjW4asrCjQL4i8Fhbw==} + lightningcss-win32-arm64-msvc@1.30.1: + resolution: {integrity: sha512-mSL4rqPi4iXq5YVqzSsJgMVFENoa4nGTT/GjO2c0Yl9OuQfPsIfncvLrEW6RbbB24WtZ3xP/2CCmI3tNkNV4oA==} engines: {node: '>= 12.0.0'} cpu: [arm64] os: [win32] - lightningcss-win32-x64-msvc@1.29.2: - resolution: {integrity: sha512-EdIUW3B2vLuHmv7urfzMI/h2fmlnOQBk1xlsDxkN1tCWKjNFjfLhGxYk8C8mzpSfr+A6jFFIi8fU6LbQGsRWjA==} + lightningcss-win32-x64-msvc@1.30.1: + resolution: {integrity: sha512-PVqXh48wh4T53F/1CCu8PIPCxLzWyCnn/9T5W1Jpmdy5h9Cwd+0YQS6/LwhHXSafuc61/xg9Lv5OrCby6a++jg==} engines: {node: '>= 12.0.0'} cpu: [x64] os: [win32] - lightningcss@1.29.2: - resolution: {integrity: sha512-6b6gd/RUXKaw5keVdSEtqFVdzWnU5jMxTUjA2bVcMNPLwSQ08Sv/UodBVtETLCn7k4S1Ibxwh7k68IwLZPgKaA==} + lightningcss@1.30.1: + resolution: {integrity: sha512-xi6IyHML+c9+Q3W0S4fCQJOym42pyurFiJUHEcEyHS0CeKzia4yZDEsLlqOFykxOdHpNy0NmvVO31vcSqAxJCg==} engines: {node: '>= 12.0.0'} lilconfig@3.1.2: @@ -10869,6 +10994,10 @@ packages: resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} engines: {node: '>= 8'} + minizlib@3.0.2: + resolution: {integrity: sha512-oG62iEk+CYt5Xj2YqI5Xi9xWUeZhDI8jjQmC5oThVH5JGCTgIjr7ciJDzC7MBzYd//WvR1OTmP5Q38Q8ShQtVA==} + engines: {node: '>= 18'} + mississippi@3.0.0: resolution: {integrity: sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==} engines: {node: '>=4.0.0'} @@ -10892,6 +11021,11 @@ packages: engines: {node: '>=10'} hasBin: true + mkdirp@3.0.1: + resolution: {integrity: sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==} + engines: {node: '>=10'} + hasBin: true + mlly@1.7.1: resolution: {integrity: sha512-rrVRZRELyQzrIUAVMHxP97kv+G786pHmOKzuFII8zDYahFBS7qnHh2AlYSl1GAHhaMPCz6/oHjVMcfFYgFYHgA==} @@ -12157,6 +12291,77 @@ packages: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} + prettier-plugin-organize-imports@4.2.0: + resolution: {integrity: sha512-Zdy27UhlmyvATZi67BTnLcKTo8fm6Oik59Sz6H64PgZJVs6NJpPD1mT240mmJn62c98/QaL+r3kx9Q3gRpDajg==} + peerDependencies: + prettier: '>=2.0' + typescript: '>=2.9' + vue-tsc: ^2.1.0 || 3 + peerDependenciesMeta: + vue-tsc: + optional: true + + prettier-plugin-tailwindcss@0.6.14: + resolution: {integrity: sha512-pi2e/+ZygeIqntN+vC573BcW5Cve8zUB0SSAGxqpB4f96boZF4M3phPVoOFCeypwkpRYdi7+jQ5YJJUwrkGUAg==} + engines: {node: '>=14.21.3'} + peerDependencies: + '@ianvs/prettier-plugin-sort-imports': '*' + '@prettier/plugin-hermes': '*' + '@prettier/plugin-oxc': '*' + '@prettier/plugin-pug': '*' + '@shopify/prettier-plugin-liquid': '*' + '@trivago/prettier-plugin-sort-imports': '*' + '@zackad/prettier-plugin-twig': '*' + prettier: ^3.0 + prettier-plugin-astro: '*' + prettier-plugin-css-order: '*' + prettier-plugin-import-sort: '*' + prettier-plugin-jsdoc: '*' + prettier-plugin-marko: '*' + prettier-plugin-multiline-arrays: '*' + prettier-plugin-organize-attributes: '*' + prettier-plugin-organize-imports: '*' + prettier-plugin-sort-imports: '*' + prettier-plugin-style-order: '*' + prettier-plugin-svelte: '*' + peerDependenciesMeta: + '@ianvs/prettier-plugin-sort-imports': + optional: true + '@prettier/plugin-hermes': + optional: true + '@prettier/plugin-oxc': + optional: true + '@prettier/plugin-pug': + optional: true + '@shopify/prettier-plugin-liquid': + optional: true + '@trivago/prettier-plugin-sort-imports': + optional: true + '@zackad/prettier-plugin-twig': + optional: true + prettier-plugin-astro: + optional: true + prettier-plugin-css-order: + optional: true + prettier-plugin-import-sort: + optional: true + prettier-plugin-jsdoc: + optional: true + prettier-plugin-marko: + optional: true + prettier-plugin-multiline-arrays: + optional: true + prettier-plugin-organize-attributes: + optional: true + prettier-plugin-organize-imports: + optional: true + prettier-plugin-sort-imports: + optional: true + prettier-plugin-style-order: + optional: true + prettier-plugin-svelte: + optional: true + prettier@2.8.8: resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} engines: {node: '>=10.13.0'} @@ -12315,6 +12520,7 @@ packages: engines: {node: '>=0.6.0', teleport: '>=0.2.0'} deprecated: |- You or someone you depend on is using Q, the JavaScript Promise library that gave JavaScript developers strong feelings about promises. They can almost certainly migrate to the native JavaScript promise now. Thank you literally everyone for joining me in this bet against the odds. Be excellent to each other. + (For a CapTP with native promises, see @endo/eventual-send and @endo/captp) qrcode-terminal@0.11.0: @@ -13760,8 +13966,8 @@ packages: engines: {node: '>=14.0.0'} hasBin: true - tailwindcss@4.0.13: - resolution: {integrity: sha512-gbvFrB0fOsTv/OugXWi2PtflJ4S6/ctu6Mmn3bCftmLY/6xRsQVEJPgIIpABwpZ52DpONkCA3bEj5b54MHxF2Q==} + tailwindcss@4.1.12: + resolution: {integrity: sha512-DzFtxOi+7NsFf7DBtI3BJsynR+0Yp6etH+nRPTbpWnS2pZBaSksv/JGctNwSWzbFjp0vxSqknaUylseZqMDGrA==} tapable@1.1.3: resolution: {integrity: sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==} @@ -13782,6 +13988,10 @@ packages: resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==} engines: {node: '>=10'} + tar@7.4.3: + resolution: {integrity: sha512-5S7Va8hKfV7W5U6g3aYxXmlPoZVAwUMy9AOKyF2fVuZa2UD3qZjg578OrLRt8PcNN1PleVaL/5/yYATNL0ICUw==} + engines: {node: '>=18'} + temp-dir@1.0.0: resolution: {integrity: sha512-xZFXEGbG7SNC3itwBzI3RYjq/cEhBkx2hJuKGIUOcEULmkQExXiHat2z/qkISYsuR+IKumhEfKKbV5qXmhICFQ==} engines: {node: '>=4'} @@ -15156,6 +15366,10 @@ packages: yallist@4.0.0: resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + yallist@5.0.0: + resolution: {integrity: sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==} + engines: {node: '>=18'} + yaml@1.10.2: resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} engines: {node: '>= 6'} @@ -16826,19 +17040,19 @@ snapshots: '@esbuild/win32-x64@0.25.1': optional: true - '@eslint-community/eslint-utils@4.4.0(eslint@9.11.1(jiti@2.4.2))': + '@eslint-community/eslint-utils@4.4.0(eslint@9.11.1(jiti@2.5.1))': dependencies: - eslint: 9.11.1(jiti@2.4.2) + eslint: 9.11.1(jiti@2.5.1) eslint-visitor-keys: 3.4.3 - '@eslint-community/eslint-utils@4.5.0(eslint@9.11.1(jiti@2.4.2))': + '@eslint-community/eslint-utils@4.5.0(eslint@9.11.1(jiti@2.5.1))': dependencies: - eslint: 9.11.1(jiti@2.4.2) + eslint: 9.11.1(jiti@2.5.1) eslint-visitor-keys: 3.4.3 - '@eslint-community/eslint-utils@4.5.0(eslint@9.22.0(jiti@2.4.2))': + '@eslint-community/eslint-utils@4.5.0(eslint@9.22.0(jiti@2.5.1))': dependencies: - eslint: 9.22.0(jiti@2.4.2) + eslint: 9.22.0(jiti@2.5.1) eslint-visitor-keys: 3.4.3 optional: true @@ -17187,7 +17401,7 @@ snapshots: '@expo/vector-icons@13.0.0': {} - '@expo/webpack-config@0.17.4(encoding@0.1.13)(eslint@9.22.0(jiti@2.4.2))(expo@47.0.14(@babel/core@7.26.10)(encoding@0.1.13))(typescript@5.8.2)': + '@expo/webpack-config@0.17.4(encoding@0.1.13)(eslint@9.22.0(jiti@2.5.1))(expo@47.0.14(@babel/core@7.26.10)(encoding@0.1.13))(typescript@5.8.2)': dependencies: '@babel/core': 7.9.0 babel-loader: 8.1.0(@babel/core@7.9.0)(webpack@4.43.0) @@ -17209,7 +17423,7 @@ snapshots: optimize-css-assets-webpack-plugin: 5.0.8(webpack@4.43.0) pnp-webpack-plugin: 1.7.0(typescript@5.8.2) postcss-safe-parser: 4.0.2 - react-dev-utils: 11.0.4(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2)(webpack@4.43.0) + react-dev-utils: 11.0.4(eslint@9.22.0(jiti@2.5.1))(typescript@5.8.2)(webpack@4.43.0) schema-utils: 3.3.0 semver: 7.3.2 style-loader: 1.2.1(webpack@4.43.0) @@ -17610,6 +17824,10 @@ snapshots: wrap-ansi: 8.1.0 wrap-ansi-cjs: wrap-ansi@7.0.0 + '@isaacs/fs-minipass@4.0.1': + dependencies: + minipass: 7.1.2 + '@isaacs/string-locale-compare@1.1.0': {} '@istanbuljs/load-nyc-config@1.1.0': @@ -17816,6 +18034,11 @@ snapshots: '@jridgewell/sourcemap-codec': 1.5.0 '@jridgewell/trace-mapping': 0.3.25 + '@jridgewell/remapping@2.3.5': + dependencies: + '@jridgewell/gen-mapping': 0.3.8 + '@jridgewell/trace-mapping': 0.3.25 + '@jridgewell/resolve-uri@3.1.2': {} '@jridgewell/set-array@1.2.1': {} @@ -19085,7 +19308,7 @@ snapshots: dependencies: react: 18.3.1 - '@remix-run/dev@2.16.0(@remix-run/react@2.16.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.2))(@remix-run/serve@2.16.0(typescript@5.8.2))(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(typescript@5.8.2)(vite@6.2.1(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(yaml@2.7.0))(yaml@2.7.0)': + '@remix-run/dev@2.16.0(@remix-run/react@2.16.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.2))(@remix-run/serve@2.16.0(typescript@5.8.2))(@types/node@22.13.10)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.39.0)(typescript@5.8.2)(vite@6.2.1(@types/node@22.13.10)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.39.0)(yaml@2.7.0))(yaml@2.7.0)': dependencies: '@babel/core': 7.26.10 '@babel/generator': 7.24.7 @@ -19102,7 +19325,7 @@ snapshots: '@remix-run/router': 1.23.0 '@remix-run/server-runtime': 2.16.0(typescript@5.8.2) '@types/mdx': 2.0.13 - '@vanilla-extract/integration': 6.2.1(@types/node@22.13.10)(lightningcss@1.29.2)(terser@5.39.0) + '@vanilla-extract/integration': 6.2.1(@types/node@22.13.10)(lightningcss@1.30.1)(terser@5.39.0) arg: 5.0.2 cacache: 17.1.4 chalk: 4.1.2 @@ -19142,12 +19365,12 @@ snapshots: tar-fs: 2.1.1 tsconfig-paths: 4.2.0 valibot: 0.41.0(typescript@5.8.2) - vite-node: 3.0.0-beta.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(yaml@2.7.0) + vite-node: 3.0.0-beta.2(@types/node@22.13.10)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.39.0)(yaml@2.7.0) ws: 7.5.10 optionalDependencies: '@remix-run/serve': 2.16.0(typescript@5.8.2) typescript: 5.8.2 - vite: 6.2.1(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(yaml@2.7.0) + vite: 6.2.1(@types/node@22.13.10)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.39.0)(yaml@2.7.0) transitivePeerDependencies: - '@types/node' - bluebird @@ -19729,6 +19952,78 @@ snapshots: '@swc/counter': 0.1.3 tslib: 2.8.1 + '@tailwindcss/node@4.1.12': + dependencies: + '@jridgewell/remapping': 2.3.5 + enhanced-resolve: 5.18.3 + jiti: 2.5.1 + lightningcss: 1.30.1 + magic-string: 0.30.17 + source-map-js: 1.2.1 + tailwindcss: 4.1.12 + + '@tailwindcss/oxide-android-arm64@4.1.12': + optional: true + + '@tailwindcss/oxide-darwin-arm64@4.1.12': + optional: true + + '@tailwindcss/oxide-darwin-x64@4.1.12': + optional: true + + '@tailwindcss/oxide-freebsd-x64@4.1.12': + optional: true + + '@tailwindcss/oxide-linux-arm-gnueabihf@4.1.12': + optional: true + + '@tailwindcss/oxide-linux-arm64-gnu@4.1.12': + optional: true + + '@tailwindcss/oxide-linux-arm64-musl@4.1.12': + optional: true + + '@tailwindcss/oxide-linux-x64-gnu@4.1.12': + optional: true + + '@tailwindcss/oxide-linux-x64-musl@4.1.12': + optional: true + + '@tailwindcss/oxide-wasm32-wasi@4.1.12': + optional: true + + '@tailwindcss/oxide-win32-arm64-msvc@4.1.12': + optional: true + + '@tailwindcss/oxide-win32-x64-msvc@4.1.12': + optional: true + + '@tailwindcss/oxide@4.1.12': + dependencies: + detect-libc: 2.0.4 + tar: 7.4.3 + optionalDependencies: + '@tailwindcss/oxide-android-arm64': 4.1.12 + '@tailwindcss/oxide-darwin-arm64': 4.1.12 + '@tailwindcss/oxide-darwin-x64': 4.1.12 + '@tailwindcss/oxide-freebsd-x64': 4.1.12 + '@tailwindcss/oxide-linux-arm-gnueabihf': 4.1.12 + '@tailwindcss/oxide-linux-arm64-gnu': 4.1.12 + '@tailwindcss/oxide-linux-arm64-musl': 4.1.12 + '@tailwindcss/oxide-linux-x64-gnu': 4.1.12 + '@tailwindcss/oxide-linux-x64-musl': 4.1.12 + '@tailwindcss/oxide-wasm32-wasi': 4.1.12 + '@tailwindcss/oxide-win32-arm64-msvc': 4.1.12 + '@tailwindcss/oxide-win32-x64-msvc': 4.1.12 + + '@tailwindcss/postcss@4.1.12': + dependencies: + '@alloc/quick-lru': 5.2.0 + '@tailwindcss/node': 4.1.12 + '@tailwindcss/oxide': 4.1.12 + postcss: 8.5.3 + tailwindcss: 4.1.12 + '@tanstack/react-virtual@3.13.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@tanstack/virtual-core': 3.13.2 @@ -20240,15 +20535,15 @@ snapshots: dependencies: '@types/yargs-parser': 21.0.3 - '@typescript-eslint/eslint-plugin@8.26.1(@typescript-eslint/parser@8.26.1(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2))(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2)': + '@typescript-eslint/eslint-plugin@8.26.1(@typescript-eslint/parser@8.26.1(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2)': dependencies: '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.26.1(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2) + '@typescript-eslint/parser': 8.26.1(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2) '@typescript-eslint/scope-manager': 8.26.1 - '@typescript-eslint/type-utils': 8.26.1(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2) - '@typescript-eslint/utils': 8.26.1(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2) + '@typescript-eslint/type-utils': 8.26.1(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2) + '@typescript-eslint/utils': 8.26.1(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2) '@typescript-eslint/visitor-keys': 8.26.1 - eslint: 9.11.1(jiti@2.4.2) + eslint: 9.11.1(jiti@2.5.1) graphemer: 1.4.0 ignore: 5.3.2 natural-compare: 1.4.0 @@ -20257,15 +20552,15 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/eslint-plugin@8.26.1(@typescript-eslint/parser@8.9.0(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2))(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2)': + '@typescript-eslint/eslint-plugin@8.26.1(@typescript-eslint/parser@8.9.0(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2)': dependencies: '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.9.0(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2) + '@typescript-eslint/parser': 8.9.0(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2) '@typescript-eslint/scope-manager': 8.26.1 - '@typescript-eslint/type-utils': 8.26.1(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2) - '@typescript-eslint/utils': 8.26.1(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2) + '@typescript-eslint/type-utils': 8.26.1(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2) + '@typescript-eslint/utils': 8.26.1(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2) '@typescript-eslint/visitor-keys': 8.26.1 - eslint: 9.11.1(jiti@2.4.2) + eslint: 9.11.1(jiti@2.5.1) graphemer: 1.4.0 ignore: 5.3.2 natural-compare: 1.4.0 @@ -20275,15 +20570,15 @@ snapshots: - supports-color optional: true - '@typescript-eslint/eslint-plugin@8.9.0(@typescript-eslint/parser@8.9.0(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2))(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2)': + '@typescript-eslint/eslint-plugin@8.9.0(@typescript-eslint/parser@8.9.0(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2)': dependencies: '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.9.0(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2) + '@typescript-eslint/parser': 8.9.0(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2) '@typescript-eslint/scope-manager': 8.9.0 - '@typescript-eslint/type-utils': 8.9.0(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2) - '@typescript-eslint/utils': 8.9.0(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2) + '@typescript-eslint/type-utils': 8.9.0(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2) + '@typescript-eslint/utils': 8.9.0(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2) '@typescript-eslint/visitor-keys': 8.9.0 - eslint: 9.11.1(jiti@2.4.2) + eslint: 9.11.1(jiti@2.5.1) graphemer: 1.4.0 ignore: 5.3.2 natural-compare: 1.4.0 @@ -20293,26 +20588,26 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.26.1(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2)': + '@typescript-eslint/parser@8.26.1(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2)': dependencies: '@typescript-eslint/scope-manager': 8.26.1 '@typescript-eslint/types': 8.26.1 '@typescript-eslint/typescript-estree': 8.26.1(typescript@5.8.2) '@typescript-eslint/visitor-keys': 8.26.1 debug: 4.4.0(supports-color@6.1.0) - eslint: 9.11.1(jiti@2.4.2) + eslint: 9.11.1(jiti@2.5.1) typescript: 5.8.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.9.0(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2)': + '@typescript-eslint/parser@8.9.0(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2)': dependencies: '@typescript-eslint/scope-manager': 8.9.0 '@typescript-eslint/types': 8.9.0 '@typescript-eslint/typescript-estree': 8.9.0(typescript@5.8.2) '@typescript-eslint/visitor-keys': 8.9.0 debug: 4.4.0(supports-color@6.1.0) - eslint: 9.11.1(jiti@2.4.2) + eslint: 9.11.1(jiti@2.5.1) optionalDependencies: typescript: 5.8.2 transitivePeerDependencies: @@ -20328,21 +20623,21 @@ snapshots: '@typescript-eslint/types': 8.9.0 '@typescript-eslint/visitor-keys': 8.9.0 - '@typescript-eslint/type-utils@8.26.1(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2)': + '@typescript-eslint/type-utils@8.26.1(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2)': dependencies: '@typescript-eslint/typescript-estree': 8.26.1(typescript@5.8.2) - '@typescript-eslint/utils': 8.26.1(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2) + '@typescript-eslint/utils': 8.26.1(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2) debug: 4.4.0(supports-color@6.1.0) - eslint: 9.11.1(jiti@2.4.2) + eslint: 9.11.1(jiti@2.5.1) ts-api-utils: 2.0.1(typescript@5.8.2) typescript: 5.8.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/type-utils@8.9.0(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2)': + '@typescript-eslint/type-utils@8.9.0(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2)': dependencies: '@typescript-eslint/typescript-estree': 8.9.0(typescript@5.8.2) - '@typescript-eslint/utils': 8.9.0(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2) + '@typescript-eslint/utils': 8.9.0(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2) debug: 4.4.0(supports-color@6.1.0) ts-api-utils: 1.3.0(typescript@5.8.2) optionalDependencies: @@ -20384,24 +20679,24 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.26.1(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2)': + '@typescript-eslint/utils@8.26.1(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2)': dependencies: - '@eslint-community/eslint-utils': 4.5.0(eslint@9.11.1(jiti@2.4.2)) + '@eslint-community/eslint-utils': 4.5.0(eslint@9.11.1(jiti@2.5.1)) '@typescript-eslint/scope-manager': 8.26.1 '@typescript-eslint/types': 8.26.1 '@typescript-eslint/typescript-estree': 8.26.1(typescript@5.8.2) - eslint: 9.11.1(jiti@2.4.2) + eslint: 9.11.1(jiti@2.5.1) typescript: 5.8.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.9.0(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2)': + '@typescript-eslint/utils@8.9.0(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2)': dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.11.1(jiti@2.4.2)) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.11.1(jiti@2.5.1)) '@typescript-eslint/scope-manager': 8.9.0 '@typescript-eslint/types': 8.9.0 '@typescript-eslint/typescript-estree': 8.9.0(typescript@5.8.2) - eslint: 9.11.1(jiti@2.4.2) + eslint: 9.11.1(jiti@2.5.1) transitivePeerDependencies: - supports-color - typescript @@ -20464,7 +20759,7 @@ snapshots: media-query-parser: 2.0.2 outdent: 0.8.0 - '@vanilla-extract/integration@6.2.1(@types/node@22.13.10)(lightningcss@1.29.2)(terser@5.39.0)': + '@vanilla-extract/integration@6.2.1(@types/node@22.13.10)(lightningcss@1.30.1)(terser@5.39.0)': dependencies: '@babel/core': 7.26.10 '@babel/plugin-syntax-typescript': 7.24.7(@babel/core@7.26.10) @@ -20477,8 +20772,8 @@ snapshots: lodash: 4.17.21 mlly: 1.7.1 outdent: 0.8.0 - vite: 4.5.9(@types/node@22.13.10)(lightningcss@1.29.2)(terser@5.39.0) - vite-node: 0.28.5(@types/node@22.13.10)(lightningcss@1.29.2)(terser@5.39.0) + vite: 4.5.9(@types/node@22.13.10)(lightningcss@1.30.1)(terser@5.39.0) + vite-node: 0.28.5(@types/node@22.13.10)(lightningcss@1.30.1)(terser@5.39.0) transitivePeerDependencies: - '@types/node' - less @@ -20491,43 +20786,43 @@ snapshots: '@vanilla-extract/private@1.0.3': {} - '@vercel/analytics@1.5.0(@remix-run/react@2.16.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.2))(next@14.2.24(@playwright/test@1.55.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)': + '@vercel/analytics@1.5.0(@remix-run/react@2.16.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.2))(next@14.2.24(@babel/core@7.26.10)(@playwright/test@1.55.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)': optionalDependencies: '@remix-run/react': 2.16.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.2) - next: 14.2.24(@playwright/test@1.55.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + next: 14.2.24(@babel/core@7.26.10)(@playwright/test@1.55.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 - '@vercel/speed-insights@1.2.0(next@14.2.24(@playwright/test@1.55.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)': + '@vercel/speed-insights@1.2.0(next@14.2.24(@babel/core@7.26.10)(@playwright/test@1.55.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)': optionalDependencies: - next: 14.2.24(@playwright/test@1.55.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + next: 14.2.24(@babel/core@7.26.10)(@playwright/test@1.55.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 - '@vitejs/plugin-react@4.3.4(vite@6.2.1(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(yaml@2.7.0))': + '@vitejs/plugin-react@4.3.4(vite@6.2.1(@types/node@22.13.10)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.39.0)(yaml@2.7.0))': dependencies: '@babel/core': 7.26.10 '@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.26.10) '@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.26.10) '@types/babel__core': 7.20.5 react-refresh: 0.14.2 - vite: 6.2.1(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(yaml@2.7.0) + vite: 6.2.1(@types/node@22.13.10)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.39.0)(yaml@2.7.0) transitivePeerDependencies: - supports-color - '@vitest/eslint-plugin@1.1.7(@typescript-eslint/utils@8.9.0(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2))(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2)(vitest@3.0.8(@edge-runtime/vm@5.0.0)(@types/debug@4.1.12)(@types/node@20.17.24)(jiti@2.4.2)(jsdom@26.0.0)(lightningcss@1.29.2)(terser@5.39.0)(yaml@2.7.0))': + '@vitest/eslint-plugin@1.1.7(@typescript-eslint/utils@8.9.0(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2)(vitest@3.0.8(@edge-runtime/vm@5.0.0)(@types/debug@4.1.12)(@types/node@20.17.24)(jiti@2.5.1)(jsdom@26.0.0)(lightningcss@1.30.1)(terser@5.39.0)(yaml@2.7.0))': dependencies: - '@typescript-eslint/utils': 8.9.0(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2) - eslint: 9.11.1(jiti@2.4.2) + '@typescript-eslint/utils': 8.9.0(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2) + eslint: 9.11.1(jiti@2.5.1) optionalDependencies: typescript: 5.8.2 - vitest: 3.0.8(@edge-runtime/vm@5.0.0)(@types/debug@4.1.12)(@types/node@20.17.24)(jiti@2.4.2)(jsdom@26.0.0)(lightningcss@1.29.2)(terser@5.39.0)(yaml@2.7.0) + vitest: 3.0.8(@edge-runtime/vm@5.0.0)(@types/debug@4.1.12)(@types/node@20.17.24)(jiti@2.5.1)(jsdom@26.0.0)(lightningcss@1.30.1)(terser@5.39.0)(yaml@2.7.0) - '@vitest/eslint-plugin@1.1.7(@typescript-eslint/utils@8.9.0(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2))(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2)(vitest@3.0.8(@edge-runtime/vm@5.0.0)(@types/debug@4.1.12)(@types/node@22.13.10)(jiti@2.4.2)(jsdom@26.0.0)(lightningcss@1.29.2)(terser@5.39.0)(yaml@2.7.0))': + '@vitest/eslint-plugin@1.1.7(@typescript-eslint/utils@8.9.0(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2)(vitest@3.0.8(@edge-runtime/vm@5.0.0)(@types/debug@4.1.12)(@types/node@22.13.10)(jiti@2.5.1)(jsdom@26.0.0)(lightningcss@1.30.1)(terser@5.39.0)(yaml@2.7.0))': dependencies: - '@typescript-eslint/utils': 8.9.0(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2) - eslint: 9.11.1(jiti@2.4.2) + '@typescript-eslint/utils': 8.9.0(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2) + eslint: 9.11.1(jiti@2.5.1) optionalDependencies: typescript: 5.8.2 - vitest: 3.0.8(@edge-runtime/vm@5.0.0)(@types/debug@4.1.12)(@types/node@22.13.10)(jiti@2.4.2)(jsdom@26.0.0)(lightningcss@1.29.2)(terser@5.39.0)(yaml@2.7.0) + vitest: 3.0.8(@edge-runtime/vm@5.0.0)(@types/debug@4.1.12)(@types/node@22.13.10)(jiti@2.5.1)(jsdom@26.0.0)(lightningcss@1.30.1)(terser@5.39.0)(yaml@2.7.0) '@vitest/expect@2.0.5': dependencies: @@ -20543,21 +20838,21 @@ snapshots: chai: 5.2.0 tinyrainbow: 2.0.0 - '@vitest/mocker@3.0.8(vite@6.2.1(@types/node@20.17.24)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(yaml@2.7.0))': + '@vitest/mocker@3.0.8(vite@6.2.1(@types/node@20.17.24)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.39.0)(yaml@2.7.0))': dependencies: '@vitest/spy': 3.0.8 estree-walker: 3.0.3 magic-string: 0.30.17 optionalDependencies: - vite: 6.2.1(@types/node@20.17.24)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(yaml@2.7.0) + vite: 6.2.1(@types/node@20.17.24)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.39.0)(yaml@2.7.0) - '@vitest/mocker@3.0.8(vite@6.2.1(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(yaml@2.7.0))': + '@vitest/mocker@3.0.8(vite@6.2.1(@types/node@22.13.10)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.39.0)(yaml@2.7.0))': dependencies: '@vitest/spy': 3.0.8 estree-walker: 3.0.3 magic-string: 0.30.17 optionalDependencies: - vite: 6.2.1(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(yaml@2.7.0) + vite: 6.2.1(@types/node@22.13.10)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.39.0)(yaml@2.7.0) optional: true '@vitest/pretty-format@2.0.5': @@ -21891,6 +22186,8 @@ snapshots: chownr@2.0.0: {} + chownr@3.0.0: {} + chrome-trace-event@1.0.4: {} ci-info@2.0.0: {} @@ -22996,8 +23293,7 @@ snapshots: detect-libc@2.0.3: {} - detect-libc@2.0.4: - optional: true + detect-libc@2.0.4: {} detect-newline@3.1.0: {} @@ -23217,6 +23513,11 @@ snapshots: graceful-fs: 4.2.11 tapable: 2.2.1 + enhanced-resolve@5.18.3: + dependencies: + graceful-fs: 4.2.11 + tapable: 2.2.1 + entities@2.2.0: {} entities@4.5.0: {} @@ -23559,25 +23860,25 @@ snapshots: optionalDependencies: source-map: 0.6.1 - eslint-config-molindo@8.0.0(@typescript-eslint/eslint-plugin@8.26.1(@typescript-eslint/parser@8.26.1(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2))(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2))(@typescript-eslint/parser@8.26.1(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2))(eslint@9.11.1(jiti@2.4.2))(jest@29.7.0(@types/node@20.17.24))(tailwindcss@4.0.13)(typescript@5.8.2)(vitest@3.0.8(@edge-runtime/vm@5.0.0)(@types/debug@4.1.12)(@types/node@20.17.24)(jiti@2.4.2)(jsdom@26.0.0)(lightningcss@1.29.2)(terser@5.39.0)(yaml@2.7.0)): + eslint-config-molindo@8.0.0(@typescript-eslint/eslint-plugin@8.26.1(@typescript-eslint/parser@8.26.1(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(@typescript-eslint/parser@8.26.1(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint@9.11.1(jiti@2.5.1))(jest@29.7.0(@types/node@20.17.24))(tailwindcss@4.1.12)(typescript@5.8.2)(vitest@3.0.8(@edge-runtime/vm@5.0.0)(@types/debug@4.1.12)(@types/node@20.17.24)(jiti@2.5.1)(jsdom@26.0.0)(lightningcss@1.30.1)(terser@5.39.0)(yaml@2.7.0)): dependencies: '@eslint/js': 9.12.0 - '@typescript-eslint/utils': 8.9.0(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2) - '@vitest/eslint-plugin': 1.1.7(@typescript-eslint/utils@8.9.0(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2))(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2)(vitest@3.0.8(@edge-runtime/vm@5.0.0)(@types/debug@4.1.12)(@types/node@20.17.24)(jiti@2.4.2)(jsdom@26.0.0)(lightningcss@1.29.2)(terser@5.39.0)(yaml@2.7.0)) + '@typescript-eslint/utils': 8.9.0(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2) + '@vitest/eslint-plugin': 1.1.7(@typescript-eslint/utils@8.9.0(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2)(vitest@3.0.8(@edge-runtime/vm@5.0.0)(@types/debug@4.1.12)(@types/node@20.17.24)(jiti@2.5.1)(jsdom@26.0.0)(lightningcss@1.30.1)(terser@5.39.0)(yaml@2.7.0)) confusing-browser-globals: 1.0.11 - eslint: 9.11.1(jiti@2.4.2) - eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@8.26.1(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2))(eslint-plugin-import@2.31.0)(eslint@9.11.1(jiti@2.4.2)) - eslint-plugin-css-modules: 2.11.0(eslint@9.11.1(jiti@2.4.2)) - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.26.1(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2))(eslint-import-resolver-typescript@3.6.3)(eslint@9.11.1(jiti@2.4.2)) - eslint-plugin-jest: 28.8.3(@typescript-eslint/eslint-plugin@8.26.1(@typescript-eslint/parser@8.26.1(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2))(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2))(eslint@9.11.1(jiti@2.4.2))(jest@29.7.0(@types/node@20.17.24))(typescript@5.8.2) - eslint-plugin-jsx-a11y: 6.10.0(eslint@9.11.1(jiti@2.4.2)) - eslint-plugin-react: 7.37.1(eslint@9.11.1(jiti@2.4.2)) - eslint-plugin-react-hooks: 5.0.0(eslint@9.11.1(jiti@2.4.2)) - eslint-plugin-sort-destructure-keys: 2.0.0(eslint@9.11.1(jiti@2.4.2)) - eslint-plugin-tailwindcss: 3.13.0(tailwindcss@4.0.13) - eslint-plugin-unicorn: 56.0.0(eslint@9.11.1(jiti@2.4.2)) - eslint-plugin-unused-imports: 4.1.4(@typescript-eslint/eslint-plugin@8.26.1(@typescript-eslint/parser@8.26.1(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2))(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2))(eslint@9.11.1(jiti@2.4.2)) - typescript-eslint: 8.9.0(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2) + eslint: 9.11.1(jiti@2.5.1) + eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@8.26.1(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint-plugin-import@2.31.0)(eslint@9.11.1(jiti@2.5.1)) + eslint-plugin-css-modules: 2.11.0(eslint@9.11.1(jiti@2.5.1)) + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.26.1(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint-import-resolver-typescript@3.6.3)(eslint@9.11.1(jiti@2.5.1)) + eslint-plugin-jest: 28.8.3(@typescript-eslint/eslint-plugin@8.26.1(@typescript-eslint/parser@8.26.1(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint@9.11.1(jiti@2.5.1))(jest@29.7.0(@types/node@20.17.24))(typescript@5.8.2) + eslint-plugin-jsx-a11y: 6.10.0(eslint@9.11.1(jiti@2.5.1)) + eslint-plugin-react: 7.37.1(eslint@9.11.1(jiti@2.5.1)) + eslint-plugin-react-hooks: 5.0.0(eslint@9.11.1(jiti@2.5.1)) + eslint-plugin-sort-destructure-keys: 2.0.0(eslint@9.11.1(jiti@2.5.1)) + eslint-plugin-tailwindcss: 3.13.0(tailwindcss@4.1.12) + eslint-plugin-unicorn: 56.0.0(eslint@9.11.1(jiti@2.5.1)) + eslint-plugin-unused-imports: 4.1.4(@typescript-eslint/eslint-plugin@8.26.1(@typescript-eslint/parser@8.26.1(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint@9.11.1(jiti@2.5.1)) + typescript-eslint: 8.9.0(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2) transitivePeerDependencies: - '@typescript-eslint/eslint-plugin' - '@typescript-eslint/parser' @@ -23590,25 +23891,25 @@ snapshots: - typescript - vitest - eslint-config-molindo@8.0.0(@typescript-eslint/eslint-plugin@8.26.1(@typescript-eslint/parser@8.26.1(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2))(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2))(@typescript-eslint/parser@8.26.1(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2))(eslint@9.11.1(jiti@2.4.2))(jest@29.7.0(@types/node@22.13.10))(tailwindcss@4.0.13)(typescript@5.8.2)(vitest@3.0.8(@edge-runtime/vm@5.0.0)(@types/debug@4.1.12)(@types/node@22.13.10)(jiti@2.4.2)(jsdom@26.0.0)(lightningcss@1.29.2)(terser@5.39.0)(yaml@2.7.0)): + eslint-config-molindo@8.0.0(@typescript-eslint/eslint-plugin@8.26.1(@typescript-eslint/parser@8.26.1(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(@typescript-eslint/parser@8.26.1(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint@9.11.1(jiti@2.5.1))(jest@29.7.0(@types/node@22.13.10))(tailwindcss@4.1.12)(typescript@5.8.2)(vitest@3.0.8(@edge-runtime/vm@5.0.0)(@types/debug@4.1.12)(@types/node@22.13.10)(jiti@2.5.1)(jsdom@26.0.0)(lightningcss@1.30.1)(terser@5.39.0)(yaml@2.7.0)): dependencies: '@eslint/js': 9.12.0 - '@typescript-eslint/utils': 8.9.0(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2) - '@vitest/eslint-plugin': 1.1.7(@typescript-eslint/utils@8.9.0(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2))(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2)(vitest@3.0.8(@edge-runtime/vm@5.0.0)(@types/debug@4.1.12)(@types/node@22.13.10)(jiti@2.4.2)(jsdom@26.0.0)(lightningcss@1.29.2)(terser@5.39.0)(yaml@2.7.0)) + '@typescript-eslint/utils': 8.9.0(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2) + '@vitest/eslint-plugin': 1.1.7(@typescript-eslint/utils@8.9.0(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2)(vitest@3.0.8(@edge-runtime/vm@5.0.0)(@types/debug@4.1.12)(@types/node@22.13.10)(jiti@2.5.1)(jsdom@26.0.0)(lightningcss@1.30.1)(terser@5.39.0)(yaml@2.7.0)) confusing-browser-globals: 1.0.11 - eslint: 9.11.1(jiti@2.4.2) - eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@8.26.1(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2))(eslint-plugin-import@2.31.0)(eslint@9.11.1(jiti@2.4.2)) - eslint-plugin-css-modules: 2.11.0(eslint@9.11.1(jiti@2.4.2)) - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.26.1(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2))(eslint-import-resolver-typescript@3.6.3)(eslint@9.11.1(jiti@2.4.2)) - eslint-plugin-jest: 28.8.3(@typescript-eslint/eslint-plugin@8.26.1(@typescript-eslint/parser@8.26.1(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2))(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2))(eslint@9.11.1(jiti@2.4.2))(jest@29.7.0(@types/node@22.13.10))(typescript@5.8.2) - eslint-plugin-jsx-a11y: 6.10.0(eslint@9.11.1(jiti@2.4.2)) - eslint-plugin-react: 7.37.1(eslint@9.11.1(jiti@2.4.2)) - eslint-plugin-react-hooks: 5.0.0(eslint@9.11.1(jiti@2.4.2)) - eslint-plugin-sort-destructure-keys: 2.0.0(eslint@9.11.1(jiti@2.4.2)) - eslint-plugin-tailwindcss: 3.13.0(tailwindcss@4.0.13) - eslint-plugin-unicorn: 56.0.0(eslint@9.11.1(jiti@2.4.2)) - eslint-plugin-unused-imports: 4.1.4(@typescript-eslint/eslint-plugin@8.26.1(@typescript-eslint/parser@8.26.1(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2))(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2))(eslint@9.11.1(jiti@2.4.2)) - typescript-eslint: 8.9.0(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2) + eslint: 9.11.1(jiti@2.5.1) + eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@8.26.1(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint-plugin-import@2.31.0)(eslint@9.11.1(jiti@2.5.1)) + eslint-plugin-css-modules: 2.11.0(eslint@9.11.1(jiti@2.5.1)) + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.26.1(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint-import-resolver-typescript@3.6.3)(eslint@9.11.1(jiti@2.5.1)) + eslint-plugin-jest: 28.8.3(@typescript-eslint/eslint-plugin@8.26.1(@typescript-eslint/parser@8.26.1(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint@9.11.1(jiti@2.5.1))(jest@29.7.0(@types/node@22.13.10))(typescript@5.8.2) + eslint-plugin-jsx-a11y: 6.10.0(eslint@9.11.1(jiti@2.5.1)) + eslint-plugin-react: 7.37.1(eslint@9.11.1(jiti@2.5.1)) + eslint-plugin-react-hooks: 5.0.0(eslint@9.11.1(jiti@2.5.1)) + eslint-plugin-sort-destructure-keys: 2.0.0(eslint@9.11.1(jiti@2.5.1)) + eslint-plugin-tailwindcss: 3.13.0(tailwindcss@4.1.12) + eslint-plugin-unicorn: 56.0.0(eslint@9.11.1(jiti@2.5.1)) + eslint-plugin-unused-imports: 4.1.4(@typescript-eslint/eslint-plugin@8.26.1(@typescript-eslint/parser@8.26.1(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint@9.11.1(jiti@2.5.1)) + typescript-eslint: 8.9.0(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2) transitivePeerDependencies: - '@typescript-eslint/eslint-plugin' - '@typescript-eslint/parser' @@ -23621,25 +23922,25 @@ snapshots: - typescript - vitest - eslint-config-molindo@8.0.0(@typescript-eslint/eslint-plugin@8.26.1(@typescript-eslint/parser@8.9.0(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2))(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2))(@typescript-eslint/parser@8.9.0(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2))(eslint@9.11.1(jiti@2.4.2))(jest@29.7.0(@types/node@20.17.24))(tailwindcss@3.4.17)(typescript@5.8.2)(vitest@3.0.8(@edge-runtime/vm@5.0.0)(@types/debug@4.1.12)(@types/node@20.17.24)(jiti@2.4.2)(jsdom@26.0.0)(lightningcss@1.29.2)(terser@5.39.0)(yaml@2.7.0)): + eslint-config-molindo@8.0.0(@typescript-eslint/eslint-plugin@8.26.1(@typescript-eslint/parser@8.9.0(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(@typescript-eslint/parser@8.9.0(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint@9.11.1(jiti@2.5.1))(jest@29.7.0(@types/node@20.17.24))(tailwindcss@3.4.17)(typescript@5.8.2)(vitest@3.0.8(@edge-runtime/vm@5.0.0)(@types/debug@4.1.12)(@types/node@20.17.24)(jiti@2.5.1)(jsdom@26.0.0)(lightningcss@1.30.1)(terser@5.39.0)(yaml@2.7.0)): dependencies: '@eslint/js': 9.12.0 - '@typescript-eslint/utils': 8.9.0(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2) - '@vitest/eslint-plugin': 1.1.7(@typescript-eslint/utils@8.9.0(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2))(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2)(vitest@3.0.8(@edge-runtime/vm@5.0.0)(@types/debug@4.1.12)(@types/node@20.17.24)(jiti@2.4.2)(jsdom@26.0.0)(lightningcss@1.29.2)(terser@5.39.0)(yaml@2.7.0)) + '@typescript-eslint/utils': 8.9.0(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2) + '@vitest/eslint-plugin': 1.1.7(@typescript-eslint/utils@8.9.0(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2)(vitest@3.0.8(@edge-runtime/vm@5.0.0)(@types/debug@4.1.12)(@types/node@20.17.24)(jiti@2.5.1)(jsdom@26.0.0)(lightningcss@1.30.1)(terser@5.39.0)(yaml@2.7.0)) confusing-browser-globals: 1.0.11 - eslint: 9.11.1(jiti@2.4.2) - eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@8.9.0(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2))(eslint-plugin-import@2.31.0)(eslint@9.11.1(jiti@2.4.2)) - eslint-plugin-css-modules: 2.11.0(eslint@9.11.1(jiti@2.4.2)) - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.9.0(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2))(eslint-import-resolver-typescript@3.6.3)(eslint@9.11.1(jiti@2.4.2)) - eslint-plugin-jest: 28.8.3(@typescript-eslint/eslint-plugin@8.26.1(@typescript-eslint/parser@8.9.0(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2))(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2))(eslint@9.11.1(jiti@2.4.2))(jest@29.7.0(@types/node@20.17.24))(typescript@5.8.2) - eslint-plugin-jsx-a11y: 6.10.0(eslint@9.11.1(jiti@2.4.2)) - eslint-plugin-react: 7.37.1(eslint@9.11.1(jiti@2.4.2)) - eslint-plugin-react-hooks: 5.0.0(eslint@9.11.1(jiti@2.4.2)) - eslint-plugin-sort-destructure-keys: 2.0.0(eslint@9.11.1(jiti@2.4.2)) + eslint: 9.11.1(jiti@2.5.1) + eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@8.9.0(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.9.0(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint@9.11.1(jiti@2.5.1)))(eslint@9.11.1(jiti@2.5.1)) + eslint-plugin-css-modules: 2.11.0(eslint@9.11.1(jiti@2.5.1)) + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.9.0(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.9.0(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.9.0(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint@9.11.1(jiti@2.5.1)))(eslint@9.11.1(jiti@2.5.1)))(eslint@9.11.1(jiti@2.5.1)) + eslint-plugin-jest: 28.8.3(@typescript-eslint/eslint-plugin@8.26.1(@typescript-eslint/parser@8.9.0(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint@9.11.1(jiti@2.5.1))(jest@29.7.0(@types/node@20.17.24))(typescript@5.8.2) + eslint-plugin-jsx-a11y: 6.10.0(eslint@9.11.1(jiti@2.5.1)) + eslint-plugin-react: 7.37.1(eslint@9.11.1(jiti@2.5.1)) + eslint-plugin-react-hooks: 5.0.0(eslint@9.11.1(jiti@2.5.1)) + eslint-plugin-sort-destructure-keys: 2.0.0(eslint@9.11.1(jiti@2.5.1)) eslint-plugin-tailwindcss: 3.13.0(tailwindcss@3.4.17) - eslint-plugin-unicorn: 56.0.0(eslint@9.11.1(jiti@2.4.2)) - eslint-plugin-unused-imports: 4.1.4(@typescript-eslint/eslint-plugin@8.26.1(@typescript-eslint/parser@8.9.0(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2))(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2))(eslint@9.11.1(jiti@2.4.2)) - typescript-eslint: 8.9.0(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2) + eslint-plugin-unicorn: 56.0.0(eslint@9.11.1(jiti@2.5.1)) + eslint-plugin-unused-imports: 4.1.4(@typescript-eslint/eslint-plugin@8.26.1(@typescript-eslint/parser@8.9.0(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint@9.11.1(jiti@2.5.1)) + typescript-eslint: 8.9.0(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2) transitivePeerDependencies: - '@typescript-eslint/eslint-plugin' - '@typescript-eslint/parser' @@ -23652,19 +23953,19 @@ snapshots: - typescript - vitest - eslint-config-next@15.5.0(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2): + eslint-config-next@15.5.0(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2): dependencies: '@next/eslint-plugin-next': 15.5.0 '@rushstack/eslint-patch': 1.10.5 - '@typescript-eslint/eslint-plugin': 8.26.1(@typescript-eslint/parser@8.26.1(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2))(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2) - '@typescript-eslint/parser': 8.26.1(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2) - eslint: 9.11.1(jiti@2.4.2) + '@typescript-eslint/eslint-plugin': 8.26.1(@typescript-eslint/parser@8.26.1(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2) + '@typescript-eslint/parser': 8.26.1(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2) + eslint: 9.11.1(jiti@2.5.1) eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@8.26.1(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@9.11.1(jiti@2.4.2)) - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.26.1(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2))(eslint-import-resolver-typescript@3.6.3)(eslint@9.11.1(jiti@2.4.2)) - eslint-plugin-jsx-a11y: 6.10.0(eslint@9.11.1(jiti@2.4.2)) - eslint-plugin-react: 7.37.1(eslint@9.11.1(jiti@2.4.2)) - eslint-plugin-react-hooks: 5.0.0(eslint@9.11.1(jiti@2.4.2)) + eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@8.26.1(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@9.11.1(jiti@2.5.1)) + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.26.1(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint-import-resolver-typescript@3.6.3)(eslint@9.11.1(jiti@2.5.1)) + eslint-plugin-jsx-a11y: 6.10.0(eslint@9.11.1(jiti@2.5.1)) + eslint-plugin-react: 7.37.1(eslint@9.11.1(jiti@2.5.1)) + eslint-plugin-react-hooks: 5.0.0(eslint@9.11.1(jiti@2.5.1)) optionalDependencies: typescript: 5.8.2 transitivePeerDependencies: @@ -23680,103 +23981,103 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.26.1(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@9.11.1(jiti@2.4.2)): + eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.26.1(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@9.11.1(jiti@2.5.1)): dependencies: '@nolyfill/is-core-module': 1.0.39 debug: 4.3.7 enhanced-resolve: 5.17.1 - eslint: 9.11.1(jiti@2.4.2) - eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.26.1(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.26.1(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@9.11.1(jiti@2.4.2)))(eslint@9.11.1(jiti@2.4.2)) + eslint: 9.11.1(jiti@2.5.1) + eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.26.1(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.26.1(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@9.11.1(jiti@2.5.1)))(eslint@9.11.1(jiti@2.5.1)) fast-glob: 3.3.3 get-tsconfig: 4.7.5 is-bun-module: 1.2.1 is-glob: 4.0.3 optionalDependencies: - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.26.1(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2))(eslint-import-resolver-typescript@3.6.3)(eslint@9.11.1(jiti@2.4.2)) + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.26.1(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint-import-resolver-typescript@3.6.3)(eslint@9.11.1(jiti@2.5.1)) transitivePeerDependencies: - '@typescript-eslint/parser' - eslint-import-resolver-node - eslint-import-resolver-webpack - supports-color - eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.26.1(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2))(eslint-plugin-import@2.31.0)(eslint@9.11.1(jiti@2.4.2)): + eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.26.1(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint-plugin-import@2.31.0)(eslint@9.11.1(jiti@2.5.1)): dependencies: '@nolyfill/is-core-module': 1.0.39 debug: 4.3.7 enhanced-resolve: 5.17.1 - eslint: 9.11.1(jiti@2.4.2) - eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.26.1(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.26.1(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2))(eslint-plugin-import@2.31.0)(eslint@9.11.1(jiti@2.4.2)))(eslint@9.11.1(jiti@2.4.2)) + eslint: 9.11.1(jiti@2.5.1) + eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.26.1(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.26.1(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint-plugin-import@2.31.0)(eslint@9.11.1(jiti@2.5.1)))(eslint@9.11.1(jiti@2.5.1)) fast-glob: 3.3.3 get-tsconfig: 4.7.5 is-bun-module: 1.2.1 is-glob: 4.0.3 optionalDependencies: - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.26.1(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2))(eslint-import-resolver-typescript@3.6.3)(eslint@9.11.1(jiti@2.4.2)) + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.26.1(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint-import-resolver-typescript@3.6.3)(eslint@9.11.1(jiti@2.5.1)) transitivePeerDependencies: - '@typescript-eslint/parser' - eslint-import-resolver-node - eslint-import-resolver-webpack - supports-color - eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.9.0(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2))(eslint-plugin-import@2.31.0)(eslint@9.11.1(jiti@2.4.2)): + eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.9.0(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.9.0(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint@9.11.1(jiti@2.5.1)))(eslint@9.11.1(jiti@2.5.1)): dependencies: '@nolyfill/is-core-module': 1.0.39 debug: 4.3.7 enhanced-resolve: 5.17.1 - eslint: 9.11.1(jiti@2.4.2) - eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.9.0(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.9.0(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2))(eslint-plugin-import@2.31.0)(eslint@9.11.1(jiti@2.4.2)))(eslint@9.11.1(jiti@2.4.2)) + eslint: 9.11.1(jiti@2.5.1) + eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.9.0(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.9.0(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.9.0(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint@9.11.1(jiti@2.5.1)))(eslint@9.11.1(jiti@2.5.1)))(eslint@9.11.1(jiti@2.5.1)) fast-glob: 3.3.3 get-tsconfig: 4.7.5 is-bun-module: 1.2.1 is-glob: 4.0.3 optionalDependencies: - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.9.0(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2))(eslint-import-resolver-typescript@3.6.3)(eslint@9.11.1(jiti@2.4.2)) + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.9.0(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.9.0(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.9.0(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint@9.11.1(jiti@2.5.1)))(eslint@9.11.1(jiti@2.5.1)))(eslint@9.11.1(jiti@2.5.1)) transitivePeerDependencies: - '@typescript-eslint/parser' - eslint-import-resolver-node - eslint-import-resolver-webpack - supports-color - eslint-module-utils@2.12.0(@typescript-eslint/parser@8.26.1(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.26.1(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@9.11.1(jiti@2.4.2)))(eslint@9.11.1(jiti@2.4.2)): + eslint-module-utils@2.12.0(@typescript-eslint/parser@8.26.1(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.26.1(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@9.11.1(jiti@2.5.1)))(eslint@9.11.1(jiti@2.5.1)): dependencies: debug: 3.2.7(supports-color@6.1.0) optionalDependencies: - '@typescript-eslint/parser': 8.26.1(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2) - eslint: 9.11.1(jiti@2.4.2) + '@typescript-eslint/parser': 8.26.1(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2) + eslint: 9.11.1(jiti@2.5.1) eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@8.26.1(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@9.11.1(jiti@2.4.2)) + eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@8.26.1(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@9.11.1(jiti@2.5.1)) transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.0(@typescript-eslint/parser@8.26.1(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.26.1(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2))(eslint-plugin-import@2.31.0)(eslint@9.11.1(jiti@2.4.2)))(eslint@9.11.1(jiti@2.4.2)): + eslint-module-utils@2.12.0(@typescript-eslint/parser@8.26.1(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.26.1(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint-plugin-import@2.31.0)(eslint@9.11.1(jiti@2.5.1)))(eslint@9.11.1(jiti@2.5.1)): dependencies: debug: 3.2.7(supports-color@6.1.0) optionalDependencies: - '@typescript-eslint/parser': 8.26.1(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2) - eslint: 9.11.1(jiti@2.4.2) + '@typescript-eslint/parser': 8.26.1(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2) + eslint: 9.11.1(jiti@2.5.1) eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@8.26.1(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2))(eslint-plugin-import@2.31.0)(eslint@9.11.1(jiti@2.4.2)) + eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@8.26.1(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint-plugin-import@2.31.0)(eslint@9.11.1(jiti@2.5.1)) transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.0(@typescript-eslint/parser@8.9.0(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.9.0(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2))(eslint-plugin-import@2.31.0)(eslint@9.11.1(jiti@2.4.2)))(eslint@9.11.1(jiti@2.4.2)): + eslint-module-utils@2.12.0(@typescript-eslint/parser@8.9.0(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.9.0(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.9.0(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint@9.11.1(jiti@2.5.1)))(eslint@9.11.1(jiti@2.5.1)))(eslint@9.11.1(jiti@2.5.1)): dependencies: debug: 3.2.7(supports-color@6.1.0) optionalDependencies: - '@typescript-eslint/parser': 8.9.0(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2) - eslint: 9.11.1(jiti@2.4.2) + '@typescript-eslint/parser': 8.9.0(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2) + eslint: 9.11.1(jiti@2.5.1) eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@8.9.0(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2))(eslint-plugin-import@2.31.0)(eslint@9.11.1(jiti@2.4.2)) + eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@8.9.0(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.9.0(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint@9.11.1(jiti@2.5.1)))(eslint@9.11.1(jiti@2.5.1)) transitivePeerDependencies: - supports-color - eslint-plugin-css-modules@2.11.0(eslint@9.11.1(jiti@2.4.2)): + eslint-plugin-css-modules@2.11.0(eslint@9.11.1(jiti@2.5.1)): dependencies: - eslint: 9.11.1(jiti@2.4.2) + eslint: 9.11.1(jiti@2.5.1) gonzales-pe: 4.3.0 lodash: 4.17.21 - eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.26.1(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2))(eslint-import-resolver-typescript@3.6.3)(eslint@9.11.1(jiti@2.4.2)): + eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.26.1(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint-import-resolver-typescript@3.6.3)(eslint@9.11.1(jiti@2.5.1)): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.8 @@ -23785,9 +24086,9 @@ snapshots: array.prototype.flatmap: 1.3.2 debug: 3.2.7(supports-color@6.1.0) doctrine: 2.1.0 - eslint: 9.11.1(jiti@2.4.2) + eslint: 9.11.1(jiti@2.5.1) eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.26.1(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.26.1(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@9.11.1(jiti@2.4.2)))(eslint@9.11.1(jiti@2.4.2)) + eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.26.1(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.26.1(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@9.11.1(jiti@2.5.1)))(eslint@9.11.1(jiti@2.5.1)) hasown: 2.0.2 is-core-module: 2.15.1 is-glob: 4.0.3 @@ -23799,13 +24100,13 @@ snapshots: string.prototype.trimend: 1.0.8 tsconfig-paths: 3.15.0 optionalDependencies: - '@typescript-eslint/parser': 8.26.1(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2) + '@typescript-eslint/parser': 8.26.1(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack - supports-color - eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.9.0(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2))(eslint-import-resolver-typescript@3.6.3)(eslint@9.11.1(jiti@2.4.2)): + eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.9.0(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.9.0(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.9.0(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint@9.11.1(jiti@2.5.1)))(eslint@9.11.1(jiti@2.5.1)))(eslint@9.11.1(jiti@2.5.1)): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.8 @@ -23814,9 +24115,9 @@ snapshots: array.prototype.flatmap: 1.3.2 debug: 3.2.7(supports-color@6.1.0) doctrine: 2.1.0 - eslint: 9.11.1(jiti@2.4.2) + eslint: 9.11.1(jiti@2.5.1) eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.9.0(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.9.0(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2))(eslint-plugin-import@2.31.0)(eslint@9.11.1(jiti@2.4.2)))(eslint@9.11.1(jiti@2.4.2)) + eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.9.0(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.9.0(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.9.0(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint@9.11.1(jiti@2.5.1)))(eslint@9.11.1(jiti@2.5.1)))(eslint@9.11.1(jiti@2.5.1)) hasown: 2.0.2 is-core-module: 2.15.1 is-glob: 4.0.3 @@ -23828,46 +24129,46 @@ snapshots: string.prototype.trimend: 1.0.8 tsconfig-paths: 3.15.0 optionalDependencies: - '@typescript-eslint/parser': 8.9.0(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2) + '@typescript-eslint/parser': 8.9.0(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack - supports-color - eslint-plugin-jest@28.8.3(@typescript-eslint/eslint-plugin@8.26.1(@typescript-eslint/parser@8.26.1(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2))(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2))(eslint@9.11.1(jiti@2.4.2))(jest@29.7.0(@types/node@20.17.24))(typescript@5.8.2): + eslint-plugin-jest@28.8.3(@typescript-eslint/eslint-plugin@8.26.1(@typescript-eslint/parser@8.26.1(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint@9.11.1(jiti@2.5.1))(jest@29.7.0(@types/node@20.17.24))(typescript@5.8.2): dependencies: - '@typescript-eslint/utils': 8.9.0(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2) - eslint: 9.11.1(jiti@2.4.2) + '@typescript-eslint/utils': 8.9.0(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2) + eslint: 9.11.1(jiti@2.5.1) optionalDependencies: - '@typescript-eslint/eslint-plugin': 8.26.1(@typescript-eslint/parser@8.26.1(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2))(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2) + '@typescript-eslint/eslint-plugin': 8.26.1(@typescript-eslint/parser@8.26.1(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2) jest: 29.7.0(@types/node@20.17.24) transitivePeerDependencies: - supports-color - typescript - eslint-plugin-jest@28.8.3(@typescript-eslint/eslint-plugin@8.26.1(@typescript-eslint/parser@8.26.1(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2))(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2))(eslint@9.11.1(jiti@2.4.2))(jest@29.7.0(@types/node@22.13.10))(typescript@5.8.2): + eslint-plugin-jest@28.8.3(@typescript-eslint/eslint-plugin@8.26.1(@typescript-eslint/parser@8.26.1(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint@9.11.1(jiti@2.5.1))(jest@29.7.0(@types/node@22.13.10))(typescript@5.8.2): dependencies: - '@typescript-eslint/utils': 8.9.0(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2) - eslint: 9.11.1(jiti@2.4.2) + '@typescript-eslint/utils': 8.9.0(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2) + eslint: 9.11.1(jiti@2.5.1) optionalDependencies: - '@typescript-eslint/eslint-plugin': 8.26.1(@typescript-eslint/parser@8.26.1(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2))(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2) + '@typescript-eslint/eslint-plugin': 8.26.1(@typescript-eslint/parser@8.26.1(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2) jest: 29.7.0(@types/node@22.13.10) transitivePeerDependencies: - supports-color - typescript - eslint-plugin-jest@28.8.3(@typescript-eslint/eslint-plugin@8.26.1(@typescript-eslint/parser@8.9.0(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2))(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2))(eslint@9.11.1(jiti@2.4.2))(jest@29.7.0(@types/node@20.17.24))(typescript@5.8.2): + eslint-plugin-jest@28.8.3(@typescript-eslint/eslint-plugin@8.26.1(@typescript-eslint/parser@8.9.0(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint@9.11.1(jiti@2.5.1))(jest@29.7.0(@types/node@20.17.24))(typescript@5.8.2): dependencies: - '@typescript-eslint/utils': 8.9.0(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2) - eslint: 9.11.1(jiti@2.4.2) + '@typescript-eslint/utils': 8.9.0(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2) + eslint: 9.11.1(jiti@2.5.1) optionalDependencies: - '@typescript-eslint/eslint-plugin': 8.26.1(@typescript-eslint/parser@8.9.0(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2))(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2) + '@typescript-eslint/eslint-plugin': 8.26.1(@typescript-eslint/parser@8.9.0(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2) jest: 29.7.0(@types/node@20.17.24) transitivePeerDependencies: - supports-color - typescript - eslint-plugin-jsx-a11y@6.10.0(eslint@9.11.1(jiti@2.4.2)): + eslint-plugin-jsx-a11y@6.10.0(eslint@9.11.1(jiti@2.5.1)): dependencies: aria-query: 5.1.3 array-includes: 3.1.8 @@ -23878,7 +24179,7 @@ snapshots: damerau-levenshtein: 1.0.8 emoji-regex: 9.2.2 es-iterator-helpers: 1.0.19 - eslint: 9.11.1(jiti@2.4.2) + eslint: 9.11.1(jiti@2.5.1) hasown: 2.0.2 jsx-ast-utils: 3.3.5 language-tags: 1.0.9 @@ -23887,23 +24188,23 @@ snapshots: safe-regex-test: 1.0.3 string.prototype.includes: 2.0.1 - eslint-plugin-react-compiler@0.0.0-experimental-8e3b87c-20240822(eslint@9.11.1(jiti@2.4.2)): + eslint-plugin-react-compiler@0.0.0-experimental-8e3b87c-20240822(eslint@9.11.1(jiti@2.5.1)): dependencies: '@babel/core': 7.26.10 '@babel/parser': 7.21.9 '@babel/plugin-proposal-private-methods': 7.18.6(@babel/core@7.26.10) - eslint: 9.11.1(jiti@2.4.2) + eslint: 9.11.1(jiti@2.5.1) hermes-parser: 0.20.1 zod: 3.24.2 zod-validation-error: 3.4.0(zod@3.24.2) transitivePeerDependencies: - supports-color - eslint-plugin-react-hooks@5.0.0(eslint@9.11.1(jiti@2.4.2)): + eslint-plugin-react-hooks@5.0.0(eslint@9.11.1(jiti@2.5.1)): dependencies: - eslint: 9.11.1(jiti@2.4.2) + eslint: 9.11.1(jiti@2.5.1) - eslint-plugin-react@7.37.1(eslint@9.11.1(jiti@2.4.2)): + eslint-plugin-react@7.37.1(eslint@9.11.1(jiti@2.5.1)): dependencies: array-includes: 3.1.8 array.prototype.findlast: 1.2.5 @@ -23911,7 +24212,7 @@ snapshots: array.prototype.tosorted: 1.1.4 doctrine: 2.1.0 es-iterator-helpers: 1.0.19 - eslint: 9.11.1(jiti@2.4.2) + eslint: 9.11.1(jiti@2.5.1) estraverse: 5.3.0 hasown: 2.0.2 jsx-ast-utils: 3.3.5 @@ -23925,9 +24226,9 @@ snapshots: string.prototype.matchall: 4.0.11 string.prototype.repeat: 1.0.0 - eslint-plugin-sort-destructure-keys@2.0.0(eslint@9.11.1(jiti@2.4.2)): + eslint-plugin-sort-destructure-keys@2.0.0(eslint@9.11.1(jiti@2.5.1)): dependencies: - eslint: 9.11.1(jiti@2.4.2) + eslint: 9.11.1(jiti@2.5.1) natural-compare-lite: 1.4.0 eslint-plugin-tailwindcss@3.13.0(tailwindcss@3.4.17): @@ -23936,20 +24237,20 @@ snapshots: postcss: 8.5.3 tailwindcss: 3.4.17 - eslint-plugin-tailwindcss@3.13.0(tailwindcss@4.0.13): + eslint-plugin-tailwindcss@3.13.0(tailwindcss@4.1.12): dependencies: fast-glob: 3.3.3 postcss: 8.5.3 - tailwindcss: 4.0.13 + tailwindcss: 4.1.12 - eslint-plugin-unicorn@56.0.0(eslint@9.11.1(jiti@2.4.2)): + eslint-plugin-unicorn@56.0.0(eslint@9.11.1(jiti@2.5.1)): dependencies: '@babel/helper-validator-identifier': 7.25.7 - '@eslint-community/eslint-utils': 4.4.0(eslint@9.11.1(jiti@2.4.2)) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.11.1(jiti@2.5.1)) ci-info: 4.0.0 clean-regexp: 1.0.0 core-js-compat: 3.38.1 - eslint: 9.11.1(jiti@2.4.2) + eslint: 9.11.1(jiti@2.5.1) esquery: 1.6.0 globals: 15.15.0 indent-string: 4.0.0 @@ -23962,17 +24263,17 @@ snapshots: semver: 7.6.3 strip-indent: 3.0.0 - eslint-plugin-unused-imports@4.1.4(@typescript-eslint/eslint-plugin@8.26.1(@typescript-eslint/parser@8.26.1(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2))(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2))(eslint@9.11.1(jiti@2.4.2)): + eslint-plugin-unused-imports@4.1.4(@typescript-eslint/eslint-plugin@8.26.1(@typescript-eslint/parser@8.26.1(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint@9.11.1(jiti@2.5.1)): dependencies: - eslint: 9.11.1(jiti@2.4.2) + eslint: 9.11.1(jiti@2.5.1) optionalDependencies: - '@typescript-eslint/eslint-plugin': 8.26.1(@typescript-eslint/parser@8.26.1(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2))(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2) + '@typescript-eslint/eslint-plugin': 8.26.1(@typescript-eslint/parser@8.26.1(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2) - eslint-plugin-unused-imports@4.1.4(@typescript-eslint/eslint-plugin@8.26.1(@typescript-eslint/parser@8.9.0(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2))(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2))(eslint@9.11.1(jiti@2.4.2)): + eslint-plugin-unused-imports@4.1.4(@typescript-eslint/eslint-plugin@8.26.1(@typescript-eslint/parser@8.9.0(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint@9.11.1(jiti@2.5.1)): dependencies: - eslint: 9.11.1(jiti@2.4.2) + eslint: 9.11.1(jiti@2.5.1) optionalDependencies: - '@typescript-eslint/eslint-plugin': 8.26.1(@typescript-eslint/parser@8.9.0(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2))(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2) + '@typescript-eslint/eslint-plugin': 8.26.1(@typescript-eslint/parser@8.9.0(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2) eslint-scope@4.0.3: dependencies: @@ -23993,9 +24294,9 @@ snapshots: eslint-visitor-keys@4.2.0: {} - eslint@9.11.1(jiti@2.4.2): + eslint@9.11.1(jiti@2.5.1): dependencies: - '@eslint-community/eslint-utils': 4.5.0(eslint@9.11.1(jiti@2.4.2)) + '@eslint-community/eslint-utils': 4.5.0(eslint@9.11.1(jiti@2.5.1)) '@eslint-community/regexpp': 4.12.1 '@eslint/config-array': 0.18.0 '@eslint/core': 0.6.0 @@ -24033,13 +24334,13 @@ snapshots: strip-ansi: 6.0.1 text-table: 0.2.0 optionalDependencies: - jiti: 2.4.2 + jiti: 2.5.1 transitivePeerDependencies: - supports-color - eslint@9.22.0(jiti@2.4.2): + eslint@9.22.0(jiti@2.5.1): dependencies: - '@eslint-community/eslint-utils': 4.5.0(eslint@9.22.0(jiti@2.4.2)) + '@eslint-community/eslint-utils': 4.5.0(eslint@9.22.0(jiti@2.5.1)) '@eslint-community/regexpp': 4.12.1 '@eslint/config-array': 0.19.2 '@eslint/config-helpers': 0.1.0 @@ -24075,7 +24376,7 @@ snapshots: natural-compare: 1.4.0 optionator: 0.9.3 optionalDependencies: - jiti: 2.4.2 + jiti: 2.5.1 transitivePeerDependencies: - supports-color optional: true @@ -24712,7 +25013,7 @@ snapshots: cross-spawn: 7.0.6 signal-exit: 4.1.0 - fork-ts-checker-webpack-plugin@4.1.6(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2)(webpack@4.43.0): + fork-ts-checker-webpack-plugin@4.1.6(eslint@9.22.0(jiti@2.5.1))(typescript@5.8.2)(webpack@4.43.0): dependencies: '@babel/code-frame': 7.26.2 chalk: 2.4.2 @@ -24724,7 +25025,7 @@ snapshots: webpack: 4.43.0 worker-rpc: 0.1.1 optionalDependencies: - eslint: 9.22.0(jiti@2.4.2) + eslint: 9.22.0(jiti@2.5.1) transitivePeerDependencies: - supports-color @@ -26705,6 +27006,8 @@ snapshots: jiti@2.4.2: {} + jiti@2.5.1: {} + joi@17.13.3: dependencies: '@hapi/hoek': 9.3.0 @@ -26983,51 +27286,50 @@ snapshots: transitivePeerDependencies: - supports-color - lightningcss-darwin-arm64@1.29.2: + lightningcss-darwin-arm64@1.30.1: optional: true - lightningcss-darwin-x64@1.29.2: + lightningcss-darwin-x64@1.30.1: optional: true - lightningcss-freebsd-x64@1.29.2: + lightningcss-freebsd-x64@1.30.1: optional: true - lightningcss-linux-arm-gnueabihf@1.29.2: + lightningcss-linux-arm-gnueabihf@1.30.1: optional: true - lightningcss-linux-arm64-gnu@1.29.2: + lightningcss-linux-arm64-gnu@1.30.1: optional: true - lightningcss-linux-arm64-musl@1.29.2: + lightningcss-linux-arm64-musl@1.30.1: optional: true - lightningcss-linux-x64-gnu@1.29.2: + lightningcss-linux-x64-gnu@1.30.1: optional: true - lightningcss-linux-x64-musl@1.29.2: + lightningcss-linux-x64-musl@1.30.1: optional: true - lightningcss-win32-arm64-msvc@1.29.2: + lightningcss-win32-arm64-msvc@1.30.1: optional: true - lightningcss-win32-x64-msvc@1.29.2: + lightningcss-win32-x64-msvc@1.30.1: optional: true - lightningcss@1.29.2: + lightningcss@1.30.1: dependencies: detect-libc: 2.0.4 optionalDependencies: - lightningcss-darwin-arm64: 1.29.2 - lightningcss-darwin-x64: 1.29.2 - lightningcss-freebsd-x64: 1.29.2 - lightningcss-linux-arm-gnueabihf: 1.29.2 - lightningcss-linux-arm64-gnu: 1.29.2 - lightningcss-linux-arm64-musl: 1.29.2 - lightningcss-linux-x64-gnu: 1.29.2 - lightningcss-linux-x64-musl: 1.29.2 - lightningcss-win32-arm64-msvc: 1.29.2 - lightningcss-win32-x64-msvc: 1.29.2 - optional: true + lightningcss-darwin-arm64: 1.30.1 + lightningcss-darwin-x64: 1.30.1 + lightningcss-freebsd-x64: 1.30.1 + lightningcss-linux-arm-gnueabihf: 1.30.1 + lightningcss-linux-arm64-gnu: 1.30.1 + lightningcss-linux-arm64-musl: 1.30.1 + lightningcss-linux-x64-gnu: 1.30.1 + lightningcss-linux-x64-musl: 1.30.1 + lightningcss-win32-arm64-msvc: 1.30.1 + lightningcss-win32-x64-msvc: 1.30.1 lilconfig@3.1.2: {} @@ -28630,6 +28932,10 @@ snapshots: minipass: 3.3.6 yallist: 4.0.0 + minizlib@3.0.2: + dependencies: + minipass: 7.1.2 + mississippi@3.0.0: dependencies: concat-stream: 1.6.2 @@ -28658,6 +28964,8 @@ snapshots: mkdirp@1.0.4: {} + mkdirp@3.0.1: {} + mlly@1.7.1: dependencies: acorn: 8.14.1 @@ -28792,13 +29100,13 @@ snapshots: react-dom: 19.0.0(react@19.0.0) uuid: 8.3.2 - next-sitemap@4.2.3(next@14.2.24(@playwright/test@1.55.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)): + next-sitemap@4.2.3(next@14.2.24(@babel/core@7.26.10)(@playwright/test@1.55.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)): dependencies: '@corex/deepmerge': 4.0.43 '@next/env': 13.5.6 fast-glob: 3.3.3 minimist: 1.2.8 - next: 14.2.24(@playwright/test@1.55.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + next: 14.2.24(@babel/core@7.26.10)(@playwright/test@1.55.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) next-themes@0.4.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: @@ -28844,7 +29152,7 @@ snapshots: - '@babel/core' - babel-plugin-macros - next@14.2.24(@playwright/test@1.55.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + next@14.2.24(@babel/core@7.26.10)(@playwright/test@1.55.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: '@next/env': 14.2.24 '@swc/helpers': 0.5.5 @@ -28854,7 +29162,7 @@ snapshots: postcss: 8.4.31 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - styled-jsx: 5.1.1(react@18.3.1) + styled-jsx: 5.1.1(@babel/core@7.26.10)(react@18.3.1) optionalDependencies: '@next/swc-darwin-arm64': 14.2.24 '@next/swc-darwin-x64': 14.2.24 @@ -28894,21 +29202,21 @@ snapshots: - '@babel/core' - babel-plugin-macros - nextra-theme-docs@3.3.1(patch_hash=37qjvtnqoj5dxgzxofrrj6xcdq)(next@14.2.24(@playwright/test@1.55.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(nextra@3.3.1(@types/react@19.0.10)(acorn@8.14.1)(next@14.2.24(@playwright/test@1.55.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + nextra-theme-docs@3.3.1(patch_hash=37qjvtnqoj5dxgzxofrrj6xcdq)(next@14.2.24(@babel/core@7.26.10)(@playwright/test@1.55.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(nextra@3.3.1(@types/react@19.0.10)(acorn@8.14.1)(next@14.2.24(@babel/core@7.26.10)(@playwright/test@1.55.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: '@headlessui/react': 2.2.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) clsx: 2.1.1 escape-string-regexp: 5.0.0 flexsearch: 0.7.43 - next: 14.2.24(@playwright/test@1.55.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + next: 14.2.24(@babel/core@7.26.10)(@playwright/test@1.55.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) next-themes: 0.4.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - nextra: 3.3.1(@types/react@19.0.10)(acorn@8.14.1)(next@14.2.24(@playwright/test@1.55.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.2) + nextra: 3.3.1(@types/react@19.0.10)(acorn@8.14.1)(next@14.2.24(@babel/core@7.26.10)(@playwright/test@1.55.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.2) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) scroll-into-view-if-needed: 3.1.0 zod: 3.24.2 - nextra@3.3.1(@types/react@19.0.10)(acorn@8.14.1)(next@14.2.24(@playwright/test@1.55.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.2): + nextra@3.3.1(@types/react@19.0.10)(acorn@8.14.1)(next@14.2.24(@babel/core@7.26.10)(@playwright/test@1.55.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.2): dependencies: '@formatjs/intl-localematcher': 0.5.10 '@headlessui/react': 2.2.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -28931,7 +29239,7 @@ snapshots: mdast-util-gfm: 3.1.0 mdast-util-to-hast: 13.2.0 negotiator: 1.0.0 - next: 14.2.24(@playwright/test@1.55.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + next: 14.2.24(@babel/core@7.26.10)(@playwright/test@1.55.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) p-limit: 6.2.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -30193,6 +30501,17 @@ snapshots: prelude-ls@1.2.1: {} + prettier-plugin-organize-imports@4.2.0(prettier@3.5.3)(typescript@5.8.2): + dependencies: + prettier: 3.5.3 + typescript: 5.8.2 + + prettier-plugin-tailwindcss@0.6.14(prettier-plugin-organize-imports@4.2.0(prettier@3.5.3)(typescript@5.8.2))(prettier@3.5.3): + dependencies: + prettier: 3.5.3 + optionalDependencies: + prettier-plugin-organize-imports: 4.2.0(prettier@3.5.3)(typescript@5.8.2) + prettier@2.8.8: {} prettier@3.5.3: {} @@ -30391,7 +30710,7 @@ snapshots: minimist: 1.2.8 strip-json-comments: 2.0.1 - react-dev-utils@11.0.4(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2)(webpack@4.43.0): + react-dev-utils@11.0.4(eslint@9.22.0(jiti@2.5.1))(typescript@5.8.2)(webpack@4.43.0): dependencies: '@babel/code-frame': 7.10.4 address: 1.1.2 @@ -30402,7 +30721,7 @@ snapshots: escape-string-regexp: 2.0.0 filesize: 6.1.0 find-up: 4.1.0 - fork-ts-checker-webpack-plugin: 4.1.6(eslint@9.22.0(jiti@2.4.2))(typescript@5.8.2)(webpack@4.43.0) + fork-ts-checker-webpack-plugin: 4.1.6(eslint@9.22.0(jiti@2.5.1))(typescript@5.8.2)(webpack@4.43.0) global-modules: 2.0.0 globby: 11.0.1 gzip-size: 5.1.1 @@ -32139,10 +32458,12 @@ snapshots: dependencies: react: 17.0.2 - styled-jsx@5.1.1(react@18.3.1): + styled-jsx@5.1.1(@babel/core@7.26.10)(react@18.3.1): dependencies: client-only: 0.0.1 react: 18.3.1 + optionalDependencies: + '@babel/core': 7.26.10 styled-jsx@5.1.6(@babel/core@7.26.10)(react@19.0.0): dependencies: @@ -32258,7 +32579,7 @@ snapshots: transitivePeerDependencies: - ts-node - tailwindcss@4.0.13: {} + tailwindcss@4.1.12: {} tapable@1.1.3: {} @@ -32288,6 +32609,15 @@ snapshots: mkdirp: 1.0.4 yallist: 4.0.0 + tar@7.4.3: + dependencies: + '@isaacs/fs-minipass': 4.0.1 + chownr: 3.0.0 + minipass: 7.1.2 + minizlib: 3.0.2 + mkdirp: 3.0.1 + yallist: 5.0.0 + temp-dir@1.0.0: {} temp-dir@2.0.0: {} @@ -32733,11 +33063,11 @@ snapshots: typedarray@0.0.6: {} - typescript-eslint@8.9.0(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2): + typescript-eslint@8.9.0(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2): dependencies: - '@typescript-eslint/eslint-plugin': 8.9.0(@typescript-eslint/parser@8.9.0(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2))(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2) - '@typescript-eslint/parser': 8.9.0(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2) - '@typescript-eslint/utils': 8.9.0(eslint@9.11.1(jiti@2.4.2))(typescript@5.8.2) + '@typescript-eslint/eslint-plugin': 8.9.0(@typescript-eslint/parser@8.9.0(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2) + '@typescript-eslint/parser': 8.9.0(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2) + '@typescript-eslint/utils': 8.9.0(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2) optionalDependencies: typescript: 5.8.2 transitivePeerDependencies: @@ -33164,7 +33494,7 @@ snapshots: '@types/unist': 3.0.3 vfile-message: 4.0.2 - vite-node@0.28.5(@types/node@22.13.10)(lightningcss@1.29.2)(terser@5.39.0): + vite-node@0.28.5(@types/node@22.13.10)(lightningcss@1.30.1)(terser@5.39.0): dependencies: cac: 6.7.14 debug: 4.4.0(supports-color@6.1.0) @@ -33173,7 +33503,7 @@ snapshots: picocolors: 1.1.1 source-map: 0.6.1 source-map-support: 0.5.21 - vite: 4.5.9(@types/node@22.13.10)(lightningcss@1.29.2)(terser@5.39.0) + vite: 4.5.9(@types/node@22.13.10)(lightningcss@1.30.1)(terser@5.39.0) transitivePeerDependencies: - '@types/node' - less @@ -33184,13 +33514,13 @@ snapshots: - supports-color - terser - vite-node@3.0.0-beta.2(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(yaml@2.7.0): + vite-node@3.0.0-beta.2(@types/node@22.13.10)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.39.0)(yaml@2.7.0): dependencies: cac: 6.7.14 debug: 4.4.0(supports-color@6.1.0) es-module-lexer: 1.6.0 pathe: 1.1.2 - vite: 6.2.1(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(yaml@2.7.0) + vite: 6.2.1(@types/node@22.13.10)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.39.0)(yaml@2.7.0) transitivePeerDependencies: - '@types/node' - jiti @@ -33205,13 +33535,13 @@ snapshots: - tsx - yaml - vite-node@3.0.8(@types/node@20.17.24)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(yaml@2.7.0): + vite-node@3.0.8(@types/node@20.17.24)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.39.0)(yaml@2.7.0): dependencies: cac: 6.7.14 debug: 4.4.0(supports-color@6.1.0) es-module-lexer: 1.6.0 pathe: 2.0.3 - vite: 6.2.1(@types/node@20.17.24)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(yaml@2.7.0) + vite: 6.2.1(@types/node@20.17.24)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.39.0)(yaml@2.7.0) transitivePeerDependencies: - '@types/node' - jiti @@ -33226,13 +33556,13 @@ snapshots: - tsx - yaml - vite-node@3.0.8(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(yaml@2.7.0): + vite-node@3.0.8(@types/node@22.13.10)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.39.0)(yaml@2.7.0): dependencies: cac: 6.7.14 debug: 4.4.0(supports-color@6.1.0) es-module-lexer: 1.6.0 pathe: 2.0.3 - vite: 6.2.1(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(yaml@2.7.0) + vite: 6.2.1(@types/node@22.13.10)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.39.0)(yaml@2.7.0) transitivePeerDependencies: - '@types/node' - jiti @@ -33248,7 +33578,7 @@ snapshots: - yaml optional: true - vite@4.5.9(@types/node@22.13.10)(lightningcss@1.29.2)(terser@5.39.0): + vite@4.5.9(@types/node@22.13.10)(lightningcss@1.30.1)(terser@5.39.0): dependencies: esbuild: 0.18.20 postcss: 8.5.3 @@ -33256,10 +33586,10 @@ snapshots: optionalDependencies: '@types/node': 22.13.10 fsevents: 2.3.3 - lightningcss: 1.29.2 + lightningcss: 1.30.1 terser: 5.39.0 - vite@6.2.1(@types/node@20.17.24)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(yaml@2.7.0): + vite@6.2.1(@types/node@20.17.24)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.39.0)(yaml@2.7.0): dependencies: esbuild: 0.25.1 postcss: 8.5.3 @@ -33267,12 +33597,12 @@ snapshots: optionalDependencies: '@types/node': 20.17.24 fsevents: 2.3.3 - jiti: 2.4.2 - lightningcss: 1.29.2 + jiti: 2.5.1 + lightningcss: 1.30.1 terser: 5.39.0 yaml: 2.7.0 - vite@6.2.1(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(yaml@2.7.0): + vite@6.2.1(@types/node@22.13.10)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.39.0)(yaml@2.7.0): dependencies: esbuild: 0.25.1 postcss: 8.5.3 @@ -33280,15 +33610,15 @@ snapshots: optionalDependencies: '@types/node': 22.13.10 fsevents: 2.3.3 - jiti: 2.4.2 - lightningcss: 1.29.2 + jiti: 2.5.1 + lightningcss: 1.30.1 terser: 5.39.0 yaml: 2.7.0 - vitest@3.0.8(@edge-runtime/vm@5.0.0)(@types/debug@4.1.12)(@types/node@20.17.24)(jiti@2.4.2)(jsdom@26.0.0)(lightningcss@1.29.2)(terser@5.39.0)(yaml@2.7.0): + vitest@3.0.8(@edge-runtime/vm@5.0.0)(@types/debug@4.1.12)(@types/node@20.17.24)(jiti@2.5.1)(jsdom@26.0.0)(lightningcss@1.30.1)(terser@5.39.0)(yaml@2.7.0): dependencies: '@vitest/expect': 3.0.8 - '@vitest/mocker': 3.0.8(vite@6.2.1(@types/node@20.17.24)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(yaml@2.7.0)) + '@vitest/mocker': 3.0.8(vite@6.2.1(@types/node@20.17.24)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.39.0)(yaml@2.7.0)) '@vitest/pretty-format': 3.0.8 '@vitest/runner': 3.0.8 '@vitest/snapshot': 3.0.8 @@ -33304,8 +33634,8 @@ snapshots: tinyexec: 0.3.2 tinypool: 1.0.2 tinyrainbow: 2.0.0 - vite: 6.2.1(@types/node@20.17.24)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(yaml@2.7.0) - vite-node: 3.0.8(@types/node@20.17.24)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(yaml@2.7.0) + vite: 6.2.1(@types/node@20.17.24)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.39.0)(yaml@2.7.0) + vite-node: 3.0.8(@types/node@20.17.24)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.39.0)(yaml@2.7.0) why-is-node-running: 2.3.0 optionalDependencies: '@edge-runtime/vm': 5.0.0 @@ -33326,10 +33656,10 @@ snapshots: - tsx - yaml - vitest@3.0.8(@edge-runtime/vm@5.0.0)(@types/debug@4.1.12)(@types/node@22.13.10)(jiti@2.4.2)(jsdom@26.0.0)(lightningcss@1.29.2)(terser@5.39.0)(yaml@2.7.0): + vitest@3.0.8(@edge-runtime/vm@5.0.0)(@types/debug@4.1.12)(@types/node@22.13.10)(jiti@2.5.1)(jsdom@26.0.0)(lightningcss@1.30.1)(terser@5.39.0)(yaml@2.7.0): dependencies: '@vitest/expect': 3.0.8 - '@vitest/mocker': 3.0.8(vite@6.2.1(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(yaml@2.7.0)) + '@vitest/mocker': 3.0.8(vite@6.2.1(@types/node@22.13.10)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.39.0)(yaml@2.7.0)) '@vitest/pretty-format': 3.0.8 '@vitest/runner': 3.0.8 '@vitest/snapshot': 3.0.8 @@ -33345,8 +33675,8 @@ snapshots: tinyexec: 0.3.2 tinypool: 1.0.2 tinyrainbow: 2.0.0 - vite: 6.2.1(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(yaml@2.7.0) - vite-node: 3.0.8(@types/node@22.13.10)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(yaml@2.7.0) + vite: 6.2.1(@types/node@22.13.10)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.39.0)(yaml@2.7.0) + vite-node: 3.0.8(@types/node@22.13.10)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.39.0)(yaml@2.7.0) why-is-node-running: 2.3.0 optionalDependencies: '@edge-runtime/vm': 5.0.0 @@ -33929,6 +34259,8 @@ snapshots: yallist@4.0.0: {} + yallist@5.0.0: {} + yaml@1.10.2: {} yaml@2.4.5: {} From 0f3f97c3072ff010a3c3b6dd2f394be99caab007 Mon Sep 17 00:00:00 2001 From: Adebesin Tolulope Date: Mon, 13 Oct 2025 02:08:01 +0100 Subject: [PATCH 3/8] feat: Add Next.js project files and configurations --- playground/.gitignore | 41 +++++++++++ playground/README.md | 36 ++++++++++ playground/components.json | 22 ++++++ playground/eslint.config.mjs | 25 +++++++ playground/next.config.ts | 7 ++ playground/package.json | 32 +++++++++ playground/postcss.config.mjs | 5 ++ playground/public/file.svg | 1 + playground/public/globe.svg | 1 + playground/public/next.svg | 1 + playground/public/vercel.svg | 1 + playground/public/window.svg | 1 + playground/src/app/favicon.ico | Bin 0 -> 25931 bytes playground/src/app/globals.css | 122 +++++++++++++++++++++++++++++++++ playground/src/app/layout.tsx | 34 +++++++++ playground/src/app/page.tsx | 103 ++++++++++++++++++++++++++++ playground/src/lib/utils.ts | 6 ++ playground/tsconfig.json | 27 ++++++++ 18 files changed, 465 insertions(+) create mode 100644 playground/.gitignore create mode 100644 playground/README.md create mode 100644 playground/components.json create mode 100644 playground/eslint.config.mjs create mode 100644 playground/next.config.ts create mode 100644 playground/package.json create mode 100644 playground/postcss.config.mjs create mode 100644 playground/public/file.svg create mode 100644 playground/public/globe.svg create mode 100644 playground/public/next.svg create mode 100644 playground/public/vercel.svg create mode 100644 playground/public/window.svg create mode 100644 playground/src/app/favicon.ico create mode 100644 playground/src/app/globals.css create mode 100644 playground/src/app/layout.tsx create mode 100644 playground/src/app/page.tsx create mode 100644 playground/src/lib/utils.ts create mode 100644 playground/tsconfig.json diff --git a/playground/.gitignore b/playground/.gitignore new file mode 100644 index 000000000..5ef6a5207 --- /dev/null +++ b/playground/.gitignore @@ -0,0 +1,41 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +/node_modules +/.pnp +.pnp.* +.yarn/* +!.yarn/patches +!.yarn/plugins +!.yarn/releases +!.yarn/versions + +# testing +/coverage + +# next.js +/.next/ +/out/ + +# production +/build + +# misc +.DS_Store +*.pem + +# debug +npm-debug.log* +yarn-debug.log* +yarn-error.log* +.pnpm-debug.log* + +# env files (can opt-in for committing if needed) +.env* + +# vercel +.vercel + +# typescript +*.tsbuildinfo +next-env.d.ts diff --git a/playground/README.md b/playground/README.md new file mode 100644 index 000000000..e215bc4cc --- /dev/null +++ b/playground/README.md @@ -0,0 +1,36 @@ +This is a [Next.js](https://nextjs.org) project bootstrapped with [`create-next-app`](https://nextjs.org/docs/app/api-reference/cli/create-next-app). + +## Getting Started + +First, run the development server: + +```bash +npm run dev +# or +yarn dev +# or +pnpm dev +# or +bun dev +``` + +Open [http://localhost:3000](http://localhost:3000) with your browser to see the result. + +You can start editing the page by modifying `app/page.tsx`. The page auto-updates as you edit the file. + +This project uses [`next/font`](https://nextjs.org/docs/app/building-your-application/optimizing/fonts) to automatically optimize and load [Geist](https://vercel.com/font), a new font family for Vercel. + +## Learn More + +To learn more about Next.js, take a look at the following resources: + +- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API. +- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial. + +You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js) - your feedback and contributions are welcome! + +## Deploy on Vercel + +The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js. + +Check out our [Next.js deployment documentation](https://nextjs.org/docs/app/building-your-application/deploying) for more details. diff --git a/playground/components.json b/playground/components.json new file mode 100644 index 000000000..edcaef267 --- /dev/null +++ b/playground/components.json @@ -0,0 +1,22 @@ +{ + "$schema": "https://ui.shadcn.com/schema.json", + "style": "new-york", + "rsc": true, + "tsx": true, + "tailwind": { + "config": "", + "css": "src/app/globals.css", + "baseColor": "neutral", + "cssVariables": true, + "prefix": "" + }, + "iconLibrary": "lucide", + "aliases": { + "components": "@/components", + "utils": "@/lib/utils", + "ui": "@/components/ui", + "lib": "@/lib", + "hooks": "@/hooks" + }, + "registries": {} +} diff --git a/playground/eslint.config.mjs b/playground/eslint.config.mjs new file mode 100644 index 000000000..719cea2b5 --- /dev/null +++ b/playground/eslint.config.mjs @@ -0,0 +1,25 @@ +import { dirname } from "path"; +import { fileURLToPath } from "url"; +import { FlatCompat } from "@eslint/eslintrc"; + +const __filename = fileURLToPath(import.meta.url); +const __dirname = dirname(__filename); + +const compat = new FlatCompat({ + baseDirectory: __dirname, +}); + +const eslintConfig = [ + ...compat.extends("next/core-web-vitals", "next/typescript"), + { + ignores: [ + "node_modules/**", + ".next/**", + "out/**", + "build/**", + "next-env.d.ts", + ], + }, +]; + +export default eslintConfig; diff --git a/playground/next.config.ts b/playground/next.config.ts new file mode 100644 index 000000000..e9ffa3083 --- /dev/null +++ b/playground/next.config.ts @@ -0,0 +1,7 @@ +import type { NextConfig } from "next"; + +const nextConfig: NextConfig = { + /* config options here */ +}; + +export default nextConfig; diff --git a/playground/package.json b/playground/package.json new file mode 100644 index 000000000..143a789be --- /dev/null +++ b/playground/package.json @@ -0,0 +1,32 @@ +{ + "name": "playground", + "version": "0.1.0", + "private": true, + "scripts": { + "dev": "next dev --turbopack", + "build": "next build --turbopack", + "start": "next start", + "lint": "eslint" + }, + "dependencies": { + "class-variance-authority": "^0.7.1", + "clsx": "^2.1.1", + "lucide-react": "^0.545.0", + "next": "15.5.4", + "react": "19.1.0", + "react-dom": "19.1.0", + "tailwind-merge": "^3.3.1" + }, + "devDependencies": { + "@eslint/eslintrc": "^3", + "@tailwindcss/postcss": "^4", + "@types/node": "^20", + "@types/react": "^19", + "@types/react-dom": "^19", + "eslint": "^9", + "eslint-config-next": "15.5.4", + "tailwindcss": "^4", + "tw-animate-css": "^1.4.0", + "typescript": "^5" + } +} diff --git a/playground/postcss.config.mjs b/playground/postcss.config.mjs new file mode 100644 index 000000000..c7bcb4b1e --- /dev/null +++ b/playground/postcss.config.mjs @@ -0,0 +1,5 @@ +const config = { + plugins: ["@tailwindcss/postcss"], +}; + +export default config; diff --git a/playground/public/file.svg b/playground/public/file.svg new file mode 100644 index 000000000..004145cdd --- /dev/null +++ b/playground/public/file.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/playground/public/globe.svg b/playground/public/globe.svg new file mode 100644 index 000000000..567f17b0d --- /dev/null +++ b/playground/public/globe.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/playground/public/next.svg b/playground/public/next.svg new file mode 100644 index 000000000..5174b28c5 --- /dev/null +++ b/playground/public/next.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/playground/public/vercel.svg b/playground/public/vercel.svg new file mode 100644 index 000000000..770539603 --- /dev/null +++ b/playground/public/vercel.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/playground/public/window.svg b/playground/public/window.svg new file mode 100644 index 000000000..b2b2a44f6 --- /dev/null +++ b/playground/public/window.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/playground/src/app/favicon.ico b/playground/src/app/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..718d6fea4835ec2d246af9800eddb7ffb276240c GIT binary patch literal 25931 zcmeHv30#a{`}aL_*G&7qml|y<+KVaDM2m#dVr!KsA!#An?kSQM(q<_dDNCpjEux83 zLb9Z^XxbDl(w>%i@8hT6>)&Gu{h#Oeyszu?xtw#Zb1mO{pgX9699l+Qppw7jXaYf~-84xW z)w4x8?=youko|}Vr~(D$UXIbiXABHh`p1?nn8Po~fxRJv}|0e(BPs|G`(TT%kKVJAdg5*Z|x0leQq0 zkdUBvb#>9F()jo|T~kx@OM8$9wzs~t2l;K=woNssA3l6|sx2r3+kdfVW@e^8e*E}v zA1y5{bRi+3Z`uD3{F7LgFJDdvm;nJilkzDku>BwXH(8ItVCXk*-lSJnR?-2UN%hJ){&rlvg`CDTj z)Bzo!3v7Ou#83zEDEFcKt(f1E0~=rqeEbTnMvWR#{+9pg%7G8y>u1OVRUSoox-ovF z2Ydma(;=YuBY(eI|04{hXzZD6_f(v~H;C~y5=DhAC{MMS>2fm~1H_t2$56pc$NH8( z5bH|<)71dV-_oCHIrzrT`2s-5w_+2CM0$95I6X8p^r!gHp+j_gd;9O<1~CEQQGS8) zS9Qh3#p&JM-G8rHekNmKVewU;pJRcTAog68KYo^dRo}(M>36U4Us zfgYWSiHZL3;lpWT=zNAW>Dh#mB!_@Lg%$ms8N-;aPqMn+C2HqZgz&9~Eu z4|Kp<`$q)Uw1R?y(~S>ePdonHxpV1#eSP1B;Ogo+-Pk}6#0GsZZ5!||ev2MGdh}_m z{DeR7?0-1^zVs&`AV6Vt;r3`I`OI_wgs*w=eO%_#7Kepl{B@xiyCANc(l zzIyd4y|c6PXWq9-|KM8(zIk8LPk(>a)zyFWjhT!$HJ$qX1vo@d25W<fvZQ2zUz5WRc(UnFMKHwe1| zWmlB1qdbiA(C0jmnV<}GfbKtmcu^2*P^O?MBLZKt|As~ge8&AAO~2K@zbXelK|4T<{|y4`raF{=72kC2Kn(L4YyenWgrPiv z@^mr$t{#X5VuIMeL!7Ab6_kG$&#&5p*Z{+?5U|TZ`B!7llpVmp@skYz&n^8QfPJzL z0G6K_OJM9x+Wu2gfN45phANGt{7=C>i34CV{Xqlx(fWpeAoj^N0Biu`w+MVcCUyU* zDZuzO0>4Z6fbu^T_arWW5n!E45vX8N=bxTVeFoep_G#VmNlQzAI_KTIc{6>c+04vr zx@W}zE5JNSU>!THJ{J=cqjz+4{L4A{Ob9$ZJ*S1?Ggg3klFp!+Y1@K+pK1DqI|_gq z5ZDXVpge8-cs!o|;K73#YXZ3AShj50wBvuq3NTOZ`M&qtjj#GOFfgExjg8Gn8>Vq5 z`85n+9|!iLCZF5$HJ$Iu($dm?8~-ofu}tEc+-pyke=3!im#6pk_Wo8IA|fJwD&~~F zc16osQ)EBo58U7XDuMexaPRjU@h8tXe%S{fA0NH3vGJFhuyyO!Uyl2^&EOpX{9As0 zWj+P>{@}jxH)8|r;2HdupP!vie{sJ28b&bo!8`D^x}TE$%zXNb^X1p@0PJ86`dZyj z%ce7*{^oo+6%&~I!8hQy-vQ7E)0t0ybH4l%KltWOo~8cO`T=157JqL(oq_rC%ea&4 z2NcTJe-HgFjNg-gZ$6!Y`SMHrlj}Etf7?r!zQTPPSv}{so2e>Fjs1{gzk~LGeesX%r(Lh6rbhSo_n)@@G-FTQy93;l#E)hgP@d_SGvyCp0~o(Y;Ee8{ zdVUDbHm5`2taPUOY^MAGOw*>=s7=Gst=D+p+2yON!0%Hk` zz5mAhyT4lS*T3LS^WSxUy86q&GnoHxzQ6vm8)VS}_zuqG?+3td68_x;etQAdu@sc6 zQJ&5|4(I?~3d-QOAODHpZ=hlSg(lBZ!JZWCtHHSj`0Wh93-Uk)_S%zsJ~aD>{`A0~ z9{AG(e|q3g5B%wYKRxiL2Y$8(4w6bzchKuloQW#e&S3n+P- z8!ds-%f;TJ1>)v)##>gd{PdS2Oc3VaR`fr=`O8QIO(6(N!A?pr5C#6fc~Ge@N%Vvu zaoAX2&(a6eWy_q&UwOhU)|P3J0Qc%OdhzW=F4D|pt0E4osw;%<%Dn58hAWD^XnZD= z>9~H(3bmLtxpF?a7su6J7M*x1By7YSUbxGi)Ot0P77`}P3{)&5Un{KD?`-e?r21!4vTTnN(4Y6Lin?UkSM z`MXCTC1@4A4~mvz%Rh2&EwY))LeoT=*`tMoqcEXI>TZU9WTP#l?uFv+@Dn~b(>xh2 z;>B?;Tz2SR&KVb>vGiBSB`@U7VIWFSo=LDSb9F{GF^DbmWAfpms8Sx9OX4CnBJca3 zlj9(x!dIjN?OG1X4l*imJNvRCk}F%!?SOfiOq5y^mZW)jFL@a|r-@d#f7 z2gmU8L3IZq0ynIws=}~m^#@&C%J6QFo~Mo4V`>v7MI-_!EBMMtb%_M&kvAaN)@ZVw z+`toz&WG#HkWDjnZE!6nk{e-oFdL^$YnbOCN}JC&{$#$O27@|Tn-skXr)2ml2~O!5 zX+gYoxhoc7qoU?C^3~&!U?kRFtnSEecWuH0B0OvLodgUAi}8p1 zrO6RSXHH}DMc$&|?D004DiOVMHV8kXCP@7NKB zgaZq^^O<7PoKEp72kby@W0Z!Y*Ay{&vfg#C&gG@YVR9g?FEocMUi1gSN$+V+ayF45{a zuDZDTN}mS|;BO%gEf}pjBfN2-gIrU#G5~cucA;dokXW89%>AyXJJI z9X4UlIWA|ZYHgbI z5?oFk@A=Ik7lrEQPDH!H+b`7_Y~aDb_qa=B2^Y&Ow41cU=4WDd40dp5(QS-WMN-=Y z9g;6_-JdNU;|6cPwf$ak*aJIcwL@1n$#l~zi{c{EW?T;DaW*E8DYq?Umtz{nJ&w-M zEMyTDrC&9K$d|kZe2#ws6)L=7K+{ zQw{XnV6UC$6-rW0emqm8wJoeZK)wJIcV?dST}Z;G0Arq{dVDu0&4kd%N!3F1*;*pW zR&qUiFzK=@44#QGw7k1`3t_d8&*kBV->O##t|tonFc2YWrL7_eqg+=+k;!F-`^b8> z#KWCE8%u4k@EprxqiV$VmmtiWxDLgnGu$Vs<8rppV5EajBXL4nyyZM$SWVm!wnCj-B!Wjqj5-5dNXukI2$$|Bu3Lrw}z65Lc=1G z^-#WuQOj$hwNGG?*CM_TO8Bg-1+qc>J7k5c51U8g?ZU5n?HYor;~JIjoWH-G>AoUP ztrWWLbRNqIjW#RT*WqZgPJXU7C)VaW5}MiijYbABmzoru6EmQ*N8cVK7a3|aOB#O& zBl8JY2WKfmj;h#Q!pN%9o@VNLv{OUL?rixHwOZuvX7{IJ{(EdPpuVFoQqIOa7giLVkBOKL@^smUA!tZ1CKRK}#SSM)iQHk)*R~?M!qkCruaS!#oIL1c z?J;U~&FfH#*98^G?i}pA{ z9Jg36t4=%6mhY(quYq*vSxptes9qy|7xSlH?G=S@>u>Ebe;|LVhs~@+06N<4CViBk zUiY$thvX;>Tby6z9Y1edAMQaiH zm^r3v#$Q#2T=X>bsY#D%s!bhs^M9PMAcHbCc0FMHV{u-dwlL;a1eJ63v5U*?Q_8JO zT#50!RD619#j_Uf))0ooADz~*9&lN!bBDRUgE>Vud-i5ck%vT=r^yD*^?Mp@Q^v+V zG#-?gKlr}Eeqifb{|So?HM&g91P8|av8hQoCmQXkd?7wIJwb z_^v8bbg`SAn{I*4bH$u(RZ6*xUhuA~hc=8czK8SHEKTzSxgbwi~9(OqJB&gwb^l4+m`k*Q;_?>Y-APi1{k zAHQ)P)G)f|AyjSgcCFps)Fh6Bca*Xznq36!pV6Az&m{O8$wGFD? zY&O*3*J0;_EqM#jh6^gMQKpXV?#1?>$ml1xvh8nSN>-?H=V;nJIwB07YX$e6vLxH( zqYwQ>qxwR(i4f)DLd)-$P>T-no_c!LsN@)8`e;W@)-Hj0>nJ-}Kla4-ZdPJzI&Mce zv)V_j;(3ERN3_@I$N<^|4Lf`B;8n+bX@bHbcZTopEmDI*Jfl)-pFDvo6svPRoo@(x z);_{lY<;);XzT`dBFpRmGrr}z5u1=pC^S-{ce6iXQlLGcItwJ^mZx{m$&DA_oEZ)B{_bYPq-HA zcH8WGoBG(aBU_j)vEy+_71T34@4dmSg!|M8Vf92Zj6WH7Q7t#OHQqWgFE3ARt+%!T z?oLovLVlnf?2c7pTc)~cc^($_8nyKwsN`RA-23ed3sdj(ys%pjjM+9JrctL;dy8a( z@en&CQmnV(()bu|Y%G1-4a(6x{aLytn$T-;(&{QIJB9vMox11U-1HpD@d(QkaJdEb zG{)+6Dos_L+O3NpWo^=gR?evp|CqEG?L&Ut#D*KLaRFOgOEK(Kq1@!EGcTfo+%A&I z=dLbB+d$u{sh?u)xP{PF8L%;YPPW53+@{>5W=Jt#wQpN;0_HYdw1{ksf_XhO4#2F= zyPx6Lx2<92L-;L5PD`zn6zwIH`Jk($?Qw({erA$^bC;q33hv!d!>%wRhj# zal^hk+WGNg;rJtb-EB(?czvOM=H7dl=vblBwAv>}%1@{}mnpUznfq1cE^sgsL0*4I zJ##!*B?=vI_OEVis5o+_IwMIRrpQyT_Sq~ZU%oY7c5JMIADzpD!Upz9h@iWg_>>~j zOLS;wp^i$-E?4<_cp?RiS%Rd?i;f*mOz=~(&3lo<=@(nR!_Rqiprh@weZlL!t#NCc zO!QTcInq|%#>OVgobj{~ixEUec`E25zJ~*DofsQdzIa@5^nOXj2T;8O`l--(QyU^$t?TGY^7#&FQ+2SS3B#qK*k3`ye?8jUYSajE5iBbJls75CCc(m3dk{t?- zopcER9{Z?TC)mk~gpi^kbbu>b-+a{m#8-y2^p$ka4n60w;Sc2}HMf<8JUvhCL0B&Btk)T`ctE$*qNW8L$`7!r^9T+>=<=2qaq-;ll2{`{Rg zc5a0ZUI$oG&j-qVOuKa=*v4aY#IsoM+1|c4Z)<}lEDvy;5huB@1RJPquU2U*U-;gu z=En2m+qjBzR#DEJDO`WU)hdd{Vj%^0V*KoyZ|5lzV87&g_j~NCjwv0uQVqXOb*QrQ zy|Qn`hxx(58c70$E;L(X0uZZ72M1!6oeg)(cdKO ze0gDaTz+ohR-#d)NbAH4x{I(21yjwvBQfmpLu$)|m{XolbgF!pmsqJ#D}(ylp6uC> z{bqtcI#hT#HW=wl7>p!38sKsJ`r8}lt-q%Keqy%u(xk=yiIJiUw6|5IvkS+#?JTBl z8H5(Q?l#wzazujH!8o>1xtn8#_w+397*_cy8!pQGP%K(Ga3pAjsaTbbXJlQF_+m+-UpUUent@xM zg%jqLUExj~o^vQ3Gl*>wh=_gOr2*|U64_iXb+-111aH}$TjeajM+I20xw(((>fej-@CIz4S1pi$(#}P7`4({6QS2CaQS4NPENDp>sAqD z$bH4KGzXGffkJ7R>V>)>tC)uax{UsN*dbeNC*v}#8Y#OWYwL4t$ePR?VTyIs!wea+ z5Urmc)X|^`MG~*dS6pGSbU+gPJoq*^a=_>$n4|P^w$sMBBy@f*Z^Jg6?n5?oId6f{ z$LW4M|4m502z0t7g<#Bx%X;9<=)smFolV&(V^(7Cv2-sxbxopQ!)*#ZRhTBpx1)Fc zNm1T%bONzv6@#|dz(w02AH8OXe>kQ#1FMCzO}2J_mST)+ExmBr9cva-@?;wnmWMOk z{3_~EX_xadgJGv&H@zK_8{(x84`}+c?oSBX*Ge3VdfTt&F}yCpFP?CpW+BE^cWY0^ zb&uBN!Ja3UzYHK-CTyA5=L zEMW{l3Usky#ly=7px648W31UNV@K)&Ub&zP1c7%)`{);I4b0Q<)B}3;NMG2JH=X$U zfIW4)4n9ZM`-yRj67I)YSLDK)qfUJ_ij}a#aZN~9EXrh8eZY2&=uY%2N0UFF7<~%M zsB8=erOWZ>Ct_#^tHZ|*q`H;A)5;ycw*IcmVxi8_0Xk}aJA^ath+E;xg!x+As(M#0=)3!NJR6H&9+zd#iP(m0PIW8$ z1Y^VX`>jm`W!=WpF*{ioM?C9`yOR>@0q=u7o>BP-eSHqCgMDj!2anwH?s%i2p+Q7D zzszIf5XJpE)IG4;d_(La-xenmF(tgAxK`Y4sQ}BSJEPs6N_U2vI{8=0C_F?@7<(G; zo$~G=8p+076G;`}>{MQ>t>7cm=zGtfbdDXm6||jUU|?X?CaE?(<6bKDYKeHlz}DA8 zXT={X=yp_R;HfJ9h%?eWvQ!dRgz&Su*JfNt!Wu>|XfU&68iRikRrHRW|ZxzRR^`eIGt zIeiDgVS>IeExKVRWW8-=A=yA`}`)ZkWBrZD`hpWIxBGkh&f#ijr449~m`j6{4jiJ*C!oVA8ZC?$1RM#K(_b zL9TW)kN*Y4%^-qPpMP7d4)o?Nk#>aoYHT(*g)qmRUb?**F@pnNiy6Fv9rEiUqD(^O zzyS?nBrX63BTRYduaG(0VVG2yJRe%o&rVrLjbxTaAFTd8s;<<@Qs>u(<193R8>}2_ zuwp{7;H2a*X7_jryzriZXMg?bTuegABb^87@SsKkr2)0Gyiax8KQWstw^v#ix45EVrcEhr>!NMhprl$InQMzjSFH54x5k9qHc`@9uKQzvL4ihcq{^B zPrVR=o_ic%Y>6&rMN)hTZsI7I<3&`#(nl+3y3ys9A~&^=4?PL&nd8)`OfG#n zwAMN$1&>K++c{^|7<4P=2y(B{jJsQ0a#U;HTo4ZmWZYvI{+s;Td{Yzem%0*k#)vjpB zia;J&>}ICate44SFYY3vEelqStQWFihx%^vQ@Do(sOy7yR2@WNv7Y9I^yL=nZr3mb zXKV5t@=?-Sk|b{XMhA7ZGB@2hqsx}4xwCW!in#C zI@}scZlr3-NFJ@NFaJlhyfcw{k^vvtGl`N9xSo**rDW4S}i zM9{fMPWo%4wYDG~BZ18BD+}h|GQKc-g^{++3MY>}W_uq7jGHx{mwE9fZiPCoxN$+7 zrODGGJrOkcPQUB(FD5aoS4g~7#6NR^ma7-!>mHuJfY5kTe6PpNNKC9GGRiu^L31uG z$7v`*JknQHsYB!Tm_W{a32TM099djW%5e+j0Ve_ct}IM>XLF1Ap+YvcrLV=|CKo6S zb+9Nl3_YdKP6%Cxy@6TxZ>;4&nTneadr z_ES90ydCev)LV!dN=#(*f}|ZORFdvkYBni^aLbUk>BajeWIOcmHP#8S)*2U~QKI%S zyrLmtPqb&TphJ;>yAxri#;{uyk`JJqODDw%(Z=2`1uc}br^V%>j!gS)D*q*f_-qf8&D;W1dJgQMlaH5er zN2U<%Smb7==vE}dDI8K7cKz!vs^73o9f>2sgiTzWcwY|BMYHH5%Vn7#kiw&eItCqa zIkR2~Q}>X=Ar8W|^Ms41Fm8o6IB2_j60eOeBB1Br!boW7JnoeX6Gs)?7rW0^5psc- zjS16yb>dFn>KPOF;imD}e!enuIniFzv}n$m2#gCCv4jM#ArwlzZ$7@9&XkFxZ4n!V zj3dyiwW4Ki2QG{@i>yuZXQizw_OkZI^-3otXC{!(lUpJF33gI60ak;Uqitp74|B6I zgg{b=Iz}WkhCGj1M=hu4#Aw173YxIVbISaoc z-nLZC*6Tgivd5V`K%GxhBsp@SUU60-rfc$=wb>zdJzXS&-5(NRRodFk;Kxk!S(O(a0e7oY=E( zAyS;Ow?6Q&XA+cnkCb{28_1N8H#?J!*$MmIwLq^*T_9-z^&UE@A(z9oGYtFy6EZef LrJugUA?W`A8`#=m literal 0 HcmV?d00001 diff --git a/playground/src/app/globals.css b/playground/src/app/globals.css new file mode 100644 index 000000000..dc98be74c --- /dev/null +++ b/playground/src/app/globals.css @@ -0,0 +1,122 @@ +@import "tailwindcss"; +@import "tw-animate-css"; + +@custom-variant dark (&:is(.dark *)); + +@theme inline { + --color-background: var(--background); + --color-foreground: var(--foreground); + --font-sans: var(--font-geist-sans); + --font-mono: var(--font-geist-mono); + --color-sidebar-ring: var(--sidebar-ring); + --color-sidebar-border: var(--sidebar-border); + --color-sidebar-accent-foreground: var(--sidebar-accent-foreground); + --color-sidebar-accent: var(--sidebar-accent); + --color-sidebar-primary-foreground: var(--sidebar-primary-foreground); + --color-sidebar-primary: var(--sidebar-primary); + --color-sidebar-foreground: var(--sidebar-foreground); + --color-sidebar: var(--sidebar); + --color-chart-5: var(--chart-5); + --color-chart-4: var(--chart-4); + --color-chart-3: var(--chart-3); + --color-chart-2: var(--chart-2); + --color-chart-1: var(--chart-1); + --color-ring: var(--ring); + --color-input: var(--input); + --color-border: var(--border); + --color-destructive: var(--destructive); + --color-accent-foreground: var(--accent-foreground); + --color-accent: var(--accent); + --color-muted-foreground: var(--muted-foreground); + --color-muted: var(--muted); + --color-secondary-foreground: var(--secondary-foreground); + --color-secondary: var(--secondary); + --color-primary-foreground: var(--primary-foreground); + --color-primary: var(--primary); + --color-popover-foreground: var(--popover-foreground); + --color-popover: var(--popover); + --color-card-foreground: var(--card-foreground); + --color-card: var(--card); + --radius-sm: calc(var(--radius) - 4px); + --radius-md: calc(var(--radius) - 2px); + --radius-lg: var(--radius); + --radius-xl: calc(var(--radius) + 4px); +} + +:root { + --radius: 0.625rem; + --background: oklch(1 0 0); + --foreground: oklch(0.145 0 0); + --card: oklch(1 0 0); + --card-foreground: oklch(0.145 0 0); + --popover: oklch(1 0 0); + --popover-foreground: oklch(0.145 0 0); + --primary: oklch(0.205 0 0); + --primary-foreground: oklch(0.985 0 0); + --secondary: oklch(0.97 0 0); + --secondary-foreground: oklch(0.205 0 0); + --muted: oklch(0.97 0 0); + --muted-foreground: oklch(0.556 0 0); + --accent: oklch(0.97 0 0); + --accent-foreground: oklch(0.205 0 0); + --destructive: oklch(0.577 0.245 27.325); + --border: oklch(0.922 0 0); + --input: oklch(0.922 0 0); + --ring: oklch(0.708 0 0); + --chart-1: oklch(0.646 0.222 41.116); + --chart-2: oklch(0.6 0.118 184.704); + --chart-3: oklch(0.398 0.07 227.392); + --chart-4: oklch(0.828 0.189 84.429); + --chart-5: oklch(0.769 0.188 70.08); + --sidebar: oklch(0.985 0 0); + --sidebar-foreground: oklch(0.145 0 0); + --sidebar-primary: oklch(0.205 0 0); + --sidebar-primary-foreground: oklch(0.985 0 0); + --sidebar-accent: oklch(0.97 0 0); + --sidebar-accent-foreground: oklch(0.205 0 0); + --sidebar-border: oklch(0.922 0 0); + --sidebar-ring: oklch(0.708 0 0); +} + +.dark { + --background: oklch(0.145 0 0); + --foreground: oklch(0.985 0 0); + --card: oklch(0.205 0 0); + --card-foreground: oklch(0.985 0 0); + --popover: oklch(0.205 0 0); + --popover-foreground: oklch(0.985 0 0); + --primary: oklch(0.922 0 0); + --primary-foreground: oklch(0.205 0 0); + --secondary: oklch(0.269 0 0); + --secondary-foreground: oklch(0.985 0 0); + --muted: oklch(0.269 0 0); + --muted-foreground: oklch(0.708 0 0); + --accent: oklch(0.269 0 0); + --accent-foreground: oklch(0.985 0 0); + --destructive: oklch(0.704 0.191 22.216); + --border: oklch(1 0 0 / 10%); + --input: oklch(1 0 0 / 15%); + --ring: oklch(0.556 0 0); + --chart-1: oklch(0.488 0.243 264.376); + --chart-2: oklch(0.696 0.17 162.48); + --chart-3: oklch(0.769 0.188 70.08); + --chart-4: oklch(0.627 0.265 303.9); + --chart-5: oklch(0.645 0.246 16.439); + --sidebar: oklch(0.205 0 0); + --sidebar-foreground: oklch(0.985 0 0); + --sidebar-primary: oklch(0.488 0.243 264.376); + --sidebar-primary-foreground: oklch(0.985 0 0); + --sidebar-accent: oklch(0.269 0 0); + --sidebar-accent-foreground: oklch(0.985 0 0); + --sidebar-border: oklch(1 0 0 / 10%); + --sidebar-ring: oklch(0.556 0 0); +} + +@layer base { + * { + @apply border-border outline-ring/50; + } + body { + @apply bg-background text-foreground; + } +} diff --git a/playground/src/app/layout.tsx b/playground/src/app/layout.tsx new file mode 100644 index 000000000..f7fa87eb8 --- /dev/null +++ b/playground/src/app/layout.tsx @@ -0,0 +1,34 @@ +import type { Metadata } from "next"; +import { Geist, Geist_Mono } from "next/font/google"; +import "./globals.css"; + +const geistSans = Geist({ + variable: "--font-geist-sans", + subsets: ["latin"], +}); + +const geistMono = Geist_Mono({ + variable: "--font-geist-mono", + subsets: ["latin"], +}); + +export const metadata: Metadata = { + title: "Create Next App", + description: "Generated by create next app", +}; + +export default function RootLayout({ + children, +}: Readonly<{ + children: React.ReactNode; +}>) { + return ( + + + {children} + + + ); +} diff --git a/playground/src/app/page.tsx b/playground/src/app/page.tsx new file mode 100644 index 000000000..a93289420 --- /dev/null +++ b/playground/src/app/page.tsx @@ -0,0 +1,103 @@ +import Image from "next/image"; + +export default function Home() { + return ( +
+
+ Next.js logo +
    +
  1. + Get started by editing{" "} + + src/app/page.tsx + + . +
  2. +
  3. + Save and see your changes instantly. +
  4. +
+ + +
+ +
+ ); +} diff --git a/playground/src/lib/utils.ts b/playground/src/lib/utils.ts new file mode 100644 index 000000000..bd0c391dd --- /dev/null +++ b/playground/src/lib/utils.ts @@ -0,0 +1,6 @@ +import { clsx, type ClassValue } from "clsx" +import { twMerge } from "tailwind-merge" + +export function cn(...inputs: ClassValue[]) { + return twMerge(clsx(inputs)) +} diff --git a/playground/tsconfig.json b/playground/tsconfig.json new file mode 100644 index 000000000..c1334095f --- /dev/null +++ b/playground/tsconfig.json @@ -0,0 +1,27 @@ +{ + "compilerOptions": { + "target": "ES2017", + "lib": ["dom", "dom.iterable", "esnext"], + "allowJs": true, + "skipLibCheck": true, + "strict": true, + "noEmit": true, + "esModuleInterop": true, + "module": "esnext", + "moduleResolution": "bundler", + "resolveJsonModule": true, + "isolatedModules": true, + "jsx": "preserve", + "incremental": true, + "plugins": [ + { + "name": "next" + } + ], + "paths": { + "@/*": ["./src/*"] + } + }, + "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"], + "exclude": ["node_modules"] +} From e16db8a81e7d6fa06cf1cf6e494599af015a69a0 Mon Sep 17 00:00:00 2001 From: Adebesin Tolulope Date: Mon, 13 Oct 2025 02:08:38 +0100 Subject: [PATCH 4/8] feat: Add 'playground' to packages list --- pnpm-lock.yaml | 583 +++++++++++++++++++++++++++----------------- pnpm-workspace.yaml | 1 + 2 files changed, 357 insertions(+), 227 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 43b394cbf..5ad298acf 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -985,6 +985,61 @@ importers: specifier: ^3.0.8 version: 3.0.8(@edge-runtime/vm@5.0.0)(@types/debug@4.1.12)(@types/node@20.17.24)(jiti@2.5.1)(jsdom@26.0.0)(lightningcss@1.30.1)(terser@5.39.0)(yaml@2.7.0) + playground: + dependencies: + class-variance-authority: + specifier: ^0.7.1 + version: 0.7.1 + clsx: + specifier: ^2.1.1 + version: 2.1.1 + lucide-react: + specifier: ^0.545.0 + version: 0.545.0(react@19.1.0) + next: + specifier: 15.5.4 + version: 15.5.4(@playwright/test@1.55.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + react: + specifier: 19.1.0 + version: 19.1.0 + react-dom: + specifier: 19.1.0 + version: 19.1.0(react@19.1.0) + tailwind-merge: + specifier: ^3.3.1 + version: 3.3.1 + devDependencies: + '@eslint/eslintrc': + specifier: ^3 + version: 3.3.0 + '@tailwindcss/postcss': + specifier: ^4 + version: 4.1.12 + '@types/node': + specifier: ^20 + version: 20.17.24 + '@types/react': + specifier: ^19 + version: 19.0.10 + '@types/react-dom': + specifier: ^19 + version: 19.0.4(@types/react@19.0.10) + eslint: + specifier: ^9 + version: 9.11.1(jiti@2.5.1) + eslint-config-next: + specifier: 15.5.4 + version: 15.5.4(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2) + tailwindcss: + specifier: ^4 + version: 4.1.12 + tw-animate-css: + specifier: ^1.4.0 + version: 1.4.0 + typescript: + specifier: ^5 + version: 5.8.2 + tools: devDependencies: '@babel/core': @@ -3393,9 +3448,15 @@ packages: '@next/env@15.5.0': resolution: {integrity: sha512-sDaprBAfzCQiOgo2pO+LhnV0Wt2wBgartjrr+dpcTORYVnnXD0gwhHhiiyIih9hQbq+JnbqH4odgcFWhqCGidw==} + '@next/env@15.5.4': + resolution: {integrity: sha512-27SQhYp5QryzIT5uO8hq99C69eLQ7qkzkDPsk3N+GuS2XgOgoYEeOav7Pf8Tn4drECOVDsDg8oj+/DVy8qQL2A==} + '@next/eslint-plugin-next@15.5.0': resolution: {integrity: sha512-+k83U/fST66eQBjTltX2T9qUYd43ntAe+NZ5qeZVTQyTiFiHvTLtkpLKug4AnZAtuI/lwz5tl/4QDJymjVkybg==} + '@next/eslint-plugin-next@15.5.4': + resolution: {integrity: sha512-SR1vhXNNg16T4zffhJ4TS7Xn7eq4NfKfcOsRwea7RIAHrjRpI9ALYbamqIJqkAhowLlERffiwk0FMvTLNdnVtw==} + '@next/mdx@15.5.0': resolution: {integrity: sha512-TxfWpIDHx9Xy/GgZwegrl+HxjzeQml0bTclxX72SqJLi83IhJaFiglQbfMTotB2hDRbxCGKpPYh0X20+r1Trtw==} peerDependencies: @@ -3437,6 +3498,12 @@ packages: cpu: [arm64] os: [darwin] + '@next/swc-darwin-arm64@15.5.4': + resolution: {integrity: sha512-nopqz+Ov6uvorej8ndRX6HlxCYWCO3AHLfKK2TYvxoSB2scETOcfm/HSS3piPqc3A+MUgyHoqE6je4wnkjfrOA==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [darwin] + '@next/swc-darwin-x64@12.3.4': resolution: {integrity: sha512-PPF7tbWD4k0dJ2EcUSnOsaOJ5rhT3rlEt/3LhZUGiYNL8KvoqczFrETlUx0cUYaXe11dRA3F80Hpt727QIwByQ==} engines: {node: '>= 10'} @@ -3455,6 +3522,12 @@ packages: cpu: [x64] os: [darwin] + '@next/swc-darwin-x64@15.5.4': + resolution: {integrity: sha512-QOTCFq8b09ghfjRJKfb68kU9k2K+2wsC4A67psOiMn849K9ZXgCSRQr0oVHfmKnoqCbEmQWG1f2h1T2vtJJ9mA==} + engines: {node: '>= 10'} + cpu: [x64] + os: [darwin] + '@next/swc-freebsd-x64@12.3.4': resolution: {integrity: sha512-KM9JXRXi/U2PUM928z7l4tnfQ9u8bTco/jb939pdFUHqc28V43Ohd31MmZD1QzEK4aFlMRaIBQOWQZh4D/E5lQ==} engines: {node: '>= 10'} @@ -3485,6 +3558,12 @@ packages: cpu: [arm64] os: [linux] + '@next/swc-linux-arm64-gnu@15.5.4': + resolution: {integrity: sha512-eRD5zkts6jS3VfE/J0Kt1VxdFqTnMc3QgO5lFE5GKN3KDI/uUpSyK3CjQHmfEkYR4wCOl0R0XrsjpxfWEA++XA==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + '@next/swc-linux-arm64-musl@12.3.4': resolution: {integrity: sha512-EETZPa1juczrKLWk5okoW2hv7D7WvonU+Cf2CgsSoxgsYbUCZ1voOpL4JZTOb6IbKMDo6ja+SbY0vzXZBUMvkQ==} engines: {node: '>= 10'} @@ -3503,6 +3582,12 @@ packages: cpu: [arm64] os: [linux] + '@next/swc-linux-arm64-musl@15.5.4': + resolution: {integrity: sha512-TOK7iTxmXFc45UrtKqWdZ1shfxuL4tnVAOuuJK4S88rX3oyVV4ZkLjtMT85wQkfBrOOvU55aLty+MV8xmcJR8A==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + '@next/swc-linux-x64-gnu@12.3.4': resolution: {integrity: sha512-4csPbRbfZbuWOk3ATyWcvVFdD9/Rsdq5YHKvRuEni68OCLkfy4f+4I9OBpyK1SKJ00Cih16NJbHE+k+ljPPpag==} engines: {node: '>= 10'} @@ -3521,6 +3606,12 @@ packages: cpu: [x64] os: [linux] + '@next/swc-linux-x64-gnu@15.5.4': + resolution: {integrity: sha512-7HKolaj+481FSW/5lL0BcTkA4Ueam9SPYWyN/ib/WGAFZf0DGAN8frNpNZYFHtM4ZstrHZS3LY3vrwlIQfsiMA==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + '@next/swc-linux-x64-musl@12.3.4': resolution: {integrity: sha512-YeBmI+63Ro75SUiL/QXEVXQ19T++58aI/IINOyhpsRL1LKdyfK/35iilraZEFz9bLQrwy1LYAR5lK200A9Gjbg==} engines: {node: '>= 10'} @@ -3539,6 +3630,12 @@ packages: cpu: [x64] os: [linux] + '@next/swc-linux-x64-musl@15.5.4': + resolution: {integrity: sha512-nlQQ6nfgN0nCO/KuyEUwwOdwQIGjOs4WNMjEUtpIQJPR2NUfmGpW2wkJln1d4nJ7oUzd1g4GivH5GoEPBgfsdw==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + '@next/swc-win32-arm64-msvc@12.3.4': resolution: {integrity: sha512-Sd0qFUJv8Tj0PukAYbCCDbmXcMkbIuhnTeHm9m4ZGjCf6kt7E/RMs55Pd3R5ePjOkN7dJEuxYBehawTR/aPDSQ==} engines: {node: '>= 10'} @@ -3557,6 +3654,12 @@ packages: cpu: [arm64] os: [win32] + '@next/swc-win32-arm64-msvc@15.5.4': + resolution: {integrity: sha512-PcR2bN7FlM32XM6eumklmyWLLbu2vs+D7nJX8OAIoWy69Kef8mfiN4e8TUv2KohprwifdpFKPzIP1njuCjD0YA==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [win32] + '@next/swc-win32-ia32-msvc@12.3.4': resolution: {integrity: sha512-rt/vv/vg/ZGGkrkKcuJ0LyliRdbskQU+91bje+PgoYmxTZf/tYs6IfbmgudBJk6gH3QnjHWbkphDdRQrseRefQ==} engines: {node: '>= 10'} @@ -3587,6 +3690,12 @@ packages: cpu: [x64] os: [win32] + '@next/swc-win32-x64-msvc@15.5.4': + resolution: {integrity: sha512-1ur2tSHZj8Px/KMAthmuI9FMp/YFusMMGoRNJaRZMOlSkgvLjzosSdQI0cJAKogdHl3qXUQKL9MGaYvKwA7DXg==} + engines: {node: '>= 10'} + cpu: [x64] + os: [win32] + '@nodelib/fs.scandir@2.1.5': resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} engines: {node: '>= 8'} @@ -5554,11 +5663,6 @@ packages: engines: {node: '>=0.4.0'} hasBin: true - acorn@8.13.0: - resolution: {integrity: sha512-8zSiw54Oxrdym50NlZ9sUusyO1Z1ZchgRLWRaK6c86XJFClyCgFKetdowBg5bKxyp/u+CDBJG4Mpp0m3HLZl9w==} - engines: {node: '>=0.4.0'} - hasBin: true - acorn@8.14.0: resolution: {integrity: sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==} engines: {node: '>=0.4.0'} @@ -6405,6 +6509,9 @@ packages: resolution: {integrity: sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==} engines: {node: '>=0.10.0'} + class-variance-authority@0.7.1: + resolution: {integrity: sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==} + clean-css@4.2.4: resolution: {integrity: sha512-EJUDT7nDVFDvaQgAo2G/PJvxmp1o/c6iXLbswsBbUFXi1Nr+AjA2cKmfbKDMjMvzEe75g3P6JkaDDAKk96A85A==} engines: {node: '>= 4.0'} @@ -7284,10 +7391,6 @@ packages: resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==} engines: {node: '>=12'} - define-properties@1.2.0: - resolution: {integrity: sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==} - engines: {node: '>= 0.4'} - define-properties@1.2.1: resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} engines: {node: '>= 0.4'} @@ -7744,6 +7847,15 @@ packages: typescript: optional: true + eslint-config-next@15.5.4: + resolution: {integrity: sha512-BzgVVuT3kfJes8i2GHenC1SRJ+W3BTML11lAOYFOOPzrk2xp66jBOAGEFRw+3LkYCln5UzvFsLhojrshb5Zfaw==} + peerDependencies: + eslint: ^7.23.0 || ^8.0.0 || ^9.0.0 + typescript: '>=3.3.1' + peerDependenciesMeta: + typescript: + optional: true + eslint-import-resolver-node@0.3.9: resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} @@ -7905,10 +8017,6 @@ packages: resolution: {integrity: sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA==} engines: {node: '>=6'} - espree@10.2.0: - resolution: {integrity: sha512-upbkBJbckcCNBDBDXEbuhjbP68n+scUd3k/U2EkyM9nw+I/jPiL4cLF/Al06CF96wRltFda16sxDFrxsI1v0/g==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - espree@10.3.0: resolution: {integrity: sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -8734,9 +8842,6 @@ packages: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} engines: {node: '>=8'} - has-property-descriptors@1.0.0: - resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==} - has-property-descriptors@1.0.2: resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} @@ -9238,10 +9343,6 @@ packages: is-alphanumerical@2.0.1: resolution: {integrity: sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==} - is-arguments@1.1.1: - resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==} - engines: {node: '>= 0.4'} - is-arguments@1.2.0: resolution: {integrity: sha512-7bVbi0huj/wrIAOzb8U1aszg9kdi3KN/CyU19CTI7tAoZYEZoL9yCDXpbXN+uPsuWnP02cyug1gleqq+TU+YCA==} engines: {node: '>= 0.4'} @@ -9387,9 +9488,6 @@ packages: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} - is-finalizationregistry@1.0.2: - resolution: {integrity: sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==} - is-finalizationregistry@1.1.1: resolution: {integrity: sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==} engines: {node: '>= 0.4'} @@ -9445,9 +9543,6 @@ packages: is-lambda@1.0.1: resolution: {integrity: sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==} - is-map@2.0.2: - resolution: {integrity: sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==} - is-map@2.0.3: resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} engines: {node: '>= 0.4'} @@ -9540,9 +9635,6 @@ packages: resolution: {integrity: sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==} engines: {node: '>=6'} - is-set@2.0.2: - resolution: {integrity: sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==} - is-set@2.0.3: resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==} engines: {node: '>= 0.4'} @@ -9614,9 +9706,6 @@ packages: resolution: {integrity: sha512-+kwPrVDu9Ms03L90Qaml+79+6DZHqHyRoANI6IsZJ/g8frhnfchDOBCa0RbQ6/kdHt5CS5OeIEyrYznNuVN+8A==} engines: {node: '>=0.10.0'} - is-weakmap@2.0.1: - resolution: {integrity: sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==} - is-weakmap@2.0.2: resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==} engines: {node: '>= 0.4'} @@ -9628,9 +9717,6 @@ packages: resolution: {integrity: sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==} engines: {node: '>= 0.4'} - is-weakset@2.0.2: - resolution: {integrity: sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==} - is-weakset@2.0.4: resolution: {integrity: sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==} engines: {node: '>= 0.4'} @@ -10317,6 +10403,11 @@ packages: resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==} engines: {node: '>=12'} + lucide-react@0.545.0: + resolution: {integrity: sha512-7r1/yUuflQDSt4f1bpn5ZAocyIxcTyVyBBChSVtBKn5M+392cPmI5YJMWOJKk/HUWGm5wg83chlAZtCcGbEZtw==} + peerDependencies: + react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0 + lz-string@1.5.0: resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==} hasBin: true @@ -10584,11 +10675,13 @@ packages: metro-react-native-babel-preset@0.72.3: resolution: {integrity: sha512-uJx9y/1NIqoYTp6ZW1osJ7U5ZrXGAJbOQ/Qzl05BdGYvN1S7Qmbzid6xOirgK0EIT0pJKEEh1s8qbassYZe4cw==} + deprecated: Use @react-native/babel-preset instead peerDependencies: '@babel/core': '*' metro-react-native-babel-preset@0.72.4: resolution: {integrity: sha512-YGCVaYe1H5fOFktdDdL9IwAyiXjPh1t2eZZFp3KFJak6fxKpN+q5PPhe1kzMa77dbCAqgImv43zkfGa6i27eyA==} + deprecated: Use @react-native/babel-preset instead peerDependencies: '@babel/core': '*' @@ -11219,6 +11312,27 @@ packages: sass: optional: true + next@15.5.4: + resolution: {integrity: sha512-xH4Yjhb82sFYQfY3vbkJfgSDgXvBB6a8xPs9i35k6oZJRoQRihZH+4s9Yo2qsWpzBmZ3lPXaJ2KPXLfkvW4LnA==} + engines: {node: ^18.18.0 || ^19.8.0 || >= 20.0.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 + nextra-theme-docs@3.3.1: resolution: {integrity: sha512-P305m2UcW2IDyQhjrcAu0qpdPArikofinABslUCAyixYShsmcdDRUhIMd4QBHYru4gQuVjGWX9PhWZZCbNvzDQ==} peerDependencies: @@ -11258,6 +11372,7 @@ packages: node-domexception@1.0.0: resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==} engines: {node: '>=10.5.0'} + deprecated: Use your platform's native DOMException instead node-emoji@2.2.0: resolution: {integrity: sha512-Z3lTE9pLaJF47NyMhd4ww1yFTAP8YhYI8SleJiHzM46Fgpm5cnNzSl9XfzFNqbaz+VlJrIj3fXQ4DeN1Rjm6cw==} @@ -11471,10 +11586,6 @@ packages: resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==} engines: {node: '>= 0.4'} - object-is@1.1.5: - resolution: {integrity: sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==} - engines: {node: '>= 0.4'} - object-is@1.1.6: resolution: {integrity: sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==} engines: {node: '>= 0.4'} @@ -12607,6 +12718,11 @@ packages: peerDependencies: react: ^19.0.0 + react-dom@19.1.0: + resolution: {integrity: sha512-Xs1hdnE+DyKgeHJeJznQmYMIBG3TKIHJJT95Q58nHLSrElKlGQqDTR2HQ9fx5CN/Gk6Vh/kupBTDLU11/nDk/g==} + peerDependencies: + react: ^19.1.0 + react-error-overlay@6.1.0: resolution: {integrity: sha512-SN/U6Ytxf1QGkw/9ve5Y+NxBbZM6Ht95tuXNMKs8EJyFa/Vy/+Co3stop3KBHARfn/giv+Lj1uUnTfOJ3moFEQ==} @@ -12722,6 +12838,10 @@ packages: resolution: {integrity: sha512-V8AVnmPIICiWpGfm6GLzCR/W5FXLchHop40W4nXBmdlEceh16rCN8O8LNWm5bh5XUX91fh7KpA+W0TgMKmgTpQ==} engines: {node: '>=0.10.0'} + react@19.1.0: + resolution: {integrity: sha512-FS+XFBNvn3GTAWq26joslQgWNoFu08F4kl0J4CgdNKADkdSGXQyTCnKteIAJy96Br6YbpEU1LSzV5dYtjMkMDg==} + engines: {node: '>=0.10.0'} + read-cache@1.0.0: resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} @@ -12814,10 +12934,6 @@ packages: resolution: {integrity: sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==} engines: {node: '>= 0.4'} - reflect.getprototypeof@1.0.6: - resolution: {integrity: sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==} - engines: {node: '>= 0.4'} - regenerate-unicode-properties@10.2.0: resolution: {integrity: sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA==} engines: {node: '>=4'} @@ -13240,6 +13356,9 @@ packages: scheduler@0.25.0: resolution: {integrity: sha512-xFVuu11jh+xcO7JOAGJNOXld8/TcEHK/4CituBUeUb5hqxJLj9YuemAEuvm9gQ/+pgXYfbQuqAkiYu+u7YEsNA==} + scheduler@0.26.0: + resolution: {integrity: sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA==} + schema-utils@1.0.0: resolution: {integrity: sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==} engines: {node: '>= 4'} @@ -13424,10 +13543,6 @@ packages: resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==} engines: {node: '>= 0.4'} - side-channel@1.0.6: - resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} - engines: {node: '>= 0.4'} - side-channel@1.1.0: resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==} engines: {node: '>= 0.4'} @@ -13961,6 +14076,9 @@ packages: tabbable@6.2.0: resolution: {integrity: sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==} + tailwind-merge@3.3.1: + resolution: {integrity: sha512-gBXpgUm/3rp1lMZZrM/w7D8GKqshif0zAymAhbCyIt8KMe+0v9DQ7cdYLR4FHH/cKpdTXb+A/tKKU3eolfsI+g==} + tailwindcss@3.4.17: resolution: {integrity: sha512-w33E2aCvSDP0tW9RZuNXadXlkHXqFzSkQew/aIa2i/Sj8fThxwovwlXHSPXTbAHwEIhBFXAedUhP2tueAKP8Og==} engines: {node: '>=14.0.0'} @@ -14325,6 +14443,9 @@ packages: resolution: {integrity: sha512-N9FDOVaY3yz0YCOhYIgOGYad7+m2ptvinXygw27WPLQvcZDl3+0Sa77KGVlLSiuPDChOUEnTKE9VJwLSi9BPGQ==} hasBin: true + tw-animate-css@1.4.0: + resolution: {integrity: sha512-7bziOlRqH0hJx80h/3mbicLW7o8qLsH5+RaLR2t+OHM3D0JlWGODQKQ4cxbK7WlvmUxpcj6Kgu6EKqjrGFe3QQ==} + twoslash-protocol@0.2.12: resolution: {integrity: sha512-5qZLXVYfZ9ABdjqbvPc4RWMr7PrpPaaDSeaYY55vl/w1j6H6kzsWK/urAEIXlzYlyrFmyz1UbwIt+AA0ck+wbg==} @@ -15158,17 +15279,10 @@ packages: resolution: {integrity: sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==} engines: {node: '>= 0.4'} - which-builtin-type@1.1.3: - resolution: {integrity: sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==} - engines: {node: '>= 0.4'} - which-builtin-type@1.2.1: resolution: {integrity: sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==} engines: {node: '>= 0.4'} - which-collection@1.0.1: - resolution: {integrity: sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==} - which-collection@1.0.2: resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==} engines: {node: '>= 0.4'} @@ -17088,10 +17202,10 @@ snapshots: dependencies: ajv: 6.12.6 debug: 4.4.0(supports-color@6.1.0) - espree: 10.2.0 + espree: 10.3.0 globals: 14.0.0 ignore: 5.3.2 - import-fresh: 3.3.0 + import-fresh: 3.3.1 js-yaml: 4.1.0 minimatch: 3.1.2 strip-json-comments: 3.1.1 @@ -18055,7 +18169,7 @@ snapshots: '@jridgewell/trace-mapping@0.3.25': dependencies: '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/sourcemap-codec': 1.5.0 '@jsonjoy.com/base64@1.1.2(tslib@2.8.1)': dependencies: @@ -18438,10 +18552,16 @@ snapshots: '@next/env@15.5.0': {} + '@next/env@15.5.4': {} + '@next/eslint-plugin-next@15.5.0': dependencies: fast-glob: 3.3.1 + '@next/eslint-plugin-next@15.5.4': + dependencies: + fast-glob: 3.3.1 + '@next/mdx@15.5.0(@mdx-js/loader@3.1.0(webpack@5.98.0(esbuild@0.25.1)))(@mdx-js/react@3.1.0(@types/react@19.0.10)(react@19.0.0))': dependencies: source-map: 0.7.4 @@ -18464,6 +18584,9 @@ snapshots: '@next/swc-darwin-arm64@15.5.0': optional: true + '@next/swc-darwin-arm64@15.5.4': + optional: true + '@next/swc-darwin-x64@12.3.4': optional: true @@ -18473,6 +18596,9 @@ snapshots: '@next/swc-darwin-x64@15.5.0': optional: true + '@next/swc-darwin-x64@15.5.4': + optional: true + '@next/swc-freebsd-x64@12.3.4': optional: true @@ -18488,6 +18614,9 @@ snapshots: '@next/swc-linux-arm64-gnu@15.5.0': optional: true + '@next/swc-linux-arm64-gnu@15.5.4': + optional: true + '@next/swc-linux-arm64-musl@12.3.4': optional: true @@ -18497,6 +18626,9 @@ snapshots: '@next/swc-linux-arm64-musl@15.5.0': optional: true + '@next/swc-linux-arm64-musl@15.5.4': + optional: true + '@next/swc-linux-x64-gnu@12.3.4': optional: true @@ -18506,6 +18638,9 @@ snapshots: '@next/swc-linux-x64-gnu@15.5.0': optional: true + '@next/swc-linux-x64-gnu@15.5.4': + optional: true + '@next/swc-linux-x64-musl@12.3.4': optional: true @@ -18515,6 +18650,9 @@ snapshots: '@next/swc-linux-x64-musl@15.5.0': optional: true + '@next/swc-linux-x64-musl@15.5.4': + optional: true + '@next/swc-win32-arm64-msvc@12.3.4': optional: true @@ -18524,6 +18662,9 @@ snapshots: '@next/swc-win32-arm64-msvc@15.5.0': optional: true + '@next/swc-win32-arm64-msvc@15.5.4': + optional: true + '@next/swc-win32-ia32-msvc@12.3.4': optional: true @@ -18539,6 +18680,9 @@ snapshots: '@next/swc-win32-x64-msvc@15.5.0': optional: true + '@next/swc-win32-x64-msvc@15.5.4': + optional: true + '@nodelib/fs.scandir@2.1.5': dependencies: '@nodelib/fs.stat': 2.0.5 @@ -20658,7 +20802,7 @@ snapshots: fast-glob: 3.3.3 is-glob: 4.0.3 minimatch: 9.0.5 - semver: 7.7.1 + semver: 7.7.2 ts-api-utils: 2.0.1(typescript@5.8.2) typescript: 5.8.2 transitivePeerDependencies: @@ -21112,10 +21256,6 @@ snapshots: acorn: 8.14.1 acorn-walk: 8.3.3 - acorn-jsx@5.3.2(acorn@8.13.0): - dependencies: - acorn: 8.13.0 - acorn-jsx@5.3.2(acorn@8.14.1): dependencies: acorn: 8.14.1 @@ -21132,8 +21272,6 @@ snapshots: acorn@8.12.0: {} - acorn@8.13.0: {} - acorn@8.14.0: {} acorn@8.14.1: {} @@ -21325,12 +21463,12 @@ snapshots: array-includes@3.1.8: dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.3 - es-object-atoms: 1.0.0 - get-intrinsic: 1.2.4 - is-string: 1.0.7 + es-abstract: 1.23.9 + es-object-atoms: 1.1.1 + get-intrinsic: 1.3.0 + is-string: 1.1.1 array-iterate@2.0.1: {} @@ -21346,34 +21484,34 @@ snapshots: array.prototype.findlast@1.2.5: dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.3 + es-abstract: 1.23.9 es-errors: 1.3.0 - es-object-atoms: 1.0.0 + es-object-atoms: 1.1.1 es-shim-unscopables: 1.0.2 array.prototype.findlastindex@1.2.5: dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.3 + es-abstract: 1.23.9 es-errors: 1.3.0 - es-object-atoms: 1.0.0 + es-object-atoms: 1.1.1 es-shim-unscopables: 1.0.2 array.prototype.flat@1.3.2: dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.3 + es-abstract: 1.23.9 es-shim-unscopables: 1.0.2 array.prototype.flatmap@1.3.2: dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.3 + es-abstract: 1.23.9 es-shim-unscopables: 1.0.2 array.prototype.reduce@1.0.7: @@ -21388,9 +21526,9 @@ snapshots: array.prototype.tosorted@1.1.4: dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.3 + es-abstract: 1.23.9 es-errors: 1.3.0 es-shim-unscopables: 1.0.2 @@ -22214,6 +22352,10 @@ snapshots: isobject: 3.0.1 static-extend: 0.1.2 + class-variance-authority@0.7.1: + dependencies: + clsx: 2.1.1 + clean-css@4.2.4: dependencies: source-map: 0.6.1 @@ -23163,24 +23305,24 @@ snapshots: deep-equal@2.2.3: dependencies: - array-buffer-byte-length: 1.0.1 - call-bind: 1.0.7 + array-buffer-byte-length: 1.0.2 + call-bind: 1.0.8 es-get-iterator: 1.1.3 - get-intrinsic: 1.2.4 - is-arguments: 1.1.1 - is-array-buffer: 3.0.4 - is-date-object: 1.0.5 - is-regex: 1.1.4 - is-shared-array-buffer: 1.0.3 + get-intrinsic: 1.3.0 + is-arguments: 1.2.0 + is-array-buffer: 3.0.5 + is-date-object: 1.1.0 + is-regex: 1.2.1 + is-shared-array-buffer: 1.0.4 isarray: 2.0.5 - object-is: 1.1.5 + object-is: 1.1.6 object-keys: 1.1.1 - object.assign: 4.1.5 - regexp.prototype.flags: 1.5.2 + object.assign: 4.1.7 + regexp.prototype.flags: 1.5.4 side-channel: 1.1.0 - which-boxed-primitive: 1.0.2 - which-collection: 1.0.1 - which-typed-array: 1.1.15 + which-boxed-primitive: 1.1.1 + which-collection: 1.0.2 + which-typed-array: 1.1.18 deep-extend@0.6.0: {} @@ -23223,11 +23365,6 @@ snapshots: define-lazy-prop@3.0.0: optional: true - define-properties@1.2.0: - dependencies: - has-property-descriptors: 1.0.0 - object-keys: 1.1.1 - define-properties@1.2.1: dependencies: define-data-property: 1.1.4 @@ -23666,32 +23803,32 @@ snapshots: es-get-iterator@1.1.3: dependencies: - call-bind: 1.0.7 - get-intrinsic: 1.2.4 + call-bind: 1.0.8 + get-intrinsic: 1.3.0 has-symbols: 1.1.0 - is-arguments: 1.1.1 - is-map: 2.0.2 - is-set: 2.0.2 - is-string: 1.0.7 + is-arguments: 1.2.0 + is-map: 2.0.3 + is-set: 2.0.3 + is-string: 1.1.1 isarray: 2.0.5 stop-iteration-iterator: 1.0.0 es-iterator-helpers@1.0.19: dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.3 + es-abstract: 1.23.9 es-errors: 1.3.0 - es-set-tostringtag: 2.0.3 + es-set-tostringtag: 2.1.0 function-bind: 1.1.2 - get-intrinsic: 1.2.4 + get-intrinsic: 1.3.0 globalthis: 1.0.4 has-property-descriptors: 1.0.2 - has-proto: 1.0.3 - has-symbols: 1.0.3 - internal-slot: 1.0.7 + has-proto: 1.2.0 + has-symbols: 1.1.0 + internal-slot: 1.1.0 iterator.prototype: 1.1.2 - safe-array-concat: 1.1.2 + safe-array-concat: 1.1.3 es-module-lexer@1.5.3: {} @@ -23731,8 +23868,8 @@ snapshots: es-to-primitive@1.3.0: dependencies: is-callable: 1.2.7 - is-date-object: 1.0.5 - is-symbol: 1.0.4 + is-date-object: 1.1.0 + is-symbol: 1.1.1 esast-util-from-estree@2.0.0: dependencies: @@ -23973,6 +24110,26 @@ snapshots: - eslint-plugin-import-x - supports-color + eslint-config-next@15.5.4(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2): + dependencies: + '@next/eslint-plugin-next': 15.5.4 + '@rushstack/eslint-patch': 1.10.5 + '@typescript-eslint/eslint-plugin': 8.26.1(@typescript-eslint/parser@8.26.1(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2) + '@typescript-eslint/parser': 8.26.1(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2) + eslint: 9.11.1(jiti@2.5.1) + eslint-import-resolver-node: 0.3.9 + eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@8.26.1(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0)(eslint@9.11.1(jiti@2.5.1)) + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.26.1(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint-import-resolver-typescript@3.6.3)(eslint@9.11.1(jiti@2.5.1)) + eslint-plugin-jsx-a11y: 6.10.0(eslint@9.11.1(jiti@2.5.1)) + eslint-plugin-react: 7.37.1(eslint@9.11.1(jiti@2.5.1)) + eslint-plugin-react-hooks: 5.0.0(eslint@9.11.1(jiti@2.5.1)) + optionalDependencies: + typescript: 5.8.2 + transitivePeerDependencies: + - eslint-import-resolver-webpack + - eslint-plugin-import-x + - supports-color + eslint-import-resolver-node@0.3.9: dependencies: debug: 3.2.7(supports-color@6.1.0) @@ -24383,12 +24540,6 @@ snapshots: esm@3.2.25: {} - espree@10.2.0: - dependencies: - acorn: 8.13.0 - acorn-jsx: 5.3.2(acorn@8.13.0) - eslint-visitor-keys: 4.2.0 - espree@10.3.0: dependencies: acorn: 8.14.1 @@ -25375,7 +25526,7 @@ snapshots: globalthis@1.0.4: dependencies: define-properties: 1.2.1 - gopd: 1.0.1 + gopd: 1.2.0 globby@11.0.1: dependencies: @@ -25477,13 +25628,9 @@ snapshots: has-flag@4.0.0: {} - has-property-descriptors@1.0.0: - dependencies: - get-intrinsic: 1.2.4 - has-property-descriptors@1.0.2: dependencies: - es-define-property: 1.0.0 + es-define-property: 1.0.1 has-proto@1.0.1: {} @@ -25503,7 +25650,7 @@ snapshots: has-tostringtag@1.0.2: dependencies: - has-symbols: 1.0.3 + has-symbols: 1.1.0 has-unicode@2.0.1: {} @@ -26121,11 +26268,6 @@ snapshots: is-alphabetical: 2.0.1 is-decimal: 2.0.1 - is-arguments@1.1.1: - dependencies: - call-bind: 1.0.2 - has-tostringtag: 1.0.0 - is-arguments@1.2.0: dependencies: call-bound: 1.0.4 @@ -26186,7 +26328,7 @@ snapshots: is-bun-module@1.2.1: dependencies: - semver: 7.7.1 + semver: 7.7.2 is-callable@1.2.7: {} @@ -26268,10 +26410,6 @@ snapshots: is-extglob@2.1.1: {} - is-finalizationregistry@1.0.2: - dependencies: - call-bind: 1.0.7 - is-finalizationregistry@1.1.1: dependencies: call-bound: 1.0.4 @@ -26317,8 +26455,6 @@ snapshots: is-lambda@1.0.1: {} - is-map@2.0.2: {} - is-map@2.0.3: {} is-module@1.0.0: {} @@ -26394,8 +26530,6 @@ snapshots: is-root@2.1.0: {} - is-set@2.0.2: {} - is-set@2.0.3: {} is-shared-array-buffer@1.0.3: @@ -26457,8 +26591,6 @@ snapshots: dependencies: is-invalid-path: 0.1.0 - is-weakmap@2.0.1: {} - is-weakmap@2.0.2: {} is-weakref@1.0.2: @@ -26469,11 +26601,6 @@ snapshots: dependencies: call-bound: 1.0.4 - is-weakset@2.0.2: - dependencies: - call-bind: 1.0.7 - get-intrinsic: 1.2.4 - is-weakset@2.0.4: dependencies: call-bound: 1.0.4 @@ -26555,9 +26682,9 @@ snapshots: iterator.prototype@1.1.2: dependencies: define-properties: 1.2.1 - get-intrinsic: 1.2.4 - has-symbols: 1.0.3 - reflect.getprototypeof: 1.0.6 + get-intrinsic: 1.3.0 + has-symbols: 1.1.0 + reflect.getprototypeof: 1.0.10 set-function-name: 2.0.2 jackspeak@3.4.0: @@ -27191,7 +27318,7 @@ snapshots: dependencies: array-includes: 3.1.8 array.prototype.flat: 1.3.2 - object.assign: 4.1.5 + object.assign: 4.1.7 object.values: 1.2.0 just-diff-apply@5.5.0: {} @@ -27450,6 +27577,10 @@ snapshots: lru-cache@7.18.3: {} + lucide-react@0.545.0(react@19.1.0): + dependencies: + react: 19.1.0 + lz-string@1.5.0: {} magic-string@0.30.10: @@ -29202,6 +29333,30 @@ snapshots: - '@babel/core' - babel-plugin-macros + next@15.5.4(@playwright/test@1.55.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0): + dependencies: + '@next/env': 15.5.4 + '@swc/helpers': 0.5.15 + caniuse-lite: 1.0.30001704 + postcss: 8.4.31 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + styled-jsx: 5.1.6(react@19.1.0) + optionalDependencies: + '@next/swc-darwin-arm64': 15.5.4 + '@next/swc-darwin-x64': 15.5.4 + '@next/swc-linux-arm64-gnu': 15.5.4 + '@next/swc-linux-arm64-musl': 15.5.4 + '@next/swc-linux-x64-gnu': 15.5.4 + '@next/swc-linux-x64-musl': 15.5.4 + '@next/swc-win32-arm64-msvc': 15.5.4 + '@next/swc-win32-x64-msvc': 15.5.4 + '@playwright/test': 1.55.0 + sharp: 0.34.3 + transitivePeerDependencies: + - '@babel/core' + - babel-plugin-macros + nextra-theme-docs@3.3.1(patch_hash=37qjvtnqoj5dxgzxofrrj6xcdq)(next@14.2.24(@babel/core@7.26.10)(@playwright/test@1.55.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(nextra@3.3.1(@types/react@19.0.10)(acorn@8.14.1)(next@14.2.24(@babel/core@7.26.10)(@playwright/test@1.55.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: '@headlessui/react': 2.2.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -29561,11 +29716,6 @@ snapshots: object-inspect@1.13.4: {} - object-is@1.1.5: - dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - object-is@1.1.6: dependencies: call-bind: 1.0.8 @@ -29595,16 +29745,16 @@ snapshots: object.entries@1.1.8: dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 define-properties: 1.2.1 - es-object-atoms: 1.0.0 + es-object-atoms: 1.1.1 object.fromentries@2.0.8: dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.3 - es-object-atoms: 1.0.0 + es-abstract: 1.23.9 + es-object-atoms: 1.1.1 object.getownpropertydescriptors@2.1.8: dependencies: @@ -29618,9 +29768,9 @@ snapshots: object.groupby@1.0.3: dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.3 + es-abstract: 1.23.9 object.pick@1.3.0: dependencies: @@ -29628,9 +29778,9 @@ snapshots: object.values@1.2.0: dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 define-properties: 1.2.1 - es-object-atoms: 1.0.0 + es-object-atoms: 1.1.1 objectorarray@1.0.5: {} @@ -30795,6 +30945,11 @@ snapshots: react: 19.0.0 scheduler: 0.25.0 + react-dom@19.1.0(react@19.1.0): + dependencies: + react: 19.1.0 + scheduler: 0.26.0 + react-error-overlay@6.1.0: {} react-is@16.13.1: {} @@ -30949,6 +31104,8 @@ snapshots: react@19.0.0: {} + react@19.1.0: {} + read-cache@1.0.0: dependencies: pify: 2.3.0 @@ -31101,16 +31258,6 @@ snapshots: get-proto: 1.0.1 which-builtin-type: 1.2.1 - reflect.getprototypeof@1.0.6: - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-abstract: 1.23.3 - es-errors: 1.3.0 - get-intrinsic: 1.2.4 - globalthis: 1.0.4 - which-builtin-type: 1.1.3 - regenerate-unicode-properties@10.2.0: dependencies: regenerate: 1.4.2 @@ -31440,7 +31587,7 @@ snapshots: resolve@2.0.0-next.5: dependencies: - is-core-module: 2.15.1 + is-core-module: 2.16.1 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 @@ -31654,6 +31801,8 @@ snapshots: scheduler@0.25.0: {} + scheduler@0.26.0: {} + schema-utils@1.0.0: dependencies: ajv: 6.12.6 @@ -31796,7 +31945,7 @@ snapshots: define-data-property: 1.1.4 es-errors: 1.3.0 function-bind: 1.1.2 - get-intrinsic: 1.2.4 + get-intrinsic: 1.3.0 gopd: 1.2.0 has-property-descriptors: 1.0.2 @@ -31938,13 +32087,6 @@ snapshots: object-inspect: 1.13.4 side-channel-map: 1.0.1 - side-channel@1.0.6: - dependencies: - call-bind: 1.0.7 - es-errors: 1.3.0 - get-intrinsic: 1.2.4 - object-inspect: 1.13.4 - side-channel@1.1.0: dependencies: es-errors: 1.3.0 @@ -32219,7 +32361,7 @@ snapshots: stop-iteration-iterator@1.0.0: dependencies: - internal-slot: 1.0.7 + internal-slot: 1.1.0 storybook-i18n@3.1.1: {} @@ -32309,29 +32451,29 @@ snapshots: string.prototype.includes@2.0.1: dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.3 + es-abstract: 1.23.9 string.prototype.matchall@4.0.11: dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.3 + es-abstract: 1.23.9 es-errors: 1.3.0 - es-object-atoms: 1.0.0 - get-intrinsic: 1.2.4 - gopd: 1.0.1 - has-symbols: 1.0.3 - internal-slot: 1.0.7 - regexp.prototype.flags: 1.5.2 + es-object-atoms: 1.1.1 + get-intrinsic: 1.3.0 + gopd: 1.2.0 + has-symbols: 1.1.0 + internal-slot: 1.1.0 + regexp.prototype.flags: 1.5.4 set-function-name: 2.0.2 - side-channel: 1.0.6 + side-channel: 1.1.0 string.prototype.repeat@1.0.0: dependencies: define-properties: 1.2.1 - es-abstract: 1.23.3 + es-abstract: 1.23.9 string.prototype.trim@1.2.10: dependencies: @@ -32365,9 +32507,9 @@ snapshots: string.prototype.trimstart@1.0.8: dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 define-properties: 1.2.1 - es-object-atoms: 1.0.0 + es-object-atoms: 1.1.1 string_decoder@1.1.1: dependencies: @@ -32472,6 +32614,11 @@ snapshots: optionalDependencies: '@babel/core': 7.26.10 + styled-jsx@5.1.6(react@19.1.0): + dependencies: + client-only: 0.0.1 + react: 19.1.0 + stylehacks@4.0.3: dependencies: browserslist: 4.24.4 @@ -32552,6 +32699,8 @@ snapshots: tabbable@6.2.0: {} + tailwind-merge@3.3.1: {} + tailwindcss@3.4.17: dependencies: '@alloc/quick-lru': 5.2.0 @@ -32944,6 +33093,8 @@ snapshots: turbo-windows-64: 2.4.4 turbo-windows-arm64: 2.4.4 + tw-animate-css@1.4.0: {} + twoslash-protocol@0.2.12: {} twoslash@0.2.12(typescript@5.8.2): @@ -33048,7 +33199,7 @@ snapshots: gopd: 1.2.0 is-typed-array: 1.1.15 possible-typed-array-names: 1.0.0 - reflect.getprototypeof: 1.0.6 + reflect.getprototypeof: 1.0.10 typedarray.prototype.slice@1.0.5: dependencies: @@ -34052,44 +34203,22 @@ snapshots: is-string: 1.1.1 is-symbol: 1.1.1 - which-builtin-type@1.1.3: - dependencies: - function.prototype.name: 1.1.6 - has-tostringtag: 1.0.2 - is-async-function: 2.0.0 - is-date-object: 1.0.5 - is-finalizationregistry: 1.0.2 - is-generator-function: 1.1.0 - is-regex: 1.1.4 - is-weakref: 1.0.2 - isarray: 2.0.5 - which-boxed-primitive: 1.0.2 - which-collection: 1.0.1 - which-typed-array: 1.1.18 - which-builtin-type@1.2.1: dependencies: call-bound: 1.0.4 - function.prototype.name: 1.1.6 + function.prototype.name: 1.1.8 has-tostringtag: 1.0.2 is-async-function: 2.0.0 is-date-object: 1.1.0 is-finalizationregistry: 1.1.1 is-generator-function: 1.1.0 is-regex: 1.2.1 - is-weakref: 1.0.2 + is-weakref: 1.1.1 isarray: 2.0.5 which-boxed-primitive: 1.1.1 which-collection: 1.0.2 which-typed-array: 1.1.18 - which-collection@1.0.1: - dependencies: - is-map: 2.0.2 - is-set: 2.0.2 - is-weakmap: 2.0.1 - is-weakset: 2.0.2 - which-collection@1.0.2: dependencies: is-map: 2.0.3 diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 10da0f192..fd2a127f1 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -3,3 +3,4 @@ packages: - 'examples/*' - 'docs' - 'tools' + - 'playground' \ No newline at end of file From 3ce39579b32a41d89ba11e27a4394cf66ba0fc68 Mon Sep 17 00:00:00 2001 From: Adebesin Tolulope Date: Sat, 18 Oct 2025 12:22:45 +0100 Subject: [PATCH 5/8] feat: Add new components and update dependencies --- playground/package.json | 3 + .../src/app/_components/client-providers.tsx | 17 ++ .../src/app/_components/link-status.tsx | 10 + .../app/_components/playground-boundary.tsx | 36 +++ .../src/app/_components/playground-byline.tsx | 37 +++ .../app/_components/playground-sidebar.tsx | 155 ++++++++++++ .../src/app/_components/theme-toggle.tsx | 20 ++ playground/src/app/assets/logo.tsx | 70 ++++++ playground/src/app/assets/navigations.ts | 94 +++++++ playground/src/app/globals.css | 230 ++++++++++-------- playground/src/app/layout.tsx | 26 +- playground/src/app/page.tsx | 144 ++++------- playground/src/components/ui/button.tsx | 60 +++++ playground/src/components/ui/scroll-area.tsx | 58 +++++ pnpm-lock.yaml | 190 +++++++++++++++ 15 files changed, 942 insertions(+), 208 deletions(-) create mode 100644 playground/src/app/_components/client-providers.tsx create mode 100644 playground/src/app/_components/link-status.tsx create mode 100644 playground/src/app/_components/playground-boundary.tsx create mode 100644 playground/src/app/_components/playground-byline.tsx create mode 100644 playground/src/app/_components/playground-sidebar.tsx create mode 100644 playground/src/app/_components/theme-toggle.tsx create mode 100644 playground/src/app/assets/logo.tsx create mode 100644 playground/src/app/assets/navigations.ts create mode 100644 playground/src/components/ui/button.tsx create mode 100644 playground/src/components/ui/scroll-area.tsx diff --git a/playground/package.json b/playground/package.json index 143a789be..df3c36087 100644 --- a/playground/package.json +++ b/playground/package.json @@ -9,10 +9,13 @@ "lint": "eslint" }, "dependencies": { + "@radix-ui/react-scroll-area": "^1.2.10", + "@radix-ui/react-slot": "^1.2.3", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", "lucide-react": "^0.545.0", "next": "15.5.4", + "next-themes": "^0.4.6", "react": "19.1.0", "react-dom": "19.1.0", "tailwind-merge": "^3.3.1" diff --git a/playground/src/app/_components/client-providers.tsx b/playground/src/app/_components/client-providers.tsx new file mode 100644 index 000000000..87863386e --- /dev/null +++ b/playground/src/app/_components/client-providers.tsx @@ -0,0 +1,17 @@ +"use client"; + +import { ThemeProvider } from "next-themes"; +import React from "react"; + +export const ClientProviders = ({ children }: { children: React.ReactNode }) => { + return ( + + {children} + + ); +}; diff --git a/playground/src/app/_components/link-status.tsx b/playground/src/app/_components/link-status.tsx new file mode 100644 index 000000000..439c04e34 --- /dev/null +++ b/playground/src/app/_components/link-status.tsx @@ -0,0 +1,10 @@ +'use client'; + +import { useLinkStatus } from 'next/link'; + +export function LinkStatus() { + const { pending } = useLinkStatus(); + return pending ? ( +
+ ) : null; +} \ No newline at end of file diff --git a/playground/src/app/_components/playground-boundary.tsx b/playground/src/app/_components/playground-boundary.tsx new file mode 100644 index 000000000..b9e3fcbcc --- /dev/null +++ b/playground/src/app/_components/playground-boundary.tsx @@ -0,0 +1,36 @@ +import clsx from "clsx"; +import type React from "react"; + +export const PlaygroundBoundary = ({ + children, + label, + className, +}: { + children: React.ReactNode; + label?: string | string[]; + className?: string; +}) => { + return ( +
+ {label && ( +
+ {(typeof label === "string" ? [label] : label).map((text) => ( + + {text} + + ))} +
+ )} + + {children} +
+ ); +}; diff --git a/playground/src/app/_components/playground-byline.tsx b/playground/src/app/_components/playground-byline.tsx new file mode 100644 index 000000000..c7383c877 --- /dev/null +++ b/playground/src/app/_components/playground-byline.tsx @@ -0,0 +1,37 @@ +import { PlaygroundBoundary } from "./playground-boundary"; + + +export default function PlaygroundByline() { + return ( + + + + ); +} diff --git a/playground/src/app/_components/playground-sidebar.tsx b/playground/src/app/_components/playground-sidebar.tsx new file mode 100644 index 000000000..8dbe8c6f1 --- /dev/null +++ b/playground/src/app/_components/playground-sidebar.tsx @@ -0,0 +1,155 @@ +"use client"; + +import clsx from "clsx"; +import { Menu, X } from "lucide-react"; +import Link from "next/link"; +import { usePathname } from "next/navigation"; +import { Suspense, useState } from "react"; +import { ScrollArea } from "@/components/ui/scroll-area"; +import { Button } from "@/components/ui/button"; +import { ThemeToggle } from "./theme-toggle"; +import { LinkStatus } from "./link-status"; +import { Logo } from "../assets/logo"; + + +const sections = [ + { + title: "Translations", + items: [ + { title: "Basic usage", slug: "/translations/basic" }, + { title: "Async server components", slug: "/translations/async" }, + { title: "ICU features", slug: "/translations/icu" }, + ], + }, + { + title: "Formatting", + items: [ + { title: "Numbers", slug: "/formatting/numbers" }, + { title: "Dates", slug: "/formatting/dates" }, + { title: "Lists", slug: "/formatting/lists" }, + ], + }, + { + title: "Routing", + items: [ + { title: "Basic routing", slug: "/routing/basic" }, + { title: "Locale-based routing", slug: "/routing/locale" }, + ], + }, + { + title: "Patterns", + items: [ + { title: "Locale switcher", slug: "/patterns/locale-switcher" }, + { title: "Server Actions", slug: "/patterns/server-actions" }, + { title: "Metadata", slug: "/patterns/metadata" }, + { title: "Error files", slug: "/patterns/error-files" }, + ], + }, +]; + +export function PlaygroundSidebar() { + const [isOpen, setIsOpen] = useState(false); + const pathname = usePathname(); + const close = () => setIsOpen(false); + + return ( +
+
+ +

+ Playground +

+ +
+ + +
+
+ +
+ + + +
+
+ ); +} + +function NavItem({ + item, + isActive, + close, +}: { + item: { title: string; slug: string }; + isActive: boolean; + close: () => void; +}) { + return ( + + {item.title} + + + ); +} diff --git a/playground/src/app/_components/theme-toggle.tsx b/playground/src/app/_components/theme-toggle.tsx new file mode 100644 index 000000000..a9764f7f1 --- /dev/null +++ b/playground/src/app/_components/theme-toggle.tsx @@ -0,0 +1,20 @@ +import { Button } from "@/components/ui/button"; +import { Moon, Sun } from "lucide-react"; +import { useTheme } from "next-themes"; + +export function ThemeToggle() { + const { theme, setTheme } = useTheme(); + const isDark = theme === "dark"; + + return ( + + ); +} diff --git a/playground/src/app/assets/logo.tsx b/playground/src/app/assets/logo.tsx new file mode 100644 index 000000000..167cf1bca --- /dev/null +++ b/playground/src/app/assets/logo.tsx @@ -0,0 +1,70 @@ + +export function Logo({ className = "w-12 h-12" }: { className?: string }) { + return ( + + + + + + + + + + + {/* Dark mode version */} + + + + + + + + + + ); +} diff --git a/playground/src/app/assets/navigations.ts b/playground/src/app/assets/navigations.ts new file mode 100644 index 000000000..3815c9608 --- /dev/null +++ b/playground/src/app/assets/navigations.ts @@ -0,0 +1,94 @@ +export const sections = [ + { + title: "Translations", + items: [ + { + title: "Basic usage", + slug: "/translations/basic", + description: + "Learn how to render simple translations using next-intl in your components.", + }, + { + title: "Async server components", + slug: "/translations/async", + description: + "Use translations inside async server components and fetch locale-specific messages.", + }, + { + title: "ICU features", + slug: "/translations/icu", + description: + "Advanced translations using ICU syntax for plurals, gender, and more.", + }, + ], + }, + { + title: "Formatting", + items: [ + { + title: "Numbers", + slug: "/formatting/numbers", + description: + "Format numbers based on locale, including currency and percentages.", + }, + { + title: "Dates", + slug: "/formatting/dates", + description: + "Format dates and times according to the user’s locale and preferences.", + }, + { + title: "Lists", + slug: "/formatting/lists", + description: + "Display lists with proper conjunctions, commas, and locale-specific formatting.", + }, + ], + }, + { + title: "Routing", + items: [ + { + title: "Basic routing", + slug: "/routing/basic", + description: + "Learn how to set up pages without locale-based routing.", + }, + { + title: "Locale-based routing", + slug: "/routing/locale", + description: + "Configure locale-specific routes so users see URLs in their language.", + }, + ], + }, + { + title: "Patterns", + items: [ + { + title: "Locale switcher", + slug: "/patterns/locale-switcher", + description: + "Implement a UI component that allows users to switch between locales.", + }, + { + title: "Server Actions", + slug: "/patterns/server-actions", + description: + "Handle locale-aware actions on the server for better i18n support.", + }, + { + title: "Metadata", + slug: "/patterns/metadata", + description: + "Set dynamic metadata (title, description) per locale for SEO.", + }, + { + title: "Error files", + slug: "/patterns/error-files", + description: + "Use localized error pages for different routes and languages.", + }, + ], + }, +]; \ No newline at end of file diff --git a/playground/src/app/globals.css b/playground/src/app/globals.css index dc98be74c..56c22a039 100644 --- a/playground/src/app/globals.css +++ b/playground/src/app/globals.css @@ -1,115 +1,141 @@ -@import "tailwindcss"; -@import "tw-animate-css"; +@import 'tailwindcss'; +@import 'tw-animate-css'; @custom-variant dark (&:is(.dark *)); - @theme inline { + /* System base */ --color-background: var(--background); - --color-foreground: var(--foreground); - --font-sans: var(--font-geist-sans); - --font-mono: var(--font-geist-mono); - --color-sidebar-ring: var(--sidebar-ring); - --color-sidebar-border: var(--sidebar-border); - --color-sidebar-accent-foreground: var(--sidebar-accent-foreground); - --color-sidebar-accent: var(--sidebar-accent); - --color-sidebar-primary-foreground: var(--sidebar-primary-foreground); - --color-sidebar-primary: var(--sidebar-primary); - --color-sidebar-foreground: var(--sidebar-foreground); - --color-sidebar: var(--sidebar); - --color-chart-5: var(--chart-5); - --color-chart-4: var(--chart-4); - --color-chart-3: var(--chart-3); - --color-chart-2: var(--chart-2); - --color-chart-1: var(--chart-1); - --color-ring: var(--ring); - --color-input: var(--input); + --color-foreground: var(--foreground); /* Semantic colors */ --color-border: var(--border); - --color-destructive: var(--destructive); - --color-accent-foreground: var(--accent-foreground); + --color-input: var(--input); + --color-ring: var(--ring); + --color-primary: var(--primary); + --color-primary-foreground: var(--primary-foreground); + --color-secondary: var(--secondary); + --color-secondary-foreground: var(--secondary-foreground); --color-accent: var(--accent); - --color-muted-foreground: var(--muted-foreground); + --color-accent-foreground: var(--accent-foreground); --color-muted: var(--muted); - --color-secondary-foreground: var(--secondary-foreground); - --color-secondary: var(--secondary); - --color-primary-foreground: var(--primary-foreground); - --color-primary: var(--primary); - --color-popover-foreground: var(--popover-foreground); - --color-popover: var(--popover); - --color-card-foreground: var(--card-foreground); + --color-muted-foreground: var(--muted-foreground); + --color-destructive: var(--destructive); + --color-destructive-foreground: var(--destructive-foreground); --color-card: var(--card); - --radius-sm: calc(var(--radius) - 4px); - --radius-md: calc(var(--radius) - 2px); - --radius-lg: var(--radius); - --radius-xl: calc(var(--radius) + 4px); + --color-card-foreground: var(--card-foreground); + --color-popover: var(--popover); + --color-popover-foreground: var(--popover-foreground); /* Sidebar */ + --color-sidebar: var(--sidebar); + --color-sidebar-foreground: var(--sidebar-foreground); + --color-sidebar-primary: var(--sidebar-primary); + --color-sidebar-primary-foreground: var(--sidebar-primary-foreground); + --color-sidebar-accent: var(--sidebar-accent); + --color-sidebar-accent-foreground: var(--sidebar-accent-foreground); + --color-sidebar-border: var(--sidebar-border); + --color-sidebar-ring: var(--sidebar-ring); /* Charts */ + --color-chart-1: var(--chart-1); + --color-chart-2: var(--chart-2); + --color-chart-3: var(--chart-3); + --color-chart-4: var(--chart-4); + --color-chart-5: var(--chart-5); /* Gray scale */ + --color-gray-50: var(--gray-50); + --color-gray-100: var(--gray-100); + --color-gray-200: var(--gray-200); + --color-gray-300: var(--gray-300); + --color-gray-400: var(--gray-400); + --color-gray-500: var(--gray-500); + --color-gray-600: var(--gray-600); + --color-gray-700: var(--gray-700); + --color-gray-800: var(--gray-800); + --color-gray-900: var(--gray-900); /* Blues */ + --color-blue-300: var(--blue-300); + --color-blue-700: var(--blue-700); /* White */ + --color-white: var(--white); /* Font */ + --font-mono: + Monaco, ui-monospace, SFMono-Regular, Menlo, Consolas, Liberation Mono, + Courier New, monospace; } :root { - --radius: 0.625rem; - --background: oklch(1 0 0); - --foreground: oklch(0.145 0 0); - --card: oklch(1 0 0); - --card-foreground: oklch(0.145 0 0); - --popover: oklch(1 0 0); - --popover-foreground: oklch(0.145 0 0); - --primary: oklch(0.205 0 0); - --primary-foreground: oklch(0.985 0 0); - --secondary: oklch(0.97 0 0); - --secondary-foreground: oklch(0.205 0 0); - --muted: oklch(0.97 0 0); - --muted-foreground: oklch(0.556 0 0); - --accent: oklch(0.97 0 0); - --accent-foreground: oklch(0.205 0 0); - --destructive: oklch(0.577 0.245 27.325); - --border: oklch(0.922 0 0); - --input: oklch(0.922 0 0); - --ring: oklch(0.708 0 0); - --chart-1: oklch(0.646 0.222 41.116); - --chart-2: oklch(0.6 0.118 184.704); - --chart-3: oklch(0.398 0.07 227.392); - --chart-4: oklch(0.828 0.189 84.429); - --chart-5: oklch(0.769 0.188 70.08); - --sidebar: oklch(0.985 0 0); - --sidebar-foreground: oklch(0.145 0 0); - --sidebar-primary: oklch(0.205 0 0); - --sidebar-primary-foreground: oklch(0.985 0 0); - --sidebar-accent: oklch(0.97 0 0); - --sidebar-accent-foreground: oklch(0.205 0 0); - --sidebar-border: oklch(0.922 0 0); - --sidebar-ring: oklch(0.708 0 0); + /* Gray scale */ + --gray-50: oklch(0.984 0.001 264.5); + --gray-100: oklch(0.956 0.001 264.5); + --gray-200: oklch(0.89 0.002 264.5); + --gray-300: oklch(0.78 0.007 264.5); + --gray-400: oklch(0.69 0.013 264.5); + --gray-500: oklch(0.59 0.016 264.5); + --gray-600: oklch(0.51 0.019 264.5); + --gray-700: oklch(0.41 0.019 264.5); + --gray-800: oklch(0.31 0.018 264.5); + --gray-900: oklch(0.19 0.015 264.5); /* Blues */ + --blue-300: oklch(0.85 0.15 228); + --blue-700: oklch(0.56 0.14 228); /* White */ + --white: oklch(1 0 0); /* Default light theme values */ + --background: var(--gray-50); + --foreground: var(--gray-900); + --card: var(--white); + --card-foreground: var(--gray-900); + --popover: var(--white); + --popover-foreground: var(--gray-900); + --primary: var(--blue-700); + --primary-foreground: var(--white); + --secondary: var(--gray-200); + --secondary-foreground: var(--gray-900); + --muted: var(--gray-200); + --muted-foreground: var(--gray-600); + --accent: var(--blue-300); + --accent-foreground: var(--gray-900); + --destructive: oklch(0.62 0.25 25); + --destructive-foreground: var(--white); + --border: var(--gray-200); + --input: var(--gray-200); + --ring: var(--blue-700); + --chart-1: var(--blue-700); + --chart-2: oklch(0.7 0.17 162.48); + --chart-3: oklch(0.76 0.19 70.08); + --chart-4: oklch(0.63 0.26 303.9); + --chart-5: oklch(0.65 0.25 16.4); + --sidebar: var(--gray-50); + --sidebar-foreground: var(--gray-900); + --sidebar-primary: var(--blue-700); + --sidebar-primary-foreground: var(--white); + --sidebar-accent: var(--gray-200); + --sidebar-accent-foreground: var(--gray-900); + --sidebar-border: var(--gray-200); + --sidebar-ring: var(--blue-700); } - .dark { - --background: oklch(0.145 0 0); - --foreground: oklch(0.985 0 0); - --card: oklch(0.205 0 0); - --card-foreground: oklch(0.985 0 0); - --popover: oklch(0.205 0 0); - --popover-foreground: oklch(0.985 0 0); - --primary: oklch(0.922 0 0); - --primary-foreground: oklch(0.205 0 0); - --secondary: oklch(0.269 0 0); - --secondary-foreground: oklch(0.985 0 0); - --muted: oklch(0.269 0 0); - --muted-foreground: oklch(0.708 0 0); - --accent: oklch(0.269 0 0); - --accent-foreground: oklch(0.985 0 0); - --destructive: oklch(0.704 0.191 22.216); - --border: oklch(1 0 0 / 10%); - --input: oklch(1 0 0 / 15%); - --ring: oklch(0.556 0 0); - --chart-1: oklch(0.488 0.243 264.376); - --chart-2: oklch(0.696 0.17 162.48); - --chart-3: oklch(0.769 0.188 70.08); - --chart-4: oklch(0.627 0.265 303.9); - --chart-5: oklch(0.645 0.246 16.439); - --sidebar: oklch(0.205 0 0); - --sidebar-foreground: oklch(0.985 0 0); - --sidebar-primary: oklch(0.488 0.243 264.376); - --sidebar-primary-foreground: oklch(0.985 0 0); - --sidebar-accent: oklch(0.269 0 0); - --sidebar-accent-foreground: oklch(0.985 0 0); - --sidebar-border: oklch(1 0 0 / 10%); - --sidebar-ring: oklch(0.556 0 0); + /* Surfaces */ + --background: var(--gray-900); + --foreground: var(--gray-50); + --card: var(--gray-800); + --card-foreground: var(--gray-50); + --popover: var(--gray-800); + --popover-foreground: var(--gray-50); /* Brand */ + --primary: var(--blue-300); + --primary-foreground: var(--gray-900); + --secondary: var(--gray-700); + --secondary-foreground: var(--gray-50); /* Semantic */ + --muted: var(--gray-700); + --muted-foreground: var(--gray-300); + --accent: var(--blue-700); + --accent-foreground: var(--gray-50); + --destructive: oklch(0.58 0.2 30); + --destructive-foreground: var(--gray-50); /* Borders & inputs */ + --border: var(--gray-700); + --input: var(--gray-700); + --ring: var(--blue-300); /* Charts (reversed for contrast) */ + --chart-1: var(--blue-300); + --chart-2: oklch(0.7 0.17 162.48); + --chart-3: oklch(0.76 0.19 70.08); + --chart-4: oklch(0.63 0.26 303.9); + --chart-5: oklch(0.65 0.25 16.4); /* Sidebar */ + --sidebar: var(--gray-900); + --sidebar-foreground: var(--gray-50); + --sidebar-primary: var(--blue-300); + --sidebar-primary-foreground: var(--gray-900); + --sidebar-accent: var(--gray-700); + --sidebar-accent-foreground: var(--gray-50); + --sidebar-border: var(--gray-700); + --sidebar-ring: var(--blue-300); } @layer base { @@ -120,3 +146,9 @@ @apply bg-background text-foreground; } } +@layer base { + button:not([disabled]), + [role='button']:not([disabled]) { + cursor: pointer; + } +} diff --git a/playground/src/app/layout.tsx b/playground/src/app/layout.tsx index f7fa87eb8..8366493e0 100644 --- a/playground/src/app/layout.tsx +++ b/playground/src/app/layout.tsx @@ -1,6 +1,9 @@ import type { Metadata } from "next"; import { Geist, Geist_Mono } from "next/font/google"; import "./globals.css"; +import { PlaygroundSidebar } from "./_components/playground-sidebar"; +import PlaygroundByline from "./_components/playground-byline"; +import { ClientProviders } from "./_components/client-providers"; const geistSans = Geist({ variable: "--font-geist-sans", @@ -17,18 +20,21 @@ export const metadata: Metadata = { description: "Generated by create next app", }; -export default function RootLayout({ - children, -}: Readonly<{ - children: React.ReactNode; -}>) { +export default function RootLayout({ children }: { children: React.ReactNode }) { return ( - - - {children} + + + + +
+
+ {children} + +
+
+
); } + diff --git a/playground/src/app/page.tsx b/playground/src/app/page.tsx index a93289420..1e784a1df 100644 --- a/playground/src/app/page.tsx +++ b/playground/src/app/page.tsx @@ -1,103 +1,49 @@ -import Image from "next/image"; +import Link from "next/link"; +import { PlaygroundBoundary } from "./_components/playground-boundary"; +import { sections } from "./assets/navigations"; +import { LinkStatus } from "./_components/link-status"; export default function Home() { - return ( -
-
- Next.js logo -
    -
  1. - Get started by editing{" "} - - src/app/page.tsx - - . -
  2. -
  3. - Save and see your changes instantly. -
  4. -
+ return ( +
+
+

+ Welcome to the next-intl Playground +

+

+ Explore translations, formatting, routing, and patterns using Next.js + and next-intl. +

+
+ + {sections.map((section) => ( +
+
+ {section.title} +
- -
- -
- ); +
+ {section.items.map((item) => ( + +
+ {item.title} +
+ + {item.description && ( +
+ {item.description} +
+ )} + + ))} +
+
+ ))} + +
+ ); } diff --git a/playground/src/components/ui/button.tsx b/playground/src/components/ui/button.tsx new file mode 100644 index 000000000..21409a066 --- /dev/null +++ b/playground/src/components/ui/button.tsx @@ -0,0 +1,60 @@ +import * as React from "react" +import { Slot } from "@radix-ui/react-slot" +import { cva, type VariantProps } from "class-variance-authority" + +import { cn } from "@/lib/utils" + +const buttonVariants = cva( + "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive", + { + variants: { + variant: { + default: "bg-primary text-primary-foreground hover:bg-primary/90", + destructive: + "bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60", + outline: + "border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50", + secondary: + "bg-secondary text-secondary-foreground hover:bg-secondary/80", + ghost: + "hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50", + link: "text-primary underline-offset-4 hover:underline", + }, + size: { + default: "h-9 px-4 py-2 has-[>svg]:px-3", + sm: "h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5", + lg: "h-10 rounded-md px-6 has-[>svg]:px-4", + icon: "size-9", + "icon-sm": "size-8", + "icon-lg": "size-10", + }, + }, + defaultVariants: { + variant: "default", + size: "default", + }, + } +) + +function Button({ + className, + variant, + size, + asChild = false, + ...props +}: React.ComponentProps<"button"> & + VariantProps & { + asChild?: boolean + }) { + const Comp = asChild ? Slot : "button" + + return ( + + ) +} + +export { Button, buttonVariants } diff --git a/playground/src/components/ui/scroll-area.tsx b/playground/src/components/ui/scroll-area.tsx new file mode 100644 index 000000000..8e4fa13f6 --- /dev/null +++ b/playground/src/components/ui/scroll-area.tsx @@ -0,0 +1,58 @@ +"use client" + +import * as React from "react" +import * as ScrollAreaPrimitive from "@radix-ui/react-scroll-area" + +import { cn } from "@/lib/utils" + +function ScrollArea({ + className, + children, + ...props +}: React.ComponentProps) { + return ( + + + {children} + + + + + ) +} + +function ScrollBar({ + className, + orientation = "vertical", + ...props +}: React.ComponentProps) { + return ( + + + + ) +} + +export { ScrollArea, ScrollBar } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5ad298acf..ec3e3e9e4 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -987,6 +987,12 @@ importers: playground: dependencies: + '@radix-ui/react-scroll-area': + specifier: ^1.2.10 + version: 1.2.10(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-slot': + specifier: ^1.2.3 + version: 1.2.3(@types/react@19.0.10)(react@19.1.0) class-variance-authority: specifier: ^0.7.1 version: 0.7.1 @@ -999,6 +1005,9 @@ importers: next: specifier: 15.5.4 version: 15.5.4(@playwright/test@1.55.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + next-themes: + specifier: ^0.4.6 + version: 0.4.6(react-dom@19.1.0(react@19.1.0))(react@19.1.0) react: specifier: 19.1.0 version: 19.1.0 @@ -3889,9 +3898,15 @@ packages: '@radix-ui/number@1.1.0': resolution: {integrity: sha512-V3gRzhVNU1ldS5XhAPTom1fOIo4ccrjjJgmE+LI2h/WaFpHmx0MQApT+KZHnx8abG6Avtfcz4WoEciMnpFT3HQ==} + '@radix-ui/number@1.1.1': + resolution: {integrity: sha512-MkKCwxlXTgz6CFoJx3pCwn07GKp36+aZyu/u2Ln2VrA5DcdyCZkASEDBTd8x5whTQQL5CiYf4prXKLcgQdv29g==} + '@radix-ui/primitive@1.1.1': resolution: {integrity: sha512-SJ31y+Q/zAyShtXJc8x83i9TYdbAfHZ++tUZnvjJJqFjzsdUnKsxPL6IEtBlxKkU7yzer//GQtZSV4GbldL3YA==} + '@radix-ui/primitive@1.1.3': + resolution: {integrity: sha512-JTF99U/6XIjCBo0wqkU5sK10glYe27MRRsfwoiq5zzOEZLHU3A3KCMa5X/azekYRCJ0HlwI0crAXS/5dEHTzDg==} + '@radix-ui/react-arrow@1.1.2': resolution: {integrity: sha512-G+KcpzXHq24iH0uGG/pF8LyzpFJYGD4RfLjCIBfGdSLXvjLHST31RUiRVrupIBMvIppMgSzQ6l66iAxl03tdlg==} peerDependencies: @@ -3927,6 +3942,15 @@ packages: '@types/react': optional: true + '@radix-ui/react-compose-refs@1.1.2': + resolution: {integrity: sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@radix-ui/react-context@1.1.1': resolution: {integrity: sha512-UASk9zi+crv9WteK/NU4PLvOoL3OuE6BWVKNF6hPRBtYBDXQ2u5iu3O59zUlJiTVvkyuycnqrztsHVJwcK9K+Q==} peerDependencies: @@ -3936,6 +3960,15 @@ packages: '@types/react': optional: true + '@radix-ui/react-context@1.1.2': + resolution: {integrity: sha512-jCi/QKUM2r1Ju5a3J64TH2A5SpKAgh0LpknyqdQ4m6DCV0xJ2HG1xARRwNGPQfi1SLdLWZ1OJz6F4OMBBNiGJA==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@radix-ui/react-direction@1.1.0': resolution: {integrity: sha512-BUuBvgThEiAXh2DWu93XsT+a3aWrGqolGlqqw5VU1kG7p/ZH2cuDlM1sRLNnY3QcBS69UIz2mcKhMxDsdewhjg==} peerDependencies: @@ -3945,6 +3978,15 @@ packages: '@types/react': optional: true + '@radix-ui/react-direction@1.1.1': + resolution: {integrity: sha512-1UEWRX6jnOA2y4H5WczZ44gOOjTEmlqv1uNW4GAJEO5+bauCBhv8snY65Iw5/VOS/ghKN9gr2KjnLKxrsvoMVw==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@radix-ui/react-dismissable-layer@1.1.5': resolution: {integrity: sha512-E4TywXY6UsXNRhFrECa5HAvE5/4BFcGyfTyK36gP+pAW1ed7UTK4vKwdr53gAJYwqbfCWC6ATvJa3J3R/9+Qrg==} peerDependencies: @@ -4054,6 +4096,19 @@ packages: '@types/react-dom': optional: true + '@radix-ui/react-presence@1.1.5': + resolution: {integrity: sha512-/jfEwNDdQVBCNvjkGit4h6pMOzq8bHkopq458dPt2lMjx+eBQUohZNG9A7DtO/O5ukSbxuaNGXMjHicgwy6rQQ==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + '@radix-ui/react-primitive@2.0.2': resolution: {integrity: sha512-Ec/0d38EIuvDF+GZjcMU/Ze6MxntVJYO/fRlCPhCaVUyPY9WTalHJw54tp9sXeJo3tlShWpy41vQRgLRGOuz+w==} peerDependencies: @@ -4067,6 +4122,19 @@ packages: '@types/react-dom': optional: true + '@radix-ui/react-primitive@2.1.3': + resolution: {integrity: sha512-m9gTwRkhy2lvCPe6QJp4d3G1TYEUHn/FzJUtq9MjH46an1wJU+GdoGC5VLof8RX8Ft/DlpshApkhswDLZzHIcQ==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + '@radix-ui/react-roving-focus@1.1.2': resolution: {integrity: sha512-zgMQWkNO169GtGqRvYrzb0Zf8NhMHS2DuEB/TiEmVnpr5OqPU3i8lfbxaAmC2J/KYuIQxyoQQ6DxepyXp61/xw==} peerDependencies: @@ -4080,6 +4148,19 @@ packages: '@types/react-dom': optional: true + '@radix-ui/react-scroll-area@1.2.10': + resolution: {integrity: sha512-tAXIa1g3sM5CGpVT0uIbUx/U3Gs5N8T52IICuCtObaos1S8fzsrPXG5WObkQN3S6NVl6wKgPhAIiBGbWnvc97A==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + '@radix-ui/react-select@2.1.6': resolution: {integrity: sha512-T6ajELxRvTuAMWH0YmRJ1qez+x4/7Nq7QIx7zJ0VK3qaEWdnWpNbEDnmWldG1zBDwqrLy5aLMUWcoGirVj5kMg==} peerDependencies: @@ -4102,6 +4183,15 @@ packages: '@types/react': optional: true + '@radix-ui/react-slot@1.2.3': + resolution: {integrity: sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@radix-ui/react-use-callback-ref@1.1.0': resolution: {integrity: sha512-CasTfvsy+frcFkbXtSJ2Zu9JHpN8TYKxkgJGWbjiZhFivxaeW7rMeZt7QELGVLaYVfFMsKHjb7Ak0nMEe+2Vfw==} peerDependencies: @@ -4111,6 +4201,15 @@ packages: '@types/react': optional: true + '@radix-ui/react-use-callback-ref@1.1.1': + resolution: {integrity: sha512-FkBMwD+qbGQeMu1cOHnuGB6x4yzPjho8ap5WtbEJ26umhgqVXbhekKUQO+hZEL1vU92a3wHwdp0HAcqAUF5iDg==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@radix-ui/react-use-controllable-state@1.1.0': resolution: {integrity: sha512-MtfMVJiSr2NjzS0Aa90NPTnvTSg6C/JLCV7ma0W6+OMV78vd8OyRpID+Ng9LxzsPbLeuBnWBA1Nq30AtBIDChw==} peerDependencies: @@ -4138,6 +4237,15 @@ packages: '@types/react': optional: true + '@radix-ui/react-use-layout-effect@1.1.1': + resolution: {integrity: sha512-RbJRS4UWQFkzHTTwVymMTUv8EqYhOp8dOOviLj2ugtTiXRaRQS7GLGxZTLL1jWhMeoSCf5zmcZkqTl9IiYfXcQ==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@radix-ui/react-use-previous@1.1.0': resolution: {integrity: sha512-Z/e78qg2YFnnXcW88A4JmTtm4ADckLno6F7OXotmkQfeuCVaKuYzqAATPhVzl3delXE7CxIV8shofPn3jPc5Og==} peerDependencies: @@ -18961,8 +19069,12 @@ snapshots: '@radix-ui/number@1.1.0': {} + '@radix-ui/number@1.1.1': {} + '@radix-ui/primitive@1.1.1': {} + '@radix-ui/primitive@1.1.3': {} + '@radix-ui/react-arrow@1.1.2(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: '@radix-ui/react-primitive': 2.0.2(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) @@ -18990,18 +19102,36 @@ snapshots: optionalDependencies: '@types/react': 19.0.10 + '@radix-ui/react-compose-refs@1.1.2(@types/react@19.0.10)(react@19.1.0)': + dependencies: + react: 19.1.0 + optionalDependencies: + '@types/react': 19.0.10 + '@radix-ui/react-context@1.1.1(@types/react@19.0.10)(react@19.0.0)': dependencies: react: 19.0.0 optionalDependencies: '@types/react': 19.0.10 + '@radix-ui/react-context@1.1.2(@types/react@19.0.10)(react@19.1.0)': + dependencies: + react: 19.1.0 + optionalDependencies: + '@types/react': 19.0.10 + '@radix-ui/react-direction@1.1.0(@types/react@19.0.10)(react@19.0.0)': dependencies: react: 19.0.0 optionalDependencies: '@types/react': 19.0.10 + '@radix-ui/react-direction@1.1.1(@types/react@19.0.10)(react@19.1.0)': + dependencies: + react: 19.1.0 + optionalDependencies: + '@types/react': 19.0.10 + '@radix-ui/react-dismissable-layer@1.1.5(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: '@radix-ui/primitive': 1.1.1 @@ -19118,6 +19248,16 @@ snapshots: '@types/react': 19.0.10 '@types/react-dom': 19.0.4(@types/react@19.0.10) + '@radix-ui/react-presence@1.1.5(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.0.10)(react@19.1.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.0.10)(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + optionalDependencies: + '@types/react': 19.0.10 + '@types/react-dom': 19.0.4(@types/react@19.0.10) + '@radix-ui/react-primitive@2.0.2(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: '@radix-ui/react-slot': 1.1.2(@types/react@19.0.10)(react@19.0.0) @@ -19127,6 +19267,15 @@ snapshots: '@types/react': 19.0.10 '@types/react-dom': 19.0.4(@types/react@19.0.10) + '@radix-ui/react-primitive@2.1.3(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@radix-ui/react-slot': 1.2.3(@types/react@19.0.10)(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + optionalDependencies: + '@types/react': 19.0.10 + '@types/react-dom': 19.0.4(@types/react@19.0.10) + '@radix-ui/react-roving-focus@1.1.2(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: '@radix-ui/primitive': 1.1.1 @@ -19144,6 +19293,23 @@ snapshots: '@types/react': 19.0.10 '@types/react-dom': 19.0.4(@types/react@19.0.10) + '@radix-ui/react-scroll-area@1.2.10(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@radix-ui/number': 1.1.1 + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.0.10)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.0.10)(react@19.1.0) + '@radix-ui/react-direction': 1.1.1(@types/react@19.0.10)(react@19.1.0) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.0.10)(react@19.1.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.0.10)(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + optionalDependencies: + '@types/react': 19.0.10 + '@types/react-dom': 19.0.4(@types/react@19.0.10) + '@radix-ui/react-select@2.1.6(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: '@radix-ui/number': 1.1.0 @@ -19180,12 +19346,25 @@ snapshots: optionalDependencies: '@types/react': 19.0.10 + '@radix-ui/react-slot@1.2.3(@types/react@19.0.10)(react@19.1.0)': + dependencies: + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.0.10)(react@19.1.0) + react: 19.1.0 + optionalDependencies: + '@types/react': 19.0.10 + '@radix-ui/react-use-callback-ref@1.1.0(@types/react@19.0.10)(react@19.0.0)': dependencies: react: 19.0.0 optionalDependencies: '@types/react': 19.0.10 + '@radix-ui/react-use-callback-ref@1.1.1(@types/react@19.0.10)(react@19.1.0)': + dependencies: + react: 19.1.0 + optionalDependencies: + '@types/react': 19.0.10 + '@radix-ui/react-use-controllable-state@1.1.0(@types/react@19.0.10)(react@19.0.0)': dependencies: '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.0.10)(react@19.0.0) @@ -19206,6 +19385,12 @@ snapshots: optionalDependencies: '@types/react': 19.0.10 + '@radix-ui/react-use-layout-effect@1.1.1(@types/react@19.0.10)(react@19.1.0)': + dependencies: + react: 19.1.0 + optionalDependencies: + '@types/react': 19.0.10 + '@radix-ui/react-use-previous@1.1.0(@types/react@19.0.10)(react@19.0.0)': dependencies: react: 19.0.0 @@ -29244,6 +29429,11 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) + next-themes@0.4.6(react-dom@19.1.0(react@19.1.0))(react@19.1.0): + dependencies: + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + next-validate-link@1.5.1: dependencies: fast-glob: 3.3.3 From 675e533714a5c9c750f32acb3a5580cb208bb8ea Mon Sep 17 00:00:00 2001 From: Adebesin Tolulope Date: Sat, 18 Oct 2025 12:29:45 +0100 Subject: [PATCH 6/8] style: Update styling in Home component --- playground/src/app/page.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/playground/src/app/page.tsx b/playground/src/app/page.tsx index 1e784a1df..d07f2b626 100644 --- a/playground/src/app/page.tsx +++ b/playground/src/app/page.tsx @@ -6,9 +6,9 @@ import { LinkStatus } from "./_components/link-status"; export default function Home() { return (
-
+

- Welcome to the next-intl Playground + Welcome to the next-intl Playground

Explore translations, formatting, routing, and patterns using Next.js From 37201bdb2b3124dd9e5645b770204beb9a42e6f5 Mon Sep 17 00:00:00 2001 From: Adebesin Tolulope Date: Sat, 8 Nov 2025 11:35:40 +0100 Subject: [PATCH 7/8] feat: Add Client Components and Server Components pages and components --- playground/package.json | 1 + .../src/app/_components/demo-content.tsx | 51 +++++++++++ .../src/app/_components/github-link.tsx | 24 +++++ .../app/_components/playground-sidebar.tsx | 37 +------- playground/src/app/assets/navigations.ts | 89 ++----------------- .../translations/client-components/README.md | 31 +++++++ .../client-components/[locale]/page.tsx | 0 .../client-components/client-example.tsx | 59 ++++++++++++ .../translations/client-components/page.tsx | 68 ++++++++++++++ .../translations/server-components/README.md | 24 +++++ .../server-components/[locale]/page.tsx | 0 .../translations/server-components/page.tsx | 68 ++++++++++++++ .../server-components/server-example.tsx | 36 ++++++++ pnpm-lock.yaml | 30 ++++++- 14 files changed, 399 insertions(+), 119 deletions(-) create mode 100644 playground/src/app/_components/demo-content.tsx create mode 100644 playground/src/app/_components/github-link.tsx create mode 100644 playground/src/app/translations/client-components/README.md create mode 100644 playground/src/app/translations/client-components/[locale]/page.tsx create mode 100644 playground/src/app/translations/client-components/client-example.tsx create mode 100644 playground/src/app/translations/client-components/page.tsx create mode 100644 playground/src/app/translations/server-components/README.md create mode 100644 playground/src/app/translations/server-components/[locale]/page.tsx create mode 100644 playground/src/app/translations/server-components/page.tsx create mode 100644 playground/src/app/translations/server-components/server-example.tsx diff --git a/playground/package.json b/playground/package.json index df3c36087..d9cbfed95 100644 --- a/playground/package.json +++ b/playground/package.json @@ -13,6 +13,7 @@ "@radix-ui/react-slot": "^1.2.3", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", + "codehike": "^1.0.7", "lucide-react": "^0.545.0", "next": "15.5.4", "next-themes": "^0.4.6", diff --git a/playground/src/app/_components/demo-content.tsx b/playground/src/app/_components/demo-content.tsx new file mode 100644 index 000000000..73acde7e8 --- /dev/null +++ b/playground/src/app/_components/demo-content.tsx @@ -0,0 +1,51 @@ +import { ReactNode } from "react"; + +export function DemoContent({ + title, + children, +}: { + title: string; + children: ReactNode; +}) { + return ( +

+

{title}

+
+ {children} +
+
+ ); +} + +export function CodeBlock({ + children, + language = "tsx", +}: { + children: string; + language?: string; +}) { + return ( +
+      
+        {children}
+      
+    
+ ); +} + +export function Example({ + title, + children, +}: { + title: string; + children: ReactNode; +}) { + return ( +
+

{title}

+
+ {children} +
+
+ ); +} diff --git a/playground/src/app/_components/github-link.tsx b/playground/src/app/_components/github-link.tsx new file mode 100644 index 000000000..1f41aad24 --- /dev/null +++ b/playground/src/app/_components/github-link.tsx @@ -0,0 +1,24 @@ +"use client"; + +import { Github } from "lucide-react"; +import Link from "next/link"; + +export function GitHubLink({ + path = "playground/src/app", +}: { + path?: string; +} = {}) { + const url = `https://github.com/amannn/next-intl/tree/main/${path}`; + + return ( + + + View on GitHub + + ); +} diff --git a/playground/src/app/_components/playground-sidebar.tsx b/playground/src/app/_components/playground-sidebar.tsx index 8dbe8c6f1..e6bca74f3 100644 --- a/playground/src/app/_components/playground-sidebar.tsx +++ b/playground/src/app/_components/playground-sidebar.tsx @@ -10,42 +10,7 @@ import { Button } from "@/components/ui/button"; import { ThemeToggle } from "./theme-toggle"; import { LinkStatus } from "./link-status"; import { Logo } from "../assets/logo"; - - -const sections = [ - { - title: "Translations", - items: [ - { title: "Basic usage", slug: "/translations/basic" }, - { title: "Async server components", slug: "/translations/async" }, - { title: "ICU features", slug: "/translations/icu" }, - ], - }, - { - title: "Formatting", - items: [ - { title: "Numbers", slug: "/formatting/numbers" }, - { title: "Dates", slug: "/formatting/dates" }, - { title: "Lists", slug: "/formatting/lists" }, - ], - }, - { - title: "Routing", - items: [ - { title: "Basic routing", slug: "/routing/basic" }, - { title: "Locale-based routing", slug: "/routing/locale" }, - ], - }, - { - title: "Patterns", - items: [ - { title: "Locale switcher", slug: "/patterns/locale-switcher" }, - { title: "Server Actions", slug: "/patterns/server-actions" }, - { title: "Metadata", slug: "/patterns/metadata" }, - { title: "Error files", slug: "/patterns/error-files" }, - ], - }, -]; +import { sections } from "../assets/navigations"; export function PlaygroundSidebar() { const [isOpen, setIsOpen] = useState(false); diff --git a/playground/src/app/assets/navigations.ts b/playground/src/app/assets/navigations.ts index 3815c9608..ffbab8068 100644 --- a/playground/src/app/assets/navigations.ts +++ b/playground/src/app/assets/navigations.ts @@ -3,92 +3,17 @@ export const sections = [ title: "Translations", items: [ { - title: "Basic usage", - slug: "/translations/basic", + title: "Server components", + slug: "/translations/server-components", description: - "Learn how to render simple translations using next-intl in your components.", + "Use translations in Server Components to fetch and render locale-specific messages.", }, { - title: "Async server components", - slug: "/translations/async", + title: "Client components", + slug: "/translations/client-components", description: - "Use translations inside async server components and fetch locale-specific messages.", - }, - { - title: "ICU features", - slug: "/translations/icu", - description: - "Advanced translations using ICU syntax for plurals, gender, and more.", - }, - ], - }, - { - title: "Formatting", - items: [ - { - title: "Numbers", - slug: "/formatting/numbers", - description: - "Format numbers based on locale, including currency and percentages.", - }, - { - title: "Dates", - slug: "/formatting/dates", - description: - "Format dates and times according to the user’s locale and preferences.", - }, - { - title: "Lists", - slug: "/formatting/lists", - description: - "Display lists with proper conjunctions, commas, and locale-specific formatting.", - }, - ], - }, - { - title: "Routing", - items: [ - { - title: "Basic routing", - slug: "/routing/basic", - description: - "Learn how to set up pages without locale-based routing.", - }, - { - title: "Locale-based routing", - slug: "/routing/locale", - description: - "Configure locale-specific routes so users see URLs in their language.", - }, - ], - }, - { - title: "Patterns", - items: [ - { - title: "Locale switcher", - slug: "/patterns/locale-switcher", - description: - "Implement a UI component that allows users to switch between locales.", - }, - { - title: "Server Actions", - slug: "/patterns/server-actions", - description: - "Handle locale-aware actions on the server for better i18n support.", - }, - { - title: "Metadata", - slug: "/patterns/metadata", - description: - "Set dynamic metadata (title, description) per locale for SEO.", - }, - { - title: "Error files", - slug: "/patterns/error-files", - description: - "Use localized error pages for different routes and languages.", + "Implement translations in Client Components for interactive, dynamic content.", }, ], }, -]; \ No newline at end of file +]; diff --git a/playground/src/app/translations/client-components/README.md b/playground/src/app/translations/client-components/README.md new file mode 100644 index 000000000..dca8f50d4 --- /dev/null +++ b/playground/src/app/translations/client-components/README.md @@ -0,0 +1,31 @@ +# Client Components + +Client Components are interactive components that run in the browser. With next-intl, you can use the `useTranslations()` hook to access translations in your Client Components. + +## How it works + +In Client Components, you can: +- Use the `useTranslations()` hook to get translated strings +- Access locale information with `useLocale()` +- Provide interactivity while maintaining full i18n support +- Dynamically update content based on user interactions + +## Example usage + +```tsx +'use client'; + +import { useTranslations } from 'next-intl'; + +export default function ClientComponent() { + const t = useTranslations(); + + return ( + + ); +} +``` + +Learn more in the [next-intl documentation](https://next-intl-docs.vercel.app). diff --git a/playground/src/app/translations/client-components/[locale]/page.tsx b/playground/src/app/translations/client-components/[locale]/page.tsx new file mode 100644 index 000000000..e69de29bb diff --git a/playground/src/app/translations/client-components/client-example.tsx b/playground/src/app/translations/client-components/client-example.tsx new file mode 100644 index 000000000..ca255d7df --- /dev/null +++ b/playground/src/app/translations/client-components/client-example.tsx @@ -0,0 +1,59 @@ +"use client"; + +import { useState } from "react"; + +export function ClientExample() { + const [count, setCount] = useState(0); + + // This simulates using translations in a client component + // In a real scenario with next-intl configured, you would use: + // const t = useTranslations(); + + const messages: Record = { + greeting: "Welcome to Client Components!", + description: "This is an interactive example", + button: "Click me", + count: `You've clicked the button ${count} times`, + reset: "Reset", + }; + + return ( +
+
+

+ {messages.greeting} +

+

+ {messages.description} +

+
+ +
+ + +
+

{messages.count}

+ {count > 0 && ( + + )} +
+
+ +
+ ℹ️ This component uses React hooks like{" "} + useState which only + work in Client Components. +
+
+ ); +} diff --git a/playground/src/app/translations/client-components/page.tsx b/playground/src/app/translations/client-components/page.tsx new file mode 100644 index 000000000..c61b46fe3 --- /dev/null +++ b/playground/src/app/translations/client-components/page.tsx @@ -0,0 +1,68 @@ +import { DemoContent, Example } from "@/app/_components/demo-content"; +import { GitHubLink } from "@/app/_components/github-link"; +import { PlaygroundBoundary } from "@/app/_components/playground-boundary"; +import { ClientExample } from "./client-example"; + +export const metadata = { + title: "Client Components - Translations", + description: "Learn how to use translations in Client Components", +}; + +export default function ClientComponentsPage() { + return ( + +
+ +
+

+ Client Components run in the browser and can use interactive + features like hooks. With next-intl, you can use the{" "} + + useTranslations() + {" "} + hook to access translated strings in your interactive components. +

+ +
+

When to use:

+
    +
  • Components with interactivity (buttons, forms, etc.)
  • +
  • Components using React hooks (useState, useEffect, etc.)
  • +
  • Event handlers and user interactions
  • +
  • Real-time updates and dynamic content
  • +
+
+ +
+

Usage example:

+ + {`'use client';\n\nimport { useTranslations } from 'next-intl';\n\nexport default function Button() {\n const t = useTranslations();\n \n return ;\n}`} + +
+ +

+ Learn more in the{" "} + + next-intl documentation + + . +

+
+
+ + + + + +
+ +
+
+
+ ); +} diff --git a/playground/src/app/translations/server-components/README.md b/playground/src/app/translations/server-components/README.md new file mode 100644 index 000000000..ac29a8581 --- /dev/null +++ b/playground/src/app/translations/server-components/README.md @@ -0,0 +1,24 @@ +# Server Components + +Server Components are components that render on the server. With next-intl, you can use the `useTranslations()` hook to get translated strings in your Server Components. + +## How it works + +In Server Components, you can: +- Import messages from your i18n configuration +- Use translations directly without client-side hydration +- Benefit from better performance as rendering happens on the server + +## Example usage + +```tsx +import { useTranslations } from 'next-intl'; + +export default function ServerPage() { + const t = useTranslations(); + + return

{t('welcome.title')}

; +} +``` + +Learn more in the [next-intl documentation](https://next-intl-docs.vercel.app). diff --git a/playground/src/app/translations/server-components/[locale]/page.tsx b/playground/src/app/translations/server-components/[locale]/page.tsx new file mode 100644 index 000000000..e69de29bb diff --git a/playground/src/app/translations/server-components/page.tsx b/playground/src/app/translations/server-components/page.tsx new file mode 100644 index 000000000..b9982d925 --- /dev/null +++ b/playground/src/app/translations/server-components/page.tsx @@ -0,0 +1,68 @@ +import { DemoContent, Example } from "@/app/_components/demo-content"; +import { GitHubLink } from "@/app/_components/github-link"; +import { PlaygroundBoundary } from "@/app/_components/playground-boundary"; +import { ServerExample } from "./server-example"; + +export const metadata = { + title: "Server Components - Translations", + description: "Learn how to use translations in Server Components", +}; + +export default function ServerComponentsPage() { + return ( + +
+ +
+

+ Server Components are components that render exclusively on the + server. With next-intl, you can seamlessly use the{" "} + + useTranslations() + {" "} + hook to access translated strings. +

+ +
+

Benefits:

+
    +
  • Messages are only sent to the server, reducing bundle size
  • +
  • No client-side hydration overhead
  • +
  • Better performance and faster page loads
  • +
  • Ideal for static content and page layouts
  • +
+
+ +
+

Usage example:

+ + {`import { useTranslations } from 'next-intl';\n\nexport default function Page() {\n const t = useTranslations();\n return

{t('welcome.title')}

;\n}`} +
+
+ +

+ Learn more in the{" "} + + next-intl documentation + + . +

+
+
+ + + + + +
+ +
+
+
+ ); +} diff --git a/playground/src/app/translations/server-components/server-example.tsx b/playground/src/app/translations/server-components/server-example.tsx new file mode 100644 index 000000000..353d64043 --- /dev/null +++ b/playground/src/app/translations/server-components/server-example.tsx @@ -0,0 +1,36 @@ +export function ServerExample() { + // This simulates using translations in a server component + // In a real scenario with next-intl configured, you would use: + // const t = useTranslations(); + + const exampleMessages = { + welcome: "Welcome to next-intl", + description: "This page demonstrates translations in Server Components", + feature1: "✓ Server-side rendering", + feature2: "✓ No client-side hydration needed", + feature3: "✓ Better performance", + }; + + return ( +
+
+

+ {exampleMessages.welcome} +

+

+ {exampleMessages.description} +

+
+ +
    + {[exampleMessages.feature1, exampleMessages.feature2, exampleMessages.feature3].map( + (feature, idx) => ( +
  • + {feature} +
  • + ) + )} +
+
+ ); +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ec3e3e9e4..260f9972f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -999,6 +999,9 @@ importers: clsx: specifier: ^2.1.1 version: 2.1.1 + codehike: + specifier: ^1.0.7 + version: 1.0.7 lucide-react: specifier: ^0.545.0 version: 0.545.0(react@19.1.0) @@ -2110,6 +2113,9 @@ packages: '@chevrotain/utils@11.0.3': resolution: {integrity: sha512-YslZMgtJUyuMbZ+aKvfF3x1f5liK4mWNxghFRv7jqRR9C3R3fAOGTTKvxXDa2Y1s9zSbcpuO0cAxDYsc9SrXoQ==} + '@code-hike/lighter@1.0.1': + resolution: {integrity: sha512-mccvcsk5UTScRrE02oBz1/qzckyhD8YE3VQlQv++2bSVVZgNuCUX8MpokSCi5OmfRAAxbj6kmNiqq1Um8eXPrw==} + '@colors/colors@1.5.0': resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} engines: {node: '>=0.1.90'} @@ -5892,6 +5898,9 @@ packages: resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==} engines: {node: '>=12'} + ansi-sequence-parser@1.1.1: + resolution: {integrity: sha512-vJXt3yiaUL4UU546s3rPXlsry/RnM730G1+HkpKE012AN0sx1eOrxSu95oKDIonskeLTijMgqWZ3uDEe3NFvyg==} + ansi-styles@3.2.1: resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} engines: {node: '>=4'} @@ -6719,6 +6728,9 @@ packages: resolution: {integrity: sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==} engines: {node: '>= 4.0'} + codehike@1.0.7: + resolution: {integrity: sha512-m4YOQv1l06qoGBLCgXRNT45MKAudXjir9v+WTs7Xb0gfze6LN3ZiUp08+WRA1N/QGT1SHbzvck8txvPq+C2EPg==} + collapse-white-space@2.1.0: resolution: {integrity: sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==} @@ -16989,6 +17001,10 @@ snapshots: '@chevrotain/utils@11.0.3': {} + '@code-hike/lighter@1.0.1': + dependencies: + ansi-sequence-parser: 1.1.1 + '@colors/colors@1.5.0': optional: true @@ -21566,6 +21582,8 @@ snapshots: ansi-regex@6.1.0: {} + ansi-sequence-parser@1.1.1: {} + ansi-styles@3.2.1: dependencies: color-convert: 1.9.3 @@ -22644,6 +22662,16 @@ snapshots: chalk: 2.4.2 q: 1.5.1 + codehike@1.0.7: + dependencies: + '@code-hike/lighter': 1.0.1 + diff: 5.1.0 + estree-util-visit: 2.0.0 + mdast-util-mdx-jsx: 3.1.3 + unist-util-visit: 5.0.0 + transitivePeerDependencies: + - supports-color + collapse-white-space@2.1.0: {} collect-v8-coverage@1.0.2: {} @@ -28052,7 +28080,7 @@ snapshots: ccount: 2.0.1 devlop: 1.1.0 mdast-util-from-markdown: 2.0.2 - mdast-util-to-markdown: 2.1.0 + mdast-util-to-markdown: 2.1.2 parse-entities: 4.0.1 stringify-entities: 4.0.4 unist-util-stringify-position: 4.0.0 From adae65c15f187aa32a0f4d9e21c605c7d642285e Mon Sep 17 00:00:00 2001 From: Adebesin Tolulope Date: Sat, 8 Nov 2025 21:05:49 +0100 Subject: [PATCH 8/8] fix: lockfile --- pnpm-lock.yaml | 183 ++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 150 insertions(+), 33 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index bc147abc5..cdc34b278 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -45,10 +45,10 @@ importers: version: 2.2.0(react@18.3.1) '@vercel/analytics': specifier: 1.5.0 - version: 1.5.0(@remix-run/react@2.16.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.2))(next@14.2.24(@babel/core@7.26.10)(@playwright/test@1.55.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) + version: 1.5.0(@remix-run/react@2.16.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.2))(next@14.2.24(@playwright/test@1.55.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) '@vercel/speed-insights': specifier: ^1.2.0 - version: 1.2.0(next@14.2.24(@babel/core@7.26.10)(@playwright/test@1.55.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) + version: 1.2.0(next@14.2.24(@playwright/test@1.55.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) clsx: specifier: ^2.1.1 version: 2.1.1 @@ -57,7 +57,7 @@ importers: version: 2.3.0 next: specifier: ^14.2.4 - version: 14.2.24(@babel/core@7.26.10)(@playwright/test@1.55.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 14.2.24(@playwright/test@1.55.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) nextra: specifier: ^3.3.1 version: 3.3.1(@types/react@19.2.2)(acorn@8.14.1)(next@14.2.24(@playwright/test@1.55.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.2) @@ -103,7 +103,7 @@ importers: version: 16.0.0 next-sitemap: specifier: ^4.2.3 - version: 4.2.3(next@14.2.24(@babel/core@7.26.10)(@playwright/test@1.55.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) + version: 4.2.3(next@14.2.24(@playwright/test@1.55.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) next-validate-link: specifier: ^1.5.1 version: 1.5.1 @@ -351,10 +351,10 @@ importers: version: 20.17.24 '@types/react': specifier: ^19.0.0 - version: 19.0.10 + version: 19.2.2 '@types/react-dom': specifier: ^19.0.0 - version: 19.0.4(@types/react@19.0.10) + version: 19.2.1(@types/react@19.2.2) eslint: specifier: 9.11.1 version: 9.11.1(jiti@2.5.1) @@ -986,10 +986,10 @@ importers: dependencies: '@radix-ui/react-scroll-area': specifier: ^1.2.10 - version: 1.2.10(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + version: 1.2.10(@types/react-dom@19.2.1(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@radix-ui/react-slot': specifier: ^1.2.3 - version: 1.2.3(@types/react@19.0.10)(react@19.1.0) + version: 1.2.4(@types/react@19.2.2)(react@19.1.0) class-variance-authority: specifier: ^0.7.1 version: 0.7.1 @@ -1029,10 +1029,10 @@ importers: version: 20.17.24 '@types/react': specifier: ^19 - version: 19.0.10 + version: 19.2.2 '@types/react-dom': specifier: ^19 - version: 19.0.4(@types/react@19.0.10) + version: 19.2.1(@types/react@19.2.2) eslint: specifier: ^9 version: 9.11.1(jiti@2.5.1) @@ -2669,7 +2669,7 @@ packages: '@expo/bunyan@4.0.1': resolution: {integrity: sha512-+Lla7nYSiHZirgK+U/uYzsLv/X+HaJienbD5AKX1UQZHYfWaP+9uuQluRB4GrEVWF0GZ7vEVp/jzaOT9k/SQlg==} - engines: {node: '>=0.10.0'} + engines: {'0': node >=0.10.0} '@expo/cli@0.4.11': resolution: {integrity: sha512-L9Ci9RBh0aPFEDF1AjDYPk54OgeUJIKzxF3lRgITm+lQpI3IEKjAc9LaYeQeO1mlZMUQmPkHArF8iyz1eOeVoQ==} @@ -4195,6 +4195,15 @@ packages: '@types/react': optional: true + '@radix-ui/react-slot@1.2.4': + resolution: {integrity: sha512-Jl+bCv8HxKnlTLVrcDE8zTMJ09R9/ukw4qBs/oZClOfoQk/cOTbDn+NceXfV7j09YPVQUryJPHurafcSg6EVKA==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@radix-ui/react-use-callback-ref@1.1.0': resolution: {integrity: sha512-CasTfvsy+frcFkbXtSJ2Zu9JHpN8TYKxkgJGWbjiZhFivxaeW7rMeZt7QELGVLaYVfFMsKHjb7Ak0nMEe+2Vfw==} peerDependencies: @@ -18679,6 +18688,10 @@ snapshots: dependencies: fast-glob: 3.3.1 + '@next/eslint-plugin-next@15.5.4': + dependencies: + fast-glob: 3.3.1 + '@next/mdx@15.5.0(@mdx-js/loader@3.1.0(webpack@5.98.0(esbuild@0.25.1)))(@mdx-js/react@3.1.0(@types/react@19.2.2)(react@19.0.0))': dependencies: source-map: 0.7.4 @@ -19082,6 +19095,8 @@ snapshots: '@radix-ui/primitive@1.1.1': {} + '@radix-ui/primitive@1.1.3': {} + '@radix-ui/react-arrow@1.1.2(@types/react-dom@19.2.1(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: '@radix-ui/react-primitive': 2.0.2(@types/react-dom@19.2.1(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) @@ -19109,18 +19124,36 @@ snapshots: optionalDependencies: '@types/react': 19.2.2 + '@radix-ui/react-compose-refs@1.1.2(@types/react@19.2.2)(react@19.1.0)': + dependencies: + react: 19.1.0 + optionalDependencies: + '@types/react': 19.2.2 + '@radix-ui/react-context@1.1.1(@types/react@19.2.2)(react@19.0.0)': dependencies: react: 19.0.0 optionalDependencies: '@types/react': 19.2.2 + '@radix-ui/react-context@1.1.2(@types/react@19.2.2)(react@19.1.0)': + dependencies: + react: 19.1.0 + optionalDependencies: + '@types/react': 19.2.2 + '@radix-ui/react-direction@1.1.0(@types/react@19.2.2)(react@19.0.0)': dependencies: react: 19.0.0 optionalDependencies: '@types/react': 19.2.2 + '@radix-ui/react-direction@1.1.1(@types/react@19.2.2)(react@19.1.0)': + dependencies: + react: 19.1.0 + optionalDependencies: + '@types/react': 19.2.2 + '@radix-ui/react-dismissable-layer@1.1.5(@types/react-dom@19.2.1(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: '@radix-ui/primitive': 1.1.1 @@ -19237,6 +19270,16 @@ snapshots: '@types/react': 19.2.2 '@types/react-dom': 19.2.1(@types/react@19.2.2) + '@radix-ui/react-presence@1.1.5(@types/react-dom@19.2.1(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.2)(react@19.1.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.2)(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + optionalDependencies: + '@types/react': 19.2.2 + '@types/react-dom': 19.2.1(@types/react@19.2.2) + '@radix-ui/react-primitive@2.0.2(@types/react-dom@19.2.1(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: '@radix-ui/react-slot': 1.1.2(@types/react@19.2.2)(react@19.0.0) @@ -19246,6 +19289,15 @@ snapshots: '@types/react': 19.2.2 '@types/react-dom': 19.2.1(@types/react@19.2.2) + '@radix-ui/react-primitive@2.1.3(@types/react-dom@19.2.1(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@radix-ui/react-slot': 1.2.3(@types/react@19.2.2)(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + optionalDependencies: + '@types/react': 19.2.2 + '@types/react-dom': 19.2.1(@types/react@19.2.2) + '@radix-ui/react-roving-focus@1.1.2(@types/react-dom@19.2.1(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: '@radix-ui/primitive': 1.1.1 @@ -19263,6 +19315,23 @@ snapshots: '@types/react': 19.2.2 '@types/react-dom': 19.2.1(@types/react@19.2.2) + '@radix-ui/react-scroll-area@1.2.10(@types/react-dom@19.2.1(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@radix-ui/number': 1.1.1 + '@radix-ui/primitive': 1.1.3 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.2)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.2)(react@19.1.0) + '@radix-ui/react-direction': 1.1.1(@types/react@19.2.2)(react@19.1.0) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.1(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.1(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.2)(react@19.1.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.2)(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + optionalDependencies: + '@types/react': 19.2.2 + '@types/react-dom': 19.2.1(@types/react@19.2.2) + '@radix-ui/react-select@2.1.6(@types/react-dom@19.2.1(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': dependencies: '@radix-ui/number': 1.1.0 @@ -19299,12 +19368,32 @@ snapshots: optionalDependencies: '@types/react': 19.2.2 + '@radix-ui/react-slot@1.2.3(@types/react@19.2.2)(react@19.1.0)': + dependencies: + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.2)(react@19.1.0) + react: 19.1.0 + optionalDependencies: + '@types/react': 19.2.2 + + '@radix-ui/react-slot@1.2.4(@types/react@19.2.2)(react@19.1.0)': + dependencies: + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.2)(react@19.1.0) + react: 19.1.0 + optionalDependencies: + '@types/react': 19.2.2 + '@radix-ui/react-use-callback-ref@1.1.0(@types/react@19.2.2)(react@19.0.0)': dependencies: react: 19.0.0 optionalDependencies: '@types/react': 19.2.2 + '@radix-ui/react-use-callback-ref@1.1.1(@types/react@19.2.2)(react@19.1.0)': + dependencies: + react: 19.1.0 + optionalDependencies: + '@types/react': 19.2.2 + '@radix-ui/react-use-controllable-state@1.1.0(@types/react@19.2.2)(react@19.0.0)': dependencies: '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.2.2)(react@19.0.0) @@ -19325,6 +19414,12 @@ snapshots: optionalDependencies: '@types/react': 19.2.2 + '@radix-ui/react-use-layout-effect@1.1.1(@types/react@19.2.2)(react@19.1.0)': + dependencies: + react: 19.1.0 + optionalDependencies: + '@types/react': 19.2.2 + '@radix-ui/react-use-previous@1.1.0(@types/react@19.2.2)(react@19.0.0)': dependencies: react: 19.0.0 @@ -21049,15 +21144,15 @@ snapshots: '@vanilla-extract/private@1.0.3': {} - '@vercel/analytics@1.5.0(@remix-run/react@2.16.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.2))(next@14.2.24(@babel/core@7.26.10)(@playwright/test@1.55.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)': + '@vercel/analytics@1.5.0(@remix-run/react@2.16.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.2))(next@14.2.24(@playwright/test@1.55.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)': optionalDependencies: '@remix-run/react': 2.16.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.2) - next: 14.2.24(@babel/core@7.26.10)(@playwright/test@1.55.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + next: 14.2.24(@playwright/test@1.55.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 - '@vercel/speed-insights@1.2.0(next@14.2.24(@babel/core@7.26.10)(@playwright/test@1.55.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)': + '@vercel/speed-insights@1.2.0(next@14.2.24(@playwright/test@1.55.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)': optionalDependencies: - next: 14.2.24(@babel/core@7.26.10)(@playwright/test@1.55.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + next: 14.2.24(@playwright/test@1.55.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 '@vitejs/plugin-react@4.3.4(vite@6.2.1(@types/node@22.13.10)(jiti@2.5.1)(lightningcss@1.30.1)(terser@5.39.0)(yaml@2.7.0))': @@ -24197,9 +24292,9 @@ snapshots: '@vitest/eslint-plugin': 1.1.7(@typescript-eslint/utils@8.9.0(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2)(vitest@3.0.8(@edge-runtime/vm@5.0.0)(@types/debug@4.1.12)(@types/node@20.17.24)(jiti@2.5.1)(jsdom@26.0.0)(lightningcss@1.30.1)(terser@5.39.0)(yaml@2.7.0)) confusing-browser-globals: 1.0.11 eslint: 9.11.1(jiti@2.5.1) - eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@8.9.0(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.9.0(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint@9.11.1(jiti@2.5.1)))(eslint@9.11.1(jiti@2.5.1)) + eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@8.9.0(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint-plugin-import@2.31.0)(eslint@9.11.1(jiti@2.5.1)) eslint-plugin-css-modules: 2.11.0(eslint@9.11.1(jiti@2.5.1)) - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.9.0(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.9.0(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.9.0(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint@9.11.1(jiti@2.5.1)))(eslint@9.11.1(jiti@2.5.1)))(eslint@9.11.1(jiti@2.5.1)) + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.9.0(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint-import-resolver-typescript@3.6.3)(eslint@9.11.1(jiti@2.5.1)) eslint-plugin-jest: 28.8.3(@typescript-eslint/eslint-plugin@8.26.1(@typescript-eslint/parser@8.9.0(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint@9.11.1(jiti@2.5.1))(jest@29.7.0(@types/node@20.17.24))(typescript@5.8.2) eslint-plugin-jsx-a11y: 6.10.0(eslint@9.11.1(jiti@2.5.1)) eslint-plugin-react: 7.37.1(eslint@9.11.1(jiti@2.5.1)) @@ -24307,19 +24402,19 @@ snapshots: - eslint-import-resolver-webpack - supports-color - eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.9.0(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.9.0(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint@9.11.1(jiti@2.5.1)))(eslint@9.11.1(jiti@2.5.1)): + eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.9.0(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint-plugin-import@2.31.0)(eslint@9.11.1(jiti@2.5.1)): dependencies: '@nolyfill/is-core-module': 1.0.39 debug: 4.3.7 enhanced-resolve: 5.17.1 eslint: 9.11.1(jiti@2.5.1) - eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.9.0(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.9.0(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.9.0(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint@9.11.1(jiti@2.5.1)))(eslint@9.11.1(jiti@2.5.1)))(eslint@9.11.1(jiti@2.5.1)) + eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.9.0(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.9.0(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint-plugin-import@2.31.0)(eslint@9.11.1(jiti@2.5.1)))(eslint@9.11.1(jiti@2.5.1)) fast-glob: 3.3.3 get-tsconfig: 4.7.5 is-bun-module: 1.2.1 is-glob: 4.0.3 optionalDependencies: - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.9.0(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.9.0(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.9.0(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint@9.11.1(jiti@2.5.1)))(eslint@9.11.1(jiti@2.5.1)))(eslint@9.11.1(jiti@2.5.1)) + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.9.0(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint-import-resolver-typescript@3.6.3)(eslint@9.11.1(jiti@2.5.1)) transitivePeerDependencies: - '@typescript-eslint/parser' - eslint-import-resolver-node @@ -24348,14 +24443,14 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.0(@typescript-eslint/parser@8.9.0(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.9.0(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.9.0(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint@9.11.1(jiti@2.5.1)))(eslint@9.11.1(jiti@2.5.1)))(eslint@9.11.1(jiti@2.5.1)): + eslint-module-utils@2.12.0(@typescript-eslint/parser@8.9.0(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.9.0(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint-plugin-import@2.31.0)(eslint@9.11.1(jiti@2.5.1)))(eslint@9.11.1(jiti@2.5.1)): dependencies: debug: 3.2.7(supports-color@6.1.0) optionalDependencies: '@typescript-eslint/parser': 8.9.0(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2) eslint: 9.11.1(jiti@2.5.1) eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@8.9.0(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.9.0(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint@9.11.1(jiti@2.5.1)))(eslint@9.11.1(jiti@2.5.1)) + eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@8.9.0(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint-plugin-import@2.31.0)(eslint@9.11.1(jiti@2.5.1)) transitivePeerDependencies: - supports-color @@ -24394,7 +24489,7 @@ snapshots: - eslint-import-resolver-webpack - supports-color - eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.9.0(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.9.0(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.9.0(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint@9.11.1(jiti@2.5.1)))(eslint@9.11.1(jiti@2.5.1)))(eslint@9.11.1(jiti@2.5.1)): + eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.9.0(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint-import-resolver-typescript@3.6.3)(eslint@9.11.1(jiti@2.5.1)): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.8 @@ -24405,7 +24500,7 @@ snapshots: doctrine: 2.1.0 eslint: 9.11.1(jiti@2.5.1) eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.9.0(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.9.0(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.9.0(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint@9.11.1(jiti@2.5.1)))(eslint@9.11.1(jiti@2.5.1)))(eslint@9.11.1(jiti@2.5.1)) + eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.9.0(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@8.9.0(eslint@9.11.1(jiti@2.5.1))(typescript@5.8.2))(eslint-plugin-import@2.31.0)(eslint@9.11.1(jiti@2.5.1)))(eslint@9.11.1(jiti@2.5.1)) hasown: 2.0.2 is-core-module: 2.15.1 is-glob: 4.0.3 @@ -29362,13 +29457,13 @@ snapshots: react-dom: 19.0.0(react@19.0.0) uuid: 8.3.2 - next-sitemap@4.2.3(next@14.2.24(@babel/core@7.26.10)(@playwright/test@1.55.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)): + next-sitemap@4.2.3(next@14.2.24(@playwright/test@1.55.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)): dependencies: '@corex/deepmerge': 4.0.43 '@next/env': 13.5.6 fast-glob: 3.3.3 minimist: 1.2.8 - next: 14.2.24(@babel/core@7.26.10)(@playwright/test@1.55.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + next: 14.2.24(@playwright/test@1.55.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) next-themes@0.4.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: @@ -29419,7 +29514,7 @@ snapshots: - '@babel/core' - babel-plugin-macros - next@14.2.24(@babel/core@7.26.10)(@playwright/test@1.55.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + next@14.2.24(@playwright/test@1.55.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: '@next/env': 14.2.24 '@swc/helpers': 0.5.5 @@ -29429,7 +29524,7 @@ snapshots: postcss: 8.4.31 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - styled-jsx: 5.1.1(@babel/core@7.26.10)(react@18.3.1) + styled-jsx: 5.1.1(react@18.3.1) optionalDependencies: '@next/swc-darwin-arm64': 14.2.24 '@next/swc-darwin-x64': 14.2.24 @@ -29469,13 +29564,37 @@ snapshots: - '@babel/core' - babel-plugin-macros + next@15.5.4(@playwright/test@1.55.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0): + dependencies: + '@next/env': 15.5.4 + '@swc/helpers': 0.5.15 + caniuse-lite: 1.0.30001704 + postcss: 8.4.31 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + styled-jsx: 5.1.6(react@19.1.0) + optionalDependencies: + '@next/swc-darwin-arm64': 15.5.4 + '@next/swc-darwin-x64': 15.5.4 + '@next/swc-linux-arm64-gnu': 15.5.4 + '@next/swc-linux-arm64-musl': 15.5.4 + '@next/swc-linux-x64-gnu': 15.5.4 + '@next/swc-linux-x64-musl': 15.5.4 + '@next/swc-win32-arm64-msvc': 15.5.4 + '@next/swc-win32-x64-msvc': 15.5.4 + '@playwright/test': 1.55.0 + sharp: 0.34.3 + transitivePeerDependencies: + - '@babel/core' + - babel-plugin-macros + nextra-theme-docs@3.3.1(patch_hash=37qjvtnqoj5dxgzxofrrj6xcdq)(next@14.2.24(@playwright/test@1.55.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(nextra@3.3.1(@types/react@19.2.2)(acorn@8.14.1)(next@14.2.24(@playwright/test@1.55.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: '@headlessui/react': 2.2.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) clsx: 2.1.1 escape-string-regexp: 5.0.0 flexsearch: 0.7.43 - next: 14.2.24(@babel/core@7.26.10)(@playwright/test@1.55.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + next: 14.2.24(@playwright/test@1.55.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) next-themes: 0.4.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1) nextra: 3.3.1(@types/react@19.2.2)(acorn@8.14.1)(next@14.2.24(@playwright/test@1.55.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.2) react: 18.3.1 @@ -29506,7 +29625,7 @@ snapshots: mdast-util-gfm: 3.1.0 mdast-util-to-hast: 13.2.0 negotiator: 1.0.0 - next: 14.2.24(@babel/core@7.26.10)(@playwright/test@1.55.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + next: 14.2.24(@playwright/test@1.55.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) p-limit: 6.2.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -32712,12 +32831,10 @@ snapshots: dependencies: react: 17.0.2 - styled-jsx@5.1.1(@babel/core@7.26.10)(react@18.3.1): + styled-jsx@5.1.1(react@18.3.1): dependencies: client-only: 0.0.1 react: 18.3.1 - optionalDependencies: - '@babel/core': 7.26.10 styled-jsx@5.1.6(@babel/core@7.26.10)(react@19.0.0): dependencies: