From fd546af0e420a0963abbc19123bba3467a2cd3d7 Mon Sep 17 00:00:00 2001 From: thevgseven Date: Sat, 5 Oct 2024 16:38:01 +0530 Subject: [PATCH] core: configured base structure --- .vscode/extensions.json | 7 - .vscode/settings.json | 8 +- README.md | 68 +- apps/web/README.md | 4 +- apps/web/biome.json | 4 - apps/web/package.json | 25 +- apps/web/public/favicon.png | Bin 53284 -> 45320 bytes apps/web/src/app/page.tsx | 4 +- apps/web/src/styles/root-layout.css | 23 + apps/web/tailwind.config.ts | 30 +- apps/web/tsconfig.json | 27 +- biome.json | 108 +- package.json | 15 +- packages/config/biome/base.json | 97 -- packages/config/package.json | 9 - packages/lib/.gitignore | 8 + packages/lib/README.md | 3 + packages/lib/package.json | 26 + packages/lib/src/index.ts | 1 + packages/lib/src/utils/utils.ts | 6 + packages/lib/tsconfig.json | 5 + packages/tailwind-config/.gitignore | 8 + packages/tailwind-config/README.md | 3 + .../configs/tailwind-presets.ts | 29 + packages/tailwind-config/package.json | 18 + packages/ts-config/.gitignore | 8 + packages/ts-config/README.md | 3 + packages/ts-config/configs/base.json | 21 + packages/ts-config/configs/next.json | 19 + packages/ts-config/configs/react.json | 18 + packages/ts-config/package.json | 17 + packages/typescript-config/base.json | 20 - packages/typescript-config/nextjs.json | 13 - packages/typescript-config/package.json | 9 - packages/typescript-config/react-library.json | 8 - packages/ui/.gitignore | 8 + packages/ui/README.md | 3 + packages/ui/package.json | 28 +- packages/ui/postcss.config.mjs | 10 + packages/ui/src/button.tsx | 21 - packages/ui/src/card.tsx | 25 - packages/ui/src/code.tsx | 9 - packages/ui/src/index.ts | 1 + packages/ui/src/primitives/label.tsx | 26 + packages/ui/src/styles/root.css | 3 + packages/ui/tailwind.config.ts | 14 + packages/ui/tsconfig.json | 7 +- packages/ui/tsconfig.lint.json | 8 - pnpm-lock.yaml | 998 +++++++++--------- turbo.json | 7 +- 50 files changed, 1034 insertions(+), 806 deletions(-) delete mode 100644 .vscode/extensions.json delete mode 100644 apps/web/biome.json delete mode 100644 packages/config/biome/base.json delete mode 100644 packages/config/package.json create mode 100644 packages/lib/.gitignore create mode 100644 packages/lib/README.md create mode 100644 packages/lib/package.json create mode 100644 packages/lib/src/index.ts create mode 100644 packages/lib/src/utils/utils.ts create mode 100644 packages/lib/tsconfig.json create mode 100644 packages/tailwind-config/.gitignore create mode 100644 packages/tailwind-config/README.md create mode 100644 packages/tailwind-config/configs/tailwind-presets.ts create mode 100644 packages/tailwind-config/package.json create mode 100644 packages/ts-config/.gitignore create mode 100644 packages/ts-config/README.md create mode 100644 packages/ts-config/configs/base.json create mode 100644 packages/ts-config/configs/next.json create mode 100644 packages/ts-config/configs/react.json create mode 100644 packages/ts-config/package.json delete mode 100644 packages/typescript-config/base.json delete mode 100644 packages/typescript-config/nextjs.json delete mode 100644 packages/typescript-config/package.json delete mode 100644 packages/typescript-config/react-library.json create mode 100644 packages/ui/.gitignore create mode 100644 packages/ui/README.md create mode 100644 packages/ui/postcss.config.mjs delete mode 100644 packages/ui/src/button.tsx delete mode 100644 packages/ui/src/card.tsx delete mode 100644 packages/ui/src/code.tsx create mode 100644 packages/ui/src/index.ts create mode 100644 packages/ui/src/primitives/label.tsx create mode 100644 packages/ui/src/styles/root.css create mode 100644 packages/ui/tailwind.config.ts delete mode 100644 packages/ui/tsconfig.lint.json diff --git a/.vscode/extensions.json b/.vscode/extensions.json deleted file mode 100644 index 852ade5..0000000 --- a/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "biomejs.biome", - "redhat.vscode-yaml", - "bierner.markdown-preview-github-styles", - ] -} \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json index e5ccf5c..e08ba83 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -10,7 +10,13 @@ "[json]": { "editor.defaultFormatter": "biomejs.biome" }, + "[typescriptreact]": { + "editor.defaultFormatter": "biomejs.biome" + }, "[yaml]": { "editor.defaultFormatter": "redhat.vscode-yaml" }, -} \ No newline at end of file + "[css]": { + "editor.defaultFormatter": "biomejs.biome" + } +} diff --git a/README.md b/README.md index 1138588..6c0c34c 100644 --- a/README.md +++ b/README.md @@ -1 +1,67 @@ -# Turborepo Essential +# Unified Turborepo Essential + +Unified Turborepo Essential, An Essential Template to get started with Turborepo application with all the essentials included... + +## Features + +- โœจ Library: [React](https://reactjs.org/) with [Vite](https://vitejs.dev/) - Fast and efficient development environment +- ๐Ÿš€ Styling: [Tailwind CSS](https://tailwindcss.com/) - Utility-first CSS framework +- ๐Ÿ’ป Language: [TypeScript](https://www.typescriptlang.org/) - Typed superset of JavaScript +- ๐Ÿงน Linting and Formatting: [Biome.js](https://biomejs.dev/) - Fast and customizable linter and formatter +- ๐ŸŽจ Themes: [next-themes](https://github.com/pacocoursey/next-themes) - Easy theming for React.js. +- ๐Ÿ’„ Icons: [lucide-react](https://lucide.dev/) - A comprehensive set of icons for React.js +- โš™๏ธ Build: Github Actions - Automated workflows for CI/CD +- ๐Ÿ›  Commit: [Husky](https://typicode.github.io/husky/) - Git hooks made easy +- ๐Ÿ“ฆ Package: [pnpm](https://pnpm.io/) - Fast, disk space efficient package manager +- ๐Ÿš€ Routing: [TanStack Router](https://tanstack.com/router/v1) - Type-safe routing for React + +## Project Structure + +- `src/`: Source code directory + - `routes/`: Contains all routes and pages + - `ui/`: Contains all reusable components and primitives + - `lib/`: Includes helpers, utilities, and configuration files + - `styles/`: Global styles and theme configuration +- `public/`: Static assets and images + +## Getting Started + +1. Clone the repository +2. Install dependencies: `pnpm install` +3. Run the development server: `pnpm run dev` +4. Open [http://localhost:5173](http://localhost:5173) in your browser + +## Guidelines + +- Keep components and primitives in the `src/ui/` folder +- Place all routes and pages in the `src/routes/` folder +- Store helpers, utilities, and configs in the `src/lib/` folder +- Follow the TypeScript and Biome.js linting rules +- Use Husky pre-commit hooks to ensure code quality + +## Customization + +- Modify the theme in `tailwind.config.ts` +- Adjust global styles in `src/styles/root-layout.css` +- Configure Vite settings in `vite.config.ts` + +## Available Scripts + +- `pnpm run dev`: Start the development server +- `pnpm run build`: Build the production-ready application +- `pnpm run typecheck`: Run TypeScript type checking +- `pnpm run lint`: Run Biome.js linter +- `pnpm run lint:fix`: Run Biome.js linter and fix issues +- `pnpm run format`: Format code using Biome.js + +## Contributing + +Contributions are welcome! Please follow these steps: + +1. Fork the repository +2. Create a new branch: `git checkout -b feature/your-feature-name` +3. Make your changes and commit them: `git commit -m 'Add some feature'` +4. Push to the branch: `git push origin feature/your-feature-name` +5. Submit a pull request + +For major changes, please open an issue first to discuss what you would like to change. diff --git a/apps/web/README.md b/apps/web/README.md index 6f58236..ad5c0ae 100644 --- a/apps/web/README.md +++ b/apps/web/README.md @@ -1 +1,3 @@ -# Next.js Template \ No newline at end of file +# Web + +An Next.js Application started with [Next-Essential](https://github.com/labelementary/next-essential). diff --git a/apps/web/biome.json b/apps/web/biome.json deleted file mode 100644 index 613ac26..0000000 --- a/apps/web/biome.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "$schema": "https://biomejs.dev/schemas/1.8.3/schema.json", - "extends": ["../../packages/config/biome/base.json"] -} diff --git a/apps/web/package.json b/apps/web/package.json index d5d4a2a..1a81b0d 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -1,29 +1,30 @@ { "name": "web", - "version": "0.0.0", + "version": "0.1.0", "private": true, "scripts": { "dev": "next dev --turbo", "build": "next build", "start": "next start", - "typecheck": "tsc --noEmit", - "lint": "biome lint --write .", - "format": "biome format --write ." + "typecheck": "tsc --noEmit" }, "dependencies": { + "@repo/ui": "workspace:*", + "@repo/lib": "workspace:*", "geist": "^1.3.1", - "next": "14.2.5", + "next": "14.2.14", "react": "^18.3.1", "react-dom": "^18.3.1" }, "devDependencies": { - "@types/node": "^20.14.11", - "@types/react": "^18.3.3", + "@repo/tailwind-config": "workspace:*", + "@repo/ts-config": "workspace:*", + "@types/node": "^22.7.4", + "@types/react": "^18.3.11", "@types/react-dom": "^18.3.0", - "autoprefixer": "^10.4.19", - "postcss": "^8.4.39", - "tailwindcss": "^3.4.6", - "typescript": "^5.5.3", - "@biomejs/biome": "^1.8.3" + "autoprefixer": "^10.4.20", + "postcss": "^8.4.47", + "tailwindcss": "^3.4.13", + "typescript": "^5.6.2" } } diff --git a/apps/web/public/favicon.png b/apps/web/public/favicon.png index 0f4037fdad24f00d913ac3da039aca7e340b541f..9c3a1dfa29615bde4ec975126ba4e21e4c6c5f32 100644 GIT binary patch literal 45320 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%0AaUt%x(*1CFCN!?X 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%0AP%$_!bp))mdmFbXlO;ayRq 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 S*MC95AM*BH+e%G6&-@=jK!14v diff --git a/apps/web/src/app/page.tsx b/apps/web/src/app/page.tsx index 8a6188d..8c67c35 100644 --- a/apps/web/src/app/page.tsx +++ b/apps/web/src/app/page.tsx @@ -1,9 +1,9 @@ export default function Home() { return (
-

+

Next Essential

diff --git a/apps/web/src/styles/root-layout.css b/apps/web/src/styles/root-layout.css index b5c61c9..3f5b0fd 100644 --- a/apps/web/src/styles/root-layout.css +++ b/apps/web/src/styles/root-layout.css @@ -1,3 +1,26 @@ @tailwind base; @tailwind components; @tailwind utilities; + +@layer base { + :root { + --background: 240 4.8% 95.9%; + --foreground: 240 10% 3.9%; + --primary: 240 5.9% 10%; + --primary-foreground: 0 0% 98%; + --secondary: 240 5.9% 90%; + --secondary-foreground: 240 5.9% 10%; + --muted: 240 4.8% 95.9%; + --muted-foreground: 240 3.8% 46.1%; + } +} + +@layer base { + * { + @apply border-border; + } + + body { + @apply bg-background text-foreground; + } +} diff --git a/apps/web/tailwind.config.ts b/apps/web/tailwind.config.ts index ca3c55c..20c85a4 100644 --- a/apps/web/tailwind.config.ts +++ b/apps/web/tailwind.config.ts @@ -1,13 +1,27 @@ import type { Config } from "tailwindcss"; +import { default as twConfig } from "@repo/tailwind-config/tailwind"; -const config = { - content: ["./src/app/**/*.{ts,tsx}"], - extend: { - fontFamily: { - geistSans: ["var(--font-geist-sans)"], - geistMono: ["var(--font-geist-mono)"], +const config: Pick = { + presets: [ + { + ...twConfig, + content: [ + "./src/app/**/*.{ts,tsx}", + "./src/ui/**/*.tsx", + "./src/content/**/*.mdx", + "../../packages/ui/src/**/*.{ts,tsx}", + ], + theme: { + extend: { + ...twConfig?.theme?.extend, + fontFamily: { + geistSans: ["var(--font-geist-sans)"], + geistMono: ["var(--font-geist-mono)"], + }, + }, + }, }, - }, -} satisfies Config; + ], +}; export default config; diff --git a/apps/web/tsconfig.json b/apps/web/tsconfig.json index 77e8735..e7b239c 100644 --- a/apps/web/tsconfig.json +++ b/apps/web/tsconfig.json @@ -1,30 +1,11 @@ { + "$schema": "https://json.schemastore.org/tsconfig", + "extends": ["@repo/ts-config/next"], "compilerOptions": { - "lib": ["dom", "dom.iterable", "esnext"], - "target": "esnext", - "allowJs": true, - "skipLibCheck": true, - "strict": true, - "noEmit": true, - "esModuleInterop": true, - "module": "esnext", - "moduleResolution": "bundler", - "resolveJsonModule": true, - "isolatedModules": true, - "noUnusedLocals": true, - "noUnusedParameters": true, - "jsx": "preserve", - "incremental": true, - "plugins": [ - { - "name": "next" - } - ], "paths": { - "@/*": ["./src/*"], - "@/public/*": ["./public/*"] + "@/*": ["./src/*"] } }, "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"], - "exclude": ["node_modules"] + "exclude": ["node_modules", ".next", ".turbo"] } diff --git a/biome.json b/biome.json index 85c1f0e..ebada91 100644 --- a/biome.json +++ b/biome.json @@ -1,4 +1,110 @@ { "$schema": "https://biomejs.dev/schemas/1.8.3/schema.json", - "extends": ["./packages/config/biome/base.json"] + "formatter": { + "enabled": true, + "formatWithErrors": false, + "indentStyle": "space", + "indentWidth": 2, + "lineWidth": 80, + "lineEnding": "lf", + "attributePosition": "auto", + "ignore": [ + ".next", + ".vercel", + ".env", + ".changeset", + ".husky", + ".turbo", + "node_modules", + "build", + "dist" + ] + }, + "organizeImports": { + "enabled": true + }, + "linter": { + "enabled": true, + "rules": { + "recommended": true, + "nursery": { + "useSortedClasses": { + "fix": "unsafe", + "level": "warn", + "options": { + "attributes": ["className"], + "functions": ["cn", "cva"] + } + } + }, + "correctness": { + "recommended": true, + "noUnusedVariables": "warn", + "noUnusedImports": "warn" + }, + "style": { + "recommended": true + }, + "complexity": { + "recommended": true + }, + "performance": { + "recommended": true + }, + "suspicious": { + "recommended": true + }, + "a11y": { + "recommended": true + }, + "security": { + "recommended": true + } + }, + "ignore": [ + ".vscode", + ".next", + ".vercel", + ".env", + ".changeset", + ".husky", + ".turbo", + "node_modules", + "build", + "dist" + ] + }, + "javascript": { + "formatter": { + "jsxQuoteStyle": "double", + "quoteProperties": "asNeeded", + "trailingCommas": "es5", + "semicolons": "always", + "arrowParentheses": "always", + "bracketSpacing": true, + "bracketSameLine": false, + "quoteStyle": "double", + "attributePosition": "auto" + } + }, + "css": { + "formatter": { + "enabled": true, + "indentStyle": "space", + "indentWidth": 2, + "lineWidth": 80, + "lineEnding": "lf", + "quoteStyle": "double" + } + }, + "json": { + "formatter": { + "enabled": true, + "indentStyle": "space", + "indentWidth": 2, + "lineWidth": 80, + "lineEnding": "lf", + "trailingCommas": "none" + } + } } diff --git a/package.json b/package.json index aacb27f..130557f 100644 --- a/package.json +++ b/package.json @@ -5,18 +5,19 @@ "build": "turbo build", "dev": "turbo dev", "typecheck": "turbo typecheck", - "lint": "turbo lint", - "format": "turbo format", + "lint": "biome lint --write .", + "lint:fix": "biome lint --write --unsafe .", + "format": "biome format --write .", "prepare": "husky" }, "devDependencies": { - "@biomejs/biome": "^1.8.3", + "@biomejs/biome": "^1.9.3", "@changesets/changelog-github": "^0.5.0", - "@changesets/cli": "^2.27.7", - "husky": "^9.1.4", - "turbo": "^2.0.12" + "@changesets/cli": "^2.27.9", + "husky": "^9.1.6", + "turbo": "^2.1.3" }, - "packageManager": "pnpm@9.7.0", + "packageManager": "pnpm@9.12.0", "engines": { "node": ">=20" } diff --git a/packages/config/biome/base.json b/packages/config/biome/base.json deleted file mode 100644 index 60036d9..0000000 --- a/packages/config/biome/base.json +++ /dev/null @@ -1,97 +0,0 @@ -{ - "$schema": "https://biomejs.dev/schemas/1.8.3/schema.json", - "formatter": { - "enabled": true, - "formatWithErrors": false, - "indentStyle": "space", - "indentWidth": 2, - "lineWidth": 80, - "lineEnding": "lf", - "attributePosition": "auto", - "ignore": [ - ".vscode", - ".next", - ".vercel", - ".env", - ".changeset", - ".husky", - "node_modules", - "build", - "dist" - ] - }, - "organizeImports": { - "enabled": true - }, - "linter": { - "enabled": true, - "rules": { - "recommended": true, - "correctness": { - "noUnusedVariables": "warn" - }, - "style": { - "recommended": true - }, - "complexity": { - "recommended": true - }, - "performance": { - "recommended": true - }, - "suspicious": { - "recommended": true - }, - "a11y": { - "recommended": true - }, - "security": { - "recommended": true - } - }, - "ignore": [ - ".vscode", - ".next", - ".vercel", - ".env", - ".changeset", - ".husky", - "node_modules", - "build", - "dist" - ] - }, - "javascript": { - "formatter": { - "jsxQuoteStyle": "double", - "quoteProperties": "asNeeded", - "trailingCommas": "es5", - "semicolons": "always", - "arrowParentheses": "always", - "bracketSpacing": true, - "bracketSameLine": false, - "quoteStyle": "double", - "attributePosition": "auto" - } - }, - "css": { - "formatter": { - "enabled": true, - "indentStyle": "space", - "indentWidth": 2, - "lineWidth": 80, - "lineEnding": "lf", - "quoteStyle": "double" - } - }, - "json": { - "formatter": { - "enabled": true, - "indentStyle": "space", - "indentWidth": 2, - "lineWidth": 80, - "lineEnding": "lf", - "trailingCommas": "none" - } - } -} diff --git a/packages/config/package.json b/packages/config/package.json deleted file mode 100644 index 25a23fd..0000000 --- a/packages/config/package.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "name": "@repo/config", - "private": true, - "version": "0.0.0", - "license": "MIT", - "publishConfig": { - "access": "public" - } -} \ No newline at end of file diff --git a/packages/lib/.gitignore b/packages/lib/.gitignore new file mode 100644 index 0000000..be8e7d7 --- /dev/null +++ b/packages/lib/.gitignore @@ -0,0 +1,8 @@ +# dependencies +/node_modules + +# production +/build + +# builds +.turbo \ No newline at end of file diff --git a/packages/lib/README.md b/packages/lib/README.md new file mode 100644 index 0000000..72d9167 --- /dev/null +++ b/packages/lib/README.md @@ -0,0 +1,3 @@ +# @repo/lib + +This is the shared library for the Turborepo.. diff --git a/packages/lib/package.json b/packages/lib/package.json new file mode 100644 index 0000000..766c194 --- /dev/null +++ b/packages/lib/package.json @@ -0,0 +1,26 @@ +{ + "name": "@repo/lib", + "version": "0.0.0", + "description": "Turborepo's shared library package.", + "type": "module", + "publishConfig": { + "access": "public" + }, + "exports": { + ".": { + "types": "./src/index.ts", + "import": "./src/index.ts" + } + }, + "scripts": { + "typecheck": "tsc --noEmit" + }, + "devDependencies": { + "typescript": "5.6.2", + "@repo/ts-config": "workspace:*" + }, + "dependencies": { + "clsx": "^2.1.1", + "tailwind-merge": "^2.5.3" + } +} diff --git a/packages/lib/src/index.ts b/packages/lib/src/index.ts new file mode 100644 index 0000000..50002d6 --- /dev/null +++ b/packages/lib/src/index.ts @@ -0,0 +1 @@ +export { cn } from "../src/utils/utils"; diff --git a/packages/lib/src/utils/utils.ts b/packages/lib/src/utils/utils.ts new file mode 100644 index 0000000..a5ef193 --- /dev/null +++ b/packages/lib/src/utils/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/packages/lib/tsconfig.json b/packages/lib/tsconfig.json new file mode 100644 index 0000000..7c65508 --- /dev/null +++ b/packages/lib/tsconfig.json @@ -0,0 +1,5 @@ +{ + "extends": ["@repo/ts-config/base"], + "include": ["."], + "exclude": ["node_modules", ".turbo", "dist", "build"] +} diff --git a/packages/tailwind-config/.gitignore b/packages/tailwind-config/.gitignore new file mode 100644 index 0000000..be8e7d7 --- /dev/null +++ b/packages/tailwind-config/.gitignore @@ -0,0 +1,8 @@ +# dependencies +/node_modules + +# production +/build + +# builds +.turbo \ No newline at end of file diff --git a/packages/tailwind-config/README.md b/packages/tailwind-config/README.md new file mode 100644 index 0000000..f489cb3 --- /dev/null +++ b/packages/tailwind-config/README.md @@ -0,0 +1,3 @@ +# @repo/tailwind-config + +This is the Tailwind config for the Turborepo.. diff --git a/packages/tailwind-config/configs/tailwind-presets.ts b/packages/tailwind-config/configs/tailwind-presets.ts new file mode 100644 index 0000000..37fb73e --- /dev/null +++ b/packages/tailwind-config/configs/tailwind-presets.ts @@ -0,0 +1,29 @@ +import type { Config } from "tailwindcss"; +import { default as twAnimate } from "tailwindcss-animate"; + +const config: Config = { + content: ["./src/**/*.{js,ts,jsx,tsx,md,mdx}"], + theme: { + extend: { + colors: { + background: "hsl(var(--background))", + foreground: "hsl(var(--foreground))", + primary: { + DEFAULT: "hsl(var(--primary))", + foreground: "hsl(var(--primary-foreground))", + }, + secondary: { + DEFAULT: "hsl(var(--secondary))", + foreground: "hsl(var(--secondary-foreground))", + }, + muted: { + DEFAULT: "hsl(var(--muted))", + foreground: "hsl(var(--muted-foreground))", + }, + }, + }, + }, + plugins: [twAnimate], +}; + +export default config; diff --git a/packages/tailwind-config/package.json b/packages/tailwind-config/package.json new file mode 100644 index 0000000..037254e --- /dev/null +++ b/packages/tailwind-config/package.json @@ -0,0 +1,18 @@ +{ + "name": "@repo/tailwind-config", + "version": "0.1.0", + "description": "Turborepo's shared TailwindCSS Config", + "type": "module", + "publishConfig": { + "access": "public" + }, + "exports": { + "./tailwind": "./configs/tailwind-presets.ts" + }, + "devDependencies": { + "tailwindcss": "^3.4.13" + }, + "dependencies": { + "tailwindcss-animate": "^1.0.7" + } +} diff --git a/packages/ts-config/.gitignore b/packages/ts-config/.gitignore new file mode 100644 index 0000000..be8e7d7 --- /dev/null +++ b/packages/ts-config/.gitignore @@ -0,0 +1,8 @@ +# dependencies +/node_modules + +# production +/build + +# builds +.turbo \ No newline at end of file diff --git a/packages/ts-config/README.md b/packages/ts-config/README.md new file mode 100644 index 0000000..6080490 --- /dev/null +++ b/packages/ts-config/README.md @@ -0,0 +1,3 @@ +# @repo/ts-config + +This is the typescript config for the Turborepo.. diff --git a/packages/ts-config/configs/base.json b/packages/ts-config/configs/base.json new file mode 100644 index 0000000..ebd4555 --- /dev/null +++ b/packages/ts-config/configs/base.json @@ -0,0 +1,21 @@ +{ + "$schema": "https://json.schemastore.org/tsconfig", + "display": "Base TypeScript Config", + "compilerOptions": { + "target": "ES6", + "module": "ESNext", + "lib": ["ES2015", "DOM"], + "moduleResolution": "bundler", + "esModuleInterop": true, + "strict": true, + "strictNullChecks": true, + "resolveJsonModule": true, + "skipLibCheck": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noEmit": true, + "forceConsistentCasingInFileNames": true, + "isolatedModules": true + }, + "exclude": ["node_modules"] +} diff --git a/packages/ts-config/configs/next.json b/packages/ts-config/configs/next.json new file mode 100644 index 0000000..0050ae4 --- /dev/null +++ b/packages/ts-config/configs/next.json @@ -0,0 +1,19 @@ +{ + "$schema": "https://json.schemastore.org/tsconfig", + "display": "Next.js TypeScript Config", + "extends": "./base.json", + "compilerOptions": { + "target": "esnext", + "lib": ["dom", "dom.iterable", "esnext"], + "allowJs": true, + "jsx": "preserve", + "incremental": true, + "plugins": [ + { + "name": "next" + } + ] + }, + "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"], + "exclude": ["node_modules", ".next", ".turbo"] +} diff --git a/packages/ts-config/configs/react.json b/packages/ts-config/configs/react.json new file mode 100644 index 0000000..67a68d5 --- /dev/null +++ b/packages/ts-config/configs/react.json @@ -0,0 +1,18 @@ +{ + "$schema": "https://json.schemastore.org/tsconfig", + "display": "React Library TypeScript Config", + "extends": "./base.json", + "compilerOptions": { + "jsx": "react-jsx", + "lib": ["ES2015", "DOM"], + "module": "ESNext", + "target": "ES6", + "declaration": true, + "declarationMap": true, + "inlineSources": false, + "noUnusedLocals": false, + "noUnusedParameters": false, + "preserveWatchOutput": true, + "allowImportingTsExtensions": true + } +} diff --git a/packages/ts-config/package.json b/packages/ts-config/package.json new file mode 100644 index 0000000..4668e55 --- /dev/null +++ b/packages/ts-config/package.json @@ -0,0 +1,17 @@ +{ + "name": "@repo/ts-config", + "version": "0.1.0", + "description": "Turborepo's shared TypeScript Config", + "type": "module", + "publishConfig": { + "access": "public" + }, + "exports": { + "./base": "./configs/base.json", + "./react": "./configs/react.json", + "./next": "./configs/next.json" + }, + "devDependencies": { + "typescript": "5.6.2" + } +} diff --git a/packages/typescript-config/base.json b/packages/typescript-config/base.json deleted file mode 100644 index 0f80cfd..0000000 --- a/packages/typescript-config/base.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "$schema": "https://json.schemastore.org/tsconfig", - "display": "Default", - "compilerOptions": { - "declaration": true, - "declarationMap": true, - "esModuleInterop": true, - "incremental": false, - "isolatedModules": true, - "lib": ["es2022", "DOM", "DOM.Iterable"], - "module": "NodeNext", - "moduleDetection": "force", - "moduleResolution": "NodeNext", - "noUncheckedIndexedAccess": true, - "resolveJsonModule": true, - "skipLibCheck": true, - "strict": true, - "target": "ES2022" - } -} diff --git a/packages/typescript-config/nextjs.json b/packages/typescript-config/nextjs.json deleted file mode 100644 index 44f4289..0000000 --- a/packages/typescript-config/nextjs.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "$schema": "https://json.schemastore.org/tsconfig", - "display": "Next.js", - "extends": "./base.json", - "compilerOptions": { - "plugins": [{ "name": "next" }], - "module": "ESNext", - "moduleResolution": "Bundler", - "allowJs": true, - "jsx": "preserve", - "noEmit": true - } -} diff --git a/packages/typescript-config/package.json b/packages/typescript-config/package.json deleted file mode 100644 index 27c0e60..0000000 --- a/packages/typescript-config/package.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "name": "@repo/typescript-config", - "version": "0.0.0", - "private": true, - "license": "MIT", - "publishConfig": { - "access": "public" - } -} diff --git a/packages/typescript-config/react-library.json b/packages/typescript-config/react-library.json deleted file mode 100644 index 44924d9..0000000 --- a/packages/typescript-config/react-library.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "$schema": "https://json.schemastore.org/tsconfig", - "display": "React Library", - "extends": "./base.json", - "compilerOptions": { - "jsx": "react-jsx" - } -} diff --git a/packages/ui/.gitignore b/packages/ui/.gitignore new file mode 100644 index 0000000..be8e7d7 --- /dev/null +++ b/packages/ui/.gitignore @@ -0,0 +1,8 @@ +# dependencies +/node_modules + +# production +/build + +# builds +.turbo \ No newline at end of file diff --git a/packages/ui/README.md b/packages/ui/README.md new file mode 100644 index 0000000..1f60f36 --- /dev/null +++ b/packages/ui/README.md @@ -0,0 +1,3 @@ +# @repo/ui + +This is the shared UI for the Turborepo.. diff --git a/packages/ui/package.json b/packages/ui/package.json index f30eafb..8938653 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -2,24 +2,28 @@ "name": "@repo/ui", "version": "0.0.0", "private": true, + "type": "module", "exports": { - "./button": "./src/button.tsx", - "./card": "./src/card.tsx", - "./code": "./src/code.tsx" - }, - "scripts": { - "lint": "", - "typecheck": "", - "format": "" + ".": { + "import": "./src/index.ts", + "types": "./src/index.ts" + } }, "devDependencies": { - "@repo/typescript-config": "workspace:*", - "@types/node": "^22.1.0", - "@types/react": "^18.3.3", + "@repo/tailwind-config": "workspace:*", + "@repo/ts-config": "workspace:*", + "@types/node": "^22.7.4", + "@types/react": "^18.3.11", "@types/react-dom": "^18.3.0", - "typescript": "^5.5.4" + "autoprefixer": "^10.4.20", + "postcss": "^8.4.47", + "tailwindcss": "^3.4.13", + "typescript": "^5.6.2" }, "dependencies": { + "@repo/lib": "workspace:*", + "@radix-ui/react-label": "^2.1.0", + "class-variance-authority": "^0.7.0", "react": "^18.3.1" } } diff --git a/packages/ui/postcss.config.mjs b/packages/ui/postcss.config.mjs new file mode 100644 index 0000000..8b3a9f7 --- /dev/null +++ b/packages/ui/postcss.config.mjs @@ -0,0 +1,10 @@ +/** @type {import('postcss-load-config').Config} */ + +const config = { + plugins: { + tailwindcss: {}, + autoprefixer: {}, + }, +}; + +export default config; diff --git a/packages/ui/src/button.tsx b/packages/ui/src/button.tsx deleted file mode 100644 index 3f7f99f..0000000 --- a/packages/ui/src/button.tsx +++ /dev/null @@ -1,21 +0,0 @@ -"use client"; - -import type { ReactNode } from "react"; - -interface ButtonProps { - children: ReactNode; - className?: string; - appName: string; -} - -export const Button = ({ children, className, appName }: ButtonProps) => { - return ( - - ); -}; diff --git a/packages/ui/src/card.tsx b/packages/ui/src/card.tsx deleted file mode 100644 index f69672e..0000000 --- a/packages/ui/src/card.tsx +++ /dev/null @@ -1,25 +0,0 @@ -export function Card({ - className, - title, - children, - href, -}: { - className?: string; - title: string; - children: React.ReactNode; - href: string; -}): JSX.Element { - return ( - -

- {title} -> -

-

{children}

-
- ); -} diff --git a/packages/ui/src/code.tsx b/packages/ui/src/code.tsx deleted file mode 100644 index 769d971..0000000 --- a/packages/ui/src/code.tsx +++ /dev/null @@ -1,9 +0,0 @@ -export function Code({ - children, - className, -}: { - children: React.ReactNode; - className?: string; -}): JSX.Element { - return {children}; -} diff --git a/packages/ui/src/index.ts b/packages/ui/src/index.ts new file mode 100644 index 0000000..8dbc0fe --- /dev/null +++ b/packages/ui/src/index.ts @@ -0,0 +1 @@ +export { Label } from "./primitives/label"; diff --git a/packages/ui/src/primitives/label.tsx b/packages/ui/src/primitives/label.tsx new file mode 100644 index 0000000..e96ef02 --- /dev/null +++ b/packages/ui/src/primitives/label.tsx @@ -0,0 +1,26 @@ +"use client"; + +import * as React from "react"; +import * as LabelPrimitive from "@radix-ui/react-label"; +import { cva, type VariantProps } from "class-variance-authority"; +import { cn } from "@repo/lib"; + +const labelVariants = cva( + "font-medium text-sm leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70" +); + +const Label = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef & + VariantProps +>(({ className, ...props }, ref) => ( + +)); + +Label.displayName = LabelPrimitive.Root.displayName; + +export { Label }; diff --git a/packages/ui/src/styles/root.css b/packages/ui/src/styles/root.css new file mode 100644 index 0000000..b5c61c9 --- /dev/null +++ b/packages/ui/src/styles/root.css @@ -0,0 +1,3 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; diff --git a/packages/ui/tailwind.config.ts b/packages/ui/tailwind.config.ts new file mode 100644 index 0000000..f1b3a40 --- /dev/null +++ b/packages/ui/tailwind.config.ts @@ -0,0 +1,14 @@ +import type { Config } from "tailwindcss"; +import { default as twConfig } from "@repo/tailwind-config/tailwind"; + +const config: Pick = { + presets: [ + { + ...twConfig, + content: ["./src/**/*.{ts,tsx}"], + theme: {}, + }, + ], +}; + +export default config; diff --git a/packages/ui/tsconfig.json b/packages/ui/tsconfig.json index ca86687..1894138 100644 --- a/packages/ui/tsconfig.json +++ b/packages/ui/tsconfig.json @@ -1,8 +1,5 @@ { - "extends": "@repo/typescript-config/react-library.json", - "compilerOptions": { - "outDir": "dist" - }, - "include": ["src"], + "extends": "@repo/ts-config/react", + "include": ["./src/**/*.ts", "./src/**/*.tsx"], "exclude": ["node_modules", "dist"] } diff --git a/packages/ui/tsconfig.lint.json b/packages/ui/tsconfig.lint.json deleted file mode 100644 index df2762e..0000000 --- a/packages/ui/tsconfig.lint.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "extends": "@repo/typescript-config/react-library.json", - "compilerOptions": { - "outDir": "dist" - }, - "include": ["src", "turbo"], - "exclude": ["node_modules", "dist"] -} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b5859be..699e5ec 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -9,29 +9,35 @@ importers: .: devDependencies: '@biomejs/biome': - specifier: ^1.8.3 - version: 1.8.3 + specifier: ^1.9.3 + version: 1.9.3 '@changesets/changelog-github': specifier: ^0.5.0 version: 0.5.0 '@changesets/cli': - specifier: ^2.27.7 - version: 2.27.7 + specifier: ^2.27.9 + version: 2.27.9 husky: - specifier: ^9.1.4 - version: 9.1.4 + specifier: ^9.1.6 + version: 9.1.6 turbo: - specifier: ^2.0.12 - version: 2.0.12 + specifier: ^2.1.3 + version: 2.1.3 apps/web: dependencies: + '@repo/lib': + specifier: workspace:* + version: link:../../packages/lib + '@repo/ui': + specifier: workspace:* + version: link:../../packages/ui geist: specifier: ^1.3.1 - version: 1.3.1(next@14.2.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) + version: 1.3.1(next@14.2.14(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) next: - specifier: 14.2.5 - version: 14.2.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: 14.2.14 + version: 14.2.14(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: specifier: ^18.3.1 version: 18.3.1 @@ -39,56 +45,108 @@ importers: specifier: ^18.3.1 version: 18.3.1(react@18.3.1) devDependencies: - '@biomejs/biome': - specifier: ^1.8.3 - version: 1.8.3 + '@repo/tailwind-config': + specifier: workspace:* + version: link:../../packages/tailwind-config + '@repo/ts-config': + specifier: workspace:* + version: link:../../packages/ts-config '@types/node': - specifier: ^20.14.11 - version: 20.14.14 + specifier: ^22.7.4 + version: 22.7.4 '@types/react': - specifier: ^18.3.3 - version: 18.3.3 + specifier: ^18.3.11 + version: 18.3.11 '@types/react-dom': specifier: ^18.3.0 version: 18.3.0 autoprefixer: - specifier: ^10.4.19 - version: 10.4.20(postcss@8.4.41) + specifier: ^10.4.20 + version: 10.4.20(postcss@8.4.47) postcss: - specifier: ^8.4.39 - version: 8.4.41 + specifier: ^8.4.47 + version: 8.4.47 tailwindcss: - specifier: ^3.4.6 - version: 3.4.9 + specifier: ^3.4.13 + version: 3.4.13 + typescript: + specifier: ^5.6.2 + version: 5.6.2 + + packages/lib: + dependencies: + clsx: + specifier: ^2.1.1 + version: 2.1.1 + tailwind-merge: + specifier: ^2.5.3 + version: 2.5.3 + devDependencies: + '@repo/ts-config': + specifier: workspace:* + version: link:../ts-config typescript: - specifier: ^5.5.3 - version: 5.5.4 + specifier: 5.6.2 + version: 5.6.2 - packages/config: {} + packages/tailwind-config: + dependencies: + tailwindcss-animate: + specifier: ^1.0.7 + version: 1.0.7(tailwindcss@3.4.13) + devDependencies: + tailwindcss: + specifier: ^3.4.13 + version: 3.4.13 - packages/typescript-config: {} + packages/ts-config: + devDependencies: + typescript: + specifier: 5.6.2 + version: 5.6.2 packages/ui: dependencies: + '@radix-ui/react-label': + specifier: ^2.1.0 + version: 2.1.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@repo/lib': + specifier: workspace:* + version: link:../lib + class-variance-authority: + specifier: ^0.7.0 + version: 0.7.0 react: specifier: ^18.3.1 version: 18.3.1 devDependencies: - '@repo/typescript-config': + '@repo/tailwind-config': + specifier: workspace:* + version: link:../tailwind-config + '@repo/ts-config': specifier: workspace:* - version: link:../typescript-config + version: link:../ts-config '@types/node': - specifier: ^22.1.0 - version: 22.1.0 + specifier: ^22.7.4 + version: 22.7.4 '@types/react': - specifier: ^18.3.3 - version: 18.3.3 + specifier: ^18.3.11 + version: 18.3.11 '@types/react-dom': specifier: ^18.3.0 version: 18.3.0 + autoprefixer: + specifier: ^10.4.20 + version: 10.4.20(postcss@8.4.47) + postcss: + specifier: ^8.4.47 + version: 8.4.47 + tailwindcss: + specifier: ^3.4.13 + version: 3.4.13 typescript: - specifier: ^5.5.4 - version: 5.5.4 + specifier: ^5.6.2 + version: 5.6.2 packages: @@ -96,68 +154,68 @@ packages: resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} engines: {node: '>=10'} - '@babel/runtime@7.25.0': - resolution: {integrity: sha512-7dRy4DwXwtzBrPbZflqxnvfxLF8kdZXPkhymtDeFoFqE6ldzjQFgYTtYIFARcLEYDrqfBfYcZt1WqFxRoyC9Rw==} + '@babel/runtime@7.25.7': + resolution: {integrity: sha512-FjoyLe754PMiYsFaN5C94ttGiOmBNYTf6pLr4xXHAT5uctHb092PBszndLDR5XA/jghQvn4n7JMHl7dmTgbm9w==} engines: {node: '>=6.9.0'} - '@biomejs/biome@1.8.3': - resolution: {integrity: sha512-/uUV3MV+vyAczO+vKrPdOW0Iaet7UnJMU4bNMinggGJTAnBPjCoLEYcyYtYHNnUNYlv4xZMH6hVIQCAozq8d5w==} + '@biomejs/biome@1.9.3': + resolution: {integrity: sha512-POjAPz0APAmX33WOQFGQrwLvlu7WLV4CFJMlB12b6ZSg+2q6fYu9kZwLCOA+x83zXfcPd1RpuWOKJW0GbBwLIQ==} engines: {node: '>=14.21.3'} hasBin: true - '@biomejs/cli-darwin-arm64@1.8.3': - resolution: {integrity: sha512-9DYOjclFpKrH/m1Oz75SSExR8VKvNSSsLnVIqdnKexj6NwmiMlKk94Wa1kZEdv6MCOHGHgyyoV57Cw8WzL5n3A==} + '@biomejs/cli-darwin-arm64@1.9.3': + resolution: {integrity: sha512-QZzD2XrjJDUyIZK+aR2i5DDxCJfdwiYbUKu9GzkCUJpL78uSelAHAPy7m0GuPMVtF/Uo+OKv97W3P9nuWZangQ==} engines: {node: '>=14.21.3'} cpu: [arm64] os: [darwin] - '@biomejs/cli-darwin-x64@1.8.3': - resolution: {integrity: sha512-UeW44L/AtbmOF7KXLCoM+9PSgPo0IDcyEUfIoOXYeANaNXXf9mLUwV1GeF2OWjyic5zj6CnAJ9uzk2LT3v/wAw==} + '@biomejs/cli-darwin-x64@1.9.3': + resolution: {integrity: sha512-vSCoIBJE0BN3SWDFuAY/tRavpUtNoqiceJ5PrU3xDfsLcm/U6N93JSM0M9OAiC/X7mPPfejtr6Yc9vSgWlEgVw==} engines: {node: '>=14.21.3'} cpu: [x64] os: [darwin] - '@biomejs/cli-linux-arm64-musl@1.8.3': - resolution: {integrity: sha512-9yjUfOFN7wrYsXt/T/gEWfvVxKlnh3yBpnScw98IF+oOeCYb5/b/+K7YNqKROV2i1DlMjg9g/EcN9wvj+NkMuQ==} + '@biomejs/cli-linux-arm64-musl@1.9.3': + resolution: {integrity: sha512-VBzyhaqqqwP3bAkkBrhVq50i3Uj9+RWuj+pYmXrMDgjS5+SKYGE56BwNw4l8hR3SmYbLSbEo15GcV043CDSk+Q==} engines: {node: '>=14.21.3'} cpu: [arm64] os: [linux] - '@biomejs/cli-linux-arm64@1.8.3': - resolution: {integrity: sha512-fed2ji8s+I/m8upWpTJGanqiJ0rnlHOK3DdxsyVLZQ8ClY6qLuPc9uehCREBifRJLl/iJyQpHIRufLDeotsPtw==} + '@biomejs/cli-linux-arm64@1.9.3': + resolution: {integrity: sha512-vJkAimD2+sVviNTbaWOGqEBy31cW0ZB52KtpVIbkuma7PlfII3tsLhFa+cwbRAcRBkobBBhqZ06hXoZAN8NODQ==} engines: {node: '>=14.21.3'} cpu: [arm64] os: [linux] - '@biomejs/cli-linux-x64-musl@1.8.3': - resolution: {integrity: sha512-UHrGJX7PrKMKzPGoEsooKC9jXJMa28TUSMjcIlbDnIO4EAavCoVmNQaIuUSH0Ls2mpGMwUIf+aZJv657zfWWjA==} + '@biomejs/cli-linux-x64-musl@1.9.3': + resolution: {integrity: sha512-TJmnOG2+NOGM72mlczEsNki9UT+XAsMFAOo8J0me/N47EJ/vkLXxf481evfHLlxMejTY6IN8SdRSiPVLv6AHlA==} engines: {node: '>=14.21.3'} cpu: [x64] os: [linux] - '@biomejs/cli-linux-x64@1.8.3': - resolution: {integrity: sha512-I8G2QmuE1teISyT8ie1HXsjFRz9L1m5n83U1O6m30Kw+kPMPSKjag6QGUn+sXT8V+XWIZxFFBoTDEDZW2KPDDw==} + '@biomejs/cli-linux-x64@1.9.3': + resolution: {integrity: sha512-x220V4c+romd26Mu1ptU+EudMXVS4xmzKxPVb9mgnfYlN4Yx9vD5NZraSx/onJnd3Gh/y8iPUdU5CDZJKg9COA==} engines: {node: '>=14.21.3'} cpu: [x64] os: [linux] - '@biomejs/cli-win32-arm64@1.8.3': - resolution: {integrity: sha512-J+Hu9WvrBevfy06eU1Na0lpc7uR9tibm9maHynLIoAjLZpQU3IW+OKHUtyL8p6/3pT2Ju5t5emReeIS2SAxhkQ==} + '@biomejs/cli-win32-arm64@1.9.3': + resolution: {integrity: sha512-lg/yZis2HdQGsycUvHWSzo9kOvnGgvtrYRgoCEwPBwwAL8/6crOp3+f47tPwI/LI1dZrhSji7PNsGKGHbwyAhw==} engines: {node: '>=14.21.3'} cpu: [arm64] os: [win32] - '@biomejs/cli-win32-x64@1.8.3': - resolution: {integrity: sha512-/PJ59vA1pnQeKahemaQf4Nyj7IKUvGQSc3Ze1uIGi+Wvr1xF7rGobSrAAG01T/gUDG21vkDsZYM03NAmPiVkqg==} + '@biomejs/cli-win32-x64@1.9.3': + resolution: {integrity: sha512-cQMy2zanBkVLpmmxXdK6YePzmZx0s5Z7KEnwmrW54rcXK3myCNbQa09SwGZ8i/8sLw0H9F3X7K4rxVNGU8/D4Q==} engines: {node: '>=14.21.3'} cpu: [x64] os: [win32] - '@changesets/apply-release-plan@7.0.4': - resolution: {integrity: sha512-HLFwhKWayKinWAul0Vj+76jVx1Pc2v55MGPVjZ924Y/ROeSsBMFutv9heHmCUj48lJyRfOTJG5+ar+29FUky/A==} + '@changesets/apply-release-plan@7.0.5': + resolution: {integrity: sha512-1cWCk+ZshEkSVEZrm2fSj1Gz8sYvxgUL4Q78+1ZZqeqfuevPTPk033/yUZ3df8BKMohkqqHfzj0HOOrG0KtXTw==} - '@changesets/assemble-release-plan@6.0.3': - resolution: {integrity: sha512-bLNh9/Lgl1VwkjWZTq8JmRqH+hj7/Yzfz0jsQ/zJJ+FTmVqmqPj3szeKOri8O/hEM8JmHW019vh2gTO9iq5Cuw==} + '@changesets/assemble-release-plan@6.0.4': + resolution: {integrity: sha512-nqICnvmrwWj4w2x0fOhVj2QEGdlUuwVAwESrUo5HLzWMI1rE5SWfsr9ln+rDqWB6RQ2ZyaMZHUcU7/IRaUJS+Q==} '@changesets/changelog-git@0.2.0': resolution: {integrity: sha512-bHOx97iFI4OClIT35Lok3sJAwM31VbUM++gnMBV16fdbtBhgYu4dxsphBF/0AZZsyAHMrnM0yFcj5gZM1py6uQ==} @@ -165,45 +223,45 @@ packages: '@changesets/changelog-github@0.5.0': resolution: {integrity: sha512-zoeq2LJJVcPJcIotHRJEEA2qCqX0AQIeFE+L21L8sRLPVqDhSXY8ZWAt2sohtBpFZkBwu+LUwMSKRr2lMy3LJA==} - '@changesets/cli@2.27.7': - resolution: {integrity: sha512-6lr8JltiiXPIjDeYg4iM2MeePP6VN/JkmqBsVA5XRiy01hGS3y629LtSDvKcycj/w/5Eur1rEwby/MjcYS+e2A==} + '@changesets/cli@2.27.9': + resolution: {integrity: sha512-q42a/ZbDnxPpCb5Wkm6tMVIxgeI9C/bexntzTeCFBrQEdpisQqk8kCHllYZMDjYtEc1ZzumbMJAG8H0Z4rdvjg==} hasBin: true - '@changesets/config@3.0.2': - resolution: {integrity: sha512-cdEhS4t8woKCX2M8AotcV2BOWnBp09sqICxKapgLHf9m5KdENpWjyrFNMjkLqGJtUys9U+w93OxWT0czorVDfw==} + '@changesets/config@3.0.3': + resolution: {integrity: sha512-vqgQZMyIcuIpw9nqFIpTSNyc/wgm/Lu1zKN5vECy74u95Qx/Wa9g27HdgO4NkVAaq+BGA8wUc/qvbvVNs93n6A==} '@changesets/errors@0.2.0': resolution: {integrity: sha512-6BLOQUscTpZeGljvyQXlWOItQyU71kCdGz7Pi8H8zdw6BI0g3m43iL4xKUVPWtG+qrrL9DTjpdn8eYuCQSRpow==} - '@changesets/get-dependents-graph@2.1.1': - resolution: {integrity: sha512-LRFjjvigBSzfnPU2n/AhFsuWR5DK++1x47aq6qZ8dzYsPtS/I5mNhIGAS68IAxh1xjO9BTtz55FwefhANZ+FCA==} + '@changesets/get-dependents-graph@2.1.2': + resolution: {integrity: sha512-sgcHRkiBY9i4zWYBwlVyAjEM9sAzs4wYVwJUdnbDLnVG3QwAaia1Mk5P8M7kraTOZN+vBET7n8KyB0YXCbFRLQ==} '@changesets/get-github-info@0.6.0': resolution: {integrity: sha512-v/TSnFVXI8vzX9/w3DU2Ol+UlTZcu3m0kXTjTT4KlAdwSvwutcByYwyYn9hwerPWfPkT2JfpoX0KgvCEi8Q/SA==} - '@changesets/get-release-plan@4.0.3': - resolution: {integrity: sha512-6PLgvOIwTSdJPTtpdcr3sLtGatT+Jr22+cQwEBJBy6wP0rjB4yJ9lv583J9fVpn1bfQlBkDa8JxbS2g/n9lIyA==} + '@changesets/get-release-plan@4.0.4': + resolution: {integrity: sha512-SicG/S67JmPTrdcc9Vpu0wSQt7IiuN0dc8iR5VScnnTVPfIaLvKmEGRvIaF0kcn8u5ZqLbormZNTO77bCEvyWw==} '@changesets/get-version-range-type@0.4.0': resolution: {integrity: sha512-hwawtob9DryoGTpixy1D3ZXbGgJu1Rhr+ySH2PvTLHvkZuQ7sRT4oQwMh0hbqZH1weAooedEjRsbrWcGLCeyVQ==} - '@changesets/git@3.0.0': - resolution: {integrity: sha512-vvhnZDHe2eiBNRFHEgMiGd2CT+164dfYyrJDhwwxTVD/OW0FUD6G7+4DIx1dNwkwjHyzisxGAU96q0sVNBns0w==} + '@changesets/git@3.0.1': + resolution: {integrity: sha512-pdgHcYBLCPcLd82aRcuO0kxCDbw/yISlOtkmwmE8Odo1L6hSiZrBOsRl84eYG7DRCab/iHnOkWqExqc4wxk2LQ==} - '@changesets/logger@0.1.0': - resolution: {integrity: sha512-pBrJm4CQm9VqFVwWnSqKEfsS2ESnwqwH+xR7jETxIErZcfd1u2zBSqrHbRHR7xjhSgep9x2PSKFKY//FAshA3g==} + '@changesets/logger@0.1.1': + resolution: {integrity: sha512-OQtR36ZlnuTxKqoW4Sv6x5YIhOmClRd5pWsjZsddYxpWs517R0HkyiefQPIytCVh4ZcC5x9XaG8KTdd5iRQUfg==} '@changesets/parse@0.4.0': resolution: {integrity: sha512-TS/9KG2CdGXS27S+QxbZXgr8uPsP4yNJYb4BC2/NeFUj80Rni3TeD2qwWmabymxmrLo7JEsytXH1FbpKTbvivw==} - '@changesets/pre@2.0.0': - resolution: {integrity: sha512-HLTNYX/A4jZxc+Sq8D1AMBsv+1qD6rmmJtjsCJa/9MSRybdxh0mjbTvE6JYZQ/ZiQ0mMlDOlGPXTm9KLTU3jyw==} + '@changesets/pre@2.0.1': + resolution: {integrity: sha512-vvBJ/If4jKM4tPz9JdY2kGOgWmCowUYOi5Ycv8dyLnEE8FgpYYUo1mgJZxcdtGGP3aG8rAQulGLyyXGSLkIMTQ==} - '@changesets/read@0.6.0': - resolution: {integrity: sha512-ZypqX8+/im1Fm98K4YcZtmLKgjs1kDQ5zHpc2U1qdtNBmZZfo/IBiG162RoP0CUF05tvp2y4IspH11PLnPxuuw==} + '@changesets/read@0.6.1': + resolution: {integrity: sha512-jYMbyXQk3nwP25nRzQQGa1nKLY0KfoOV7VLgwucI0bUO8t8ZLCr6LZmgjXsiKuRDc+5A6doKPr9w2d+FEJ55zQ==} - '@changesets/should-skip-package@0.1.0': - resolution: {integrity: sha512-FxG6Mhjw7yFStlSM7Z0Gmg3RiyQ98d/9VpQAZ3Fzr59dCOM9G6ZdYbjiSAt0XtFr9JR5U2tBaJWPjrkGGc618g==} + '@changesets/should-skip-package@0.1.1': + resolution: {integrity: sha512-H9LjLbF6mMHLtJIc/eHR9Na+MifJ3VxtgP/Y+XLn4BF7tDTEN1HNYtH6QMcjP1uxp9sjaFYmW8xqloaCi/ckTg==} '@changesets/types@4.1.0': resolution: {integrity: sha512-LDQvVDv5Kb50ny2s25Fhm3d9QSZimsoUGBsUioj6MC3qbMUCuC8GPIvk/M6IvXx3lYhAs0lwWUQLb+VIEUCECw==} @@ -211,8 +269,8 @@ packages: '@changesets/types@6.0.0': resolution: {integrity: sha512-b1UkfNulgKoWfqyHtzKS5fOZYSJO+77adgL7DLRDr+/7jhChN+QcHnbjiQVOz/U+Ts3PGNySq7diAItzDgugfQ==} - '@changesets/write@0.3.1': - resolution: {integrity: sha512-SyGtMXzH3qFqlHKcvFY2eX+6b0NGiFcNav8AFsYwy5l8hejOeoeTDemu5Yjmke2V5jpzY+pBvM0vCCQ3gdZpfw==} + '@changesets/write@0.3.2': + resolution: {integrity: sha512-kDxDrPNpUgsjDbWBvUo27PzKX4gqeKOlhibaOXDJA6kuBisGqNHv/HwGJrAu8U/dSf8ZEFIeHIPtvSlZI1kULw==} '@isaacs/cliui@8.0.2': resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} @@ -242,59 +300,59 @@ packages: '@manypkg/get-packages@1.1.3': resolution: {integrity: sha512-fo+QhuU3qE/2TQMQmbVMqaQ6EWbMhi4ABWP+O4AM1NqPBuy0OrApV5LO6BrrgnhtAHS2NH6RrVk9OL181tTi8A==} - '@next/env@14.2.5': - resolution: {integrity: sha512-/zZGkrTOsraVfYjGP8uM0p6r0BDT6xWpkjdVbcz66PJVSpwXX3yNiRycxAuDfBKGWBrZBXRuK/YVlkNgxHGwmA==} + '@next/env@14.2.14': + resolution: {integrity: sha512-/0hWQfiaD5//LvGNgc8PjvyqV50vGK0cADYzaoOOGN8fxzBn3iAiaq3S0tCRnFBldq0LVveLcxCTi41ZoYgAgg==} - '@next/swc-darwin-arm64@14.2.5': - resolution: {integrity: sha512-/9zVxJ+K9lrzSGli1///ujyRfon/ZneeZ+v4ptpiPoOU+GKZnm8Wj8ELWU1Pm7GHltYRBklmXMTUqM/DqQ99FQ==} + '@next/swc-darwin-arm64@14.2.14': + resolution: {integrity: sha512-bsxbSAUodM1cjYeA4o6y7sp9wslvwjSkWw57t8DtC8Zig8aG8V6r+Yc05/9mDzLKcybb6EN85k1rJDnMKBd9Gw==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] - '@next/swc-darwin-x64@14.2.5': - resolution: {integrity: sha512-vXHOPCwfDe9qLDuq7U1OYM2wUY+KQ4Ex6ozwsKxp26BlJ6XXbHleOUldenM67JRyBfVjv371oneEvYd3H2gNSA==} + '@next/swc-darwin-x64@14.2.14': + resolution: {integrity: sha512-cC9/I+0+SK5L1k9J8CInahduTVWGMXhQoXFeNvF0uNs3Bt1Ub0Azb8JzTU9vNCr0hnaMqiWu/Z0S1hfKc3+dww==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] - '@next/swc-linux-arm64-gnu@14.2.5': - resolution: {integrity: sha512-vlhB8wI+lj8q1ExFW8lbWutA4M2ZazQNvMWuEDqZcuJJc78iUnLdPPunBPX8rC4IgT6lIx/adB+Cwrl99MzNaA==} + '@next/swc-linux-arm64-gnu@14.2.14': + resolution: {integrity: sha512-RMLOdA2NU4O7w1PQ3Z9ft3PxD6Htl4uB2TJpocm+4jcllHySPkFaUIFacQ3Jekcg6w+LBaFvjSPthZHiPmiAUg==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@next/swc-linux-arm64-musl@14.2.5': - resolution: {integrity: sha512-NpDB9NUR2t0hXzJJwQSGu1IAOYybsfeB+LxpGsXrRIb7QOrYmidJz3shzY8cM6+rO4Aojuef0N/PEaX18pi9OA==} + '@next/swc-linux-arm64-musl@14.2.14': + resolution: {integrity: sha512-WgLOA4hT9EIP7jhlkPnvz49iSOMdZgDJVvbpb8WWzJv5wBD07M2wdJXLkDYIpZmCFfo/wPqFsFR4JS4V9KkQ2A==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@next/swc-linux-x64-gnu@14.2.5': - resolution: {integrity: sha512-8XFikMSxWleYNryWIjiCX+gU201YS+erTUidKdyOVYi5qUQo/gRxv/3N1oZFCgqpesN6FPeqGM72Zve+nReVXQ==} + '@next/swc-linux-x64-gnu@14.2.14': + resolution: {integrity: sha512-lbn7svjUps1kmCettV/R9oAvEW+eUI0lo0LJNFOXoQM5NGNxloAyFRNByYeZKL3+1bF5YE0h0irIJfzXBq9Y6w==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@next/swc-linux-x64-musl@14.2.5': - resolution: {integrity: sha512-6QLwi7RaYiQDcRDSU/os40r5o06b5ue7Jsk5JgdRBGGp8l37RZEh9JsLSM8QF0YDsgcosSeHjglgqi25+m04IQ==} + '@next/swc-linux-x64-musl@14.2.14': + resolution: {integrity: sha512-7TcQCvLQ/hKfQRgjxMN4TZ2BRB0P7HwrGAYL+p+m3u3XcKTraUFerVbV3jkNZNwDeQDa8zdxkKkw2els/S5onQ==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@next/swc-win32-arm64-msvc@14.2.5': - resolution: {integrity: sha512-1GpG2VhbspO+aYoMOQPQiqc/tG3LzmsdBH0LhnDS3JrtDx2QmzXe0B6mSZZiN3Bq7IOMXxv1nlsjzoS1+9mzZw==} + '@next/swc-win32-arm64-msvc@14.2.14': + resolution: {integrity: sha512-8i0Ou5XjTLEje0oj0JiI0Xo9L/93ghFtAUYZ24jARSeTMXLUx8yFIdhS55mTExq5Tj4/dC2fJuaT4e3ySvXU1A==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] - '@next/swc-win32-ia32-msvc@14.2.5': - resolution: {integrity: sha512-Igh9ZlxwvCDsu6438FXlQTHlRno4gFpJzqPjSIBZooD22tKeI4fE/YMRoHVJHmrQ2P5YL1DoZ0qaOKkbeFWeMg==} + '@next/swc-win32-ia32-msvc@14.2.14': + resolution: {integrity: sha512-2u2XcSaDEOj+96eXpyjHjtVPLhkAFw2nlaz83EPeuK4obF+HmtDJHqgR1dZB7Gb6V/d55FL26/lYVd0TwMgcOQ==} engines: {node: '>= 10'} cpu: [ia32] os: [win32] - '@next/swc-win32-x64-msvc@14.2.5': - resolution: {integrity: sha512-tEQ7oinq1/CjSG9uSTerca3v4AZ+dFa+4Yu6ihaG8Ud8ddqLQgFGcnwYls13H5X5CPDPZJdYxyeMui6muOLd4g==} + '@next/swc-win32-x64-msvc@14.2.14': + resolution: {integrity: sha512-MZom+OvZ1NZxuRovKt1ApevjiUJTcU2PmdJKL66xUPaJeRywnbGGRWUlaAOwunD6dX+pm83vj979NTC8QXjGWg==} engines: {node: '>= 10'} cpu: [x64] os: [win32] @@ -315,6 +373,50 @@ packages: resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} + '@radix-ui/react-compose-refs@1.1.0': + resolution: {integrity: sha512-b4inOtiaOnYf9KWyO3jAeeCG6FeyfY6ldiEPanbUjWd+xIk5wZeHa8yVwmrJ2vderhu/BQvzCrJI0lHd+wIiqw==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-label@2.1.0': + resolution: {integrity: sha512-peLblDlFw/ngk3UWq0VnYaOLy6agTZZ+MUO/WhVfm14vJGML+xH4FAl2XQGLqdefjNb7ApRg6Yn7U42ZhmYXdw==} + 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.0': + resolution: {integrity: sha512-ZSpFm0/uHa8zTvKBDjLFWLo8dkr4MBsiDLz0g3gMUwqgLHz9rTaRRGYDgvZPtBJgYCBKXkS9fzmoySgr8CO6Cw==} + 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-slot@1.1.0': + resolution: {integrity: sha512-FUCf5XMfmW4dtYl69pdS4DbxKy8nj4M7SafBgPllysxmdachynNflAdp/gCsnYWNDnge6tI9onzMp5ARYc1KNw==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@swc/counter@0.1.3': resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==} @@ -324,23 +426,17 @@ packages: '@types/node@12.20.55': resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==} - '@types/node@20.14.14': - resolution: {integrity: sha512-d64f00982fS9YoOgJkAMolK7MN8Iq3TDdVjchbYHdEmjth/DHowx82GnoA+tVUAN+7vxfYUgAzi+JXbKNd2SDQ==} + '@types/node@22.7.4': + resolution: {integrity: sha512-y+NPi1rFzDs1NdQHHToqeiX2TIS79SWEAw9GYhkkx8bD0ChpfqC+n2j5OXOCpzfojBEBt6DnEnnG9MY0zk1XLg==} - '@types/node@22.1.0': - resolution: {integrity: sha512-AOmuRF0R2/5j1knA3c6G3HOk523Ga+l+ZXltX8SF1+5oqcXijjfTd8fY3XRZqSihEu9XhtQnKYLmkFaoxgsJHw==} - - '@types/prop-types@15.7.5': - resolution: {integrity: sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==} + '@types/prop-types@15.7.13': + resolution: {integrity: sha512-hCZTSvwbzWGvhqxp/RqVqwU999pBf2vp7hzIjiYOsl8wqOmUxkQ6ddw1cV3l8811+kdUFus/q4d1Y3E3SyEifA==} '@types/react-dom@18.3.0': resolution: {integrity: sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==} - '@types/react@18.3.3': - resolution: {integrity: sha512-hti/R0pS0q1/xx+TsI73XIqk26eBsISZ2R0wUijXIngRK9R/e7Xw/cXVxQK7R5JjW+SV4zGcn5hXjudkN/pLIw==} - - '@types/semver@7.5.8': - resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==} + '@types/react@18.3.11': + resolution: {integrity: sha512-r6QZ069rFTjrEYgFdOck1gK7FLVsgJE7tTz0pQBczlBNUhBNk0MQH4UbnFSwjpQLMkLzgqvBBa+qGpLje16eTQ==} ansi-colors@4.1.3: resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} @@ -350,14 +446,10 @@ packages: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} - ansi-regex@6.0.1: - resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} + ansi-regex@6.1.0: + resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==} engines: {node: '>=12'} - ansi-styles@3.2.1: - resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} - engines: {node: '>=4'} - ansi-styles@4.3.0: resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} engines: {node: '>=8'} @@ -408,8 +500,8 @@ packages: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} - browserslist@4.23.3: - resolution: {integrity: sha512-btwCFJVjI4YWDNfau8RhZ+B1Q/VLoUITrm3RlP6y1tYGWIOa+InuYiRGXUBXo8nA1qKmHMyLB/iVQg5TT4eFoA==} + browserslist@4.24.0: + resolution: {integrity: sha512-Rmb62sR1Zpjql25eSanFGEhAxcFwfA1K0GuQcLoaJBAcENegrQut3hYdhXFF1obQfiDyqIW/cLM5HSJ/9k884A==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true @@ -421,12 +513,8 @@ packages: resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} engines: {node: '>= 6'} - caniuse-lite@1.0.30001651: - resolution: {integrity: sha512-9Cf+Xv1jJNe1xPZLGuUXLNkE1BoDkqRqYyFJ9TDYSqhduqA4hu4oR9HluGoWYQC/aj8WHjsGVV+bwkh0+tegRg==} - - chalk@2.4.2: - resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} - engines: {node: '>=4'} + caniuse-lite@1.0.30001667: + resolution: {integrity: sha512-7LTwJjcRkzKFmtqGsibMeuXmvFDfZq/nzIjnmgCGzKKRVzjD72selLDK1oPF/Oxzmt4fNcPvTDvGqSDG4tCALw==} chardet@0.7.0: resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} @@ -439,19 +527,24 @@ packages: resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} engines: {node: '>=8'} + class-variance-authority@0.7.0: + resolution: {integrity: sha512-jFI8IQw4hczaL4ALINxqLEXQbWcNjoSkloa4IaufXCJr6QawJyw7tuRysRsrE8w2p/4gGaxKIt/hX3qz/IbD1A==} + client-only@0.0.1: resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==} - color-convert@1.9.3: - resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} + clsx@2.0.0: + resolution: {integrity: sha512-rQ1+kcj+ttHG0MKVGBUXwayCCF1oh39BF5COIpRzuCEv8Mwjv0XucrI2ExNTOn9IlLifGClWQcU9BrZORvtw6Q==} + engines: {node: '>=6'} + + clsx@2.1.1: + resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} + engines: {node: '>=6'} color-convert@2.0.1: resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} engines: {node: '>=7.0.0'} - color-name@1.1.3: - resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} - color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} @@ -471,8 +564,8 @@ packages: engines: {node: '>=4'} hasBin: true - csstype@3.1.2: - resolution: {integrity: sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==} + csstype@3.1.3: + resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} dataloader@1.4.0: resolution: {integrity: sha512-68s5jYdlvasItOJnCuI2Q9s4q98g0pCyL3HrcKJu8KNugUl8ahgmZYg38ysLTgQjjXX3H8CJLkAvWrclWfcalw==} @@ -498,8 +591,8 @@ packages: eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} - electron-to-chromium@1.5.5: - resolution: {integrity: sha512-QR7/A7ZkMS8tZuoftC/jfqNkZLQO779SSW3YuZHP4eXpj3EffGLFcB/Xu9AAZQzLccTiCV+EmUo3ha4mQ9wnlA==} + electron-to-chromium@1.5.32: + resolution: {integrity: sha512-M+7ph0VGBQqqpTT2YrabjNKSQ2fEl9PVx6AK3N558gDH9NO8O6XN9SXXFWRo9u9PbEg/bWq+tjXQr+eXmxubCw==} emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} @@ -511,14 +604,10 @@ packages: resolution: {integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==} engines: {node: '>=8.6'} - escalade@3.1.2: - resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} + escalade@3.2.0: + resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} engines: {node: '>=6'} - escape-string-regexp@1.0.5: - resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} - engines: {node: '>=0.8.0'} - esprima@4.0.1: resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} engines: {node: '>=4'} @@ -546,13 +635,6 @@ packages: resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} engines: {node: '>=8'} - find-up@5.0.0: - resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} - engines: {node: '>=10'} - - find-yarn-workspace-root2@1.2.16: - resolution: {integrity: sha512-hr6hb1w8ePMpPVUK39S4RlwJzi+xPLuVuG8XlwXU3KD5Yn3qgBWVfy3AzNlDhWvE1EORCE65/Qm26rFQt3VLVA==} - foreground-child@3.3.0: resolution: {integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==} engines: {node: '>=14'} @@ -600,10 +682,6 @@ packages: graceful-fs@4.2.11: resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} - has-flag@3.0.0: - resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} - engines: {node: '>=4'} - hasown@2.0.2: resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} engines: {node: '>= 0.4'} @@ -611,8 +689,8 @@ packages: human-id@1.0.2: resolution: {integrity: sha512-UNopramDEhHJD+VR+ehk8rOslwSfByxPIZyJRfV739NDhN5LF1fa1MqnzKm2lGTQRjNrjK19Q5fhkgIfjlVUKw==} - husky@9.1.4: - resolution: {integrity: sha512-bho94YyReb4JV7LYWRWxZ/xr6TtOTt8cMfmQ39MQYJ7f/YE268s3GdghGwi+y4zAeqewE5zYLvuhV0M0ijsDEA==} + husky@9.1.6: + resolution: {integrity: sha512-sqbjZKK7kf44hfdE94EoX8MZNk0n7HeW37O4YrVGCF4wzgQjp+akPAkfUK5LZ6KuR/6sqeAVuXHji+RzQgOn5A==} engines: {node: '>=18'} hasBin: true @@ -620,16 +698,16 @@ packages: resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} engines: {node: '>=0.10.0'} - ignore@5.3.1: - resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} + ignore@5.3.2: + resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} engines: {node: '>= 4'} is-binary-path@2.1.0: resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} engines: {node: '>=8'} - is-core-module@2.15.0: - resolution: {integrity: sha512-Dd+Lb2/zvk9SKy1TGCt1wFJFo/MWBPMX5x7KcvLajWTGuomczdQX61PvY5yK6SVACwpoexWo81IfFyoKY2QnTA==} + is-core-module@2.15.1: + resolution: {integrity: sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==} engines: {node: '>= 0.4'} is-extglob@2.1.1: @@ -687,18 +765,10 @@ packages: lines-and-columns@1.2.4: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} - load-yaml-file@0.2.0: - resolution: {integrity: sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw==} - engines: {node: '>=6'} - locate-path@5.0.0: resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} engines: {node: '>=8'} - locate-path@6.0.0: - resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} - engines: {node: '>=10'} - lodash.startcase@4.4.0: resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==} @@ -716,8 +786,8 @@ packages: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} engines: {node: '>= 8'} - micromatch@4.0.7: - resolution: {integrity: sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==} + micromatch@4.0.8: + resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} engines: {node: '>=8.6'} minimatch@9.0.5: @@ -740,8 +810,8 @@ packages: engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true - next@14.2.5: - resolution: {integrity: sha512-0f8aRfBVL+mpzfBjYfQuLWh2WyAwtJXCRfkPF4UJ5qd2YwrHczsrSzXU4tRMV0OAxR8ZJZWPFn6uhSC56UTsLA==} + next@14.2.14: + resolution: {integrity: sha512-Q1coZG17MW0Ly5x76shJ4dkC23woLAhhnDnw+DfTc7EpZSGuWrlsZ3bZaO8t6u1Yu8FVfhkqJE+U8GC7E0GLPQ==} engines: {node: '>=18.17.0'} hasBin: true peerDependencies: @@ -801,18 +871,10 @@ packages: resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} engines: {node: '>=6'} - p-limit@3.1.0: - resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} - engines: {node: '>=10'} - p-locate@4.1.0: resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} engines: {node: '>=8'} - p-locate@5.0.0: - resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} - engines: {node: '>=10'} - p-map@2.1.0: resolution: {integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==} engines: {node: '>=6'} @@ -821,8 +883,11 @@ packages: resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} engines: {node: '>=6'} - package-json-from-dist@1.0.0: - resolution: {integrity: sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==} + package-json-from-dist@1.0.1: + resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} + + package-manager-detector@0.2.0: + resolution: {integrity: sha512-E385OSk9qDcXhcM9LNSe4sdhx8a9mAPrZ4sMLW+tmxl5ZuGtPUcdFu+MPP2jbgiWAZ6Pfe5soGFMd+0Db5Vrog==} path-exists@4.0.0: resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} @@ -843,8 +908,8 @@ packages: resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} engines: {node: '>=8'} - picocolors@1.0.1: - resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==} + picocolors@1.1.0: + resolution: {integrity: sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==} picomatch@2.3.1: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} @@ -862,10 +927,6 @@ packages: resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} engines: {node: '>= 6'} - pkg-dir@4.2.0: - resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} - engines: {node: '>=8'} - postcss-import@15.1.0: resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} engines: {node: '>=14.0.0'} @@ -896,8 +957,8 @@ packages: peerDependencies: postcss: ^8.2.14 - postcss-selector-parser@6.1.1: - resolution: {integrity: sha512-b4dlw/9V8A71rLIDsSwVmak9z2DuBUB7CA1/wSdelNEzqsjoSPeADTWNO09lpH49Diy3/JIZ2bSPB1dI3LJCHg==} + postcss-selector-parser@6.1.2: + resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==} engines: {node: '>=4'} postcss-value-parser@4.2.0: @@ -907,14 +968,10 @@ packages: resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} engines: {node: ^10 || ^12 || >=14} - postcss@8.4.41: - resolution: {integrity: sha512-TesUflQ0WKZqAvg52PWL6kHgLKP6xB6heTOdoYM0Wt2UHyxNa4K25EZZMgKns3BH1RLVbZCREPpLY0rhnNoHVQ==} + postcss@8.4.47: + resolution: {integrity: sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==} engines: {node: ^10 || ^12 || >=14} - preferred-pm@3.1.4: - resolution: {integrity: sha512-lEHd+yEm22jXdCphDrkvIJQU66EuLojPPtvZkpKIkiD+l0DMThF/niqZKJSoU8Vl7iuvtmzyMhir9LdVy5WMnA==} - engines: {node: '>=10'} - prettier@2.8.8: resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} engines: {node: '>=10.13.0'} @@ -1002,8 +1059,8 @@ packages: resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} engines: {node: '>=8'} - source-map-js@1.2.0: - resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} + source-map-js@1.2.1: + resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} engines: {node: '>=0.10.0'} spawndamnit@2.0.0: @@ -1054,16 +1111,20 @@ packages: engines: {node: '>=16 || 14 >=14.17'} hasBin: true - supports-color@5.5.0: - resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} - engines: {node: '>=4'} - supports-preserve-symlinks-flag@1.0.0: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} - tailwindcss@3.4.9: - resolution: {integrity: sha512-1SEOvRr6sSdV5IDf9iC+NU4dhwdqzF4zKKq3sAbasUWHEM6lsMhX+eNN5gkPx1BvLFEnZQEUFbXnGj8Qlp83Pg==} + tailwind-merge@2.5.3: + resolution: {integrity: sha512-d9ZolCAIzom1nf/5p4LdD5zvjmgSxY0BGgdSvmXIoMYAiPdAW/dSpP7joCDYFY7r/HkEa2qmPtkgsu0xjQeQtw==} + + tailwindcss-animate@1.0.7: + resolution: {integrity: sha512-bl6mpH3T7I3UFxuvDEXLxy/VuFxBk5bbzplh7tXI68mwMokNYd1t9qPBHlnyTwfa4JGC4zP516I1hYYtQ/vspA==} + peerDependencies: + tailwindcss: '>=3.0.0 || insiders' + + tailwindcss@3.4.13: + resolution: {integrity: sha512-KqjHOJKogOUt5Bs752ykCeiwvi0fKVkr5oqsFNt/8px/tA8scFPIlkygsf6jXrfCqGHz7VflA6+yytWuM+XhFw==} engines: {node: '>=14.0.0'} hasBin: true @@ -1092,60 +1153,57 @@ packages: ts-interface-checker@0.1.13: resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} - tslib@2.6.3: - resolution: {integrity: sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==} + tslib@2.7.0: + resolution: {integrity: sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==} - turbo-darwin-64@2.0.12: - resolution: {integrity: sha512-NAgfgbXxX/JScWQmmQnGbPuFZq7LIswHfcMk5JwyBXQM/xmklNOxxac7MnGGIOf19Z2f6S3qHy17VIj0SeGfnA==} + turbo-darwin-64@2.1.3: + resolution: {integrity: sha512-ouJOm0g0YyoBuhmikEujVCBGo3Zr0lbSOWFIsQtWUTItC88F2w2byhjtsYGPXQwMlTbXwmoBU2lOCfWNkeEwHQ==} cpu: [x64] os: [darwin] - turbo-darwin-arm64@2.0.12: - resolution: {integrity: sha512-cP02uer5KSJ+fXL+OfRRk5hnVjV0c60hxDgNcJxrZpfhun7HHoKDDR7w2xhQntiA45aC6ZZEXRqMKpj6GAmKbg==} + turbo-darwin-arm64@2.1.3: + resolution: {integrity: sha512-j2FOJsK4LAOtHQlb3Oom0yWB/Vi0nF1ljInr311mVzHoFAJRZtfW2fRvdZRb/lBUwjSp8be58qWHzANIcrA0OA==} cpu: [arm64] os: [darwin] - turbo-linux-64@2.0.12: - resolution: {integrity: sha512-+mQgGfg1eq5qF+wenK/FKJaNMNAo5DQLC4htQy+8osW+fx6U+8+6UlPQPaycAWDEqwOI7NwuqkeHfkEQLQUTyQ==} + turbo-linux-64@2.1.3: + resolution: {integrity: sha512-ubRHkI1gSel7H7wsmxKK8C9UlLWqg/2dkCC88LFupaK6TKgvBKqDqA0Z1M9C/escK0Jsle2k0H8bybV9OYIl4Q==} cpu: [x64] os: [linux] - turbo-linux-arm64@2.0.12: - resolution: {integrity: sha512-KFyEZDXfPU1DK4zimxdCcqAcK7IIttX4mfsgB7NsSEOmH0dhHOih/YFYiyEDC1lTRx0C2RlzQ0Kjjdz48AN5Eg==} + turbo-linux-arm64@2.1.3: + resolution: {integrity: sha512-LffUL+e5wv7BtD6DgnM2kKOlDkMo2eRjhbAjVnrCD3wi2ug0tl6NDzajnHHjtaMyOnIf4AvzSKdLWsBxafGBQA==} cpu: [arm64] os: [linux] - turbo-windows-64@2.0.12: - resolution: {integrity: sha512-kJj4KCkZTkDTDCqsSw1m1dbO4WeoQq1mYUm/thXOH0OkeqYbSMt0EyoTcJOgKUDsrMnzZD2gPfYrlYHtV69lVA==} + turbo-windows-64@2.1.3: + resolution: {integrity: sha512-S9SvcZZoaq5jKr6kA6eF7/xgQhVn8Vh7PVy5lono9zybvhyL4eY++y2PaLToIgL8G9IcbLmgOC73ExNjFBg9XQ==} cpu: [x64] os: [win32] - turbo-windows-arm64@2.0.12: - resolution: {integrity: sha512-TY3ROxguDilN2olCwcZMaePdW01Xhma0pZU7bNhsQEqca9RGAmsZBuzfGnTMcWPmv4tpnb/PlX1hrt1Hod/44Q==} + turbo-windows-arm64@2.1.3: + resolution: {integrity: sha512-twlEo8lRrGbrR6T/ZklUIquW3IlFCEtywklgVA81aIrSBm56+GEVpSrHhIlsx1hiYeSNrs+GpDwZGe+V7fvEVQ==} cpu: [arm64] os: [win32] - turbo@2.0.12: - resolution: {integrity: sha512-8s2KwqjwQj7z8Z53SUZSKVkQOZ2/Sl4D2F440oaBY/k2lGju60dW6srEpnn8/RIDeICZmQn3pQHF79Jfnc5Skw==} + turbo@2.1.3: + resolution: {integrity: sha512-lY0yj2GH2a2a3NExZ3rGe+rHUVeFE2aXuRAue57n+08E7Z7N7YCmynju0kPC1grAQzERmoLpKrmzmWd+PNiADw==} hasBin: true - typescript@5.5.4: - resolution: {integrity: sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==} + typescript@5.6.2: + resolution: {integrity: sha512-NW8ByodCSNCwZeghjN3o+JX5OFH0Ojg6sadjEKY4huZ52TqbJTJnDo5+Tw98lSy63NZvi4n+ez5m2u5d4PkZyw==} engines: {node: '>=14.17'} hasBin: true - undici-types@5.26.5: - resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} - - undici-types@6.13.0: - resolution: {integrity: sha512-xtFJHudx8S2DSoujjMd1WeWvn7KKWFRESZTMeL1RptAYERu29D6jphMjjY+vn96jvN3kVPDNxU/E13VTaXj6jg==} + undici-types@6.19.8: + resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==} universalify@0.1.2: resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} engines: {node: '>= 4.0.0'} - update-browserslist-db@1.1.0: - resolution: {integrity: sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==} + update-browserslist-db@1.1.1: + resolution: {integrity: sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==} hasBin: true peerDependencies: browserslist: '>= 4.21.0' @@ -1159,10 +1217,6 @@ packages: whatwg-url@5.0.0: resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} - which-pm@2.2.0: - resolution: {integrity: sha512-MOiaDbA5ZZgUjkeMWM5EkJp4loW5ZRoa5bc3/aeMox/PJelMhE6t7S/mLuiY43DBupyxH+S0U1bTui9kWUlmsw==} - engines: {node: '>=8.15'} - which@1.3.1: resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} hasBin: true @@ -1183,65 +1237,60 @@ packages: yallist@2.1.2: resolution: {integrity: sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==} - yaml@2.5.0: - resolution: {integrity: sha512-2wWLbGbYDiSqqIKoPjar3MPgB94ErzCtrNE1FdqGuaO0pi2JGjmE8aW8TDZwzU7vuxcGRdL/4gPQwQ7hD5AMSw==} + yaml@2.5.1: + resolution: {integrity: sha512-bLQOjaX/ADgQ20isPJRvF0iRUHIxVhYvr53Of7wGcWlO2jvtUlH5m87DsmulFVxRpNLOnI4tB6p/oh8D7kpn9Q==} engines: {node: '>= 14'} hasBin: true - yocto-queue@0.1.0: - resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} - engines: {node: '>=10'} - snapshots: '@alloc/quick-lru@5.2.0': {} - '@babel/runtime@7.25.0': + '@babel/runtime@7.25.7': dependencies: regenerator-runtime: 0.14.1 - '@biomejs/biome@1.8.3': + '@biomejs/biome@1.9.3': optionalDependencies: - '@biomejs/cli-darwin-arm64': 1.8.3 - '@biomejs/cli-darwin-x64': 1.8.3 - '@biomejs/cli-linux-arm64': 1.8.3 - '@biomejs/cli-linux-arm64-musl': 1.8.3 - '@biomejs/cli-linux-x64': 1.8.3 - '@biomejs/cli-linux-x64-musl': 1.8.3 - '@biomejs/cli-win32-arm64': 1.8.3 - '@biomejs/cli-win32-x64': 1.8.3 - - '@biomejs/cli-darwin-arm64@1.8.3': + '@biomejs/cli-darwin-arm64': 1.9.3 + '@biomejs/cli-darwin-x64': 1.9.3 + '@biomejs/cli-linux-arm64': 1.9.3 + '@biomejs/cli-linux-arm64-musl': 1.9.3 + '@biomejs/cli-linux-x64': 1.9.3 + '@biomejs/cli-linux-x64-musl': 1.9.3 + '@biomejs/cli-win32-arm64': 1.9.3 + '@biomejs/cli-win32-x64': 1.9.3 + + '@biomejs/cli-darwin-arm64@1.9.3': optional: true - '@biomejs/cli-darwin-x64@1.8.3': + '@biomejs/cli-darwin-x64@1.9.3': optional: true - '@biomejs/cli-linux-arm64-musl@1.8.3': + '@biomejs/cli-linux-arm64-musl@1.9.3': optional: true - '@biomejs/cli-linux-arm64@1.8.3': + '@biomejs/cli-linux-arm64@1.9.3': optional: true - '@biomejs/cli-linux-x64-musl@1.8.3': + '@biomejs/cli-linux-x64-musl@1.9.3': optional: true - '@biomejs/cli-linux-x64@1.8.3': + '@biomejs/cli-linux-x64@1.9.3': optional: true - '@biomejs/cli-win32-arm64@1.8.3': + '@biomejs/cli-win32-arm64@1.9.3': optional: true - '@biomejs/cli-win32-x64@1.8.3': + '@biomejs/cli-win32-x64@1.9.3': optional: true - '@changesets/apply-release-plan@7.0.4': + '@changesets/apply-release-plan@7.0.5': dependencies: - '@babel/runtime': 7.25.0 - '@changesets/config': 3.0.2 + '@changesets/config': 3.0.3 '@changesets/get-version-range-type': 0.4.0 - '@changesets/git': 3.0.0 - '@changesets/should-skip-package': 0.1.0 + '@changesets/git': 3.0.1 + '@changesets/should-skip-package': 0.1.1 '@changesets/types': 6.0.0 '@manypkg/get-packages': 1.1.3 detect-indent: 6.1.0 @@ -1252,12 +1301,11 @@ snapshots: resolve-from: 5.0.0 semver: 7.6.3 - '@changesets/assemble-release-plan@6.0.3': + '@changesets/assemble-release-plan@6.0.4': dependencies: - '@babel/runtime': 7.25.0 '@changesets/errors': 0.2.0 - '@changesets/get-dependents-graph': 2.1.1 - '@changesets/should-skip-package': 0.1.0 + '@changesets/get-dependents-graph': 2.1.2 + '@changesets/should-skip-package': 0.1.1 '@changesets/types': 6.0.0 '@manypkg/get-packages': 1.1.3 semver: 7.6.3 @@ -1274,61 +1322,56 @@ snapshots: transitivePeerDependencies: - encoding - '@changesets/cli@2.27.7': + '@changesets/cli@2.27.9': dependencies: - '@babel/runtime': 7.25.0 - '@changesets/apply-release-plan': 7.0.4 - '@changesets/assemble-release-plan': 6.0.3 + '@changesets/apply-release-plan': 7.0.5 + '@changesets/assemble-release-plan': 6.0.4 '@changesets/changelog-git': 0.2.0 - '@changesets/config': 3.0.2 + '@changesets/config': 3.0.3 '@changesets/errors': 0.2.0 - '@changesets/get-dependents-graph': 2.1.1 - '@changesets/get-release-plan': 4.0.3 - '@changesets/git': 3.0.0 - '@changesets/logger': 0.1.0 - '@changesets/pre': 2.0.0 - '@changesets/read': 0.6.0 - '@changesets/should-skip-package': 0.1.0 + '@changesets/get-dependents-graph': 2.1.2 + '@changesets/get-release-plan': 4.0.4 + '@changesets/git': 3.0.1 + '@changesets/logger': 0.1.1 + '@changesets/pre': 2.0.1 + '@changesets/read': 0.6.1 + '@changesets/should-skip-package': 0.1.1 '@changesets/types': 6.0.0 - '@changesets/write': 0.3.1 + '@changesets/write': 0.3.2 '@manypkg/get-packages': 1.1.3 - '@types/semver': 7.5.8 ansi-colors: 4.1.3 - chalk: 2.4.2 ci-info: 3.9.0 enquirer: 2.4.1 external-editor: 3.1.0 fs-extra: 7.0.1 - human-id: 1.0.2 mri: 1.2.0 - outdent: 0.5.0 p-limit: 2.3.0 - preferred-pm: 3.1.4 + package-manager-detector: 0.2.0 + picocolors: 1.1.0 resolve-from: 5.0.0 semver: 7.6.3 spawndamnit: 2.0.0 term-size: 2.2.1 - '@changesets/config@3.0.2': + '@changesets/config@3.0.3': dependencies: '@changesets/errors': 0.2.0 - '@changesets/get-dependents-graph': 2.1.1 - '@changesets/logger': 0.1.0 + '@changesets/get-dependents-graph': 2.1.2 + '@changesets/logger': 0.1.1 '@changesets/types': 6.0.0 '@manypkg/get-packages': 1.1.3 fs-extra: 7.0.1 - micromatch: 4.0.7 + micromatch: 4.0.8 '@changesets/errors@0.2.0': dependencies: extendable-error: 0.1.7 - '@changesets/get-dependents-graph@2.1.1': + '@changesets/get-dependents-graph@2.1.2': dependencies: '@changesets/types': 6.0.0 '@manypkg/get-packages': 1.1.3 - chalk: 2.4.2 - fs-extra: 7.0.1 + picocolors: 1.1.0 semver: 7.6.3 '@changesets/get-github-info@0.6.0': @@ -1338,59 +1381,53 @@ snapshots: transitivePeerDependencies: - encoding - '@changesets/get-release-plan@4.0.3': + '@changesets/get-release-plan@4.0.4': dependencies: - '@babel/runtime': 7.25.0 - '@changesets/assemble-release-plan': 6.0.3 - '@changesets/config': 3.0.2 - '@changesets/pre': 2.0.0 - '@changesets/read': 0.6.0 + '@changesets/assemble-release-plan': 6.0.4 + '@changesets/config': 3.0.3 + '@changesets/pre': 2.0.1 + '@changesets/read': 0.6.1 '@changesets/types': 6.0.0 '@manypkg/get-packages': 1.1.3 '@changesets/get-version-range-type@0.4.0': {} - '@changesets/git@3.0.0': + '@changesets/git@3.0.1': dependencies: - '@babel/runtime': 7.25.0 '@changesets/errors': 0.2.0 - '@changesets/types': 6.0.0 '@manypkg/get-packages': 1.1.3 is-subdir: 1.2.0 - micromatch: 4.0.7 + micromatch: 4.0.8 spawndamnit: 2.0.0 - '@changesets/logger@0.1.0': + '@changesets/logger@0.1.1': dependencies: - chalk: 2.4.2 + picocolors: 1.1.0 '@changesets/parse@0.4.0': dependencies: '@changesets/types': 6.0.0 js-yaml: 3.14.1 - '@changesets/pre@2.0.0': + '@changesets/pre@2.0.1': dependencies: - '@babel/runtime': 7.25.0 '@changesets/errors': 0.2.0 '@changesets/types': 6.0.0 '@manypkg/get-packages': 1.1.3 fs-extra: 7.0.1 - '@changesets/read@0.6.0': + '@changesets/read@0.6.1': dependencies: - '@babel/runtime': 7.25.0 - '@changesets/git': 3.0.0 - '@changesets/logger': 0.1.0 + '@changesets/git': 3.0.1 + '@changesets/logger': 0.1.1 '@changesets/parse': 0.4.0 '@changesets/types': 6.0.0 - chalk: 2.4.2 fs-extra: 7.0.1 p-filter: 2.1.0 + picocolors: 1.1.0 - '@changesets/should-skip-package@0.1.0': + '@changesets/should-skip-package@0.1.1': dependencies: - '@babel/runtime': 7.25.0 '@changesets/types': 6.0.0 '@manypkg/get-packages': 1.1.3 @@ -1398,9 +1435,8 @@ snapshots: '@changesets/types@6.0.0': {} - '@changesets/write@0.3.1': + '@changesets/write@0.3.2': dependencies: - '@babel/runtime': 7.25.0 '@changesets/types': 6.0.0 fs-extra: 7.0.1 human-id: 1.0.2 @@ -1434,47 +1470,47 @@ snapshots: '@manypkg/find-root@1.1.0': dependencies: - '@babel/runtime': 7.25.0 + '@babel/runtime': 7.25.7 '@types/node': 12.20.55 find-up: 4.1.0 fs-extra: 8.1.0 '@manypkg/get-packages@1.1.3': dependencies: - '@babel/runtime': 7.25.0 + '@babel/runtime': 7.25.7 '@changesets/types': 4.1.0 '@manypkg/find-root': 1.1.0 fs-extra: 8.1.0 globby: 11.1.0 read-yaml-file: 1.1.0 - '@next/env@14.2.5': {} + '@next/env@14.2.14': {} - '@next/swc-darwin-arm64@14.2.5': + '@next/swc-darwin-arm64@14.2.14': optional: true - '@next/swc-darwin-x64@14.2.5': + '@next/swc-darwin-x64@14.2.14': optional: true - '@next/swc-linux-arm64-gnu@14.2.5': + '@next/swc-linux-arm64-gnu@14.2.14': optional: true - '@next/swc-linux-arm64-musl@14.2.5': + '@next/swc-linux-arm64-musl@14.2.14': optional: true - '@next/swc-linux-x64-gnu@14.2.5': + '@next/swc-linux-x64-gnu@14.2.14': optional: true - '@next/swc-linux-x64-musl@14.2.5': + '@next/swc-linux-x64-musl@14.2.14': optional: true - '@next/swc-win32-arm64-msvc@14.2.5': + '@next/swc-win32-arm64-msvc@14.2.14': optional: true - '@next/swc-win32-ia32-msvc@14.2.5': + '@next/swc-win32-ia32-msvc@14.2.14': optional: true - '@next/swc-win32-x64-msvc@14.2.5': + '@next/swc-win32-x64-msvc@14.2.14': optional: true '@nodelib/fs.scandir@2.1.5': @@ -1492,45 +1528,66 @@ snapshots: '@pkgjs/parseargs@0.11.0': optional: true + '@radix-ui/react-compose-refs@1.1.0(@types/react@18.3.11)(react@18.3.1)': + dependencies: + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.11 + + '@radix-ui/react-label@2.1.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.11 + '@types/react-dom': 18.3.0 + + '@radix-ui/react-primitive@2.0.0(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/react-slot': 1.1.0(@types/react@18.3.11)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.11 + '@types/react-dom': 18.3.0 + + '@radix-ui/react-slot@1.1.0(@types/react@18.3.11)(react@18.3.1)': + dependencies: + '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.11)(react@18.3.1) + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.11 + '@swc/counter@0.1.3': {} '@swc/helpers@0.5.5': dependencies: '@swc/counter': 0.1.3 - tslib: 2.6.3 + tslib: 2.7.0 '@types/node@12.20.55': {} - '@types/node@20.14.14': + '@types/node@22.7.4': dependencies: - undici-types: 5.26.5 + undici-types: 6.19.8 - '@types/node@22.1.0': - dependencies: - undici-types: 6.13.0 - - '@types/prop-types@15.7.5': {} + '@types/prop-types@15.7.13': {} '@types/react-dom@18.3.0': dependencies: - '@types/react': 18.3.3 + '@types/react': 18.3.11 - '@types/react@18.3.3': + '@types/react@18.3.11': dependencies: - '@types/prop-types': 15.7.5 - csstype: 3.1.2 - - '@types/semver@7.5.8': {} + '@types/prop-types': 15.7.13 + csstype: 3.1.3 ansi-colors@4.1.3: {} ansi-regex@5.0.1: {} - ansi-regex@6.0.1: {} - - ansi-styles@3.2.1: - dependencies: - color-convert: 1.9.3 + ansi-regex@6.1.0: {} ansi-styles@4.3.0: dependencies: @@ -1553,14 +1610,14 @@ snapshots: array-union@2.1.0: {} - autoprefixer@10.4.20(postcss@8.4.41): + autoprefixer@10.4.20(postcss@8.4.47): dependencies: - browserslist: 4.23.3 - caniuse-lite: 1.0.30001651 + browserslist: 4.24.0 + caniuse-lite: 1.0.30001667 fraction.js: 4.3.7 normalize-range: 0.1.2 - picocolors: 1.0.1 - postcss: 8.4.41 + picocolors: 1.1.0 + postcss: 8.4.47 postcss-value-parser: 4.2.0 balanced-match@1.0.2: {} @@ -1579,12 +1636,12 @@ snapshots: dependencies: fill-range: 7.1.1 - browserslist@4.23.3: + browserslist@4.24.0: dependencies: - caniuse-lite: 1.0.30001651 - electron-to-chromium: 1.5.5 + caniuse-lite: 1.0.30001667 + electron-to-chromium: 1.5.32 node-releases: 2.0.18 - update-browserslist-db: 1.1.0(browserslist@4.23.3) + update-browserslist-db: 1.1.1(browserslist@4.24.0) busboy@1.6.0: dependencies: @@ -1592,13 +1649,7 @@ snapshots: camelcase-css@2.0.1: {} - caniuse-lite@1.0.30001651: {} - - chalk@2.4.2: - dependencies: - ansi-styles: 3.2.1 - escape-string-regexp: 1.0.5 - supports-color: 5.5.0 + caniuse-lite@1.0.30001667: {} chardet@0.7.0: {} @@ -1616,18 +1667,20 @@ snapshots: ci-info@3.9.0: {} + class-variance-authority@0.7.0: + dependencies: + clsx: 2.0.0 + client-only@0.0.1: {} - color-convert@1.9.3: - dependencies: - color-name: 1.1.3 + clsx@2.0.0: {} + + clsx@2.1.1: {} color-convert@2.0.1: dependencies: color-name: 1.1.4 - color-name@1.1.3: {} - color-name@1.1.4: {} commander@4.1.1: {} @@ -1646,7 +1699,7 @@ snapshots: cssesc@3.0.0: {} - csstype@3.1.2: {} + csstype@3.1.3: {} dataloader@1.4.0: {} @@ -1664,7 +1717,7 @@ snapshots: eastasianwidth@0.2.0: {} - electron-to-chromium@1.5.5: {} + electron-to-chromium@1.5.32: {} emoji-regex@8.0.0: {} @@ -1675,9 +1728,7 @@ snapshots: ansi-colors: 4.1.3 strip-ansi: 6.0.1 - escalade@3.1.2: {} - - escape-string-regexp@1.0.5: {} + escalade@3.2.0: {} esprima@4.0.1: {} @@ -1695,7 +1746,7 @@ snapshots: '@nodelib/fs.walk': 1.2.8 glob-parent: 5.1.2 merge2: 1.4.1 - micromatch: 4.0.7 + micromatch: 4.0.8 fastq@1.17.1: dependencies: @@ -1710,16 +1761,6 @@ snapshots: locate-path: 5.0.0 path-exists: 4.0.0 - find-up@5.0.0: - dependencies: - locate-path: 6.0.0 - path-exists: 4.0.0 - - find-yarn-workspace-root2@1.2.16: - dependencies: - micromatch: 4.0.7 - pkg-dir: 4.2.0 - foreground-child@3.3.0: dependencies: cross-spawn: 7.0.3 @@ -1744,9 +1785,9 @@ snapshots: function-bind@1.1.2: {} - geist@1.3.1(next@14.2.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)): + geist@1.3.1(next@14.2.14(react-dom@18.3.1(react@18.3.1))(react@18.3.1)): dependencies: - next: 14.2.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + next: 14.2.14(react-dom@18.3.1(react@18.3.1))(react@18.3.1) glob-parent@5.1.2: dependencies: @@ -1762,7 +1803,7 @@ snapshots: jackspeak: 3.4.3 minimatch: 9.0.5 minipass: 7.1.2 - package-json-from-dist: 1.0.0 + package-json-from-dist: 1.0.1 path-scurry: 1.11.1 globby@11.1.0: @@ -1770,33 +1811,31 @@ snapshots: array-union: 2.1.0 dir-glob: 3.0.1 fast-glob: 3.3.2 - ignore: 5.3.1 + ignore: 5.3.2 merge2: 1.4.1 slash: 3.0.0 graceful-fs@4.2.11: {} - has-flag@3.0.0: {} - hasown@2.0.2: dependencies: function-bind: 1.1.2 human-id@1.0.2: {} - husky@9.1.4: {} + husky@9.1.6: {} iconv-lite@0.4.24: dependencies: safer-buffer: 2.1.2 - ignore@5.3.1: {} + ignore@5.3.2: {} is-binary-path@2.1.0: dependencies: binary-extensions: 2.3.0 - is-core-module@2.15.0: + is-core-module@2.15.1: dependencies: hasown: 2.0.2 @@ -1843,21 +1882,10 @@ snapshots: lines-and-columns@1.2.4: {} - load-yaml-file@0.2.0: - dependencies: - graceful-fs: 4.2.11 - js-yaml: 3.14.1 - pify: 4.0.1 - strip-bom: 3.0.0 - locate-path@5.0.0: dependencies: p-locate: 4.1.0 - locate-path@6.0.0: - dependencies: - p-locate: 5.0.0 - lodash.startcase@4.4.0: {} loose-envify@1.4.0: @@ -1873,7 +1901,7 @@ snapshots: merge2@1.4.1: {} - micromatch@4.0.7: + micromatch@4.0.8: dependencies: braces: 3.0.3 picomatch: 2.3.1 @@ -1894,27 +1922,27 @@ snapshots: nanoid@3.3.7: {} - next@14.2.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + next@14.2.14(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - '@next/env': 14.2.5 + '@next/env': 14.2.14 '@swc/helpers': 0.5.5 busboy: 1.6.0 - caniuse-lite: 1.0.30001651 + caniuse-lite: 1.0.30001667 graceful-fs: 4.2.11 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) optionalDependencies: - '@next/swc-darwin-arm64': 14.2.5 - '@next/swc-darwin-x64': 14.2.5 - '@next/swc-linux-arm64-gnu': 14.2.5 - '@next/swc-linux-arm64-musl': 14.2.5 - '@next/swc-linux-x64-gnu': 14.2.5 - '@next/swc-linux-x64-musl': 14.2.5 - '@next/swc-win32-arm64-msvc': 14.2.5 - '@next/swc-win32-ia32-msvc': 14.2.5 - '@next/swc-win32-x64-msvc': 14.2.5 + '@next/swc-darwin-arm64': 14.2.14 + '@next/swc-darwin-x64': 14.2.14 + '@next/swc-linux-arm64-gnu': 14.2.14 + '@next/swc-linux-arm64-musl': 14.2.14 + '@next/swc-linux-x64-gnu': 14.2.14 + '@next/swc-linux-x64-musl': 14.2.14 + '@next/swc-win32-arm64-msvc': 14.2.14 + '@next/swc-win32-ia32-msvc': 14.2.14 + '@next/swc-win32-x64-msvc': 14.2.14 transitivePeerDependencies: - '@babel/core' - babel-plugin-macros @@ -1945,23 +1973,17 @@ snapshots: dependencies: p-try: 2.2.0 - p-limit@3.1.0: - dependencies: - yocto-queue: 0.1.0 - p-locate@4.1.0: dependencies: p-limit: 2.3.0 - p-locate@5.0.0: - dependencies: - p-limit: 3.1.0 - p-map@2.1.0: {} p-try@2.2.0: {} - package-json-from-dist@1.0.0: {} + package-json-from-dist@1.0.1: {} + + package-manager-detector@0.2.0: {} path-exists@4.0.0: {} @@ -1976,7 +1998,7 @@ snapshots: path-type@4.0.0: {} - picocolors@1.0.1: {} + picocolors@1.1.0: {} picomatch@2.3.1: {} @@ -1986,35 +2008,31 @@ snapshots: pirates@4.0.6: {} - pkg-dir@4.2.0: - dependencies: - find-up: 4.1.0 - - postcss-import@15.1.0(postcss@8.4.41): + postcss-import@15.1.0(postcss@8.4.47): dependencies: - postcss: 8.4.41 + postcss: 8.4.47 postcss-value-parser: 4.2.0 read-cache: 1.0.0 resolve: 1.22.8 - postcss-js@4.0.1(postcss@8.4.41): + postcss-js@4.0.1(postcss@8.4.47): dependencies: camelcase-css: 2.0.1 - postcss: 8.4.41 + postcss: 8.4.47 - postcss-load-config@4.0.2(postcss@8.4.41): + postcss-load-config@4.0.2(postcss@8.4.47): dependencies: lilconfig: 3.1.2 - yaml: 2.5.0 + yaml: 2.5.1 optionalDependencies: - postcss: 8.4.41 + postcss: 8.4.47 - postcss-nested@6.2.0(postcss@8.4.41): + postcss-nested@6.2.0(postcss@8.4.47): dependencies: - postcss: 8.4.41 - postcss-selector-parser: 6.1.1 + postcss: 8.4.47 + postcss-selector-parser: 6.1.2 - postcss-selector-parser@6.1.1: + postcss-selector-parser@6.1.2: dependencies: cssesc: 3.0.0 util-deprecate: 1.0.2 @@ -2024,21 +2042,14 @@ snapshots: postcss@8.4.31: dependencies: nanoid: 3.3.7 - picocolors: 1.0.1 - source-map-js: 1.2.0 + picocolors: 1.1.0 + source-map-js: 1.2.1 - postcss@8.4.41: + postcss@8.4.47: dependencies: nanoid: 3.3.7 - picocolors: 1.0.1 - source-map-js: 1.2.0 - - preferred-pm@3.1.4: - dependencies: - find-up: 5.0.0 - find-yarn-workspace-root2: 1.2.16 - path-exists: 4.0.0 - which-pm: 2.2.0 + picocolors: 1.1.0 + source-map-js: 1.2.1 prettier@2.8.8: {} @@ -2077,7 +2088,7 @@ snapshots: resolve@1.22.8: dependencies: - is-core-module: 2.15.0 + is-core-module: 2.15.1 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 @@ -2113,7 +2124,7 @@ snapshots: slash@3.0.0: {} - source-map-js@1.2.0: {} + source-map-js@1.2.1: {} spawndamnit@2.0.0: dependencies: @@ -2142,7 +2153,7 @@ snapshots: strip-ansi@7.1.0: dependencies: - ansi-regex: 6.0.1 + ansi-regex: 6.1.0 strip-bom@3.0.0: {} @@ -2161,13 +2172,15 @@ snapshots: pirates: 4.0.6 ts-interface-checker: 0.1.13 - supports-color@5.5.0: - dependencies: - has-flag: 3.0.0 - supports-preserve-symlinks-flag@1.0.0: {} - tailwindcss@3.4.9: + tailwind-merge@2.5.3: {} + + tailwindcss-animate@1.0.7(tailwindcss@3.4.13): + dependencies: + tailwindcss: 3.4.13 + + tailwindcss@3.4.13: dependencies: '@alloc/quick-lru': 5.2.0 arg: 5.0.2 @@ -2179,16 +2192,16 @@ snapshots: is-glob: 4.0.3 jiti: 1.21.6 lilconfig: 2.1.0 - micromatch: 4.0.7 + micromatch: 4.0.8 normalize-path: 3.0.0 object-hash: 3.0.0 - picocolors: 1.0.1 - postcss: 8.4.41 - postcss-import: 15.1.0(postcss@8.4.41) - postcss-js: 4.0.1(postcss@8.4.41) - postcss-load-config: 4.0.2(postcss@8.4.41) - postcss-nested: 6.2.0(postcss@8.4.41) - postcss-selector-parser: 6.1.1 + picocolors: 1.1.0 + postcss: 8.4.47 + postcss-import: 15.1.0(postcss@8.4.47) + postcss-js: 4.0.1(postcss@8.4.47) + postcss-load-config: 4.0.2(postcss@8.4.47) + postcss-nested: 6.2.0(postcss@8.4.47) + postcss-selector-parser: 6.1.2 resolve: 1.22.8 sucrase: 3.35.0 transitivePeerDependencies: @@ -2216,48 +2229,46 @@ snapshots: ts-interface-checker@0.1.13: {} - tslib@2.6.3: {} + tslib@2.7.0: {} - turbo-darwin-64@2.0.12: + turbo-darwin-64@2.1.3: optional: true - turbo-darwin-arm64@2.0.12: + turbo-darwin-arm64@2.1.3: optional: true - turbo-linux-64@2.0.12: + turbo-linux-64@2.1.3: optional: true - turbo-linux-arm64@2.0.12: + turbo-linux-arm64@2.1.3: optional: true - turbo-windows-64@2.0.12: + turbo-windows-64@2.1.3: optional: true - turbo-windows-arm64@2.0.12: + turbo-windows-arm64@2.1.3: optional: true - turbo@2.0.12: + turbo@2.1.3: optionalDependencies: - turbo-darwin-64: 2.0.12 - turbo-darwin-arm64: 2.0.12 - turbo-linux-64: 2.0.12 - turbo-linux-arm64: 2.0.12 - turbo-windows-64: 2.0.12 - turbo-windows-arm64: 2.0.12 - - typescript@5.5.4: {} + turbo-darwin-64: 2.1.3 + turbo-darwin-arm64: 2.1.3 + turbo-linux-64: 2.1.3 + turbo-linux-arm64: 2.1.3 + turbo-windows-64: 2.1.3 + turbo-windows-arm64: 2.1.3 - undici-types@5.26.5: {} + typescript@5.6.2: {} - undici-types@6.13.0: {} + undici-types@6.19.8: {} universalify@0.1.2: {} - update-browserslist-db@1.1.0(browserslist@4.23.3): + update-browserslist-db@1.1.1(browserslist@4.24.0): dependencies: - browserslist: 4.23.3 - escalade: 3.1.2 - picocolors: 1.0.1 + browserslist: 4.24.0 + escalade: 3.2.0 + picocolors: 1.1.0 util-deprecate@1.0.2: {} @@ -2268,11 +2279,6 @@ snapshots: tr46: 0.0.3 webidl-conversions: 3.0.1 - which-pm@2.2.0: - dependencies: - load-yaml-file: 0.2.0 - path-exists: 4.0.0 - which@1.3.1: dependencies: isexe: 2.0.0 @@ -2295,6 +2301,4 @@ snapshots: yallist@2.1.2: {} - yaml@2.5.0: {} - - yocto-queue@0.1.0: {} + yaml@2.5.1: {} diff --git a/turbo.json b/turbo.json index 8aee523..011562d 100644 --- a/turbo.json +++ b/turbo.json @@ -7,15 +7,10 @@ "inputs": ["$TURBO_DEFAULT$", ".env*"], "outputs": [".next/**", "!.next/cache/**"] }, - "lint": { - "dependsOn": ["^lint"] - }, "typecheck": { + "cache": false, "dependsOn": ["^typecheck"] }, - "format": { - "dependsOn": ["^format"] - }, "dev": { "cache": false, "persistent": true