[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-vercel-shadcn":3,"mdc--reqab7-key":37,"related-org-vercel-shadcn":7397,"related-repo-vercel-shadcn":7577},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":26,"repoUrl":27,"updatedAt":28,"license":29,"forks":30,"topics":31,"repo":32,"sourceUrl":35,"mdContent":36},"shadcn","build UIs with shadcn\u002Fui","shadcn\u002Fui expert guidance — CLI, component installation, composition patterns, custom registries, theming, Tailwind CSS integration, and high-quality interface design. Use when initializing shadcn, adding components, composing product UI, building custom registries, configuring themes, or troubleshooting component issues.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},"vercel","Vercel","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fvercel.png",[12,14,17,20,23],{"name":9,"slug":8,"type":13},"tag",{"name":15,"slug":16,"type":13},"React","react",{"name":18,"slug":19,"type":13},"Tailwind CSS","tailwind-css",{"name":21,"slug":22,"type":13},"shadcn\u002Fui","shadcn-ui",{"name":24,"slug":25,"type":13},"Design System","design-system",226,"https:\u002F\u002Fgithub.com\u002Fvercel\u002Fvercel-plugin","2026-04-06T18:56:25.679567",null,36,[],{"repoUrl":27,"stars":26,"forks":30,"topics":33,"description":34},[],"Comprehensive Vercel ecosystem plugin — relational knowledge graph, skills for every major product, specialized agents, and Vercel conventions. Turns any AI agent into a Vercel expert.","https:\u002F\u002Fgithub.com\u002Fvercel\u002Fvercel-plugin\u002Ftree\u002FHEAD\u002Fskills\u002Fshadcn","---\nname: shadcn\ndescription: shadcn\u002Fui expert guidance — CLI, component installation, composition patterns, custom registries, theming, Tailwind CSS integration, and high-quality interface design. Use when initializing shadcn, adding components, composing product UI, building custom registries, configuring themes, or troubleshooting component issues.\nmetadata:\n  priority: 6\n  docs:\n    - \"https:\u002F\u002Fui.shadcn.com\u002Fdocs\"\n    - \"https:\u002F\u002Fui.shadcn.com\u002Fdocs\u002Fcomponents\"\n  pathPatterns:\n    - 'components.json'\n    - 'components\u002Fui\u002F**'\n    - 'src\u002Fcomponents\u002Fui\u002F**'\n    - 'apps\u002F*\u002Fcomponents\u002Fui\u002F**'\n    - 'apps\u002F*\u002Fsrc\u002Fcomponents\u002Fui\u002F**'\n    - 'packages\u002F*\u002Fcomponents\u002Fui\u002F**'\n    - 'packages\u002F*\u002Fsrc\u002Fcomponents\u002Fui\u002F**'\n  bashPatterns:\n    - '\\bnpx\\s+shadcn\\b'\n    - '\\bnpx\\s+shadcn@latest\\s+(init|add|build|search|list|migrate|info|docs|view)\\b'\n    - '\\bnpx\\s+create-next-app\\b'\n    - '\\bbunx\\s+create-next-app\\b'\n    - '\\bpnpm\\s+create\\s+next-app\\b'\n    - '\\bnpm\\s+create\\s+next-app\\b'\nvalidate:\n  -\n    pattern: '\"base\"\\s*:\\s*\"base-ui\"'\n    message: 'AI Elements components use Radix-specific APIs (asChild, openDelay) and have type errors with Base UI. If this project uses AI Elements, reinitialize with: npx shadcn@latest init -d --base radix -f'\n    severity: warn\nretrieval:\n  aliases:\n    - shadcn ui\n    - component library\n    - ui components\n    - tailwind components\n  intents:\n    - add shadcn component\n    - set up shadcn\n    - customize theme\n    - build ui\n  entities:\n    - shadcn\u002Fui\n    - Tailwind CSS\n    - registry\n    - theme\n    - components.json\n\n---\n\n# shadcn\u002Fui\n\nYou are an expert in shadcn\u002Fui — a collection of beautifully designed, accessible, and customizable React components built on Radix UI primitives and Tailwind CSS. Components are added directly to your codebase as source code, not installed as a dependency.\n\n## Key Concept\n\nshadcn\u002Fui is **not a component library** in the traditional sense. You don't install it as a package. Instead, the CLI copies component source code into your project, giving you full ownership and customization ability.\n\n## CLI Commands\n\n### Initialize (non-interactive — ALWAYS use this)\n\n**IMPORTANT**: `shadcn init` is interactive by default. Always use `-d` (defaults) for non-interactive initialization:\n\n```bash\n# Non-interactive init with defaults — USE THIS\nnpx shadcn@latest init -d\n\n# Non-interactive with a preset (recommended for consistent design systems)\nnpx shadcn@latest init --preset \u003Ccode> -f\n\n# Non-interactive with explicit base library choice\nnpx shadcn@latest init -d --base radix\nnpx shadcn@latest init -d --base base-ui\n\n# Scaffold a full project template (CLI v4)\n```\n\n> **AI Elements compatibility**: Always use `--base radix` (the default) when the project uses or may use AI Elements. AI Elements components rely on Radix APIs and have type errors with Base UI.\n\n```bash\nnpx shadcn@latest init --template next -d\nnpx shadcn@latest init --template vite -d\n```\n\nOptions:\n- `-d, --defaults` — **Use default configuration, skip all interactive prompts** (REQUIRED for CI\u002Fagent use)\n- `-y, --yes` — Skip confirmation prompts (does NOT skip library selection — use `-d` instead)\n- `-f, --force` — Force overwrite existing configuration\n- `-t, --template` — Scaffold full project template (`next`, `vite`, `react-router`, `astro`, `laravel`, `tanstack-start`)\n- `--preset` — Apply a design system preset (colors, theme, icons, fonts, radius) as a single shareable code\n- `--base` — Choose primitive library: `radix` (default) or `base-ui`\n- `--monorepo` — Set up a monorepo structure\n\n> **WARNING**: `-y`\u002F`--yes` alone does NOT make init fully non-interactive — it still prompts for component library selection. Always use `-d` to skip ALL prompts.\n\n> **Deprecated in CLI v4**: `--style`, `--base-color`, `--src-dir`, `--no-base-style`, and `--css-variables` flags are removed and will error. The `registry:build` and `registry:mcp` registry types are also deprecated. Use `registry:base` and `registry:font` instead.\n\nThe init command:\n1. Detects your framework (Next.js, Vite, React Router, Astro, Laravel, TanStack Start)\n2. Installs required dependencies (Radix UI, tailwind-merge, class-variance-authority)\n3. Creates `components.json` configuration\n4. Sets up the `cn()` utility function\n5. Configures CSS variables for theming\n\n### Add Components\n\n```bash\n# Add specific components\nnpx shadcn@latest add button dialog card\n\n# Add all available components\nnpx shadcn@latest add --all\n\n# Add from a custom registry\nnpx shadcn@latest add @v0\u002Fdashboard\nnpx shadcn@latest add @acme\u002Fcustom-button\n\n# Add from AI Elements registry\nnpx shadcn@latest add https:\u002F\u002Felements.ai-sdk.dev\u002Fapi\u002Fregistry\u002Fall.json\n```\n\nOptions:\n- `-o, --overwrite` — Overwrite existing files\n- `-p, --path` — Custom install path\n- `-a, --all` — Install all components\n- `--dry-run` — Preview what will be added without writing files\n- `--diff` — Show diff of changes when updating existing components\n- `--view` — Display a registry item's source code inline\n\n### Search & List\n\n```bash\nnpx shadcn@latest search button\nnpx shadcn@latest list @v0\n```\n\n### Build (Custom Registry)\n\n```bash\nnpx shadcn@latest build\nnpx shadcn@latest build .\u002Fregistry.json -o .\u002Fpublic\u002Fr\n```\n\n### View, Info & Docs (CLI v4)\n\n```bash\n# View a registry item's source before installing\nnpx shadcn@latest view button\n\n# Show project diagnostics — config, installed components, dependencies\nnpx shadcn@latest info\n\n# Get docs, code, and examples for any component (agent-friendly output)\nnpx shadcn@latest docs button\nnpx shadcn@latest docs dialog\n```\n\n> **`shadcn docs`** gives coding agents the context to use primitives correctly — returns code examples, API reference, and usage patterns inline.\n\n### Migrate\n\n```bash\nnpx shadcn@latest migrate rtl    # RTL support migration\nnpx shadcn@latest migrate radix  # Migrate to unified radix-ui package\nnpx shadcn@latest migrate icons  # Icon library changes\n\n# Migrate components outside the default ui directory\nnpx shadcn@latest migrate radix src\u002Fcomponents\u002Fcustom\n```\n\n## shadcn\u002Fskills (CLI v4)\n\nshadcn\u002Fskills gives coding agents the context they need to work with components and registries correctly. It covers both Radix and Base UI primitives, updated APIs, component patterns, and registry workflows. The skill knows how to use the CLI, when to invoke it, and which flags to pass — so agents produce code that matches your design system.\n\nInstall: `pnpm dlx skills add shadcn\u002Fui`\n\n## Unified Radix UI Package (February 2026)\n\nThe `new-york` style now uses a single `radix-ui` package instead of individual `@radix-ui\u002Freact-*` packages:\n\n```tsx\n\u002F\u002F OLD — individual packages\nimport * as DialogPrimitive from \"@radix-ui\u002Freact-dialog\"\n\n\u002F\u002F NEW — unified package\nimport { Dialog as DialogPrimitive } from \"radix-ui\"\n```\n\nTo migrate existing projects: `npx shadcn@latest migrate radix`. After migration, remove unused `@radix-ui\u002Freact-*` packages from `package.json`.\n\n## Base UI Support (January 2026)\n\nshadcn\u002Fui now supports **Base UI** as an alternative to Radix UI for the underlying primitive library. Components look and behave the same way regardless of which library you choose — only the underlying implementation changes.\n\nChoose during init: `npx shadcn@latest init --base base-ui`\n\nThe CLI pulls the correct component variant based on your project configuration automatically.\n\n## Configuration (components.json)\n\nThe `components.json` file configures how shadcn\u002Fui works in your project:\n\n```json\n{\n  \"$schema\": \"https:\u002F\u002Fui.shadcn.com\u002Fschema.json\",\n  \"style\": \"new-york\",\n  \"rsc\": true,\n  \"tsx\": true,\n  \"tailwind\": {\n    \"config\": \"tailwind.config.ts\",\n    \"css\": \"src\u002Fapp\u002Fglobals.css\",\n    \"baseColor\": \"zinc\",  \u002F\u002F Options: gray, neutral, slate, stone, zinc, mauve, olive, mist, taupe\n    \"cssVariables\": true\n  },\n  \"aliases\": {\n    \"components\": \"@\u002Fcomponents\",\n    \"utils\": \"@\u002Flib\u002Futils\",\n    \"ui\": \"@\u002Fcomponents\u002Fui\",\n    \"lib\": \"@\u002Flib\",\n    \"hooks\": \"@\u002Fhooks\"\n  },\n  \"registries\": {\n    \"v0\": {\n      \"url\": \"https:\u002F\u002Fv0.dev\u002Fchat\u002Fapi\u002Fregistry\"\n    },\n    \"ai-elements\": {\n      \"url\": \"https:\u002F\u002Felements.ai-sdk.dev\u002Fapi\u002Fregistry\"\n    }\n  }\n}\n```\n\n### Namespaced Registries\n\nConfigure multiple registries for your project:\n\n```json\n{\n  \"registries\": {\n    \"acme\": {\n      \"url\": \"https:\u002F\u002Facme.com\u002Fregistry\u002F{name}.json\"\n    },\n    \"private\": {\n      \"url\": \"https:\u002F\u002Finternal.company.com\u002Fregistry\u002F{name}.json\",\n      \"headers\": {\n        \"Authorization\": \"Bearer ${REGISTRY_TOKEN}\"\n      }\n    }\n  }\n}\n```\n\nInstall using namespace syntax:\n\n```bash\nnpx shadcn@latest add @acme\u002Fheader @private\u002Fauth-form\n```\n\n## Theming\n\n### CSS Variables\n\nshadcn\u002Fui uses CSS custom properties for theming, defined in `globals.css`:\n\n```css\n@theme inline {\n  --color-background: oklch(0.145 0 0);\n  --color-foreground: oklch(0.985 0 0);\n  --color-card: oklch(0.205 0 0);\n  --color-card-foreground: oklch(0.985 0 0);\n  --color-primary: oklch(0.488 0.243 264.376);\n  --color-primary-foreground: oklch(0.985 0 0);\n  --color-secondary: oklch(0.269 0 0);\n  --color-secondary-foreground: oklch(0.985 0 0);\n  --color-muted: oklch(0.269 0 0);\n  --color-muted-foreground: oklch(0.708 0 0);\n  --color-accent: oklch(0.269 0 0);\n  --color-accent-foreground: oklch(0.985 0 0);\n  --color-destructive: oklch(0.396 0.141 25.723);\n  --color-border: oklch(0.269 0 0);\n  --color-input: oklch(0.269 0 0);\n  --color-ring: oklch(0.488 0.243 264.376);\n  --radius: 0.625rem;\n  \u002F* CLI v4: radius tokens use multiplicative calc instead of additive *\u002F\n  --radius-xs: calc(var(--radius) * 0.5);\n  --radius-sm: calc(var(--radius) * 0.75);\n  --radius-md: calc(var(--radius) * 0.875);\n  --radius-lg: var(--radius);\n  --radius-xl: calc(var(--radius) * 1.5);\n}\n```\n\n### Dark Mode\n\nFor dark mode, use the `dark` class on `\u003Chtml>`:\n\n```tsx\n\u002F\u002F app\u002Flayout.tsx\n\u003Chtml lang=\"en\" className=\"dark\">\n```\n\nOr use next-themes for toggling:\n\n```tsx\nimport { ThemeProvider } from 'next-themes'\n\n\u003CThemeProvider attribute=\"class\" defaultTheme=\"dark\">\n  {children}\n\u003C\u002FThemeProvider>\n```\n\n### Custom Colors\n\nAdd application-specific colors alongside shadcn defaults:\n\n```css\n@theme inline {\n  \u002F* shadcn defaults above... *\u002F\n\n  \u002F* Custom app colors *\u002F\n  --color-priority-urgent: oklch(0.637 0.237 15.163);\n  --color-priority-high: oklch(0.705 0.213 47.604);\n  --color-status-done: oklch(0.723 0.219 149.579);\n}\n```\n\nUse in components:\n\n```tsx\n\u003Cspan className=\"text-[var(--color-priority-urgent)]\">Urgent\u003C\u002Fspan>\n\u002F\u002F Or with Tailwind v4 theme():\n\u003Cspan className=\"text-priority-urgent\">Urgent\u003C\u002Fspan>\n```\n\n## Most Common Components\n\n| Component | Use Case |\n|-----------|----------|\n| `button` | Actions, form submission |\n| `card` | Content containers |\n| `dialog` | Modals, confirmation prompts |\n| `input` \u002F `textarea` | Form fields |\n| `select` | Dropdowns |\n| `table` | Data display |\n| `tabs` | View switching |\n| `command` | Command palette (Cmd+K) |\n| `dropdown-menu` | Context menus |\n| `popover` | Floating content |\n| `tooltip` | Hover hints |\n| `badge` | Status indicators |\n| `avatar` | User profile images |\n| `scroll-area` | Scrollable containers |\n| `separator` | Visual dividers |\n| `label` | Form labels |\n| `sheet` | Slide-out panels |\n| `skeleton` | Loading placeholders |\n\n## Design Direction for shadcn on Vercel\n\nshadcn\u002Fui is not only a component source generator. In the Vercel stack it is the default interface language. Do not stop at \"the component works.\" Compose pages that feel deliberate, high-signal, and consistent.\n\n### Default aesthetic for product UI\n\n- Prefer style: `new-york` for product, dashboard, AI, and admin surfaces.\n- Default to dark mode for dashboards, AI apps, internal tools, settings, and developer-facing products. Use light mode only when the product is clearly content-first or editorial.\n- Use Geist Sans for interface text and Geist Mono for code, metrics, IDs, timestamps, commands.\n- Prefer zinc, neutral, or slate as the base palette. Use one accent color through `--color-primary`.\n- Build core surfaces from tokens: `bg-background`, `bg-card`, `text-foreground`, `text-muted-foreground`, `border-border`, `ring-ring`. Avoid ad-hoc hex values.\n- Keep radius consistent. The default `--radius: 0.625rem` is a strong baseline.\n- Use one density system per page: comfortable (`gap-6` \u002F `p-6` \u002F `text-sm`) or compact (`gap-4` \u002F `p-4` \u002F `text-sm`).\n- Keep icons quiet and consistent. Lucide icons at `h-4 w-4` or `h-5 w-5`.\n\n### Reach for this first\n\n| Use case | Reach for this first | Why |\n|----------|----------------------|-----|\n| Settings page | `Tabs` + `Card` + `Form` | Clear information grouping with predictable save flows |\n| Data dashboard | `Card` + `Badge` + `Table` + `DropdownMenu` | Covers summary, status, dense data, and row actions without custom shells |\n| CRUD table | `Table` + `DropdownMenu` + `Sheet` + `AlertDialog` | Supports browse, act, edit, and destructive confirmation in a standard pattern |\n| Auth screen | `Card` + `Label` + `Input` + `Button` + `Alert` | Keeps entry flows focused and gives errors a proper treatment |\n| Global search | `Command` + `Dialog` | Fast keyboard-first discovery with an established interaction model |\n| Mobile nav | `Sheet` + `Button` + `Separator` | Provides a compact navigation shell that adapts cleanly to small screens |\n| Detail page | header + `Badge` + `Separator` + `Card` | Balances hierarchy, metadata, and supporting content without over-nesting |\n| Filters | `Card` sidebar + `Sheet` + `Select` | Works for persistent desktop filters and collapsible mobile controls |\n| Empty\u002Floading\u002Ferror states | `Card` + `Skeleton` + `Alert` | Gives non-happy paths a designed surface instead of placeholder text |\n\n### Composition recipes\n\n- Settings page: `Tabs` + `Card` per group + `Separator` + save action\n- Admin dashboard: summary `Card`s + filter bar + `Table`\n- Entity detail: header + status `Badge` + main `Card` + side `Card` + `AlertDialog` for destructive\n- Search-heavy: `Command` for quick find, `Popover` for pickers, `Sheet` for mobile filters\n- Auth\u002Fonboarding: centered `Card` + social `Separator` + inline `Alert` for errors\n- Destructive flows: `AlertDialog` (not `Dialog`) for confirmation\n\n### Anti-patterns to avoid\n\n- Raw `button` \u002F `input` \u002F `select` \u002F `div` when shadcn primitives exist\n- Repeated `div rounded-xl border p-6` instead of `Tabs` \u002F `Table` \u002F `Sheet` \u002F `Dialog`\n- Multiple accent colors fighting each other\n- Nested cards inside cards inside cards\n- Large gradient backgrounds and glassmorphism on every surface\n- Mixing arbitrary spacing and radius values\n- Using `Dialog` for destructive confirmation instead of `AlertDialog`\n- Shipping empty\u002Floading\u002Ferror states without design treatment\n- Using ad-hoc Tailwind palette classes for foundational surfaces instead of theme tokens\n\n## Building a Custom Registry\n\nCreate your own component registry to share across projects:\n\n### Registry Types (CLI v4)\n\n| Type | Purpose |\n|------|---------|\n| `registry:ui` | Individual UI components |\n| `registry:base` | Full design system payload — components, deps, CSS vars, fonts, config |\n| `registry:font` | Font configuration as a first-class registry item |\n\n### 1. Define registry.json\n\n```json\n[\n  {\n    \"name\": \"my-component\",\n    \"type\": \"registry:ui\",\n    \"title\": \"My Component\",\n    \"description\": \"A custom component\",\n    \"files\": [\n      {\n        \"path\": \"components\u002Fmy-component.tsx\",\n        \"type\": \"registry:ui\"\n      }\n    ],\n    \"dependencies\": [\"lucide-react\"]\n  }\n]\n```\n\n### 2. Build\n\n```bash\nnpx shadcn@latest build\n# Outputs to public\u002Fr\u002Fmy-component.json\n```\n\n### 3. Consume\n\n```bash\nnpx shadcn@latest add https:\u002F\u002Fyour-domain.com\u002Fr\u002Fmy-component.json\n```\n\n## Component Gotchas\n\n### `shadcn init` Breaks Geist Font in Next.js (Tailwind v4)\n\n`shadcn init` rewrites `globals.css` and may introduce `--font-sans: var(--font-sans)` — a circular self-reference that breaks font loading. Tailwind v4's `@theme inline` resolves CSS custom properties at **parse time**, not runtime — so even `var(--font-geist-sans)` won't work because Next.js injects that variable via className at runtime.\n\n**The fix**: Use literal font family names in `@theme inline`:\n\n```css\n\u002F* In @theme inline — CORRECT (literal names) *\u002F\n--font-sans: \"Geist\", \"Geist Fallback\", ui-sans-serif, system-ui, sans-serif;\n--font-mono: \"Geist Mono\", \"Geist Mono Fallback\", ui-monospace, monospace;\n\n\u002F* WRONG — circular, resolves to nothing *\u002F\n--font-sans: var(--font-sans);\n\n\u002F* ALSO WRONG — @theme inline can't resolve runtime CSS variables *\u002F\n--font-sans: var(--font-geist-sans);\n```\n\n**After running `shadcn init`**, always:\n1. Replace font declarations in `@theme inline` with literal Geist font names (as shown above)\n2. Move the font variable classNames from `\u003Cbody>` to `\u003Chtml>` in `layout.tsx`:\n\n```tsx\n\u002F\u002F layout.tsx — font variables on \u003Chtml>, not \u003Cbody>\n\u003Chtml lang=\"en\" className={`${geistSans.variable} ${geistMono.variable}`}>\n  \u003Cbody className=\"antialiased\">\n```\n\n### Avatar Has No `size` Prop\n\nThe shadcn Avatar component does **not** accept a `size` variant prop. Control size with Tailwind classes:\n\n```tsx\n\u002F\u002F WRONG — no size variant exists\n\u003CAvatar size=\"lg\" \u002F>  \u002F\u002F ❌ TypeScript error \u002F silently ignored\n\n\u002F\u002F CORRECT — use Tailwind\n\u003CAvatar className=\"h-12 w-12\">\n  \u003CAvatarImage src={user.image} \u002F>\n  \u003CAvatarFallback>JD\u003C\u002FAvatarFallback>\n\u003C\u002FAvatar>\n\n\u002F\u002F Small avatar\n\u003CAvatar className=\"h-6 w-6\"> ... \u003C\u002FAvatar>\n```\n\nThis applies to most shadcn components — they use Tailwind classes for sizing, not variant props. If you need reusable size variants, add them yourself via `cva` in the component source.\n\n## Common Patterns\n\n### cn() Utility\n\nAll shadcn components use the `cn()` utility for conditional class merging:\n\n```ts\nimport { clsx, type ClassValue } from 'clsx'\nimport { twMerge } from 'tailwind-merge'\n\nexport function cn(...inputs: ClassValue[]) {\n  return twMerge(clsx(inputs))\n}\n```\n\n### Extending Components\n\nSince you own the source code, extend components directly:\n\n```tsx\n\u002F\u002F components\u002Fui\u002Fbutton.tsx — add your custom variant\nconst buttonVariants = cva('...', {\n  variants: {\n    variant: {\n      default: '...',\n      destructive: '...',\n      \u002F\u002F Add custom variants\n      success: 'bg-green-600 text-white hover:bg-green-700',\n      premium: 'bg-gradient-to-r from-purple-500 to-pink-500 text-white',\n    },\n  },\n})\n```\n\n### Wrapping with TooltipProvider\n\nMany components require `TooltipProvider` at the root:\n\n```tsx\n\u002F\u002F app\u002Flayout.tsx\nimport { TooltipProvider } from '@\u002Fcomponents\u002Fui\u002Ftooltip'\n\nexport default function RootLayout({ children }) {\n  return (\n    \u003Chtml lang=\"en\" className=\"dark\">\n      \u003Cbody>\n        \u003CTooltipProvider>{children}\u003C\u002FTooltipProvider>\n      \u003C\u002Fbody>\n    \u003C\u002Fhtml>\n  )\n}\n```\n\n## Framework Support\n\n- **Next.js** — Full support (App Router + Pages Router)\n- **Vite** — Full support\n- **React Router** — Full support\n- **Astro** — Full support\n- **Laravel** — Full support (via Inertia)\n- **TanStack Start** — Full support\n\n## Presets (CLI v4)\n\nPresets bundle your entire design system config (colors, theme, icon library, fonts, radius) into a single shareable code. One string configures everything:\n\n```bash\n# Apply a preset during init\nnpx shadcn@latest init --preset \u003Ccode>\n\n# Switch presets in an existing project (reconfigures everything including components)\nnpx shadcn@latest init --preset \u003Ccode>\n```\n\nBuild custom presets on `shadcn\u002Fcreate` — preview how colors, fonts, and radius apply to real components before publishing.\n\n## RTL Support (2026)\n\nThe CLI handles RTL transformation at install time:\n\n```bash\nnpx shadcn@latest migrate rtl\n```\n\nConverts directional classes (`ml-4`, `left-2`) to logical properties (`ms-4`, `start-2`) automatically.\n\n## Official Documentation\n\n- [shadcn\u002Fui](https:\u002F\u002Fui.shadcn.com)\n- [Components](https:\u002F\u002Fui.shadcn.com\u002Fdocs\u002Fcomponents)\n- [CLI](https:\u002F\u002Fui.shadcn.com\u002Fdocs\u002Fcli)\n- [Theming](https:\u002F\u002Fui.shadcn.com\u002Fdocs\u002Ftheming)\n- [Custom Registry](https:\u002F\u002Fui.shadcn.com\u002Fdocs\u002Fregistry)\n- [Registry Directory](https:\u002F\u002Fui.shadcn.com\u002Fdocs\u002Fdirectory)\n- [GitHub: shadcn\u002Fui](https:\u002F\u002Fgithub.com\u002Fshadcn-ui\u002Fui)\n",{"data":38,"body":78},{"name":4,"description":6,"metadata":39,"validate":59,"retrieval":64},{"priority":40,"docs":41,"pathPatterns":44,"bashPatterns":52},6,[42,43],"https:\u002F\u002Fui.shadcn.com\u002Fdocs","https:\u002F\u002Fui.shadcn.com\u002Fdocs\u002Fcomponents",[45,46,47,48,49,50,51],"components.json","components\u002Fui\u002F**","src\u002Fcomponents\u002Fui\u002F**","apps\u002F*\u002Fcomponents\u002Fui\u002F**","apps\u002F*\u002Fsrc\u002Fcomponents\u002Fui\u002F**","packages\u002F*\u002Fcomponents\u002Fui\u002F**","packages\u002F*\u002Fsrc\u002Fcomponents\u002Fui\u002F**",[53,54,55,56,57,58],"\\bnpx\\s+shadcn\\b","\\bnpx\\s+shadcn@latest\\s+(init|add|build|search|list|migrate|info|docs|view)\\b","\\bnpx\\s+create-next-app\\b","\\bbunx\\s+create-next-app\\b","\\bpnpm\\s+create\\s+next-app\\b","\\bnpm\\s+create\\s+next-app\\b",[60],{"pattern":61,"message":62,"severity":63},"\"base\"\\s*:\\s*\"base-ui\"","AI Elements components use Radix-specific APIs (asChild, openDelay) and have type errors with Base UI. If this project uses AI Elements, reinitialize with: npx shadcn@latest init -d --base radix -f","warn",{"aliases":65,"intents":70,"entities":75},[66,67,68,69],"shadcn ui","component library","ui components","tailwind components",[71,72,73,74],"add shadcn component","set up shadcn","customize theme","build ui",[21,18,76,77,45],"registry","theme",{"type":79,"children":80},"root",[81,89,95,102,115,121,128,155,364,386,450,455,609,644,724,729,773,779,951,955,1024,1030,1079,1085,1139,1145,1266,1283,1289,1411,1417,1422,1433,1439,1468,1592,1620,1626,1638,1649,1654,1660,1671,2388,2394,2399,2647,2652,2684,2690,2696,2708,3289,3295,3315,3392,3397,3542,3548,3553,3748,3753,3873,3879,4220,4226,4231,4237,4403,4409,4771,4777,4926,4932,5049,5055,5060,5066,5137,5143,5486,5492,5522,5528,5555,5561,5572,5620,5636,5781,5796,5838,5983,5997,6016,6282,6295,6301,6307,6319,6515,6521,6526,6769,6775,6788,7051,7057,7117,7123,7128,7228,7241,7247,7252,7279,7314,7320,7392],{"type":82,"tag":83,"props":84,"children":86},"element","h1",{"id":85},"shadcnui",[87],{"type":88,"value":21},"text",{"type":82,"tag":90,"props":91,"children":92},"p",{},[93],{"type":88,"value":94},"You are an expert in shadcn\u002Fui — a collection of beautifully designed, accessible, and customizable React components built on Radix UI primitives and Tailwind CSS. Components are added directly to your codebase as source code, not installed as a dependency.",{"type":82,"tag":96,"props":97,"children":99},"h2",{"id":98},"key-concept",[100],{"type":88,"value":101},"Key Concept",{"type":82,"tag":90,"props":103,"children":104},{},[105,107,113],{"type":88,"value":106},"shadcn\u002Fui is ",{"type":82,"tag":108,"props":109,"children":110},"strong",{},[111],{"type":88,"value":112},"not a component library",{"type":88,"value":114}," in the traditional sense. You don't install it as a package. Instead, the CLI copies component source code into your project, giving you full ownership and customization ability.",{"type":82,"tag":96,"props":116,"children":118},{"id":117},"cli-commands",[119],{"type":88,"value":120},"CLI Commands",{"type":82,"tag":122,"props":123,"children":125},"h3",{"id":124},"initialize-non-interactive-always-use-this",[126],{"type":88,"value":127},"Initialize (non-interactive — ALWAYS use this)",{"type":82,"tag":90,"props":129,"children":130},{},[131,136,138,145,147,153],{"type":82,"tag":108,"props":132,"children":133},{},[134],{"type":88,"value":135},"IMPORTANT",{"type":88,"value":137},": ",{"type":82,"tag":139,"props":140,"children":142},"code",{"className":141},[],[143],{"type":88,"value":144},"shadcn init",{"type":88,"value":146}," is interactive by default. Always use ",{"type":82,"tag":139,"props":148,"children":150},{"className":149},[],[151],{"type":88,"value":152},"-d",{"type":88,"value":154}," (defaults) for non-interactive initialization:",{"type":82,"tag":156,"props":157,"children":162},"pre",{"className":158,"code":159,"language":160,"meta":161,"style":161},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","# Non-interactive init with defaults — USE THIS\nnpx shadcn@latest init -d\n\n# Non-interactive with a preset (recommended for consistent design systems)\nnpx shadcn@latest init --preset \u003Ccode> -f\n\n# Non-interactive with explicit base library choice\nnpx shadcn@latest init -d --base radix\nnpx shadcn@latest init -d --base base-ui\n\n# Scaffold a full project template (CLI v4)\n","bash","",[163],{"type":82,"tag":139,"props":164,"children":165},{"__ignoreMap":161},[166,178,204,214,223,271,278,287,318,347,355],{"type":82,"tag":167,"props":168,"children":171},"span",{"class":169,"line":170},"line",1,[172],{"type":82,"tag":167,"props":173,"children":175},{"style":174},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic",[176],{"type":88,"value":177},"# Non-interactive init with defaults — USE THIS\n",{"type":82,"tag":167,"props":179,"children":181},{"class":169,"line":180},2,[182,188,194,199],{"type":82,"tag":167,"props":183,"children":185},{"style":184},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[186],{"type":88,"value":187},"npx",{"type":82,"tag":167,"props":189,"children":191},{"style":190},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[192],{"type":88,"value":193}," shadcn@latest",{"type":82,"tag":167,"props":195,"children":196},{"style":190},[197],{"type":88,"value":198}," init",{"type":82,"tag":167,"props":200,"children":201},{"style":190},[202],{"type":88,"value":203}," -d\n",{"type":82,"tag":167,"props":205,"children":207},{"class":169,"line":206},3,[208],{"type":82,"tag":167,"props":209,"children":211},{"emptyLinePlaceholder":210},true,[212],{"type":88,"value":213},"\n",{"type":82,"tag":167,"props":215,"children":217},{"class":169,"line":216},4,[218],{"type":82,"tag":167,"props":219,"children":220},{"style":174},[221],{"type":88,"value":222},"# Non-interactive with a preset (recommended for consistent design systems)\n",{"type":82,"tag":167,"props":224,"children":226},{"class":169,"line":225},5,[227,231,235,239,244,250,255,261,266],{"type":82,"tag":167,"props":228,"children":229},{"style":184},[230],{"type":88,"value":187},{"type":82,"tag":167,"props":232,"children":233},{"style":190},[234],{"type":88,"value":193},{"type":82,"tag":167,"props":236,"children":237},{"style":190},[238],{"type":88,"value":198},{"type":82,"tag":167,"props":240,"children":241},{"style":190},[242],{"type":88,"value":243}," --preset",{"type":82,"tag":167,"props":245,"children":247},{"style":246},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[248],{"type":88,"value":249}," \u003C",{"type":82,"tag":167,"props":251,"children":252},{"style":190},[253],{"type":88,"value":254},"cod",{"type":82,"tag":167,"props":256,"children":258},{"style":257},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[259],{"type":88,"value":260},"e",{"type":82,"tag":167,"props":262,"children":263},{"style":246},[264],{"type":88,"value":265},">",{"type":82,"tag":167,"props":267,"children":268},{"style":190},[269],{"type":88,"value":270}," -f\n",{"type":82,"tag":167,"props":272,"children":273},{"class":169,"line":40},[274],{"type":82,"tag":167,"props":275,"children":276},{"emptyLinePlaceholder":210},[277],{"type":88,"value":213},{"type":82,"tag":167,"props":279,"children":281},{"class":169,"line":280},7,[282],{"type":82,"tag":167,"props":283,"children":284},{"style":174},[285],{"type":88,"value":286},"# Non-interactive with explicit base library choice\n",{"type":82,"tag":167,"props":288,"children":290},{"class":169,"line":289},8,[291,295,299,303,308,313],{"type":82,"tag":167,"props":292,"children":293},{"style":184},[294],{"type":88,"value":187},{"type":82,"tag":167,"props":296,"children":297},{"style":190},[298],{"type":88,"value":193},{"type":82,"tag":167,"props":300,"children":301},{"style":190},[302],{"type":88,"value":198},{"type":82,"tag":167,"props":304,"children":305},{"style":190},[306],{"type":88,"value":307}," -d",{"type":82,"tag":167,"props":309,"children":310},{"style":190},[311],{"type":88,"value":312}," --base",{"type":82,"tag":167,"props":314,"children":315},{"style":190},[316],{"type":88,"value":317}," radix\n",{"type":82,"tag":167,"props":319,"children":321},{"class":169,"line":320},9,[322,326,330,334,338,342],{"type":82,"tag":167,"props":323,"children":324},{"style":184},[325],{"type":88,"value":187},{"type":82,"tag":167,"props":327,"children":328},{"style":190},[329],{"type":88,"value":193},{"type":82,"tag":167,"props":331,"children":332},{"style":190},[333],{"type":88,"value":198},{"type":82,"tag":167,"props":335,"children":336},{"style":190},[337],{"type":88,"value":307},{"type":82,"tag":167,"props":339,"children":340},{"style":190},[341],{"type":88,"value":312},{"type":82,"tag":167,"props":343,"children":344},{"style":190},[345],{"type":88,"value":346}," base-ui\n",{"type":82,"tag":167,"props":348,"children":350},{"class":169,"line":349},10,[351],{"type":82,"tag":167,"props":352,"children":353},{"emptyLinePlaceholder":210},[354],{"type":88,"value":213},{"type":82,"tag":167,"props":356,"children":358},{"class":169,"line":357},11,[359],{"type":82,"tag":167,"props":360,"children":361},{"style":174},[362],{"type":88,"value":363},"# Scaffold a full project template (CLI v4)\n",{"type":82,"tag":365,"props":366,"children":367},"blockquote",{},[368],{"type":82,"tag":90,"props":369,"children":370},{},[371,376,378,384],{"type":82,"tag":108,"props":372,"children":373},{},[374],{"type":88,"value":375},"AI Elements compatibility",{"type":88,"value":377},": Always use ",{"type":82,"tag":139,"props":379,"children":381},{"className":380},[],[382],{"type":88,"value":383},"--base radix",{"type":88,"value":385}," (the default) when the project uses or may use AI Elements. AI Elements components rely on Radix APIs and have type errors with Base UI.",{"type":82,"tag":156,"props":387,"children":389},{"className":158,"code":388,"language":160,"meta":161,"style":161},"npx shadcn@latest init --template next -d\nnpx shadcn@latest init --template vite -d\n",[390],{"type":82,"tag":139,"props":391,"children":392},{"__ignoreMap":161},[393,422],{"type":82,"tag":167,"props":394,"children":395},{"class":169,"line":170},[396,400,404,408,413,418],{"type":82,"tag":167,"props":397,"children":398},{"style":184},[399],{"type":88,"value":187},{"type":82,"tag":167,"props":401,"children":402},{"style":190},[403],{"type":88,"value":193},{"type":82,"tag":167,"props":405,"children":406},{"style":190},[407],{"type":88,"value":198},{"type":82,"tag":167,"props":409,"children":410},{"style":190},[411],{"type":88,"value":412}," --template",{"type":82,"tag":167,"props":414,"children":415},{"style":190},[416],{"type":88,"value":417}," next",{"type":82,"tag":167,"props":419,"children":420},{"style":190},[421],{"type":88,"value":203},{"type":82,"tag":167,"props":423,"children":424},{"class":169,"line":180},[425,429,433,437,441,446],{"type":82,"tag":167,"props":426,"children":427},{"style":184},[428],{"type":88,"value":187},{"type":82,"tag":167,"props":430,"children":431},{"style":190},[432],{"type":88,"value":193},{"type":82,"tag":167,"props":434,"children":435},{"style":190},[436],{"type":88,"value":198},{"type":82,"tag":167,"props":438,"children":439},{"style":190},[440],{"type":88,"value":412},{"type":82,"tag":167,"props":442,"children":443},{"style":190},[444],{"type":88,"value":445}," vite",{"type":82,"tag":167,"props":447,"children":448},{"style":190},[449],{"type":88,"value":203},{"type":82,"tag":90,"props":451,"children":452},{},[453],{"type":88,"value":454},"Options:",{"type":82,"tag":456,"props":457,"children":458},"ul",{},[459,478,496,507,562,573,598],{"type":82,"tag":460,"props":461,"children":462},"li",{},[463,469,471,476],{"type":82,"tag":139,"props":464,"children":466},{"className":465},[],[467],{"type":88,"value":468},"-d, --defaults",{"type":88,"value":470}," — ",{"type":82,"tag":108,"props":472,"children":473},{},[474],{"type":88,"value":475},"Use default configuration, skip all interactive prompts",{"type":88,"value":477}," (REQUIRED for CI\u002Fagent use)",{"type":82,"tag":460,"props":479,"children":480},{},[481,487,489,494],{"type":82,"tag":139,"props":482,"children":484},{"className":483},[],[485],{"type":88,"value":486},"-y, --yes",{"type":88,"value":488}," — Skip confirmation prompts (does NOT skip library selection — use ",{"type":82,"tag":139,"props":490,"children":492},{"className":491},[],[493],{"type":88,"value":152},{"type":88,"value":495}," instead)",{"type":82,"tag":460,"props":497,"children":498},{},[499,505],{"type":82,"tag":139,"props":500,"children":502},{"className":501},[],[503],{"type":88,"value":504},"-f, --force",{"type":88,"value":506}," — Force overwrite existing configuration",{"type":82,"tag":460,"props":508,"children":509},{},[510,516,518,524,526,532,533,539,540,546,547,553,554,560],{"type":82,"tag":139,"props":511,"children":513},{"className":512},[],[514],{"type":88,"value":515},"-t, --template",{"type":88,"value":517}," — Scaffold full project template (",{"type":82,"tag":139,"props":519,"children":521},{"className":520},[],[522],{"type":88,"value":523},"next",{"type":88,"value":525},", ",{"type":82,"tag":139,"props":527,"children":529},{"className":528},[],[530],{"type":88,"value":531},"vite",{"type":88,"value":525},{"type":82,"tag":139,"props":534,"children":536},{"className":535},[],[537],{"type":88,"value":538},"react-router",{"type":88,"value":525},{"type":82,"tag":139,"props":541,"children":543},{"className":542},[],[544],{"type":88,"value":545},"astro",{"type":88,"value":525},{"type":82,"tag":139,"props":548,"children":550},{"className":549},[],[551],{"type":88,"value":552},"laravel",{"type":88,"value":525},{"type":82,"tag":139,"props":555,"children":557},{"className":556},[],[558],{"type":88,"value":559},"tanstack-start",{"type":88,"value":561},")",{"type":82,"tag":460,"props":563,"children":564},{},[565,571],{"type":82,"tag":139,"props":566,"children":568},{"className":567},[],[569],{"type":88,"value":570},"--preset",{"type":88,"value":572}," — Apply a design system preset (colors, theme, icons, fonts, radius) as a single shareable code",{"type":82,"tag":460,"props":574,"children":575},{},[576,582,584,590,592],{"type":82,"tag":139,"props":577,"children":579},{"className":578},[],[580],{"type":88,"value":581},"--base",{"type":88,"value":583}," — Choose primitive library: ",{"type":82,"tag":139,"props":585,"children":587},{"className":586},[],[588],{"type":88,"value":589},"radix",{"type":88,"value":591}," (default) or ",{"type":82,"tag":139,"props":593,"children":595},{"className":594},[],[596],{"type":88,"value":597},"base-ui",{"type":82,"tag":460,"props":599,"children":600},{},[601,607],{"type":82,"tag":139,"props":602,"children":604},{"className":603},[],[605],{"type":88,"value":606},"--monorepo",{"type":88,"value":608}," — Set up a monorepo structure",{"type":82,"tag":365,"props":610,"children":611},{},[612],{"type":82,"tag":90,"props":613,"children":614},{},[615,620,621,627,629,635,637,642],{"type":82,"tag":108,"props":616,"children":617},{},[618],{"type":88,"value":619},"WARNING",{"type":88,"value":137},{"type":82,"tag":139,"props":622,"children":624},{"className":623},[],[625],{"type":88,"value":626},"-y",{"type":88,"value":628},"\u002F",{"type":82,"tag":139,"props":630,"children":632},{"className":631},[],[633],{"type":88,"value":634},"--yes",{"type":88,"value":636}," alone does NOT make init fully non-interactive — it still prompts for component library selection. Always use ",{"type":82,"tag":139,"props":638,"children":640},{"className":639},[],[641],{"type":88,"value":152},{"type":88,"value":643}," to skip ALL prompts.",{"type":82,"tag":365,"props":645,"children":646},{},[647],{"type":82,"tag":90,"props":648,"children":649},{},[650,655,656,662,663,669,670,676,677,683,685,691,693,699,701,707,709,715,716,722],{"type":82,"tag":108,"props":651,"children":652},{},[653],{"type":88,"value":654},"Deprecated in CLI v4",{"type":88,"value":137},{"type":82,"tag":139,"props":657,"children":659},{"className":658},[],[660],{"type":88,"value":661},"--style",{"type":88,"value":525},{"type":82,"tag":139,"props":664,"children":666},{"className":665},[],[667],{"type":88,"value":668},"--base-color",{"type":88,"value":525},{"type":82,"tag":139,"props":671,"children":673},{"className":672},[],[674],{"type":88,"value":675},"--src-dir",{"type":88,"value":525},{"type":82,"tag":139,"props":678,"children":680},{"className":679},[],[681],{"type":88,"value":682},"--no-base-style",{"type":88,"value":684},", and ",{"type":82,"tag":139,"props":686,"children":688},{"className":687},[],[689],{"type":88,"value":690},"--css-variables",{"type":88,"value":692}," flags are removed and will error. The ",{"type":82,"tag":139,"props":694,"children":696},{"className":695},[],[697],{"type":88,"value":698},"registry:build",{"type":88,"value":700}," and ",{"type":82,"tag":139,"props":702,"children":704},{"className":703},[],[705],{"type":88,"value":706},"registry:mcp",{"type":88,"value":708}," registry types are also deprecated. Use ",{"type":82,"tag":139,"props":710,"children":712},{"className":711},[],[713],{"type":88,"value":714},"registry:base",{"type":88,"value":700},{"type":82,"tag":139,"props":717,"children":719},{"className":718},[],[720],{"type":88,"value":721},"registry:font",{"type":88,"value":723}," instead.",{"type":82,"tag":90,"props":725,"children":726},{},[727],{"type":88,"value":728},"The init command:",{"type":82,"tag":730,"props":731,"children":732},"ol",{},[733,738,743,755,768],{"type":82,"tag":460,"props":734,"children":735},{},[736],{"type":88,"value":737},"Detects your framework (Next.js, Vite, React Router, Astro, Laravel, TanStack Start)",{"type":82,"tag":460,"props":739,"children":740},{},[741],{"type":88,"value":742},"Installs required dependencies (Radix UI, tailwind-merge, class-variance-authority)",{"type":82,"tag":460,"props":744,"children":745},{},[746,748,753],{"type":88,"value":747},"Creates ",{"type":82,"tag":139,"props":749,"children":751},{"className":750},[],[752],{"type":88,"value":45},{"type":88,"value":754}," configuration",{"type":82,"tag":460,"props":756,"children":757},{},[758,760,766],{"type":88,"value":759},"Sets up the ",{"type":82,"tag":139,"props":761,"children":763},{"className":762},[],[764],{"type":88,"value":765},"cn()",{"type":88,"value":767}," utility function",{"type":82,"tag":460,"props":769,"children":770},{},[771],{"type":88,"value":772},"Configures CSS variables for theming",{"type":82,"tag":122,"props":774,"children":776},{"id":775},"add-components",[777],{"type":88,"value":778},"Add Components",{"type":82,"tag":156,"props":780,"children":782},{"className":158,"code":781,"language":160,"meta":161,"style":161},"# Add specific components\nnpx shadcn@latest add button dialog card\n\n# Add all available components\nnpx shadcn@latest add --all\n\n# Add from a custom registry\nnpx shadcn@latest add @v0\u002Fdashboard\nnpx shadcn@latest add @acme\u002Fcustom-button\n\n# Add from AI Elements registry\nnpx shadcn@latest add https:\u002F\u002Felements.ai-sdk.dev\u002Fapi\u002Fregistry\u002Fall.json\n",[783],{"type":82,"tag":139,"props":784,"children":785},{"__ignoreMap":161},[786,794,825,832,840,860,867,875,895,915,922,930],{"type":82,"tag":167,"props":787,"children":788},{"class":169,"line":170},[789],{"type":82,"tag":167,"props":790,"children":791},{"style":174},[792],{"type":88,"value":793},"# Add specific components\n",{"type":82,"tag":167,"props":795,"children":796},{"class":169,"line":180},[797,801,805,810,815,820],{"type":82,"tag":167,"props":798,"children":799},{"style":184},[800],{"type":88,"value":187},{"type":82,"tag":167,"props":802,"children":803},{"style":190},[804],{"type":88,"value":193},{"type":82,"tag":167,"props":806,"children":807},{"style":190},[808],{"type":88,"value":809}," add",{"type":82,"tag":167,"props":811,"children":812},{"style":190},[813],{"type":88,"value":814}," button",{"type":82,"tag":167,"props":816,"children":817},{"style":190},[818],{"type":88,"value":819}," dialog",{"type":82,"tag":167,"props":821,"children":822},{"style":190},[823],{"type":88,"value":824}," card\n",{"type":82,"tag":167,"props":826,"children":827},{"class":169,"line":206},[828],{"type":82,"tag":167,"props":829,"children":830},{"emptyLinePlaceholder":210},[831],{"type":88,"value":213},{"type":82,"tag":167,"props":833,"children":834},{"class":169,"line":216},[835],{"type":82,"tag":167,"props":836,"children":837},{"style":174},[838],{"type":88,"value":839},"# Add all available components\n",{"type":82,"tag":167,"props":841,"children":842},{"class":169,"line":225},[843,847,851,855],{"type":82,"tag":167,"props":844,"children":845},{"style":184},[846],{"type":88,"value":187},{"type":82,"tag":167,"props":848,"children":849},{"style":190},[850],{"type":88,"value":193},{"type":82,"tag":167,"props":852,"children":853},{"style":190},[854],{"type":88,"value":809},{"type":82,"tag":167,"props":856,"children":857},{"style":190},[858],{"type":88,"value":859}," --all\n",{"type":82,"tag":167,"props":861,"children":862},{"class":169,"line":40},[863],{"type":82,"tag":167,"props":864,"children":865},{"emptyLinePlaceholder":210},[866],{"type":88,"value":213},{"type":82,"tag":167,"props":868,"children":869},{"class":169,"line":280},[870],{"type":82,"tag":167,"props":871,"children":872},{"style":174},[873],{"type":88,"value":874},"# Add from a custom registry\n",{"type":82,"tag":167,"props":876,"children":877},{"class":169,"line":289},[878,882,886,890],{"type":82,"tag":167,"props":879,"children":880},{"style":184},[881],{"type":88,"value":187},{"type":82,"tag":167,"props":883,"children":884},{"style":190},[885],{"type":88,"value":193},{"type":82,"tag":167,"props":887,"children":888},{"style":190},[889],{"type":88,"value":809},{"type":82,"tag":167,"props":891,"children":892},{"style":190},[893],{"type":88,"value":894}," @v0\u002Fdashboard\n",{"type":82,"tag":167,"props":896,"children":897},{"class":169,"line":320},[898,902,906,910],{"type":82,"tag":167,"props":899,"children":900},{"style":184},[901],{"type":88,"value":187},{"type":82,"tag":167,"props":903,"children":904},{"style":190},[905],{"type":88,"value":193},{"type":82,"tag":167,"props":907,"children":908},{"style":190},[909],{"type":88,"value":809},{"type":82,"tag":167,"props":911,"children":912},{"style":190},[913],{"type":88,"value":914}," @acme\u002Fcustom-button\n",{"type":82,"tag":167,"props":916,"children":917},{"class":169,"line":349},[918],{"type":82,"tag":167,"props":919,"children":920},{"emptyLinePlaceholder":210},[921],{"type":88,"value":213},{"type":82,"tag":167,"props":923,"children":924},{"class":169,"line":357},[925],{"type":82,"tag":167,"props":926,"children":927},{"style":174},[928],{"type":88,"value":929},"# Add from AI Elements registry\n",{"type":82,"tag":167,"props":931,"children":933},{"class":169,"line":932},12,[934,938,942,946],{"type":82,"tag":167,"props":935,"children":936},{"style":184},[937],{"type":88,"value":187},{"type":82,"tag":167,"props":939,"children":940},{"style":190},[941],{"type":88,"value":193},{"type":82,"tag":167,"props":943,"children":944},{"style":190},[945],{"type":88,"value":809},{"type":82,"tag":167,"props":947,"children":948},{"style":190},[949],{"type":88,"value":950}," https:\u002F\u002Felements.ai-sdk.dev\u002Fapi\u002Fregistry\u002Fall.json\n",{"type":82,"tag":90,"props":952,"children":953},{},[954],{"type":88,"value":454},{"type":82,"tag":456,"props":956,"children":957},{},[958,969,980,991,1002,1013],{"type":82,"tag":460,"props":959,"children":960},{},[961,967],{"type":82,"tag":139,"props":962,"children":964},{"className":963},[],[965],{"type":88,"value":966},"-o, --overwrite",{"type":88,"value":968}," — Overwrite existing files",{"type":82,"tag":460,"props":970,"children":971},{},[972,978],{"type":82,"tag":139,"props":973,"children":975},{"className":974},[],[976],{"type":88,"value":977},"-p, --path",{"type":88,"value":979}," — Custom install path",{"type":82,"tag":460,"props":981,"children":982},{},[983,989],{"type":82,"tag":139,"props":984,"children":986},{"className":985},[],[987],{"type":88,"value":988},"-a, --all",{"type":88,"value":990}," — Install all components",{"type":82,"tag":460,"props":992,"children":993},{},[994,1000],{"type":82,"tag":139,"props":995,"children":997},{"className":996},[],[998],{"type":88,"value":999},"--dry-run",{"type":88,"value":1001}," — Preview what will be added without writing files",{"type":82,"tag":460,"props":1003,"children":1004},{},[1005,1011],{"type":82,"tag":139,"props":1006,"children":1008},{"className":1007},[],[1009],{"type":88,"value":1010},"--diff",{"type":88,"value":1012}," — Show diff of changes when updating existing components",{"type":82,"tag":460,"props":1014,"children":1015},{},[1016,1022],{"type":82,"tag":139,"props":1017,"children":1019},{"className":1018},[],[1020],{"type":88,"value":1021},"--view",{"type":88,"value":1023}," — Display a registry item's source code inline",{"type":82,"tag":122,"props":1025,"children":1027},{"id":1026},"search-list",[1028],{"type":88,"value":1029},"Search & List",{"type":82,"tag":156,"props":1031,"children":1033},{"className":158,"code":1032,"language":160,"meta":161,"style":161},"npx shadcn@latest search button\nnpx shadcn@latest list @v0\n",[1034],{"type":82,"tag":139,"props":1035,"children":1036},{"__ignoreMap":161},[1037,1058],{"type":82,"tag":167,"props":1038,"children":1039},{"class":169,"line":170},[1040,1044,1048,1053],{"type":82,"tag":167,"props":1041,"children":1042},{"style":184},[1043],{"type":88,"value":187},{"type":82,"tag":167,"props":1045,"children":1046},{"style":190},[1047],{"type":88,"value":193},{"type":82,"tag":167,"props":1049,"children":1050},{"style":190},[1051],{"type":88,"value":1052}," search",{"type":82,"tag":167,"props":1054,"children":1055},{"style":190},[1056],{"type":88,"value":1057}," button\n",{"type":82,"tag":167,"props":1059,"children":1060},{"class":169,"line":180},[1061,1065,1069,1074],{"type":82,"tag":167,"props":1062,"children":1063},{"style":184},[1064],{"type":88,"value":187},{"type":82,"tag":167,"props":1066,"children":1067},{"style":190},[1068],{"type":88,"value":193},{"type":82,"tag":167,"props":1070,"children":1071},{"style":190},[1072],{"type":88,"value":1073}," list",{"type":82,"tag":167,"props":1075,"children":1076},{"style":190},[1077],{"type":88,"value":1078}," @v0\n",{"type":82,"tag":122,"props":1080,"children":1082},{"id":1081},"build-custom-registry",[1083],{"type":88,"value":1084},"Build (Custom Registry)",{"type":82,"tag":156,"props":1086,"children":1088},{"className":158,"code":1087,"language":160,"meta":161,"style":161},"npx shadcn@latest build\nnpx shadcn@latest build .\u002Fregistry.json -o .\u002Fpublic\u002Fr\n",[1089],{"type":82,"tag":139,"props":1090,"children":1091},{"__ignoreMap":161},[1092,1108],{"type":82,"tag":167,"props":1093,"children":1094},{"class":169,"line":170},[1095,1099,1103],{"type":82,"tag":167,"props":1096,"children":1097},{"style":184},[1098],{"type":88,"value":187},{"type":82,"tag":167,"props":1100,"children":1101},{"style":190},[1102],{"type":88,"value":193},{"type":82,"tag":167,"props":1104,"children":1105},{"style":190},[1106],{"type":88,"value":1107}," build\n",{"type":82,"tag":167,"props":1109,"children":1110},{"class":169,"line":180},[1111,1115,1119,1124,1129,1134],{"type":82,"tag":167,"props":1112,"children":1113},{"style":184},[1114],{"type":88,"value":187},{"type":82,"tag":167,"props":1116,"children":1117},{"style":190},[1118],{"type":88,"value":193},{"type":82,"tag":167,"props":1120,"children":1121},{"style":190},[1122],{"type":88,"value":1123}," build",{"type":82,"tag":167,"props":1125,"children":1126},{"style":190},[1127],{"type":88,"value":1128}," .\u002Fregistry.json",{"type":82,"tag":167,"props":1130,"children":1131},{"style":190},[1132],{"type":88,"value":1133}," -o",{"type":82,"tag":167,"props":1135,"children":1136},{"style":190},[1137],{"type":88,"value":1138}," .\u002Fpublic\u002Fr\n",{"type":82,"tag":122,"props":1140,"children":1142},{"id":1141},"view-info-docs-cli-v4",[1143],{"type":88,"value":1144},"View, Info & Docs (CLI v4)",{"type":82,"tag":156,"props":1146,"children":1148},{"className":158,"code":1147,"language":160,"meta":161,"style":161},"# View a registry item's source before installing\nnpx shadcn@latest view button\n\n# Show project diagnostics — config, installed components, dependencies\nnpx shadcn@latest info\n\n# Get docs, code, and examples for any component (agent-friendly output)\nnpx shadcn@latest docs button\nnpx shadcn@latest docs dialog\n",[1149],{"type":82,"tag":139,"props":1150,"children":1151},{"__ignoreMap":161},[1152,1160,1180,1187,1195,1211,1218,1226,1246],{"type":82,"tag":167,"props":1153,"children":1154},{"class":169,"line":170},[1155],{"type":82,"tag":167,"props":1156,"children":1157},{"style":174},[1158],{"type":88,"value":1159},"# View a registry item's source before installing\n",{"type":82,"tag":167,"props":1161,"children":1162},{"class":169,"line":180},[1163,1167,1171,1176],{"type":82,"tag":167,"props":1164,"children":1165},{"style":184},[1166],{"type":88,"value":187},{"type":82,"tag":167,"props":1168,"children":1169},{"style":190},[1170],{"type":88,"value":193},{"type":82,"tag":167,"props":1172,"children":1173},{"style":190},[1174],{"type":88,"value":1175}," view",{"type":82,"tag":167,"props":1177,"children":1178},{"style":190},[1179],{"type":88,"value":1057},{"type":82,"tag":167,"props":1181,"children":1182},{"class":169,"line":206},[1183],{"type":82,"tag":167,"props":1184,"children":1185},{"emptyLinePlaceholder":210},[1186],{"type":88,"value":213},{"type":82,"tag":167,"props":1188,"children":1189},{"class":169,"line":216},[1190],{"type":82,"tag":167,"props":1191,"children":1192},{"style":174},[1193],{"type":88,"value":1194},"# Show project diagnostics — config, installed components, dependencies\n",{"type":82,"tag":167,"props":1196,"children":1197},{"class":169,"line":225},[1198,1202,1206],{"type":82,"tag":167,"props":1199,"children":1200},{"style":184},[1201],{"type":88,"value":187},{"type":82,"tag":167,"props":1203,"children":1204},{"style":190},[1205],{"type":88,"value":193},{"type":82,"tag":167,"props":1207,"children":1208},{"style":190},[1209],{"type":88,"value":1210}," info\n",{"type":82,"tag":167,"props":1212,"children":1213},{"class":169,"line":40},[1214],{"type":82,"tag":167,"props":1215,"children":1216},{"emptyLinePlaceholder":210},[1217],{"type":88,"value":213},{"type":82,"tag":167,"props":1219,"children":1220},{"class":169,"line":280},[1221],{"type":82,"tag":167,"props":1222,"children":1223},{"style":174},[1224],{"type":88,"value":1225},"# Get docs, code, and examples for any component (agent-friendly output)\n",{"type":82,"tag":167,"props":1227,"children":1228},{"class":169,"line":289},[1229,1233,1237,1242],{"type":82,"tag":167,"props":1230,"children":1231},{"style":184},[1232],{"type":88,"value":187},{"type":82,"tag":167,"props":1234,"children":1235},{"style":190},[1236],{"type":88,"value":193},{"type":82,"tag":167,"props":1238,"children":1239},{"style":190},[1240],{"type":88,"value":1241}," docs",{"type":82,"tag":167,"props":1243,"children":1244},{"style":190},[1245],{"type":88,"value":1057},{"type":82,"tag":167,"props":1247,"children":1248},{"class":169,"line":320},[1249,1253,1257,1261],{"type":82,"tag":167,"props":1250,"children":1251},{"style":184},[1252],{"type":88,"value":187},{"type":82,"tag":167,"props":1254,"children":1255},{"style":190},[1256],{"type":88,"value":193},{"type":82,"tag":167,"props":1258,"children":1259},{"style":190},[1260],{"type":88,"value":1241},{"type":82,"tag":167,"props":1262,"children":1263},{"style":190},[1264],{"type":88,"value":1265}," dialog\n",{"type":82,"tag":365,"props":1267,"children":1268},{},[1269],{"type":82,"tag":90,"props":1270,"children":1271},{},[1272,1281],{"type":82,"tag":108,"props":1273,"children":1274},{},[1275],{"type":82,"tag":139,"props":1276,"children":1278},{"className":1277},[],[1279],{"type":88,"value":1280},"shadcn docs",{"type":88,"value":1282}," gives coding agents the context to use primitives correctly — returns code examples, API reference, and usage patterns inline.",{"type":82,"tag":122,"props":1284,"children":1286},{"id":1285},"migrate",[1287],{"type":88,"value":1288},"Migrate",{"type":82,"tag":156,"props":1290,"children":1292},{"className":158,"code":1291,"language":160,"meta":161,"style":161},"npx shadcn@latest migrate rtl    # RTL support migration\nnpx shadcn@latest migrate radix  # Migrate to unified radix-ui package\nnpx shadcn@latest migrate icons  # Icon library changes\n\n# Migrate components outside the default ui directory\nnpx shadcn@latest migrate radix src\u002Fcomponents\u002Fcustom\n",[1293],{"type":82,"tag":139,"props":1294,"children":1295},{"__ignoreMap":161},[1296,1322,1347,1372,1379,1387],{"type":82,"tag":167,"props":1297,"children":1298},{"class":169,"line":170},[1299,1303,1307,1312,1317],{"type":82,"tag":167,"props":1300,"children":1301},{"style":184},[1302],{"type":88,"value":187},{"type":82,"tag":167,"props":1304,"children":1305},{"style":190},[1306],{"type":88,"value":193},{"type":82,"tag":167,"props":1308,"children":1309},{"style":190},[1310],{"type":88,"value":1311}," migrate",{"type":82,"tag":167,"props":1313,"children":1314},{"style":190},[1315],{"type":88,"value":1316}," rtl",{"type":82,"tag":167,"props":1318,"children":1319},{"style":174},[1320],{"type":88,"value":1321},"    # RTL support migration\n",{"type":82,"tag":167,"props":1323,"children":1324},{"class":169,"line":180},[1325,1329,1333,1337,1342],{"type":82,"tag":167,"props":1326,"children":1327},{"style":184},[1328],{"type":88,"value":187},{"type":82,"tag":167,"props":1330,"children":1331},{"style":190},[1332],{"type":88,"value":193},{"type":82,"tag":167,"props":1334,"children":1335},{"style":190},[1336],{"type":88,"value":1311},{"type":82,"tag":167,"props":1338,"children":1339},{"style":190},[1340],{"type":88,"value":1341}," radix",{"type":82,"tag":167,"props":1343,"children":1344},{"style":174},[1345],{"type":88,"value":1346},"  # Migrate to unified radix-ui package\n",{"type":82,"tag":167,"props":1348,"children":1349},{"class":169,"line":206},[1350,1354,1358,1362,1367],{"type":82,"tag":167,"props":1351,"children":1352},{"style":184},[1353],{"type":88,"value":187},{"type":82,"tag":167,"props":1355,"children":1356},{"style":190},[1357],{"type":88,"value":193},{"type":82,"tag":167,"props":1359,"children":1360},{"style":190},[1361],{"type":88,"value":1311},{"type":82,"tag":167,"props":1363,"children":1364},{"style":190},[1365],{"type":88,"value":1366}," icons",{"type":82,"tag":167,"props":1368,"children":1369},{"style":174},[1370],{"type":88,"value":1371},"  # Icon library changes\n",{"type":82,"tag":167,"props":1373,"children":1374},{"class":169,"line":216},[1375],{"type":82,"tag":167,"props":1376,"children":1377},{"emptyLinePlaceholder":210},[1378],{"type":88,"value":213},{"type":82,"tag":167,"props":1380,"children":1381},{"class":169,"line":225},[1382],{"type":82,"tag":167,"props":1383,"children":1384},{"style":174},[1385],{"type":88,"value":1386},"# Migrate components outside the default ui directory\n",{"type":82,"tag":167,"props":1388,"children":1389},{"class":169,"line":40},[1390,1394,1398,1402,1406],{"type":82,"tag":167,"props":1391,"children":1392},{"style":184},[1393],{"type":88,"value":187},{"type":82,"tag":167,"props":1395,"children":1396},{"style":190},[1397],{"type":88,"value":193},{"type":82,"tag":167,"props":1399,"children":1400},{"style":190},[1401],{"type":88,"value":1311},{"type":82,"tag":167,"props":1403,"children":1404},{"style":190},[1405],{"type":88,"value":1341},{"type":82,"tag":167,"props":1407,"children":1408},{"style":190},[1409],{"type":88,"value":1410}," src\u002Fcomponents\u002Fcustom\n",{"type":82,"tag":96,"props":1412,"children":1414},{"id":1413},"shadcnskills-cli-v4",[1415],{"type":88,"value":1416},"shadcn\u002Fskills (CLI v4)",{"type":82,"tag":90,"props":1418,"children":1419},{},[1420],{"type":88,"value":1421},"shadcn\u002Fskills gives coding agents the context they need to work with components and registries correctly. It covers both Radix and Base UI primitives, updated APIs, component patterns, and registry workflows. The skill knows how to use the CLI, when to invoke it, and which flags to pass — so agents produce code that matches your design system.",{"type":82,"tag":90,"props":1423,"children":1424},{},[1425,1427],{"type":88,"value":1426},"Install: ",{"type":82,"tag":139,"props":1428,"children":1430},{"className":1429},[],[1431],{"type":88,"value":1432},"pnpm dlx skills add shadcn\u002Fui",{"type":82,"tag":96,"props":1434,"children":1436},{"id":1435},"unified-radix-ui-package-february-2026",[1437],{"type":88,"value":1438},"Unified Radix UI Package (February 2026)",{"type":82,"tag":90,"props":1440,"children":1441},{},[1442,1444,1450,1452,1458,1460,1466],{"type":88,"value":1443},"The ",{"type":82,"tag":139,"props":1445,"children":1447},{"className":1446},[],[1448],{"type":88,"value":1449},"new-york",{"type":88,"value":1451}," style now uses a single ",{"type":82,"tag":139,"props":1453,"children":1455},{"className":1454},[],[1456],{"type":88,"value":1457},"radix-ui",{"type":88,"value":1459}," package instead of individual ",{"type":82,"tag":139,"props":1461,"children":1463},{"className":1462},[],[1464],{"type":88,"value":1465},"@radix-ui\u002Freact-*",{"type":88,"value":1467}," packages:",{"type":82,"tag":156,"props":1469,"children":1473},{"className":1470,"code":1471,"language":1472,"meta":161,"style":161},"language-tsx shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u002F\u002F OLD — individual packages\nimport * as DialogPrimitive from \"@radix-ui\u002Freact-dialog\"\n\n\u002F\u002F NEW — unified package\nimport { Dialog as DialogPrimitive } from \"radix-ui\"\n","tsx",[1474],{"type":82,"tag":139,"props":1475,"children":1476},{"__ignoreMap":161},[1477,1485,1529,1536,1544],{"type":82,"tag":167,"props":1478,"children":1479},{"class":169,"line":170},[1480],{"type":82,"tag":167,"props":1481,"children":1482},{"style":174},[1483],{"type":88,"value":1484},"\u002F\u002F OLD — individual packages\n",{"type":82,"tag":167,"props":1486,"children":1487},{"class":169,"line":180},[1488,1494,1499,1504,1509,1514,1519,1524],{"type":82,"tag":167,"props":1489,"children":1491},{"style":1490},"--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic",[1492],{"type":88,"value":1493},"import",{"type":82,"tag":167,"props":1495,"children":1496},{"style":246},[1497],{"type":88,"value":1498}," *",{"type":82,"tag":167,"props":1500,"children":1501},{"style":1490},[1502],{"type":88,"value":1503}," as",{"type":82,"tag":167,"props":1505,"children":1506},{"style":257},[1507],{"type":88,"value":1508}," DialogPrimitive ",{"type":82,"tag":167,"props":1510,"children":1511},{"style":1490},[1512],{"type":88,"value":1513},"from",{"type":82,"tag":167,"props":1515,"children":1516},{"style":246},[1517],{"type":88,"value":1518}," \"",{"type":82,"tag":167,"props":1520,"children":1521},{"style":190},[1522],{"type":88,"value":1523},"@radix-ui\u002Freact-dialog",{"type":82,"tag":167,"props":1525,"children":1526},{"style":246},[1527],{"type":88,"value":1528},"\"\n",{"type":82,"tag":167,"props":1530,"children":1531},{"class":169,"line":206},[1532],{"type":82,"tag":167,"props":1533,"children":1534},{"emptyLinePlaceholder":210},[1535],{"type":88,"value":213},{"type":82,"tag":167,"props":1537,"children":1538},{"class":169,"line":216},[1539],{"type":82,"tag":167,"props":1540,"children":1541},{"style":174},[1542],{"type":88,"value":1543},"\u002F\u002F NEW — unified package\n",{"type":82,"tag":167,"props":1545,"children":1546},{"class":169,"line":225},[1547,1551,1556,1561,1565,1570,1575,1580,1584,1588],{"type":82,"tag":167,"props":1548,"children":1549},{"style":1490},[1550],{"type":88,"value":1493},{"type":82,"tag":167,"props":1552,"children":1553},{"style":246},[1554],{"type":88,"value":1555}," {",{"type":82,"tag":167,"props":1557,"children":1558},{"style":257},[1559],{"type":88,"value":1560}," Dialog",{"type":82,"tag":167,"props":1562,"children":1563},{"style":1490},[1564],{"type":88,"value":1503},{"type":82,"tag":167,"props":1566,"children":1567},{"style":257},[1568],{"type":88,"value":1569}," DialogPrimitive",{"type":82,"tag":167,"props":1571,"children":1572},{"style":246},[1573],{"type":88,"value":1574}," }",{"type":82,"tag":167,"props":1576,"children":1577},{"style":1490},[1578],{"type":88,"value":1579}," from",{"type":82,"tag":167,"props":1581,"children":1582},{"style":246},[1583],{"type":88,"value":1518},{"type":82,"tag":167,"props":1585,"children":1586},{"style":190},[1587],{"type":88,"value":1457},{"type":82,"tag":167,"props":1589,"children":1590},{"style":246},[1591],{"type":88,"value":1528},{"type":82,"tag":90,"props":1593,"children":1594},{},[1595,1597,1603,1605,1610,1612,1618],{"type":88,"value":1596},"To migrate existing projects: ",{"type":82,"tag":139,"props":1598,"children":1600},{"className":1599},[],[1601],{"type":88,"value":1602},"npx shadcn@latest migrate radix",{"type":88,"value":1604},". After migration, remove unused ",{"type":82,"tag":139,"props":1606,"children":1608},{"className":1607},[],[1609],{"type":88,"value":1465},{"type":88,"value":1611}," packages from ",{"type":82,"tag":139,"props":1613,"children":1615},{"className":1614},[],[1616],{"type":88,"value":1617},"package.json",{"type":88,"value":1619},".",{"type":82,"tag":96,"props":1621,"children":1623},{"id":1622},"base-ui-support-january-2026",[1624],{"type":88,"value":1625},"Base UI Support (January 2026)",{"type":82,"tag":90,"props":1627,"children":1628},{},[1629,1631,1636],{"type":88,"value":1630},"shadcn\u002Fui now supports ",{"type":82,"tag":108,"props":1632,"children":1633},{},[1634],{"type":88,"value":1635},"Base UI",{"type":88,"value":1637}," as an alternative to Radix UI for the underlying primitive library. Components look and behave the same way regardless of which library you choose — only the underlying implementation changes.",{"type":82,"tag":90,"props":1639,"children":1640},{},[1641,1643],{"type":88,"value":1642},"Choose during init: ",{"type":82,"tag":139,"props":1644,"children":1646},{"className":1645},[],[1647],{"type":88,"value":1648},"npx shadcn@latest init --base base-ui",{"type":82,"tag":90,"props":1650,"children":1651},{},[1652],{"type":88,"value":1653},"The CLI pulls the correct component variant based on your project configuration automatically.",{"type":82,"tag":96,"props":1655,"children":1657},{"id":1656},"configuration-componentsjson",[1658],{"type":88,"value":1659},"Configuration (components.json)",{"type":82,"tag":90,"props":1661,"children":1662},{},[1663,1664,1669],{"type":88,"value":1443},{"type":82,"tag":139,"props":1665,"children":1667},{"className":1666},[],[1668],{"type":88,"value":45},{"type":88,"value":1670}," file configures how shadcn\u002Fui works in your project:",{"type":82,"tag":156,"props":1672,"children":1676},{"className":1673,"code":1674,"language":1675,"meta":161,"style":161},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"$schema\": \"https:\u002F\u002Fui.shadcn.com\u002Fschema.json\",\n  \"style\": \"new-york\",\n  \"rsc\": true,\n  \"tsx\": true,\n  \"tailwind\": {\n    \"config\": \"tailwind.config.ts\",\n    \"css\": \"src\u002Fapp\u002Fglobals.css\",\n    \"baseColor\": \"zinc\",  \u002F\u002F Options: gray, neutral, slate, stone, zinc, mauve, olive, mist, taupe\n    \"cssVariables\": true\n  },\n  \"aliases\": {\n    \"components\": \"@\u002Fcomponents\",\n    \"utils\": \"@\u002Flib\u002Futils\",\n    \"ui\": \"@\u002Fcomponents\u002Fui\",\n    \"lib\": \"@\u002Flib\",\n    \"hooks\": \"@\u002Fhooks\"\n  },\n  \"registries\": {\n    \"v0\": {\n      \"url\": \"https:\u002F\u002Fv0.dev\u002Fchat\u002Fapi\u002Fregistry\"\n    },\n    \"ai-elements\": {\n      \"url\": \"https:\u002F\u002Felements.ai-sdk.dev\u002Fapi\u002Fregistry\"\n    }\n  }\n}\n","json",[1677],{"type":82,"tag":139,"props":1678,"children":1679},{"__ignoreMap":161},[1680,1688,1730,1766,1791,1814,1839,1877,1914,1957,1982,1990,2014,2052,2090,2128,2166,2200,2208,2233,2258,2294,2303,2328,2361,2370,2379],{"type":82,"tag":167,"props":1681,"children":1682},{"class":169,"line":170},[1683],{"type":82,"tag":167,"props":1684,"children":1685},{"style":246},[1686],{"type":88,"value":1687},"{\n",{"type":82,"tag":167,"props":1689,"children":1690},{"class":169,"line":180},[1691,1696,1702,1707,1712,1716,1721,1725],{"type":82,"tag":167,"props":1692,"children":1693},{"style":246},[1694],{"type":88,"value":1695},"  \"",{"type":82,"tag":167,"props":1697,"children":1699},{"style":1698},"--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA",[1700],{"type":88,"value":1701},"$schema",{"type":82,"tag":167,"props":1703,"children":1704},{"style":246},[1705],{"type":88,"value":1706},"\"",{"type":82,"tag":167,"props":1708,"children":1709},{"style":246},[1710],{"type":88,"value":1711},":",{"type":82,"tag":167,"props":1713,"children":1714},{"style":246},[1715],{"type":88,"value":1518},{"type":82,"tag":167,"props":1717,"children":1718},{"style":190},[1719],{"type":88,"value":1720},"https:\u002F\u002Fui.shadcn.com\u002Fschema.json",{"type":82,"tag":167,"props":1722,"children":1723},{"style":246},[1724],{"type":88,"value":1706},{"type":82,"tag":167,"props":1726,"children":1727},{"style":246},[1728],{"type":88,"value":1729},",\n",{"type":82,"tag":167,"props":1731,"children":1732},{"class":169,"line":206},[1733,1737,1742,1746,1750,1754,1758,1762],{"type":82,"tag":167,"props":1734,"children":1735},{"style":246},[1736],{"type":88,"value":1695},{"type":82,"tag":167,"props":1738,"children":1739},{"style":1698},[1740],{"type":88,"value":1741},"style",{"type":82,"tag":167,"props":1743,"children":1744},{"style":246},[1745],{"type":88,"value":1706},{"type":82,"tag":167,"props":1747,"children":1748},{"style":246},[1749],{"type":88,"value":1711},{"type":82,"tag":167,"props":1751,"children":1752},{"style":246},[1753],{"type":88,"value":1518},{"type":82,"tag":167,"props":1755,"children":1756},{"style":190},[1757],{"type":88,"value":1449},{"type":82,"tag":167,"props":1759,"children":1760},{"style":246},[1761],{"type":88,"value":1706},{"type":82,"tag":167,"props":1763,"children":1764},{"style":246},[1765],{"type":88,"value":1729},{"type":82,"tag":167,"props":1767,"children":1768},{"class":169,"line":216},[1769,1773,1778,1782,1786],{"type":82,"tag":167,"props":1770,"children":1771},{"style":246},[1772],{"type":88,"value":1695},{"type":82,"tag":167,"props":1774,"children":1775},{"style":1698},[1776],{"type":88,"value":1777},"rsc",{"type":82,"tag":167,"props":1779,"children":1780},{"style":246},[1781],{"type":88,"value":1706},{"type":82,"tag":167,"props":1783,"children":1784},{"style":246},[1785],{"type":88,"value":1711},{"type":82,"tag":167,"props":1787,"children":1788},{"style":246},[1789],{"type":88,"value":1790}," true,\n",{"type":82,"tag":167,"props":1792,"children":1793},{"class":169,"line":225},[1794,1798,1802,1806,1810],{"type":82,"tag":167,"props":1795,"children":1796},{"style":246},[1797],{"type":88,"value":1695},{"type":82,"tag":167,"props":1799,"children":1800},{"style":1698},[1801],{"type":88,"value":1472},{"type":82,"tag":167,"props":1803,"children":1804},{"style":246},[1805],{"type":88,"value":1706},{"type":82,"tag":167,"props":1807,"children":1808},{"style":246},[1809],{"type":88,"value":1711},{"type":82,"tag":167,"props":1811,"children":1812},{"style":246},[1813],{"type":88,"value":1790},{"type":82,"tag":167,"props":1815,"children":1816},{"class":169,"line":40},[1817,1821,1826,1830,1834],{"type":82,"tag":167,"props":1818,"children":1819},{"style":246},[1820],{"type":88,"value":1695},{"type":82,"tag":167,"props":1822,"children":1823},{"style":1698},[1824],{"type":88,"value":1825},"tailwind",{"type":82,"tag":167,"props":1827,"children":1828},{"style":246},[1829],{"type":88,"value":1706},{"type":82,"tag":167,"props":1831,"children":1832},{"style":246},[1833],{"type":88,"value":1711},{"type":82,"tag":167,"props":1835,"children":1836},{"style":246},[1837],{"type":88,"value":1838}," {\n",{"type":82,"tag":167,"props":1840,"children":1841},{"class":169,"line":280},[1842,1847,1852,1856,1860,1864,1869,1873],{"type":82,"tag":167,"props":1843,"children":1844},{"style":246},[1845],{"type":88,"value":1846},"    \"",{"type":82,"tag":167,"props":1848,"children":1849},{"style":184},[1850],{"type":88,"value":1851},"config",{"type":82,"tag":167,"props":1853,"children":1854},{"style":246},[1855],{"type":88,"value":1706},{"type":82,"tag":167,"props":1857,"children":1858},{"style":246},[1859],{"type":88,"value":1711},{"type":82,"tag":167,"props":1861,"children":1862},{"style":246},[1863],{"type":88,"value":1518},{"type":82,"tag":167,"props":1865,"children":1866},{"style":190},[1867],{"type":88,"value":1868},"tailwind.config.ts",{"type":82,"tag":167,"props":1870,"children":1871},{"style":246},[1872],{"type":88,"value":1706},{"type":82,"tag":167,"props":1874,"children":1875},{"style":246},[1876],{"type":88,"value":1729},{"type":82,"tag":167,"props":1878,"children":1879},{"class":169,"line":289},[1880,1884,1889,1893,1897,1901,1906,1910],{"type":82,"tag":167,"props":1881,"children":1882},{"style":246},[1883],{"type":88,"value":1846},{"type":82,"tag":167,"props":1885,"children":1886},{"style":184},[1887],{"type":88,"value":1888},"css",{"type":82,"tag":167,"props":1890,"children":1891},{"style":246},[1892],{"type":88,"value":1706},{"type":82,"tag":167,"props":1894,"children":1895},{"style":246},[1896],{"type":88,"value":1711},{"type":82,"tag":167,"props":1898,"children":1899},{"style":246},[1900],{"type":88,"value":1518},{"type":82,"tag":167,"props":1902,"children":1903},{"style":190},[1904],{"type":88,"value":1905},"src\u002Fapp\u002Fglobals.css",{"type":82,"tag":167,"props":1907,"children":1908},{"style":246},[1909],{"type":88,"value":1706},{"type":82,"tag":167,"props":1911,"children":1912},{"style":246},[1913],{"type":88,"value":1729},{"type":82,"tag":167,"props":1915,"children":1916},{"class":169,"line":320},[1917,1921,1926,1930,1934,1938,1943,1947,1952],{"type":82,"tag":167,"props":1918,"children":1919},{"style":246},[1920],{"type":88,"value":1846},{"type":82,"tag":167,"props":1922,"children":1923},{"style":184},[1924],{"type":88,"value":1925},"baseColor",{"type":82,"tag":167,"props":1927,"children":1928},{"style":246},[1929],{"type":88,"value":1706},{"type":82,"tag":167,"props":1931,"children":1932},{"style":246},[1933],{"type":88,"value":1711},{"type":82,"tag":167,"props":1935,"children":1936},{"style":246},[1937],{"type":88,"value":1518},{"type":82,"tag":167,"props":1939,"children":1940},{"style":190},[1941],{"type":88,"value":1942},"zinc",{"type":82,"tag":167,"props":1944,"children":1945},{"style":246},[1946],{"type":88,"value":1706},{"type":82,"tag":167,"props":1948,"children":1949},{"style":246},[1950],{"type":88,"value":1951},",",{"type":82,"tag":167,"props":1953,"children":1954},{"style":174},[1955],{"type":88,"value":1956},"  \u002F\u002F Options: gray, neutral, slate, stone, zinc, mauve, olive, mist, taupe\n",{"type":82,"tag":167,"props":1958,"children":1959},{"class":169,"line":349},[1960,1964,1969,1973,1977],{"type":82,"tag":167,"props":1961,"children":1962},{"style":246},[1963],{"type":88,"value":1846},{"type":82,"tag":167,"props":1965,"children":1966},{"style":184},[1967],{"type":88,"value":1968},"cssVariables",{"type":82,"tag":167,"props":1970,"children":1971},{"style":246},[1972],{"type":88,"value":1706},{"type":82,"tag":167,"props":1974,"children":1975},{"style":246},[1976],{"type":88,"value":1711},{"type":82,"tag":167,"props":1978,"children":1979},{"style":246},[1980],{"type":88,"value":1981}," true\n",{"type":82,"tag":167,"props":1983,"children":1984},{"class":169,"line":357},[1985],{"type":82,"tag":167,"props":1986,"children":1987},{"style":246},[1988],{"type":88,"value":1989},"  },\n",{"type":82,"tag":167,"props":1991,"children":1992},{"class":169,"line":932},[1993,1997,2002,2006,2010],{"type":82,"tag":167,"props":1994,"children":1995},{"style":246},[1996],{"type":88,"value":1695},{"type":82,"tag":167,"props":1998,"children":1999},{"style":1698},[2000],{"type":88,"value":2001},"aliases",{"type":82,"tag":167,"props":2003,"children":2004},{"style":246},[2005],{"type":88,"value":1706},{"type":82,"tag":167,"props":2007,"children":2008},{"style":246},[2009],{"type":88,"value":1711},{"type":82,"tag":167,"props":2011,"children":2012},{"style":246},[2013],{"type":88,"value":1838},{"type":82,"tag":167,"props":2015,"children":2017},{"class":169,"line":2016},13,[2018,2022,2027,2031,2035,2039,2044,2048],{"type":82,"tag":167,"props":2019,"children":2020},{"style":246},[2021],{"type":88,"value":1846},{"type":82,"tag":167,"props":2023,"children":2024},{"style":184},[2025],{"type":88,"value":2026},"components",{"type":82,"tag":167,"props":2028,"children":2029},{"style":246},[2030],{"type":88,"value":1706},{"type":82,"tag":167,"props":2032,"children":2033},{"style":246},[2034],{"type":88,"value":1711},{"type":82,"tag":167,"props":2036,"children":2037},{"style":246},[2038],{"type":88,"value":1518},{"type":82,"tag":167,"props":2040,"children":2041},{"style":190},[2042],{"type":88,"value":2043},"@\u002Fcomponents",{"type":82,"tag":167,"props":2045,"children":2046},{"style":246},[2047],{"type":88,"value":1706},{"type":82,"tag":167,"props":2049,"children":2050},{"style":246},[2051],{"type":88,"value":1729},{"type":82,"tag":167,"props":2053,"children":2055},{"class":169,"line":2054},14,[2056,2060,2065,2069,2073,2077,2082,2086],{"type":82,"tag":167,"props":2057,"children":2058},{"style":246},[2059],{"type":88,"value":1846},{"type":82,"tag":167,"props":2061,"children":2062},{"style":184},[2063],{"type":88,"value":2064},"utils",{"type":82,"tag":167,"props":2066,"children":2067},{"style":246},[2068],{"type":88,"value":1706},{"type":82,"tag":167,"props":2070,"children":2071},{"style":246},[2072],{"type":88,"value":1711},{"type":82,"tag":167,"props":2074,"children":2075},{"style":246},[2076],{"type":88,"value":1518},{"type":82,"tag":167,"props":2078,"children":2079},{"style":190},[2080],{"type":88,"value":2081},"@\u002Flib\u002Futils",{"type":82,"tag":167,"props":2083,"children":2084},{"style":246},[2085],{"type":88,"value":1706},{"type":82,"tag":167,"props":2087,"children":2088},{"style":246},[2089],{"type":88,"value":1729},{"type":82,"tag":167,"props":2091,"children":2093},{"class":169,"line":2092},15,[2094,2098,2103,2107,2111,2115,2120,2124],{"type":82,"tag":167,"props":2095,"children":2096},{"style":246},[2097],{"type":88,"value":1846},{"type":82,"tag":167,"props":2099,"children":2100},{"style":184},[2101],{"type":88,"value":2102},"ui",{"type":82,"tag":167,"props":2104,"children":2105},{"style":246},[2106],{"type":88,"value":1706},{"type":82,"tag":167,"props":2108,"children":2109},{"style":246},[2110],{"type":88,"value":1711},{"type":82,"tag":167,"props":2112,"children":2113},{"style":246},[2114],{"type":88,"value":1518},{"type":82,"tag":167,"props":2116,"children":2117},{"style":190},[2118],{"type":88,"value":2119},"@\u002Fcomponents\u002Fui",{"type":82,"tag":167,"props":2121,"children":2122},{"style":246},[2123],{"type":88,"value":1706},{"type":82,"tag":167,"props":2125,"children":2126},{"style":246},[2127],{"type":88,"value":1729},{"type":82,"tag":167,"props":2129,"children":2131},{"class":169,"line":2130},16,[2132,2136,2141,2145,2149,2153,2158,2162],{"type":82,"tag":167,"props":2133,"children":2134},{"style":246},[2135],{"type":88,"value":1846},{"type":82,"tag":167,"props":2137,"children":2138},{"style":184},[2139],{"type":88,"value":2140},"lib",{"type":82,"tag":167,"props":2142,"children":2143},{"style":246},[2144],{"type":88,"value":1706},{"type":82,"tag":167,"props":2146,"children":2147},{"style":246},[2148],{"type":88,"value":1711},{"type":82,"tag":167,"props":2150,"children":2151},{"style":246},[2152],{"type":88,"value":1518},{"type":82,"tag":167,"props":2154,"children":2155},{"style":190},[2156],{"type":88,"value":2157},"@\u002Flib",{"type":82,"tag":167,"props":2159,"children":2160},{"style":246},[2161],{"type":88,"value":1706},{"type":82,"tag":167,"props":2163,"children":2164},{"style":246},[2165],{"type":88,"value":1729},{"type":82,"tag":167,"props":2167,"children":2169},{"class":169,"line":2168},17,[2170,2174,2179,2183,2187,2191,2196],{"type":82,"tag":167,"props":2171,"children":2172},{"style":246},[2173],{"type":88,"value":1846},{"type":82,"tag":167,"props":2175,"children":2176},{"style":184},[2177],{"type":88,"value":2178},"hooks",{"type":82,"tag":167,"props":2180,"children":2181},{"style":246},[2182],{"type":88,"value":1706},{"type":82,"tag":167,"props":2184,"children":2185},{"style":246},[2186],{"type":88,"value":1711},{"type":82,"tag":167,"props":2188,"children":2189},{"style":246},[2190],{"type":88,"value":1518},{"type":82,"tag":167,"props":2192,"children":2193},{"style":190},[2194],{"type":88,"value":2195},"@\u002Fhooks",{"type":82,"tag":167,"props":2197,"children":2198},{"style":246},[2199],{"type":88,"value":1528},{"type":82,"tag":167,"props":2201,"children":2203},{"class":169,"line":2202},18,[2204],{"type":82,"tag":167,"props":2205,"children":2206},{"style":246},[2207],{"type":88,"value":1989},{"type":82,"tag":167,"props":2209,"children":2211},{"class":169,"line":2210},19,[2212,2216,2221,2225,2229],{"type":82,"tag":167,"props":2213,"children":2214},{"style":246},[2215],{"type":88,"value":1695},{"type":82,"tag":167,"props":2217,"children":2218},{"style":1698},[2219],{"type":88,"value":2220},"registries",{"type":82,"tag":167,"props":2222,"children":2223},{"style":246},[2224],{"type":88,"value":1706},{"type":82,"tag":167,"props":2226,"children":2227},{"style":246},[2228],{"type":88,"value":1711},{"type":82,"tag":167,"props":2230,"children":2231},{"style":246},[2232],{"type":88,"value":1838},{"type":82,"tag":167,"props":2234,"children":2236},{"class":169,"line":2235},20,[2237,2241,2246,2250,2254],{"type":82,"tag":167,"props":2238,"children":2239},{"style":246},[2240],{"type":88,"value":1846},{"type":82,"tag":167,"props":2242,"children":2243},{"style":184},[2244],{"type":88,"value":2245},"v0",{"type":82,"tag":167,"props":2247,"children":2248},{"style":246},[2249],{"type":88,"value":1706},{"type":82,"tag":167,"props":2251,"children":2252},{"style":246},[2253],{"type":88,"value":1711},{"type":82,"tag":167,"props":2255,"children":2256},{"style":246},[2257],{"type":88,"value":1838},{"type":82,"tag":167,"props":2259,"children":2261},{"class":169,"line":2260},21,[2262,2267,2273,2277,2281,2285,2290],{"type":82,"tag":167,"props":2263,"children":2264},{"style":246},[2265],{"type":88,"value":2266},"      \"",{"type":82,"tag":167,"props":2268,"children":2270},{"style":2269},"--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C",[2271],{"type":88,"value":2272},"url",{"type":82,"tag":167,"props":2274,"children":2275},{"style":246},[2276],{"type":88,"value":1706},{"type":82,"tag":167,"props":2278,"children":2279},{"style":246},[2280],{"type":88,"value":1711},{"type":82,"tag":167,"props":2282,"children":2283},{"style":246},[2284],{"type":88,"value":1518},{"type":82,"tag":167,"props":2286,"children":2287},{"style":190},[2288],{"type":88,"value":2289},"https:\u002F\u002Fv0.dev\u002Fchat\u002Fapi\u002Fregistry",{"type":82,"tag":167,"props":2291,"children":2292},{"style":246},[2293],{"type":88,"value":1528},{"type":82,"tag":167,"props":2295,"children":2297},{"class":169,"line":2296},22,[2298],{"type":82,"tag":167,"props":2299,"children":2300},{"style":246},[2301],{"type":88,"value":2302},"    },\n",{"type":82,"tag":167,"props":2304,"children":2306},{"class":169,"line":2305},23,[2307,2311,2316,2320,2324],{"type":82,"tag":167,"props":2308,"children":2309},{"style":246},[2310],{"type":88,"value":1846},{"type":82,"tag":167,"props":2312,"children":2313},{"style":184},[2314],{"type":88,"value":2315},"ai-elements",{"type":82,"tag":167,"props":2317,"children":2318},{"style":246},[2319],{"type":88,"value":1706},{"type":82,"tag":167,"props":2321,"children":2322},{"style":246},[2323],{"type":88,"value":1711},{"type":82,"tag":167,"props":2325,"children":2326},{"style":246},[2327],{"type":88,"value":1838},{"type":82,"tag":167,"props":2329,"children":2331},{"class":169,"line":2330},24,[2332,2336,2340,2344,2348,2352,2357],{"type":82,"tag":167,"props":2333,"children":2334},{"style":246},[2335],{"type":88,"value":2266},{"type":82,"tag":167,"props":2337,"children":2338},{"style":2269},[2339],{"type":88,"value":2272},{"type":82,"tag":167,"props":2341,"children":2342},{"style":246},[2343],{"type":88,"value":1706},{"type":82,"tag":167,"props":2345,"children":2346},{"style":246},[2347],{"type":88,"value":1711},{"type":82,"tag":167,"props":2349,"children":2350},{"style":246},[2351],{"type":88,"value":1518},{"type":82,"tag":167,"props":2353,"children":2354},{"style":190},[2355],{"type":88,"value":2356},"https:\u002F\u002Felements.ai-sdk.dev\u002Fapi\u002Fregistry",{"type":82,"tag":167,"props":2358,"children":2359},{"style":246},[2360],{"type":88,"value":1528},{"type":82,"tag":167,"props":2362,"children":2364},{"class":169,"line":2363},25,[2365],{"type":82,"tag":167,"props":2366,"children":2367},{"style":246},[2368],{"type":88,"value":2369},"    }\n",{"type":82,"tag":167,"props":2371,"children":2373},{"class":169,"line":2372},26,[2374],{"type":82,"tag":167,"props":2375,"children":2376},{"style":246},[2377],{"type":88,"value":2378},"  }\n",{"type":82,"tag":167,"props":2380,"children":2382},{"class":169,"line":2381},27,[2383],{"type":82,"tag":167,"props":2384,"children":2385},{"style":246},[2386],{"type":88,"value":2387},"}\n",{"type":82,"tag":122,"props":2389,"children":2391},{"id":2390},"namespaced-registries",[2392],{"type":88,"value":2393},"Namespaced Registries",{"type":82,"tag":90,"props":2395,"children":2396},{},[2397],{"type":88,"value":2398},"Configure multiple registries for your project:",{"type":82,"tag":156,"props":2400,"children":2402},{"className":1673,"code":2401,"language":1675,"meta":161,"style":161},"{\n  \"registries\": {\n    \"acme\": {\n      \"url\": \"https:\u002F\u002Facme.com\u002Fregistry\u002F{name}.json\"\n    },\n    \"private\": {\n      \"url\": \"https:\u002F\u002Finternal.company.com\u002Fregistry\u002F{name}.json\",\n      \"headers\": {\n        \"Authorization\": \"Bearer ${REGISTRY_TOKEN}\"\n      }\n    }\n  }\n}\n",[2403],{"type":82,"tag":139,"props":2404,"children":2405},{"__ignoreMap":161},[2406,2413,2436,2460,2492,2499,2523,2559,2583,2618,2626,2633,2640],{"type":82,"tag":167,"props":2407,"children":2408},{"class":169,"line":170},[2409],{"type":82,"tag":167,"props":2410,"children":2411},{"style":246},[2412],{"type":88,"value":1687},{"type":82,"tag":167,"props":2414,"children":2415},{"class":169,"line":180},[2416,2420,2424,2428,2432],{"type":82,"tag":167,"props":2417,"children":2418},{"style":246},[2419],{"type":88,"value":1695},{"type":82,"tag":167,"props":2421,"children":2422},{"style":1698},[2423],{"type":88,"value":2220},{"type":82,"tag":167,"props":2425,"children":2426},{"style":246},[2427],{"type":88,"value":1706},{"type":82,"tag":167,"props":2429,"children":2430},{"style":246},[2431],{"type":88,"value":1711},{"type":82,"tag":167,"props":2433,"children":2434},{"style":246},[2435],{"type":88,"value":1838},{"type":82,"tag":167,"props":2437,"children":2438},{"class":169,"line":206},[2439,2443,2448,2452,2456],{"type":82,"tag":167,"props":2440,"children":2441},{"style":246},[2442],{"type":88,"value":1846},{"type":82,"tag":167,"props":2444,"children":2445},{"style":184},[2446],{"type":88,"value":2447},"acme",{"type":82,"tag":167,"props":2449,"children":2450},{"style":246},[2451],{"type":88,"value":1706},{"type":82,"tag":167,"props":2453,"children":2454},{"style":246},[2455],{"type":88,"value":1711},{"type":82,"tag":167,"props":2457,"children":2458},{"style":246},[2459],{"type":88,"value":1838},{"type":82,"tag":167,"props":2461,"children":2462},{"class":169,"line":216},[2463,2467,2471,2475,2479,2483,2488],{"type":82,"tag":167,"props":2464,"children":2465},{"style":246},[2466],{"type":88,"value":2266},{"type":82,"tag":167,"props":2468,"children":2469},{"style":2269},[2470],{"type":88,"value":2272},{"type":82,"tag":167,"props":2472,"children":2473},{"style":246},[2474],{"type":88,"value":1706},{"type":82,"tag":167,"props":2476,"children":2477},{"style":246},[2478],{"type":88,"value":1711},{"type":82,"tag":167,"props":2480,"children":2481},{"style":246},[2482],{"type":88,"value":1518},{"type":82,"tag":167,"props":2484,"children":2485},{"style":190},[2486],{"type":88,"value":2487},"https:\u002F\u002Facme.com\u002Fregistry\u002F{name}.json",{"type":82,"tag":167,"props":2489,"children":2490},{"style":246},[2491],{"type":88,"value":1528},{"type":82,"tag":167,"props":2493,"children":2494},{"class":169,"line":225},[2495],{"type":82,"tag":167,"props":2496,"children":2497},{"style":246},[2498],{"type":88,"value":2302},{"type":82,"tag":167,"props":2500,"children":2501},{"class":169,"line":40},[2502,2506,2511,2515,2519],{"type":82,"tag":167,"props":2503,"children":2504},{"style":246},[2505],{"type":88,"value":1846},{"type":82,"tag":167,"props":2507,"children":2508},{"style":184},[2509],{"type":88,"value":2510},"private",{"type":82,"tag":167,"props":2512,"children":2513},{"style":246},[2514],{"type":88,"value":1706},{"type":82,"tag":167,"props":2516,"children":2517},{"style":246},[2518],{"type":88,"value":1711},{"type":82,"tag":167,"props":2520,"children":2521},{"style":246},[2522],{"type":88,"value":1838},{"type":82,"tag":167,"props":2524,"children":2525},{"class":169,"line":280},[2526,2530,2534,2538,2542,2546,2551,2555],{"type":82,"tag":167,"props":2527,"children":2528},{"style":246},[2529],{"type":88,"value":2266},{"type":82,"tag":167,"props":2531,"children":2532},{"style":2269},[2533],{"type":88,"value":2272},{"type":82,"tag":167,"props":2535,"children":2536},{"style":246},[2537],{"type":88,"value":1706},{"type":82,"tag":167,"props":2539,"children":2540},{"style":246},[2541],{"type":88,"value":1711},{"type":82,"tag":167,"props":2543,"children":2544},{"style":246},[2545],{"type":88,"value":1518},{"type":82,"tag":167,"props":2547,"children":2548},{"style":190},[2549],{"type":88,"value":2550},"https:\u002F\u002Finternal.company.com\u002Fregistry\u002F{name}.json",{"type":82,"tag":167,"props":2552,"children":2553},{"style":246},[2554],{"type":88,"value":1706},{"type":82,"tag":167,"props":2556,"children":2557},{"style":246},[2558],{"type":88,"value":1729},{"type":82,"tag":167,"props":2560,"children":2561},{"class":169,"line":289},[2562,2566,2571,2575,2579],{"type":82,"tag":167,"props":2563,"children":2564},{"style":246},[2565],{"type":88,"value":2266},{"type":82,"tag":167,"props":2567,"children":2568},{"style":2269},[2569],{"type":88,"value":2570},"headers",{"type":82,"tag":167,"props":2572,"children":2573},{"style":246},[2574],{"type":88,"value":1706},{"type":82,"tag":167,"props":2576,"children":2577},{"style":246},[2578],{"type":88,"value":1711},{"type":82,"tag":167,"props":2580,"children":2581},{"style":246},[2582],{"type":88,"value":1838},{"type":82,"tag":167,"props":2584,"children":2585},{"class":169,"line":320},[2586,2591,2597,2601,2605,2609,2614],{"type":82,"tag":167,"props":2587,"children":2588},{"style":246},[2589],{"type":88,"value":2590},"        \"",{"type":82,"tag":167,"props":2592,"children":2594},{"style":2593},"--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178",[2595],{"type":88,"value":2596},"Authorization",{"type":82,"tag":167,"props":2598,"children":2599},{"style":246},[2600],{"type":88,"value":1706},{"type":82,"tag":167,"props":2602,"children":2603},{"style":246},[2604],{"type":88,"value":1711},{"type":82,"tag":167,"props":2606,"children":2607},{"style":246},[2608],{"type":88,"value":1518},{"type":82,"tag":167,"props":2610,"children":2611},{"style":190},[2612],{"type":88,"value":2613},"Bearer ${REGISTRY_TOKEN}",{"type":82,"tag":167,"props":2615,"children":2616},{"style":246},[2617],{"type":88,"value":1528},{"type":82,"tag":167,"props":2619,"children":2620},{"class":169,"line":349},[2621],{"type":82,"tag":167,"props":2622,"children":2623},{"style":246},[2624],{"type":88,"value":2625},"      }\n",{"type":82,"tag":167,"props":2627,"children":2628},{"class":169,"line":357},[2629],{"type":82,"tag":167,"props":2630,"children":2631},{"style":246},[2632],{"type":88,"value":2369},{"type":82,"tag":167,"props":2634,"children":2635},{"class":169,"line":932},[2636],{"type":82,"tag":167,"props":2637,"children":2638},{"style":246},[2639],{"type":88,"value":2378},{"type":82,"tag":167,"props":2641,"children":2642},{"class":169,"line":2016},[2643],{"type":82,"tag":167,"props":2644,"children":2645},{"style":246},[2646],{"type":88,"value":2387},{"type":82,"tag":90,"props":2648,"children":2649},{},[2650],{"type":88,"value":2651},"Install using namespace syntax:",{"type":82,"tag":156,"props":2653,"children":2655},{"className":158,"code":2654,"language":160,"meta":161,"style":161},"npx shadcn@latest add @acme\u002Fheader @private\u002Fauth-form\n",[2656],{"type":82,"tag":139,"props":2657,"children":2658},{"__ignoreMap":161},[2659],{"type":82,"tag":167,"props":2660,"children":2661},{"class":169,"line":170},[2662,2666,2670,2674,2679],{"type":82,"tag":167,"props":2663,"children":2664},{"style":184},[2665],{"type":88,"value":187},{"type":82,"tag":167,"props":2667,"children":2668},{"style":190},[2669],{"type":88,"value":193},{"type":82,"tag":167,"props":2671,"children":2672},{"style":190},[2673],{"type":88,"value":809},{"type":82,"tag":167,"props":2675,"children":2676},{"style":190},[2677],{"type":88,"value":2678}," @acme\u002Fheader",{"type":82,"tag":167,"props":2680,"children":2681},{"style":190},[2682],{"type":88,"value":2683}," @private\u002Fauth-form\n",{"type":82,"tag":96,"props":2685,"children":2687},{"id":2686},"theming",[2688],{"type":88,"value":2689},"Theming",{"type":82,"tag":122,"props":2691,"children":2693},{"id":2692},"css-variables",[2694],{"type":88,"value":2695},"CSS Variables",{"type":82,"tag":90,"props":2697,"children":2698},{},[2699,2701,2707],{"type":88,"value":2700},"shadcn\u002Fui uses CSS custom properties for theming, defined in ",{"type":82,"tag":139,"props":2702,"children":2704},{"className":2703},[],[2705],{"type":88,"value":2706},"globals.css",{"type":88,"value":1711},{"type":82,"tag":156,"props":2709,"children":2712},{"className":2710,"code":2711,"language":1888,"meta":161,"style":161},"language-css shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","@theme inline {\n  --color-background: oklch(0.145 0 0);\n  --color-foreground: oklch(0.985 0 0);\n  --color-card: oklch(0.205 0 0);\n  --color-card-foreground: oklch(0.985 0 0);\n  --color-primary: oklch(0.488 0.243 264.376);\n  --color-primary-foreground: oklch(0.985 0 0);\n  --color-secondary: oklch(0.269 0 0);\n  --color-secondary-foreground: oklch(0.985 0 0);\n  --color-muted: oklch(0.269 0 0);\n  --color-muted-foreground: oklch(0.708 0 0);\n  --color-accent: oklch(0.269 0 0);\n  --color-accent-foreground: oklch(0.985 0 0);\n  --color-destructive: oklch(0.396 0.141 25.723);\n  --color-border: oklch(0.269 0 0);\n  --color-input: oklch(0.269 0 0);\n  --color-ring: oklch(0.488 0.243 264.376);\n  --radius: 0.625rem;\n  \u002F* CLI v4: radius tokens use multiplicative calc instead of additive *\u002F\n  --radius-xs: calc(var(--radius) * 0.5);\n  --radius-sm: calc(var(--radius) * 0.75);\n  --radius-md: calc(var(--radius) * 0.875);\n  --radius-lg: var(--radius);\n  --radius-xl: calc(var(--radius) * 1.5);\n}\n",[2713],{"type":82,"tag":139,"props":2714,"children":2715},{"__ignoreMap":161},[2716,2733,2755,2776,2797,2817,2867,2887,2908,2928,2948,2969,2989,3009,3057,3077,3097,3141,3149,3157,3187,3216,3245,3253,3282],{"type":82,"tag":167,"props":2717,"children":2718},{"class":169,"line":170},[2719,2724,2729],{"type":82,"tag":167,"props":2720,"children":2721},{"style":1490},[2722],{"type":88,"value":2723},"@theme",{"type":82,"tag":167,"props":2725,"children":2726},{"style":257},[2727],{"type":88,"value":2728}," inline ",{"type":82,"tag":167,"props":2730,"children":2731},{"style":246},[2732],{"type":88,"value":1687},{"type":82,"tag":167,"props":2734,"children":2735},{"class":169,"line":180},[2736,2741,2745,2750],{"type":82,"tag":167,"props":2737,"children":2738},{"style":257},[2739],{"type":88,"value":2740},"  --color-background: oklch(0",{"type":82,"tag":167,"props":2742,"children":2743},{"style":246},[2744],{"type":88,"value":1619},{"type":82,"tag":167,"props":2746,"children":2747},{"style":184},[2748],{"type":88,"value":2749},"145",{"type":82,"tag":167,"props":2751,"children":2752},{"style":257},[2753],{"type":88,"value":2754}," 0 0);\n",{"type":82,"tag":167,"props":2756,"children":2757},{"class":169,"line":206},[2758,2763,2767,2772],{"type":82,"tag":167,"props":2759,"children":2760},{"style":257},[2761],{"type":88,"value":2762},"  --color-foreground: oklch(0",{"type":82,"tag":167,"props":2764,"children":2765},{"style":246},[2766],{"type":88,"value":1619},{"type":82,"tag":167,"props":2768,"children":2769},{"style":184},[2770],{"type":88,"value":2771},"985",{"type":82,"tag":167,"props":2773,"children":2774},{"style":257},[2775],{"type":88,"value":2754},{"type":82,"tag":167,"props":2777,"children":2778},{"class":169,"line":216},[2779,2784,2788,2793],{"type":82,"tag":167,"props":2780,"children":2781},{"style":257},[2782],{"type":88,"value":2783},"  --color-card: oklch(0",{"type":82,"tag":167,"props":2785,"children":2786},{"style":246},[2787],{"type":88,"value":1619},{"type":82,"tag":167,"props":2789,"children":2790},{"style":184},[2791],{"type":88,"value":2792},"205",{"type":82,"tag":167,"props":2794,"children":2795},{"style":257},[2796],{"type":88,"value":2754},{"type":82,"tag":167,"props":2798,"children":2799},{"class":169,"line":225},[2800,2805,2809,2813],{"type":82,"tag":167,"props":2801,"children":2802},{"style":257},[2803],{"type":88,"value":2804},"  --color-card-foreground: oklch(0",{"type":82,"tag":167,"props":2806,"children":2807},{"style":246},[2808],{"type":88,"value":1619},{"type":82,"tag":167,"props":2810,"children":2811},{"style":184},[2812],{"type":88,"value":2771},{"type":82,"tag":167,"props":2814,"children":2815},{"style":257},[2816],{"type":88,"value":2754},{"type":82,"tag":167,"props":2818,"children":2819},{"class":169,"line":40},[2820,2825,2829,2834,2839,2843,2848,2853,2857,2862],{"type":82,"tag":167,"props":2821,"children":2822},{"style":257},[2823],{"type":88,"value":2824},"  --color-primary: oklch(0",{"type":82,"tag":167,"props":2826,"children":2827},{"style":246},[2828],{"type":88,"value":1619},{"type":82,"tag":167,"props":2830,"children":2831},{"style":184},[2832],{"type":88,"value":2833},"488",{"type":82,"tag":167,"props":2835,"children":2836},{"style":257},[2837],{"type":88,"value":2838}," 0",{"type":82,"tag":167,"props":2840,"children":2841},{"style":246},[2842],{"type":88,"value":1619},{"type":82,"tag":167,"props":2844,"children":2845},{"style":184},[2846],{"type":88,"value":2847},"243",{"type":82,"tag":167,"props":2849,"children":2850},{"style":257},[2851],{"type":88,"value":2852}," 264",{"type":82,"tag":167,"props":2854,"children":2855},{"style":246},[2856],{"type":88,"value":1619},{"type":82,"tag":167,"props":2858,"children":2859},{"style":184},[2860],{"type":88,"value":2861},"376",{"type":82,"tag":167,"props":2863,"children":2864},{"style":257},[2865],{"type":88,"value":2866},");\n",{"type":82,"tag":167,"props":2868,"children":2869},{"class":169,"line":280},[2870,2875,2879,2883],{"type":82,"tag":167,"props":2871,"children":2872},{"style":257},[2873],{"type":88,"value":2874},"  --color-primary-foreground: oklch(0",{"type":82,"tag":167,"props":2876,"children":2877},{"style":246},[2878],{"type":88,"value":1619},{"type":82,"tag":167,"props":2880,"children":2881},{"style":184},[2882],{"type":88,"value":2771},{"type":82,"tag":167,"props":2884,"children":2885},{"style":257},[2886],{"type":88,"value":2754},{"type":82,"tag":167,"props":2888,"children":2889},{"class":169,"line":289},[2890,2895,2899,2904],{"type":82,"tag":167,"props":2891,"children":2892},{"style":257},[2893],{"type":88,"value":2894},"  --color-secondary: oklch(0",{"type":82,"tag":167,"props":2896,"children":2897},{"style":246},[2898],{"type":88,"value":1619},{"type":82,"tag":167,"props":2900,"children":2901},{"style":184},[2902],{"type":88,"value":2903},"269",{"type":82,"tag":167,"props":2905,"children":2906},{"style":257},[2907],{"type":88,"value":2754},{"type":82,"tag":167,"props":2909,"children":2910},{"class":169,"line":320},[2911,2916,2920,2924],{"type":82,"tag":167,"props":2912,"children":2913},{"style":257},[2914],{"type":88,"value":2915},"  --color-secondary-foreground: oklch(0",{"type":82,"tag":167,"props":2917,"children":2918},{"style":246},[2919],{"type":88,"value":1619},{"type":82,"tag":167,"props":2921,"children":2922},{"style":184},[2923],{"type":88,"value":2771},{"type":82,"tag":167,"props":2925,"children":2926},{"style":257},[2927],{"type":88,"value":2754},{"type":82,"tag":167,"props":2929,"children":2930},{"class":169,"line":349},[2931,2936,2940,2944],{"type":82,"tag":167,"props":2932,"children":2933},{"style":257},[2934],{"type":88,"value":2935},"  --color-muted: oklch(0",{"type":82,"tag":167,"props":2937,"children":2938},{"style":246},[2939],{"type":88,"value":1619},{"type":82,"tag":167,"props":2941,"children":2942},{"style":184},[2943],{"type":88,"value":2903},{"type":82,"tag":167,"props":2945,"children":2946},{"style":257},[2947],{"type":88,"value":2754},{"type":82,"tag":167,"props":2949,"children":2950},{"class":169,"line":357},[2951,2956,2960,2965],{"type":82,"tag":167,"props":2952,"children":2953},{"style":257},[2954],{"type":88,"value":2955},"  --color-muted-foreground: oklch(0",{"type":82,"tag":167,"props":2957,"children":2958},{"style":246},[2959],{"type":88,"value":1619},{"type":82,"tag":167,"props":2961,"children":2962},{"style":184},[2963],{"type":88,"value":2964},"708",{"type":82,"tag":167,"props":2966,"children":2967},{"style":257},[2968],{"type":88,"value":2754},{"type":82,"tag":167,"props":2970,"children":2971},{"class":169,"line":932},[2972,2977,2981,2985],{"type":82,"tag":167,"props":2973,"children":2974},{"style":257},[2975],{"type":88,"value":2976},"  --color-accent: oklch(0",{"type":82,"tag":167,"props":2978,"children":2979},{"style":246},[2980],{"type":88,"value":1619},{"type":82,"tag":167,"props":2982,"children":2983},{"style":184},[2984],{"type":88,"value":2903},{"type":82,"tag":167,"props":2986,"children":2987},{"style":257},[2988],{"type":88,"value":2754},{"type":82,"tag":167,"props":2990,"children":2991},{"class":169,"line":2016},[2992,2997,3001,3005],{"type":82,"tag":167,"props":2993,"children":2994},{"style":257},[2995],{"type":88,"value":2996},"  --color-accent-foreground: oklch(0",{"type":82,"tag":167,"props":2998,"children":2999},{"style":246},[3000],{"type":88,"value":1619},{"type":82,"tag":167,"props":3002,"children":3003},{"style":184},[3004],{"type":88,"value":2771},{"type":82,"tag":167,"props":3006,"children":3007},{"style":257},[3008],{"type":88,"value":2754},{"type":82,"tag":167,"props":3010,"children":3011},{"class":169,"line":2054},[3012,3017,3021,3026,3030,3034,3039,3044,3048,3053],{"type":82,"tag":167,"props":3013,"children":3014},{"style":257},[3015],{"type":88,"value":3016},"  --color-destructive: oklch(0",{"type":82,"tag":167,"props":3018,"children":3019},{"style":246},[3020],{"type":88,"value":1619},{"type":82,"tag":167,"props":3022,"children":3023},{"style":184},[3024],{"type":88,"value":3025},"396",{"type":82,"tag":167,"props":3027,"children":3028},{"style":257},[3029],{"type":88,"value":2838},{"type":82,"tag":167,"props":3031,"children":3032},{"style":246},[3033],{"type":88,"value":1619},{"type":82,"tag":167,"props":3035,"children":3036},{"style":184},[3037],{"type":88,"value":3038},"141",{"type":82,"tag":167,"props":3040,"children":3041},{"style":257},[3042],{"type":88,"value":3043}," 25",{"type":82,"tag":167,"props":3045,"children":3046},{"style":246},[3047],{"type":88,"value":1619},{"type":82,"tag":167,"props":3049,"children":3050},{"style":184},[3051],{"type":88,"value":3052},"723",{"type":82,"tag":167,"props":3054,"children":3055},{"style":257},[3056],{"type":88,"value":2866},{"type":82,"tag":167,"props":3058,"children":3059},{"class":169,"line":2092},[3060,3065,3069,3073],{"type":82,"tag":167,"props":3061,"children":3062},{"style":257},[3063],{"type":88,"value":3064},"  --color-border: oklch(0",{"type":82,"tag":167,"props":3066,"children":3067},{"style":246},[3068],{"type":88,"value":1619},{"type":82,"tag":167,"props":3070,"children":3071},{"style":184},[3072],{"type":88,"value":2903},{"type":82,"tag":167,"props":3074,"children":3075},{"style":257},[3076],{"type":88,"value":2754},{"type":82,"tag":167,"props":3078,"children":3079},{"class":169,"line":2130},[3080,3085,3089,3093],{"type":82,"tag":167,"props":3081,"children":3082},{"style":257},[3083],{"type":88,"value":3084},"  --color-input: oklch(0",{"type":82,"tag":167,"props":3086,"children":3087},{"style":246},[3088],{"type":88,"value":1619},{"type":82,"tag":167,"props":3090,"children":3091},{"style":184},[3092],{"type":88,"value":2903},{"type":82,"tag":167,"props":3094,"children":3095},{"style":257},[3096],{"type":88,"value":2754},{"type":82,"tag":167,"props":3098,"children":3099},{"class":169,"line":2168},[3100,3105,3109,3113,3117,3121,3125,3129,3133,3137],{"type":82,"tag":167,"props":3101,"children":3102},{"style":257},[3103],{"type":88,"value":3104},"  --color-ring: oklch(0",{"type":82,"tag":167,"props":3106,"children":3107},{"style":246},[3108],{"type":88,"value":1619},{"type":82,"tag":167,"props":3110,"children":3111},{"style":184},[3112],{"type":88,"value":2833},{"type":82,"tag":167,"props":3114,"children":3115},{"style":257},[3116],{"type":88,"value":2838},{"type":82,"tag":167,"props":3118,"children":3119},{"style":246},[3120],{"type":88,"value":1619},{"type":82,"tag":167,"props":3122,"children":3123},{"style":184},[3124],{"type":88,"value":2847},{"type":82,"tag":167,"props":3126,"children":3127},{"style":257},[3128],{"type":88,"value":2852},{"type":82,"tag":167,"props":3130,"children":3131},{"style":246},[3132],{"type":88,"value":1619},{"type":82,"tag":167,"props":3134,"children":3135},{"style":184},[3136],{"type":88,"value":2861},{"type":82,"tag":167,"props":3138,"children":3139},{"style":257},[3140],{"type":88,"value":2866},{"type":82,"tag":167,"props":3142,"children":3143},{"class":169,"line":2202},[3144],{"type":82,"tag":167,"props":3145,"children":3146},{"style":257},[3147],{"type":88,"value":3148},"  --radius: 0.625rem;\n",{"type":82,"tag":167,"props":3150,"children":3151},{"class":169,"line":2210},[3152],{"type":82,"tag":167,"props":3153,"children":3154},{"style":174},[3155],{"type":88,"value":3156},"  \u002F* CLI v4: radius tokens use multiplicative calc instead of additive *\u002F\n",{"type":82,"tag":167,"props":3158,"children":3159},{"class":169,"line":2235},[3160,3165,3170,3174,3178,3183],{"type":82,"tag":167,"props":3161,"children":3162},{"style":257},[3163],{"type":88,"value":3164},"  --radius-xs: calc(var(--radius) ",{"type":82,"tag":167,"props":3166,"children":3167},{"style":184},[3168],{"type":88,"value":3169},"*",{"type":82,"tag":167,"props":3171,"children":3172},{"style":257},[3173],{"type":88,"value":2838},{"type":82,"tag":167,"props":3175,"children":3176},{"style":246},[3177],{"type":88,"value":1619},{"type":82,"tag":167,"props":3179,"children":3180},{"style":184},[3181],{"type":88,"value":3182},"5",{"type":82,"tag":167,"props":3184,"children":3185},{"style":257},[3186],{"type":88,"value":2866},{"type":82,"tag":167,"props":3188,"children":3189},{"class":169,"line":2260},[3190,3195,3199,3203,3207,3212],{"type":82,"tag":167,"props":3191,"children":3192},{"style":257},[3193],{"type":88,"value":3194},"  --radius-sm: calc(var(--radius) ",{"type":82,"tag":167,"props":3196,"children":3197},{"style":184},[3198],{"type":88,"value":3169},{"type":82,"tag":167,"props":3200,"children":3201},{"style":257},[3202],{"type":88,"value":2838},{"type":82,"tag":167,"props":3204,"children":3205},{"style":246},[3206],{"type":88,"value":1619},{"type":82,"tag":167,"props":3208,"children":3209},{"style":184},[3210],{"type":88,"value":3211},"75",{"type":82,"tag":167,"props":3213,"children":3214},{"style":257},[3215],{"type":88,"value":2866},{"type":82,"tag":167,"props":3217,"children":3218},{"class":169,"line":2296},[3219,3224,3228,3232,3236,3241],{"type":82,"tag":167,"props":3220,"children":3221},{"style":257},[3222],{"type":88,"value":3223},"  --radius-md: calc(var(--radius) ",{"type":82,"tag":167,"props":3225,"children":3226},{"style":184},[3227],{"type":88,"value":3169},{"type":82,"tag":167,"props":3229,"children":3230},{"style":257},[3231],{"type":88,"value":2838},{"type":82,"tag":167,"props":3233,"children":3234},{"style":246},[3235],{"type":88,"value":1619},{"type":82,"tag":167,"props":3237,"children":3238},{"style":184},[3239],{"type":88,"value":3240},"875",{"type":82,"tag":167,"props":3242,"children":3243},{"style":257},[3244],{"type":88,"value":2866},{"type":82,"tag":167,"props":3246,"children":3247},{"class":169,"line":2305},[3248],{"type":82,"tag":167,"props":3249,"children":3250},{"style":257},[3251],{"type":88,"value":3252},"  --radius-lg: var(--radius);\n",{"type":82,"tag":167,"props":3254,"children":3255},{"class":169,"line":2330},[3256,3261,3265,3270,3274,3278],{"type":82,"tag":167,"props":3257,"children":3258},{"style":257},[3259],{"type":88,"value":3260},"  --radius-xl: calc(var(--radius) ",{"type":82,"tag":167,"props":3262,"children":3263},{"style":184},[3264],{"type":88,"value":3169},{"type":82,"tag":167,"props":3266,"children":3267},{"style":257},[3268],{"type":88,"value":3269}," 1",{"type":82,"tag":167,"props":3271,"children":3272},{"style":246},[3273],{"type":88,"value":1619},{"type":82,"tag":167,"props":3275,"children":3276},{"style":184},[3277],{"type":88,"value":3182},{"type":82,"tag":167,"props":3279,"children":3280},{"style":257},[3281],{"type":88,"value":2866},{"type":82,"tag":167,"props":3283,"children":3284},{"class":169,"line":2363},[3285],{"type":82,"tag":167,"props":3286,"children":3287},{"style":246},[3288],{"type":88,"value":2387},{"type":82,"tag":122,"props":3290,"children":3292},{"id":3291},"dark-mode",[3293],{"type":88,"value":3294},"Dark Mode",{"type":82,"tag":90,"props":3296,"children":3297},{},[3298,3300,3306,3308,3314],{"type":88,"value":3299},"For dark mode, use the ",{"type":82,"tag":139,"props":3301,"children":3303},{"className":3302},[],[3304],{"type":88,"value":3305},"dark",{"type":88,"value":3307}," class on ",{"type":82,"tag":139,"props":3309,"children":3311},{"className":3310},[],[3312],{"type":88,"value":3313},"\u003Chtml>",{"type":88,"value":1711},{"type":82,"tag":156,"props":3316,"children":3318},{"className":1470,"code":3317,"language":1472,"meta":161,"style":161},"\u002F\u002F app\u002Flayout.tsx\n\u003Chtml lang=\"en\" className=\"dark\">\n",[3319],{"type":82,"tag":139,"props":3320,"children":3321},{"__ignoreMap":161},[3322,3330],{"type":82,"tag":167,"props":3323,"children":3324},{"class":169,"line":170},[3325],{"type":82,"tag":167,"props":3326,"children":3327},{"style":174},[3328],{"type":88,"value":3329},"\u002F\u002F app\u002Flayout.tsx\n",{"type":82,"tag":167,"props":3331,"children":3332},{"class":169,"line":180},[3333,3338,3343,3348,3353,3357,3362,3366,3371,3375,3379,3383,3387],{"type":82,"tag":167,"props":3334,"children":3335},{"style":246},[3336],{"type":88,"value":3337},"\u003C",{"type":82,"tag":167,"props":3339,"children":3340},{"style":2593},[3341],{"type":88,"value":3342},"html",{"type":82,"tag":167,"props":3344,"children":3345},{"style":1698},[3346],{"type":88,"value":3347}," lang",{"type":82,"tag":167,"props":3349,"children":3350},{"style":246},[3351],{"type":88,"value":3352},"=",{"type":82,"tag":167,"props":3354,"children":3355},{"style":246},[3356],{"type":88,"value":1706},{"type":82,"tag":167,"props":3358,"children":3359},{"style":190},[3360],{"type":88,"value":3361},"en",{"type":82,"tag":167,"props":3363,"children":3364},{"style":246},[3365],{"type":88,"value":1706},{"type":82,"tag":167,"props":3367,"children":3368},{"style":1698},[3369],{"type":88,"value":3370}," className",{"type":82,"tag":167,"props":3372,"children":3373},{"style":246},[3374],{"type":88,"value":3352},{"type":82,"tag":167,"props":3376,"children":3377},{"style":246},[3378],{"type":88,"value":1706},{"type":82,"tag":167,"props":3380,"children":3381},{"style":190},[3382],{"type":88,"value":3305},{"type":82,"tag":167,"props":3384,"children":3385},{"style":246},[3386],{"type":88,"value":1706},{"type":82,"tag":167,"props":3388,"children":3389},{"style":246},[3390],{"type":88,"value":3391},">\n",{"type":82,"tag":90,"props":3393,"children":3394},{},[3395],{"type":88,"value":3396},"Or use next-themes for toggling:",{"type":82,"tag":156,"props":3398,"children":3400},{"className":1470,"code":3399,"language":1472,"meta":161,"style":161},"import { ThemeProvider } from 'next-themes'\n\n\u003CThemeProvider attribute=\"class\" defaultTheme=\"dark\">\n  {children}\n\u003C\u002FThemeProvider>\n",[3401],{"type":82,"tag":139,"props":3402,"children":3403},{"__ignoreMap":161},[3404,3443,3450,3509,3526],{"type":82,"tag":167,"props":3405,"children":3406},{"class":169,"line":170},[3407,3411,3415,3420,3424,3428,3433,3438],{"type":82,"tag":167,"props":3408,"children":3409},{"style":1490},[3410],{"type":88,"value":1493},{"type":82,"tag":167,"props":3412,"children":3413},{"style":246},[3414],{"type":88,"value":1555},{"type":82,"tag":167,"props":3416,"children":3417},{"style":257},[3418],{"type":88,"value":3419}," ThemeProvider",{"type":82,"tag":167,"props":3421,"children":3422},{"style":246},[3423],{"type":88,"value":1574},{"type":82,"tag":167,"props":3425,"children":3426},{"style":1490},[3427],{"type":88,"value":1579},{"type":82,"tag":167,"props":3429,"children":3430},{"style":246},[3431],{"type":88,"value":3432}," '",{"type":82,"tag":167,"props":3434,"children":3435},{"style":190},[3436],{"type":88,"value":3437},"next-themes",{"type":82,"tag":167,"props":3439,"children":3440},{"style":246},[3441],{"type":88,"value":3442},"'\n",{"type":82,"tag":167,"props":3444,"children":3445},{"class":169,"line":180},[3446],{"type":82,"tag":167,"props":3447,"children":3448},{"emptyLinePlaceholder":210},[3449],{"type":88,"value":213},{"type":82,"tag":167,"props":3451,"children":3452},{"class":169,"line":206},[3453,3457,3462,3467,3471,3475,3480,3484,3489,3493,3497,3501,3505],{"type":82,"tag":167,"props":3454,"children":3455},{"style":246},[3456],{"type":88,"value":3337},{"type":82,"tag":167,"props":3458,"children":3459},{"style":184},[3460],{"type":88,"value":3461},"ThemeProvider",{"type":82,"tag":167,"props":3463,"children":3464},{"style":1698},[3465],{"type":88,"value":3466}," attribute",{"type":82,"tag":167,"props":3468,"children":3469},{"style":246},[3470],{"type":88,"value":3352},{"type":82,"tag":167,"props":3472,"children":3473},{"style":246},[3474],{"type":88,"value":1706},{"type":82,"tag":167,"props":3476,"children":3477},{"style":190},[3478],{"type":88,"value":3479},"class",{"type":82,"tag":167,"props":3481,"children":3482},{"style":246},[3483],{"type":88,"value":1706},{"type":82,"tag":167,"props":3485,"children":3486},{"style":1698},[3487],{"type":88,"value":3488}," defaultTheme",{"type":82,"tag":167,"props":3490,"children":3491},{"style":246},[3492],{"type":88,"value":3352},{"type":82,"tag":167,"props":3494,"children":3495},{"style":246},[3496],{"type":88,"value":1706},{"type":82,"tag":167,"props":3498,"children":3499},{"style":190},[3500],{"type":88,"value":3305},{"type":82,"tag":167,"props":3502,"children":3503},{"style":246},[3504],{"type":88,"value":1706},{"type":82,"tag":167,"props":3506,"children":3507},{"style":246},[3508],{"type":88,"value":3391},{"type":82,"tag":167,"props":3510,"children":3511},{"class":169,"line":216},[3512,3517,3522],{"type":82,"tag":167,"props":3513,"children":3514},{"style":246},[3515],{"type":88,"value":3516},"  {",{"type":82,"tag":167,"props":3518,"children":3519},{"style":257},[3520],{"type":88,"value":3521},"children",{"type":82,"tag":167,"props":3523,"children":3524},{"style":246},[3525],{"type":88,"value":2387},{"type":82,"tag":167,"props":3527,"children":3528},{"class":169,"line":225},[3529,3534,3538],{"type":82,"tag":167,"props":3530,"children":3531},{"style":246},[3532],{"type":88,"value":3533},"\u003C\u002F",{"type":82,"tag":167,"props":3535,"children":3536},{"style":184},[3537],{"type":88,"value":3461},{"type":82,"tag":167,"props":3539,"children":3540},{"style":246},[3541],{"type":88,"value":3391},{"type":82,"tag":122,"props":3543,"children":3545},{"id":3544},"custom-colors",[3546],{"type":88,"value":3547},"Custom Colors",{"type":82,"tag":90,"props":3549,"children":3550},{},[3551],{"type":88,"value":3552},"Add application-specific colors alongside shadcn defaults:",{"type":82,"tag":156,"props":3554,"children":3556},{"className":2710,"code":3555,"language":1888,"meta":161,"style":161},"@theme inline {\n  \u002F* shadcn defaults above... *\u002F\n\n  \u002F* Custom app colors *\u002F\n  --color-priority-urgent: oklch(0.637 0.237 15.163);\n  --color-priority-high: oklch(0.705 0.213 47.604);\n  --color-status-done: oklch(0.723 0.219 149.579);\n}\n",[3557],{"type":82,"tag":139,"props":3558,"children":3559},{"__ignoreMap":161},[3560,3575,3583,3590,3598,3646,3694,3741],{"type":82,"tag":167,"props":3561,"children":3562},{"class":169,"line":170},[3563,3567,3571],{"type":82,"tag":167,"props":3564,"children":3565},{"style":1490},[3566],{"type":88,"value":2723},{"type":82,"tag":167,"props":3568,"children":3569},{"style":257},[3570],{"type":88,"value":2728},{"type":82,"tag":167,"props":3572,"children":3573},{"style":246},[3574],{"type":88,"value":1687},{"type":82,"tag":167,"props":3576,"children":3577},{"class":169,"line":180},[3578],{"type":82,"tag":167,"props":3579,"children":3580},{"style":174},[3581],{"type":88,"value":3582},"  \u002F* shadcn defaults above... *\u002F\n",{"type":82,"tag":167,"props":3584,"children":3585},{"class":169,"line":206},[3586],{"type":82,"tag":167,"props":3587,"children":3588},{"emptyLinePlaceholder":210},[3589],{"type":88,"value":213},{"type":82,"tag":167,"props":3591,"children":3592},{"class":169,"line":216},[3593],{"type":82,"tag":167,"props":3594,"children":3595},{"style":174},[3596],{"type":88,"value":3597},"  \u002F* Custom app colors *\u002F\n",{"type":82,"tag":167,"props":3599,"children":3600},{"class":169,"line":225},[3601,3606,3610,3615,3619,3623,3628,3633,3637,3642],{"type":82,"tag":167,"props":3602,"children":3603},{"style":257},[3604],{"type":88,"value":3605},"  --color-priority-urgent: oklch(0",{"type":82,"tag":167,"props":3607,"children":3608},{"style":246},[3609],{"type":88,"value":1619},{"type":82,"tag":167,"props":3611,"children":3612},{"style":184},[3613],{"type":88,"value":3614},"637",{"type":82,"tag":167,"props":3616,"children":3617},{"style":257},[3618],{"type":88,"value":2838},{"type":82,"tag":167,"props":3620,"children":3621},{"style":246},[3622],{"type":88,"value":1619},{"type":82,"tag":167,"props":3624,"children":3625},{"style":184},[3626],{"type":88,"value":3627},"237",{"type":82,"tag":167,"props":3629,"children":3630},{"style":257},[3631],{"type":88,"value":3632}," 15",{"type":82,"tag":167,"props":3634,"children":3635},{"style":246},[3636],{"type":88,"value":1619},{"type":82,"tag":167,"props":3638,"children":3639},{"style":184},[3640],{"type":88,"value":3641},"163",{"type":82,"tag":167,"props":3643,"children":3644},{"style":257},[3645],{"type":88,"value":2866},{"type":82,"tag":167,"props":3647,"children":3648},{"class":169,"line":40},[3649,3654,3658,3663,3667,3671,3676,3681,3685,3690],{"type":82,"tag":167,"props":3650,"children":3651},{"style":257},[3652],{"type":88,"value":3653},"  --color-priority-high: oklch(0",{"type":82,"tag":167,"props":3655,"children":3656},{"style":246},[3657],{"type":88,"value":1619},{"type":82,"tag":167,"props":3659,"children":3660},{"style":184},[3661],{"type":88,"value":3662},"705",{"type":82,"tag":167,"props":3664,"children":3665},{"style":257},[3666],{"type":88,"value":2838},{"type":82,"tag":167,"props":3668,"children":3669},{"style":246},[3670],{"type":88,"value":1619},{"type":82,"tag":167,"props":3672,"children":3673},{"style":184},[3674],{"type":88,"value":3675},"213",{"type":82,"tag":167,"props":3677,"children":3678},{"style":257},[3679],{"type":88,"value":3680}," 47",{"type":82,"tag":167,"props":3682,"children":3683},{"style":246},[3684],{"type":88,"value":1619},{"type":82,"tag":167,"props":3686,"children":3687},{"style":184},[3688],{"type":88,"value":3689},"604",{"type":82,"tag":167,"props":3691,"children":3692},{"style":257},[3693],{"type":88,"value":2866},{"type":82,"tag":167,"props":3695,"children":3696},{"class":169,"line":280},[3697,3702,3706,3710,3714,3718,3723,3728,3732,3737],{"type":82,"tag":167,"props":3698,"children":3699},{"style":257},[3700],{"type":88,"value":3701},"  --color-status-done: oklch(0",{"type":82,"tag":167,"props":3703,"children":3704},{"style":246},[3705],{"type":88,"value":1619},{"type":82,"tag":167,"props":3707,"children":3708},{"style":184},[3709],{"type":88,"value":3052},{"type":82,"tag":167,"props":3711,"children":3712},{"style":257},[3713],{"type":88,"value":2838},{"type":82,"tag":167,"props":3715,"children":3716},{"style":246},[3717],{"type":88,"value":1619},{"type":82,"tag":167,"props":3719,"children":3720},{"style":184},[3721],{"type":88,"value":3722},"219",{"type":82,"tag":167,"props":3724,"children":3725},{"style":257},[3726],{"type":88,"value":3727}," 149",{"type":82,"tag":167,"props":3729,"children":3730},{"style":246},[3731],{"type":88,"value":1619},{"type":82,"tag":167,"props":3733,"children":3734},{"style":184},[3735],{"type":88,"value":3736},"579",{"type":82,"tag":167,"props":3738,"children":3739},{"style":257},[3740],{"type":88,"value":2866},{"type":82,"tag":167,"props":3742,"children":3743},{"class":169,"line":289},[3744],{"type":82,"tag":167,"props":3745,"children":3746},{"style":246},[3747],{"type":88,"value":2387},{"type":82,"tag":90,"props":3749,"children":3750},{},[3751],{"type":88,"value":3752},"Use in components:",{"type":82,"tag":156,"props":3754,"children":3756},{"className":1470,"code":3755,"language":1472,"meta":161,"style":161},"\u003Cspan className=\"text-[var(--color-priority-urgent)]\">Urgent\u003C\u002Fspan>\n\u002F\u002F Or with Tailwind v4 theme():\n\u003Cspan className=\"text-priority-urgent\">Urgent\u003C\u002Fspan>\n",[3757],{"type":82,"tag":139,"props":3758,"children":3759},{"__ignoreMap":161},[3760,3813,3821],{"type":82,"tag":167,"props":3761,"children":3762},{"class":169,"line":170},[3763,3767,3771,3775,3779,3783,3788,3792,3796,3801,3805,3809],{"type":82,"tag":167,"props":3764,"children":3765},{"style":246},[3766],{"type":88,"value":3337},{"type":82,"tag":167,"props":3768,"children":3769},{"style":2593},[3770],{"type":88,"value":167},{"type":82,"tag":167,"props":3772,"children":3773},{"style":1698},[3774],{"type":88,"value":3370},{"type":82,"tag":167,"props":3776,"children":3777},{"style":246},[3778],{"type":88,"value":3352},{"type":82,"tag":167,"props":3780,"children":3781},{"style":246},[3782],{"type":88,"value":1706},{"type":82,"tag":167,"props":3784,"children":3785},{"style":190},[3786],{"type":88,"value":3787},"text-[var(--color-priority-urgent)]",{"type":82,"tag":167,"props":3789,"children":3790},{"style":246},[3791],{"type":88,"value":1706},{"type":82,"tag":167,"props":3793,"children":3794},{"style":246},[3795],{"type":88,"value":265},{"type":82,"tag":167,"props":3797,"children":3798},{"style":257},[3799],{"type":88,"value":3800},"Urgent",{"type":82,"tag":167,"props":3802,"children":3803},{"style":246},[3804],{"type":88,"value":3533},{"type":82,"tag":167,"props":3806,"children":3807},{"style":2593},[3808],{"type":88,"value":167},{"type":82,"tag":167,"props":3810,"children":3811},{"style":246},[3812],{"type":88,"value":3391},{"type":82,"tag":167,"props":3814,"children":3815},{"class":169,"line":180},[3816],{"type":82,"tag":167,"props":3817,"children":3818},{"style":174},[3819],{"type":88,"value":3820},"\u002F\u002F Or with Tailwind v4 theme():\n",{"type":82,"tag":167,"props":3822,"children":3823},{"class":169,"line":206},[3824,3828,3832,3836,3840,3844,3849,3853,3857,3861,3865,3869],{"type":82,"tag":167,"props":3825,"children":3826},{"style":246},[3827],{"type":88,"value":3337},{"type":82,"tag":167,"props":3829,"children":3830},{"style":2593},[3831],{"type":88,"value":167},{"type":82,"tag":167,"props":3833,"children":3834},{"style":1698},[3835],{"type":88,"value":3370},{"type":82,"tag":167,"props":3837,"children":3838},{"style":246},[3839],{"type":88,"value":3352},{"type":82,"tag":167,"props":3841,"children":3842},{"style":246},[3843],{"type":88,"value":1706},{"type":82,"tag":167,"props":3845,"children":3846},{"style":190},[3847],{"type":88,"value":3848},"text-priority-urgent",{"type":82,"tag":167,"props":3850,"children":3851},{"style":246},[3852],{"type":88,"value":1706},{"type":82,"tag":167,"props":3854,"children":3855},{"style":246},[3856],{"type":88,"value":265},{"type":82,"tag":167,"props":3858,"children":3859},{"style":257},[3860],{"type":88,"value":3800},{"type":82,"tag":167,"props":3862,"children":3863},{"style":246},[3864],{"type":88,"value":3533},{"type":82,"tag":167,"props":3866,"children":3867},{"style":2593},[3868],{"type":88,"value":167},{"type":82,"tag":167,"props":3870,"children":3871},{"style":246},[3872],{"type":88,"value":3391},{"type":82,"tag":96,"props":3874,"children":3876},{"id":3875},"most-common-components",[3877],{"type":88,"value":3878},"Most Common Components",{"type":82,"tag":3880,"props":3881,"children":3882},"table",{},[3883,3902],{"type":82,"tag":3884,"props":3885,"children":3886},"thead",{},[3887],{"type":82,"tag":3888,"props":3889,"children":3890},"tr",{},[3891,3897],{"type":82,"tag":3892,"props":3893,"children":3894},"th",{},[3895],{"type":88,"value":3896},"Component",{"type":82,"tag":3892,"props":3898,"children":3899},{},[3900],{"type":88,"value":3901},"Use Case",{"type":82,"tag":3903,"props":3904,"children":3905},"tbody",{},[3906,3924,3941,3958,3983,4000,4016,4033,4050,4067,4084,4101,4118,4135,4152,4169,4186,4203],{"type":82,"tag":3888,"props":3907,"children":3908},{},[3909,3919],{"type":82,"tag":3910,"props":3911,"children":3912},"td",{},[3913],{"type":82,"tag":139,"props":3914,"children":3916},{"className":3915},[],[3917],{"type":88,"value":3918},"button",{"type":82,"tag":3910,"props":3920,"children":3921},{},[3922],{"type":88,"value":3923},"Actions, form submission",{"type":82,"tag":3888,"props":3925,"children":3926},{},[3927,3936],{"type":82,"tag":3910,"props":3928,"children":3929},{},[3930],{"type":82,"tag":139,"props":3931,"children":3933},{"className":3932},[],[3934],{"type":88,"value":3935},"card",{"type":82,"tag":3910,"props":3937,"children":3938},{},[3939],{"type":88,"value":3940},"Content containers",{"type":82,"tag":3888,"props":3942,"children":3943},{},[3944,3953],{"type":82,"tag":3910,"props":3945,"children":3946},{},[3947],{"type":82,"tag":139,"props":3948,"children":3950},{"className":3949},[],[3951],{"type":88,"value":3952},"dialog",{"type":82,"tag":3910,"props":3954,"children":3955},{},[3956],{"type":88,"value":3957},"Modals, confirmation prompts",{"type":82,"tag":3888,"props":3959,"children":3960},{},[3961,3978],{"type":82,"tag":3910,"props":3962,"children":3963},{},[3964,3970,3972],{"type":82,"tag":139,"props":3965,"children":3967},{"className":3966},[],[3968],{"type":88,"value":3969},"input",{"type":88,"value":3971}," \u002F ",{"type":82,"tag":139,"props":3973,"children":3975},{"className":3974},[],[3976],{"type":88,"value":3977},"textarea",{"type":82,"tag":3910,"props":3979,"children":3980},{},[3981],{"type":88,"value":3982},"Form fields",{"type":82,"tag":3888,"props":3984,"children":3985},{},[3986,3995],{"type":82,"tag":3910,"props":3987,"children":3988},{},[3989],{"type":82,"tag":139,"props":3990,"children":3992},{"className":3991},[],[3993],{"type":88,"value":3994},"select",{"type":82,"tag":3910,"props":3996,"children":3997},{},[3998],{"type":88,"value":3999},"Dropdowns",{"type":82,"tag":3888,"props":4001,"children":4002},{},[4003,4011],{"type":82,"tag":3910,"props":4004,"children":4005},{},[4006],{"type":82,"tag":139,"props":4007,"children":4009},{"className":4008},[],[4010],{"type":88,"value":3880},{"type":82,"tag":3910,"props":4012,"children":4013},{},[4014],{"type":88,"value":4015},"Data display",{"type":82,"tag":3888,"props":4017,"children":4018},{},[4019,4028],{"type":82,"tag":3910,"props":4020,"children":4021},{},[4022],{"type":82,"tag":139,"props":4023,"children":4025},{"className":4024},[],[4026],{"type":88,"value":4027},"tabs",{"type":82,"tag":3910,"props":4029,"children":4030},{},[4031],{"type":88,"value":4032},"View switching",{"type":82,"tag":3888,"props":4034,"children":4035},{},[4036,4045],{"type":82,"tag":3910,"props":4037,"children":4038},{},[4039],{"type":82,"tag":139,"props":4040,"children":4042},{"className":4041},[],[4043],{"type":88,"value":4044},"command",{"type":82,"tag":3910,"props":4046,"children":4047},{},[4048],{"type":88,"value":4049},"Command palette (Cmd+K)",{"type":82,"tag":3888,"props":4051,"children":4052},{},[4053,4062],{"type":82,"tag":3910,"props":4054,"children":4055},{},[4056],{"type":82,"tag":139,"props":4057,"children":4059},{"className":4058},[],[4060],{"type":88,"value":4061},"dropdown-menu",{"type":82,"tag":3910,"props":4063,"children":4064},{},[4065],{"type":88,"value":4066},"Context menus",{"type":82,"tag":3888,"props":4068,"children":4069},{},[4070,4079],{"type":82,"tag":3910,"props":4071,"children":4072},{},[4073],{"type":82,"tag":139,"props":4074,"children":4076},{"className":4075},[],[4077],{"type":88,"value":4078},"popover",{"type":82,"tag":3910,"props":4080,"children":4081},{},[4082],{"type":88,"value":4083},"Floating content",{"type":82,"tag":3888,"props":4085,"children":4086},{},[4087,4096],{"type":82,"tag":3910,"props":4088,"children":4089},{},[4090],{"type":82,"tag":139,"props":4091,"children":4093},{"className":4092},[],[4094],{"type":88,"value":4095},"tooltip",{"type":82,"tag":3910,"props":4097,"children":4098},{},[4099],{"type":88,"value":4100},"Hover hints",{"type":82,"tag":3888,"props":4102,"children":4103},{},[4104,4113],{"type":82,"tag":3910,"props":4105,"children":4106},{},[4107],{"type":82,"tag":139,"props":4108,"children":4110},{"className":4109},[],[4111],{"type":88,"value":4112},"badge",{"type":82,"tag":3910,"props":4114,"children":4115},{},[4116],{"type":88,"value":4117},"Status indicators",{"type":82,"tag":3888,"props":4119,"children":4120},{},[4121,4130],{"type":82,"tag":3910,"props":4122,"children":4123},{},[4124],{"type":82,"tag":139,"props":4125,"children":4127},{"className":4126},[],[4128],{"type":88,"value":4129},"avatar",{"type":82,"tag":3910,"props":4131,"children":4132},{},[4133],{"type":88,"value":4134},"User profile images",{"type":82,"tag":3888,"props":4136,"children":4137},{},[4138,4147],{"type":82,"tag":3910,"props":4139,"children":4140},{},[4141],{"type":82,"tag":139,"props":4142,"children":4144},{"className":4143},[],[4145],{"type":88,"value":4146},"scroll-area",{"type":82,"tag":3910,"props":4148,"children":4149},{},[4150],{"type":88,"value":4151},"Scrollable containers",{"type":82,"tag":3888,"props":4153,"children":4154},{},[4155,4164],{"type":82,"tag":3910,"props":4156,"children":4157},{},[4158],{"type":82,"tag":139,"props":4159,"children":4161},{"className":4160},[],[4162],{"type":88,"value":4163},"separator",{"type":82,"tag":3910,"props":4165,"children":4166},{},[4167],{"type":88,"value":4168},"Visual dividers",{"type":82,"tag":3888,"props":4170,"children":4171},{},[4172,4181],{"type":82,"tag":3910,"props":4173,"children":4174},{},[4175],{"type":82,"tag":139,"props":4176,"children":4178},{"className":4177},[],[4179],{"type":88,"value":4180},"label",{"type":82,"tag":3910,"props":4182,"children":4183},{},[4184],{"type":88,"value":4185},"Form labels",{"type":82,"tag":3888,"props":4187,"children":4188},{},[4189,4198],{"type":82,"tag":3910,"props":4190,"children":4191},{},[4192],{"type":82,"tag":139,"props":4193,"children":4195},{"className":4194},[],[4196],{"type":88,"value":4197},"sheet",{"type":82,"tag":3910,"props":4199,"children":4200},{},[4201],{"type":88,"value":4202},"Slide-out panels",{"type":82,"tag":3888,"props":4204,"children":4205},{},[4206,4215],{"type":82,"tag":3910,"props":4207,"children":4208},{},[4209],{"type":82,"tag":139,"props":4210,"children":4212},{"className":4211},[],[4213],{"type":88,"value":4214},"skeleton",{"type":82,"tag":3910,"props":4216,"children":4217},{},[4218],{"type":88,"value":4219},"Loading placeholders",{"type":82,"tag":96,"props":4221,"children":4223},{"id":4222},"design-direction-for-shadcn-on-vercel",[4224],{"type":88,"value":4225},"Design Direction for shadcn on Vercel",{"type":82,"tag":90,"props":4227,"children":4228},{},[4229],{"type":88,"value":4230},"shadcn\u002Fui is not only a component source generator. In the Vercel stack it is the default interface language. Do not stop at \"the component works.\" Compose pages that feel deliberate, high-signal, and consistent.",{"type":82,"tag":122,"props":4232,"children":4234},{"id":4233},"default-aesthetic-for-product-ui",[4235],{"type":88,"value":4236},"Default aesthetic for product UI",{"type":82,"tag":456,"props":4238,"children":4239},{},[4240,4252,4257,4262,4274,4322,4335,4383],{"type":82,"tag":460,"props":4241,"children":4242},{},[4243,4245,4250],{"type":88,"value":4244},"Prefer style: ",{"type":82,"tag":139,"props":4246,"children":4248},{"className":4247},[],[4249],{"type":88,"value":1449},{"type":88,"value":4251}," for product, dashboard, AI, and admin surfaces.",{"type":82,"tag":460,"props":4253,"children":4254},{},[4255],{"type":88,"value":4256},"Default to dark mode for dashboards, AI apps, internal tools, settings, and developer-facing products. Use light mode only when the product is clearly content-first or editorial.",{"type":82,"tag":460,"props":4258,"children":4259},{},[4260],{"type":88,"value":4261},"Use Geist Sans for interface text and Geist Mono for code, metrics, IDs, timestamps, commands.",{"type":82,"tag":460,"props":4263,"children":4264},{},[4265,4267,4273],{"type":88,"value":4266},"Prefer zinc, neutral, or slate as the base palette. Use one accent color through ",{"type":82,"tag":139,"props":4268,"children":4270},{"className":4269},[],[4271],{"type":88,"value":4272},"--color-primary",{"type":88,"value":1619},{"type":82,"tag":460,"props":4275,"children":4276},{},[4277,4279,4285,4286,4292,4293,4299,4300,4306,4307,4313,4314,4320],{"type":88,"value":4278},"Build core surfaces from tokens: ",{"type":82,"tag":139,"props":4280,"children":4282},{"className":4281},[],[4283],{"type":88,"value":4284},"bg-background",{"type":88,"value":525},{"type":82,"tag":139,"props":4287,"children":4289},{"className":4288},[],[4290],{"type":88,"value":4291},"bg-card",{"type":88,"value":525},{"type":82,"tag":139,"props":4294,"children":4296},{"className":4295},[],[4297],{"type":88,"value":4298},"text-foreground",{"type":88,"value":525},{"type":82,"tag":139,"props":4301,"children":4303},{"className":4302},[],[4304],{"type":88,"value":4305},"text-muted-foreground",{"type":88,"value":525},{"type":82,"tag":139,"props":4308,"children":4310},{"className":4309},[],[4311],{"type":88,"value":4312},"border-border",{"type":88,"value":525},{"type":82,"tag":139,"props":4315,"children":4317},{"className":4316},[],[4318],{"type":88,"value":4319},"ring-ring",{"type":88,"value":4321},". Avoid ad-hoc hex values.",{"type":82,"tag":460,"props":4323,"children":4324},{},[4325,4327,4333],{"type":88,"value":4326},"Keep radius consistent. The default ",{"type":82,"tag":139,"props":4328,"children":4330},{"className":4329},[],[4331],{"type":88,"value":4332},"--radius: 0.625rem",{"type":88,"value":4334}," is a strong baseline.",{"type":82,"tag":460,"props":4336,"children":4337},{},[4338,4340,4346,4347,4353,4354,4360,4362,4368,4369,4375,4376,4381],{"type":88,"value":4339},"Use one density system per page: comfortable (",{"type":82,"tag":139,"props":4341,"children":4343},{"className":4342},[],[4344],{"type":88,"value":4345},"gap-6",{"type":88,"value":3971},{"type":82,"tag":139,"props":4348,"children":4350},{"className":4349},[],[4351],{"type":88,"value":4352},"p-6",{"type":88,"value":3971},{"type":82,"tag":139,"props":4355,"children":4357},{"className":4356},[],[4358],{"type":88,"value":4359},"text-sm",{"type":88,"value":4361},") or compact (",{"type":82,"tag":139,"props":4363,"children":4365},{"className":4364},[],[4366],{"type":88,"value":4367},"gap-4",{"type":88,"value":3971},{"type":82,"tag":139,"props":4370,"children":4372},{"className":4371},[],[4373],{"type":88,"value":4374},"p-4",{"type":88,"value":3971},{"type":82,"tag":139,"props":4377,"children":4379},{"className":4378},[],[4380],{"type":88,"value":4359},{"type":88,"value":4382},").",{"type":82,"tag":460,"props":4384,"children":4385},{},[4386,4388,4394,4396,4402],{"type":88,"value":4387},"Keep icons quiet and consistent. Lucide icons at ",{"type":82,"tag":139,"props":4389,"children":4391},{"className":4390},[],[4392],{"type":88,"value":4393},"h-4 w-4",{"type":88,"value":4395}," or ",{"type":82,"tag":139,"props":4397,"children":4399},{"className":4398},[],[4400],{"type":88,"value":4401},"h-5 w-5",{"type":88,"value":1619},{"type":82,"tag":122,"props":4404,"children":4406},{"id":4405},"reach-for-this-first",[4407],{"type":88,"value":4408},"Reach for this first",{"type":82,"tag":3880,"props":4410,"children":4411},{},[4412,4432],{"type":82,"tag":3884,"props":4413,"children":4414},{},[4415],{"type":82,"tag":3888,"props":4416,"children":4417},{},[4418,4423,4427],{"type":82,"tag":3892,"props":4419,"children":4420},{},[4421],{"type":88,"value":4422},"Use case",{"type":82,"tag":3892,"props":4424,"children":4425},{},[4426],{"type":88,"value":4408},{"type":82,"tag":3892,"props":4428,"children":4429},{},[4430],{"type":88,"value":4431},"Why",{"type":82,"tag":3903,"props":4433,"children":4434},{},[4435,4472,4514,4555,4604,4633,4667,4702,4737],{"type":82,"tag":3888,"props":4436,"children":4437},{},[4438,4443,4467],{"type":82,"tag":3910,"props":4439,"children":4440},{},[4441],{"type":88,"value":4442},"Settings page",{"type":82,"tag":3910,"props":4444,"children":4445},{},[4446,4452,4454,4460,4461],{"type":82,"tag":139,"props":4447,"children":4449},{"className":4448},[],[4450],{"type":88,"value":4451},"Tabs",{"type":88,"value":4453}," + ",{"type":82,"tag":139,"props":4455,"children":4457},{"className":4456},[],[4458],{"type":88,"value":4459},"Card",{"type":88,"value":4453},{"type":82,"tag":139,"props":4462,"children":4464},{"className":4463},[],[4465],{"type":88,"value":4466},"Form",{"type":82,"tag":3910,"props":4468,"children":4469},{},[4470],{"type":88,"value":4471},"Clear information grouping with predictable save flows",{"type":82,"tag":3888,"props":4473,"children":4474},{},[4475,4480,4509],{"type":82,"tag":3910,"props":4476,"children":4477},{},[4478],{"type":88,"value":4479},"Data dashboard",{"type":82,"tag":3910,"props":4481,"children":4482},{},[4483,4488,4489,4495,4496,4502,4503],{"type":82,"tag":139,"props":4484,"children":4486},{"className":4485},[],[4487],{"type":88,"value":4459},{"type":88,"value":4453},{"type":82,"tag":139,"props":4490,"children":4492},{"className":4491},[],[4493],{"type":88,"value":4494},"Badge",{"type":88,"value":4453},{"type":82,"tag":139,"props":4497,"children":4499},{"className":4498},[],[4500],{"type":88,"value":4501},"Table",{"type":88,"value":4453},{"type":82,"tag":139,"props":4504,"children":4506},{"className":4505},[],[4507],{"type":88,"value":4508},"DropdownMenu",{"type":82,"tag":3910,"props":4510,"children":4511},{},[4512],{"type":88,"value":4513},"Covers summary, status, dense data, and row actions without custom shells",{"type":82,"tag":3888,"props":4515,"children":4516},{},[4517,4522,4550],{"type":82,"tag":3910,"props":4518,"children":4519},{},[4520],{"type":88,"value":4521},"CRUD table",{"type":82,"tag":3910,"props":4523,"children":4524},{},[4525,4530,4531,4536,4537,4543,4544],{"type":82,"tag":139,"props":4526,"children":4528},{"className":4527},[],[4529],{"type":88,"value":4501},{"type":88,"value":4453},{"type":82,"tag":139,"props":4532,"children":4534},{"className":4533},[],[4535],{"type":88,"value":4508},{"type":88,"value":4453},{"type":82,"tag":139,"props":4538,"children":4540},{"className":4539},[],[4541],{"type":88,"value":4542},"Sheet",{"type":88,"value":4453},{"type":82,"tag":139,"props":4545,"children":4547},{"className":4546},[],[4548],{"type":88,"value":4549},"AlertDialog",{"type":82,"tag":3910,"props":4551,"children":4552},{},[4553],{"type":88,"value":4554},"Supports browse, act, edit, and destructive confirmation in a standard pattern",{"type":82,"tag":3888,"props":4556,"children":4557},{},[4558,4563,4599],{"type":82,"tag":3910,"props":4559,"children":4560},{},[4561],{"type":88,"value":4562},"Auth screen",{"type":82,"tag":3910,"props":4564,"children":4565},{},[4566,4571,4572,4578,4579,4585,4586,4592,4593],{"type":82,"tag":139,"props":4567,"children":4569},{"className":4568},[],[4570],{"type":88,"value":4459},{"type":88,"value":4453},{"type":82,"tag":139,"props":4573,"children":4575},{"className":4574},[],[4576],{"type":88,"value":4577},"Label",{"type":88,"value":4453},{"type":82,"tag":139,"props":4580,"children":4582},{"className":4581},[],[4583],{"type":88,"value":4584},"Input",{"type":88,"value":4453},{"type":82,"tag":139,"props":4587,"children":4589},{"className":4588},[],[4590],{"type":88,"value":4591},"Button",{"type":88,"value":4453},{"type":82,"tag":139,"props":4594,"children":4596},{"className":4595},[],[4597],{"type":88,"value":4598},"Alert",{"type":82,"tag":3910,"props":4600,"children":4601},{},[4602],{"type":88,"value":4603},"Keeps entry flows focused and gives errors a proper treatment",{"type":82,"tag":3888,"props":4605,"children":4606},{},[4607,4612,4628],{"type":82,"tag":3910,"props":4608,"children":4609},{},[4610],{"type":88,"value":4611},"Global search",{"type":82,"tag":3910,"props":4613,"children":4614},{},[4615,4621,4622],{"type":82,"tag":139,"props":4616,"children":4618},{"className":4617},[],[4619],{"type":88,"value":4620},"Command",{"type":88,"value":4453},{"type":82,"tag":139,"props":4623,"children":4625},{"className":4624},[],[4626],{"type":88,"value":4627},"Dialog",{"type":82,"tag":3910,"props":4629,"children":4630},{},[4631],{"type":88,"value":4632},"Fast keyboard-first discovery with an established interaction model",{"type":82,"tag":3888,"props":4634,"children":4635},{},[4636,4641,4662],{"type":82,"tag":3910,"props":4637,"children":4638},{},[4639],{"type":88,"value":4640},"Mobile nav",{"type":82,"tag":3910,"props":4642,"children":4643},{},[4644,4649,4650,4655,4656],{"type":82,"tag":139,"props":4645,"children":4647},{"className":4646},[],[4648],{"type":88,"value":4542},{"type":88,"value":4453},{"type":82,"tag":139,"props":4651,"children":4653},{"className":4652},[],[4654],{"type":88,"value":4591},{"type":88,"value":4453},{"type":82,"tag":139,"props":4657,"children":4659},{"className":4658},[],[4660],{"type":88,"value":4661},"Separator",{"type":82,"tag":3910,"props":4663,"children":4664},{},[4665],{"type":88,"value":4666},"Provides a compact navigation shell that adapts cleanly to small screens",{"type":82,"tag":3888,"props":4668,"children":4669},{},[4670,4675,4697],{"type":82,"tag":3910,"props":4671,"children":4672},{},[4673],{"type":88,"value":4674},"Detail page",{"type":82,"tag":3910,"props":4676,"children":4677},{},[4678,4680,4685,4686,4691,4692],{"type":88,"value":4679},"header + ",{"type":82,"tag":139,"props":4681,"children":4683},{"className":4682},[],[4684],{"type":88,"value":4494},{"type":88,"value":4453},{"type":82,"tag":139,"props":4687,"children":4689},{"className":4688},[],[4690],{"type":88,"value":4661},{"type":88,"value":4453},{"type":82,"tag":139,"props":4693,"children":4695},{"className":4694},[],[4696],{"type":88,"value":4459},{"type":82,"tag":3910,"props":4698,"children":4699},{},[4700],{"type":88,"value":4701},"Balances hierarchy, metadata, and supporting content without over-nesting",{"type":82,"tag":3888,"props":4703,"children":4704},{},[4705,4710,4732],{"type":82,"tag":3910,"props":4706,"children":4707},{},[4708],{"type":88,"value":4709},"Filters",{"type":82,"tag":3910,"props":4711,"children":4712},{},[4713,4718,4720,4725,4726],{"type":82,"tag":139,"props":4714,"children":4716},{"className":4715},[],[4717],{"type":88,"value":4459},{"type":88,"value":4719}," sidebar + ",{"type":82,"tag":139,"props":4721,"children":4723},{"className":4722},[],[4724],{"type":88,"value":4542},{"type":88,"value":4453},{"type":82,"tag":139,"props":4727,"children":4729},{"className":4728},[],[4730],{"type":88,"value":4731},"Select",{"type":82,"tag":3910,"props":4733,"children":4734},{},[4735],{"type":88,"value":4736},"Works for persistent desktop filters and collapsible mobile controls",{"type":82,"tag":3888,"props":4738,"children":4739},{},[4740,4745,4766],{"type":82,"tag":3910,"props":4741,"children":4742},{},[4743],{"type":88,"value":4744},"Empty\u002Floading\u002Ferror states",{"type":82,"tag":3910,"props":4746,"children":4747},{},[4748,4753,4754,4760,4761],{"type":82,"tag":139,"props":4749,"children":4751},{"className":4750},[],[4752],{"type":88,"value":4459},{"type":88,"value":4453},{"type":82,"tag":139,"props":4755,"children":4757},{"className":4756},[],[4758],{"type":88,"value":4759},"Skeleton",{"type":88,"value":4453},{"type":82,"tag":139,"props":4762,"children":4764},{"className":4763},[],[4765],{"type":88,"value":4598},{"type":82,"tag":3910,"props":4767,"children":4768},{},[4769],{"type":88,"value":4770},"Gives non-happy paths a designed surface instead of placeholder text",{"type":82,"tag":122,"props":4772,"children":4774},{"id":4773},"composition-recipes",[4775],{"type":88,"value":4776},"Composition recipes",{"type":82,"tag":456,"props":4778,"children":4779},{},[4780,4805,4822,4854,4881,4907],{"type":82,"tag":460,"props":4781,"children":4782},{},[4783,4785,4790,4791,4796,4798,4803],{"type":88,"value":4784},"Settings page: ",{"type":82,"tag":139,"props":4786,"children":4788},{"className":4787},[],[4789],{"type":88,"value":4451},{"type":88,"value":4453},{"type":82,"tag":139,"props":4792,"children":4794},{"className":4793},[],[4795],{"type":88,"value":4459},{"type":88,"value":4797}," per group + ",{"type":82,"tag":139,"props":4799,"children":4801},{"className":4800},[],[4802],{"type":88,"value":4661},{"type":88,"value":4804}," + save action",{"type":82,"tag":460,"props":4806,"children":4807},{},[4808,4810,4815,4817],{"type":88,"value":4809},"Admin dashboard: summary ",{"type":82,"tag":139,"props":4811,"children":4813},{"className":4812},[],[4814],{"type":88,"value":4459},{"type":88,"value":4816},"s + filter bar + ",{"type":82,"tag":139,"props":4818,"children":4820},{"className":4819},[],[4821],{"type":88,"value":4501},{"type":82,"tag":460,"props":4823,"children":4824},{},[4825,4827,4832,4834,4839,4841,4846,4847,4852],{"type":88,"value":4826},"Entity detail: header + status ",{"type":82,"tag":139,"props":4828,"children":4830},{"className":4829},[],[4831],{"type":88,"value":4494},{"type":88,"value":4833}," + main ",{"type":82,"tag":139,"props":4835,"children":4837},{"className":4836},[],[4838],{"type":88,"value":4459},{"type":88,"value":4840}," + side ",{"type":82,"tag":139,"props":4842,"children":4844},{"className":4843},[],[4845],{"type":88,"value":4459},{"type":88,"value":4453},{"type":82,"tag":139,"props":4848,"children":4850},{"className":4849},[],[4851],{"type":88,"value":4549},{"type":88,"value":4853}," for destructive",{"type":82,"tag":460,"props":4855,"children":4856},{},[4857,4859,4864,4866,4872,4874,4879],{"type":88,"value":4858},"Search-heavy: ",{"type":82,"tag":139,"props":4860,"children":4862},{"className":4861},[],[4863],{"type":88,"value":4620},{"type":88,"value":4865}," for quick find, ",{"type":82,"tag":139,"props":4867,"children":4869},{"className":4868},[],[4870],{"type":88,"value":4871},"Popover",{"type":88,"value":4873}," for pickers, ",{"type":82,"tag":139,"props":4875,"children":4877},{"className":4876},[],[4878],{"type":88,"value":4542},{"type":88,"value":4880}," for mobile filters",{"type":82,"tag":460,"props":4882,"children":4883},{},[4884,4886,4891,4893,4898,4900,4905],{"type":88,"value":4885},"Auth\u002Fonboarding: centered ",{"type":82,"tag":139,"props":4887,"children":4889},{"className":4888},[],[4890],{"type":88,"value":4459},{"type":88,"value":4892}," + social ",{"type":82,"tag":139,"props":4894,"children":4896},{"className":4895},[],[4897],{"type":88,"value":4661},{"type":88,"value":4899}," + inline ",{"type":82,"tag":139,"props":4901,"children":4903},{"className":4902},[],[4904],{"type":88,"value":4598},{"type":88,"value":4906}," for errors",{"type":82,"tag":460,"props":4908,"children":4909},{},[4910,4912,4917,4919,4924],{"type":88,"value":4911},"Destructive flows: ",{"type":82,"tag":139,"props":4913,"children":4915},{"className":4914},[],[4916],{"type":88,"value":4549},{"type":88,"value":4918}," (not ",{"type":82,"tag":139,"props":4920,"children":4922},{"className":4921},[],[4923],{"type":88,"value":4627},{"type":88,"value":4925},") for confirmation",{"type":82,"tag":122,"props":4927,"children":4929},{"id":4928},"anti-patterns-to-avoid",[4930],{"type":88,"value":4931},"Anti-patterns to avoid",{"type":82,"tag":456,"props":4933,"children":4934},{},[4935,4966,5002,5007,5012,5017,5022,5039,5044],{"type":82,"tag":460,"props":4936,"children":4937},{},[4938,4940,4945,4946,4951,4952,4957,4958,4964],{"type":88,"value":4939},"Raw ",{"type":82,"tag":139,"props":4941,"children":4943},{"className":4942},[],[4944],{"type":88,"value":3918},{"type":88,"value":3971},{"type":82,"tag":139,"props":4947,"children":4949},{"className":4948},[],[4950],{"type":88,"value":3969},{"type":88,"value":3971},{"type":82,"tag":139,"props":4953,"children":4955},{"className":4954},[],[4956],{"type":88,"value":3994},{"type":88,"value":3971},{"type":82,"tag":139,"props":4959,"children":4961},{"className":4960},[],[4962],{"type":88,"value":4963},"div",{"type":88,"value":4965}," when shadcn primitives exist",{"type":82,"tag":460,"props":4967,"children":4968},{},[4969,4971,4977,4979,4984,4985,4990,4991,4996,4997],{"type":88,"value":4970},"Repeated ",{"type":82,"tag":139,"props":4972,"children":4974},{"className":4973},[],[4975],{"type":88,"value":4976},"div rounded-xl border p-6",{"type":88,"value":4978}," instead of ",{"type":82,"tag":139,"props":4980,"children":4982},{"className":4981},[],[4983],{"type":88,"value":4451},{"type":88,"value":3971},{"type":82,"tag":139,"props":4986,"children":4988},{"className":4987},[],[4989],{"type":88,"value":4501},{"type":88,"value":3971},{"type":82,"tag":139,"props":4992,"children":4994},{"className":4993},[],[4995],{"type":88,"value":4542},{"type":88,"value":3971},{"type":82,"tag":139,"props":4998,"children":5000},{"className":4999},[],[5001],{"type":88,"value":4627},{"type":82,"tag":460,"props":5003,"children":5004},{},[5005],{"type":88,"value":5006},"Multiple accent colors fighting each other",{"type":82,"tag":460,"props":5008,"children":5009},{},[5010],{"type":88,"value":5011},"Nested cards inside cards inside cards",{"type":82,"tag":460,"props":5013,"children":5014},{},[5015],{"type":88,"value":5016},"Large gradient backgrounds and glassmorphism on every surface",{"type":82,"tag":460,"props":5018,"children":5019},{},[5020],{"type":88,"value":5021},"Mixing arbitrary spacing and radius values",{"type":82,"tag":460,"props":5023,"children":5024},{},[5025,5027,5032,5034],{"type":88,"value":5026},"Using ",{"type":82,"tag":139,"props":5028,"children":5030},{"className":5029},[],[5031],{"type":88,"value":4627},{"type":88,"value":5033}," for destructive confirmation instead of ",{"type":82,"tag":139,"props":5035,"children":5037},{"className":5036},[],[5038],{"type":88,"value":4549},{"type":82,"tag":460,"props":5040,"children":5041},{},[5042],{"type":88,"value":5043},"Shipping empty\u002Floading\u002Ferror states without design treatment",{"type":82,"tag":460,"props":5045,"children":5046},{},[5047],{"type":88,"value":5048},"Using ad-hoc Tailwind palette classes for foundational surfaces instead of theme tokens",{"type":82,"tag":96,"props":5050,"children":5052},{"id":5051},"building-a-custom-registry",[5053],{"type":88,"value":5054},"Building a Custom Registry",{"type":82,"tag":90,"props":5056,"children":5057},{},[5058],{"type":88,"value":5059},"Create your own component registry to share across projects:",{"type":82,"tag":122,"props":5061,"children":5063},{"id":5062},"registry-types-cli-v4",[5064],{"type":88,"value":5065},"Registry Types (CLI v4)",{"type":82,"tag":3880,"props":5067,"children":5068},{},[5069,5085],{"type":82,"tag":3884,"props":5070,"children":5071},{},[5072],{"type":82,"tag":3888,"props":5073,"children":5074},{},[5075,5080],{"type":82,"tag":3892,"props":5076,"children":5077},{},[5078],{"type":88,"value":5079},"Type",{"type":82,"tag":3892,"props":5081,"children":5082},{},[5083],{"type":88,"value":5084},"Purpose",{"type":82,"tag":3903,"props":5086,"children":5087},{},[5088,5105,5121],{"type":82,"tag":3888,"props":5089,"children":5090},{},[5091,5100],{"type":82,"tag":3910,"props":5092,"children":5093},{},[5094],{"type":82,"tag":139,"props":5095,"children":5097},{"className":5096},[],[5098],{"type":88,"value":5099},"registry:ui",{"type":82,"tag":3910,"props":5101,"children":5102},{},[5103],{"type":88,"value":5104},"Individual UI components",{"type":82,"tag":3888,"props":5106,"children":5107},{},[5108,5116],{"type":82,"tag":3910,"props":5109,"children":5110},{},[5111],{"type":82,"tag":139,"props":5112,"children":5114},{"className":5113},[],[5115],{"type":88,"value":714},{"type":82,"tag":3910,"props":5117,"children":5118},{},[5119],{"type":88,"value":5120},"Full design system payload — components, deps, CSS vars, fonts, config",{"type":82,"tag":3888,"props":5122,"children":5123},{},[5124,5132],{"type":82,"tag":3910,"props":5125,"children":5126},{},[5127],{"type":82,"tag":139,"props":5128,"children":5130},{"className":5129},[],[5131],{"type":88,"value":721},{"type":82,"tag":3910,"props":5133,"children":5134},{},[5135],{"type":88,"value":5136},"Font configuration as a first-class registry item",{"type":82,"tag":122,"props":5138,"children":5140},{"id":5139},"_1-define-registryjson",[5141],{"type":88,"value":5142},"1. Define registry.json",{"type":82,"tag":156,"props":5144,"children":5146},{"className":1673,"code":5145,"language":1675,"meta":161,"style":161},"[\n  {\n    \"name\": \"my-component\",\n    \"type\": \"registry:ui\",\n    \"title\": \"My Component\",\n    \"description\": \"A custom component\",\n    \"files\": [\n      {\n        \"path\": \"components\u002Fmy-component.tsx\",\n        \"type\": \"registry:ui\"\n      }\n    ],\n    \"dependencies\": [\"lucide-react\"]\n  }\n]\n",[5147],{"type":82,"tag":139,"props":5148,"children":5149},{"__ignoreMap":161},[5150,5158,5166,5203,5239,5276,5313,5338,5346,5383,5414,5421,5429,5472,5479],{"type":82,"tag":167,"props":5151,"children":5152},{"class":169,"line":170},[5153],{"type":82,"tag":167,"props":5154,"children":5155},{"style":246},[5156],{"type":88,"value":5157},"[\n",{"type":82,"tag":167,"props":5159,"children":5160},{"class":169,"line":180},[5161],{"type":82,"tag":167,"props":5162,"children":5163},{"style":246},[5164],{"type":88,"value":5165},"  {\n",{"type":82,"tag":167,"props":5167,"children":5168},{"class":169,"line":206},[5169,5173,5178,5182,5186,5190,5195,5199],{"type":82,"tag":167,"props":5170,"children":5171},{"style":246},[5172],{"type":88,"value":1846},{"type":82,"tag":167,"props":5174,"children":5175},{"style":1698},[5176],{"type":88,"value":5177},"name",{"type":82,"tag":167,"props":5179,"children":5180},{"style":246},[5181],{"type":88,"value":1706},{"type":82,"tag":167,"props":5183,"children":5184},{"style":246},[5185],{"type":88,"value":1711},{"type":82,"tag":167,"props":5187,"children":5188},{"style":246},[5189],{"type":88,"value":1518},{"type":82,"tag":167,"props":5191,"children":5192},{"style":190},[5193],{"type":88,"value":5194},"my-component",{"type":82,"tag":167,"props":5196,"children":5197},{"style":246},[5198],{"type":88,"value":1706},{"type":82,"tag":167,"props":5200,"children":5201},{"style":246},[5202],{"type":88,"value":1729},{"type":82,"tag":167,"props":5204,"children":5205},{"class":169,"line":216},[5206,5210,5215,5219,5223,5227,5231,5235],{"type":82,"tag":167,"props":5207,"children":5208},{"style":246},[5209],{"type":88,"value":1846},{"type":82,"tag":167,"props":5211,"children":5212},{"style":1698},[5213],{"type":88,"value":5214},"type",{"type":82,"tag":167,"props":5216,"children":5217},{"style":246},[5218],{"type":88,"value":1706},{"type":82,"tag":167,"props":5220,"children":5221},{"style":246},[5222],{"type":88,"value":1711},{"type":82,"tag":167,"props":5224,"children":5225},{"style":246},[5226],{"type":88,"value":1518},{"type":82,"tag":167,"props":5228,"children":5229},{"style":190},[5230],{"type":88,"value":5099},{"type":82,"tag":167,"props":5232,"children":5233},{"style":246},[5234],{"type":88,"value":1706},{"type":82,"tag":167,"props":5236,"children":5237},{"style":246},[5238],{"type":88,"value":1729},{"type":82,"tag":167,"props":5240,"children":5241},{"class":169,"line":225},[5242,5246,5251,5255,5259,5263,5268,5272],{"type":82,"tag":167,"props":5243,"children":5244},{"style":246},[5245],{"type":88,"value":1846},{"type":82,"tag":167,"props":5247,"children":5248},{"style":1698},[5249],{"type":88,"value":5250},"title",{"type":82,"tag":167,"props":5252,"children":5253},{"style":246},[5254],{"type":88,"value":1706},{"type":82,"tag":167,"props":5256,"children":5257},{"style":246},[5258],{"type":88,"value":1711},{"type":82,"tag":167,"props":5260,"children":5261},{"style":246},[5262],{"type":88,"value":1518},{"type":82,"tag":167,"props":5264,"children":5265},{"style":190},[5266],{"type":88,"value":5267},"My Component",{"type":82,"tag":167,"props":5269,"children":5270},{"style":246},[5271],{"type":88,"value":1706},{"type":82,"tag":167,"props":5273,"children":5274},{"style":246},[5275],{"type":88,"value":1729},{"type":82,"tag":167,"props":5277,"children":5278},{"class":169,"line":40},[5279,5283,5288,5292,5296,5300,5305,5309],{"type":82,"tag":167,"props":5280,"children":5281},{"style":246},[5282],{"type":88,"value":1846},{"type":82,"tag":167,"props":5284,"children":5285},{"style":1698},[5286],{"type":88,"value":5287},"description",{"type":82,"tag":167,"props":5289,"children":5290},{"style":246},[5291],{"type":88,"value":1706},{"type":82,"tag":167,"props":5293,"children":5294},{"style":246},[5295],{"type":88,"value":1711},{"type":82,"tag":167,"props":5297,"children":5298},{"style":246},[5299],{"type":88,"value":1518},{"type":82,"tag":167,"props":5301,"children":5302},{"style":190},[5303],{"type":88,"value":5304},"A custom component",{"type":82,"tag":167,"props":5306,"children":5307},{"style":246},[5308],{"type":88,"value":1706},{"type":82,"tag":167,"props":5310,"children":5311},{"style":246},[5312],{"type":88,"value":1729},{"type":82,"tag":167,"props":5314,"children":5315},{"class":169,"line":280},[5316,5320,5325,5329,5333],{"type":82,"tag":167,"props":5317,"children":5318},{"style":246},[5319],{"type":88,"value":1846},{"type":82,"tag":167,"props":5321,"children":5322},{"style":1698},[5323],{"type":88,"value":5324},"files",{"type":82,"tag":167,"props":5326,"children":5327},{"style":246},[5328],{"type":88,"value":1706},{"type":82,"tag":167,"props":5330,"children":5331},{"style":246},[5332],{"type":88,"value":1711},{"type":82,"tag":167,"props":5334,"children":5335},{"style":246},[5336],{"type":88,"value":5337}," [\n",{"type":82,"tag":167,"props":5339,"children":5340},{"class":169,"line":289},[5341],{"type":82,"tag":167,"props":5342,"children":5343},{"style":246},[5344],{"type":88,"value":5345},"      {\n",{"type":82,"tag":167,"props":5347,"children":5348},{"class":169,"line":320},[5349,5353,5358,5362,5366,5370,5375,5379],{"type":82,"tag":167,"props":5350,"children":5351},{"style":246},[5352],{"type":88,"value":2590},{"type":82,"tag":167,"props":5354,"children":5355},{"style":184},[5356],{"type":88,"value":5357},"path",{"type":82,"tag":167,"props":5359,"children":5360},{"style":246},[5361],{"type":88,"value":1706},{"type":82,"tag":167,"props":5363,"children":5364},{"style":246},[5365],{"type":88,"value":1711},{"type":82,"tag":167,"props":5367,"children":5368},{"style":246},[5369],{"type":88,"value":1518},{"type":82,"tag":167,"props":5371,"children":5372},{"style":190},[5373],{"type":88,"value":5374},"components\u002Fmy-component.tsx",{"type":82,"tag":167,"props":5376,"children":5377},{"style":246},[5378],{"type":88,"value":1706},{"type":82,"tag":167,"props":5380,"children":5381},{"style":246},[5382],{"type":88,"value":1729},{"type":82,"tag":167,"props":5384,"children":5385},{"class":169,"line":349},[5386,5390,5394,5398,5402,5406,5410],{"type":82,"tag":167,"props":5387,"children":5388},{"style":246},[5389],{"type":88,"value":2590},{"type":82,"tag":167,"props":5391,"children":5392},{"style":184},[5393],{"type":88,"value":5214},{"type":82,"tag":167,"props":5395,"children":5396},{"style":246},[5397],{"type":88,"value":1706},{"type":82,"tag":167,"props":5399,"children":5400},{"style":246},[5401],{"type":88,"value":1711},{"type":82,"tag":167,"props":5403,"children":5404},{"style":246},[5405],{"type":88,"value":1518},{"type":82,"tag":167,"props":5407,"children":5408},{"style":190},[5409],{"type":88,"value":5099},{"type":82,"tag":167,"props":5411,"children":5412},{"style":246},[5413],{"type":88,"value":1528},{"type":82,"tag":167,"props":5415,"children":5416},{"class":169,"line":357},[5417],{"type":82,"tag":167,"props":5418,"children":5419},{"style":246},[5420],{"type":88,"value":2625},{"type":82,"tag":167,"props":5422,"children":5423},{"class":169,"line":932},[5424],{"type":82,"tag":167,"props":5425,"children":5426},{"style":246},[5427],{"type":88,"value":5428},"    ],\n",{"type":82,"tag":167,"props":5430,"children":5431},{"class":169,"line":2016},[5432,5436,5441,5445,5449,5454,5458,5463,5467],{"type":82,"tag":167,"props":5433,"children":5434},{"style":246},[5435],{"type":88,"value":1846},{"type":82,"tag":167,"props":5437,"children":5438},{"style":1698},[5439],{"type":88,"value":5440},"dependencies",{"type":82,"tag":167,"props":5442,"children":5443},{"style":246},[5444],{"type":88,"value":1706},{"type":82,"tag":167,"props":5446,"children":5447},{"style":246},[5448],{"type":88,"value":1711},{"type":82,"tag":167,"props":5450,"children":5451},{"style":246},[5452],{"type":88,"value":5453}," [",{"type":82,"tag":167,"props":5455,"children":5456},{"style":246},[5457],{"type":88,"value":1706},{"type":82,"tag":167,"props":5459,"children":5460},{"style":190},[5461],{"type":88,"value":5462},"lucide-react",{"type":82,"tag":167,"props":5464,"children":5465},{"style":246},[5466],{"type":88,"value":1706},{"type":82,"tag":167,"props":5468,"children":5469},{"style":246},[5470],{"type":88,"value":5471},"]\n",{"type":82,"tag":167,"props":5473,"children":5474},{"class":169,"line":2054},[5475],{"type":82,"tag":167,"props":5476,"children":5477},{"style":246},[5478],{"type":88,"value":2378},{"type":82,"tag":167,"props":5480,"children":5481},{"class":169,"line":2092},[5482],{"type":82,"tag":167,"props":5483,"children":5484},{"style":246},[5485],{"type":88,"value":5471},{"type":82,"tag":122,"props":5487,"children":5489},{"id":5488},"_2-build",[5490],{"type":88,"value":5491},"2. Build",{"type":82,"tag":156,"props":5493,"children":5495},{"className":158,"code":5494,"language":160,"meta":161,"style":161},"npx shadcn@latest build\n# Outputs to public\u002Fr\u002Fmy-component.json\n",[5496],{"type":82,"tag":139,"props":5497,"children":5498},{"__ignoreMap":161},[5499,5514],{"type":82,"tag":167,"props":5500,"children":5501},{"class":169,"line":170},[5502,5506,5510],{"type":82,"tag":167,"props":5503,"children":5504},{"style":184},[5505],{"type":88,"value":187},{"type":82,"tag":167,"props":5507,"children":5508},{"style":190},[5509],{"type":88,"value":193},{"type":82,"tag":167,"props":5511,"children":5512},{"style":190},[5513],{"type":88,"value":1107},{"type":82,"tag":167,"props":5515,"children":5516},{"class":169,"line":180},[5517],{"type":82,"tag":167,"props":5518,"children":5519},{"style":174},[5520],{"type":88,"value":5521},"# Outputs to public\u002Fr\u002Fmy-component.json\n",{"type":82,"tag":122,"props":5523,"children":5525},{"id":5524},"_3-consume",[5526],{"type":88,"value":5527},"3. Consume",{"type":82,"tag":156,"props":5529,"children":5531},{"className":158,"code":5530,"language":160,"meta":161,"style":161},"npx shadcn@latest add https:\u002F\u002Fyour-domain.com\u002Fr\u002Fmy-component.json\n",[5532],{"type":82,"tag":139,"props":5533,"children":5534},{"__ignoreMap":161},[5535],{"type":82,"tag":167,"props":5536,"children":5537},{"class":169,"line":170},[5538,5542,5546,5550],{"type":82,"tag":167,"props":5539,"children":5540},{"style":184},[5541],{"type":88,"value":187},{"type":82,"tag":167,"props":5543,"children":5544},{"style":190},[5545],{"type":88,"value":193},{"type":82,"tag":167,"props":5547,"children":5548},{"style":190},[5549],{"type":88,"value":809},{"type":82,"tag":167,"props":5551,"children":5552},{"style":190},[5553],{"type":88,"value":5554}," https:\u002F\u002Fyour-domain.com\u002Fr\u002Fmy-component.json\n",{"type":82,"tag":96,"props":5556,"children":5558},{"id":5557},"component-gotchas",[5559],{"type":88,"value":5560},"Component Gotchas",{"type":82,"tag":122,"props":5562,"children":5564},{"id":5563},"shadcn-init-breaks-geist-font-in-nextjs-tailwind-v4",[5565,5570],{"type":82,"tag":139,"props":5566,"children":5568},{"className":5567},[],[5569],{"type":88,"value":144},{"type":88,"value":5571}," Breaks Geist Font in Next.js (Tailwind v4)",{"type":82,"tag":90,"props":5573,"children":5574},{},[5575,5580,5582,5587,5589,5595,5597,5603,5605,5610,5612,5618],{"type":82,"tag":139,"props":5576,"children":5578},{"className":5577},[],[5579],{"type":88,"value":144},{"type":88,"value":5581}," rewrites ",{"type":82,"tag":139,"props":5583,"children":5585},{"className":5584},[],[5586],{"type":88,"value":2706},{"type":88,"value":5588}," and may introduce ",{"type":82,"tag":139,"props":5590,"children":5592},{"className":5591},[],[5593],{"type":88,"value":5594},"--font-sans: var(--font-sans)",{"type":88,"value":5596}," — a circular self-reference that breaks font loading. Tailwind v4's ",{"type":82,"tag":139,"props":5598,"children":5600},{"className":5599},[],[5601],{"type":88,"value":5602},"@theme inline",{"type":88,"value":5604}," resolves CSS custom properties at ",{"type":82,"tag":108,"props":5606,"children":5607},{},[5608],{"type":88,"value":5609},"parse time",{"type":88,"value":5611},", not runtime — so even ",{"type":82,"tag":139,"props":5613,"children":5615},{"className":5614},[],[5616],{"type":88,"value":5617},"var(--font-geist-sans)",{"type":88,"value":5619}," won't work because Next.js injects that variable via className at runtime.",{"type":82,"tag":90,"props":5621,"children":5622},{},[5623,5628,5630,5635],{"type":82,"tag":108,"props":5624,"children":5625},{},[5626],{"type":88,"value":5627},"The fix",{"type":88,"value":5629},": Use literal font family names in ",{"type":82,"tag":139,"props":5631,"children":5633},{"className":5632},[],[5634],{"type":88,"value":5602},{"type":88,"value":1711},{"type":82,"tag":156,"props":5637,"children":5639},{"className":2710,"code":5638,"language":1888,"meta":161,"style":161},"\u002F* In @theme inline — CORRECT (literal names) *\u002F\n--font-sans: \"Geist\", \"Geist Fallback\", ui-sans-serif, system-ui, sans-serif;\n--font-mono: \"Geist Mono\", \"Geist Mono Fallback\", ui-monospace, monospace;\n\n\u002F* WRONG — circular, resolves to nothing *\u002F\n--font-sans: var(--font-sans);\n\n\u002F* ALSO WRONG — @theme inline can't resolve runtime CSS variables *\u002F\n--font-sans: var(--font-geist-sans);\n",[5640],{"type":82,"tag":139,"props":5641,"children":5642},{"__ignoreMap":161},[5643,5651,5700,5735,5742,5750,5758,5765,5773],{"type":82,"tag":167,"props":5644,"children":5645},{"class":169,"line":170},[5646],{"type":82,"tag":167,"props":5647,"children":5648},{"style":174},[5649],{"type":88,"value":5650},"\u002F* In @theme inline — CORRECT (literal names) *\u002F\n",{"type":82,"tag":167,"props":5652,"children":5653},{"class":169,"line":180},[5654,5659,5663,5668,5672,5677,5681,5686,5690,5695],{"type":82,"tag":167,"props":5655,"children":5656},{"style":257},[5657],{"type":88,"value":5658},"--font-sans: \"Geist\"",{"type":82,"tag":167,"props":5660,"children":5661},{"style":246},[5662],{"type":88,"value":1951},{"type":82,"tag":167,"props":5664,"children":5665},{"style":257},[5666],{"type":88,"value":5667}," \"Geist Fallback\"",{"type":82,"tag":167,"props":5669,"children":5670},{"style":246},[5671],{"type":88,"value":1951},{"type":82,"tag":167,"props":5673,"children":5674},{"style":184},[5675],{"type":88,"value":5676}," ui-sans-serif",{"type":82,"tag":167,"props":5678,"children":5679},{"style":246},[5680],{"type":88,"value":1951},{"type":82,"tag":167,"props":5682,"children":5683},{"style":184},[5684],{"type":88,"value":5685}," system-ui",{"type":82,"tag":167,"props":5687,"children":5688},{"style":246},[5689],{"type":88,"value":1951},{"type":82,"tag":167,"props":5691,"children":5692},{"style":184},[5693],{"type":88,"value":5694}," sans-serif",{"type":82,"tag":167,"props":5696,"children":5697},{"style":257},[5698],{"type":88,"value":5699},";\n",{"type":82,"tag":167,"props":5701,"children":5702},{"class":169,"line":206},[5703,5708,5712,5717,5721,5726,5730],{"type":82,"tag":167,"props":5704,"children":5705},{"style":257},[5706],{"type":88,"value":5707},"--font-mono: \"Geist Mono\"",{"type":82,"tag":167,"props":5709,"children":5710},{"style":246},[5711],{"type":88,"value":1951},{"type":82,"tag":167,"props":5713,"children":5714},{"style":257},[5715],{"type":88,"value":5716}," \"Geist Mono Fallback\"",{"type":82,"tag":167,"props":5718,"children":5719},{"style":246},[5720],{"type":88,"value":1951},{"type":82,"tag":167,"props":5722,"children":5723},{"style":184},[5724],{"type":88,"value":5725}," ui-monospace",{"type":82,"tag":167,"props":5727,"children":5728},{"style":246},[5729],{"type":88,"value":1951},{"type":82,"tag":167,"props":5731,"children":5732},{"style":257},[5733],{"type":88,"value":5734}," monospace;\n",{"type":82,"tag":167,"props":5736,"children":5737},{"class":169,"line":216},[5738],{"type":82,"tag":167,"props":5739,"children":5740},{"emptyLinePlaceholder":210},[5741],{"type":88,"value":213},{"type":82,"tag":167,"props":5743,"children":5744},{"class":169,"line":225},[5745],{"type":82,"tag":167,"props":5746,"children":5747},{"style":174},[5748],{"type":88,"value":5749},"\u002F* WRONG — circular, resolves to nothing *\u002F\n",{"type":82,"tag":167,"props":5751,"children":5752},{"class":169,"line":40},[5753],{"type":82,"tag":167,"props":5754,"children":5755},{"style":257},[5756],{"type":88,"value":5757},"--font-sans: var(--font-sans);\n",{"type":82,"tag":167,"props":5759,"children":5760},{"class":169,"line":280},[5761],{"type":82,"tag":167,"props":5762,"children":5763},{"emptyLinePlaceholder":210},[5764],{"type":88,"value":213},{"type":82,"tag":167,"props":5766,"children":5767},{"class":169,"line":289},[5768],{"type":82,"tag":167,"props":5769,"children":5770},{"style":174},[5771],{"type":88,"value":5772},"\u002F* ALSO WRONG — @theme inline can't resolve runtime CSS variables *\u002F\n",{"type":82,"tag":167,"props":5774,"children":5775},{"class":169,"line":320},[5776],{"type":82,"tag":167,"props":5777,"children":5778},{"style":257},[5779],{"type":88,"value":5780},"--font-sans: var(--font-geist-sans);\n",{"type":82,"tag":90,"props":5782,"children":5783},{},[5784,5794],{"type":82,"tag":108,"props":5785,"children":5786},{},[5787,5789],{"type":88,"value":5788},"After running ",{"type":82,"tag":139,"props":5790,"children":5792},{"className":5791},[],[5793],{"type":88,"value":144},{"type":88,"value":5795},", always:",{"type":82,"tag":730,"props":5797,"children":5798},{},[5799,5811],{"type":82,"tag":460,"props":5800,"children":5801},{},[5802,5804,5809],{"type":88,"value":5803},"Replace font declarations in ",{"type":82,"tag":139,"props":5805,"children":5807},{"className":5806},[],[5808],{"type":88,"value":5602},{"type":88,"value":5810}," with literal Geist font names (as shown above)",{"type":82,"tag":460,"props":5812,"children":5813},{},[5814,5816,5822,5824,5829,5831,5837],{"type":88,"value":5815},"Move the font variable classNames from ",{"type":82,"tag":139,"props":5817,"children":5819},{"className":5818},[],[5820],{"type":88,"value":5821},"\u003Cbody>",{"type":88,"value":5823}," to ",{"type":82,"tag":139,"props":5825,"children":5827},{"className":5826},[],[5828],{"type":88,"value":3313},{"type":88,"value":5830}," in ",{"type":82,"tag":139,"props":5832,"children":5834},{"className":5833},[],[5835],{"type":88,"value":5836},"layout.tsx",{"type":88,"value":1711},{"type":82,"tag":156,"props":5839,"children":5841},{"className":1470,"code":5840,"language":1472,"meta":161,"style":161},"\u002F\u002F layout.tsx — font variables on \u003Chtml>, not \u003Cbody>\n\u003Chtml lang=\"en\" className={`${geistSans.variable} ${geistMono.variable}`}>\n  \u003Cbody className=\"antialiased\">\n",[5842],{"type":82,"tag":139,"props":5843,"children":5844},{"__ignoreMap":161},[5845,5853,5945],{"type":82,"tag":167,"props":5846,"children":5847},{"class":169,"line":170},[5848],{"type":82,"tag":167,"props":5849,"children":5850},{"style":174},[5851],{"type":88,"value":5852},"\u002F\u002F layout.tsx — font variables on \u003Chtml>, not \u003Cbody>\n",{"type":82,"tag":167,"props":5854,"children":5855},{"class":169,"line":180},[5856,5860,5864,5868,5872,5876,5880,5884,5888,5893,5898,5903,5907,5912,5917,5922,5927,5931,5935,5940],{"type":82,"tag":167,"props":5857,"children":5858},{"style":246},[5859],{"type":88,"value":3337},{"type":82,"tag":167,"props":5861,"children":5862},{"style":2593},[5863],{"type":88,"value":3342},{"type":82,"tag":167,"props":5865,"children":5866},{"style":1698},[5867],{"type":88,"value":3347},{"type":82,"tag":167,"props":5869,"children":5870},{"style":246},[5871],{"type":88,"value":3352},{"type":82,"tag":167,"props":5873,"children":5874},{"style":246},[5875],{"type":88,"value":1706},{"type":82,"tag":167,"props":5877,"children":5878},{"style":190},[5879],{"type":88,"value":3361},{"type":82,"tag":167,"props":5881,"children":5882},{"style":246},[5883],{"type":88,"value":1706},{"type":82,"tag":167,"props":5885,"children":5886},{"style":1698},[5887],{"type":88,"value":3370},{"type":82,"tag":167,"props":5889,"children":5890},{"style":246},[5891],{"type":88,"value":5892},"={",{"type":82,"tag":167,"props":5894,"children":5895},{"style":246},[5896],{"type":88,"value":5897},"`${",{"type":82,"tag":167,"props":5899,"children":5900},{"style":257},[5901],{"type":88,"value":5902},"geistSans",{"type":82,"tag":167,"props":5904,"children":5905},{"style":246},[5906],{"type":88,"value":1619},{"type":82,"tag":167,"props":5908,"children":5909},{"style":257},[5910],{"type":88,"value":5911},"variable",{"type":82,"tag":167,"props":5913,"children":5914},{"style":246},[5915],{"type":88,"value":5916},"}",{"type":82,"tag":167,"props":5918,"children":5919},{"style":246},[5920],{"type":88,"value":5921}," ${",{"type":82,"tag":167,"props":5923,"children":5924},{"style":257},[5925],{"type":88,"value":5926},"geistMono",{"type":82,"tag":167,"props":5928,"children":5929},{"style":246},[5930],{"type":88,"value":1619},{"type":82,"tag":167,"props":5932,"children":5933},{"style":257},[5934],{"type":88,"value":5911},{"type":82,"tag":167,"props":5936,"children":5937},{"style":246},[5938],{"type":88,"value":5939},"}`",{"type":82,"tag":167,"props":5941,"children":5942},{"style":246},[5943],{"type":88,"value":5944},"}>\n",{"type":82,"tag":167,"props":5946,"children":5947},{"class":169,"line":206},[5948,5953,5958,5962,5966,5970,5975,5979],{"type":82,"tag":167,"props":5949,"children":5950},{"style":246},[5951],{"type":88,"value":5952},"  \u003C",{"type":82,"tag":167,"props":5954,"children":5955},{"style":2593},[5956],{"type":88,"value":5957},"body",{"type":82,"tag":167,"props":5959,"children":5960},{"style":1698},[5961],{"type":88,"value":3370},{"type":82,"tag":167,"props":5963,"children":5964},{"style":246},[5965],{"type":88,"value":3352},{"type":82,"tag":167,"props":5967,"children":5968},{"style":246},[5969],{"type":88,"value":1706},{"type":82,"tag":167,"props":5971,"children":5972},{"style":190},[5973],{"type":88,"value":5974},"antialiased",{"type":82,"tag":167,"props":5976,"children":5977},{"style":246},[5978],{"type":88,"value":1706},{"type":82,"tag":167,"props":5980,"children":5981},{"style":246},[5982],{"type":88,"value":3391},{"type":82,"tag":122,"props":5984,"children":5986},{"id":5985},"avatar-has-no-size-prop",[5987,5989,5995],{"type":88,"value":5988},"Avatar Has No ",{"type":82,"tag":139,"props":5990,"children":5992},{"className":5991},[],[5993],{"type":88,"value":5994},"size",{"type":88,"value":5996}," Prop",{"type":82,"tag":90,"props":5998,"children":5999},{},[6000,6002,6007,6009,6014],{"type":88,"value":6001},"The shadcn Avatar component does ",{"type":82,"tag":108,"props":6003,"children":6004},{},[6005],{"type":88,"value":6006},"not",{"type":88,"value":6008}," accept a ",{"type":82,"tag":139,"props":6010,"children":6012},{"className":6011},[],[6013],{"type":88,"value":5994},{"type":88,"value":6015}," variant prop. Control size with Tailwind classes:",{"type":82,"tag":156,"props":6017,"children":6019},{"className":1470,"code":6018,"language":1472,"meta":161,"style":161},"\u002F\u002F WRONG — no size variant exists\n\u003CAvatar size=\"lg\" \u002F>  \u002F\u002F ❌ TypeScript error \u002F silently ignored\n\n\u002F\u002F CORRECT — use Tailwind\n\u003CAvatar className=\"h-12 w-12\">\n  \u003CAvatarImage src={user.image} \u002F>\n  \u003CAvatarFallback>JD\u003C\u002FAvatarFallback>\n\u003C\u002FAvatar>\n\n\u002F\u002F Small avatar\n\u003CAvatar className=\"h-6 w-6\"> ... \u003C\u002FAvatar>\n",[6020],{"type":82,"tag":139,"props":6021,"children":6022},{"__ignoreMap":161},[6023,6031,6075,6082,6090,6126,6166,6199,6214,6221,6229],{"type":82,"tag":167,"props":6024,"children":6025},{"class":169,"line":170},[6026],{"type":82,"tag":167,"props":6027,"children":6028},{"style":174},[6029],{"type":88,"value":6030},"\u002F\u002F WRONG — no size variant exists\n",{"type":82,"tag":167,"props":6032,"children":6033},{"class":169,"line":180},[6034,6038,6043,6048,6052,6056,6061,6065,6070],{"type":82,"tag":167,"props":6035,"children":6036},{"style":246},[6037],{"type":88,"value":3337},{"type":82,"tag":167,"props":6039,"children":6040},{"style":184},[6041],{"type":88,"value":6042},"Avatar",{"type":82,"tag":167,"props":6044,"children":6045},{"style":1698},[6046],{"type":88,"value":6047}," size",{"type":82,"tag":167,"props":6049,"children":6050},{"style":246},[6051],{"type":88,"value":3352},{"type":82,"tag":167,"props":6053,"children":6054},{"style":246},[6055],{"type":88,"value":1706},{"type":82,"tag":167,"props":6057,"children":6058},{"style":190},[6059],{"type":88,"value":6060},"lg",{"type":82,"tag":167,"props":6062,"children":6063},{"style":246},[6064],{"type":88,"value":1706},{"type":82,"tag":167,"props":6066,"children":6067},{"style":246},[6068],{"type":88,"value":6069}," \u002F>",{"type":82,"tag":167,"props":6071,"children":6072},{"style":174},[6073],{"type":88,"value":6074},"  \u002F\u002F ❌ TypeScript error \u002F silently ignored\n",{"type":82,"tag":167,"props":6076,"children":6077},{"class":169,"line":206},[6078],{"type":82,"tag":167,"props":6079,"children":6080},{"emptyLinePlaceholder":210},[6081],{"type":88,"value":213},{"type":82,"tag":167,"props":6083,"children":6084},{"class":169,"line":216},[6085],{"type":82,"tag":167,"props":6086,"children":6087},{"style":174},[6088],{"type":88,"value":6089},"\u002F\u002F CORRECT — use Tailwind\n",{"type":82,"tag":167,"props":6091,"children":6092},{"class":169,"line":225},[6093,6097,6101,6105,6109,6113,6118,6122],{"type":82,"tag":167,"props":6094,"children":6095},{"style":246},[6096],{"type":88,"value":3337},{"type":82,"tag":167,"props":6098,"children":6099},{"style":184},[6100],{"type":88,"value":6042},{"type":82,"tag":167,"props":6102,"children":6103},{"style":1698},[6104],{"type":88,"value":3370},{"type":82,"tag":167,"props":6106,"children":6107},{"style":246},[6108],{"type":88,"value":3352},{"type":82,"tag":167,"props":6110,"children":6111},{"style":246},[6112],{"type":88,"value":1706},{"type":82,"tag":167,"props":6114,"children":6115},{"style":190},[6116],{"type":88,"value":6117},"h-12 w-12",{"type":82,"tag":167,"props":6119,"children":6120},{"style":246},[6121],{"type":88,"value":1706},{"type":82,"tag":167,"props":6123,"children":6124},{"style":246},[6125],{"type":88,"value":3391},{"type":82,"tag":167,"props":6127,"children":6128},{"class":169,"line":40},[6129,6133,6138,6143,6147,6152,6156,6161],{"type":82,"tag":167,"props":6130,"children":6131},{"style":246},[6132],{"type":88,"value":5952},{"type":82,"tag":167,"props":6134,"children":6135},{"style":184},[6136],{"type":88,"value":6137},"AvatarImage",{"type":82,"tag":167,"props":6139,"children":6140},{"style":1698},[6141],{"type":88,"value":6142}," src",{"type":82,"tag":167,"props":6144,"children":6145},{"style":246},[6146],{"type":88,"value":5892},{"type":82,"tag":167,"props":6148,"children":6149},{"style":257},[6150],{"type":88,"value":6151},"user",{"type":82,"tag":167,"props":6153,"children":6154},{"style":246},[6155],{"type":88,"value":1619},{"type":82,"tag":167,"props":6157,"children":6158},{"style":257},[6159],{"type":88,"value":6160},"image",{"type":82,"tag":167,"props":6162,"children":6163},{"style":246},[6164],{"type":88,"value":6165},"} \u002F>\n",{"type":82,"tag":167,"props":6167,"children":6168},{"class":169,"line":280},[6169,6173,6178,6182,6187,6191,6195],{"type":82,"tag":167,"props":6170,"children":6171},{"style":246},[6172],{"type":88,"value":5952},{"type":82,"tag":167,"props":6174,"children":6175},{"style":184},[6176],{"type":88,"value":6177},"AvatarFallback",{"type":82,"tag":167,"props":6179,"children":6180},{"style":246},[6181],{"type":88,"value":265},{"type":82,"tag":167,"props":6183,"children":6184},{"style":257},[6185],{"type":88,"value":6186},"JD",{"type":82,"tag":167,"props":6188,"children":6189},{"style":246},[6190],{"type":88,"value":3533},{"type":82,"tag":167,"props":6192,"children":6193},{"style":184},[6194],{"type":88,"value":6177},{"type":82,"tag":167,"props":6196,"children":6197},{"style":246},[6198],{"type":88,"value":3391},{"type":82,"tag":167,"props":6200,"children":6201},{"class":169,"line":289},[6202,6206,6210],{"type":82,"tag":167,"props":6203,"children":6204},{"style":246},[6205],{"type":88,"value":3533},{"type":82,"tag":167,"props":6207,"children":6208},{"style":184},[6209],{"type":88,"value":6042},{"type":82,"tag":167,"props":6211,"children":6212},{"style":246},[6213],{"type":88,"value":3391},{"type":82,"tag":167,"props":6215,"children":6216},{"class":169,"line":320},[6217],{"type":82,"tag":167,"props":6218,"children":6219},{"emptyLinePlaceholder":210},[6220],{"type":88,"value":213},{"type":82,"tag":167,"props":6222,"children":6223},{"class":169,"line":349},[6224],{"type":82,"tag":167,"props":6225,"children":6226},{"style":174},[6227],{"type":88,"value":6228},"\u002F\u002F Small avatar\n",{"type":82,"tag":167,"props":6230,"children":6231},{"class":169,"line":357},[6232,6236,6240,6244,6248,6252,6257,6261,6265,6270,6274,6278],{"type":82,"tag":167,"props":6233,"children":6234},{"style":246},[6235],{"type":88,"value":3337},{"type":82,"tag":167,"props":6237,"children":6238},{"style":184},[6239],{"type":88,"value":6042},{"type":82,"tag":167,"props":6241,"children":6242},{"style":1698},[6243],{"type":88,"value":3370},{"type":82,"tag":167,"props":6245,"children":6246},{"style":246},[6247],{"type":88,"value":3352},{"type":82,"tag":167,"props":6249,"children":6250},{"style":246},[6251],{"type":88,"value":1706},{"type":82,"tag":167,"props":6253,"children":6254},{"style":190},[6255],{"type":88,"value":6256},"h-6 w-6",{"type":82,"tag":167,"props":6258,"children":6259},{"style":246},[6260],{"type":88,"value":1706},{"type":82,"tag":167,"props":6262,"children":6263},{"style":246},[6264],{"type":88,"value":265},{"type":82,"tag":167,"props":6266,"children":6267},{"style":257},[6268],{"type":88,"value":6269}," ... ",{"type":82,"tag":167,"props":6271,"children":6272},{"style":246},[6273],{"type":88,"value":3533},{"type":82,"tag":167,"props":6275,"children":6276},{"style":184},[6277],{"type":88,"value":6042},{"type":82,"tag":167,"props":6279,"children":6280},{"style":246},[6281],{"type":88,"value":3391},{"type":82,"tag":90,"props":6283,"children":6284},{},[6285,6287,6293],{"type":88,"value":6286},"This applies to most shadcn components — they use Tailwind classes for sizing, not variant props. If you need reusable size variants, add them yourself via ",{"type":82,"tag":139,"props":6288,"children":6290},{"className":6289},[],[6291],{"type":88,"value":6292},"cva",{"type":88,"value":6294}," in the component source.",{"type":82,"tag":96,"props":6296,"children":6298},{"id":6297},"common-patterns",[6299],{"type":88,"value":6300},"Common Patterns",{"type":82,"tag":122,"props":6302,"children":6304},{"id":6303},"cn-utility",[6305],{"type":88,"value":6306},"cn() Utility",{"type":82,"tag":90,"props":6308,"children":6309},{},[6310,6312,6317],{"type":88,"value":6311},"All shadcn components use the ",{"type":82,"tag":139,"props":6313,"children":6315},{"className":6314},[],[6316],{"type":88,"value":765},{"type":88,"value":6318}," utility for conditional class merging:",{"type":82,"tag":156,"props":6320,"children":6324},{"className":6321,"code":6322,"language":6323,"meta":161,"style":161},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import { clsx, type ClassValue } from 'clsx'\nimport { twMerge } from 'tailwind-merge'\n\nexport function cn(...inputs: ClassValue[]) {\n  return twMerge(clsx(inputs))\n}\n","ts",[6325],{"type":82,"tag":139,"props":6326,"children":6327},{"__ignoreMap":161},[6328,6379,6416,6423,6474,6508],{"type":82,"tag":167,"props":6329,"children":6330},{"class":169,"line":170},[6331,6335,6339,6344,6348,6353,6358,6362,6366,6370,6375],{"type":82,"tag":167,"props":6332,"children":6333},{"style":1490},[6334],{"type":88,"value":1493},{"type":82,"tag":167,"props":6336,"children":6337},{"style":246},[6338],{"type":88,"value":1555},{"type":82,"tag":167,"props":6340,"children":6341},{"style":257},[6342],{"type":88,"value":6343}," clsx",{"type":82,"tag":167,"props":6345,"children":6346},{"style":246},[6347],{"type":88,"value":1951},{"type":82,"tag":167,"props":6349,"children":6350},{"style":1490},[6351],{"type":88,"value":6352}," type",{"type":82,"tag":167,"props":6354,"children":6355},{"style":257},[6356],{"type":88,"value":6357}," ClassValue",{"type":82,"tag":167,"props":6359,"children":6360},{"style":246},[6361],{"type":88,"value":1574},{"type":82,"tag":167,"props":6363,"children":6364},{"style":1490},[6365],{"type":88,"value":1579},{"type":82,"tag":167,"props":6367,"children":6368},{"style":246},[6369],{"type":88,"value":3432},{"type":82,"tag":167,"props":6371,"children":6372},{"style":190},[6373],{"type":88,"value":6374},"clsx",{"type":82,"tag":167,"props":6376,"children":6377},{"style":246},[6378],{"type":88,"value":3442},{"type":82,"tag":167,"props":6380,"children":6381},{"class":169,"line":180},[6382,6386,6390,6395,6399,6403,6407,6412],{"type":82,"tag":167,"props":6383,"children":6384},{"style":1490},[6385],{"type":88,"value":1493},{"type":82,"tag":167,"props":6387,"children":6388},{"style":246},[6389],{"type":88,"value":1555},{"type":82,"tag":167,"props":6391,"children":6392},{"style":257},[6393],{"type":88,"value":6394}," twMerge",{"type":82,"tag":167,"props":6396,"children":6397},{"style":246},[6398],{"type":88,"value":1574},{"type":82,"tag":167,"props":6400,"children":6401},{"style":1490},[6402],{"type":88,"value":1579},{"type":82,"tag":167,"props":6404,"children":6405},{"style":246},[6406],{"type":88,"value":3432},{"type":82,"tag":167,"props":6408,"children":6409},{"style":190},[6410],{"type":88,"value":6411},"tailwind-merge",{"type":82,"tag":167,"props":6413,"children":6414},{"style":246},[6415],{"type":88,"value":3442},{"type":82,"tag":167,"props":6417,"children":6418},{"class":169,"line":206},[6419],{"type":82,"tag":167,"props":6420,"children":6421},{"emptyLinePlaceholder":210},[6422],{"type":88,"value":213},{"type":82,"tag":167,"props":6424,"children":6425},{"class":169,"line":216},[6426,6431,6436,6442,6447,6453,6457,6461,6466,6470],{"type":82,"tag":167,"props":6427,"children":6428},{"style":1490},[6429],{"type":88,"value":6430},"export",{"type":82,"tag":167,"props":6432,"children":6433},{"style":1698},[6434],{"type":88,"value":6435}," function",{"type":82,"tag":167,"props":6437,"children":6439},{"style":6438},"--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF",[6440],{"type":88,"value":6441}," cn",{"type":82,"tag":167,"props":6443,"children":6444},{"style":246},[6445],{"type":88,"value":6446},"(...",{"type":82,"tag":167,"props":6448,"children":6450},{"style":6449},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic",[6451],{"type":88,"value":6452},"inputs",{"type":82,"tag":167,"props":6454,"children":6455},{"style":246},[6456],{"type":88,"value":1711},{"type":82,"tag":167,"props":6458,"children":6459},{"style":184},[6460],{"type":88,"value":6357},{"type":82,"tag":167,"props":6462,"children":6463},{"style":257},[6464],{"type":88,"value":6465},"[]",{"type":82,"tag":167,"props":6467,"children":6468},{"style":246},[6469],{"type":88,"value":561},{"type":82,"tag":167,"props":6471,"children":6472},{"style":246},[6473],{"type":88,"value":1838},{"type":82,"tag":167,"props":6475,"children":6476},{"class":169,"line":225},[6477,6482,6486,6491,6495,6499,6503],{"type":82,"tag":167,"props":6478,"children":6479},{"style":1490},[6480],{"type":88,"value":6481},"  return",{"type":82,"tag":167,"props":6483,"children":6484},{"style":6438},[6485],{"type":88,"value":6394},{"type":82,"tag":167,"props":6487,"children":6488},{"style":2593},[6489],{"type":88,"value":6490},"(",{"type":82,"tag":167,"props":6492,"children":6493},{"style":6438},[6494],{"type":88,"value":6374},{"type":82,"tag":167,"props":6496,"children":6497},{"style":2593},[6498],{"type":88,"value":6490},{"type":82,"tag":167,"props":6500,"children":6501},{"style":257},[6502],{"type":88,"value":6452},{"type":82,"tag":167,"props":6504,"children":6505},{"style":2593},[6506],{"type":88,"value":6507},"))\n",{"type":82,"tag":167,"props":6509,"children":6510},{"class":169,"line":40},[6511],{"type":82,"tag":167,"props":6512,"children":6513},{"style":246},[6514],{"type":88,"value":2387},{"type":82,"tag":122,"props":6516,"children":6518},{"id":6517},"extending-components",[6519],{"type":88,"value":6520},"Extending Components",{"type":82,"tag":90,"props":6522,"children":6523},{},[6524],{"type":88,"value":6525},"Since you own the source code, extend components directly:",{"type":82,"tag":156,"props":6527,"children":6529},{"className":1470,"code":6528,"language":1472,"meta":161,"style":161},"\u002F\u002F components\u002Fui\u002Fbutton.tsx — add your custom variant\nconst buttonVariants = cva('...', {\n  variants: {\n    variant: {\n      default: '...',\n      destructive: '...',\n      \u002F\u002F Add custom variants\n      success: 'bg-green-600 text-white hover:bg-green-700',\n      premium: 'bg-gradient-to-r from-purple-500 to-pink-500 text-white',\n    },\n  },\n})\n",[6530],{"type":82,"tag":139,"props":6531,"children":6532},{"__ignoreMap":161},[6533,6541,6589,6605,6621,6649,6677,6685,6714,6743,6750,6757],{"type":82,"tag":167,"props":6534,"children":6535},{"class":169,"line":170},[6536],{"type":82,"tag":167,"props":6537,"children":6538},{"style":174},[6539],{"type":88,"value":6540},"\u002F\u002F components\u002Fui\u002Fbutton.tsx — add your custom variant\n",{"type":82,"tag":167,"props":6542,"children":6543},{"class":169,"line":180},[6544,6549,6554,6558,6563,6567,6572,6577,6581,6585],{"type":82,"tag":167,"props":6545,"children":6546},{"style":1698},[6547],{"type":88,"value":6548},"const",{"type":82,"tag":167,"props":6550,"children":6551},{"style":257},[6552],{"type":88,"value":6553}," buttonVariants ",{"type":82,"tag":167,"props":6555,"children":6556},{"style":246},[6557],{"type":88,"value":3352},{"type":82,"tag":167,"props":6559,"children":6560},{"style":6438},[6561],{"type":88,"value":6562}," cva",{"type":82,"tag":167,"props":6564,"children":6565},{"style":257},[6566],{"type":88,"value":6490},{"type":82,"tag":167,"props":6568,"children":6569},{"style":246},[6570],{"type":88,"value":6571},"'",{"type":82,"tag":167,"props":6573,"children":6574},{"style":190},[6575],{"type":88,"value":6576},"...",{"type":82,"tag":167,"props":6578,"children":6579},{"style":246},[6580],{"type":88,"value":6571},{"type":82,"tag":167,"props":6582,"children":6583},{"style":246},[6584],{"type":88,"value":1951},{"type":82,"tag":167,"props":6586,"children":6587},{"style":246},[6588],{"type":88,"value":1838},{"type":82,"tag":167,"props":6590,"children":6591},{"class":169,"line":206},[6592,6597,6601],{"type":82,"tag":167,"props":6593,"children":6594},{"style":2593},[6595],{"type":88,"value":6596},"  variants",{"type":82,"tag":167,"props":6598,"children":6599},{"style":246},[6600],{"type":88,"value":1711},{"type":82,"tag":167,"props":6602,"children":6603},{"style":246},[6604],{"type":88,"value":1838},{"type":82,"tag":167,"props":6606,"children":6607},{"class":169,"line":216},[6608,6613,6617],{"type":82,"tag":167,"props":6609,"children":6610},{"style":2593},[6611],{"type":88,"value":6612},"    variant",{"type":82,"tag":167,"props":6614,"children":6615},{"style":246},[6616],{"type":88,"value":1711},{"type":82,"tag":167,"props":6618,"children":6619},{"style":246},[6620],{"type":88,"value":1838},{"type":82,"tag":167,"props":6622,"children":6623},{"class":169,"line":225},[6624,6629,6633,6637,6641,6645],{"type":82,"tag":167,"props":6625,"children":6626},{"style":2593},[6627],{"type":88,"value":6628},"      default",{"type":82,"tag":167,"props":6630,"children":6631},{"style":246},[6632],{"type":88,"value":1711},{"type":82,"tag":167,"props":6634,"children":6635},{"style":246},[6636],{"type":88,"value":3432},{"type":82,"tag":167,"props":6638,"children":6639},{"style":190},[6640],{"type":88,"value":6576},{"type":82,"tag":167,"props":6642,"children":6643},{"style":246},[6644],{"type":88,"value":6571},{"type":82,"tag":167,"props":6646,"children":6647},{"style":246},[6648],{"type":88,"value":1729},{"type":82,"tag":167,"props":6650,"children":6651},{"class":169,"line":40},[6652,6657,6661,6665,6669,6673],{"type":82,"tag":167,"props":6653,"children":6654},{"style":2593},[6655],{"type":88,"value":6656},"      destructive",{"type":82,"tag":167,"props":6658,"children":6659},{"style":246},[6660],{"type":88,"value":1711},{"type":82,"tag":167,"props":6662,"children":6663},{"style":246},[6664],{"type":88,"value":3432},{"type":82,"tag":167,"props":6666,"children":6667},{"style":190},[6668],{"type":88,"value":6576},{"type":82,"tag":167,"props":6670,"children":6671},{"style":246},[6672],{"type":88,"value":6571},{"type":82,"tag":167,"props":6674,"children":6675},{"style":246},[6676],{"type":88,"value":1729},{"type":82,"tag":167,"props":6678,"children":6679},{"class":169,"line":280},[6680],{"type":82,"tag":167,"props":6681,"children":6682},{"style":174},[6683],{"type":88,"value":6684},"      \u002F\u002F Add custom variants\n",{"type":82,"tag":167,"props":6686,"children":6687},{"class":169,"line":289},[6688,6693,6697,6701,6706,6710],{"type":82,"tag":167,"props":6689,"children":6690},{"style":2593},[6691],{"type":88,"value":6692},"      success",{"type":82,"tag":167,"props":6694,"children":6695},{"style":246},[6696],{"type":88,"value":1711},{"type":82,"tag":167,"props":6698,"children":6699},{"style":246},[6700],{"type":88,"value":3432},{"type":82,"tag":167,"props":6702,"children":6703},{"style":190},[6704],{"type":88,"value":6705},"bg-green-600 text-white hover:bg-green-700",{"type":82,"tag":167,"props":6707,"children":6708},{"style":246},[6709],{"type":88,"value":6571},{"type":82,"tag":167,"props":6711,"children":6712},{"style":246},[6713],{"type":88,"value":1729},{"type":82,"tag":167,"props":6715,"children":6716},{"class":169,"line":320},[6717,6722,6726,6730,6735,6739],{"type":82,"tag":167,"props":6718,"children":6719},{"style":2593},[6720],{"type":88,"value":6721},"      premium",{"type":82,"tag":167,"props":6723,"children":6724},{"style":246},[6725],{"type":88,"value":1711},{"type":82,"tag":167,"props":6727,"children":6728},{"style":246},[6729],{"type":88,"value":3432},{"type":82,"tag":167,"props":6731,"children":6732},{"style":190},[6733],{"type":88,"value":6734},"bg-gradient-to-r from-purple-500 to-pink-500 text-white",{"type":82,"tag":167,"props":6736,"children":6737},{"style":246},[6738],{"type":88,"value":6571},{"type":82,"tag":167,"props":6740,"children":6741},{"style":246},[6742],{"type":88,"value":1729},{"type":82,"tag":167,"props":6744,"children":6745},{"class":169,"line":349},[6746],{"type":82,"tag":167,"props":6747,"children":6748},{"style":246},[6749],{"type":88,"value":2302},{"type":82,"tag":167,"props":6751,"children":6752},{"class":169,"line":357},[6753],{"type":82,"tag":167,"props":6754,"children":6755},{"style":246},[6756],{"type":88,"value":1989},{"type":82,"tag":167,"props":6758,"children":6759},{"class":169,"line":932},[6760,6764],{"type":82,"tag":167,"props":6761,"children":6762},{"style":246},[6763],{"type":88,"value":5916},{"type":82,"tag":167,"props":6765,"children":6766},{"style":257},[6767],{"type":88,"value":6768},")\n",{"type":82,"tag":122,"props":6770,"children":6772},{"id":6771},"wrapping-with-tooltipprovider",[6773],{"type":88,"value":6774},"Wrapping with TooltipProvider",{"type":82,"tag":90,"props":6776,"children":6777},{},[6778,6780,6786],{"type":88,"value":6779},"Many components require ",{"type":82,"tag":139,"props":6781,"children":6783},{"className":6782},[],[6784],{"type":88,"value":6785},"TooltipProvider",{"type":88,"value":6787}," at the root:",{"type":82,"tag":156,"props":6789,"children":6791},{"className":1470,"code":6790,"language":1472,"meta":161,"style":161},"\u002F\u002F app\u002Flayout.tsx\nimport { TooltipProvider } from '@\u002Fcomponents\u002Fui\u002Ftooltip'\n\nexport default function RootLayout({ children }) {\n  return (\n    \u003Chtml lang=\"en\" className=\"dark\">\n      \u003Cbody>\n        \u003CTooltipProvider>{children}\u003C\u002FTooltipProvider>\n      \u003C\u002Fbody>\n    \u003C\u002Fhtml>\n  )\n}\n",[6792],{"type":82,"tag":139,"props":6793,"children":6794},{"__ignoreMap":161},[6795,6802,6839,6846,6886,6898,6954,6970,7004,7020,7036,7044],{"type":82,"tag":167,"props":6796,"children":6797},{"class":169,"line":170},[6798],{"type":82,"tag":167,"props":6799,"children":6800},{"style":174},[6801],{"type":88,"value":3329},{"type":82,"tag":167,"props":6803,"children":6804},{"class":169,"line":180},[6805,6809,6813,6818,6822,6826,6830,6835],{"type":82,"tag":167,"props":6806,"children":6807},{"style":1490},[6808],{"type":88,"value":1493},{"type":82,"tag":167,"props":6810,"children":6811},{"style":246},[6812],{"type":88,"value":1555},{"type":82,"tag":167,"props":6814,"children":6815},{"style":257},[6816],{"type":88,"value":6817}," TooltipProvider",{"type":82,"tag":167,"props":6819,"children":6820},{"style":246},[6821],{"type":88,"value":1574},{"type":82,"tag":167,"props":6823,"children":6824},{"style":1490},[6825],{"type":88,"value":1579},{"type":82,"tag":167,"props":6827,"children":6828},{"style":246},[6829],{"type":88,"value":3432},{"type":82,"tag":167,"props":6831,"children":6832},{"style":190},[6833],{"type":88,"value":6834},"@\u002Fcomponents\u002Fui\u002Ftooltip",{"type":82,"tag":167,"props":6836,"children":6837},{"style":246},[6838],{"type":88,"value":3442},{"type":82,"tag":167,"props":6840,"children":6841},{"class":169,"line":206},[6842],{"type":82,"tag":167,"props":6843,"children":6844},{"emptyLinePlaceholder":210},[6845],{"type":88,"value":213},{"type":82,"tag":167,"props":6847,"children":6848},{"class":169,"line":216},[6849,6853,6858,6862,6867,6872,6877,6882],{"type":82,"tag":167,"props":6850,"children":6851},{"style":1490},[6852],{"type":88,"value":6430},{"type":82,"tag":167,"props":6854,"children":6855},{"style":1490},[6856],{"type":88,"value":6857}," default",{"type":82,"tag":167,"props":6859,"children":6860},{"style":1698},[6861],{"type":88,"value":6435},{"type":82,"tag":167,"props":6863,"children":6864},{"style":6438},[6865],{"type":88,"value":6866}," RootLayout",{"type":82,"tag":167,"props":6868,"children":6869},{"style":246},[6870],{"type":88,"value":6871},"({",{"type":82,"tag":167,"props":6873,"children":6874},{"style":6449},[6875],{"type":88,"value":6876}," children",{"type":82,"tag":167,"props":6878,"children":6879},{"style":246},[6880],{"type":88,"value":6881}," })",{"type":82,"tag":167,"props":6883,"children":6884},{"style":246},[6885],{"type":88,"value":1838},{"type":82,"tag":167,"props":6887,"children":6888},{"class":169,"line":225},[6889,6893],{"type":82,"tag":167,"props":6890,"children":6891},{"style":1490},[6892],{"type":88,"value":6481},{"type":82,"tag":167,"props":6894,"children":6895},{"style":2593},[6896],{"type":88,"value":6897}," (\n",{"type":82,"tag":167,"props":6899,"children":6900},{"class":169,"line":40},[6901,6906,6910,6914,6918,6922,6926,6930,6934,6938,6942,6946,6950],{"type":82,"tag":167,"props":6902,"children":6903},{"style":246},[6904],{"type":88,"value":6905},"    \u003C",{"type":82,"tag":167,"props":6907,"children":6908},{"style":2593},[6909],{"type":88,"value":3342},{"type":82,"tag":167,"props":6911,"children":6912},{"style":1698},[6913],{"type":88,"value":3347},{"type":82,"tag":167,"props":6915,"children":6916},{"style":246},[6917],{"type":88,"value":3352},{"type":82,"tag":167,"props":6919,"children":6920},{"style":246},[6921],{"type":88,"value":1706},{"type":82,"tag":167,"props":6923,"children":6924},{"style":190},[6925],{"type":88,"value":3361},{"type":82,"tag":167,"props":6927,"children":6928},{"style":246},[6929],{"type":88,"value":1706},{"type":82,"tag":167,"props":6931,"children":6932},{"style":1698},[6933],{"type":88,"value":3370},{"type":82,"tag":167,"props":6935,"children":6936},{"style":246},[6937],{"type":88,"value":3352},{"type":82,"tag":167,"props":6939,"children":6940},{"style":246},[6941],{"type":88,"value":1706},{"type":82,"tag":167,"props":6943,"children":6944},{"style":190},[6945],{"type":88,"value":3305},{"type":82,"tag":167,"props":6947,"children":6948},{"style":246},[6949],{"type":88,"value":1706},{"type":82,"tag":167,"props":6951,"children":6952},{"style":246},[6953],{"type":88,"value":3391},{"type":82,"tag":167,"props":6955,"children":6956},{"class":169,"line":280},[6957,6962,6966],{"type":82,"tag":167,"props":6958,"children":6959},{"style":246},[6960],{"type":88,"value":6961},"      \u003C",{"type":82,"tag":167,"props":6963,"children":6964},{"style":2593},[6965],{"type":88,"value":5957},{"type":82,"tag":167,"props":6967,"children":6968},{"style":246},[6969],{"type":88,"value":3391},{"type":82,"tag":167,"props":6971,"children":6972},{"class":169,"line":289},[6973,6978,6982,6987,6991,6996,7000],{"type":82,"tag":167,"props":6974,"children":6975},{"style":246},[6976],{"type":88,"value":6977},"        \u003C",{"type":82,"tag":167,"props":6979,"children":6980},{"style":184},[6981],{"type":88,"value":6785},{"type":82,"tag":167,"props":6983,"children":6984},{"style":246},[6985],{"type":88,"value":6986},">{",{"type":82,"tag":167,"props":6988,"children":6989},{"style":257},[6990],{"type":88,"value":3521},{"type":82,"tag":167,"props":6992,"children":6993},{"style":246},[6994],{"type":88,"value":6995},"}\u003C\u002F",{"type":82,"tag":167,"props":6997,"children":6998},{"style":184},[6999],{"type":88,"value":6785},{"type":82,"tag":167,"props":7001,"children":7002},{"style":246},[7003],{"type":88,"value":3391},{"type":82,"tag":167,"props":7005,"children":7006},{"class":169,"line":320},[7007,7012,7016],{"type":82,"tag":167,"props":7008,"children":7009},{"style":246},[7010],{"type":88,"value":7011},"      \u003C\u002F",{"type":82,"tag":167,"props":7013,"children":7014},{"style":2593},[7015],{"type":88,"value":5957},{"type":82,"tag":167,"props":7017,"children":7018},{"style":246},[7019],{"type":88,"value":3391},{"type":82,"tag":167,"props":7021,"children":7022},{"class":169,"line":349},[7023,7028,7032],{"type":82,"tag":167,"props":7024,"children":7025},{"style":246},[7026],{"type":88,"value":7027},"    \u003C\u002F",{"type":82,"tag":167,"props":7029,"children":7030},{"style":2593},[7031],{"type":88,"value":3342},{"type":82,"tag":167,"props":7033,"children":7034},{"style":246},[7035],{"type":88,"value":3391},{"type":82,"tag":167,"props":7037,"children":7038},{"class":169,"line":357},[7039],{"type":82,"tag":167,"props":7040,"children":7041},{"style":2593},[7042],{"type":88,"value":7043},"  )\n",{"type":82,"tag":167,"props":7045,"children":7046},{"class":169,"line":932},[7047],{"type":82,"tag":167,"props":7048,"children":7049},{"style":246},[7050],{"type":88,"value":2387},{"type":82,"tag":96,"props":7052,"children":7054},{"id":7053},"framework-support",[7055],{"type":88,"value":7056},"Framework Support",{"type":82,"tag":456,"props":7058,"children":7059},{},[7060,7070,7080,7089,7098,7108],{"type":82,"tag":460,"props":7061,"children":7062},{},[7063,7068],{"type":82,"tag":108,"props":7064,"children":7065},{},[7066],{"type":88,"value":7067},"Next.js",{"type":88,"value":7069}," — Full support (App Router + Pages Router)",{"type":82,"tag":460,"props":7071,"children":7072},{},[7073,7078],{"type":82,"tag":108,"props":7074,"children":7075},{},[7076],{"type":88,"value":7077},"Vite",{"type":88,"value":7079}," — Full support",{"type":82,"tag":460,"props":7081,"children":7082},{},[7083,7088],{"type":82,"tag":108,"props":7084,"children":7085},{},[7086],{"type":88,"value":7087},"React Router",{"type":88,"value":7079},{"type":82,"tag":460,"props":7090,"children":7091},{},[7092,7097],{"type":82,"tag":108,"props":7093,"children":7094},{},[7095],{"type":88,"value":7096},"Astro",{"type":88,"value":7079},{"type":82,"tag":460,"props":7099,"children":7100},{},[7101,7106],{"type":82,"tag":108,"props":7102,"children":7103},{},[7104],{"type":88,"value":7105},"Laravel",{"type":88,"value":7107}," — Full support (via Inertia)",{"type":82,"tag":460,"props":7109,"children":7110},{},[7111,7116],{"type":82,"tag":108,"props":7112,"children":7113},{},[7114],{"type":88,"value":7115},"TanStack Start",{"type":88,"value":7079},{"type":82,"tag":96,"props":7118,"children":7120},{"id":7119},"presets-cli-v4",[7121],{"type":88,"value":7122},"Presets (CLI v4)",{"type":82,"tag":90,"props":7124,"children":7125},{},[7126],{"type":88,"value":7127},"Presets bundle your entire design system config (colors, theme, icon library, fonts, radius) into a single shareable code. One string configures everything:",{"type":82,"tag":156,"props":7129,"children":7131},{"className":158,"code":7130,"language":160,"meta":161,"style":161},"# Apply a preset during init\nnpx shadcn@latest init --preset \u003Ccode>\n\n# Switch presets in an existing project (reconfigures everything including components)\nnpx shadcn@latest init --preset \u003Ccode>\n",[7132],{"type":82,"tag":139,"props":7133,"children":7134},{"__ignoreMap":161},[7135,7143,7178,7185,7193],{"type":82,"tag":167,"props":7136,"children":7137},{"class":169,"line":170},[7138],{"type":82,"tag":167,"props":7139,"children":7140},{"style":174},[7141],{"type":88,"value":7142},"# Apply a preset during init\n",{"type":82,"tag":167,"props":7144,"children":7145},{"class":169,"line":180},[7146,7150,7154,7158,7162,7166,7170,7174],{"type":82,"tag":167,"props":7147,"children":7148},{"style":184},[7149],{"type":88,"value":187},{"type":82,"tag":167,"props":7151,"children":7152},{"style":190},[7153],{"type":88,"value":193},{"type":82,"tag":167,"props":7155,"children":7156},{"style":190},[7157],{"type":88,"value":198},{"type":82,"tag":167,"props":7159,"children":7160},{"style":190},[7161],{"type":88,"value":243},{"type":82,"tag":167,"props":7163,"children":7164},{"style":246},[7165],{"type":88,"value":249},{"type":82,"tag":167,"props":7167,"children":7168},{"style":190},[7169],{"type":88,"value":254},{"type":82,"tag":167,"props":7171,"children":7172},{"style":257},[7173],{"type":88,"value":260},{"type":82,"tag":167,"props":7175,"children":7176},{"style":246},[7177],{"type":88,"value":3391},{"type":82,"tag":167,"props":7179,"children":7180},{"class":169,"line":206},[7181],{"type":82,"tag":167,"props":7182,"children":7183},{"emptyLinePlaceholder":210},[7184],{"type":88,"value":213},{"type":82,"tag":167,"props":7186,"children":7187},{"class":169,"line":216},[7188],{"type":82,"tag":167,"props":7189,"children":7190},{"style":174},[7191],{"type":88,"value":7192},"# Switch presets in an existing project (reconfigures everything including components)\n",{"type":82,"tag":167,"props":7194,"children":7195},{"class":169,"line":225},[7196,7200,7204,7208,7212,7216,7220,7224],{"type":82,"tag":167,"props":7197,"children":7198},{"style":184},[7199],{"type":88,"value":187},{"type":82,"tag":167,"props":7201,"children":7202},{"style":190},[7203],{"type":88,"value":193},{"type":82,"tag":167,"props":7205,"children":7206},{"style":190},[7207],{"type":88,"value":198},{"type":82,"tag":167,"props":7209,"children":7210},{"style":190},[7211],{"type":88,"value":243},{"type":82,"tag":167,"props":7213,"children":7214},{"style":246},[7215],{"type":88,"value":249},{"type":82,"tag":167,"props":7217,"children":7218},{"style":190},[7219],{"type":88,"value":254},{"type":82,"tag":167,"props":7221,"children":7222},{"style":257},[7223],{"type":88,"value":260},{"type":82,"tag":167,"props":7225,"children":7226},{"style":246},[7227],{"type":88,"value":3391},{"type":82,"tag":90,"props":7229,"children":7230},{},[7231,7233,7239],{"type":88,"value":7232},"Build custom presets on ",{"type":82,"tag":139,"props":7234,"children":7236},{"className":7235},[],[7237],{"type":88,"value":7238},"shadcn\u002Fcreate",{"type":88,"value":7240}," — preview how colors, fonts, and radius apply to real components before publishing.",{"type":82,"tag":96,"props":7242,"children":7244},{"id":7243},"rtl-support-2026",[7245],{"type":88,"value":7246},"RTL Support (2026)",{"type":82,"tag":90,"props":7248,"children":7249},{},[7250],{"type":88,"value":7251},"The CLI handles RTL transformation at install time:",{"type":82,"tag":156,"props":7253,"children":7255},{"className":158,"code":7254,"language":160,"meta":161,"style":161},"npx shadcn@latest migrate rtl\n",[7256],{"type":82,"tag":139,"props":7257,"children":7258},{"__ignoreMap":161},[7259],{"type":82,"tag":167,"props":7260,"children":7261},{"class":169,"line":170},[7262,7266,7270,7274],{"type":82,"tag":167,"props":7263,"children":7264},{"style":184},[7265],{"type":88,"value":187},{"type":82,"tag":167,"props":7267,"children":7268},{"style":190},[7269],{"type":88,"value":193},{"type":82,"tag":167,"props":7271,"children":7272},{"style":190},[7273],{"type":88,"value":1311},{"type":82,"tag":167,"props":7275,"children":7276},{"style":190},[7277],{"type":88,"value":7278}," rtl\n",{"type":82,"tag":90,"props":7280,"children":7281},{},[7282,7284,7290,7291,7297,7299,7305,7306,7312],{"type":88,"value":7283},"Converts directional classes (",{"type":82,"tag":139,"props":7285,"children":7287},{"className":7286},[],[7288],{"type":88,"value":7289},"ml-4",{"type":88,"value":525},{"type":82,"tag":139,"props":7292,"children":7294},{"className":7293},[],[7295],{"type":88,"value":7296},"left-2",{"type":88,"value":7298},") to logical properties (",{"type":82,"tag":139,"props":7300,"children":7302},{"className":7301},[],[7303],{"type":88,"value":7304},"ms-4",{"type":88,"value":525},{"type":82,"tag":139,"props":7307,"children":7309},{"className":7308},[],[7310],{"type":88,"value":7311},"start-2",{"type":88,"value":7313},") automatically.",{"type":82,"tag":96,"props":7315,"children":7317},{"id":7316},"official-documentation",[7318],{"type":88,"value":7319},"Official Documentation",{"type":82,"tag":456,"props":7321,"children":7322},{},[7323,7334,7343,7353,7362,7372,7382],{"type":82,"tag":460,"props":7324,"children":7325},{},[7326],{"type":82,"tag":7327,"props":7328,"children":7332},"a",{"href":7329,"rel":7330},"https:\u002F\u002Fui.shadcn.com",[7331],"nofollow",[7333],{"type":88,"value":21},{"type":82,"tag":460,"props":7335,"children":7336},{},[7337],{"type":82,"tag":7327,"props":7338,"children":7340},{"href":43,"rel":7339},[7331],[7341],{"type":88,"value":7342},"Components",{"type":82,"tag":460,"props":7344,"children":7345},{},[7346],{"type":82,"tag":7327,"props":7347,"children":7350},{"href":7348,"rel":7349},"https:\u002F\u002Fui.shadcn.com\u002Fdocs\u002Fcli",[7331],[7351],{"type":88,"value":7352},"CLI",{"type":82,"tag":460,"props":7354,"children":7355},{},[7356],{"type":82,"tag":7327,"props":7357,"children":7360},{"href":7358,"rel":7359},"https:\u002F\u002Fui.shadcn.com\u002Fdocs\u002Ftheming",[7331],[7361],{"type":88,"value":2689},{"type":82,"tag":460,"props":7363,"children":7364},{},[7365],{"type":82,"tag":7327,"props":7366,"children":7369},{"href":7367,"rel":7368},"https:\u002F\u002Fui.shadcn.com\u002Fdocs\u002Fregistry",[7331],[7370],{"type":88,"value":7371},"Custom Registry",{"type":82,"tag":460,"props":7373,"children":7374},{},[7375],{"type":82,"tag":7327,"props":7376,"children":7379},{"href":7377,"rel":7378},"https:\u002F\u002Fui.shadcn.com\u002Fdocs\u002Fdirectory",[7331],[7380],{"type":88,"value":7381},"Registry Directory",{"type":82,"tag":460,"props":7383,"children":7384},{},[7385],{"type":82,"tag":7327,"props":7386,"children":7389},{"href":7387,"rel":7388},"https:\u002F\u002Fgithub.com\u002Fshadcn-ui\u002Fui",[7331],[7390],{"type":88,"value":7391},"GitHub: shadcn\u002Fui",{"type":82,"tag":1741,"props":7393,"children":7394},{},[7395],{"type":88,"value":7396},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"items":7398,"total":7576},[7399,7420,7434,7453,7464,7479,7495,7513,7525,7544,7556,7566],{"slug":7400,"name":7400,"fn":7401,"description":7402,"org":7403,"tags":7404,"stars":7417,"repoUrl":7418,"updatedAt":7419},"next-cache-components-adoption","enable and migrate to Next.js Cache Components","Turn on Cache Components in a Next.js app and resolve the blocking routes it surfaces. Use when the user wants to enable, adopt, or migrate to Cache Components, flip the `cacheComponents` flag, work through a flood of blocking-prerender \u002F instant validation errors, run the `cache-components-instant-false` codemod, or decide between opting routes out with `export const instant = false` and fixing them in place.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[7405,7408,7411,7414,7416],{"name":7406,"slug":7407,"type":13},"Caching","caching",{"name":7409,"slug":7410,"type":13},"Frontend","frontend",{"name":7412,"slug":7413,"type":13},"Migration","migration",{"name":7067,"slug":7415,"type":13},"next-js",{"name":9,"slug":8,"type":13},141208,"https:\u002F\u002Fgithub.com\u002Fvercel\u002Fnext.js","2026-07-24T05:38:30.118542",{"slug":7421,"name":7421,"fn":7422,"description":7423,"org":7424,"tags":7425,"stars":7417,"repoUrl":7418,"updatedAt":7433},"next-cache-components-optimizer","optimize Next.js cache components","Drive a Next.js route to instant navigation by setting up an agentic loop, under Cache Components \u002F PPR, on initial load (hard navigation) and client-side navigation (soft navigation). Encode the goal as a failing @next\u002Fplaywright instant() e2e and work it to green, one verified route at a time; the shipped test then guards against regression. Use when asked to make a route's navigation instant (its static shell commits immediately), fix a route whose static shell isn't prerendered\u002Fserved\u002Fprefetched, grow a route's static shell or fix its slow first paint, diagnose which Suspense boundary keeps a route out of its static shell, or write the instant() e2e guard for one. Requires Next.js 16.3+ with cacheComponents; directs an upgrade if older.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[7426,7427,7428,7429,7432],{"name":7406,"slug":7407,"type":13},{"name":7409,"slug":7410,"type":13},{"name":7067,"slug":7415,"type":13},{"name":7430,"slug":7431,"type":13},"Performance","performance",{"name":9,"slug":8,"type":13},"2026-07-30T05:31:10.674078",{"slug":7435,"name":7435,"fn":7436,"description":7437,"org":7438,"tags":7439,"stars":7417,"repoUrl":7418,"updatedAt":7452},"next-dev-loop","verify Next.js runtime behavior","Verify Next.js runtime behavior after editing app code. Use this skill to confirm a change actually works in a running app — not just that it compiles or type-checks. Combines \u002F_next\u002Fmcp (Next.js's view) with agent-browser (the browser's view). Requires a running `next dev`.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[7440,7443,7444,7447,7448,7449],{"name":7441,"slug":7442,"type":13},"Debugging","debugging",{"name":7409,"slug":7410,"type":13},{"name":7445,"slug":7446,"type":13},"Local Development","local-development",{"name":7067,"slug":7415,"type":13},{"name":9,"slug":8,"type":13},{"name":7450,"slug":7451,"type":13},"Web Development","web-development","2026-05-22T06:45:28.627735",{"slug":7454,"name":7454,"fn":7455,"description":7456,"org":7457,"tags":7458,"stars":7417,"repoUrl":7418,"updatedAt":7463},"next-partial-prefetching-adoption","adopt Partial Prefetching in Next.js apps","Turn on Partial Prefetching in a Next.js app and work through the insights it surfaces. Use when the user wants to enable or adopt Partial Prefetching, flip the `partialPrefetching` flag, opt routes in with `export const prefetch = 'partial'`, audit `\u003CLink prefetch={true}>` calls, or resolve the link-prefetch-partial and instant-shell-url-data insights.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[7459,7460,7461,7462],{"name":7409,"slug":7410,"type":13},{"name":7067,"slug":7415,"type":13},{"name":7430,"slug":7431,"type":13},{"name":9,"slug":8,"type":13},"2026-07-30T05:31:11.591864",{"slug":7465,"name":7465,"fn":7466,"description":7467,"org":7468,"tags":7469,"stars":7476,"repoUrl":7477,"updatedAt":7478},"turborepo","manage monorepos with Turborepo","Turborepo monorepo build system guidance. Triggers on: turbo.json, task pipelines,\ndependsOn, caching, remote cache, the \"turbo\" CLI, --filter, --affected, CI optimization, environment\nvariables, internal packages, monorepo structure\u002Fbest practices, and boundaries.\n\nUse when user: configures tasks\u002Fworkflows\u002Fpipelines, creates packages, sets up\nmonorepo, shares code between apps, runs changed\u002Faffected packages, debugs cache,\nor has apps\u002Fpackages directories.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[7470,7473,7474],{"name":7471,"slug":7472,"type":13},"CI\u002FCD","ci-cd",{"name":7430,"slug":7431,"type":13},{"name":7475,"slug":7465,"type":13},"Turborepo",30809,"https:\u002F\u002Fgithub.com\u002Fvercel\u002Fturborepo","2026-07-30T05:32:14.920116",{"slug":7480,"name":7480,"fn":7481,"description":7482,"org":7483,"tags":7484,"stars":7492,"repoUrl":7493,"updatedAt":7494},"add-function-examples","add AI function examples for testing","Guide for adding new AI function examples, for testing specific features against the actual provider APIs.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[7485,7488,7491],{"name":7486,"slug":7487,"type":13},"AI SDK","ai-sdk",{"name":7489,"slug":7490,"type":13},"Testing","testing",{"name":9,"slug":8,"type":13},25670,"https:\u002F\u002Fgithub.com\u002Fvercel\u002Fai","2026-04-06T18:55:51.318866",{"slug":7496,"name":7496,"fn":7497,"description":7498,"org":7499,"tags":7500,"stars":7492,"repoUrl":7493,"updatedAt":7512},"add-harness-package","add AI SDK harness packages","Guide for adding new AI SDK harness packages. Use when creating a new @ai-sdk\u002Fharness-\u003Cname> package that adapts a coding-agent runtime to HarnessV1.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[7501,7504,7505,7508,7511],{"name":7502,"slug":7503,"type":13},"Agents","agents",{"name":7486,"slug":7487,"type":13},{"name":7506,"slug":7507,"type":13},"Harness","harness",{"name":7509,"slug":7510,"type":13},"SDK","sdk",{"name":9,"slug":8,"type":13},"2026-06-18T08:29:19.858737",{"slug":7514,"name":7514,"fn":7515,"description":7516,"org":7517,"tags":7518,"stars":7492,"repoUrl":7493,"updatedAt":7524},"add-provider-package","add new provider packages to AI SDK","Guide for adding new AI provider packages to the AI SDK. Use when creating a new @ai-sdk\u002F\u003Cprovider> package to integrate an AI service into the SDK.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[7519,7520,7523],{"name":7486,"slug":7487,"type":13},{"name":7521,"slug":7522,"type":13},"API Development","api-development",{"name":9,"slug":8,"type":13},"2026-04-06T18:55:47.45549",{"slug":7526,"name":7526,"fn":7527,"description":7528,"org":7529,"tags":7530,"stars":7492,"repoUrl":7493,"updatedAt":7543},"adr-skill","create and maintain architecture decision records","Create and maintain Architecture Decision Records (ADRs) optimized for agentic coding workflows. Use when you need to propose, write, update, accept\u002Freject, deprecate, or supersede an ADR; bootstrap an adr folder and index; consult existing ADRs before implementing changes; or enforce ADR conventions. This skill uses Socratic questioning to capture intent before drafting, and validates output against an agent-readiness checklist.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[7531,7534,7537,7540],{"name":7532,"slug":7533,"type":13},"ADR","adr",{"name":7535,"slug":7536,"type":13},"Architecture","architecture",{"name":7538,"slug":7539,"type":13},"Documentation","documentation",{"name":7541,"slug":7542,"type":13},"Engineering","engineering","2026-04-06T18:55:50.043694",{"slug":7487,"name":7487,"fn":7545,"description":7546,"org":7547,"tags":7548,"stars":7492,"repoUrl":7493,"updatedAt":7555},"build AI features with Vercel AI SDK","Answer questions about the AI SDK and help build AI-powered features. Use when developers: (1) Ask about AI SDK functions like generateText, streamText, ToolLoopAgent, embed, or tools, (2) Want to build AI agents, chatbots, RAG systems, or text generation features, (3) Have questions about AI providers (OpenAI, Anthropic, Google, etc.), streaming, tool calling, structured output, or embeddings, (4) Use React hooks like useChat or useCompletion. Triggers on: \"AI SDK\", \"Vercel AI SDK\", \"generateText\", \"streamText\", \"add AI to my app\", \"build an agent\", \"tool calling\", \"structured output\", \"useChat\".",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[7549,7550,7551,7554],{"name":7502,"slug":7503,"type":13},{"name":7486,"slug":7487,"type":13},{"name":7552,"slug":7553,"type":13},"LLM","llm",{"name":9,"slug":8,"type":13},"2026-04-06T18:55:48.739463",{"slug":7557,"name":7557,"fn":7558,"description":7559,"org":7560,"tags":7561,"stars":7492,"repoUrl":7493,"updatedAt":7565},"capture-api-response-test-fixture","capture API response test fixtures","Capture API response test fixture.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[7562,7563,7564],{"name":7521,"slug":7522,"type":13},{"name":7489,"slug":7490,"type":13},{"name":9,"slug":8,"type":13},"2026-04-06T18:55:56.374433",{"slug":7567,"name":7567,"fn":7568,"description":7569,"org":7570,"tags":7571,"stars":7492,"repoUrl":7493,"updatedAt":7575},"develop-ai-functions-example","develop AI SDK function examples","Develop examples for AI SDK functions. Use when creating, running, or modifying examples under examples\u002Fai-functions\u002Fsrc to validate provider support, demonstrate features, or create test fixtures.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[7572,7573,7574],{"name":7486,"slug":7487,"type":13},{"name":7489,"slug":7490,"type":13},{"name":9,"slug":8,"type":13},"2026-04-06T18:55:55.088956",68,{"items":7578,"total":7677},[7579,7594,7612,7627,7640,7653,7666],{"slug":7580,"name":7580,"fn":7581,"description":7582,"org":7583,"tags":7584,"stars":26,"repoUrl":27,"updatedAt":7593},"ai-gateway","configure and manage Vercel AI Gateway","Vercel AI Gateway expert guidance. Use when configuring model routing, provider failover, cost tracking, or managing multiple AI providers through a unified API.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[7585,7588,7591,7592],{"name":7586,"slug":7587,"type":13},"AI Infrastructure","ai-infrastructure",{"name":7589,"slug":7590,"type":13},"Cost Optimization","cost-optimization",{"name":7552,"slug":7553,"type":13},{"name":9,"slug":8,"type":13},"2026-04-06T18:56:06.57787",{"slug":7595,"name":7595,"fn":7596,"description":7597,"org":7598,"tags":7599,"stars":26,"repoUrl":27,"updatedAt":7611},"auth","integrate authentication in Next.js apps","Authentication integration guidance — Clerk (native Vercel Marketplace), Descope, and Auth0 setup for Next.js applications. Covers middleware auth patterns, sign-in\u002Fsign-up flows, and Marketplace provisioning. Use when implementing user authentication.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[7600,7603,7606,7607,7610],{"name":7601,"slug":7602,"type":13},"Auth0","auth0",{"name":7604,"slug":7605,"type":13},"Authentication","authentication",{"name":7067,"slug":7415,"type":13},{"name":7608,"slug":7609,"type":13},"Security","security",{"name":9,"slug":8,"type":13},"2026-04-06T18:56:17.050565",{"slug":7613,"name":7613,"fn":7614,"description":7615,"org":7616,"tags":7617,"stars":26,"repoUrl":27,"updatedAt":7626},"bootstrap","bootstrap Vercel-linked repositories","Project bootstrapping orchestrator for repos that depend on Vercel-linked resources (databases, auth, and managed integrations). Use when setting up or repairing a repository so linking, environment provisioning, env pulls, and first-run db\u002Fdev commands happen in the correct safe order.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[7618,7621,7624,7625],{"name":7619,"slug":7620,"type":13},"Configuration","configuration",{"name":7622,"slug":7623,"type":13},"Deployment","deployment",{"name":7445,"slug":7446,"type":13},{"name":9,"slug":8,"type":13},"2026-04-06T18:56:18.297868",{"slug":7628,"name":7628,"fn":7629,"description":7630,"org":7631,"tags":7632,"stars":26,"repoUrl":27,"updatedAt":7639},"cdn-caching","debug Vercel CDN caching behavior","Debug Vercel CDN caching — cache hit rate, stale content, revalidation behavior, ISR + PPR, per-request cache reasons (cacheReason) and PPR state (ppr_state), and costs.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[7633,7634,7637,7638],{"name":7406,"slug":7407,"type":13},{"name":7635,"slug":7636,"type":13},"Observability","observability",{"name":7430,"slug":7431,"type":13},{"name":9,"slug":8,"type":13},"2026-07-30T05:31:34.628944",{"slug":7641,"name":7641,"fn":7642,"description":7643,"org":7644,"tags":7645,"stars":26,"repoUrl":27,"updatedAt":7652},"chat-sdk","build multi-platform chatbots with Vercel","Vercel Chat SDK expert guidance. Use when building multi-platform chat bots — Slack, Telegram, Microsoft Teams, Discord, Google Chat, GitHub, Linear — with a single codebase. Covers the Chat class, adapters, threads, messages, cards, modals, streaming, state management, and webhook setup.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[7646,7647,7650,7651],{"name":7502,"slug":7503,"type":13},{"name":7648,"slug":7649,"type":13},"Messaging","messaging",{"name":7509,"slug":7510,"type":13},{"name":9,"slug":8,"type":13},"2026-04-06T18:56:26.921901",{"slug":7654,"name":7654,"fn":7655,"description":7656,"org":7657,"tags":7658,"stars":26,"repoUrl":27,"updatedAt":7665},"deployments-cicd","manage Vercel deployments and CI\u002FCD","Vercel deployment and CI\u002FCD expert guidance. Use when deploying, promoting, rolling back, inspecting deployments, building with --prebuilt, or configuring CI workflow files for Vercel.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[7659,7660,7661,7664],{"name":7471,"slug":7472,"type":13},{"name":7622,"slug":7623,"type":13},{"name":7662,"slug":7663,"type":13},"Operations","operations",{"name":9,"slug":8,"type":13},"2026-04-06T18:56:22.054263",{"slug":7667,"name":7667,"fn":7668,"description":7669,"org":7670,"tags":7671,"stars":26,"repoUrl":27,"updatedAt":7676},"env-vars","manage Vercel environment variables","Vercel environment variable expert guidance. Use when working with .env files, vercel env commands, OIDC tokens, or managing environment-specific configuration.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[7672,7673,7674,7675],{"name":7619,"slug":7620,"type":13},{"name":7662,"slug":7663,"type":13},{"name":7608,"slug":7609,"type":13},{"name":9,"slug":8,"type":13},"2026-04-06T18:56:28.150777",29]