From c90bcef4011e9ec12956f878a914c20ffe80079d Mon Sep 17 00:00:00 2001 From: shadcn Date: Tue, 4 Mar 2025 10:29:35 +0400 Subject: [PATCH] feat: update default monorepo template --- .../monorepo-next/apps/web/components.json | 2 +- templates/monorepo-next/apps/web/package.json | 13 +- .../monorepo-next/apps/web/tsconfig.json | 2 +- .../monorepo-next/packages/ui/components.json | 2 +- .../monorepo-next/packages/ui/package.json | 9 +- .../packages/ui/src/components/button.tsx | 58 ++--- .../packages/ui/src/styles/globals.css | 221 ++++++++++-------- templates/monorepo-next/pnpm-lock.yaml | 151 +++++------- 8 files changed, 236 insertions(+), 222 deletions(-) diff --git a/templates/monorepo-next/apps/web/components.json b/templates/monorepo-next/apps/web/components.json index 50c5b6831a..1fd99d3103 100644 --- a/templates/monorepo-next/apps/web/components.json +++ b/templates/monorepo-next/apps/web/components.json @@ -6,7 +6,7 @@ "tailwind": { "config": "", "css": "../../packages/ui/src/styles/globals.css", - "baseColor": "zinc", + "baseColor": "neutral", "cssVariables": true }, "iconLibrary": "lucide", diff --git a/templates/monorepo-next/apps/web/package.json b/templates/monorepo-next/apps/web/package.json index 90502effe1..b8d5ebc4e4 100644 --- a/templates/monorepo-next/apps/web/package.json +++ b/templates/monorepo-next/apps/web/package.json @@ -7,19 +7,22 @@ "dev": "next dev --turbopack", "build": "next build", "start": "next start", - "lint": "next lint" + "lint": "next lint", + "lint:fix": "next lint --fix", + "typecheck": "tsc --noEmit" }, "dependencies": { "@workspace/ui": "workspace:*", - "next": "^15.1.7", + "lucide-react": "^0.475.0", + "next": "^15.2.0", "next-themes": "^0.4.4", "react": "^19.0.0", "react-dom": "^19.0.0" }, "devDependencies": { - "@types/node": "^20.17.19", - "@types/react": "18.3.0", - "@types/react-dom": "18.3.1", + "@types/node": "^20", + "@types/react": "^19", + "@types/react-dom": "^19", "@workspace/eslint-config": "workspace:^", "@workspace/typescript-config": "workspace:*", "typescript": "^5.7.3" diff --git a/templates/monorepo-next/apps/web/tsconfig.json b/templates/monorepo-next/apps/web/tsconfig.json index 7e80576486..8d6f25eeca 100644 --- a/templates/monorepo-next/apps/web/tsconfig.json +++ b/templates/monorepo-next/apps/web/tsconfig.json @@ -14,7 +14,7 @@ }, "include": [ "next-env.d.ts", - "next.config.mjs", + "next.config.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts" diff --git a/templates/monorepo-next/packages/ui/components.json b/templates/monorepo-next/packages/ui/components.json index 675dda2991..764877cc55 100644 --- a/templates/monorepo-next/packages/ui/components.json +++ b/templates/monorepo-next/packages/ui/components.json @@ -6,7 +6,7 @@ "tailwind": { "config": "", "css": "src/styles/globals.css", - "baseColor": "zinc", + "baseColor": "neutral", "cssVariables": true }, "iconLibrary": "lucide", diff --git a/templates/monorepo-next/packages/ui/package.json b/templates/monorepo-next/packages/ui/package.json index 472b2f7db7..7e237b781b 100644 --- a/templates/monorepo-next/packages/ui/package.json +++ b/templates/monorepo-next/packages/ui/package.json @@ -10,7 +10,7 @@ "@radix-ui/react-slot": "^1.1.2", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", - "lucide-react": "0.475.0", + "lucide-react": "^0.475.0", "next-themes": "^0.4.4", "react": "^19.0.0", "react-dom": "^19.0.0", @@ -20,13 +20,12 @@ }, "devDependencies": { "@turbo/gen": "^2.4.2", - "@types/node": "^22.13.4", - "@types/react": "19.0.10", - "@types/react-dom": "19.0.4", + "@types/node": "^20", + "@types/react": "^19", + "@types/react-dom": "^19", "@workspace/eslint-config": "workspace:*", "@workspace/typescript-config": "workspace:*", "@tailwindcss/postcss": "^4.0.8", - "react": "^19.0.0", "tailwindcss": "^4.0.8", "typescript": "^5.7.3" }, diff --git a/templates/monorepo-next/packages/ui/src/components/button.tsx b/templates/monorepo-next/packages/ui/src/components/button.tsx index 0e0d1d0633..cd0857a005 100644 --- a/templates/monorepo-next/packages/ui/src/components/button.tsx +++ b/templates/monorepo-next/packages/ui/src/components/button.tsx @@ -2,28 +2,29 @@ import * as React from "react" import { Slot } from "@radix-ui/react-slot" import { cva, type VariantProps } from "class-variance-authority" -import { cn } from "@workspace/ui/lib/utils" +import { cn } from "@/lib/utils" const buttonVariants = cva( - "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0", + "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-[color,box-shadow] 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", + default: + "bg-primary text-primary-foreground shadow-xs hover:bg-primary/90", destructive: - "bg-destructive text-destructive-foreground hover:bg-destructive/90", + "bg-destructive text-white shadow-xs hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40", outline: - "border border-input bg-background hover:bg-accent hover:text-accent-foreground", + "border border-input bg-background shadow-xs hover:bg-accent hover:text-accent-foreground", secondary: - "bg-secondary text-secondary-foreground hover:bg-secondary/80", + "bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80", ghost: "hover:bg-accent hover:text-accent-foreground", link: "text-primary underline-offset-4 hover:underline", }, size: { - default: "h-10 px-4 py-2", - sm: "h-9 rounded-md px-3", - lg: "h-11 rounded-md px-8", - icon: "h-10 w-10", + 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", }, }, defaultVariants: { @@ -33,24 +34,25 @@ const buttonVariants = cva( } ) -export interface ButtonProps - extends React.ButtonHTMLAttributes, - VariantProps { - asChild?: boolean +function Button({ + className, + variant, + size, + asChild = false, + ...props +}: React.ComponentProps<"button"> & + VariantProps & { + asChild?: boolean + }) { + const Comp = asChild ? Slot : "button" + + return ( + + ) } -const Button = React.forwardRef( - ({ className, variant, size, asChild = false, ...props }, ref) => { - const Comp = asChild ? Slot : "button" - return ( - - ) - } -) -Button.displayName = "Button" - export { Button, buttonVariants } diff --git a/templates/monorepo-next/packages/ui/src/styles/globals.css b/templates/monorepo-next/packages/ui/src/styles/globals.css index 7a233f348f..c04e5d9ea8 100644 --- a/templates/monorepo-next/packages/ui/src/styles/globals.css +++ b/templates/monorepo-next/packages/ui/src/styles/globals.css @@ -1,108 +1,147 @@ @import "tailwindcss"; -@source "../app/**/*.{ts,tsx}"; -@source "../components/**/*.{ts,tsx}"; -@source "../../../packages/ui/src/components/**/*.{ts,tsx}"; +@source "../../../apps/**/*.{ts,tsx}"; +@source "../../../components/**/*.{ts,tsx}"; +@source "../**/*.{ts,tsx}"; @plugin "tailwindcss-animate"; @custom-variant dark (&:is(.dark *)); -@theme { - --font-sans: var(--font-geist-sans); - --font-mono: var(--font-geist-mono); -} - :root { - --background: hsl(0 0% 100%); - --foreground: hsl(240 10% 3.9%); - --card: hsl(0 0% 100%); - --card-foreground: hsl(240 10% 3.9%); - --popover: hsl(0 0% 100%); - --popover-foreground: hsl(240 10% 3.9%); - --primary: hsl(240 5.9% 10%); - --primary-foreground: hsl(0 0% 98%); - --secondary: hsl(240 4.8% 95.9%); - --secondary-foreground: hsl(240 5.9% 10%); - --muted: hsl(240 4.8% 95.9%); - --muted-foreground: hsl(240 3.8% 46.1%); - --accent: hsl(240 4.8% 95.9%); - --accent-foreground: hsl(240 5.9% 10%); - --destructive: hsl(0 84.2% 60.2%); - --destructive-foreground: hsl(0 0% 98%); - --border: hsl(240 5.9% 90%); - --input: hsl(240 5.9% 90%); - --ring: hsl(240 10% 3.9%); - --chart-1: hsl(12 76% 61%); - --chart-2: hsl(173 58% 39%); - --chart-3: hsl(197 37% 24%); - --chart-4: hsl(43 74% 66%); - --chart-5: hsl(27 87% 67%); - --radius: 0.6rem; + --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); + --destructive-foreground: 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); + --radius: 0.625rem; + --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: hsl(240 10% 3.9%); - --foreground: hsl(0 0% 98%); - --card: hsl(240 10% 3.9%); - --card-foreground: hsl(0 0% 98%); - --popover: hsl(240 10% 3.9%); - --popover-foreground: hsl(0 0% 98%); - --primary: hsl(0 0% 98%); - --primary-foreground: hsl(240 5.9% 10%); - --secondary: hsl(240 3.7% 15.9%); - --secondary-foreground: hsl(0 0% 98%); - --muted: hsl(240 3.7% 15.9%); - --muted-foreground: hsl(240 5% 64.9%); - --accent: hsl(240 3.7% 15.9%); - --accent-foreground: hsl(0 0% 98%); - --destructive: hsl(0 62.8% 30.6%); - --destructive-foreground: hsl(0 0% 98%); - --border: hsl(240 3.7% 15.9%); - --input: hsl(240 3.7% 15.9%); - --ring: hsl(240 4.9% 83.9%); - --chart-1: hsl(220 70% 50%); - --chart-2: hsl(160 60% 45%); - --chart-3: hsl(30 80% 55%); - --chart-4: hsl(280 65% 60%); - --chart-5: hsl(340 75% 55%); + --background: oklch(0.145 0 0); + --foreground: oklch(0.985 0 0); + --card: oklch(0.145 0 0); + --card-foreground: oklch(0.985 0 0); + --popover: oklch(0.145 0 0); + --popover-foreground: oklch(0.985 0 0); + --primary: oklch(0.985 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.396 0.141 25.723); + --destructive-foreground: oklch(0.637 0.237 25.331); + --border: oklch(0.269 0 0); + --input: oklch(0.269 0 0); + --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(0.269 0 0); + --sidebar-ring: oklch(0.439 0 0); } @theme inline { - --color-background: var(--background); - --color-foreground: var(--foreground); - --color-card: var(--card); - --color-card-foreground: var(--card-foreground); - --color-popover: var(--popover); - --color-popover-foreground: var(--popover-foreground); - --color-primary: var(--primary); - --color-primary-foreground: var(--primary-foreground); - --color-secondary: var(--secondary); - --color-secondary-foreground: var(--secondary-foreground); - --color-muted: var(--muted); - --color-muted-foreground: var(--muted-foreground); - --color-accent: var(--accent); - --color-accent-foreground: var(--accent-foreground); - --color-destructive: var(--destructive); - --color-destructive-foreground: var(--destructive-foreground); - --color-border: var(--border); - --color-input: var(--input); - --color-ring: var(--ring); - --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); - --radius-sm: calc(var(--radius) - 4px); - --radius-md: calc(var(--radius) - 2px); - --radius-lg: var(--radius); - --radius-xl: calc(var(--radius) + 4px); + --color-background: var(--background); + --color-foreground: var(--foreground); + --color-card: var(--card); + --color-card-foreground: var(--card-foreground); + --color-popover: var(--popover); + --color-popover-foreground: var(--popover-foreground); + --color-primary: var(--primary); + --color-primary-foreground: var(--primary-foreground); + --color-secondary: var(--secondary); + --color-secondary-foreground: var(--secondary-foreground); + --color-muted: var(--muted); + --color-muted-foreground: var(--muted-foreground); + --color-accent: var(--accent); + --color-accent-foreground: var(--accent-foreground); + --color-destructive: var(--destructive); + --color-destructive-foreground: var(--destructive-foreground); + --color-border: var(--border); + --color-input: var(--input); + --color-ring: var(--ring); + --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); + --radius-sm: calc(var(--radius) - 4px); + --radius-md: calc(var(--radius) - 2px); + --radius-lg: var(--radius); + --radius-xl: calc(var(--radius) + 4px); + --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); + --animate-accordion-down: accordion-down 0.2s ease-out; + --animate-accordion-up: accordion-up 0.2s ease-out; + + @keyframes accordion-down { + from { + height: 0; + } + to { + height: var(--radix-accordion-content-height); + } + } + + @keyframes accordion-up { + from { + height: var(--radix-accordion-content-height); + } + to { + height: 0; + } + } } @layer base { - * { - @apply border-border outline-ring/50; - } - body { - @apply bg-background text-foreground; - } + * { + @apply border-border outline-ring/50; + } + body { + @apply bg-background text-foreground; + } } diff --git a/templates/monorepo-next/pnpm-lock.yaml b/templates/monorepo-next/pnpm-lock.yaml index 9eaad2b9a5..dcf4474f16 100644 --- a/templates/monorepo-next/pnpm-lock.yaml +++ b/templates/monorepo-next/pnpm-lock.yaml @@ -29,9 +29,12 @@ importers: '@workspace/ui': specifier: workspace:* version: link:../../packages/ui + lucide-react: + specifier: ^0.475.0 + version: 0.475.0(react@19.0.0) next: - specifier: ^15.1.7 - version: 15.1.7(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + specifier: ^15.2.0 + version: 15.2.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) next-themes: specifier: ^0.4.4 version: 0.4.4(react-dom@19.0.0(react@19.0.0))(react@19.0.0) @@ -43,14 +46,14 @@ importers: version: 19.0.0(react@19.0.0) devDependencies: '@types/node': - specifier: ^20.17.19 + specifier: ^20 version: 20.17.19 '@types/react': - specifier: 18.3.0 - version: 18.3.0 + specifier: ^19 + version: 19.0.10 '@types/react-dom': - specifier: 18.3.1 - version: 18.3.1 + specifier: ^19 + version: 19.0.4(@types/react@19.0.10) '@workspace/eslint-config': specifier: workspace:^ version: link:../../packages/eslint-config @@ -114,7 +117,7 @@ importers: specifier: ^2.1.1 version: 2.1.1 lucide-react: - specifier: 0.475.0 + specifier: ^0.475.0 version: 0.475.0(react@19.0.0) next-themes: specifier: ^0.4.4 @@ -140,15 +143,15 @@ importers: version: 4.0.8 '@turbo/gen': specifier: ^2.4.2 - version: 2.4.2(@types/node@22.13.4)(typescript@5.7.3) + version: 2.4.2(@types/node@20.17.19)(typescript@5.7.3) '@types/node': - specifier: ^22.13.4 - version: 22.13.4 + specifier: ^20 + version: 20.17.19 '@types/react': - specifier: 19.0.10 + specifier: ^19 version: 19.0.10 '@types/react-dom': - specifier: 19.0.4 + specifier: ^19 version: 19.0.4(@types/react@19.0.10) '@workspace/eslint-config': specifier: workspace:* @@ -353,56 +356,56 @@ packages: '@jridgewell/trace-mapping@0.3.9': resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} - '@next/env@15.1.7': - resolution: {integrity: sha512-d9jnRrkuOH7Mhi+LHav2XW91HOgTAWHxjMPkXMGBc9B2b7614P7kjt8tAplRvJpbSt4nbO1lugcT/kAaWzjlLQ==} + '@next/env@15.2.0': + resolution: {integrity: sha512-eMgJu1RBXxxqqnuRJQh5RozhskoNUDHBFybvi+Z+yK9qzKeG7dadhv/Vp1YooSZmCnegf7JxWuapV77necLZNA==} '@next/eslint-plugin-next@15.1.7': resolution: {integrity: sha512-kRP7RjSxfTO13NE317ek3mSGzoZlI33nc/i5hs1KaWpK+egs85xg0DJ4p32QEiHnR0mVjuUfhRIun7awqfL7pQ==} - '@next/swc-darwin-arm64@15.1.7': - resolution: {integrity: sha512-hPFwzPJDpA8FGj7IKV3Yf1web3oz2YsR8du4amKw8d+jAOHfYHYFpMkoF6vgSY4W6vB29RtZEklK9ayinGiCmQ==} + '@next/swc-darwin-arm64@15.2.0': + resolution: {integrity: sha512-rlp22GZwNJjFCyL7h5wz9vtpBVuCt3ZYjFWpEPBGzG712/uL1bbSkS675rVAUCRZ4hjoTJ26Q7IKhr5DfJrHDA==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] - '@next/swc-darwin-x64@15.1.7': - resolution: {integrity: sha512-2qoas+fO3OQKkU0PBUfwTiw/EYpN+kdAx62cePRyY1LqKtP09Vp5UcUntfZYajop5fDFTjSxCHfZVRxzi+9FYQ==} + '@next/swc-darwin-x64@15.2.0': + resolution: {integrity: sha512-DiU85EqSHogCz80+sgsx90/ecygfCSGl5P3b4XDRVZpgujBm5lp4ts7YaHru7eVTyZMjHInzKr+w0/7+qDrvMA==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] - '@next/swc-linux-arm64-gnu@15.1.7': - resolution: {integrity: sha512-sKLLwDX709mPdzxMnRIXLIT9zaX2w0GUlkLYQnKGoXeWUhcvpCrK+yevcwCJPdTdxZEUA0mOXGLdPsGkudGdnA==} + '@next/swc-linux-arm64-gnu@15.2.0': + resolution: {integrity: sha512-VnpoMaGukiNWVxeqKHwi8MN47yKGyki5q+7ql/7p/3ifuU2341i/gDwGK1rivk0pVYbdv5D8z63uu9yMw0QhpQ==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@next/swc-linux-arm64-musl@15.1.7': - resolution: {integrity: sha512-zblK1OQbQWdC8fxdX4fpsHDw+VSpBPGEUX4PhSE9hkaWPrWoeIJn+baX53vbsbDRaDKd7bBNcXRovY1hEhFd7w==} + '@next/swc-linux-arm64-musl@15.2.0': + resolution: {integrity: sha512-ka97/ssYE5nPH4Qs+8bd8RlYeNeUVBhcnsNUmFM6VWEob4jfN9FTr0NBhXVi1XEJpj3cMfgSRW+LdE3SUZbPrw==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@next/swc-linux-x64-gnu@15.1.7': - resolution: {integrity: sha512-GOzXutxuLvLHFDAPsMP2zDBMl1vfUHHpdNpFGhxu90jEzH6nNIgmtw/s1MDwpTOiM+MT5V8+I1hmVFeAUhkbgQ==} + '@next/swc-linux-x64-gnu@15.2.0': + resolution: {integrity: sha512-zY1JduE4B3q0k2ZCE+DAF/1efjTXUsKP+VXRtrt/rJCTgDlUyyryx7aOgYXNc1d8gobys/Lof9P9ze8IyRDn7Q==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@next/swc-linux-x64-musl@15.1.7': - resolution: {integrity: sha512-WrZ7jBhR7ATW1z5iEQ0ZJfE2twCNSXbpCSaAunF3BKcVeHFADSI/AW1y5Xt3DzTqPF1FzQlwQTewqetAABhZRQ==} + '@next/swc-linux-x64-musl@15.2.0': + resolution: {integrity: sha512-QqvLZpurBD46RhaVaVBepkVQzh8xtlUN00RlG4Iq1sBheNugamUNPuZEH1r9X1YGQo1KqAe1iiShF0acva3jHQ==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@next/swc-win32-arm64-msvc@15.1.7': - resolution: {integrity: sha512-LDnj1f3OVbou1BqvvXVqouJZKcwq++mV2F+oFHptToZtScIEnhNRJAhJzqAtTE2dB31qDYL45xJwrc+bLeKM2Q==} + '@next/swc-win32-arm64-msvc@15.2.0': + resolution: {integrity: sha512-ODZ0r9WMyylTHAN6pLtvUtQlGXBL9voljv6ujSlcsjOxhtXPI1Ag6AhZK0SE8hEpR1374WZZ5w33ChpJd5fsjw==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] - '@next/swc-win32-x64-msvc@15.1.7': - resolution: {integrity: sha512-dC01f1quuf97viOfW05/K8XYv2iuBgAxJZl7mbCKEjMgdQl5JjAKJ0D2qMKZCgPWDeFbFT0Q0nYWwytEW0DWTQ==} + '@next/swc-win32-x64-msvc@15.2.0': + resolution: {integrity: sha512-8+4Z3Z7xa13NdUuUAcpVNA6o76lNPniBd9Xbo02bwXQXnZgFvEopwY2at5+z7yHl47X9qbZpvwatZ2BRo3EdZw==} engines: {node: '>= 10'} cpu: [x64] os: [win32] @@ -560,23 +563,11 @@ packages: '@types/node@20.17.19': resolution: {integrity: sha512-LEwC7o1ifqg/6r2gn9Dns0f1rhK+fPFDoMiceTJ6kWmVk6bgXBI/9IOWfVan4WiAavK9pIVWdX0/e3J+eEUh5A==} - '@types/node@22.13.4': - resolution: {integrity: sha512-ywP2X0DYtX3y08eFVx5fNIw7/uIv8hYUKgXoK8oayJlLnKcRfEYCxWMVE1XagUdVtCJlZT1AU4LXEABW+L1Peg==} - - '@types/prop-types@15.7.14': - resolution: {integrity: sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ==} - - '@types/react-dom@18.3.1': - resolution: {integrity: sha512-qW1Mfv8taImTthu4KoXgDfLuk4bydU6Q/TkADnDWWHwi4NX4BR+LWfTp2sVmTqRrsHvyDDTelgelxJ+SsejKKQ==} - '@types/react-dom@19.0.4': resolution: {integrity: sha512-4fSQ8vWFkg+TGhePfUzVmat3eC14TXYSsiiDSLI0dVLsrm9gZFABjPy/Qu6TKgl1tq1Bu1yDsuQgY3A3DOjCcg==} peerDependencies: '@types/react': ^19.0.0 - '@types/react@18.3.0': - resolution: {integrity: sha512-DiUcKjzE6soLyln8NNZmyhcQjVv+WsUIFSqetMN0p8927OztKT4VTfFTqsbAi5oAGIcgOmOajlfBqyptDDjZRw==} - '@types/react@19.0.10': resolution: {integrity: sha512-JuRQ9KXLEjaUNjTWpzuR231Z2WpIwczOkBEIvbHNCzQefFIT0L8IqE6NV6ULLyC1SI/i234JnDoMkfg+RjQj2g==} @@ -1659,8 +1650,8 @@ packages: react: ^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc react-dom: ^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc - next@15.1.7: - resolution: {integrity: sha512-GNeINPGS9c6OZKCvKypbL8GTsT5GhWPp4DM0fzkXJuXMilOO2EeFxuAY6JZbtk6XIl6Ws10ag3xRINDjSO5+wg==} + next@15.2.0: + resolution: {integrity: sha512-VaiM7sZYX8KIAHBrRGSFytKknkrexNfGb8GlG6e93JqueCspuGte8i4ybn8z4ww1x3f2uzY4YpTaBEW4/hvsoQ==} engines: {node: ^18.18.0 || ^19.8.0 || >= 20.0.0} hasBin: true peerDependencies: @@ -2255,9 +2246,6 @@ packages: undici-types@6.19.8: resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==} - undici-types@6.20.0: - resolution: {integrity: sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==} - universalify@2.0.1: resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} engines: {node: '>= 10.0.0'} @@ -2494,34 +2482,34 @@ snapshots: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.0 - '@next/env@15.1.7': {} + '@next/env@15.2.0': {} '@next/eslint-plugin-next@15.1.7': dependencies: fast-glob: 3.3.1 - '@next/swc-darwin-arm64@15.1.7': + '@next/swc-darwin-arm64@15.2.0': optional: true - '@next/swc-darwin-x64@15.1.7': + '@next/swc-darwin-x64@15.2.0': optional: true - '@next/swc-linux-arm64-gnu@15.1.7': + '@next/swc-linux-arm64-gnu@15.2.0': optional: true - '@next/swc-linux-arm64-musl@15.1.7': + '@next/swc-linux-arm64-musl@15.2.0': optional: true - '@next/swc-linux-x64-gnu@15.1.7': + '@next/swc-linux-x64-gnu@15.2.0': optional: true - '@next/swc-linux-x64-musl@15.1.7': + '@next/swc-linux-x64-musl@15.2.0': optional: true - '@next/swc-win32-arm64-msvc@15.1.7': + '@next/swc-win32-arm64-msvc@15.2.0': optional: true - '@next/swc-win32-x64-msvc@15.1.7': + '@next/swc-win32-x64-msvc@15.2.0': optional: true '@nodelib/fs.scandir@2.1.5': @@ -2627,7 +2615,7 @@ snapshots: '@tsconfig/node16@1.0.4': {} - '@turbo/gen@2.4.2(@types/node@22.13.4)(typescript@5.7.3)': + '@turbo/gen@2.4.2(@types/node@20.17.19)(typescript@5.7.3)': dependencies: '@turbo/workspaces': 2.4.2 commander: 10.0.1 @@ -2637,7 +2625,7 @@ snapshots: node-plop: 0.26.3 picocolors: 1.0.1 proxy-agent: 6.5.0 - ts-node: 10.9.2(@types/node@22.13.4)(typescript@5.7.3) + ts-node: 10.9.2(@types/node@20.17.19)(typescript@5.7.3) update-check: 1.5.4 validate-npm-package-name: 5.0.1 transitivePeerDependencies: @@ -2666,7 +2654,7 @@ snapshots: '@types/glob@7.2.0': dependencies: '@types/minimatch': 5.1.2 - '@types/node': 22.13.4 + '@types/node': 20.17.19 '@types/inquirer@6.5.0': dependencies: @@ -2681,32 +2669,17 @@ snapshots: dependencies: undici-types: 6.19.8 - '@types/node@22.13.4': - dependencies: - undici-types: 6.20.0 - - '@types/prop-types@15.7.14': {} - - '@types/react-dom@18.3.1': - dependencies: - '@types/react': 18.3.0 - '@types/react-dom@19.0.4(@types/react@19.0.10)': dependencies: '@types/react': 19.0.10 - '@types/react@18.3.0': - dependencies: - '@types/prop-types': 15.7.14 - csstype: 3.1.3 - '@types/react@19.0.10': dependencies: csstype: 3.1.3 '@types/through@0.0.33': dependencies: - '@types/node': 22.13.4 + '@types/node': 20.17.19 '@types/tinycolor2@1.4.6': {} @@ -3980,9 +3953,9 @@ snapshots: react: 19.0.0 react-dom: 19.0.0(react@19.0.0) - next@15.1.7(react-dom@19.0.0(react@19.0.0))(react@19.0.0): + next@15.2.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0): dependencies: - '@next/env': 15.1.7 + '@next/env': 15.2.0 '@swc/counter': 0.1.3 '@swc/helpers': 0.5.15 busboy: 1.6.0 @@ -3992,14 +3965,14 @@ snapshots: react-dom: 19.0.0(react@19.0.0) styled-jsx: 5.1.6(react@19.0.0) optionalDependencies: - '@next/swc-darwin-arm64': 15.1.7 - '@next/swc-darwin-x64': 15.1.7 - '@next/swc-linux-arm64-gnu': 15.1.7 - '@next/swc-linux-arm64-musl': 15.1.7 - '@next/swc-linux-x64-gnu': 15.1.7 - '@next/swc-linux-x64-musl': 15.1.7 - '@next/swc-win32-arm64-msvc': 15.1.7 - '@next/swc-win32-x64-msvc': 15.1.7 + '@next/swc-darwin-arm64': 15.2.0 + '@next/swc-darwin-x64': 15.2.0 + '@next/swc-linux-arm64-gnu': 15.2.0 + '@next/swc-linux-arm64-musl': 15.2.0 + '@next/swc-linux-x64-gnu': 15.2.0 + '@next/swc-linux-x64-musl': 15.2.0 + '@next/swc-win32-arm64-msvc': 15.2.0 + '@next/swc-win32-x64-msvc': 15.2.0 sharp: 0.33.5 transitivePeerDependencies: - '@babel/core' @@ -4583,14 +4556,14 @@ snapshots: dependencies: typescript: 5.7.3 - ts-node@10.9.2(@types/node@22.13.4)(typescript@5.7.3): + ts-node@10.9.2(@types/node@20.17.19)(typescript@5.7.3): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.11 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 22.13.4 + '@types/node': 20.17.19 acorn: 8.14.0 acorn-walk: 8.3.4 arg: 4.1.3 @@ -4695,8 +4668,6 @@ snapshots: undici-types@6.19.8: {} - undici-types@6.20.0: {} - universalify@2.0.1: {} update-check@1.5.4: