diff --git a/.github/workflows/deprecated.yml b/.github/workflows/deprecated.yml
deleted file mode 100644
index aa0add515a..0000000000
--- a/.github/workflows/deprecated.yml
+++ /dev/null
@@ -1,78 +0,0 @@
-name: Deprecated
-
-on:
- pull_request_target:
- types: [opened, synchronize]
-
-permissions:
- issues: write
- contents: read
- pull-requests: write
-
-jobs:
- deprecated:
- runs-on: ubuntu-latest
- steps:
- - name: Checkout PR
- uses: actions/checkout@v4
- with:
- ref: ${{ github.event.pull_request.head.sha }}
- fetch-depth: 0
-
- - name: Get changed files
- id: changed-files
- uses: tj-actions/changed-files@v46
- with:
- files: |
- apps/www/**
- files_ignore: |
- apps/www/public/r/**
- base_sha: ${{ github.event.pull_request.base.sha }}
- sha: ${{ github.event.pull_request.head.sha }}
-
- - name: Comment on PR if www files changed
- if: steps.changed-files.outputs.any_changed == 'true'
- uses: actions/github-script@v7
- with:
- github-token: ${{ secrets.GITHUB_TOKEN }}
- script: |
- const changedFiles = `${{ steps.changed-files.outputs.all_changed_files }}`.split(' ');
- const wwwFiles = changedFiles.filter(file =>
- file.startsWith('apps/www/') &&
- !file.startsWith('apps/www/public/r/') &&
- file !== 'apps/www/package.json'
- );
-
- if (wwwFiles.length > 0) {
- const comment = `Looks like this PR modifies files in \`apps/www\`, which is deprecated.
-
- Consider applying the change to \`apps/v4\` if relevant.`;
-
- await github.rest.issues.createComment({
- owner: context.repo.owner,
- repo: context.repo.repo,
- issue_number: context.issue.number,
- body: comment
- });
-
- // Add deprecated label
- await github.rest.issues.addLabels({
- owner: context.repo.owner,
- repo: context.repo.repo,
- issue_number: context.issue.number,
- labels: ['deprecated']
- });
- } else {
- // Remove deprecated label if no www files are changed
- try {
- await github.rest.issues.removeLabel({
- owner: context.repo.owner,
- repo: context.repo.repo,
- issue_number: context.issue.number,
- name: 'deprecated'
- });
- } catch (error) {
- // Label doesn't exist, which is fine
- console.log('Deprecated label not found, skipping removal');
- }
- }
diff --git a/deprecated/cli/.gitignore b/deprecated/cli/.gitignore
deleted file mode 100644
index dac6408c69..0000000000
--- a/deprecated/cli/.gitignore
+++ /dev/null
@@ -1,3 +0,0 @@
-components
-dist
-.turbo
\ No newline at end of file
diff --git a/deprecated/cli/.prettierignore b/deprecated/cli/.prettierignore
deleted file mode 100644
index 30d74d2584..0000000000
--- a/deprecated/cli/.prettierignore
+++ /dev/null
@@ -1 +0,0 @@
-test
\ No newline at end of file
diff --git a/deprecated/cli/CHANGELOG.md b/deprecated/cli/CHANGELOG.md
deleted file mode 100644
index f5aa040454..0000000000
--- a/deprecated/cli/CHANGELOG.md
+++ /dev/null
@@ -1,185 +0,0 @@
-# shadcn-ui
-
-## 0.9.5
-
-`shadcn-ui` is deprecated. Use the `shadcn` CLI instead.
-
-## 0.9.4
-
-### Patch Changes
-
-- [#4397](https://github.com/shadcn-ui/ui/pull/4397) [`a1bed46`](https://github.com/shadcn-ui/ui/commit/a1bed464f329e9025a7fa1ae7dee094d4c9c6f44) Thanks [@JensAstrup](https://github.com/JensAstrup)! - replace lodash.template
-
-## 0.9.3
-
-### Patch Changes
-
-- [#5602](https://github.com/shadcn-ui/ui/pull/5602) [`2c2fe97`](https://github.com/shadcn-ui/ui/commit/2c2fe97eb96b2c5c7d03d1ae2756a851c3790030) Thanks [@shadcn](https://github.com/shadcn)! - move new-york icons to lucide-react
-
-## 0.9.2
-
-### Patch Changes
-
-- [#4988](https://github.com/shadcn-ui/ui/pull/4988) [`5fc9ade`](https://github.com/shadcn-ui/ui/commit/5fc9ade413ea10da422a2439b5cc2027fb2a055e) Thanks [@shadcn](https://github.com/shadcn)! - add deprecation notice
-
-## 0.9.1
-
-### Patch Changes
-
-- [#4797](https://github.com/shadcn-ui/ui/pull/4797) [`207b69f`](https://github.com/shadcn-ui/ui/commit/207b69fe8dd59b10dddc9337d333416976e2a30d) Thanks [@Wiper-R](https://github.com/Wiper-R)! - add scss support
-
-## 0.9.0
-
-### Minor Changes
-
-- [#4569](https://github.com/shadcn-ui/ui/pull/4569) [`a62a155`](https://github.com/shadcn-ui/ui/commit/a62a155aac6409d41ea27529be2eef65e3db2723) Thanks [@shadcn](https://github.com/shadcn)! - Add support for frameworks
-
-### Patch Changes
-
-- [#2473](https://github.com/shadcn-ui/ui/pull/2473) [`343b20f`](https://github.com/shadcn-ui/ui/commit/343b20fc5c49ee8968fe56e42527ba1cc8ede0ec) Thanks [@kevinmitch14](https://github.com/kevinmitch14)! - update zod imports
-
-## 0.8.0
-
-### Minor Changes
-
-- [#2454](https://github.com/shadcn-ui/ui/pull/2454) [`0374ba8`](https://github.com/shadcn-ui/ui/commit/0374ba874d1c76ae08660c655aea6cdf7a7817f6) Thanks [@shadcn](https://github.com/shadcn)! - add automatic config detection for Next.js
-
-## 0.7.0
-
-### Minor Changes
-
-- [#2419](https://github.com/shadcn-ui/ui/pull/2419) [`7640ef7`](https://github.com/shadcn-ui/ui/commit/7640ef7bbc5fea280a8b5227a2455bb840478573) Thanks [@shadcn](https://github.com/shadcn)! - add support for devDependencies
-
-## 0.6.0
-
-### Minor Changes
-
-- [#2266](https://github.com/shadcn-ui/ui/pull/2266) [`be580db`](https://github.com/shadcn-ui/ui/commit/be580dbf7671b7db84282aa3554b62304e668414) Thanks [@shadcn](https://github.com/shadcn)! - add support for custom ui dir
-
-## 0.5.0
-
-### Minor Changes
-
-- [#770](https://github.com/shadcn-ui/ui/pull/770) [`4fb98d5`](https://github.com/shadcn-ui/ui/commit/4fb98d520f2322f59bf2ae0bbbee706760df48a2) Thanks [@Bekacru](https://github.com/Bekacru)! - add support for custom tailwind prefix
-
-- [#1247](https://github.com/shadcn-ui/ui/pull/1247) [`4ec8a67`](https://github.com/shadcn-ui/ui/commit/4ec8a67dab94d0c2bcda2396d01174abee0991a0) Thanks [@lukahartwig](https://github.com/lukahartwig)! - add support for tailwind.config.ts
-
-### Patch Changes
-
-- [#1707](https://github.com/shadcn-ui/ui/pull/1707) [`46f247c`](https://github.com/shadcn-ui/ui/commit/46f247c47f87f771d98cc77bddb5697dac200de4) Thanks [@caiquecastro](https://github.com/caiquecastro)! - fix code style
-
-- [#1696](https://github.com/shadcn-ui/ui/pull/1696) [`5a13def`](https://github.com/shadcn-ui/ui/commit/5a13def46d9b91d19ad1bcab6cc2955007dfdf61) Thanks [@KMJ-007](https://github.com/KMJ-007)! - use jsconfig for non-ts projects
-
-## 0.4.1
-
-### Patch Changes
-
-- [#1662](https://github.com/shadcn-ui/ui/pull/1662) [`95a9673`](https://github.com/shadcn-ui/ui/commit/95a9673b1ec6a1954d941d35624ad2cd93faccc4) Thanks [@shadcn](https://github.com/shadcn)! - minify build
-
-## 0.4.0
-
-### Minor Changes
-
-- [#1554](https://github.com/shadcn-ui/ui/pull/1554) [`2f0dbca`](https://github.com/shadcn-ui/ui/commit/2f0dbca22180507c20088f595613481adcfb51ed) Thanks [@shadcn](https://github.com/shadcn)! - do not ask for confirmation
-
-- [#1033](https://github.com/shadcn-ui/ui/pull/1033) [`963114e`](https://github.com/shadcn-ui/ui/commit/963114e118a2263f4ee449cc07b0f6f7e5104bc1) Thanks [@sramam](https://github.com/sramam)! - add --all option
-
-- [#973](https://github.com/shadcn-ui/ui/pull/973) [`58d012e`](https://github.com/shadcn-ui/ui/commit/58d012e342d2563b4c43ed2ac18879a6d5044980) Thanks [@plbstl](https://github.com/plbstl)! - ask for overwrite
-
-### Patch Changes
-
-- [#1466](https://github.com/shadcn-ui/ui/pull/1466) [`0a42865`](https://github.com/shadcn-ui/ui/commit/0a4286500ee06289eccde8fe9257c169b47dbc93) Thanks [@c0b41](https://github.com/c0b41)! - fix file extension
-
-- [#1555](https://github.com/shadcn-ui/ui/pull/1555) [`d3d52fc`](https://github.com/shadcn-ui/ui/commit/d3d52fc68723a895ddad99e1f5c9420d981d3387) Thanks [@shadcn](https://github.com/shadcn)! - update README
-
-- [#1319](https://github.com/shadcn-ui/ui/pull/1319) [`4506822`](https://github.com/shadcn-ui/ui/commit/450682238922bf025ff919f0a84147894710fb71) Thanks [@K-Sato1995](https://github.com/K-Sato1995)! - remove duplicate vi call
-
-- [#1089](https://github.com/shadcn-ui/ui/pull/1089) [`ae84578`](https://github.com/shadcn-ui/ui/commit/ae845788f688d60f0e8ac020e16a4bd357978baf) Thanks [@santidalmasso](https://github.com/santidalmasso)! - fix duplicate classnames
-
-## 0.3.0
-
-### Minor Changes
-
-- [#834](https://github.com/shadcn/ui/pull/834) [`edc653c`](https://github.com/shadcn/ui/commit/edc653c01e6d4d5a51f3e414f2aeeb77af758257) Thanks [@shadcn](https://github.com/shadcn)! - add support for jsx
-
-## 0.2.3
-
-### Patch Changes
-
-- [#707](https://github.com/shadcn/ui/pull/707) [`c337753`](https://github.com/shadcn/ui/commit/c3377530f43baa95c9e41cce7c07b1a4db1e3ee6) Thanks [@MarkLyck](https://github.com/MarkLyck)! - fix(cli): use bun add when bun detected
-
-## 0.2.2
-
-### Patch Changes
-
-- [#677](https://github.com/shadcn/ui/pull/677) [`0f84973`](https://github.com/shadcn/ui/commit/0f84973b4d779d16efe3877b9206ea908261ed8f) Thanks [@Xenfo](https://github.com/Xenfo)! - fix(cli): use `@antfu/ni` to detect package manager
-
-- [#681](https://github.com/shadcn/ui/pull/681) [`1971fa7`](https://github.com/shadcn/ui/commit/1971fa7511a22354a9acda12391b55517a261668) Thanks [@dan5py](https://github.com/dan5py)! - use slash for alpha modifier
-
-- [#682](https://github.com/shadcn/ui/pull/682) [`fbed50f`](https://github.com/shadcn/ui/commit/fbed50f4e8d4fc8a4736c2a80b5c61c9b3f5e05a) Thanks [@dan5py](https://github.com/dan5py)! - fix cssVars template typo
-
-## 0.2.1
-
-### Patch Changes
-
-- [#641](https://github.com/shadcn/ui/pull/641) [`658c710`](https://github.com/shadcn/ui/commit/658c710bced7b827a0d32dbcda03a4136961dff1) Thanks [@shadcn](https://github.com/shadcn)! - everything is new
-
-## 0.2.0
-
-### Minor Changes
-
-- [#637](https://github.com/shadcn/ui/pull/637) [`eeb1754`](https://github.com/shadcn/ui/commit/eeb17545a16824e11d09149a5ecab9fca570c448) Thanks [@shadcn](https://github.com/shadcn)! - everything is new
-
-## 0.1.3
-
-### Patch Changes
-
-- [#259](https://github.com/shadcn/ui/pull/259) [`87ad14c`](https://github.com/shadcn/ui/commit/87ad14cb2a27ee2d1000344cbe5f8f4fdbfc939a) Thanks [@ghoshnirmalya](https://github.com/ghoshnirmalya)! - add missing deps for button
-
-## 0.1.2
-
-### Patch Changes
-
-- [#271](https://github.com/shadcn/ui/pull/271) [`888a5ad`](https://github.com/shadcn/ui/commit/888a5ad6f602371a27cc88a2573993d5818e745c) Thanks [@shadcn](https://github.com/shadcn)! - fix card color
-
-## 0.1.1
-
-### Patch Changes
-
-- [#205](https://github.com/shadcn/ui/pull/205) [`dc573c7`](https://github.com/shadcn/ui/commit/dc573c7e9ecf73a9a8f53320bc4f5db17d7bd2b3) Thanks [@shadcn](https://github.com/shadcn)! - fix changeset config
-
-- [#204](https://github.com/shadcn/ui/pull/204) [`68e1c56`](https://github.com/shadcn/ui/commit/68e1c5624a35edb3c38e5f739acf3387fdca541c) Thanks [@shadcn](https://github.com/shadcn)! - update typescript
-
-- [#203](https://github.com/shadcn/ui/pull/203) [`acf4ae7`](https://github.com/shadcn/ui/commit/acf4ae79cb734671a5b5c227b5009f38b59e3f19) Thanks [@shadcn](https://github.com/shadcn)! - update readme
-
-- [#197](https://github.com/shadcn/ui/pull/197) [`4a794a3`](https://github.com/shadcn/ui/commit/4a794a354f3e03b76cba32049971afc2f6986080) Thanks [@shadcn](https://github.com/shadcn)! - update init message
-
-## 0.1.0
-
-### Minor Changes
-
-- [#178](https://github.com/shadcn/ui/pull/178) [`96f300e`](https://github.com/shadcn/ui/commit/96f300ea7471de9de9d433114d010d8fef2c8bae) Thanks [@shadcn](https://github.com/shadcn)! - add init command
-
-### Patch Changes
-
-- [#175](https://github.com/shadcn/ui/pull/175) [`b5d4368`](https://github.com/shadcn/ui/commit/b5d43688b975eb66b95b71af0396d07f94dde247) Thanks [@shadcn](https://github.com/shadcn)! - rename package to shadcn-ui
-
-## 0.0.4
-
-### Patch Changes
-
-- [#118](https://github.com/shadcn/ui/pull/118) [`712e625`](https://github.com/shadcn/ui/commit/712e625d485a0d7ac77fea4d5077d9ec7a33c513) Thanks [@shadcn](https://github.com/shadcn)! - add warning for command
-
-## 0.0.3
-
-### Patch Changes
-
-- [#115](https://github.com/shadcn/ui/pull/115) [`92fe541`](https://github.com/shadcn/ui/commit/92fe54184b5e9b5ac7259829436d7786a52606b3) Thanks [@shadcn](https://github.com/shadcn)! - Initial commit.
-
-- [#115](https://github.com/shadcn/ui/pull/115) [`92fe541`](https://github.com/shadcn/ui/commit/92fe54184b5e9b5ac7259829436d7786a52606b3) Thanks [@shadcn](https://github.com/shadcn)! - implement component base url
-
-## 0.0.2
-
-### Patch Changes
-
-- [#112](https://github.com/shadcn/ui/pull/112) [`be701cf`](https://github.com/shadcn/ui/commit/be701cf139e0acc0ced3e161d246f7b2b53dccbe) Thanks [@shadcn](https://github.com/shadcn)! - Initial commit.
diff --git a/deprecated/cli/README.md b/deprecated/cli/README.md
deleted file mode 100644
index 58eebf3daa..0000000000
--- a/deprecated/cli/README.md
+++ /dev/null
@@ -1,14 +0,0 @@
-# shadcn-ui
-
-> [!WARNING]
-> The shadcn-ui CLI is going to be deprecated soon. See [shadcn](https://ui.shadcn.com/docs/cli) for more information.
-
-Bug fixes and new features should be added to the `.packages/shadcn` instead.
-
-## Documentation
-
-Visit https://ui.shadcn.com/docs/cli to view the documentation.
-
-## License
-
-Licensed under the [MIT license](https://github.com/shadcn/ui/blob/main/LICENSE.md).
diff --git a/deprecated/cli/package.json b/deprecated/cli/package.json
deleted file mode 100644
index dd1fd6097d..0000000000
--- a/deprecated/cli/package.json
+++ /dev/null
@@ -1,46 +0,0 @@
-{
- "name": "shadcn-ui",
- "version": "0.9.5",
- "description": "Add components to your apps.",
- "publishConfig": {
- "access": "public"
- },
- "license": "MIT",
- "author": {
- "name": "shadcn",
- "url": "https://twitter.com/shadcn"
- },
- "repository": {
- "type": "git",
- "url": "https://github.com/shadcn/ui.git",
- "directory": "packages/cli"
- },
- "files": [
- "dist"
- ],
- "keywords": [
- "components",
- "ui",
- "tailwind",
- "shadcn"
- ],
- "type": "module",
- "exports": "./dist/index.js",
- "bin": "./dist/index.js",
- "scripts": {
- "dev": "tsup --watch",
- "build": "tsup",
- "typecheck": "tsc --noEmit",
- "start:dev": "cross-env COMPONENTS_REGISTRY_URL=http://localhost:3003 node dist/index.js",
- "start": "node dist/index.js",
- "format:write": "prettier --write \"**/*.{ts,tsx,mdx}\" --cache",
- "format:check": "prettier --check \"**/*.{ts,tsx,mdx}\" --cache",
- "test": "vitest run"
- },
- "dependencies": {
- "chalk": "^5.4.1"
- },
- "devDependencies": {
- "tsup": "^6.6.3"
- }
-}
diff --git a/deprecated/cli/src/index.ts b/deprecated/cli/src/index.ts
deleted file mode 100644
index db28649e03..0000000000
--- a/deprecated/cli/src/index.ts
+++ /dev/null
@@ -1,39 +0,0 @@
-#!/usr/bin/env node
-import chalk from "chalk"
-
-function getInvoker() {
- const args = process.argv.slice(2)
- const env = process.env
- const npmExecPath = env.npm_execpath || ""
- const packageName = "shadcn@latest"
-
- if (npmExecPath.includes("pnpm")) {
- return `pnpm dlx ${packageName}${args.length ? ` ${args.join(" ")}` : ""}`
- } else if (npmExecPath.includes("yarn")) {
- return `yarn dlx ${packageName}${args.length ? ` ${args.join(" ")}` : ""}`
- } else if (npmExecPath.includes("bun")) {
- return `bunx ${packageName}${args.length ? ` ${args.join(" ")}` : ""}`
- } else {
- return `npx ${packageName}${args.length ? ` ${args.join(" ")}` : ""}`
- }
-}
-
-const main = async () => {
- console.log(
- chalk.yellow(
- "The 'shadcn-ui' package is deprecated. Please use the 'shadcn' package instead:"
- )
- )
- console.log("")
- console.log(chalk.green(` ${getInvoker()}`))
- console.log("")
- console.log(
- chalk.yellow("For more information, visit: https://ui.shadcn.com/docs/cli")
- )
- console.log("")
-}
-
-main().catch((error) => {
- console.error(chalk.red("Error:"), error.message)
- process.exit(1)
-})
diff --git a/deprecated/cli/tsconfig.json b/deprecated/cli/tsconfig.json
deleted file mode 100644
index c1afb1952f..0000000000
--- a/deprecated/cli/tsconfig.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "$schema": "https://json.schemastore.org/tsconfig",
- "extends": "../../tsconfig.json",
- "compilerOptions": {
- "isolatedModules": false,
- "baseUrl": ".",
- "paths": {
- "@/*": ["./*"]
- }
- },
- "include": ["src/**/*.ts"],
- "exclude": ["node_modules"]
-}
diff --git a/deprecated/cli/tsup.config.ts b/deprecated/cli/tsup.config.ts
deleted file mode 100644
index 25261533f6..0000000000
--- a/deprecated/cli/tsup.config.ts
+++ /dev/null
@@ -1,12 +0,0 @@
-import { defineConfig } from "tsup"
-
-export default defineConfig({
- clean: true,
- dts: true,
- entry: ["src/index.ts"],
- format: ["esm", "cjs"],
- sourcemap: true,
- minify: true,
- target: "esnext",
- outDir: "dist",
-})
diff --git a/deprecated/www/.env.example b/deprecated/www/.env.example
deleted file mode 100644
index 9ea50f4d73..0000000000
--- a/deprecated/www/.env.example
+++ /dev/null
@@ -1,4 +0,0 @@
-# -----------------------------------------------------------------------------
-# App
-# -----------------------------------------------------------------------------
-NEXT_PUBLIC_APP_URL=http://localhost:3001
diff --git a/deprecated/www/.eslintrc.json b/deprecated/www/.eslintrc.json
deleted file mode 100644
index 23df755dcf..0000000000
--- a/deprecated/www/.eslintrc.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{
- "$schema": "https://json.schemastore.org/eslintrc",
- "overrides": [
- {
- "files": ["scripts/**/*.{ts,mts}"],
- "parserOptions": {
- "project": "tsconfig.scripts.json"
- }
- }
- ]
-}
diff --git a/deprecated/www/.gitignore b/deprecated/www/.gitignore
deleted file mode 100644
index a5c89361da..0000000000
--- a/deprecated/www/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-.vscode
-.env
\ No newline at end of file
diff --git a/deprecated/www/.prettierignore b/deprecated/www/.prettierignore
deleted file mode 100644
index fb41136e08..0000000000
--- a/deprecated/www/.prettierignore
+++ /dev/null
@@ -1,7 +0,0 @@
-dist
-node_modules
-.next
-build
-.contentlayer
-__registry__/index.tsx
-app/examples/mail/components/mail.tsx
diff --git a/deprecated/www/README.md b/deprecated/www/README.md
deleted file mode 100644
index 07f68ccdbb..0000000000
--- a/deprecated/www/README.md
+++ /dev/null
@@ -1,6 +0,0 @@
-# ui.shadcn.com
-
-> [!WARNING]
-> The site at ui.shadcn.com now points to `apps/v4`. All changes should be made in the `apps/v4` directory.
-
-Licensed under the [MIT license](https://github.com/shadcn/ui/blob/main/LICENSE.md).
diff --git a/deprecated/www/__registry__/.autogenerated b/deprecated/www/__registry__/.autogenerated
deleted file mode 100644
index 0055c2a3e0..0000000000
--- a/deprecated/www/__registry__/.autogenerated
+++ /dev/null
@@ -1 +0,0 @@
-// The content of this directory is autogenerated by the registry server.
diff --git a/deprecated/www/__registry__/.gitkeep b/deprecated/www/__registry__/.gitkeep
deleted file mode 100644
index e69de29bb2..0000000000
diff --git a/deprecated/www/__registry__/README.md b/deprecated/www/__registry__/README.md
deleted file mode 100644
index 5621ceace4..0000000000
--- a/deprecated/www/__registry__/README.md
+++ /dev/null
@@ -1 +0,0 @@
-> Files inside this directory is autogenerated by `./scripts/build-registry.ts`. **Do not edit them manually.** - shadcn
diff --git a/deprecated/www/__registry__/default/block/sidebar-16/page.tsx b/deprecated/www/__registry__/default/block/sidebar-16/page.tsx
deleted file mode 100644
index 6109ca5087..0000000000
--- a/deprecated/www/__registry__/default/block/sidebar-16/page.tsx
+++ /dev/null
@@ -1,134 +0,0 @@
-"use client"
-
-import * as React from "react"
-import { Command, Sidebar } from "lucide-react"
-
-import { AppSidebar } from "@/registry/default/block/sidebar-16/components/app-sidebar"
-import {
- Breadcrumb,
- BreadcrumbItem,
- BreadcrumbLink,
- BreadcrumbList,
- BreadcrumbPage,
- BreadcrumbSeparator,
-} from "@/registry/default/ui/breadcrumb"
-import { Button } from "@/registry/default/ui/button"
-import { Separator } from "@/registry/default/ui/separator"
-import {
- SidebarInset,
- SidebarProvider,
- SidebarTrigger,
-} from "@/registry/default/ui/sidebar"
-
-export const iframeHeight = "800px"
-
-export const description = "An inset sidebar with site header navigation."
-
-const HEADER_HEIGHT = "4rem"
-
-export default function Page() {
- const [open, setOpen] = React.useState(true)
-
- return (
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Building Your Application
-
-
-
-
- Data Fetching
-
-
-
-
-
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/blocks/calendar-01.tsx b/deprecated/www/__registry__/default/blocks/calendar-01.tsx
deleted file mode 100644
index 7c254e7a0f..0000000000
--- a/deprecated/www/__registry__/default/blocks/calendar-01.tsx
+++ /dev/null
@@ -1,21 +0,0 @@
-"use client"
-
-import * as React from "react"
-
-import { Calendar } from "@/registry/default/ui/calendar"
-
-export default function Calendar01() {
- const [date, setDate] = React.useState(
- new Date(2025, 5, 12)
- )
-
- return (
-
- )
-}
diff --git a/deprecated/www/__registry__/default/blocks/calendar-02.tsx b/deprecated/www/__registry__/default/blocks/calendar-02.tsx
deleted file mode 100644
index a3c937ecba..0000000000
--- a/deprecated/www/__registry__/default/blocks/calendar-02.tsx
+++ /dev/null
@@ -1,22 +0,0 @@
-"use client"
-
-import * as React from "react"
-
-import { Calendar } from "@/registry/default/ui/calendar"
-
-export default function Calendar02() {
- const [date, setDate] = React.useState(
- new Date(2025, 5, 12)
- )
-
- return (
-
- )
-}
diff --git a/deprecated/www/__registry__/default/blocks/calendar-03.tsx b/deprecated/www/__registry__/default/blocks/calendar-03.tsx
deleted file mode 100644
index 89de91fafb..0000000000
--- a/deprecated/www/__registry__/default/blocks/calendar-03.tsx
+++ /dev/null
@@ -1,25 +0,0 @@
-"use client"
-
-import * as React from "react"
-
-import { Calendar } from "@/registry/default/ui/calendar"
-
-export default function Calendar03() {
- const [dates, setDates] = React.useState([
- new Date(2025, 5, 12),
- new Date(2025, 6, 24),
- ])
-
- return (
-
- )
-}
diff --git a/deprecated/www/__registry__/default/blocks/calendar-04.tsx b/deprecated/www/__registry__/default/blocks/calendar-04.tsx
deleted file mode 100644
index 86d58b8c98..0000000000
--- a/deprecated/www/__registry__/default/blocks/calendar-04.tsx
+++ /dev/null
@@ -1,23 +0,0 @@
-"use client"
-
-import * as React from "react"
-import { type DateRange } from "react-day-picker"
-
-import { Calendar } from "@/registry/default/ui/calendar"
-
-export default function Calendar04() {
- const [dateRange, setDateRange] = React.useState({
- from: new Date(2025, 5, 9),
- to: new Date(2025, 5, 26),
- })
-
- return (
-
- )
-}
diff --git a/deprecated/www/__registry__/default/blocks/calendar-05.tsx b/deprecated/www/__registry__/default/blocks/calendar-05.tsx
deleted file mode 100644
index b6a13b61c4..0000000000
--- a/deprecated/www/__registry__/default/blocks/calendar-05.tsx
+++ /dev/null
@@ -1,24 +0,0 @@
-"use client"
-
-import * as React from "react"
-import { type DateRange } from "react-day-picker"
-
-import { Calendar } from "@/registry/default/ui/calendar"
-
-export default function Calendar05() {
- const [dateRange, setDateRange] = React.useState({
- from: new Date(2025, 5, 12),
- to: new Date(2025, 6, 15),
- })
-
- return (
-
- )
-}
diff --git a/deprecated/www/__registry__/default/blocks/calendar-06.tsx b/deprecated/www/__registry__/default/blocks/calendar-06.tsx
deleted file mode 100644
index 5c61050a69..0000000000
--- a/deprecated/www/__registry__/default/blocks/calendar-06.tsx
+++ /dev/null
@@ -1,30 +0,0 @@
-"use client"
-
-import * as React from "react"
-import { type DateRange } from "react-day-picker"
-
-import { Calendar } from "@/registry/default/ui/calendar"
-
-export default function Calendar06() {
- const [dateRange, setDateRange] = React.useState({
- from: new Date(2025, 5, 12),
- to: new Date(2025, 5, 26),
- })
-
- return (
-
-
-
- A minimum of 5 days is required
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/blocks/calendar-07.tsx b/deprecated/www/__registry__/default/blocks/calendar-07.tsx
deleted file mode 100644
index 3f46a659e0..0000000000
--- a/deprecated/www/__registry__/default/blocks/calendar-07.tsx
+++ /dev/null
@@ -1,31 +0,0 @@
-"use client"
-
-import * as React from "react"
-import { type DateRange } from "react-day-picker"
-
-import { Calendar } from "@/registry/default/ui/calendar"
-
-export default function Calendar07() {
- const [dateRange, setDateRange] = React.useState({
- from: new Date(2025, 5, 18),
- to: new Date(2025, 6, 7),
- })
-
- return (
-
-
-
- Your stay must be between 2 and 20 nights
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/blocks/calendar-08.tsx b/deprecated/www/__registry__/default/blocks/calendar-08.tsx
deleted file mode 100644
index 93a90ff4e8..0000000000
--- a/deprecated/www/__registry__/default/blocks/calendar-08.tsx
+++ /dev/null
@@ -1,24 +0,0 @@
-"use client"
-
-import * as React from "react"
-
-import { Calendar } from "@/registry/default/ui/calendar"
-
-export default function Calendar08() {
- const [date, setDate] = React.useState(
- new Date(2025, 5, 12)
- )
-
- return (
-
- )
-}
diff --git a/deprecated/www/__registry__/default/blocks/calendar-09.tsx b/deprecated/www/__registry__/default/blocks/calendar-09.tsx
deleted file mode 100644
index 182d7f2bb9..0000000000
--- a/deprecated/www/__registry__/default/blocks/calendar-09.tsx
+++ /dev/null
@@ -1,26 +0,0 @@
-"use client"
-
-import * as React from "react"
-import { type DateRange } from "react-day-picker"
-
-import { Calendar } from "@/registry/default/ui/calendar"
-
-export default function Calendar09() {
- const [dateRange, setDateRange] = React.useState({
- from: new Date(2025, 5, 17),
- to: new Date(2025, 5, 20),
- })
-
- return (
-
- )
-}
diff --git a/deprecated/www/__registry__/default/blocks/calendar-10.tsx b/deprecated/www/__registry__/default/blocks/calendar-10.tsx
deleted file mode 100644
index 592c66ded3..0000000000
--- a/deprecated/www/__registry__/default/blocks/calendar-10.tsx
+++ /dev/null
@@ -1,50 +0,0 @@
-"use client"
-
-import * as React from "react"
-
-import { Button } from "@/registry/default/ui/button"
-import { Calendar } from "@/registry/default/ui/calendar"
-import {
- Card,
- CardContent,
- CardDescription,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-
-export default function Calendar10() {
- const [date, setDate] = React.useState(
- new Date(2025, 5, 12)
- )
- const [month, setMonth] = React.useState(new Date())
-
- return (
-
-
- Appointment
- Find a date
- {
- setMonth(new Date())
- setDate(new Date())
- }}
- >
- Today
-
-
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/blocks/calendar-11.tsx b/deprecated/www/__registry__/default/blocks/calendar-11.tsx
deleted file mode 100644
index dfad509ae1..0000000000
--- a/deprecated/www/__registry__/default/blocks/calendar-11.tsx
+++ /dev/null
@@ -1,31 +0,0 @@
-"use client"
-
-import * as React from "react"
-import { type DateRange } from "react-day-picker"
-
-import { Calendar } from "@/registry/default/ui/calendar"
-
-export default function Calendar11() {
- const [dateRange, setDateRange] = React.useState({
- from: new Date(2025, 5, 17),
- to: new Date(2025, 5, 20),
- })
-
- return (
-
-
-
- We are open in June and July only.
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/blocks/calendar-12.tsx b/deprecated/www/__registry__/default/blocks/calendar-12.tsx
deleted file mode 100644
index 0e3dda9632..0000000000
--- a/deprecated/www/__registry__/default/blocks/calendar-12.tsx
+++ /dev/null
@@ -1,78 +0,0 @@
-"use client"
-
-import * as React from "react"
-import { type DateRange } from "react-day-picker"
-import { enUS, es } from "react-day-picker/locale"
-
-import { Calendar } from "@/registry/default/ui/calendar"
-import {
- Card,
- CardContent,
- CardDescription,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- Select,
- SelectContent,
- SelectItem,
- SelectTrigger,
- SelectValue,
-} from "@/registry/default/ui/select"
-
-const localizedStrings = {
- en: {
- title: "Book an appointment",
- description: "Select the dates for your appointment",
- },
- es: {
- title: "Reserva una cita",
- description: "Selecciona las fechas para tu cita",
- },
-} as const
-
-export default function Calendar12() {
- const [locale, setLocale] =
- React.useState("es")
- const [dateRange, setDateRange] = React.useState({
- from: new Date(2025, 8, 9),
- to: new Date(2025, 8, 17),
- })
-
- return (
-
-
- {localizedStrings[locale].title}
-
- {localizedStrings[locale].description}
-
-
- setLocale(value as keyof typeof localizedStrings)
- }
- >
-
-
-
-
- Español
- English
-
-
-
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/blocks/calendar-13.tsx b/deprecated/www/__registry__/default/blocks/calendar-13.tsx
deleted file mode 100644
index 047d67fa6c..0000000000
--- a/deprecated/www/__registry__/default/blocks/calendar-13.tsx
+++ /dev/null
@@ -1,58 +0,0 @@
-"use client"
-
-import * as React from "react"
-
-import { Calendar } from "@/registry/default/ui/calendar"
-import { Label } from "@/registry/default/ui/label"
-import {
- Select,
- SelectContent,
- SelectItem,
- SelectTrigger,
- SelectValue,
-} from "@/registry/default/ui/select"
-
-export default function Calendar13() {
- const [dropdown, setDropdown] =
- React.useState["captionLayout"]>(
- "dropdown"
- )
- const [date, setDate] = React.useState(
- new Date(2025, 5, 12)
- )
-
- return (
-
-
-
-
- Dropdown
-
-
- setDropdown(
- value as React.ComponentProps["captionLayout"]
- )
- }
- >
-
-
-
-
- Month and Year
- Month Only
- Year Only
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/blocks/calendar-14.tsx b/deprecated/www/__registry__/default/blocks/calendar-14.tsx
deleted file mode 100644
index e1d53f1a7d..0000000000
--- a/deprecated/www/__registry__/default/blocks/calendar-14.tsx
+++ /dev/null
@@ -1,32 +0,0 @@
-"use client"
-
-import * as React from "react"
-
-import { Calendar } from "@/registry/default/ui/calendar"
-
-export default function Calendar14() {
- const [date, setDate] = React.useState(
- new Date(2025, 5, 12)
- )
- const bookedDates = Array.from(
- { length: 12 },
- (_, i) => new Date(2025, 5, 15 + i)
- )
-
- return (
- button]:line-through opacity-100",
- }}
- className="rounded-lg border shadow-sm"
- />
- )
-}
diff --git a/deprecated/www/__registry__/default/blocks/calendar-15.tsx b/deprecated/www/__registry__/default/blocks/calendar-15.tsx
deleted file mode 100644
index 6fec6f59a0..0000000000
--- a/deprecated/www/__registry__/default/blocks/calendar-15.tsx
+++ /dev/null
@@ -1,22 +0,0 @@
-"use client"
-
-import * as React from "react"
-
-import { Calendar } from "@/registry/default/ui/calendar"
-
-export default function Calendar15() {
- const [date, setDate] = React.useState(
- new Date(2025, 5, 12)
- )
-
- return (
-
- )
-}
diff --git a/deprecated/www/__registry__/default/blocks/calendar-16.tsx b/deprecated/www/__registry__/default/blocks/calendar-16.tsx
deleted file mode 100644
index d21aa9fcab..0000000000
--- a/deprecated/www/__registry__/default/blocks/calendar-16.tsx
+++ /dev/null
@@ -1,56 +0,0 @@
-"use client"
-
-import * as React from "react"
-import { Clock2Icon } from "lucide-react"
-
-import { Calendar } from "@/registry/default/ui/calendar"
-import { Card, CardContent, CardFooter } from "@/registry/default/ui/card"
-import { Input } from "@/registry/default/ui/input"
-import { Label } from "@/registry/default/ui/label"
-
-export default function Calendar16() {
- const [date, setDate] = React.useState(
- new Date(2025, 5, 12)
- )
-
- return (
-
-
-
-
-
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/blocks/calendar-17.tsx b/deprecated/www/__registry__/default/blocks/calendar-17.tsx
deleted file mode 100644
index bd66aeb3d2..0000000000
--- a/deprecated/www/__registry__/default/blocks/calendar-17.tsx
+++ /dev/null
@@ -1,54 +0,0 @@
-"use client"
-
-import * as React from "react"
-
-import { Calendar } from "@/registry/default/ui/calendar"
-import { Card, CardContent, CardFooter } from "@/registry/default/ui/card"
-import { Input } from "@/registry/default/ui/input"
-import { Label } from "@/registry/default/ui/label"
-
-export default function Calendar17() {
- const [date, setDate] = React.useState(
- new Date(2025, 5, 12)
- )
-
- return (
-
-
-
-
-
-
-
- Start Time
-
-
-
- -
-
-
- End Time
-
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/blocks/calendar-18.tsx b/deprecated/www/__registry__/default/blocks/calendar-18.tsx
deleted file mode 100644
index 950983dfa3..0000000000
--- a/deprecated/www/__registry__/default/blocks/calendar-18.tsx
+++ /dev/null
@@ -1,21 +0,0 @@
-"use client"
-
-import * as React from "react"
-
-import { Calendar } from "@/registry/default/ui/calendar"
-
-export default function Calendar18() {
- const [date, setDate] = React.useState(
- new Date(2025, 5, 12)
- )
-
- return (
-
- )
-}
diff --git a/deprecated/www/__registry__/default/blocks/calendar-19.tsx b/deprecated/www/__registry__/default/blocks/calendar-19.tsx
deleted file mode 100644
index c9bff184e8..0000000000
--- a/deprecated/www/__registry__/default/blocks/calendar-19.tsx
+++ /dev/null
@@ -1,50 +0,0 @@
-"use client"
-
-import * as React from "react"
-import { addDays } from "date-fns"
-
-import { Button } from "@/registry/default/ui/button"
-import { Calendar } from "@/registry/default/ui/calendar"
-import { Card, CardContent, CardFooter } from "@/registry/default/ui/card"
-
-export default function Calendar19() {
- const [date, setDate] = React.useState(
- new Date(2025, 5, 12)
- )
-
- return (
-
-
-
-
-
- {[
- { label: "Today", value: 0 },
- { label: "Tomorrow", value: 1 },
- { label: "In 3 days", value: 3 },
- { label: "In a week", value: 7 },
- { label: "In 2 weeks", value: 14 },
- ].map((preset) => (
- {
- const newDate = addDays(new Date(), preset.value)
- setDate(newDate)
- }}
- >
- {preset.label}
-
- ))}
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/blocks/calendar-20.tsx b/deprecated/www/__registry__/default/blocks/calendar-20.tsx
deleted file mode 100644
index e9ba34fc43..0000000000
--- a/deprecated/www/__registry__/default/blocks/calendar-20.tsx
+++ /dev/null
@@ -1,97 +0,0 @@
-"use client"
-
-import * as React from "react"
-
-import { Button } from "@/registry/default/ui/button"
-import { Calendar } from "@/registry/default/ui/calendar"
-import { Card, CardContent, CardFooter } from "@/registry/default/ui/card"
-
-export default function Calendar20() {
- const [date, setDate] = React.useState(
- new Date(2025, 5, 12)
- )
- const [selectedTime, setSelectedTime] = React.useState("10:00")
- const timeSlots = Array.from({ length: 37 }, (_, i) => {
- const totalMinutes = i * 15
- const hour = Math.floor(totalMinutes / 60) + 9
- const minute = totalMinutes % 60
- return `${hour.toString().padStart(2, "0")}:${minute
- .toString()
- .padStart(2, "0")}`
- })
-
- const bookedDates = Array.from(
- { length: 3 },
- (_, i) => new Date(2025, 5, 17 + i)
- )
-
- return (
-
-
-
- button]:line-through opacity-100",
- }}
- className="bg-transparent p-0 [--cell-size:2.5rem] md:[--cell-size:3rem]"
- formatters={{
- formatWeekdayName: (date) => {
- return date.toLocaleString("en-US", { weekday: "short" })
- },
- }}
- />
-
-
-
- {timeSlots.map((time) => (
- setSelectedTime(time)}
- className="w-full shadow-none"
- >
- {time}
-
- ))}
-
-
-
-
-
- {date && selectedTime ? (
- <>
- Your meeting is booked for{" "}
-
- {" "}
- {date?.toLocaleDateString("en-US", {
- weekday: "long",
- day: "numeric",
- month: "long",
- })}{" "}
-
- at {selectedTime} .
- >
- ) : (
- <>Select a date and time for your meeting.>
- )}
-
-
- Continue
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/blocks/calendar-21.tsx b/deprecated/www/__registry__/default/blocks/calendar-21.tsx
deleted file mode 100644
index 4762f22b32..0000000000
--- a/deprecated/www/__registry__/default/blocks/calendar-21.tsx
+++ /dev/null
@@ -1,42 +0,0 @@
-"use client"
-
-import * as React from "react"
-import { DateRange } from "react-day-picker"
-
-import { Calendar, CalendarDayButton } from "@/registry/default/ui/calendar"
-
-export default function Calendar21() {
- const [range, setRange] = React.useState({
- from: new Date(2025, 5, 12),
- to: new Date(2025, 5, 17),
- })
-
- return (
- {
- return date.toLocaleString("default", { month: "long" })
- },
- }}
- components={{
- DayButton: ({ children, modifiers, day, ...props }) => {
- const isWeekend = day.date.getDay() === 0 || day.date.getDay() === 6
-
- return (
-
- {children}
- {!modifiers.outside && {isWeekend ? "$220" : "$100"} }
-
- )
- },
- }}
- />
- )
-}
diff --git a/deprecated/www/__registry__/default/blocks/calendar-22.tsx b/deprecated/www/__registry__/default/blocks/calendar-22.tsx
deleted file mode 100644
index b184684762..0000000000
--- a/deprecated/www/__registry__/default/blocks/calendar-22.tsx
+++ /dev/null
@@ -1,49 +0,0 @@
-"use client"
-
-import * as React from "react"
-import { ChevronDownIcon } from "lucide-react"
-
-import { Button } from "@/registry/default/ui/button"
-import { Calendar } from "@/registry/default/ui/calendar"
-import { Label } from "@/registry/default/ui/label"
-import {
- Popover,
- PopoverContent,
- PopoverTrigger,
-} from "@/registry/default/ui/popover"
-
-export default function Calendar22() {
- const [open, setOpen] = React.useState(false)
- const [date, setDate] = React.useState(undefined)
-
- return (
-
-
- Date of birth
-
-
-
-
- {date ? date.toLocaleDateString() : "Select date"}
-
-
-
-
- {
- setDate(date)
- setOpen(false)
- }}
- />
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/blocks/calendar-23.tsx b/deprecated/www/__registry__/default/blocks/calendar-23.tsx
deleted file mode 100644
index a1110c054a..0000000000
--- a/deprecated/www/__registry__/default/blocks/calendar-23.tsx
+++ /dev/null
@@ -1,50 +0,0 @@
-"use client"
-
-import * as React from "react"
-import { ChevronDownIcon } from "lucide-react"
-import { type DateRange } from "react-day-picker"
-
-import { Button } from "@/registry/default/ui/button"
-import { Calendar } from "@/registry/default/ui/calendar"
-import { Label } from "@/registry/default/ui/label"
-import {
- Popover,
- PopoverContent,
- PopoverTrigger,
-} from "@/registry/default/ui/popover"
-
-export default function Calendar23() {
- const [range, setRange] = React.useState(undefined)
-
- return (
-
-
- Select your stay
-
-
-
-
- {range?.from && range?.to
- ? `${range.from.toLocaleDateString()} - ${range.to.toLocaleDateString()}`
- : "Select date"}
-
-
-
-
- {
- setRange(range)
- }}
- />
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/blocks/calendar-24.tsx b/deprecated/www/__registry__/default/blocks/calendar-24.tsx
deleted file mode 100644
index 19f1fd0d03..0000000000
--- a/deprecated/www/__registry__/default/blocks/calendar-24.tsx
+++ /dev/null
@@ -1,64 +0,0 @@
-"use client"
-
-import * as React from "react"
-import { ChevronDownIcon } from "lucide-react"
-
-import { Button } from "@/registry/default/ui/button"
-import { Calendar } from "@/registry/default/ui/calendar"
-import { Input } from "@/registry/default/ui/input"
-import { Label } from "@/registry/default/ui/label"
-import {
- Popover,
- PopoverContent,
- PopoverTrigger,
-} from "@/registry/default/ui/popover"
-
-export default function Calendar24() {
- const [open, setOpen] = React.useState(false)
- const [date, setDate] = React.useState(undefined)
-
- return (
-
-
-
- Date
-
-
-
-
- {date ? date.toLocaleDateString() : "Select date"}
-
-
-
-
- {
- setDate(date)
- setOpen(false)
- }}
- />
-
-
-
-
-
- Time
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/blocks/calendar-25.tsx b/deprecated/www/__registry__/default/blocks/calendar-25.tsx
deleted file mode 100644
index bf01d207c3..0000000000
--- a/deprecated/www/__registry__/default/blocks/calendar-25.tsx
+++ /dev/null
@@ -1,78 +0,0 @@
-"use client"
-
-import * as React from "react"
-import { ChevronDownIcon } from "lucide-react"
-
-import { Button } from "@/registry/default/ui/button"
-import { Calendar } from "@/registry/default/ui/calendar"
-import { Input } from "@/registry/default/ui/input"
-import { Label } from "@/registry/default/ui/label"
-import {
- Popover,
- PopoverContent,
- PopoverTrigger,
-} from "@/registry/default/ui/popover"
-
-export default function Calendar25() {
- const [open, setOpen] = React.useState(false)
- const [date, setDate] = React.useState(undefined)
-
- return (
-
-
-
- Date
-
-
-
-
- {date ? date.toLocaleDateString() : "Select date"}
-
-
-
-
- {
- setDate(date)
- setOpen(false)
- }}
- />
-
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/blocks/calendar-26.tsx b/deprecated/www/__registry__/default/blocks/calendar-26.tsx
deleted file mode 100644
index 2032623348..0000000000
--- a/deprecated/www/__registry__/default/blocks/calendar-26.tsx
+++ /dev/null
@@ -1,133 +0,0 @@
-"use client"
-
-import * as React from "react"
-import { ChevronDownIcon } from "lucide-react"
-
-import { Button } from "@/registry/default/ui/button"
-import { Calendar } from "@/registry/default/ui/calendar"
-import { Input } from "@/registry/default/ui/input"
-import { Label } from "@/registry/default/ui/label"
-import {
- Popover,
- PopoverContent,
- PopoverTrigger,
-} from "@/registry/default/ui/popover"
-
-export default function Calendar26() {
- const [openFrom, setOpenFrom] = React.useState(false)
- const [openTo, setOpenTo] = React.useState(false)
- const [dateFrom, setDateFrom] = React.useState(
- new Date("2025-06-01")
- )
- const [dateTo, setDateTo] = React.useState(
- new Date("2025-06-03")
- )
-
- return (
-
-
-
-
- Check-in
-
-
-
-
- {dateFrom
- ? dateFrom.toLocaleDateString("en-US", {
- day: "2-digit",
- month: "short",
- year: "numeric",
- })
- : "Select date"}
-
-
-
-
- {
- setDateFrom(date)
- setOpenFrom(false)
- }}
- />
-
-
-
-
-
- From
-
-
-
-
-
-
-
- Check-out
-
-
-
-
- {dateTo
- ? dateTo.toLocaleDateString("en-US", {
- day: "2-digit",
- month: "short",
- year: "numeric",
- })
- : "Select date"}
-
-
-
-
- {
- setDateTo(date)
- setOpenTo(false)
- }}
- disabled={dateFrom && { before: dateFrom }}
- />
-
-
-
-
-
- To
-
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/blocks/calendar-27.tsx b/deprecated/www/__registry__/default/blocks/calendar-27.tsx
deleted file mode 100644
index ebc120422d..0000000000
--- a/deprecated/www/__registry__/default/blocks/calendar-27.tsx
+++ /dev/null
@@ -1,177 +0,0 @@
-"use client"
-
-import * as React from "react"
-import { CalendarIcon } from "lucide-react"
-import { DateRange } from "react-day-picker"
-import { Bar, BarChart, CartesianGrid, XAxis } from "recharts"
-
-import { Button } from "@/registry/default/ui/button"
-import { Calendar } from "@/registry/default/ui/calendar"
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-import {
- Popover,
- PopoverContent,
- PopoverTrigger,
-} from "@/registry/default/ui/popover"
-
-const chartData = [
- { date: "2025-06-01", visitors: 178 },
- { date: "2025-06-02", visitors: 470 },
- { date: "2025-06-03", visitors: 103 },
- { date: "2025-06-04", visitors: 439 },
- { date: "2025-06-05", visitors: 88 },
- { date: "2025-06-06", visitors: 294 },
- { date: "2025-06-07", visitors: 323 },
- { date: "2025-06-08", visitors: 385 },
- { date: "2025-06-09", visitors: 438 },
- { date: "2025-06-10", visitors: 155 },
- { date: "2025-06-11", visitors: 92 },
- { date: "2025-06-12", visitors: 492 },
- { date: "2025-06-13", visitors: 81 },
- { date: "2025-06-14", visitors: 426 },
- { date: "2025-06-15", visitors: 307 },
- { date: "2025-06-16", visitors: 371 },
- { date: "2025-06-17", visitors: 475 },
- { date: "2025-06-18", visitors: 107 },
- { date: "2025-06-19", visitors: 341 },
- { date: "2025-06-20", visitors: 408 },
- { date: "2025-06-21", visitors: 169 },
- { date: "2025-06-22", visitors: 317 },
- { date: "2025-06-23", visitors: 480 },
- { date: "2025-06-24", visitors: 132 },
- { date: "2025-06-25", visitors: 141 },
- { date: "2025-06-26", visitors: 434 },
- { date: "2025-06-27", visitors: 448 },
- { date: "2025-06-28", visitors: 149 },
- { date: "2025-06-29", visitors: 103 },
- { date: "2025-06-30", visitors: 446 },
-]
-
-const total = chartData.reduce((acc, curr) => acc + curr.visitors, 0)
-
-const chartConfig = {
- visitors: {
- label: "Visitors",
- color: "hsl(var(--primary))",
- },
-} satisfies ChartConfig
-
-export default function Calendar27() {
- const [range, setRange] = React.useState({
- from: new Date(2025, 5, 5),
- to: new Date(2025, 5, 20),
- })
- const filteredData = React.useMemo(() => {
- if (!range?.from && !range?.to) {
- return chartData
- }
-
- return chartData.filter((item) => {
- const date = new Date(item.date)
- return date >= range.from! && date <= range.to!
- })
- }, [range])
-
- return (
-
-
- Web Analytics
-
- Showing total visitors for this month.
-
-
-
-
-
- {range?.from && range?.to
- ? `${range.from.toLocaleDateString()} - ${range.to.toLocaleDateString()}`
- : "June 2025"}
-
-
-
-
-
-
-
-
-
-
-
- {
- const date = new Date(value)
- return date.toLocaleDateString("en-US", {
- day: "numeric",
- })
- }}
- />
- {
- return new Date(value).toLocaleDateString("en-US", {
- month: "short",
- day: "numeric",
- year: "numeric",
- })
- }}
- />
- }
- />
-
-
-
-
-
-
- You had{" "}
- {total.toLocaleString()} {" "}
- visitors for the month of June.
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/blocks/calendar-28.tsx b/deprecated/www/__registry__/default/blocks/calendar-28.tsx
deleted file mode 100644
index 2cd72f75a1..0000000000
--- a/deprecated/www/__registry__/default/blocks/calendar-28.tsx
+++ /dev/null
@@ -1,104 +0,0 @@
-"use client"
-
-import * as React from "react"
-import { CalendarIcon } from "lucide-react"
-
-import { Button } from "@/registry/default/ui/button"
-import { Calendar } from "@/registry/default/ui/calendar"
-import { Input } from "@/registry/default/ui/input"
-import { Label } from "@/registry/default/ui/label"
-import {
- Popover,
- PopoverContent,
- PopoverTrigger,
-} from "@/registry/default/ui/popover"
-
-function formatDate(date: Date | undefined) {
- if (!date) {
- return ""
- }
-
- return date.toLocaleDateString("en-US", {
- day: "2-digit",
- month: "long",
- year: "numeric",
- })
-}
-
-function isValidDate(date: Date | undefined) {
- if (!date) {
- return false
- }
- return !isNaN(date.getTime())
-}
-
-export default function Calendar28() {
- const [open, setOpen] = React.useState(false)
- const [date, setDate] = React.useState(
- new Date("2025-06-01")
- )
- const [month, setMonth] = React.useState(date)
- const [value, setValue] = React.useState(formatDate(date))
-
- return (
-
-
- Subscription Date
-
-
-
{
- const date = new Date(e.target.value)
- setValue(e.target.value)
- if (isValidDate(date)) {
- setDate(date)
- setMonth(date)
- }
- }}
- onKeyDown={(e) => {
- if (e.key === "ArrowDown") {
- e.preventDefault()
- setOpen(true)
- }
- }}
- />
-
-
-
-
- Select date
-
-
-
- {
- setDate(date)
- setValue(formatDate(date))
- setOpen(false)
- }}
- />
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/blocks/calendar-29.tsx b/deprecated/www/__registry__/default/blocks/calendar-29.tsx
deleted file mode 100644
index 22af360250..0000000000
--- a/deprecated/www/__registry__/default/blocks/calendar-29.tsx
+++ /dev/null
@@ -1,96 +0,0 @@
-"use client"
-
-import * as React from "react"
-import { parseDate } from "chrono-node"
-import { CalendarIcon } from "lucide-react"
-
-import { Button } from "@/registry/default/ui/button"
-import { Calendar } from "@/registry/default/ui/calendar"
-import { Input } from "@/registry/default/ui/input"
-import { Label } from "@/registry/default/ui/label"
-import {
- Popover,
- PopoverContent,
- PopoverTrigger,
-} from "@/registry/default/ui/popover"
-
-function formatDate(date: Date | undefined) {
- if (!date) {
- return ""
- }
-
- return date.toLocaleDateString("en-US", {
- day: "2-digit",
- month: "long",
- year: "numeric",
- })
-}
-
-export default function Calendar29() {
- const [open, setOpen] = React.useState(false)
- const [value, setValue] = React.useState("In 2 days")
- const [date, setDate] = React.useState(
- parseDate(value) || undefined
- )
- const [month, setMonth] = React.useState(date)
-
- return (
-
-
- Schedule Date
-
-
-
{
- setValue(e.target.value)
- const date = parseDate(e.target.value)
- if (date) {
- setDate(date)
- setMonth(date)
- }
- }}
- onKeyDown={(e) => {
- if (e.key === "ArrowDown") {
- e.preventDefault()
- setOpen(true)
- }
- }}
- />
-
-
-
-
- Select date
-
-
-
- {
- setDate(date)
- setValue(formatDate(date))
- setOpen(false)
- }}
- />
-
-
-
-
- Your post will be published on{" "}
- {formatDate(date)} .
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/blocks/calendar-30.tsx b/deprecated/www/__registry__/default/blocks/calendar-30.tsx
deleted file mode 100644
index 5cb30d9841..0000000000
--- a/deprecated/www/__registry__/default/blocks/calendar-30.tsx
+++ /dev/null
@@ -1,56 +0,0 @@
-"use client"
-
-import * as React from "react"
-import { formatDateRange } from "little-date"
-import { ChevronDownIcon } from "lucide-react"
-import { type DateRange } from "react-day-picker"
-
-import { Button } from "@/registry/default/ui/button"
-import { Calendar } from "@/registry/default/ui/calendar"
-import { Label } from "@/registry/default/ui/label"
-import {
- Popover,
- PopoverContent,
- PopoverTrigger,
-} from "@/registry/default/ui/popover"
-
-export default function Calendar30() {
- const [range, setRange] = React.useState({
- from: new Date(2025, 5, 4),
- to: new Date(2025, 5, 10),
- })
-
- return (
-
-
- Select your stay
-
-
-
-
- {range?.from && range?.to
- ? formatDateRange(range.from, range.to, {
- includeTime: false,
- })
- : "Select date"}
-
-
-
-
- {
- setRange(range)
- }}
- />
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/blocks/calendar-31.tsx b/deprecated/www/__registry__/default/blocks/calendar-31.tsx
deleted file mode 100644
index 6c2c185df1..0000000000
--- a/deprecated/www/__registry__/default/blocks/calendar-31.tsx
+++ /dev/null
@@ -1,80 +0,0 @@
-"use client"
-
-import * as React from "react"
-import { formatDateRange } from "little-date"
-import { PlusIcon } from "lucide-react"
-
-import { Button } from "@/registry/default/ui/button"
-import { Calendar } from "@/registry/default/ui/calendar"
-import { Card, CardContent, CardFooter } from "@/registry/default/ui/card"
-
-const events = [
- {
- title: "Team Sync Meeting",
- from: "2025-06-12T09:00:00",
- to: "2025-06-12T10:00:00",
- },
- {
- title: "Design Review",
- from: "2025-06-12T11:30:00",
- to: "2025-06-12T12:30:00",
- },
- {
- title: "Client Presentation",
- from: "2025-06-12T14:00:00",
- to: "2025-06-12T15:00:00",
- },
-]
-
-export default function Calendar31() {
- const [date, setDate] = React.useState(
- new Date(2025, 5, 12)
- )
-
- return (
-
-
-
-
-
-
-
- {date?.toLocaleDateString("en-US", {
- day: "numeric",
- month: "long",
- year: "numeric",
- })}
-
-
-
- Add Event
-
-
-
- {events.map((event) => (
-
-
{event.title}
-
- {formatDateRange(new Date(event.from), new Date(event.to))}
-
-
- ))}
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/blocks/calendar-32.tsx b/deprecated/www/__registry__/default/blocks/calendar-32.tsx
deleted file mode 100644
index afd47c1497..0000000000
--- a/deprecated/www/__registry__/default/blocks/calendar-32.tsx
+++ /dev/null
@@ -1,60 +0,0 @@
-"use client"
-
-import * as React from "react"
-import { CalendarPlusIcon } from "lucide-react"
-
-import { Button } from "@/registry/default/ui/button"
-import { Calendar } from "@/registry/default/ui/calendar"
-import {
- Drawer,
- DrawerContent,
- DrawerDescription,
- DrawerHeader,
- DrawerTitle,
- DrawerTrigger,
-} from "@/registry/default/ui/drawer"
-import { Label } from "@/registry/default/ui/label"
-
-export default function Calendar32() {
- const [open, setOpen] = React.useState(false)
- const [date, setDate] = React.useState(undefined)
-
- return (
-
-
- Date of birth
-
-
-
-
- {date ? date.toLocaleDateString() : "Select date"}
-
-
-
-
-
- Select date
- Set your date of birth
-
- {
- setDate(date)
- setOpen(false)
- }}
- className="mx-auto [--cell-size:clamp(0px,calc(100vw/7.5),52px)]"
- />
-
-
-
- This example works best on mobile.
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/blocks/chart-area-axes.tsx b/deprecated/www/__registry__/default/blocks/chart-area-axes.tsx
deleted file mode 100644
index e6c173dcb5..0000000000
--- a/deprecated/www/__registry__/default/blocks/chart-area-axes.tsx
+++ /dev/null
@@ -1,110 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { Area, AreaChart, CartesianGrid, XAxis, YAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-
-export const description = "An area chart with axes"
-
-const chartData = [
- { month: "January", desktop: 186, mobile: 80 },
- { month: "February", desktop: 305, mobile: 200 },
- { month: "March", desktop: 237, mobile: 120 },
- { month: "April", desktop: 73, mobile: 190 },
- { month: "May", desktop: 209, mobile: 130 },
- { month: "June", desktop: 214, mobile: 140 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
- mobile: {
- label: "Mobile",
- color: "hsl(var(--chart-2))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Area Chart - Axes
-
- Showing total visitors for the last 6 months
-
-
-
-
-
-
- value.slice(0, 3)}
- />
-
- } />
-
-
-
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- January - June 2024
-
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/blocks/chart-area-default.tsx b/deprecated/www/__registry__/default/blocks/chart-area-default.tsx
deleted file mode 100644
index 925eb60367..0000000000
--- a/deprecated/www/__registry__/default/blocks/chart-area-default.tsx
+++ /dev/null
@@ -1,94 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { Area, AreaChart, CartesianGrid, XAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-
-export const description = "A simple area chart"
-
-const chartData = [
- { month: "January", desktop: 186 },
- { month: "February", desktop: 305 },
- { month: "March", desktop: 237 },
- { month: "April", desktop: 73 },
- { month: "May", desktop: 209 },
- { month: "June", desktop: 214 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Area Chart
-
- Showing total visitors for the last 6 months
-
-
-
-
-
-
- value.slice(0, 3)}
- />
- }
- />
-
-
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- January - June 2024
-
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/blocks/chart-area-gradient.tsx b/deprecated/www/__registry__/default/blocks/chart-area-gradient.tsx
deleted file mode 100644
index 0314f690fc..0000000000
--- a/deprecated/www/__registry__/default/blocks/chart-area-gradient.tsx
+++ /dev/null
@@ -1,130 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { Area, AreaChart, CartesianGrid, XAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-
-export const description = "An area chart with gradient fill"
-
-const chartData = [
- { month: "January", desktop: 186, mobile: 80 },
- { month: "February", desktop: 305, mobile: 200 },
- { month: "March", desktop: 237, mobile: 120 },
- { month: "April", desktop: 73, mobile: 190 },
- { month: "May", desktop: 209, mobile: 130 },
- { month: "June", desktop: 214, mobile: 140 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
- mobile: {
- label: "Mobile",
- color: "hsl(var(--chart-2))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Area Chart - Gradient
-
- Showing total visitors for the last 6 months
-
-
-
-
-
-
- value.slice(0, 3)}
- />
- } />
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- January - June 2024
-
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/blocks/chart-area-icons.tsx b/deprecated/www/__registry__/default/blocks/chart-area-icons.tsx
deleted file mode 100644
index 05d2e4ef0b..0000000000
--- a/deprecated/www/__registry__/default/blocks/chart-area-icons.tsx
+++ /dev/null
@@ -1,112 +0,0 @@
-"use client"
-
-import { TrendingDown, TrendingUp } from "lucide-react"
-import { Area, AreaChart, CartesianGrid, XAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartLegend,
- ChartLegendContent,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-
-export const description = "An area chart with icons"
-
-const chartData = [
- { month: "January", desktop: 186, mobile: 80 },
- { month: "February", desktop: 305, mobile: 200 },
- { month: "March", desktop: 237, mobile: 120 },
- { month: "April", desktop: 73, mobile: 190 },
- { month: "May", desktop: 209, mobile: 130 },
- { month: "June", desktop: 214, mobile: 140 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- icon: TrendingDown,
- },
- mobile: {
- label: "Mobile",
- color: "hsl(var(--chart-2))",
- icon: TrendingUp,
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Area Chart - Icons
-
- Showing total visitors for the last 6 months
-
-
-
-
-
-
- value.slice(0, 3)}
- />
- }
- />
-
-
- } />
-
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- January - June 2024
-
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/blocks/chart-area-interactive.tsx b/deprecated/www/__registry__/default/blocks/chart-area-interactive.tsx
deleted file mode 100644
index 16cbcca59f..0000000000
--- a/deprecated/www/__registry__/default/blocks/chart-area-interactive.tsx
+++ /dev/null
@@ -1,266 +0,0 @@
-"use client"
-
-import * as React from "react"
-import { Area, AreaChart, CartesianGrid, XAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartLegend,
- ChartLegendContent,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-import {
- Select,
- SelectContent,
- SelectItem,
- SelectTrigger,
- SelectValue,
-} from "@/registry/default/ui/select"
-
-export const description = "An interactive area chart"
-
-const chartData = [
- { date: "2024-04-01", desktop: 222, mobile: 150 },
- { date: "2024-04-02", desktop: 97, mobile: 180 },
- { date: "2024-04-03", desktop: 167, mobile: 120 },
- { date: "2024-04-04", desktop: 242, mobile: 260 },
- { date: "2024-04-05", desktop: 373, mobile: 290 },
- { date: "2024-04-06", desktop: 301, mobile: 340 },
- { date: "2024-04-07", desktop: 245, mobile: 180 },
- { date: "2024-04-08", desktop: 409, mobile: 320 },
- { date: "2024-04-09", desktop: 59, mobile: 110 },
- { date: "2024-04-10", desktop: 261, mobile: 190 },
- { date: "2024-04-11", desktop: 327, mobile: 350 },
- { date: "2024-04-12", desktop: 292, mobile: 210 },
- { date: "2024-04-13", desktop: 342, mobile: 380 },
- { date: "2024-04-14", desktop: 137, mobile: 220 },
- { date: "2024-04-15", desktop: 120, mobile: 170 },
- { date: "2024-04-16", desktop: 138, mobile: 190 },
- { date: "2024-04-17", desktop: 446, mobile: 360 },
- { date: "2024-04-18", desktop: 364, mobile: 410 },
- { date: "2024-04-19", desktop: 243, mobile: 180 },
- { date: "2024-04-20", desktop: 89, mobile: 150 },
- { date: "2024-04-21", desktop: 137, mobile: 200 },
- { date: "2024-04-22", desktop: 224, mobile: 170 },
- { date: "2024-04-23", desktop: 138, mobile: 230 },
- { date: "2024-04-24", desktop: 387, mobile: 290 },
- { date: "2024-04-25", desktop: 215, mobile: 250 },
- { date: "2024-04-26", desktop: 75, mobile: 130 },
- { date: "2024-04-27", desktop: 383, mobile: 420 },
- { date: "2024-04-28", desktop: 122, mobile: 180 },
- { date: "2024-04-29", desktop: 315, mobile: 240 },
- { date: "2024-04-30", desktop: 454, mobile: 380 },
- { date: "2024-05-01", desktop: 165, mobile: 220 },
- { date: "2024-05-02", desktop: 293, mobile: 310 },
- { date: "2024-05-03", desktop: 247, mobile: 190 },
- { date: "2024-05-04", desktop: 385, mobile: 420 },
- { date: "2024-05-05", desktop: 481, mobile: 390 },
- { date: "2024-05-06", desktop: 498, mobile: 520 },
- { date: "2024-05-07", desktop: 388, mobile: 300 },
- { date: "2024-05-08", desktop: 149, mobile: 210 },
- { date: "2024-05-09", desktop: 227, mobile: 180 },
- { date: "2024-05-10", desktop: 293, mobile: 330 },
- { date: "2024-05-11", desktop: 335, mobile: 270 },
- { date: "2024-05-12", desktop: 197, mobile: 240 },
- { date: "2024-05-13", desktop: 197, mobile: 160 },
- { date: "2024-05-14", desktop: 448, mobile: 490 },
- { date: "2024-05-15", desktop: 473, mobile: 380 },
- { date: "2024-05-16", desktop: 338, mobile: 400 },
- { date: "2024-05-17", desktop: 499, mobile: 420 },
- { date: "2024-05-18", desktop: 315, mobile: 350 },
- { date: "2024-05-19", desktop: 235, mobile: 180 },
- { date: "2024-05-20", desktop: 177, mobile: 230 },
- { date: "2024-05-21", desktop: 82, mobile: 140 },
- { date: "2024-05-22", desktop: 81, mobile: 120 },
- { date: "2024-05-23", desktop: 252, mobile: 290 },
- { date: "2024-05-24", desktop: 294, mobile: 220 },
- { date: "2024-05-25", desktop: 201, mobile: 250 },
- { date: "2024-05-26", desktop: 213, mobile: 170 },
- { date: "2024-05-27", desktop: 420, mobile: 460 },
- { date: "2024-05-28", desktop: 233, mobile: 190 },
- { date: "2024-05-29", desktop: 78, mobile: 130 },
- { date: "2024-05-30", desktop: 340, mobile: 280 },
- { date: "2024-05-31", desktop: 178, mobile: 230 },
- { date: "2024-06-01", desktop: 178, mobile: 200 },
- { date: "2024-06-02", desktop: 470, mobile: 410 },
- { date: "2024-06-03", desktop: 103, mobile: 160 },
- { date: "2024-06-04", desktop: 439, mobile: 380 },
- { date: "2024-06-05", desktop: 88, mobile: 140 },
- { date: "2024-06-06", desktop: 294, mobile: 250 },
- { date: "2024-06-07", desktop: 323, mobile: 370 },
- { date: "2024-06-08", desktop: 385, mobile: 320 },
- { date: "2024-06-09", desktop: 438, mobile: 480 },
- { date: "2024-06-10", desktop: 155, mobile: 200 },
- { date: "2024-06-11", desktop: 92, mobile: 150 },
- { date: "2024-06-12", desktop: 492, mobile: 420 },
- { date: "2024-06-13", desktop: 81, mobile: 130 },
- { date: "2024-06-14", desktop: 426, mobile: 380 },
- { date: "2024-06-15", desktop: 307, mobile: 350 },
- { date: "2024-06-16", desktop: 371, mobile: 310 },
- { date: "2024-06-17", desktop: 475, mobile: 520 },
- { date: "2024-06-18", desktop: 107, mobile: 170 },
- { date: "2024-06-19", desktop: 341, mobile: 290 },
- { date: "2024-06-20", desktop: 408, mobile: 450 },
- { date: "2024-06-21", desktop: 169, mobile: 210 },
- { date: "2024-06-22", desktop: 317, mobile: 270 },
- { date: "2024-06-23", desktop: 480, mobile: 530 },
- { date: "2024-06-24", desktop: 132, mobile: 180 },
- { date: "2024-06-25", desktop: 141, mobile: 190 },
- { date: "2024-06-26", desktop: 434, mobile: 380 },
- { date: "2024-06-27", desktop: 448, mobile: 490 },
- { date: "2024-06-28", desktop: 149, mobile: 200 },
- { date: "2024-06-29", desktop: 103, mobile: 160 },
- { date: "2024-06-30", desktop: 446, mobile: 400 },
-]
-
-const chartConfig = {
- visitors: {
- label: "Visitors",
- },
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
- mobile: {
- label: "Mobile",
- color: "hsl(var(--chart-2))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- const [timeRange, setTimeRange] = React.useState("90d")
-
- const filteredData = chartData.filter((item) => {
- const date = new Date(item.date)
- const referenceDate = new Date("2024-06-30")
- let daysToSubtract = 90
- if (timeRange === "30d") {
- daysToSubtract = 30
- } else if (timeRange === "7d") {
- daysToSubtract = 7
- }
- const startDate = new Date(referenceDate)
- startDate.setDate(startDate.getDate() - daysToSubtract)
- return date >= startDate
- })
-
- return (
-
-
-
- Area Chart - Interactive
-
- Showing total visitors for the last 3 months
-
-
-
-
-
-
-
-
- Last 3 months
-
-
- Last 30 days
-
-
- Last 7 days
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {
- const date = new Date(value)
- return date.toLocaleDateString("en-US", {
- month: "short",
- day: "numeric",
- })
- }}
- />
- {
- return new Date(value).toLocaleDateString("en-US", {
- month: "short",
- day: "numeric",
- })
- }}
- indicator="dot"
- />
- }
- />
-
-
- } />
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/blocks/chart-area-legend.tsx b/deprecated/www/__registry__/default/blocks/chart-area-legend.tsx
deleted file mode 100644
index 9d7cfe3d1e..0000000000
--- a/deprecated/www/__registry__/default/blocks/chart-area-legend.tsx
+++ /dev/null
@@ -1,110 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { Area, AreaChart, CartesianGrid, XAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartLegend,
- ChartLegendContent,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-
-export const description = "An area chart with a legend"
-
-const chartData = [
- { month: "January", desktop: 186, mobile: 80 },
- { month: "February", desktop: 305, mobile: 200 },
- { month: "March", desktop: 237, mobile: 120 },
- { month: "April", desktop: 73, mobile: 190 },
- { month: "May", desktop: 209, mobile: 130 },
- { month: "June", desktop: 214, mobile: 140 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
- mobile: {
- label: "Mobile",
- color: "hsl(var(--chart-2))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Area Chart - Legend
-
- Showing total visitors for the last 6 months
-
-
-
-
-
-
- value.slice(0, 3)}
- />
- }
- />
-
-
- } />
-
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- January - June 2024
-
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/blocks/chart-area-linear.tsx b/deprecated/www/__registry__/default/blocks/chart-area-linear.tsx
deleted file mode 100644
index 4e58417994..0000000000
--- a/deprecated/www/__registry__/default/blocks/chart-area-linear.tsx
+++ /dev/null
@@ -1,94 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { Area, AreaChart, CartesianGrid, XAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-
-export const description = "A linear area chart"
-
-const chartData = [
- { month: "January", desktop: 186 },
- { month: "February", desktop: 305 },
- { month: "March", desktop: 237 },
- { month: "April", desktop: 73 },
- { month: "May", desktop: 209 },
- { month: "June", desktop: 214 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Area Chart - Linear
-
- Showing total visitors for the last 6 months
-
-
-
-
-
-
- value.slice(0, 3)}
- />
- }
- />
-
-
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- January - June 2024
-
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/blocks/chart-area-stacked-expand.tsx b/deprecated/www/__registry__/default/blocks/chart-area-stacked-expand.tsx
deleted file mode 100644
index ab66f89565..0000000000
--- a/deprecated/www/__registry__/default/blocks/chart-area-stacked-expand.tsx
+++ /dev/null
@@ -1,121 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { Area, AreaChart, CartesianGrid, XAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-
-export const description = "A stacked area chart with expand stacking"
-
-const chartData = [
- { month: "January", desktop: 186, mobile: 80, other: 45 },
- { month: "February", desktop: 305, mobile: 200, other: 100 },
- { month: "March", desktop: 237, mobile: 120, other: 150 },
- { month: "April", desktop: 73, mobile: 190, other: 50 },
- { month: "May", desktop: 209, mobile: 130, other: 100 },
- { month: "June", desktop: 214, mobile: 140, other: 160 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
- mobile: {
- label: "Mobile",
- color: "hsl(var(--chart-2))",
- },
- other: {
- label: "Other",
- color: "hsl(var(--chart-3))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Area Chart - Stacked Expanded
-
- Showing total visitors for the last 6months
-
-
-
-
-
-
- value.slice(0, 3)}
- />
- }
- />
-
-
-
-
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- January - June 2024
-
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/blocks/chart-area-stacked.tsx b/deprecated/www/__registry__/default/blocks/chart-area-stacked.tsx
deleted file mode 100644
index 3820dd7a7b..0000000000
--- a/deprecated/www/__registry__/default/blocks/chart-area-stacked.tsx
+++ /dev/null
@@ -1,107 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { Area, AreaChart, CartesianGrid, XAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-
-export const description = "A stacked area chart"
-
-const chartData = [
- { month: "January", desktop: 186, mobile: 80 },
- { month: "February", desktop: 305, mobile: 200 },
- { month: "March", desktop: 237, mobile: 120 },
- { month: "April", desktop: 73, mobile: 190 },
- { month: "May", desktop: 209, mobile: 130 },
- { month: "June", desktop: 214, mobile: 140 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
- mobile: {
- label: "Mobile",
- color: "hsl(var(--chart-2))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Area Chart - Stacked
-
- Showing total visitors for the last 6 months
-
-
-
-
-
-
- value.slice(0, 3)}
- />
- }
- />
-
-
-
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- January - June 2024
-
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/blocks/chart-area-step.tsx b/deprecated/www/__registry__/default/blocks/chart-area-step.tsx
deleted file mode 100644
index 4ca6623d26..0000000000
--- a/deprecated/www/__registry__/default/blocks/chart-area-step.tsx
+++ /dev/null
@@ -1,95 +0,0 @@
-"use client"
-
-import { Activity, TrendingUp } from "lucide-react"
-import { Area, AreaChart, CartesianGrid, XAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-
-export const description = "A step area chart"
-
-const chartData = [
- { month: "January", desktop: 186 },
- { month: "February", desktop: 305 },
- { month: "March", desktop: 237 },
- { month: "April", desktop: 73 },
- { month: "May", desktop: 209 },
- { month: "June", desktop: 214 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- icon: Activity,
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Area Chart - Step
-
- Showing total visitors for the last 6 months
-
-
-
-
-
-
- value.slice(0, 3)}
- />
- }
- />
-
-
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- January - June 2024
-
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/blocks/chart-bar-active.tsx b/deprecated/www/__registry__/default/blocks/chart-bar-active.tsx
deleted file mode 100644
index f1be5c7718..0000000000
--- a/deprecated/www/__registry__/default/blocks/chart-bar-active.tsx
+++ /dev/null
@@ -1,111 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { Bar, BarChart, CartesianGrid, Rectangle, XAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-
-export const description = "A bar chart with an active bar"
-
-const chartData = [
- { browser: "chrome", visitors: 187, fill: "var(--color-chrome)" },
- { browser: "safari", visitors: 200, fill: "var(--color-safari)" },
- { browser: "firefox", visitors: 275, fill: "var(--color-firefox)" },
- { browser: "edge", visitors: 173, fill: "var(--color-edge)" },
- { browser: "other", visitors: 90, fill: "var(--color-other)" },
-]
-
-const chartConfig = {
- visitors: {
- label: "Visitors",
- },
- chrome: {
- label: "Chrome",
- color: "hsl(var(--chart-1))",
- },
- safari: {
- label: "Safari",
- color: "hsl(var(--chart-2))",
- },
- firefox: {
- label: "Firefox",
- color: "hsl(var(--chart-3))",
- },
- edge: {
- label: "Edge",
- color: "hsl(var(--chart-4))",
- },
- other: {
- label: "Other",
- color: "hsl(var(--chart-5))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Bar Chart - Active
- January - June 2024
-
-
-
-
-
-
- chartConfig[value as keyof typeof chartConfig]?.label
- }
- />
- }
- />
- {
- return (
-
- )
- }}
- />
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- Showing total visitors for the last 6 months
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/blocks/chart-bar-default.tsx b/deprecated/www/__registry__/default/blocks/chart-bar-default.tsx
deleted file mode 100644
index 9fc5f15a15..0000000000
--- a/deprecated/www/__registry__/default/blocks/chart-bar-default.tsx
+++ /dev/null
@@ -1,75 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { Bar, BarChart, CartesianGrid, XAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-
-export const description = "A bar chart"
-
-const chartData = [
- { month: "January", desktop: 186 },
- { month: "February", desktop: 305 },
- { month: "March", desktop: 237 },
- { month: "April", desktop: 73 },
- { month: "May", desktop: 209 },
- { month: "June", desktop: 214 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Bar Chart
- January - June 2024
-
-
-
-
-
- value.slice(0, 3)}
- />
- }
- />
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- Showing total visitors for the last 6 months
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/blocks/chart-bar-horizontal.tsx b/deprecated/www/__registry__/default/blocks/chart-bar-horizontal.tsx
deleted file mode 100644
index ac74114cee..0000000000
--- a/deprecated/www/__registry__/default/blocks/chart-bar-horizontal.tsx
+++ /dev/null
@@ -1,83 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { Bar, BarChart, XAxis, YAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-
-export const description = "A horizontal bar chart"
-
-const chartData = [
- { month: "January", desktop: 186 },
- { month: "February", desktop: 305 },
- { month: "March", desktop: 237 },
- { month: "April", desktop: 73 },
- { month: "May", desktop: 209 },
- { month: "June", desktop: 214 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Bar Chart - Horizontal
- January - June 2024
-
-
-
-
-
- value.slice(0, 3)}
- />
- }
- />
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- Showing total visitors for the last 6 months
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/blocks/chart-bar-interactive.tsx b/deprecated/www/__registry__/default/blocks/chart-bar-interactive.tsx
deleted file mode 100644
index 84bcc6a28c..0000000000
--- a/deprecated/www/__registry__/default/blocks/chart-bar-interactive.tsx
+++ /dev/null
@@ -1,221 +0,0 @@
-"use client"
-
-import * as React from "react"
-import { Bar, BarChart, CartesianGrid, XAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-
-export const description = "An interactive bar chart"
-
-const chartData = [
- { date: "2024-04-01", desktop: 222, mobile: 150 },
- { date: "2024-04-02", desktop: 97, mobile: 180 },
- { date: "2024-04-03", desktop: 167, mobile: 120 },
- { date: "2024-04-04", desktop: 242, mobile: 260 },
- { date: "2024-04-05", desktop: 373, mobile: 290 },
- { date: "2024-04-06", desktop: 301, mobile: 340 },
- { date: "2024-04-07", desktop: 245, mobile: 180 },
- { date: "2024-04-08", desktop: 409, mobile: 320 },
- { date: "2024-04-09", desktop: 59, mobile: 110 },
- { date: "2024-04-10", desktop: 261, mobile: 190 },
- { date: "2024-04-11", desktop: 327, mobile: 350 },
- { date: "2024-04-12", desktop: 292, mobile: 210 },
- { date: "2024-04-13", desktop: 342, mobile: 380 },
- { date: "2024-04-14", desktop: 137, mobile: 220 },
- { date: "2024-04-15", desktop: 120, mobile: 170 },
- { date: "2024-04-16", desktop: 138, mobile: 190 },
- { date: "2024-04-17", desktop: 446, mobile: 360 },
- { date: "2024-04-18", desktop: 364, mobile: 410 },
- { date: "2024-04-19", desktop: 243, mobile: 180 },
- { date: "2024-04-20", desktop: 89, mobile: 150 },
- { date: "2024-04-21", desktop: 137, mobile: 200 },
- { date: "2024-04-22", desktop: 224, mobile: 170 },
- { date: "2024-04-23", desktop: 138, mobile: 230 },
- { date: "2024-04-24", desktop: 387, mobile: 290 },
- { date: "2024-04-25", desktop: 215, mobile: 250 },
- { date: "2024-04-26", desktop: 75, mobile: 130 },
- { date: "2024-04-27", desktop: 383, mobile: 420 },
- { date: "2024-04-28", desktop: 122, mobile: 180 },
- { date: "2024-04-29", desktop: 315, mobile: 240 },
- { date: "2024-04-30", desktop: 454, mobile: 380 },
- { date: "2024-05-01", desktop: 165, mobile: 220 },
- { date: "2024-05-02", desktop: 293, mobile: 310 },
- { date: "2024-05-03", desktop: 247, mobile: 190 },
- { date: "2024-05-04", desktop: 385, mobile: 420 },
- { date: "2024-05-05", desktop: 481, mobile: 390 },
- { date: "2024-05-06", desktop: 498, mobile: 520 },
- { date: "2024-05-07", desktop: 388, mobile: 300 },
- { date: "2024-05-08", desktop: 149, mobile: 210 },
- { date: "2024-05-09", desktop: 227, mobile: 180 },
- { date: "2024-05-10", desktop: 293, mobile: 330 },
- { date: "2024-05-11", desktop: 335, mobile: 270 },
- { date: "2024-05-12", desktop: 197, mobile: 240 },
- { date: "2024-05-13", desktop: 197, mobile: 160 },
- { date: "2024-05-14", desktop: 448, mobile: 490 },
- { date: "2024-05-15", desktop: 473, mobile: 380 },
- { date: "2024-05-16", desktop: 338, mobile: 400 },
- { date: "2024-05-17", desktop: 499, mobile: 420 },
- { date: "2024-05-18", desktop: 315, mobile: 350 },
- { date: "2024-05-19", desktop: 235, mobile: 180 },
- { date: "2024-05-20", desktop: 177, mobile: 230 },
- { date: "2024-05-21", desktop: 82, mobile: 140 },
- { date: "2024-05-22", desktop: 81, mobile: 120 },
- { date: "2024-05-23", desktop: 252, mobile: 290 },
- { date: "2024-05-24", desktop: 294, mobile: 220 },
- { date: "2024-05-25", desktop: 201, mobile: 250 },
- { date: "2024-05-26", desktop: 213, mobile: 170 },
- { date: "2024-05-27", desktop: 420, mobile: 460 },
- { date: "2024-05-28", desktop: 233, mobile: 190 },
- { date: "2024-05-29", desktop: 78, mobile: 130 },
- { date: "2024-05-30", desktop: 340, mobile: 280 },
- { date: "2024-05-31", desktop: 178, mobile: 230 },
- { date: "2024-06-01", desktop: 178, mobile: 200 },
- { date: "2024-06-02", desktop: 470, mobile: 410 },
- { date: "2024-06-03", desktop: 103, mobile: 160 },
- { date: "2024-06-04", desktop: 439, mobile: 380 },
- { date: "2024-06-05", desktop: 88, mobile: 140 },
- { date: "2024-06-06", desktop: 294, mobile: 250 },
- { date: "2024-06-07", desktop: 323, mobile: 370 },
- { date: "2024-06-08", desktop: 385, mobile: 320 },
- { date: "2024-06-09", desktop: 438, mobile: 480 },
- { date: "2024-06-10", desktop: 155, mobile: 200 },
- { date: "2024-06-11", desktop: 92, mobile: 150 },
- { date: "2024-06-12", desktop: 492, mobile: 420 },
- { date: "2024-06-13", desktop: 81, mobile: 130 },
- { date: "2024-06-14", desktop: 426, mobile: 380 },
- { date: "2024-06-15", desktop: 307, mobile: 350 },
- { date: "2024-06-16", desktop: 371, mobile: 310 },
- { date: "2024-06-17", desktop: 475, mobile: 520 },
- { date: "2024-06-18", desktop: 107, mobile: 170 },
- { date: "2024-06-19", desktop: 341, mobile: 290 },
- { date: "2024-06-20", desktop: 408, mobile: 450 },
- { date: "2024-06-21", desktop: 169, mobile: 210 },
- { date: "2024-06-22", desktop: 317, mobile: 270 },
- { date: "2024-06-23", desktop: 480, mobile: 530 },
- { date: "2024-06-24", desktop: 132, mobile: 180 },
- { date: "2024-06-25", desktop: 141, mobile: 190 },
- { date: "2024-06-26", desktop: 434, mobile: 380 },
- { date: "2024-06-27", desktop: 448, mobile: 490 },
- { date: "2024-06-28", desktop: 149, mobile: 200 },
- { date: "2024-06-29", desktop: 103, mobile: 160 },
- { date: "2024-06-30", desktop: 446, mobile: 400 },
-]
-
-const chartConfig = {
- views: {
- label: "Page Views",
- },
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
- mobile: {
- label: "Mobile",
- color: "hsl(var(--chart-2))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- const [activeChart, setActiveChart] =
- React.useState("desktop")
-
- const total = React.useMemo(
- () => ({
- desktop: chartData.reduce((acc, curr) => acc + curr.desktop, 0),
- mobile: chartData.reduce((acc, curr) => acc + curr.mobile, 0),
- }),
- []
- )
-
- return (
-
-
-
- Bar Chart - Interactive
-
- Showing total visitors for the last 3 months
-
-
-
- {["desktop", "mobile"].map((key) => {
- const chart = key as keyof typeof chartConfig
- return (
- setActiveChart(chart)}
- >
-
- {chartConfig[chart].label}
-
-
- {total[key as keyof typeof total].toLocaleString()}
-
-
- )
- })}
-
-
-
-
-
-
- {
- const date = new Date(value)
- return date.toLocaleDateString("en-US", {
- month: "short",
- day: "numeric",
- })
- }}
- />
- {
- return new Date(value).toLocaleDateString("en-US", {
- month: "short",
- day: "numeric",
- year: "numeric",
- })
- }}
- />
- }
- />
-
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/blocks/chart-bar-label-custom.tsx b/deprecated/www/__registry__/default/blocks/chart-bar-label-custom.tsx
deleted file mode 100644
index bd16655bc7..0000000000
--- a/deprecated/www/__registry__/default/blocks/chart-bar-label-custom.tsx
+++ /dev/null
@@ -1,112 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { Bar, BarChart, CartesianGrid, LabelList, XAxis, YAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-
-export const description = "A bar chart with a custom label"
-
-const chartData = [
- { month: "January", desktop: 186, mobile: 80 },
- { month: "February", desktop: 305, mobile: 200 },
- { month: "March", desktop: 237, mobile: 120 },
- { month: "April", desktop: 73, mobile: 190 },
- { month: "May", desktop: 209, mobile: 130 },
- { month: "June", desktop: 214, mobile: 140 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
- mobile: {
- label: "Mobile",
- color: "hsl(var(--chart-2))",
- },
- label: {
- color: "hsl(var(--background))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Bar Chart - Custom Label
- January - June 2024
-
-
-
-
-
- value.slice(0, 3)}
- hide
- />
-
- }
- />
-
-
-
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- Showing total visitors for the last 6 months
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/blocks/chart-bar-label.tsx b/deprecated/www/__registry__/default/blocks/chart-bar-label.tsx
deleted file mode 100644
index c7ebea70e0..0000000000
--- a/deprecated/www/__registry__/default/blocks/chart-bar-label.tsx
+++ /dev/null
@@ -1,88 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { Bar, BarChart, CartesianGrid, LabelList, XAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-
-export const description = "A bar chart with a label"
-
-const chartData = [
- { month: "January", desktop: 186 },
- { month: "February", desktop: 305 },
- { month: "March", desktop: 237 },
- { month: "April", desktop: 73 },
- { month: "May", desktop: 209 },
- { month: "June", desktop: 214 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Bar Chart - Label
- January - June 2024
-
-
-
-
-
- value.slice(0, 3)}
- />
- }
- />
-
-
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- Showing total visitors for the last 6 months
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/blocks/chart-bar-mixed.tsx b/deprecated/www/__registry__/default/blocks/chart-bar-mixed.tsx
deleted file mode 100644
index fa3beea6fc..0000000000
--- a/deprecated/www/__registry__/default/blocks/chart-bar-mixed.tsx
+++ /dev/null
@@ -1,103 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { Bar, BarChart, XAxis, YAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-
-export const description = "A mixed bar chart"
-
-const chartData = [
- { browser: "chrome", visitors: 275, fill: "var(--color-chrome)" },
- { browser: "safari", visitors: 200, fill: "var(--color-safari)" },
- { browser: "firefox", visitors: 187, fill: "var(--color-firefox)" },
- { browser: "edge", visitors: 173, fill: "var(--color-edge)" },
- { browser: "other", visitors: 90, fill: "var(--color-other)" },
-]
-
-const chartConfig = {
- visitors: {
- label: "Visitors",
- },
- chrome: {
- label: "Chrome",
- color: "hsl(var(--chart-1))",
- },
- safari: {
- label: "Safari",
- color: "hsl(var(--chart-2))",
- },
- firefox: {
- label: "Firefox",
- color: "hsl(var(--chart-3))",
- },
- edge: {
- label: "Edge",
- color: "hsl(var(--chart-4))",
- },
- other: {
- label: "Other",
- color: "hsl(var(--chart-5))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Bar Chart - Mixed
- January - June 2024
-
-
-
-
-
- chartConfig[value as keyof typeof chartConfig]?.label
- }
- />
-
- }
- />
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- Showing total visitors for the last 6 months
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/blocks/chart-bar-multiple.tsx b/deprecated/www/__registry__/default/blocks/chart-bar-multiple.tsx
deleted file mode 100644
index 39b80fa76f..0000000000
--- a/deprecated/www/__registry__/default/blocks/chart-bar-multiple.tsx
+++ /dev/null
@@ -1,80 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { Bar, BarChart, CartesianGrid, XAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-
-export const description = "A multiple bar chart"
-
-const chartData = [
- { month: "January", desktop: 186, mobile: 80 },
- { month: "February", desktop: 305, mobile: 200 },
- { month: "March", desktop: 237, mobile: 120 },
- { month: "April", desktop: 73, mobile: 190 },
- { month: "May", desktop: 209, mobile: 130 },
- { month: "June", desktop: 214, mobile: 140 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
- mobile: {
- label: "Mobile",
- color: "hsl(var(--chart-2))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Bar Chart - Multiple
- January - June 2024
-
-
-
-
-
- value.slice(0, 3)}
- />
- }
- />
-
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- Showing total visitors for the last 6 months
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/blocks/chart-bar-negative.tsx b/deprecated/www/__registry__/default/blocks/chart-bar-negative.tsx
deleted file mode 100644
index f9e3b3e360..0000000000
--- a/deprecated/www/__registry__/default/blocks/chart-bar-negative.tsx
+++ /dev/null
@@ -1,79 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { Bar, BarChart, CartesianGrid, Cell, LabelList } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-
-export const description = "A bar chart with negative values"
-
-const chartData = [
- { month: "January", visitors: 186 },
- { month: "February", visitors: 205 },
- { month: "March", visitors: -207 },
- { month: "April", visitors: 173 },
- { month: "May", visitors: -209 },
- { month: "June", visitors: 214 },
-]
-
-const chartConfig = {
- visitors: {
- label: "Visitors",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Bar Chart - Negative
- January - June 2024
-
-
-
-
-
- }
- />
-
-
- {chartData.map((item) => (
- 0
- ? "hsl(var(--chart-1))"
- : "hsl(var(--chart-2))"
- }
- />
- ))}
- |
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- Showing total visitors for the last 6 months
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/blocks/chart-bar-stacked.tsx b/deprecated/www/__registry__/default/blocks/chart-bar-stacked.tsx
deleted file mode 100644
index 211bfe6aef..0000000000
--- a/deprecated/www/__registry__/default/blocks/chart-bar-stacked.tsx
+++ /dev/null
@@ -1,90 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { Bar, BarChart, CartesianGrid, XAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartLegend,
- ChartLegendContent,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-
-export const description = "A stacked bar chart with a legend"
-
-const chartData = [
- { month: "January", desktop: 186, mobile: 80 },
- { month: "February", desktop: 305, mobile: 200 },
- { month: "March", desktop: 237, mobile: 120 },
- { month: "April", desktop: 73, mobile: 190 },
- { month: "May", desktop: 209, mobile: 130 },
- { month: "June", desktop: 214, mobile: 140 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
- mobile: {
- label: "Mobile",
- color: "hsl(var(--chart-2))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Bar Chart - Stacked + Legend
- January - June 2024
-
-
-
-
-
- value.slice(0, 3)}
- />
- } />
- } />
-
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- Showing total visitors for the last 6 months
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/blocks/chart-line-default.tsx b/deprecated/www/__registry__/default/blocks/chart-line-default.tsx
deleted file mode 100644
index 24972697fc..0000000000
--- a/deprecated/www/__registry__/default/blocks/chart-line-default.tsx
+++ /dev/null
@@ -1,88 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { CartesianGrid, Line, LineChart, XAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-
-export const description = "A line chart"
-
-const chartData = [
- { month: "January", desktop: 186 },
- { month: "February", desktop: 305 },
- { month: "March", desktop: 237 },
- { month: "April", desktop: 73 },
- { month: "May", desktop: 209 },
- { month: "June", desktop: 214 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Line Chart
- January - June 2024
-
-
-
-
-
- value.slice(0, 3)}
- />
- }
- />
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- Showing total visitors for the last 6 months
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/blocks/chart-line-dots-colors.tsx b/deprecated/www/__registry__/default/blocks/chart-line-dots-colors.tsx
deleted file mode 100644
index e568ddd990..0000000000
--- a/deprecated/www/__registry__/default/blocks/chart-line-dots-colors.tsx
+++ /dev/null
@@ -1,118 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { CartesianGrid, Dot, Line, LineChart } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-
-export const description = "A line chart with dots and colors"
-
-const chartData = [
- { browser: "chrome", visitors: 275, fill: "var(--color-chrome)" },
- { browser: "safari", visitors: 200, fill: "var(--color-safari)" },
- { browser: "firefox", visitors: 187, fill: "var(--color-firefox)" },
- { browser: "edge", visitors: 173, fill: "var(--color-edge)" },
- { browser: "other", visitors: 90, fill: "var(--color-other)" },
-]
-
-const chartConfig = {
- visitors: {
- label: "Visitors",
- color: "hsl(var(--chart-2))",
- },
- chrome: {
- label: "Chrome",
- color: "hsl(var(--chart-1))",
- },
- safari: {
- label: "Safari",
- color: "hsl(var(--chart-2))",
- },
- firefox: {
- label: "Firefox",
- color: "hsl(var(--chart-3))",
- },
- edge: {
- label: "Edge",
- color: "hsl(var(--chart-4))",
- },
- other: {
- label: "Other",
- color: "hsl(var(--chart-5))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Line Chart - Dots Colors
- January - June 2024
-
-
-
-
-
-
- }
- />
- {
- return (
-
- )
- }}
- />
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- Showing total visitors for the last 6 months
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/blocks/chart-line-dots-custom.tsx b/deprecated/www/__registry__/default/blocks/chart-line-dots-custom.tsx
deleted file mode 100644
index 4eae4da575..0000000000
--- a/deprecated/www/__registry__/default/blocks/chart-line-dots-custom.tsx
+++ /dev/null
@@ -1,105 +0,0 @@
-"use client"
-
-import { GitCommitVertical, TrendingUp } from "lucide-react"
-import { CartesianGrid, Line, LineChart, XAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-
-export const description = "A line chart with custom dots"
-
-const chartData = [
- { month: "January", desktop: 186, mobile: 80 },
- { month: "February", desktop: 305, mobile: 200 },
- { month: "March", desktop: 237, mobile: 120 },
- { month: "April", desktop: 73, mobile: 190 },
- { month: "May", desktop: 209, mobile: 130 },
- { month: "June", desktop: 214, mobile: 140 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
- mobile: {
- label: "Mobile",
- color: "hsl(var(--chart-2))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Line Chart - Custom Dots
- January - June 2024
-
-
-
-
-
- value.slice(0, 3)}
- />
- }
- />
- {
- const r = 24
- return (
-
- )
- }}
- />
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- Showing total visitors for the last 6 months
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/blocks/chart-line-dots.tsx b/deprecated/www/__registry__/default/blocks/chart-line-dots.tsx
deleted file mode 100644
index d52f09148e..0000000000
--- a/deprecated/www/__registry__/default/blocks/chart-line-dots.tsx
+++ /dev/null
@@ -1,97 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { CartesianGrid, Line, LineChart, XAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-
-export const description = "A line chart with dots"
-
-const chartData = [
- { month: "January", desktop: 186, mobile: 80 },
- { month: "February", desktop: 305, mobile: 200 },
- { month: "March", desktop: 237, mobile: 120 },
- { month: "April", desktop: 73, mobile: 190 },
- { month: "May", desktop: 209, mobile: 130 },
- { month: "June", desktop: 214, mobile: 140 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
- mobile: {
- label: "Mobile",
- color: "hsl(var(--chart-2))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Line Chart - Dots
- January - June 2024
-
-
-
-
-
- value.slice(0, 3)}
- />
- }
- />
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- Showing total visitors for the last 6 months
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/blocks/chart-line-interactive.tsx b/deprecated/www/__registry__/default/blocks/chart-line-interactive.tsx
deleted file mode 100644
index 6f61820071..0000000000
--- a/deprecated/www/__registry__/default/blocks/chart-line-interactive.tsx
+++ /dev/null
@@ -1,227 +0,0 @@
-"use client"
-
-import * as React from "react"
-import { CartesianGrid, Line, LineChart, XAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-
-export const description = "An interactive line chart"
-
-const chartData = [
- { date: "2024-04-01", desktop: 222, mobile: 150 },
- { date: "2024-04-02", desktop: 97, mobile: 180 },
- { date: "2024-04-03", desktop: 167, mobile: 120 },
- { date: "2024-04-04", desktop: 242, mobile: 260 },
- { date: "2024-04-05", desktop: 373, mobile: 290 },
- { date: "2024-04-06", desktop: 301, mobile: 340 },
- { date: "2024-04-07", desktop: 245, mobile: 180 },
- { date: "2024-04-08", desktop: 409, mobile: 320 },
- { date: "2024-04-09", desktop: 59, mobile: 110 },
- { date: "2024-04-10", desktop: 261, mobile: 190 },
- { date: "2024-04-11", desktop: 327, mobile: 350 },
- { date: "2024-04-12", desktop: 292, mobile: 210 },
- { date: "2024-04-13", desktop: 342, mobile: 380 },
- { date: "2024-04-14", desktop: 137, mobile: 220 },
- { date: "2024-04-15", desktop: 120, mobile: 170 },
- { date: "2024-04-16", desktop: 138, mobile: 190 },
- { date: "2024-04-17", desktop: 446, mobile: 360 },
- { date: "2024-04-18", desktop: 364, mobile: 410 },
- { date: "2024-04-19", desktop: 243, mobile: 180 },
- { date: "2024-04-20", desktop: 89, mobile: 150 },
- { date: "2024-04-21", desktop: 137, mobile: 200 },
- { date: "2024-04-22", desktop: 224, mobile: 170 },
- { date: "2024-04-23", desktop: 138, mobile: 230 },
- { date: "2024-04-24", desktop: 387, mobile: 290 },
- { date: "2024-04-25", desktop: 215, mobile: 250 },
- { date: "2024-04-26", desktop: 75, mobile: 130 },
- { date: "2024-04-27", desktop: 383, mobile: 420 },
- { date: "2024-04-28", desktop: 122, mobile: 180 },
- { date: "2024-04-29", desktop: 315, mobile: 240 },
- { date: "2024-04-30", desktop: 454, mobile: 380 },
- { date: "2024-05-01", desktop: 165, mobile: 220 },
- { date: "2024-05-02", desktop: 293, mobile: 310 },
- { date: "2024-05-03", desktop: 247, mobile: 190 },
- { date: "2024-05-04", desktop: 385, mobile: 420 },
- { date: "2024-05-05", desktop: 481, mobile: 390 },
- { date: "2024-05-06", desktop: 498, mobile: 520 },
- { date: "2024-05-07", desktop: 388, mobile: 300 },
- { date: "2024-05-08", desktop: 149, mobile: 210 },
- { date: "2024-05-09", desktop: 227, mobile: 180 },
- { date: "2024-05-10", desktop: 293, mobile: 330 },
- { date: "2024-05-11", desktop: 335, mobile: 270 },
- { date: "2024-05-12", desktop: 197, mobile: 240 },
- { date: "2024-05-13", desktop: 197, mobile: 160 },
- { date: "2024-05-14", desktop: 448, mobile: 490 },
- { date: "2024-05-15", desktop: 473, mobile: 380 },
- { date: "2024-05-16", desktop: 338, mobile: 400 },
- { date: "2024-05-17", desktop: 499, mobile: 420 },
- { date: "2024-05-18", desktop: 315, mobile: 350 },
- { date: "2024-05-19", desktop: 235, mobile: 180 },
- { date: "2024-05-20", desktop: 177, mobile: 230 },
- { date: "2024-05-21", desktop: 82, mobile: 140 },
- { date: "2024-05-22", desktop: 81, mobile: 120 },
- { date: "2024-05-23", desktop: 252, mobile: 290 },
- { date: "2024-05-24", desktop: 294, mobile: 220 },
- { date: "2024-05-25", desktop: 201, mobile: 250 },
- { date: "2024-05-26", desktop: 213, mobile: 170 },
- { date: "2024-05-27", desktop: 420, mobile: 460 },
- { date: "2024-05-28", desktop: 233, mobile: 190 },
- { date: "2024-05-29", desktop: 78, mobile: 130 },
- { date: "2024-05-30", desktop: 340, mobile: 280 },
- { date: "2024-05-31", desktop: 178, mobile: 230 },
- { date: "2024-06-01", desktop: 178, mobile: 200 },
- { date: "2024-06-02", desktop: 470, mobile: 410 },
- { date: "2024-06-03", desktop: 103, mobile: 160 },
- { date: "2024-06-04", desktop: 439, mobile: 380 },
- { date: "2024-06-05", desktop: 88, mobile: 140 },
- { date: "2024-06-06", desktop: 294, mobile: 250 },
- { date: "2024-06-07", desktop: 323, mobile: 370 },
- { date: "2024-06-08", desktop: 385, mobile: 320 },
- { date: "2024-06-09", desktop: 438, mobile: 480 },
- { date: "2024-06-10", desktop: 155, mobile: 200 },
- { date: "2024-06-11", desktop: 92, mobile: 150 },
- { date: "2024-06-12", desktop: 492, mobile: 420 },
- { date: "2024-06-13", desktop: 81, mobile: 130 },
- { date: "2024-06-14", desktop: 426, mobile: 380 },
- { date: "2024-06-15", desktop: 307, mobile: 350 },
- { date: "2024-06-16", desktop: 371, mobile: 310 },
- { date: "2024-06-17", desktop: 475, mobile: 520 },
- { date: "2024-06-18", desktop: 107, mobile: 170 },
- { date: "2024-06-19", desktop: 341, mobile: 290 },
- { date: "2024-06-20", desktop: 408, mobile: 450 },
- { date: "2024-06-21", desktop: 169, mobile: 210 },
- { date: "2024-06-22", desktop: 317, mobile: 270 },
- { date: "2024-06-23", desktop: 480, mobile: 530 },
- { date: "2024-06-24", desktop: 132, mobile: 180 },
- { date: "2024-06-25", desktop: 141, mobile: 190 },
- { date: "2024-06-26", desktop: 434, mobile: 380 },
- { date: "2024-06-27", desktop: 448, mobile: 490 },
- { date: "2024-06-28", desktop: 149, mobile: 200 },
- { date: "2024-06-29", desktop: 103, mobile: 160 },
- { date: "2024-06-30", desktop: 446, mobile: 400 },
-]
-
-const chartConfig = {
- views: {
- label: "Page Views",
- },
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
- mobile: {
- label: "Mobile",
- color: "hsl(var(--chart-2))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- const [activeChart, setActiveChart] =
- React.useState("desktop")
-
- const total = React.useMemo(
- () => ({
- desktop: chartData.reduce((acc, curr) => acc + curr.desktop, 0),
- mobile: chartData.reduce((acc, curr) => acc + curr.mobile, 0),
- }),
- []
- )
-
- return (
-
-
-
- Line Chart - Interactive
-
- Showing total visitors for the last 3 months
-
-
-
- {["desktop", "mobile"].map((key) => {
- const chart = key as keyof typeof chartConfig
- return (
- setActiveChart(chart)}
- >
-
- {chartConfig[chart].label}
-
-
- {total[key as keyof typeof total].toLocaleString()}
-
-
- )
- })}
-
-
-
-
-
-
- {
- const date = new Date(value)
- return date.toLocaleDateString("en-US", {
- month: "short",
- day: "numeric",
- })
- }}
- />
- {
- return new Date(value).toLocaleDateString("en-US", {
- month: "short",
- day: "numeric",
- year: "numeric",
- })
- }}
- />
- }
- />
-
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/blocks/chart-line-label-custom.tsx b/deprecated/www/__registry__/default/blocks/chart-line-label-custom.tsx
deleted file mode 100644
index e6976bd892..0000000000
--- a/deprecated/www/__registry__/default/blocks/chart-line-label-custom.tsx
+++ /dev/null
@@ -1,123 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { CartesianGrid, LabelList, Line, LineChart } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-
-export const description = "A line chart with a custom label"
-
-const chartData = [
- { browser: "chrome", visitors: 275, fill: "var(--color-chrome)" },
- { browser: "safari", visitors: 200, fill: "var(--color-safari)" },
- { browser: "firefox", visitors: 187, fill: "var(--color-firefox)" },
- { browser: "edge", visitors: 173, fill: "var(--color-edge)" },
- { browser: "other", visitors: 90, fill: "var(--color-other)" },
-]
-
-const chartConfig = {
- visitors: {
- label: "Visitors",
- color: "hsl(var(--chart-2))",
- },
- chrome: {
- label: "Chrome",
- color: "hsl(var(--chart-1))",
- },
- safari: {
- label: "Safari",
- color: "hsl(var(--chart-2))",
- },
- firefox: {
- label: "Firefox",
- color: "hsl(var(--chart-3))",
- },
- edge: {
- label: "Edge",
- color: "hsl(var(--chart-4))",
- },
- other: {
- label: "Other",
- color: "hsl(var(--chart-5))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Line Chart - Custom Label
- January - June 2024
-
-
-
-
-
-
- }
- />
-
-
- chartConfig[value]?.label
- }
- />
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- Showing total visitors for the last 6 months
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/blocks/chart-line-label.tsx b/deprecated/www/__registry__/default/blocks/chart-line-label.tsx
deleted file mode 100644
index 159e103176..0000000000
--- a/deprecated/www/__registry__/default/blocks/chart-line-label.tsx
+++ /dev/null
@@ -1,105 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { CartesianGrid, LabelList, Line, LineChart, XAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-
-export const description = "A line chart with a label"
-
-const chartData = [
- { month: "January", desktop: 186, mobile: 80 },
- { month: "February", desktop: 305, mobile: 200 },
- { month: "March", desktop: 237, mobile: 120 },
- { month: "April", desktop: 73, mobile: 190 },
- { month: "May", desktop: 209, mobile: 130 },
- { month: "June", desktop: 214, mobile: 140 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
- mobile: {
- label: "Mobile",
- color: "hsl(var(--chart-2))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Line Chart - Label
- January - June 2024
-
-
-
-
-
- value.slice(0, 3)}
- />
- }
- />
-
-
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- Showing total visitors for the last 6 months
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/blocks/chart-line-linear.tsx b/deprecated/www/__registry__/default/blocks/chart-line-linear.tsx
deleted file mode 100644
index 9d3e06f5e9..0000000000
--- a/deprecated/www/__registry__/default/blocks/chart-line-linear.tsx
+++ /dev/null
@@ -1,88 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { CartesianGrid, Line, LineChart, XAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-
-export const description = "A linear line chart"
-
-const chartData = [
- { month: "January", desktop: 186 },
- { month: "February", desktop: 305 },
- { month: "March", desktop: 237 },
- { month: "April", desktop: 73 },
- { month: "May", desktop: 209 },
- { month: "June", desktop: 214 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Line Chart - Linear
- January - June 2024
-
-
-
-
-
- value.slice(0, 3)}
- />
- }
- />
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- Showing total visitors for the last 6 months
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/blocks/chart-line-multiple.tsx b/deprecated/www/__registry__/default/blocks/chart-line-multiple.tsx
deleted file mode 100644
index 61ea1d960f..0000000000
--- a/deprecated/www/__registry__/default/blocks/chart-line-multiple.tsx
+++ /dev/null
@@ -1,100 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { CartesianGrid, Line, LineChart, XAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-
-export const description = "A multiple line chart"
-
-const chartData = [
- { month: "January", desktop: 186, mobile: 80 },
- { month: "February", desktop: 305, mobile: 200 },
- { month: "March", desktop: 237, mobile: 120 },
- { month: "April", desktop: 73, mobile: 190 },
- { month: "May", desktop: 209, mobile: 130 },
- { month: "June", desktop: 214, mobile: 140 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
- mobile: {
- label: "Mobile",
- color: "hsl(var(--chart-2))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Line Chart - Multiple
- January - June 2024
-
-
-
-
-
- value.slice(0, 3)}
- />
- } />
-
-
-
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- Showing total visitors for the last 6 months
-
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/blocks/chart-line-step.tsx b/deprecated/www/__registry__/default/blocks/chart-line-step.tsx
deleted file mode 100644
index 608bd5f628..0000000000
--- a/deprecated/www/__registry__/default/blocks/chart-line-step.tsx
+++ /dev/null
@@ -1,88 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { CartesianGrid, Line, LineChart, XAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-
-export const description = "A line chart with step"
-
-const chartData = [
- { month: "January", desktop: 186 },
- { month: "February", desktop: 305 },
- { month: "March", desktop: 237 },
- { month: "April", desktop: 73 },
- { month: "May", desktop: 209 },
- { month: "June", desktop: 214 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Line Chart - Step
- January - June 2024
-
-
-
-
-
- value.slice(0, 3)}
- />
- }
- />
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- Showing total visitors for the last 6 months
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/blocks/chart-pie-donut-active.tsx b/deprecated/www/__registry__/default/blocks/chart-pie-donut-active.tsx
deleted file mode 100644
index 5a39041919..0000000000
--- a/deprecated/www/__registry__/default/blocks/chart-pie-donut-active.tsx
+++ /dev/null
@@ -1,102 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { Label, Pie, PieChart, Sector } from "recharts"
-import { PieSectorDataItem } from "recharts/types/polar/Pie"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-
-export const description = "A donut chart with an active sector"
-
-const chartData = [
- { browser: "chrome", visitors: 275, fill: "var(--color-chrome)" },
- { browser: "safari", visitors: 200, fill: "var(--color-safari)" },
- { browser: "firefox", visitors: 187, fill: "var(--color-firefox)" },
- { browser: "edge", visitors: 173, fill: "var(--color-edge)" },
- { browser: "other", visitors: 90, fill: "var(--color-other)" },
-]
-
-const chartConfig = {
- visitors: {
- label: "Visitors",
- },
- chrome: {
- label: "Chrome",
- color: "hsl(var(--chart-1))",
- },
- safari: {
- label: "Safari",
- color: "hsl(var(--chart-2))",
- },
- firefox: {
- label: "Firefox",
- color: "hsl(var(--chart-3))",
- },
- edge: {
- label: "Edge",
- color: "hsl(var(--chart-4))",
- },
- other: {
- label: "Other",
- color: "hsl(var(--chart-5))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Pie Chart - Donut Active
- January - June 2024
-
-
-
-
- }
- />
- (
-
- )}
- />
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- Showing total visitors for the last 6 months
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/blocks/chart-pie-donut-text.tsx b/deprecated/www/__registry__/default/blocks/chart-pie-donut-text.tsx
deleted file mode 100644
index ff5391ab1d..0000000000
--- a/deprecated/www/__registry__/default/blocks/chart-pie-donut-text.tsx
+++ /dev/null
@@ -1,129 +0,0 @@
-"use client"
-
-import * as React from "react"
-import { TrendingUp } from "lucide-react"
-import { Label, Pie, PieChart } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-
-export const description = "A donut chart with text"
-
-const chartData = [
- { browser: "chrome", visitors: 275, fill: "var(--color-chrome)" },
- { browser: "safari", visitors: 200, fill: "var(--color-safari)" },
- { browser: "firefox", visitors: 287, fill: "var(--color-firefox)" },
- { browser: "edge", visitors: 173, fill: "var(--color-edge)" },
- { browser: "other", visitors: 190, fill: "var(--color-other)" },
-]
-
-const chartConfig = {
- visitors: {
- label: "Visitors",
- },
- chrome: {
- label: "Chrome",
- color: "hsl(var(--chart-1))",
- },
- safari: {
- label: "Safari",
- color: "hsl(var(--chart-2))",
- },
- firefox: {
- label: "Firefox",
- color: "hsl(var(--chart-3))",
- },
- edge: {
- label: "Edge",
- color: "hsl(var(--chart-4))",
- },
- other: {
- label: "Other",
- color: "hsl(var(--chart-5))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- const totalVisitors = React.useMemo(() => {
- return chartData.reduce((acc, curr) => acc + curr.visitors, 0)
- }, [])
-
- return (
-
-
- Pie Chart - Donut with Text
- January - June 2024
-
-
-
-
- }
- />
-
- {
- if (viewBox && "cx" in viewBox && "cy" in viewBox) {
- return (
-
-
- {totalVisitors.toLocaleString()}
-
-
- Visitors
-
-
- )
- }
- }}
- />
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- Showing total visitors for the last 6 months
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/blocks/chart-pie-donut.tsx b/deprecated/www/__registry__/default/blocks/chart-pie-donut.tsx
deleted file mode 100644
index 45d17ecdd2..0000000000
--- a/deprecated/www/__registry__/default/blocks/chart-pie-donut.tsx
+++ /dev/null
@@ -1,93 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { Pie, PieChart } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-
-export const description = "A donut chart"
-
-const chartData = [
- { browser: "chrome", visitors: 275, fill: "var(--color-chrome)" },
- { browser: "safari", visitors: 200, fill: "var(--color-safari)" },
- { browser: "firefox", visitors: 187, fill: "var(--color-firefox)" },
- { browser: "edge", visitors: 173, fill: "var(--color-edge)" },
- { browser: "other", visitors: 90, fill: "var(--color-other)" },
-]
-
-const chartConfig = {
- visitors: {
- label: "Visitors",
- },
- chrome: {
- label: "Chrome",
- color: "hsl(var(--chart-1))",
- },
- safari: {
- label: "Safari",
- color: "hsl(var(--chart-2))",
- },
- firefox: {
- label: "Firefox",
- color: "hsl(var(--chart-3))",
- },
- edge: {
- label: "Edge",
- color: "hsl(var(--chart-4))",
- },
- other: {
- label: "Other",
- color: "hsl(var(--chart-5))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Pie Chart - Donut
- January - June 2024
-
-
-
-
- }
- />
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- Showing total visitors for the last 6 months
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/blocks/chart-pie-interactive.tsx b/deprecated/www/__registry__/default/blocks/chart-pie-interactive.tsx
deleted file mode 100644
index e1abb04262..0000000000
--- a/deprecated/www/__registry__/default/blocks/chart-pie-interactive.tsx
+++ /dev/null
@@ -1,192 +0,0 @@
-"use client"
-
-import * as React from "react"
-import { Label, Pie, PieChart, Sector } from "recharts"
-import { PieSectorDataItem } from "recharts/types/polar/Pie"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartStyle,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-import {
- Select,
- SelectContent,
- SelectItem,
- SelectTrigger,
- SelectValue,
-} from "@/registry/default/ui/select"
-
-export const description = "An interactive pie chart"
-
-const desktopData = [
- { month: "january", desktop: 186, fill: "var(--color-january)" },
- { month: "february", desktop: 305, fill: "var(--color-february)" },
- { month: "march", desktop: 237, fill: "var(--color-march)" },
- { month: "april", desktop: 173, fill: "var(--color-april)" },
- { month: "may", desktop: 209, fill: "var(--color-may)" },
-]
-
-const chartConfig = {
- visitors: {
- label: "Visitors",
- },
- desktop: {
- label: "Desktop",
- },
- mobile: {
- label: "Mobile",
- },
- january: {
- label: "January",
- color: "hsl(var(--chart-1))",
- },
- february: {
- label: "February",
- color: "hsl(var(--chart-2))",
- },
- march: {
- label: "March",
- color: "hsl(var(--chart-3))",
- },
- april: {
- label: "April",
- color: "hsl(var(--chart-4))",
- },
- may: {
- label: "May",
- color: "hsl(var(--chart-5))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- const id = "pie-interactive"
- const [activeMonth, setActiveMonth] = React.useState(desktopData[0].month)
-
- const activeIndex = React.useMemo(
- () => desktopData.findIndex((item) => item.month === activeMonth),
- [activeMonth]
- )
- const months = React.useMemo(() => desktopData.map((item) => item.month), [])
-
- return (
-
-
-
-
- Pie Chart - Interactive
- January - June 2024
-
-
-
-
-
-
- {months.map((key) => {
- const config = chartConfig[key as keyof typeof chartConfig]
-
- if (!config) {
- return null
- }
-
- return (
-
-
-
- {config?.label}
-
-
- )
- })}
-
-
-
-
-
-
- }
- />
- (
-
-
-
-
- )}
- >
- {
- if (viewBox && "cx" in viewBox && "cy" in viewBox) {
- return (
-
-
- {desktopData[activeIndex].desktop.toLocaleString()}
-
-
- Visitors
-
-
- )
- }
- }}
- />
-
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/blocks/chart-pie-label-custom.tsx b/deprecated/www/__registry__/default/blocks/chart-pie-label-custom.tsx
deleted file mode 100644
index 4b8c616214..0000000000
--- a/deprecated/www/__registry__/default/blocks/chart-pie-label-custom.tsx
+++ /dev/null
@@ -1,107 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { Pie, PieChart } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-
-export const description = "A pie chart with a custom label"
-
-const chartData = [
- { browser: "chrome", visitors: 275, fill: "var(--color-chrome)" },
- { browser: "safari", visitors: 200, fill: "var(--color-safari)" },
- { browser: "firefox", visitors: 187, fill: "var(--color-firefox)" },
- { browser: "edge", visitors: 173, fill: "var(--color-edge)" },
- { browser: "other", visitors: 90, fill: "var(--color-other)" },
-]
-
-const chartConfig = {
- visitors: {
- label: "Visitors",
- },
- chrome: {
- label: "Chrome",
- color: "hsl(var(--chart-1))",
- },
- safari: {
- label: "Safari",
- color: "hsl(var(--chart-2))",
- },
- firefox: {
- label: "Firefox",
- color: "hsl(var(--chart-3))",
- },
- edge: {
- label: "Edge",
- color: "hsl(var(--chart-4))",
- },
- other: {
- label: "Other",
- color: "hsl(var(--chart-5))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Pie Chart - Custom Label
- January - June 2024
-
-
-
-
- }
- />
- {
- return (
-
- {payload.visitors}
-
- )
- }}
- nameKey="browser"
- />
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- Showing total visitors for the last 6 months
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/blocks/chart-pie-label-list.tsx b/deprecated/www/__registry__/default/blocks/chart-pie-label-list.tsx
deleted file mode 100644
index 6b083fb02a..0000000000
--- a/deprecated/www/__registry__/default/blocks/chart-pie-label-list.tsx
+++ /dev/null
@@ -1,97 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { LabelList, Pie, PieChart } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-
-export const description = "A pie chart with a label list"
-
-const chartData = [
- { browser: "chrome", visitors: 275, fill: "var(--color-chrome)" },
- { browser: "safari", visitors: 200, fill: "var(--color-safari)" },
- { browser: "firefox", visitors: 187, fill: "var(--color-firefox)" },
- { browser: "edge", visitors: 173, fill: "var(--color-edge)" },
- { browser: "other", visitors: 90, fill: "var(--color-other)" },
-]
-
-const chartConfig = {
- visitors: {
- label: "Visitors",
- },
- chrome: {
- label: "Chrome",
- color: "hsl(var(--chart-1))",
- },
- safari: {
- label: "Safari",
- color: "hsl(var(--chart-2))",
- },
- firefox: {
- label: "Firefox",
- color: "hsl(var(--chart-3))",
- },
- edge: {
- label: "Edge",
- color: "hsl(var(--chart-4))",
- },
- other: {
- label: "Other",
- color: "hsl(var(--chart-5))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Pie Chart - Label List
- January - June 2024
-
-
-
-
- }
- />
-
-
- chartConfig[value]?.label
- }
- />
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- Showing total visitors for the last 6 months
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/blocks/chart-pie-label.tsx b/deprecated/www/__registry__/default/blocks/chart-pie-label.tsx
deleted file mode 100644
index 26c294cd65..0000000000
--- a/deprecated/www/__registry__/default/blocks/chart-pie-label.tsx
+++ /dev/null
@@ -1,85 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { Pie, PieChart } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-
-export const description = "A pie chart with a label"
-
-const chartData = [
- { browser: "chrome", visitors: 275, fill: "var(--color-chrome)" },
- { browser: "safari", visitors: 200, fill: "var(--color-safari)" },
- { browser: "firefox", visitors: 187, fill: "var(--color-firefox)" },
- { browser: "edge", visitors: 173, fill: "var(--color-edge)" },
- { browser: "other", visitors: 90, fill: "var(--color-other)" },
-]
-
-const chartConfig = {
- visitors: {
- label: "Visitors",
- },
- chrome: {
- label: "Chrome",
- color: "hsl(var(--chart-1))",
- },
- safari: {
- label: "Safari",
- color: "hsl(var(--chart-2))",
- },
- firefox: {
- label: "Firefox",
- color: "hsl(var(--chart-3))",
- },
- edge: {
- label: "Edge",
- color: "hsl(var(--chart-4))",
- },
- other: {
- label: "Other",
- color: "hsl(var(--chart-5))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Pie Chart - Label
- January - June 2024
-
-
-
-
- } />
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- Showing total visitors for the last 6 months
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/blocks/chart-pie-legend.tsx b/deprecated/www/__registry__/default/blocks/chart-pie-legend.tsx
deleted file mode 100644
index 3e3d7534a8..0000000000
--- a/deprecated/www/__registry__/default/blocks/chart-pie-legend.tsx
+++ /dev/null
@@ -1,78 +0,0 @@
-"use client"
-
-import { Pie, PieChart } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartLegend,
- ChartLegendContent,
-} from "@/registry/default/ui/chart"
-
-export const description = "A pie chart with a legend"
-
-const chartData = [
- { browser: "chrome", visitors: 275, fill: "var(--color-chrome)" },
- { browser: "safari", visitors: 200, fill: "var(--color-safari)" },
- { browser: "firefox", visitors: 187, fill: "var(--color-firefox)" },
- { browser: "edge", visitors: 173, fill: "var(--color-edge)" },
- { browser: "other", visitors: 90, fill: "var(--color-other)" },
-]
-
-const chartConfig = {
- visitors: {
- label: "Visitors",
- },
- chrome: {
- label: "Chrome",
- color: "hsl(var(--chart-1))",
- },
- safari: {
- label: "Safari",
- color: "hsl(var(--chart-2))",
- },
- firefox: {
- label: "Firefox",
- color: "hsl(var(--chart-3))",
- },
- edge: {
- label: "Edge",
- color: "hsl(var(--chart-4))",
- },
- other: {
- label: "Other",
- color: "hsl(var(--chart-5))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Pie Chart - Legend
- January - June 2024
-
-
-
-
-
- }
- className="-translate-y-2 flex-wrap gap-2 [&>*]:basis-1/4 [&>*]:justify-center"
- />
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/blocks/chart-pie-separator-none.tsx b/deprecated/www/__registry__/default/blocks/chart-pie-separator-none.tsx
deleted file mode 100644
index 08ec2b5633..0000000000
--- a/deprecated/www/__registry__/default/blocks/chart-pie-separator-none.tsx
+++ /dev/null
@@ -1,93 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { Pie, PieChart } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-
-export const description = "A pie chart with no separator"
-
-const chartData = [
- { browser: "chrome", visitors: 275, fill: "var(--color-chrome)" },
- { browser: "safari", visitors: 200, fill: "var(--color-safari)" },
- { browser: "firefox", visitors: 187, fill: "var(--color-firefox)" },
- { browser: "edge", visitors: 173, fill: "var(--color-edge)" },
- { browser: "other", visitors: 90, fill: "var(--color-other)" },
-]
-
-const chartConfig = {
- visitors: {
- label: "Visitors",
- },
- chrome: {
- label: "Chrome",
- color: "hsl(var(--chart-1))",
- },
- safari: {
- label: "Safari",
- color: "hsl(var(--chart-2))",
- },
- firefox: {
- label: "Firefox",
- color: "hsl(var(--chart-3))",
- },
- edge: {
- label: "Edge",
- color: "hsl(var(--chart-4))",
- },
- other: {
- label: "Other",
- color: "hsl(var(--chart-5))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Pie Chart - Separator None
- January - June 2024
-
-
-
-
- }
- />
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- Showing total visitors for the last 6 months
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/blocks/chart-pie-simple.tsx b/deprecated/www/__registry__/default/blocks/chart-pie-simple.tsx
deleted file mode 100644
index 5108126f71..0000000000
--- a/deprecated/www/__registry__/default/blocks/chart-pie-simple.tsx
+++ /dev/null
@@ -1,88 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { Pie, PieChart } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-
-export const description = "A simple pie chart"
-
-const chartData = [
- { browser: "chrome", visitors: 275, fill: "var(--color-chrome)" },
- { browser: "safari", visitors: 200, fill: "var(--color-safari)" },
- { browser: "firefox", visitors: 187, fill: "var(--color-firefox)" },
- { browser: "edge", visitors: 173, fill: "var(--color-edge)" },
- { browser: "other", visitors: 90, fill: "var(--color-other)" },
-]
-
-const chartConfig = {
- visitors: {
- label: "Visitors",
- },
- chrome: {
- label: "Chrome",
- color: "hsl(var(--chart-1))",
- },
- safari: {
- label: "Safari",
- color: "hsl(var(--chart-2))",
- },
- firefox: {
- label: "Firefox",
- color: "hsl(var(--chart-3))",
- },
- edge: {
- label: "Edge",
- color: "hsl(var(--chart-4))",
- },
- other: {
- label: "Other",
- color: "hsl(var(--chart-5))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Pie Chart
- January - June 2024
-
-
-
-
- }
- />
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- Showing total visitors for the last 6 months
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/blocks/chart-pie-stacked.tsx b/deprecated/www/__registry__/default/blocks/chart-pie-stacked.tsx
deleted file mode 100644
index db8b0efbbc..0000000000
--- a/deprecated/www/__registry__/default/blocks/chart-pie-stacked.tsx
+++ /dev/null
@@ -1,119 +0,0 @@
-"use client"
-
-import * as React from "react"
-import { TrendingUp } from "lucide-react"
-import { Label, Pie, PieChart } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-
-export const description = "A pie chart with stacked sections"
-
-const desktopData = [
- { month: "january", desktop: 186, fill: "var(--color-january)" },
- { month: "february", desktop: 305, fill: "var(--color-february)" },
- { month: "march", desktop: 237, fill: "var(--color-march)" },
- { month: "april", desktop: 173, fill: "var(--color-april)" },
- { month: "may", desktop: 209, fill: "var(--color-may)" },
-]
-
-const mobileData = [
- { month: "january", mobile: 80, fill: "var(--color-january)" },
- { month: "february", mobile: 200, fill: "var(--color-february)" },
- { month: "march", mobile: 120, fill: "var(--color-march)" },
- { month: "april", mobile: 190, fill: "var(--color-april)" },
- { month: "may", mobile: 130, fill: "var(--color-may)" },
-]
-
-const chartConfig = {
- visitors: {
- label: "Visitors",
- },
- desktop: {
- label: "Desktop",
- },
- mobile: {
- label: "Mobile",
- },
- january: {
- label: "January",
- color: "hsl(var(--chart-1))",
- },
- february: {
- label: "February",
- color: "hsl(var(--chart-2))",
- },
- march: {
- label: "March",
- color: "hsl(var(--chart-3))",
- },
- april: {
- label: "April",
- color: "hsl(var(--chart-4))",
- },
- may: {
- label: "May",
- color: "hsl(var(--chart-5))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Pie Chart - Stacked
- January - June 2024
-
-
-
-
- {
- return chartConfig[
- payload?.[0].dataKey as keyof typeof chartConfig
- ].label
- }}
- />
- }
- />
-
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- Showing total visitors for the last 6 months
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/blocks/chart-radar-default.tsx b/deprecated/www/__registry__/default/blocks/chart-radar-default.tsx
deleted file mode 100644
index e4b4185684..0000000000
--- a/deprecated/www/__registry__/default/blocks/chart-radar-default.tsx
+++ /dev/null
@@ -1,75 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { PolarAngleAxis, PolarGrid, Radar, RadarChart } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-
-export const description = "A radar chart"
-
-const chartData = [
- { month: "January", desktop: 186 },
- { month: "February", desktop: 305 },
- { month: "March", desktop: 237 },
- { month: "April", desktop: 273 },
- { month: "May", desktop: 209 },
- { month: "June", desktop: 214 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Radar Chart
-
- Showing total visitors for the last 6 months
-
-
-
-
-
- } />
-
-
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- January - June 2024
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/blocks/chart-radar-dots.tsx b/deprecated/www/__registry__/default/blocks/chart-radar-dots.tsx
deleted file mode 100644
index 461a229540..0000000000
--- a/deprecated/www/__registry__/default/blocks/chart-radar-dots.tsx
+++ /dev/null
@@ -1,79 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { PolarAngleAxis, PolarGrid, Radar, RadarChart } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-
-export const description = "A radar chart with dots"
-
-const chartData = [
- { month: "January", desktop: 186 },
- { month: "February", desktop: 305 },
- { month: "March", desktop: 237 },
- { month: "April", desktop: 273 },
- { month: "May", desktop: 209 },
- { month: "June", desktop: 214 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Radar Chart - Dots
-
- Showing total visitors for the last 6 months
-
-
-
-
-
- } />
-
-
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- January - June 2024
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/blocks/chart-radar-grid-circle-fill.tsx b/deprecated/www/__registry__/default/blocks/chart-radar-grid-circle-fill.tsx
deleted file mode 100644
index 0bed543195..0000000000
--- a/deprecated/www/__registry__/default/blocks/chart-radar-grid-circle-fill.tsx
+++ /dev/null
@@ -1,78 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { PolarAngleAxis, PolarGrid, Radar, RadarChart } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-
-export const description = "A radar chart with a grid and circle fill"
-
-const chartData = [
- { month: "January", desktop: 186 },
- { month: "February", desktop: 285 },
- { month: "March", desktop: 237 },
- { month: "April", desktop: 203 },
- { month: "May", desktop: 209 },
- { month: "June", desktop: 264 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Radar Chart - Grid Circle Filled
-
- Showing total visitors for the last 6 months
-
-
-
-
-
- } />
-
-
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- January - June 2024
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/blocks/chart-radar-grid-circle-no-lines.tsx b/deprecated/www/__registry__/default/blocks/chart-radar-grid-circle-no-lines.tsx
deleted file mode 100644
index 332a86b3cb..0000000000
--- a/deprecated/www/__registry__/default/blocks/chart-radar-grid-circle-no-lines.tsx
+++ /dev/null
@@ -1,82 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { PolarAngleAxis, PolarGrid, Radar, RadarChart } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-
-export const description = "A radar chart with a grid and circle fill"
-
-const chartData = [
- { month: "January", desktop: 186 },
- { month: "February", desktop: 305 },
- { month: "March", desktop: 237 },
- { month: "April", desktop: 203 },
- { month: "May", desktop: 209 },
- { month: "June", desktop: 214 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Radar Chart - Grid Circle - No lines
-
- Showing total visitors for the last 6 months
-
-
-
-
-
- }
- />
-
-
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- January - June 2024
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/blocks/chart-radar-grid-circle.tsx b/deprecated/www/__registry__/default/blocks/chart-radar-grid-circle.tsx
deleted file mode 100644
index e6b3a569c4..0000000000
--- a/deprecated/www/__registry__/default/blocks/chart-radar-grid-circle.tsx
+++ /dev/null
@@ -1,82 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { PolarAngleAxis, PolarGrid, Radar, RadarChart } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-
-export const description = "A radar chart with a grid and circle"
-
-const chartData = [
- { month: "January", desktop: 186 },
- { month: "February", desktop: 305 },
- { month: "March", desktop: 237 },
- { month: "April", desktop: 273 },
- { month: "May", desktop: 209 },
- { month: "June", desktop: 214 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Radar Chart - Grid Circle
-
- Showing total visitors for the last 6 months
-
-
-
-
-
- }
- />
-
-
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- January - June 2024
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/blocks/chart-radar-grid-custom.tsx b/deprecated/www/__registry__/default/blocks/chart-radar-grid-custom.tsx
deleted file mode 100644
index 738d9f7c2a..0000000000
--- a/deprecated/www/__registry__/default/blocks/chart-radar-grid-custom.tsx
+++ /dev/null
@@ -1,78 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { PolarAngleAxis, PolarGrid, Radar, RadarChart } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-
-export const description = "A radar chart with a custom grid"
-
-const chartData = [
- { month: "January", desktop: 186 },
- { month: "February", desktop: 305 },
- { month: "March", desktop: 237 },
- { month: "April", desktop: 273 },
- { month: "May", desktop: 209 },
- { month: "June", desktop: 214 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Radar Chart - Grid Custom
-
- Showing total visitors for the last 6 months
-
-
-
-
-
- }
- />
-
-
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- January - June 2024
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/blocks/chart-radar-grid-fill.tsx b/deprecated/www/__registry__/default/blocks/chart-radar-grid-fill.tsx
deleted file mode 100644
index 182b08f51a..0000000000
--- a/deprecated/www/__registry__/default/blocks/chart-radar-grid-fill.tsx
+++ /dev/null
@@ -1,78 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { PolarAngleAxis, PolarGrid, Radar, RadarChart } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-
-export const description = "A radar chart with a grid filled"
-
-const chartData = [
- { month: "January", desktop: 186 },
- { month: "February", desktop: 285 },
- { month: "March", desktop: 237 },
- { month: "April", desktop: 203 },
- { month: "May", desktop: 209 },
- { month: "June", desktop: 264 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Radar Chart - Grid Filled
-
- Showing total visitors for the last 6 months
-
-
-
-
-
- }
- />
-
-
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- January - June 2024
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/blocks/chart-radar-grid-none.tsx b/deprecated/www/__registry__/default/blocks/chart-radar-grid-none.tsx
deleted file mode 100644
index 348075e832..0000000000
--- a/deprecated/www/__registry__/default/blocks/chart-radar-grid-none.tsx
+++ /dev/null
@@ -1,81 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { PolarAngleAxis, Radar, RadarChart } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-
-export const description = "A radar chart with no grid"
-
-const chartData = [
- { month: "January", desktop: 186 },
- { month: "February", desktop: 305 },
- { month: "March", desktop: 237 },
- { month: "April", desktop: 273 },
- { month: "May", desktop: 209 },
- { month: "June", desktop: 214 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Radar Chart - Grid None
-
- Showing total visitors for the last 6 months
-
-
-
-
-
- }
- />
-
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- January - June 2024
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/blocks/chart-radar-icons.tsx b/deprecated/www/__registry__/default/blocks/chart-radar-icons.tsx
deleted file mode 100644
index efbbf89c8b..0000000000
--- a/deprecated/www/__registry__/default/blocks/chart-radar-icons.tsx
+++ /dev/null
@@ -1,94 +0,0 @@
-"use client"
-
-import { ArrowDownFromLine, ArrowUpFromLine, TrendingUp } from "lucide-react"
-import { PolarAngleAxis, PolarGrid, Radar, RadarChart } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartLegend,
- ChartLegendContent,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-
-export const description = "A radar chart with icons"
-
-const chartData = [
- { month: "January", desktop: 186, mobile: 80 },
- { month: "February", desktop: 305, mobile: 200 },
- { month: "March", desktop: 237, mobile: 120 },
- { month: "April", desktop: 73, mobile: 190 },
- { month: "May", desktop: 209, mobile: 130 },
- { month: "June", desktop: 214, mobile: 140 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- icon: ArrowDownFromLine,
- },
- mobile: {
- label: "Mobile",
- color: "hsl(var(--chart-2))",
- icon: ArrowUpFromLine,
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Radar Chart - Icons
-
- Showing total visitors for the last 6 months
-
-
-
-
-
- }
- />
-
-
-
-
- } />
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- January - June 2024
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/blocks/chart-radar-label-custom.tsx b/deprecated/www/__registry__/default/blocks/chart-radar-label-custom.tsx
deleted file mode 100644
index 4e65b8996d..0000000000
--- a/deprecated/www/__registry__/default/blocks/chart-radar-label-custom.tsx
+++ /dev/null
@@ -1,120 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { PolarAngleAxis, PolarGrid, Radar, RadarChart } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-
-export const description = "A radar chart with a custom label"
-
-const chartData = [
- { month: "January", desktop: 186, mobile: 80 },
- { month: "February", desktop: 305, mobile: 200 },
- { month: "March", desktop: 237, mobile: 120 },
- { month: "April", desktop: 73, mobile: 190 },
- { month: "May", desktop: 209, mobile: 130 },
- { month: "June", desktop: 214, mobile: 140 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
- mobile: {
- label: "Mobile",
- color: "hsl(var(--chart-2))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Radar Chart - Custom Label
-
- Showing total visitors for the last 6 months
-
-
-
-
-
- }
- />
- {
- const data = chartData[index]
-
- return (
-
- {data.desktop}
- /
- {data.mobile}
-
- {data.month}
-
-
- )
- }}
- />
-
-
-
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- January - June 2024
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/blocks/chart-radar-legend.tsx b/deprecated/www/__registry__/default/blocks/chart-radar-legend.tsx
deleted file mode 100644
index 535bc82c07..0000000000
--- a/deprecated/www/__registry__/default/blocks/chart-radar-legend.tsx
+++ /dev/null
@@ -1,92 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { PolarAngleAxis, PolarGrid, Radar, RadarChart } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartLegend,
- ChartLegendContent,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-
-export const description = "A radar chart with a legend"
-
-const chartData = [
- { month: "January", desktop: 186, mobile: 80 },
- { month: "February", desktop: 305, mobile: 200 },
- { month: "March", desktop: 237, mobile: 120 },
- { month: "April", desktop: 73, mobile: 190 },
- { month: "May", desktop: 209, mobile: 130 },
- { month: "June", desktop: 214, mobile: 140 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
- mobile: {
- label: "Mobile",
- color: "hsl(var(--chart-2))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Radar Chart - Legend
-
- Showing total visitors for the last 6 months
-
-
-
-
-
- }
- />
-
-
-
-
- } />
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- January - June 2024
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/blocks/chart-radar-lines-only.tsx b/deprecated/www/__registry__/default/blocks/chart-radar-lines-only.tsx
deleted file mode 100644
index c6e0c52525..0000000000
--- a/deprecated/www/__registry__/default/blocks/chart-radar-lines-only.tsx
+++ /dev/null
@@ -1,91 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { PolarAngleAxis, PolarGrid, Radar, RadarChart } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-
-export const description = "A radar chart with lines only"
-
-const chartData = [
- { month: "January", desktop: 186, mobile: 160 },
- { month: "February", desktop: 185, mobile: 170 },
- { month: "March", desktop: 207, mobile: 180 },
- { month: "April", desktop: 173, mobile: 160 },
- { month: "May", desktop: 160, mobile: 190 },
- { month: "June", desktop: 174, mobile: 204 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
- mobile: {
- label: "Mobile",
- color: "hsl(var(--chart-2))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Radar Chart - Lines Only
-
- Showing total visitors for the last 6 months
-
-
-
-
-
- }
- />
-
-
-
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- January - June 2024
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/blocks/chart-radar-multiple.tsx b/deprecated/www/__registry__/default/blocks/chart-radar-multiple.tsx
deleted file mode 100644
index 2463d7ae31..0000000000
--- a/deprecated/www/__registry__/default/blocks/chart-radar-multiple.tsx
+++ /dev/null
@@ -1,83 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { PolarAngleAxis, PolarGrid, Radar, RadarChart } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-
-export const description = "A radar chart with multiple data"
-
-const chartData = [
- { month: "January", desktop: 186, mobile: 80 },
- { month: "February", desktop: 305, mobile: 200 },
- { month: "March", desktop: 237, mobile: 120 },
- { month: "April", desktop: 73, mobile: 190 },
- { month: "May", desktop: 209, mobile: 130 },
- { month: "June", desktop: 214, mobile: 140 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
- mobile: {
- label: "Mobile",
- color: "hsl(var(--chart-2))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Radar Chart - Multiple
-
- Showing total visitors for the last 6 months
-
-
-
-
-
- }
- />
-
-
-
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- January - June 2024
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/blocks/chart-radar-radius.tsx b/deprecated/www/__registry__/default/blocks/chart-radar-radius.tsx
deleted file mode 100644
index 22cbe8e197..0000000000
--- a/deprecated/www/__registry__/default/blocks/chart-radar-radius.tsx
+++ /dev/null
@@ -1,96 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import {
- PolarAngleAxis,
- PolarGrid,
- PolarRadiusAxis,
- Radar,
- RadarChart,
-} from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-
-export const description = "A radar chart with a radius axis"
-
-const chartData = [
- { month: "January", desktop: 186, mobile: 80 },
- { month: "February", desktop: 305, mobile: 200 },
- { month: "March", desktop: 237, mobile: 120 },
- { month: "April", desktop: 73, mobile: 190 },
- { month: "May", desktop: 209, mobile: 130 },
- { month: "June", desktop: 214, mobile: 140 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
- mobile: {
- label: "Mobile",
- color: "hsl(var(--chart-2))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Radar Chart - Radius Axis
-
- Showing total visitors for the last 6 months
-
-
-
-
-
-
- }
- />
-
-
-
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- January - June 2024
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/blocks/chart-radial-grid.tsx b/deprecated/www/__registry__/default/blocks/chart-radial-grid.tsx
deleted file mode 100644
index cc91ba2c8b..0000000000
--- a/deprecated/www/__registry__/default/blocks/chart-radial-grid.tsx
+++ /dev/null
@@ -1,89 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { PolarGrid, RadialBar, RadialBarChart } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-
-export const description = "A radial chart with a grid"
-
-const chartData = [
- { browser: "chrome", visitors: 275, fill: "var(--color-chrome)" },
- { browser: "safari", visitors: 200, fill: "var(--color-safari)" },
- { browser: "firefox", visitors: 187, fill: "var(--color-firefox)" },
- { browser: "edge", visitors: 173, fill: "var(--color-edge)" },
- { browser: "other", visitors: 90, fill: "var(--color-other)" },
-]
-
-const chartConfig = {
- visitors: {
- label: "Visitors",
- },
- chrome: {
- label: "Chrome",
- color: "hsl(var(--chart-1))",
- },
- safari: {
- label: "Safari",
- color: "hsl(var(--chart-2))",
- },
- firefox: {
- label: "Firefox",
- color: "hsl(var(--chart-3))",
- },
- edge: {
- label: "Edge",
- color: "hsl(var(--chart-4))",
- },
- other: {
- label: "Other",
- color: "hsl(var(--chart-5))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Radial Chart - Grid
- January - June 2024
-
-
-
-
- }
- />
-
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- Showing total visitors for the last 6 months
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/blocks/chart-radial-label.tsx b/deprecated/www/__registry__/default/blocks/chart-radial-label.tsx
deleted file mode 100644
index 179a919f6c..0000000000
--- a/deprecated/www/__registry__/default/blocks/chart-radial-label.tsx
+++ /dev/null
@@ -1,101 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { LabelList, RadialBar, RadialBarChart } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-
-export const description = "A radial chart with a label"
-
-const chartData = [
- { browser: "chrome", visitors: 275, fill: "var(--color-chrome)" },
- { browser: "safari", visitors: 200, fill: "var(--color-safari)" },
- { browser: "firefox", visitors: 187, fill: "var(--color-firefox)" },
- { browser: "edge", visitors: 173, fill: "var(--color-edge)" },
- { browser: "other", visitors: 90, fill: "var(--color-other)" },
-]
-
-const chartConfig = {
- visitors: {
- label: "Visitors",
- },
- chrome: {
- label: "Chrome",
- color: "hsl(var(--chart-1))",
- },
- safari: {
- label: "Safari",
- color: "hsl(var(--chart-2))",
- },
- firefox: {
- label: "Firefox",
- color: "hsl(var(--chart-3))",
- },
- edge: {
- label: "Edge",
- color: "hsl(var(--chart-4))",
- },
- other: {
- label: "Other",
- color: "hsl(var(--chart-5))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Radial Chart - Label
- January - June 2024
-
-
-
-
- }
- />
-
-
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- Showing total visitors for the last 6 months
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/blocks/chart-radial-shape.tsx b/deprecated/www/__registry__/default/blocks/chart-radial-shape.tsx
deleted file mode 100644
index bd3754e986..0000000000
--- a/deprecated/www/__registry__/default/blocks/chart-radial-shape.tsx
+++ /dev/null
@@ -1,108 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import {
- Label,
- PolarGrid,
- PolarRadiusAxis,
- RadialBar,
- RadialBarChart,
-} from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import { ChartConfig, ChartContainer } from "@/registry/default/ui/chart"
-
-export const description = "A radial chart with a custom shape"
-
-const chartData = [
- { browser: "safari", visitors: 1260, fill: "var(--color-safari)" },
-]
-
-const chartConfig = {
- visitors: {
- label: "Visitors",
- },
- safari: {
- label: "Safari",
- color: "hsl(var(--chart-2))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Radial Chart - Shape
- January - June 2024
-
-
-
-
-
-
-
- {
- if (viewBox && "cx" in viewBox && "cy" in viewBox) {
- return (
-
-
- {chartData[0].visitors.toLocaleString()}
-
-
- Visitors
-
-
- )
- }
- }}
- />
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- Showing total visitors for the last 6 months
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/blocks/chart-radial-simple.tsx b/deprecated/www/__registry__/default/blocks/chart-radial-simple.tsx
deleted file mode 100644
index 57a8030230..0000000000
--- a/deprecated/www/__registry__/default/blocks/chart-radial-simple.tsx
+++ /dev/null
@@ -1,88 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { RadialBar, RadialBarChart } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-
-export const description = "A radial chart"
-
-const chartData = [
- { browser: "chrome", visitors: 275, fill: "var(--color-chrome)" },
- { browser: "safari", visitors: 200, fill: "var(--color-safari)" },
- { browser: "firefox", visitors: 187, fill: "var(--color-firefox)" },
- { browser: "edge", visitors: 173, fill: "var(--color-edge)" },
- { browser: "other", visitors: 90, fill: "var(--color-other)" },
-]
-
-const chartConfig = {
- visitors: {
- label: "Visitors",
- },
- chrome: {
- label: "Chrome",
- color: "hsl(var(--chart-1))",
- },
- safari: {
- label: "Safari",
- color: "hsl(var(--chart-2))",
- },
- firefox: {
- label: "Firefox",
- color: "hsl(var(--chart-3))",
- },
- edge: {
- label: "Edge",
- color: "hsl(var(--chart-4))",
- },
- other: {
- label: "Other",
- color: "hsl(var(--chart-5))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Radial Chart
- January - June 2024
-
-
-
-
- }
- />
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- Showing total visitors for the last 6 months
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/blocks/chart-radial-stacked.tsx b/deprecated/www/__registry__/default/blocks/chart-radial-stacked.tsx
deleted file mode 100644
index a5b78f27fe..0000000000
--- a/deprecated/www/__registry__/default/blocks/chart-radial-stacked.tsx
+++ /dev/null
@@ -1,113 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { Label, PolarRadiusAxis, RadialBar, RadialBarChart } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-
-export const description = "A radial chart with stacked sections"
-
-const chartData = [{ month: "january", desktop: 1260, mobile: 570 }]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
- mobile: {
- label: "Mobile",
- color: "hsl(var(--chart-2))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- const totalVisitors = chartData[0].desktop + chartData[0].mobile
-
- return (
-
-
- Radial Chart - Stacked
- January - June 2024
-
-
-
-
- }
- />
-
- {
- if (viewBox && "cx" in viewBox && "cy" in viewBox) {
- return (
-
-
- {totalVisitors.toLocaleString()}
-
-
- Visitors
-
-
- )
- }
- }}
- />
-
-
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- Showing total visitors for the last 6 months
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/blocks/chart-radial-text.tsx b/deprecated/www/__registry__/default/blocks/chart-radial-text.tsx
deleted file mode 100644
index a798f66121..0000000000
--- a/deprecated/www/__registry__/default/blocks/chart-radial-text.tsx
+++ /dev/null
@@ -1,109 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import {
- Label,
- PolarGrid,
- PolarRadiusAxis,
- RadialBar,
- RadialBarChart,
-} from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import { ChartConfig, ChartContainer } from "@/registry/default/ui/chart"
-
-export const description = "A radial chart with text"
-
-const chartData = [
- { browser: "safari", visitors: 200, fill: "var(--color-safari)" },
-]
-
-const chartConfig = {
- visitors: {
- label: "Visitors",
- },
- safari: {
- label: "Safari",
- color: "hsl(var(--chart-2))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Radial Chart - Text
- January - June 2024
-
-
-
-
-
-
-
- {
- if (viewBox && "cx" in viewBox && "cy" in viewBox) {
- return (
-
-
- {chartData[0].visitors.toLocaleString()}
-
-
- Visitors
-
-
- )
- }
- }}
- />
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- Showing total visitors for the last 6 months
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/blocks/chart-tooltip-advanced.tsx b/deprecated/www/__registry__/default/blocks/chart-tooltip-advanced.tsx
deleted file mode 100644
index 7a70079821..0000000000
--- a/deprecated/www/__registry__/default/blocks/chart-tooltip-advanced.tsx
+++ /dev/null
@@ -1,123 +0,0 @@
-"use client"
-
-import { Bar, BarChart, XAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-
-export const description = "A stacked bar chart with a legend"
-
-const chartData = [
- { date: "2024-07-15", running: 450, swimming: 300 },
- { date: "2024-07-16", running: 380, swimming: 420 },
- { date: "2024-07-17", running: 520, swimming: 120 },
- { date: "2024-07-18", running: 140, swimming: 550 },
- { date: "2024-07-19", running: 600, swimming: 350 },
- { date: "2024-07-20", running: 480, swimming: 400 },
-]
-
-const chartConfig = {
- running: {
- label: "Running",
- color: "hsl(var(--chart-1))",
- },
- swimming: {
- label: "Swimming",
- color: "hsl(var(--chart-2))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Tooltip - Advanced
-
- Tooltip with custom formatter and total.
-
-
-
-
-
- {
- return new Date(value).toLocaleDateString("en-US", {
- weekday: "short",
- })
- }}
- />
-
-
- (
- <>
-
- {chartConfig[name as keyof typeof chartConfig]?.label ||
- name}
-
- {value}
-
- kcal
-
-
- {/* Add this after the last item */}
- {index === 1 && (
-
- Total
-
- {item.payload.running + item.payload.swimming}
-
- kcal
-
-
-
- )}
- >
- )}
- />
- }
- cursor={false}
- defaultIndex={1}
- />
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/blocks/chart-tooltip-default.tsx b/deprecated/www/__registry__/default/blocks/chart-tooltip-default.tsx
deleted file mode 100644
index e1ed087075..0000000000
--- a/deprecated/www/__registry__/default/blocks/chart-tooltip-default.tsx
+++ /dev/null
@@ -1,89 +0,0 @@
-"use client"
-
-import { Bar, BarChart, XAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-
-export const description = "A stacked bar chart with a legend"
-export const iframeHeight = "600px"
-export const containerClassName =
- "[&>div]:w-full [&>div]:max-w-md flex items-center justify-center min-h-svh"
-
-const chartData = [
- { date: "2024-07-15", running: 450, swimming: 300 },
- { date: "2024-07-16", running: 380, swimming: 420 },
- { date: "2024-07-17", running: 520, swimming: 120 },
- { date: "2024-07-18", running: 140, swimming: 550 },
- { date: "2024-07-19", running: 600, swimming: 350 },
- { date: "2024-07-20", running: 480, swimming: 400 },
-]
-
-const chartConfig = {
- running: {
- label: "Running",
- color: "hsl(var(--chart-1))",
- },
- swimming: {
- label: "Swimming",
- color: "hsl(var(--chart-2))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Tooltip - Default
-
- Default tooltip with ChartTooltipContent.
-
-
-
-
-
- {
- return new Date(value).toLocaleDateString("en-US", {
- weekday: "short",
- })
- }}
- />
-
-
- }
- cursor={false}
- defaultIndex={1}
- />
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/blocks/chart-tooltip-formatter.tsx b/deprecated/www/__registry__/default/blocks/chart-tooltip-formatter.tsx
deleted file mode 100644
index 8c1b6d7009..0000000000
--- a/deprecated/www/__registry__/default/blocks/chart-tooltip-formatter.tsx
+++ /dev/null
@@ -1,100 +0,0 @@
-"use client"
-
-import { Bar, BarChart, XAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-
-export const description = "A stacked bar chart with a legend"
-
-const chartData = [
- { date: "2024-07-15", running: 450, swimming: 300 },
- { date: "2024-07-16", running: 380, swimming: 420 },
- { date: "2024-07-17", running: 520, swimming: 120 },
- { date: "2024-07-18", running: 140, swimming: 550 },
- { date: "2024-07-19", running: 600, swimming: 350 },
- { date: "2024-07-20", running: 480, swimming: 400 },
-]
-
-const chartConfig = {
- running: {
- label: "Running",
- color: "hsl(var(--chart-1))",
- },
- swimming: {
- label: "Swimming",
- color: "hsl(var(--chart-2))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Tooltip - Formatter
- Tooltip with custom formatter .
-
-
-
-
- {
- return new Date(value).toLocaleDateString("en-US", {
- weekday: "short",
- })
- }}
- />
-
-
- (
-
- {chartConfig[name as keyof typeof chartConfig]?.label ||
- name}
-
- {value}
-
- kcal
-
-
-
- )}
- />
- }
- cursor={false}
- defaultIndex={1}
- />
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/blocks/chart-tooltip-icons.tsx b/deprecated/www/__registry__/default/blocks/chart-tooltip-icons.tsx
deleted file mode 100644
index a95db7a7b5..0000000000
--- a/deprecated/www/__registry__/default/blocks/chart-tooltip-icons.tsx
+++ /dev/null
@@ -1,87 +0,0 @@
-"use client"
-
-import { Footprints, Waves } from "lucide-react"
-import { Bar, BarChart, XAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-
-export const description = "A stacked bar chart with a legend"
-
-const chartData = [
- { date: "2024-07-15", running: 450, swimming: 300 },
- { date: "2024-07-16", running: 380, swimming: 420 },
- { date: "2024-07-17", running: 520, swimming: 120 },
- { date: "2024-07-18", running: 140, swimming: 550 },
- { date: "2024-07-19", running: 600, swimming: 350 },
- { date: "2024-07-20", running: 480, swimming: 400 },
-]
-
-const chartConfig = {
- running: {
- label: "Running",
- color: "hsl(var(--chart-1))",
- icon: Footprints,
- },
- swimming: {
- label: "Swimming",
- color: "hsl(var(--chart-2))",
- icon: Waves,
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Tooltip - Icons
- Tooltip with icons.
-
-
-
-
- {
- return new Date(value).toLocaleDateString("en-US", {
- weekday: "short",
- })
- }}
- />
-
-
- }
- cursor={false}
- defaultIndex={1}
- />
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/blocks/chart-tooltip-indicator-line.tsx b/deprecated/www/__registry__/default/blocks/chart-tooltip-indicator-line.tsx
deleted file mode 100644
index 8f59a417cd..0000000000
--- a/deprecated/www/__registry__/default/blocks/chart-tooltip-indicator-line.tsx
+++ /dev/null
@@ -1,87 +0,0 @@
-"use client"
-
-import { Bar, BarChart, XAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-
-export const description = "A stacked bar chart with a legend"
-export const iframeHeight = "600px"
-export const containerClassName =
- "[&>div]:w-full [&>div]:max-w-md flex items-center justify-center min-h-svh"
-
-const chartData = [
- { date: "2024-07-15", running: 450, swimming: 300 },
- { date: "2024-07-16", running: 380, swimming: 420 },
- { date: "2024-07-17", running: 520, swimming: 120 },
- { date: "2024-07-18", running: 140, swimming: 550 },
- { date: "2024-07-19", running: 600, swimming: 350 },
- { date: "2024-07-20", running: 480, swimming: 400 },
-]
-
-const chartConfig = {
- running: {
- label: "Running",
- color: "hsl(var(--chart-1))",
- },
- swimming: {
- label: "Swimming",
- color: "hsl(var(--chart-2))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Tooltip - Line Indicator
- Tooltip with line indicator.
-
-
-
-
- {
- return new Date(value).toLocaleDateString("en-US", {
- weekday: "short",
- })
- }}
- />
-
-
- }
- cursor={false}
- defaultIndex={1}
- />
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/blocks/chart-tooltip-indicator-none.tsx b/deprecated/www/__registry__/default/blocks/chart-tooltip-indicator-none.tsx
deleted file mode 100644
index 52c3790224..0000000000
--- a/deprecated/www/__registry__/default/blocks/chart-tooltip-indicator-none.tsx
+++ /dev/null
@@ -1,84 +0,0 @@
-"use client"
-
-import { Bar, BarChart, XAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-
-export const description = "A stacked bar chart with a legend"
-
-const chartData = [
- { date: "2024-07-15", running: 450, swimming: 300 },
- { date: "2024-07-16", running: 380, swimming: 420 },
- { date: "2024-07-17", running: 520, swimming: 120 },
- { date: "2024-07-18", running: 140, swimming: 550 },
- { date: "2024-07-19", running: 600, swimming: 350 },
- { date: "2024-07-20", running: 480, swimming: 400 },
-]
-
-const chartConfig = {
- running: {
- label: "Running",
- color: "hsl(var(--chart-1))",
- },
- swimming: {
- label: "Swimming",
- color: "hsl(var(--chart-2))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Tooltip - No Indicator
- Tooltip with no indicator.
-
-
-
-
- {
- return new Date(value).toLocaleDateString("en-US", {
- weekday: "short",
- })
- }}
- />
-
-
- }
- cursor={false}
- defaultIndex={1}
- />
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/blocks/chart-tooltip-label-custom.tsx b/deprecated/www/__registry__/default/blocks/chart-tooltip-label-custom.tsx
deleted file mode 100644
index ebd735e075..0000000000
--- a/deprecated/www/__registry__/default/blocks/chart-tooltip-label-custom.tsx
+++ /dev/null
@@ -1,91 +0,0 @@
-"use client"
-
-import { Bar, BarChart, XAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-
-export const description = "A stacked bar chart with a legend"
-
-const chartData = [
- { date: "2024-07-15", running: 450, swimming: 300 },
- { date: "2024-07-16", running: 380, swimming: 420 },
- { date: "2024-07-17", running: 520, swimming: 120 },
- { date: "2024-07-18", running: 140, swimming: 550 },
- { date: "2024-07-19", running: 600, swimming: 350 },
- { date: "2024-07-20", running: 480, swimming: 400 },
-]
-
-const chartConfig = {
- activities: {
- label: "Activities",
- },
- running: {
- label: "Running",
- color: "hsl(var(--chart-1))",
- },
- swimming: {
- label: "Swimming",
- color: "hsl(var(--chart-2))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Tooltip - Custom label
-
- Tooltip with custom label from chartConfig.
-
-
-
-
-
- {
- return new Date(value).toLocaleDateString("en-US", {
- weekday: "short",
- })
- }}
- />
-
-
-
- }
- cursor={false}
- defaultIndex={1}
- />
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/blocks/chart-tooltip-label-formatter.tsx b/deprecated/www/__registry__/default/blocks/chart-tooltip-label-formatter.tsx
deleted file mode 100644
index ed1173c5b7..0000000000
--- a/deprecated/www/__registry__/default/blocks/chart-tooltip-label-formatter.tsx
+++ /dev/null
@@ -1,94 +0,0 @@
-"use client"
-
-import { Bar, BarChart, XAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-
-export const description = "A stacked bar chart with a legend"
-
-const chartData = [
- { date: "2024-07-15", running: 450, swimming: 300 },
- { date: "2024-07-16", running: 380, swimming: 420 },
- { date: "2024-07-17", running: 520, swimming: 120 },
- { date: "2024-07-18", running: 140, swimming: 550 },
- { date: "2024-07-19", running: 600, swimming: 350 },
- { date: "2024-07-20", running: 480, swimming: 400 },
-]
-
-const chartConfig = {
- running: {
- label: "Running",
- color: "hsl(var(--chart-1))",
- },
- swimming: {
- label: "Swimming",
- color: "hsl(var(--chart-2))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Tooltip - Label Formatter
- Tooltip with label formatter.
-
-
-
-
- {
- return new Date(value).toLocaleDateString("en-US", {
- weekday: "short",
- })
- }}
- />
-
-
- {
- return new Date(value).toLocaleDateString("en-US", {
- day: "numeric",
- month: "long",
- year: "numeric",
- })
- }}
- />
- }
- cursor={false}
- defaultIndex={1}
- />
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/blocks/chart-tooltip-label-none.tsx b/deprecated/www/__registry__/default/blocks/chart-tooltip-label-none.tsx
deleted file mode 100644
index 4aadf3fc79..0000000000
--- a/deprecated/www/__registry__/default/blocks/chart-tooltip-label-none.tsx
+++ /dev/null
@@ -1,84 +0,0 @@
-"use client"
-
-import { Bar, BarChart, XAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-
-export const description = "A stacked bar chart with a legend"
-
-const chartData = [
- { date: "2024-07-15", running: 450, swimming: 300 },
- { date: "2024-07-16", running: 380, swimming: 420 },
- { date: "2024-07-17", running: 520, swimming: 120 },
- { date: "2024-07-18", running: 140, swimming: 550 },
- { date: "2024-07-19", running: 600, swimming: 350 },
- { date: "2024-07-20", running: 480, swimming: 400 },
-]
-
-const chartConfig = {
- running: {
- label: "Running",
- color: "hsl(var(--chart-1))",
- },
- swimming: {
- label: "Swimming",
- color: "hsl(var(--chart-2))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Tooltip - No Label
- Tooltip with no label.
-
-
-
-
- {
- return new Date(value).toLocaleDateString("en-US", {
- weekday: "short",
- })
- }}
- />
-
-
- }
- cursor={false}
- defaultIndex={1}
- />
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/blocks/dashboard-01/page.tsx b/deprecated/www/__registry__/default/blocks/dashboard-01/page.tsx
deleted file mode 100644
index 083e2a7f01..0000000000
--- a/deprecated/www/__registry__/default/blocks/dashboard-01/page.tsx
+++ /dev/null
@@ -1,30 +0,0 @@
-import { AppSidebar } from "@/registry/default/blocks/dashboard-01/components/app-sidebar"
-import { ChartAreaInteractive } from "@/registry/default/blocks/dashboard-01/components/chart-area-interactive"
-import { DataTable } from "@/registry/default/blocks/dashboard-01/components/data-table"
-import { SectionCards } from "@/registry/default/blocks/dashboard-01/components/section-cards"
-import { SiteHeader } from "@/registry/default/blocks/dashboard-01/components/site-header"
-import { SidebarInset, SidebarProvider } from "@/registry/default/ui/sidebar"
-
-import data from "./data.json"
-
-export default function Page() {
- return (
-
-
-
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/blocks/login-01/page.tsx b/deprecated/www/__registry__/default/blocks/login-01/page.tsx
deleted file mode 100644
index 6e1c2cb4db..0000000000
--- a/deprecated/www/__registry__/default/blocks/login-01/page.tsx
+++ /dev/null
@@ -1,11 +0,0 @@
-import { LoginForm } from "@/registry/default/blocks/login-01/components/login-form"
-
-export default function Page() {
- return (
-
- )
-}
diff --git a/deprecated/www/__registry__/default/blocks/login-02/page.tsx b/deprecated/www/__registry__/default/blocks/login-02/page.tsx
deleted file mode 100644
index 56b73d3246..0000000000
--- a/deprecated/www/__registry__/default/blocks/login-02/page.tsx
+++ /dev/null
@@ -1,32 +0,0 @@
-import { GalleryVerticalEnd } from "lucide-react"
-
-import { LoginForm } from "@/registry/default/blocks/login-02/components/login-form"
-
-export default function LoginPage() {
- return (
-
-
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/blocks/login-03/page.tsx b/deprecated/www/__registry__/default/blocks/login-03/page.tsx
deleted file mode 100644
index 15a0ca451c..0000000000
--- a/deprecated/www/__registry__/default/blocks/login-03/page.tsx
+++ /dev/null
@@ -1,19 +0,0 @@
-import { GalleryVerticalEnd } from "lucide-react"
-
-import { LoginForm } from "@/registry/default/blocks/login-03/components/login-form"
-
-export default function LoginPage() {
- return (
-
- )
-}
diff --git a/deprecated/www/__registry__/default/blocks/login-04/page.tsx b/deprecated/www/__registry__/default/blocks/login-04/page.tsx
deleted file mode 100644
index d302b4fa44..0000000000
--- a/deprecated/www/__registry__/default/blocks/login-04/page.tsx
+++ /dev/null
@@ -1,11 +0,0 @@
-import { LoginForm } from "@/registry/default/blocks/login-04/components/login-form"
-
-export default function LoginPage() {
- return (
-
- )
-}
diff --git a/deprecated/www/__registry__/default/blocks/login-05/page.tsx b/deprecated/www/__registry__/default/blocks/login-05/page.tsx
deleted file mode 100644
index b9baa00d53..0000000000
--- a/deprecated/www/__registry__/default/blocks/login-05/page.tsx
+++ /dev/null
@@ -1,11 +0,0 @@
-import { LoginForm } from "@/registry/default/blocks/login-05/components/login-form"
-
-export default function LoginPage() {
- return (
-
- )
-}
diff --git a/deprecated/www/__registry__/default/blocks/sidebar-01/page.tsx b/deprecated/www/__registry__/default/blocks/sidebar-01/page.tsx
deleted file mode 100644
index 090e3eb248..0000000000
--- a/deprecated/www/__registry__/default/blocks/sidebar-01/page.tsx
+++ /dev/null
@@ -1,50 +0,0 @@
-import { AppSidebar } from "@/registry/default/blocks/sidebar-01/components/app-sidebar"
-import {
- Breadcrumb,
- BreadcrumbItem,
- BreadcrumbLink,
- BreadcrumbList,
- BreadcrumbPage,
- BreadcrumbSeparator,
-} from "@/registry/default/ui/breadcrumb"
-import { Separator } from "@/registry/default/ui/separator"
-import {
- SidebarInset,
- SidebarProvider,
- SidebarTrigger,
-} from "@/registry/default/ui/sidebar"
-
-export default function Page() {
- return (
-
-
-
-
-
-
-
-
-
-
- Building Your Application
-
-
-
-
- Data Fetching
-
-
-
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/blocks/sidebar-02/page.tsx b/deprecated/www/__registry__/default/blocks/sidebar-02/page.tsx
deleted file mode 100644
index 179af7cf28..0000000000
--- a/deprecated/www/__registry__/default/blocks/sidebar-02/page.tsx
+++ /dev/null
@@ -1,50 +0,0 @@
-import { AppSidebar } from "@/registry/default/blocks/sidebar-02/components/app-sidebar"
-import {
- Breadcrumb,
- BreadcrumbItem,
- BreadcrumbLink,
- BreadcrumbList,
- BreadcrumbPage,
- BreadcrumbSeparator,
-} from "@/registry/default/ui/breadcrumb"
-import { Separator } from "@/registry/default/ui/separator"
-import {
- SidebarInset,
- SidebarProvider,
- SidebarTrigger,
-} from "@/registry/default/ui/sidebar"
-
-export default function Page() {
- return (
-
-
-
-
-
-
-
-
-
-
- Building Your Application
-
-
-
-
- Data Fetching
-
-
-
-
-
- {Array.from({ length: 24 }).map((_, index) => (
-
- ))}
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/blocks/sidebar-03/page.tsx b/deprecated/www/__registry__/default/blocks/sidebar-03/page.tsx
deleted file mode 100644
index a3b34b1080..0000000000
--- a/deprecated/www/__registry__/default/blocks/sidebar-03/page.tsx
+++ /dev/null
@@ -1,52 +0,0 @@
-import { AppSidebar } from "@/registry/default/blocks/sidebar-03/components/app-sidebar"
-import {
- Breadcrumb,
- BreadcrumbItem,
- BreadcrumbLink,
- BreadcrumbList,
- BreadcrumbPage,
- BreadcrumbSeparator,
-} from "@/registry/default/ui/breadcrumb"
-import { Separator } from "@/registry/default/ui/separator"
-import {
- SidebarInset,
- SidebarProvider,
- SidebarTrigger,
-} from "@/registry/default/ui/sidebar"
-
-export default function Page() {
- return (
-
-
-
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/blocks/sidebar-04/page.tsx b/deprecated/www/__registry__/default/blocks/sidebar-04/page.tsx
deleted file mode 100644
index 8a0dbbff75..0000000000
--- a/deprecated/www/__registry__/default/blocks/sidebar-04/page.tsx
+++ /dev/null
@@ -1,56 +0,0 @@
-import { AppSidebar } from "@/registry/default/blocks/sidebar-04/components/app-sidebar"
-import {
- Breadcrumb,
- BreadcrumbItem,
- BreadcrumbLink,
- BreadcrumbList,
- BreadcrumbPage,
- BreadcrumbSeparator,
-} from "@/registry/default/ui/breadcrumb"
-import { Separator } from "@/registry/default/ui/separator"
-import {
- SidebarInset,
- SidebarProvider,
- SidebarTrigger,
-} from "@/registry/default/ui/sidebar"
-
-export default function Page() {
- return (
-
-
-
-
-
-
-
-
-
-
- Building Your Application
-
-
-
-
- Data Fetching
-
-
-
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/blocks/sidebar-05/page.tsx b/deprecated/www/__registry__/default/blocks/sidebar-05/page.tsx
deleted file mode 100644
index 3bfc7a8b3f..0000000000
--- a/deprecated/www/__registry__/default/blocks/sidebar-05/page.tsx
+++ /dev/null
@@ -1,50 +0,0 @@
-import { AppSidebar } from "@/registry/default/blocks/sidebar-05/components/app-sidebar"
-import {
- Breadcrumb,
- BreadcrumbItem,
- BreadcrumbLink,
- BreadcrumbList,
- BreadcrumbPage,
- BreadcrumbSeparator,
-} from "@/registry/default/ui/breadcrumb"
-import { Separator } from "@/registry/default/ui/separator"
-import {
- SidebarInset,
- SidebarProvider,
- SidebarTrigger,
-} from "@/registry/default/ui/sidebar"
-
-export default function Page() {
- return (
-
-
-
-
-
-
-
-
-
-
- Building Your Application
-
-
-
-
- Data Fetching
-
-
-
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/blocks/sidebar-06/page.tsx b/deprecated/www/__registry__/default/blocks/sidebar-06/page.tsx
deleted file mode 100644
index 028a7ba620..0000000000
--- a/deprecated/www/__registry__/default/blocks/sidebar-06/page.tsx
+++ /dev/null
@@ -1,50 +0,0 @@
-import { AppSidebar } from "@/registry/default/blocks/sidebar-06/components/app-sidebar"
-import {
- Breadcrumb,
- BreadcrumbItem,
- BreadcrumbLink,
- BreadcrumbList,
- BreadcrumbPage,
- BreadcrumbSeparator,
-} from "@/registry/default/ui/breadcrumb"
-import { Separator } from "@/registry/default/ui/separator"
-import {
- SidebarInset,
- SidebarProvider,
- SidebarTrigger,
-} from "@/registry/default/ui/sidebar"
-
-export default function Page() {
- return (
-
-
-
-
-
-
-
-
-
-
- Building Your Application
-
-
-
-
- Data Fetching
-
-
-
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/blocks/sidebar-07/page.tsx b/deprecated/www/__registry__/default/blocks/sidebar-07/page.tsx
deleted file mode 100644
index 1627996458..0000000000
--- a/deprecated/www/__registry__/default/blocks/sidebar-07/page.tsx
+++ /dev/null
@@ -1,52 +0,0 @@
-import { AppSidebar } from "@/registry/default/blocks/sidebar-07/components/app-sidebar"
-import {
- Breadcrumb,
- BreadcrumbItem,
- BreadcrumbLink,
- BreadcrumbList,
- BreadcrumbPage,
- BreadcrumbSeparator,
-} from "@/registry/default/ui/breadcrumb"
-import { Separator } from "@/registry/default/ui/separator"
-import {
- SidebarInset,
- SidebarProvider,
- SidebarTrigger,
-} from "@/registry/default/ui/sidebar"
-
-export default function Page() {
- return (
-
-
-
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/blocks/sidebar-08/page.tsx b/deprecated/www/__registry__/default/blocks/sidebar-08/page.tsx
deleted file mode 100644
index 052b62b38c..0000000000
--- a/deprecated/www/__registry__/default/blocks/sidebar-08/page.tsx
+++ /dev/null
@@ -1,52 +0,0 @@
-import { AppSidebar } from "@/registry/default/blocks/sidebar-08/components/app-sidebar"
-import {
- Breadcrumb,
- BreadcrumbItem,
- BreadcrumbLink,
- BreadcrumbList,
- BreadcrumbPage,
- BreadcrumbSeparator,
-} from "@/registry/default/ui/breadcrumb"
-import { Separator } from "@/registry/default/ui/separator"
-import {
- SidebarInset,
- SidebarProvider,
- SidebarTrigger,
-} from "@/registry/default/ui/sidebar"
-
-export default function Page() {
- return (
-
-
-
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/blocks/sidebar-09/page.tsx b/deprecated/www/__registry__/default/blocks/sidebar-09/page.tsx
deleted file mode 100644
index 6ed155ad79..0000000000
--- a/deprecated/www/__registry__/default/blocks/sidebar-09/page.tsx
+++ /dev/null
@@ -1,54 +0,0 @@
-import { AppSidebar } from "@/registry/default/blocks/sidebar-09/components/app-sidebar"
-import {
- Breadcrumb,
- BreadcrumbItem,
- BreadcrumbLink,
- BreadcrumbList,
- BreadcrumbPage,
- BreadcrumbSeparator,
-} from "@/registry/default/ui/breadcrumb"
-import { Separator } from "@/registry/default/ui/separator"
-import {
- SidebarInset,
- SidebarProvider,
- SidebarTrigger,
-} from "@/registry/default/ui/sidebar"
-
-export default function Page() {
- return (
-
-
-
-
-
-
-
-
-
- All Inboxes
-
-
-
- Inbox
-
-
-
-
-
- {Array.from({ length: 24 }).map((_, index) => (
-
- ))}
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/blocks/sidebar-10/page.tsx b/deprecated/www/__registry__/default/blocks/sidebar-10/page.tsx
deleted file mode 100644
index a357086005..0000000000
--- a/deprecated/www/__registry__/default/blocks/sidebar-10/page.tsx
+++ /dev/null
@@ -1,46 +0,0 @@
-import { AppSidebar } from "@/registry/default/blocks/sidebar-10/components/app-sidebar"
-import { NavActions } from "@/registry/default/blocks/sidebar-10/components/nav-actions"
-import {
- Breadcrumb,
- BreadcrumbItem,
- BreadcrumbList,
- BreadcrumbPage,
-} from "@/registry/default/ui/breadcrumb"
-import { Separator } from "@/registry/default/ui/separator"
-import {
- SidebarInset,
- SidebarProvider,
- SidebarTrigger,
-} from "@/registry/default/ui/sidebar"
-
-export default function Page() {
- return (
-
-
-
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/blocks/sidebar-11/page.tsx b/deprecated/www/__registry__/default/blocks/sidebar-11/page.tsx
deleted file mode 100644
index 3e60984c5e..0000000000
--- a/deprecated/www/__registry__/default/blocks/sidebar-11/page.tsx
+++ /dev/null
@@ -1,52 +0,0 @@
-import { AppSidebar } from "@/registry/default/blocks/sidebar-11/components/app-sidebar"
-import {
- Breadcrumb,
- BreadcrumbItem,
- BreadcrumbLink,
- BreadcrumbList,
- BreadcrumbPage,
- BreadcrumbSeparator,
-} from "@/registry/default/ui/breadcrumb"
-import { Separator } from "@/registry/default/ui/separator"
-import {
- SidebarInset,
- SidebarProvider,
- SidebarTrigger,
-} from "@/registry/default/ui/sidebar"
-
-export default function Page() {
- return (
-
-
-
-
-
-
-
-
-
- components
-
-
-
- ui
-
-
-
- button.tsx
-
-
-
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/blocks/sidebar-12/page.tsx b/deprecated/www/__registry__/default/blocks/sidebar-12/page.tsx
deleted file mode 100644
index ac96a46026..0000000000
--- a/deprecated/www/__registry__/default/blocks/sidebar-12/page.tsx
+++ /dev/null
@@ -1,41 +0,0 @@
-import { AppSidebar } from "@/registry/default/blocks/sidebar-12/components/app-sidebar"
-import {
- Breadcrumb,
- BreadcrumbItem,
- BreadcrumbList,
- BreadcrumbPage,
-} from "@/registry/default/ui/breadcrumb"
-import { Separator } from "@/registry/default/ui/separator"
-import {
- SidebarInset,
- SidebarProvider,
- SidebarTrigger,
-} from "@/registry/default/ui/sidebar"
-
-export default function Page() {
- return (
-
-
-
-
-
-
-
-
-
- October 2024
-
-
-
-
-
-
- {Array.from({ length: 20 }).map((_, i) => (
-
- ))}
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/blocks/sidebar-13/page.tsx b/deprecated/www/__registry__/default/blocks/sidebar-13/page.tsx
deleted file mode 100644
index 7bebc464af..0000000000
--- a/deprecated/www/__registry__/default/blocks/sidebar-13/page.tsx
+++ /dev/null
@@ -1,9 +0,0 @@
-import { SettingsDialog } from "@/registry/default/blocks/sidebar-13/components/settings-dialog"
-
-export default function Page() {
- return (
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/blocks/sidebar-14/page.tsx b/deprecated/www/__registry__/default/blocks/sidebar-14/page.tsx
deleted file mode 100644
index a299c067de..0000000000
--- a/deprecated/www/__registry__/default/blocks/sidebar-14/page.tsx
+++ /dev/null
@@ -1,48 +0,0 @@
-import { AppSidebar } from "@/registry/default/blocks/sidebar-14/components/app-sidebar"
-import {
- Breadcrumb,
- BreadcrumbItem,
- BreadcrumbLink,
- BreadcrumbList,
- BreadcrumbPage,
- BreadcrumbSeparator,
-} from "@/registry/default/ui/breadcrumb"
-import {
- SidebarInset,
- SidebarProvider,
- SidebarTrigger,
-} from "@/registry/default/ui/sidebar"
-
-export default function Page() {
- return (
-
-
-
-
-
-
-
- Building Your Application
-
-
-
-
- Data Fetching
-
-
-
-
-
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/blocks/sidebar-15/page.tsx b/deprecated/www/__registry__/default/blocks/sidebar-15/page.tsx
deleted file mode 100644
index 3bf6087ece..0000000000
--- a/deprecated/www/__registry__/default/blocks/sidebar-15/page.tsx
+++ /dev/null
@@ -1,44 +0,0 @@
-import { SidebarLeft } from "@/registry/default/blocks/sidebar-15/components/sidebar-left"
-import { SidebarRight } from "@/registry/default/blocks/sidebar-15/components/sidebar-right"
-import {
- Breadcrumb,
- BreadcrumbItem,
- BreadcrumbList,
- BreadcrumbPage,
-} from "@/registry/default/ui/breadcrumb"
-import { Separator } from "@/registry/default/ui/separator"
-import {
- SidebarInset,
- SidebarProvider,
- SidebarTrigger,
-} from "@/registry/default/ui/sidebar"
-
-export default function Page() {
- return (
-
-
-
-
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/blocks/sidebar-16/page.tsx b/deprecated/www/__registry__/default/blocks/sidebar-16/page.tsx
deleted file mode 100644
index 01313fb14e..0000000000
--- a/deprecated/www/__registry__/default/blocks/sidebar-16/page.tsx
+++ /dev/null
@@ -1,30 +0,0 @@
-import { AppSidebar } from "@/registry/default/blocks/sidebar-16/components/app-sidebar"
-import { SiteHeader } from "@/registry/default/blocks/sidebar-16/components/site-header"
-import { SidebarInset, SidebarProvider } from "@/registry/default/ui/sidebar"
-
-export const iframeHeight = "800px"
-
-export const description = "A sidebar with a header and a search form."
-
-export default function Page() {
- return (
-
- )
-}
diff --git a/deprecated/www/__registry__/default/charts/chart-area-axes.tsx b/deprecated/www/__registry__/default/charts/chart-area-axes.tsx
deleted file mode 100644
index e6c173dcb5..0000000000
--- a/deprecated/www/__registry__/default/charts/chart-area-axes.tsx
+++ /dev/null
@@ -1,110 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { Area, AreaChart, CartesianGrid, XAxis, YAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-
-export const description = "An area chart with axes"
-
-const chartData = [
- { month: "January", desktop: 186, mobile: 80 },
- { month: "February", desktop: 305, mobile: 200 },
- { month: "March", desktop: 237, mobile: 120 },
- { month: "April", desktop: 73, mobile: 190 },
- { month: "May", desktop: 209, mobile: 130 },
- { month: "June", desktop: 214, mobile: 140 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
- mobile: {
- label: "Mobile",
- color: "hsl(var(--chart-2))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Area Chart - Axes
-
- Showing total visitors for the last 6 months
-
-
-
-
-
-
- value.slice(0, 3)}
- />
-
- } />
-
-
-
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- January - June 2024
-
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/charts/chart-area-default.tsx b/deprecated/www/__registry__/default/charts/chart-area-default.tsx
deleted file mode 100644
index 925eb60367..0000000000
--- a/deprecated/www/__registry__/default/charts/chart-area-default.tsx
+++ /dev/null
@@ -1,94 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { Area, AreaChart, CartesianGrid, XAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-
-export const description = "A simple area chart"
-
-const chartData = [
- { month: "January", desktop: 186 },
- { month: "February", desktop: 305 },
- { month: "March", desktop: 237 },
- { month: "April", desktop: 73 },
- { month: "May", desktop: 209 },
- { month: "June", desktop: 214 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Area Chart
-
- Showing total visitors for the last 6 months
-
-
-
-
-
-
- value.slice(0, 3)}
- />
- }
- />
-
-
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- January - June 2024
-
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/charts/chart-area-gradient.tsx b/deprecated/www/__registry__/default/charts/chart-area-gradient.tsx
deleted file mode 100644
index 0314f690fc..0000000000
--- a/deprecated/www/__registry__/default/charts/chart-area-gradient.tsx
+++ /dev/null
@@ -1,130 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { Area, AreaChart, CartesianGrid, XAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-
-export const description = "An area chart with gradient fill"
-
-const chartData = [
- { month: "January", desktop: 186, mobile: 80 },
- { month: "February", desktop: 305, mobile: 200 },
- { month: "March", desktop: 237, mobile: 120 },
- { month: "April", desktop: 73, mobile: 190 },
- { month: "May", desktop: 209, mobile: 130 },
- { month: "June", desktop: 214, mobile: 140 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
- mobile: {
- label: "Mobile",
- color: "hsl(var(--chart-2))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Area Chart - Gradient
-
- Showing total visitors for the last 6 months
-
-
-
-
-
-
- value.slice(0, 3)}
- />
- } />
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- January - June 2024
-
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/charts/chart-area-icons.tsx b/deprecated/www/__registry__/default/charts/chart-area-icons.tsx
deleted file mode 100644
index 05d2e4ef0b..0000000000
--- a/deprecated/www/__registry__/default/charts/chart-area-icons.tsx
+++ /dev/null
@@ -1,112 +0,0 @@
-"use client"
-
-import { TrendingDown, TrendingUp } from "lucide-react"
-import { Area, AreaChart, CartesianGrid, XAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartLegend,
- ChartLegendContent,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-
-export const description = "An area chart with icons"
-
-const chartData = [
- { month: "January", desktop: 186, mobile: 80 },
- { month: "February", desktop: 305, mobile: 200 },
- { month: "March", desktop: 237, mobile: 120 },
- { month: "April", desktop: 73, mobile: 190 },
- { month: "May", desktop: 209, mobile: 130 },
- { month: "June", desktop: 214, mobile: 140 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- icon: TrendingDown,
- },
- mobile: {
- label: "Mobile",
- color: "hsl(var(--chart-2))",
- icon: TrendingUp,
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Area Chart - Icons
-
- Showing total visitors for the last 6 months
-
-
-
-
-
-
- value.slice(0, 3)}
- />
- }
- />
-
-
- } />
-
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- January - June 2024
-
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/charts/chart-area-interactive.tsx b/deprecated/www/__registry__/default/charts/chart-area-interactive.tsx
deleted file mode 100644
index 16cbcca59f..0000000000
--- a/deprecated/www/__registry__/default/charts/chart-area-interactive.tsx
+++ /dev/null
@@ -1,266 +0,0 @@
-"use client"
-
-import * as React from "react"
-import { Area, AreaChart, CartesianGrid, XAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartLegend,
- ChartLegendContent,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-import {
- Select,
- SelectContent,
- SelectItem,
- SelectTrigger,
- SelectValue,
-} from "@/registry/default/ui/select"
-
-export const description = "An interactive area chart"
-
-const chartData = [
- { date: "2024-04-01", desktop: 222, mobile: 150 },
- { date: "2024-04-02", desktop: 97, mobile: 180 },
- { date: "2024-04-03", desktop: 167, mobile: 120 },
- { date: "2024-04-04", desktop: 242, mobile: 260 },
- { date: "2024-04-05", desktop: 373, mobile: 290 },
- { date: "2024-04-06", desktop: 301, mobile: 340 },
- { date: "2024-04-07", desktop: 245, mobile: 180 },
- { date: "2024-04-08", desktop: 409, mobile: 320 },
- { date: "2024-04-09", desktop: 59, mobile: 110 },
- { date: "2024-04-10", desktop: 261, mobile: 190 },
- { date: "2024-04-11", desktop: 327, mobile: 350 },
- { date: "2024-04-12", desktop: 292, mobile: 210 },
- { date: "2024-04-13", desktop: 342, mobile: 380 },
- { date: "2024-04-14", desktop: 137, mobile: 220 },
- { date: "2024-04-15", desktop: 120, mobile: 170 },
- { date: "2024-04-16", desktop: 138, mobile: 190 },
- { date: "2024-04-17", desktop: 446, mobile: 360 },
- { date: "2024-04-18", desktop: 364, mobile: 410 },
- { date: "2024-04-19", desktop: 243, mobile: 180 },
- { date: "2024-04-20", desktop: 89, mobile: 150 },
- { date: "2024-04-21", desktop: 137, mobile: 200 },
- { date: "2024-04-22", desktop: 224, mobile: 170 },
- { date: "2024-04-23", desktop: 138, mobile: 230 },
- { date: "2024-04-24", desktop: 387, mobile: 290 },
- { date: "2024-04-25", desktop: 215, mobile: 250 },
- { date: "2024-04-26", desktop: 75, mobile: 130 },
- { date: "2024-04-27", desktop: 383, mobile: 420 },
- { date: "2024-04-28", desktop: 122, mobile: 180 },
- { date: "2024-04-29", desktop: 315, mobile: 240 },
- { date: "2024-04-30", desktop: 454, mobile: 380 },
- { date: "2024-05-01", desktop: 165, mobile: 220 },
- { date: "2024-05-02", desktop: 293, mobile: 310 },
- { date: "2024-05-03", desktop: 247, mobile: 190 },
- { date: "2024-05-04", desktop: 385, mobile: 420 },
- { date: "2024-05-05", desktop: 481, mobile: 390 },
- { date: "2024-05-06", desktop: 498, mobile: 520 },
- { date: "2024-05-07", desktop: 388, mobile: 300 },
- { date: "2024-05-08", desktop: 149, mobile: 210 },
- { date: "2024-05-09", desktop: 227, mobile: 180 },
- { date: "2024-05-10", desktop: 293, mobile: 330 },
- { date: "2024-05-11", desktop: 335, mobile: 270 },
- { date: "2024-05-12", desktop: 197, mobile: 240 },
- { date: "2024-05-13", desktop: 197, mobile: 160 },
- { date: "2024-05-14", desktop: 448, mobile: 490 },
- { date: "2024-05-15", desktop: 473, mobile: 380 },
- { date: "2024-05-16", desktop: 338, mobile: 400 },
- { date: "2024-05-17", desktop: 499, mobile: 420 },
- { date: "2024-05-18", desktop: 315, mobile: 350 },
- { date: "2024-05-19", desktop: 235, mobile: 180 },
- { date: "2024-05-20", desktop: 177, mobile: 230 },
- { date: "2024-05-21", desktop: 82, mobile: 140 },
- { date: "2024-05-22", desktop: 81, mobile: 120 },
- { date: "2024-05-23", desktop: 252, mobile: 290 },
- { date: "2024-05-24", desktop: 294, mobile: 220 },
- { date: "2024-05-25", desktop: 201, mobile: 250 },
- { date: "2024-05-26", desktop: 213, mobile: 170 },
- { date: "2024-05-27", desktop: 420, mobile: 460 },
- { date: "2024-05-28", desktop: 233, mobile: 190 },
- { date: "2024-05-29", desktop: 78, mobile: 130 },
- { date: "2024-05-30", desktop: 340, mobile: 280 },
- { date: "2024-05-31", desktop: 178, mobile: 230 },
- { date: "2024-06-01", desktop: 178, mobile: 200 },
- { date: "2024-06-02", desktop: 470, mobile: 410 },
- { date: "2024-06-03", desktop: 103, mobile: 160 },
- { date: "2024-06-04", desktop: 439, mobile: 380 },
- { date: "2024-06-05", desktop: 88, mobile: 140 },
- { date: "2024-06-06", desktop: 294, mobile: 250 },
- { date: "2024-06-07", desktop: 323, mobile: 370 },
- { date: "2024-06-08", desktop: 385, mobile: 320 },
- { date: "2024-06-09", desktop: 438, mobile: 480 },
- { date: "2024-06-10", desktop: 155, mobile: 200 },
- { date: "2024-06-11", desktop: 92, mobile: 150 },
- { date: "2024-06-12", desktop: 492, mobile: 420 },
- { date: "2024-06-13", desktop: 81, mobile: 130 },
- { date: "2024-06-14", desktop: 426, mobile: 380 },
- { date: "2024-06-15", desktop: 307, mobile: 350 },
- { date: "2024-06-16", desktop: 371, mobile: 310 },
- { date: "2024-06-17", desktop: 475, mobile: 520 },
- { date: "2024-06-18", desktop: 107, mobile: 170 },
- { date: "2024-06-19", desktop: 341, mobile: 290 },
- { date: "2024-06-20", desktop: 408, mobile: 450 },
- { date: "2024-06-21", desktop: 169, mobile: 210 },
- { date: "2024-06-22", desktop: 317, mobile: 270 },
- { date: "2024-06-23", desktop: 480, mobile: 530 },
- { date: "2024-06-24", desktop: 132, mobile: 180 },
- { date: "2024-06-25", desktop: 141, mobile: 190 },
- { date: "2024-06-26", desktop: 434, mobile: 380 },
- { date: "2024-06-27", desktop: 448, mobile: 490 },
- { date: "2024-06-28", desktop: 149, mobile: 200 },
- { date: "2024-06-29", desktop: 103, mobile: 160 },
- { date: "2024-06-30", desktop: 446, mobile: 400 },
-]
-
-const chartConfig = {
- visitors: {
- label: "Visitors",
- },
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
- mobile: {
- label: "Mobile",
- color: "hsl(var(--chart-2))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- const [timeRange, setTimeRange] = React.useState("90d")
-
- const filteredData = chartData.filter((item) => {
- const date = new Date(item.date)
- const referenceDate = new Date("2024-06-30")
- let daysToSubtract = 90
- if (timeRange === "30d") {
- daysToSubtract = 30
- } else if (timeRange === "7d") {
- daysToSubtract = 7
- }
- const startDate = new Date(referenceDate)
- startDate.setDate(startDate.getDate() - daysToSubtract)
- return date >= startDate
- })
-
- return (
-
-
-
- Area Chart - Interactive
-
- Showing total visitors for the last 3 months
-
-
-
-
-
-
-
-
- Last 3 months
-
-
- Last 30 days
-
-
- Last 7 days
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {
- const date = new Date(value)
- return date.toLocaleDateString("en-US", {
- month: "short",
- day: "numeric",
- })
- }}
- />
- {
- return new Date(value).toLocaleDateString("en-US", {
- month: "short",
- day: "numeric",
- })
- }}
- indicator="dot"
- />
- }
- />
-
-
- } />
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/charts/chart-area-legend.tsx b/deprecated/www/__registry__/default/charts/chart-area-legend.tsx
deleted file mode 100644
index 9d7cfe3d1e..0000000000
--- a/deprecated/www/__registry__/default/charts/chart-area-legend.tsx
+++ /dev/null
@@ -1,110 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { Area, AreaChart, CartesianGrid, XAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartLegend,
- ChartLegendContent,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-
-export const description = "An area chart with a legend"
-
-const chartData = [
- { month: "January", desktop: 186, mobile: 80 },
- { month: "February", desktop: 305, mobile: 200 },
- { month: "March", desktop: 237, mobile: 120 },
- { month: "April", desktop: 73, mobile: 190 },
- { month: "May", desktop: 209, mobile: 130 },
- { month: "June", desktop: 214, mobile: 140 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
- mobile: {
- label: "Mobile",
- color: "hsl(var(--chart-2))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Area Chart - Legend
-
- Showing total visitors for the last 6 months
-
-
-
-
-
-
- value.slice(0, 3)}
- />
- }
- />
-
-
- } />
-
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- January - June 2024
-
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/charts/chart-area-linear.tsx b/deprecated/www/__registry__/default/charts/chart-area-linear.tsx
deleted file mode 100644
index 4e58417994..0000000000
--- a/deprecated/www/__registry__/default/charts/chart-area-linear.tsx
+++ /dev/null
@@ -1,94 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { Area, AreaChart, CartesianGrid, XAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-
-export const description = "A linear area chart"
-
-const chartData = [
- { month: "January", desktop: 186 },
- { month: "February", desktop: 305 },
- { month: "March", desktop: 237 },
- { month: "April", desktop: 73 },
- { month: "May", desktop: 209 },
- { month: "June", desktop: 214 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Area Chart - Linear
-
- Showing total visitors for the last 6 months
-
-
-
-
-
-
- value.slice(0, 3)}
- />
- }
- />
-
-
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- January - June 2024
-
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/charts/chart-area-stacked-expand.tsx b/deprecated/www/__registry__/default/charts/chart-area-stacked-expand.tsx
deleted file mode 100644
index ab66f89565..0000000000
--- a/deprecated/www/__registry__/default/charts/chart-area-stacked-expand.tsx
+++ /dev/null
@@ -1,121 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { Area, AreaChart, CartesianGrid, XAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-
-export const description = "A stacked area chart with expand stacking"
-
-const chartData = [
- { month: "January", desktop: 186, mobile: 80, other: 45 },
- { month: "February", desktop: 305, mobile: 200, other: 100 },
- { month: "March", desktop: 237, mobile: 120, other: 150 },
- { month: "April", desktop: 73, mobile: 190, other: 50 },
- { month: "May", desktop: 209, mobile: 130, other: 100 },
- { month: "June", desktop: 214, mobile: 140, other: 160 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
- mobile: {
- label: "Mobile",
- color: "hsl(var(--chart-2))",
- },
- other: {
- label: "Other",
- color: "hsl(var(--chart-3))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Area Chart - Stacked Expanded
-
- Showing total visitors for the last 6months
-
-
-
-
-
-
- value.slice(0, 3)}
- />
- }
- />
-
-
-
-
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- January - June 2024
-
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/charts/chart-area-stacked.tsx b/deprecated/www/__registry__/default/charts/chart-area-stacked.tsx
deleted file mode 100644
index 3820dd7a7b..0000000000
--- a/deprecated/www/__registry__/default/charts/chart-area-stacked.tsx
+++ /dev/null
@@ -1,107 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { Area, AreaChart, CartesianGrid, XAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-
-export const description = "A stacked area chart"
-
-const chartData = [
- { month: "January", desktop: 186, mobile: 80 },
- { month: "February", desktop: 305, mobile: 200 },
- { month: "March", desktop: 237, mobile: 120 },
- { month: "April", desktop: 73, mobile: 190 },
- { month: "May", desktop: 209, mobile: 130 },
- { month: "June", desktop: 214, mobile: 140 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
- mobile: {
- label: "Mobile",
- color: "hsl(var(--chart-2))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Area Chart - Stacked
-
- Showing total visitors for the last 6 months
-
-
-
-
-
-
- value.slice(0, 3)}
- />
- }
- />
-
-
-
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- January - June 2024
-
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/charts/chart-area-step.tsx b/deprecated/www/__registry__/default/charts/chart-area-step.tsx
deleted file mode 100644
index 4ca6623d26..0000000000
--- a/deprecated/www/__registry__/default/charts/chart-area-step.tsx
+++ /dev/null
@@ -1,95 +0,0 @@
-"use client"
-
-import { Activity, TrendingUp } from "lucide-react"
-import { Area, AreaChart, CartesianGrid, XAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-
-export const description = "A step area chart"
-
-const chartData = [
- { month: "January", desktop: 186 },
- { month: "February", desktop: 305 },
- { month: "March", desktop: 237 },
- { month: "April", desktop: 73 },
- { month: "May", desktop: 209 },
- { month: "June", desktop: 214 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- icon: Activity,
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Area Chart - Step
-
- Showing total visitors for the last 6 months
-
-
-
-
-
-
- value.slice(0, 3)}
- />
- }
- />
-
-
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- January - June 2024
-
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/charts/chart-bar-active.tsx b/deprecated/www/__registry__/default/charts/chart-bar-active.tsx
deleted file mode 100644
index f1be5c7718..0000000000
--- a/deprecated/www/__registry__/default/charts/chart-bar-active.tsx
+++ /dev/null
@@ -1,111 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { Bar, BarChart, CartesianGrid, Rectangle, XAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-
-export const description = "A bar chart with an active bar"
-
-const chartData = [
- { browser: "chrome", visitors: 187, fill: "var(--color-chrome)" },
- { browser: "safari", visitors: 200, fill: "var(--color-safari)" },
- { browser: "firefox", visitors: 275, fill: "var(--color-firefox)" },
- { browser: "edge", visitors: 173, fill: "var(--color-edge)" },
- { browser: "other", visitors: 90, fill: "var(--color-other)" },
-]
-
-const chartConfig = {
- visitors: {
- label: "Visitors",
- },
- chrome: {
- label: "Chrome",
- color: "hsl(var(--chart-1))",
- },
- safari: {
- label: "Safari",
- color: "hsl(var(--chart-2))",
- },
- firefox: {
- label: "Firefox",
- color: "hsl(var(--chart-3))",
- },
- edge: {
- label: "Edge",
- color: "hsl(var(--chart-4))",
- },
- other: {
- label: "Other",
- color: "hsl(var(--chart-5))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Bar Chart - Active
- January - June 2024
-
-
-
-
-
-
- chartConfig[value as keyof typeof chartConfig]?.label
- }
- />
- }
- />
- {
- return (
-
- )
- }}
- />
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- Showing total visitors for the last 6 months
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/charts/chart-bar-default.tsx b/deprecated/www/__registry__/default/charts/chart-bar-default.tsx
deleted file mode 100644
index 9fc5f15a15..0000000000
--- a/deprecated/www/__registry__/default/charts/chart-bar-default.tsx
+++ /dev/null
@@ -1,75 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { Bar, BarChart, CartesianGrid, XAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-
-export const description = "A bar chart"
-
-const chartData = [
- { month: "January", desktop: 186 },
- { month: "February", desktop: 305 },
- { month: "March", desktop: 237 },
- { month: "April", desktop: 73 },
- { month: "May", desktop: 209 },
- { month: "June", desktop: 214 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Bar Chart
- January - June 2024
-
-
-
-
-
- value.slice(0, 3)}
- />
- }
- />
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- Showing total visitors for the last 6 months
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/charts/chart-bar-horizontal.tsx b/deprecated/www/__registry__/default/charts/chart-bar-horizontal.tsx
deleted file mode 100644
index ac74114cee..0000000000
--- a/deprecated/www/__registry__/default/charts/chart-bar-horizontal.tsx
+++ /dev/null
@@ -1,83 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { Bar, BarChart, XAxis, YAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-
-export const description = "A horizontal bar chart"
-
-const chartData = [
- { month: "January", desktop: 186 },
- { month: "February", desktop: 305 },
- { month: "March", desktop: 237 },
- { month: "April", desktop: 73 },
- { month: "May", desktop: 209 },
- { month: "June", desktop: 214 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Bar Chart - Horizontal
- January - June 2024
-
-
-
-
-
- value.slice(0, 3)}
- />
- }
- />
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- Showing total visitors for the last 6 months
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/charts/chart-bar-interactive.tsx b/deprecated/www/__registry__/default/charts/chart-bar-interactive.tsx
deleted file mode 100644
index 84bcc6a28c..0000000000
--- a/deprecated/www/__registry__/default/charts/chart-bar-interactive.tsx
+++ /dev/null
@@ -1,221 +0,0 @@
-"use client"
-
-import * as React from "react"
-import { Bar, BarChart, CartesianGrid, XAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-
-export const description = "An interactive bar chart"
-
-const chartData = [
- { date: "2024-04-01", desktop: 222, mobile: 150 },
- { date: "2024-04-02", desktop: 97, mobile: 180 },
- { date: "2024-04-03", desktop: 167, mobile: 120 },
- { date: "2024-04-04", desktop: 242, mobile: 260 },
- { date: "2024-04-05", desktop: 373, mobile: 290 },
- { date: "2024-04-06", desktop: 301, mobile: 340 },
- { date: "2024-04-07", desktop: 245, mobile: 180 },
- { date: "2024-04-08", desktop: 409, mobile: 320 },
- { date: "2024-04-09", desktop: 59, mobile: 110 },
- { date: "2024-04-10", desktop: 261, mobile: 190 },
- { date: "2024-04-11", desktop: 327, mobile: 350 },
- { date: "2024-04-12", desktop: 292, mobile: 210 },
- { date: "2024-04-13", desktop: 342, mobile: 380 },
- { date: "2024-04-14", desktop: 137, mobile: 220 },
- { date: "2024-04-15", desktop: 120, mobile: 170 },
- { date: "2024-04-16", desktop: 138, mobile: 190 },
- { date: "2024-04-17", desktop: 446, mobile: 360 },
- { date: "2024-04-18", desktop: 364, mobile: 410 },
- { date: "2024-04-19", desktop: 243, mobile: 180 },
- { date: "2024-04-20", desktop: 89, mobile: 150 },
- { date: "2024-04-21", desktop: 137, mobile: 200 },
- { date: "2024-04-22", desktop: 224, mobile: 170 },
- { date: "2024-04-23", desktop: 138, mobile: 230 },
- { date: "2024-04-24", desktop: 387, mobile: 290 },
- { date: "2024-04-25", desktop: 215, mobile: 250 },
- { date: "2024-04-26", desktop: 75, mobile: 130 },
- { date: "2024-04-27", desktop: 383, mobile: 420 },
- { date: "2024-04-28", desktop: 122, mobile: 180 },
- { date: "2024-04-29", desktop: 315, mobile: 240 },
- { date: "2024-04-30", desktop: 454, mobile: 380 },
- { date: "2024-05-01", desktop: 165, mobile: 220 },
- { date: "2024-05-02", desktop: 293, mobile: 310 },
- { date: "2024-05-03", desktop: 247, mobile: 190 },
- { date: "2024-05-04", desktop: 385, mobile: 420 },
- { date: "2024-05-05", desktop: 481, mobile: 390 },
- { date: "2024-05-06", desktop: 498, mobile: 520 },
- { date: "2024-05-07", desktop: 388, mobile: 300 },
- { date: "2024-05-08", desktop: 149, mobile: 210 },
- { date: "2024-05-09", desktop: 227, mobile: 180 },
- { date: "2024-05-10", desktop: 293, mobile: 330 },
- { date: "2024-05-11", desktop: 335, mobile: 270 },
- { date: "2024-05-12", desktop: 197, mobile: 240 },
- { date: "2024-05-13", desktop: 197, mobile: 160 },
- { date: "2024-05-14", desktop: 448, mobile: 490 },
- { date: "2024-05-15", desktop: 473, mobile: 380 },
- { date: "2024-05-16", desktop: 338, mobile: 400 },
- { date: "2024-05-17", desktop: 499, mobile: 420 },
- { date: "2024-05-18", desktop: 315, mobile: 350 },
- { date: "2024-05-19", desktop: 235, mobile: 180 },
- { date: "2024-05-20", desktop: 177, mobile: 230 },
- { date: "2024-05-21", desktop: 82, mobile: 140 },
- { date: "2024-05-22", desktop: 81, mobile: 120 },
- { date: "2024-05-23", desktop: 252, mobile: 290 },
- { date: "2024-05-24", desktop: 294, mobile: 220 },
- { date: "2024-05-25", desktop: 201, mobile: 250 },
- { date: "2024-05-26", desktop: 213, mobile: 170 },
- { date: "2024-05-27", desktop: 420, mobile: 460 },
- { date: "2024-05-28", desktop: 233, mobile: 190 },
- { date: "2024-05-29", desktop: 78, mobile: 130 },
- { date: "2024-05-30", desktop: 340, mobile: 280 },
- { date: "2024-05-31", desktop: 178, mobile: 230 },
- { date: "2024-06-01", desktop: 178, mobile: 200 },
- { date: "2024-06-02", desktop: 470, mobile: 410 },
- { date: "2024-06-03", desktop: 103, mobile: 160 },
- { date: "2024-06-04", desktop: 439, mobile: 380 },
- { date: "2024-06-05", desktop: 88, mobile: 140 },
- { date: "2024-06-06", desktop: 294, mobile: 250 },
- { date: "2024-06-07", desktop: 323, mobile: 370 },
- { date: "2024-06-08", desktop: 385, mobile: 320 },
- { date: "2024-06-09", desktop: 438, mobile: 480 },
- { date: "2024-06-10", desktop: 155, mobile: 200 },
- { date: "2024-06-11", desktop: 92, mobile: 150 },
- { date: "2024-06-12", desktop: 492, mobile: 420 },
- { date: "2024-06-13", desktop: 81, mobile: 130 },
- { date: "2024-06-14", desktop: 426, mobile: 380 },
- { date: "2024-06-15", desktop: 307, mobile: 350 },
- { date: "2024-06-16", desktop: 371, mobile: 310 },
- { date: "2024-06-17", desktop: 475, mobile: 520 },
- { date: "2024-06-18", desktop: 107, mobile: 170 },
- { date: "2024-06-19", desktop: 341, mobile: 290 },
- { date: "2024-06-20", desktop: 408, mobile: 450 },
- { date: "2024-06-21", desktop: 169, mobile: 210 },
- { date: "2024-06-22", desktop: 317, mobile: 270 },
- { date: "2024-06-23", desktop: 480, mobile: 530 },
- { date: "2024-06-24", desktop: 132, mobile: 180 },
- { date: "2024-06-25", desktop: 141, mobile: 190 },
- { date: "2024-06-26", desktop: 434, mobile: 380 },
- { date: "2024-06-27", desktop: 448, mobile: 490 },
- { date: "2024-06-28", desktop: 149, mobile: 200 },
- { date: "2024-06-29", desktop: 103, mobile: 160 },
- { date: "2024-06-30", desktop: 446, mobile: 400 },
-]
-
-const chartConfig = {
- views: {
- label: "Page Views",
- },
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
- mobile: {
- label: "Mobile",
- color: "hsl(var(--chart-2))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- const [activeChart, setActiveChart] =
- React.useState("desktop")
-
- const total = React.useMemo(
- () => ({
- desktop: chartData.reduce((acc, curr) => acc + curr.desktop, 0),
- mobile: chartData.reduce((acc, curr) => acc + curr.mobile, 0),
- }),
- []
- )
-
- return (
-
-
-
- Bar Chart - Interactive
-
- Showing total visitors for the last 3 months
-
-
-
- {["desktop", "mobile"].map((key) => {
- const chart = key as keyof typeof chartConfig
- return (
- setActiveChart(chart)}
- >
-
- {chartConfig[chart].label}
-
-
- {total[key as keyof typeof total].toLocaleString()}
-
-
- )
- })}
-
-
-
-
-
-
- {
- const date = new Date(value)
- return date.toLocaleDateString("en-US", {
- month: "short",
- day: "numeric",
- })
- }}
- />
- {
- return new Date(value).toLocaleDateString("en-US", {
- month: "short",
- day: "numeric",
- year: "numeric",
- })
- }}
- />
- }
- />
-
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/charts/chart-bar-label-custom.tsx b/deprecated/www/__registry__/default/charts/chart-bar-label-custom.tsx
deleted file mode 100644
index bd16655bc7..0000000000
--- a/deprecated/www/__registry__/default/charts/chart-bar-label-custom.tsx
+++ /dev/null
@@ -1,112 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { Bar, BarChart, CartesianGrid, LabelList, XAxis, YAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-
-export const description = "A bar chart with a custom label"
-
-const chartData = [
- { month: "January", desktop: 186, mobile: 80 },
- { month: "February", desktop: 305, mobile: 200 },
- { month: "March", desktop: 237, mobile: 120 },
- { month: "April", desktop: 73, mobile: 190 },
- { month: "May", desktop: 209, mobile: 130 },
- { month: "June", desktop: 214, mobile: 140 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
- mobile: {
- label: "Mobile",
- color: "hsl(var(--chart-2))",
- },
- label: {
- color: "hsl(var(--background))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Bar Chart - Custom Label
- January - June 2024
-
-
-
-
-
- value.slice(0, 3)}
- hide
- />
-
- }
- />
-
-
-
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- Showing total visitors for the last 6 months
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/charts/chart-bar-label.tsx b/deprecated/www/__registry__/default/charts/chart-bar-label.tsx
deleted file mode 100644
index c7ebea70e0..0000000000
--- a/deprecated/www/__registry__/default/charts/chart-bar-label.tsx
+++ /dev/null
@@ -1,88 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { Bar, BarChart, CartesianGrid, LabelList, XAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-
-export const description = "A bar chart with a label"
-
-const chartData = [
- { month: "January", desktop: 186 },
- { month: "February", desktop: 305 },
- { month: "March", desktop: 237 },
- { month: "April", desktop: 73 },
- { month: "May", desktop: 209 },
- { month: "June", desktop: 214 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Bar Chart - Label
- January - June 2024
-
-
-
-
-
- value.slice(0, 3)}
- />
- }
- />
-
-
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- Showing total visitors for the last 6 months
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/charts/chart-bar-mixed.tsx b/deprecated/www/__registry__/default/charts/chart-bar-mixed.tsx
deleted file mode 100644
index fa3beea6fc..0000000000
--- a/deprecated/www/__registry__/default/charts/chart-bar-mixed.tsx
+++ /dev/null
@@ -1,103 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { Bar, BarChart, XAxis, YAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-
-export const description = "A mixed bar chart"
-
-const chartData = [
- { browser: "chrome", visitors: 275, fill: "var(--color-chrome)" },
- { browser: "safari", visitors: 200, fill: "var(--color-safari)" },
- { browser: "firefox", visitors: 187, fill: "var(--color-firefox)" },
- { browser: "edge", visitors: 173, fill: "var(--color-edge)" },
- { browser: "other", visitors: 90, fill: "var(--color-other)" },
-]
-
-const chartConfig = {
- visitors: {
- label: "Visitors",
- },
- chrome: {
- label: "Chrome",
- color: "hsl(var(--chart-1))",
- },
- safari: {
- label: "Safari",
- color: "hsl(var(--chart-2))",
- },
- firefox: {
- label: "Firefox",
- color: "hsl(var(--chart-3))",
- },
- edge: {
- label: "Edge",
- color: "hsl(var(--chart-4))",
- },
- other: {
- label: "Other",
- color: "hsl(var(--chart-5))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Bar Chart - Mixed
- January - June 2024
-
-
-
-
-
- chartConfig[value as keyof typeof chartConfig]?.label
- }
- />
-
- }
- />
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- Showing total visitors for the last 6 months
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/charts/chart-bar-multiple.tsx b/deprecated/www/__registry__/default/charts/chart-bar-multiple.tsx
deleted file mode 100644
index 39b80fa76f..0000000000
--- a/deprecated/www/__registry__/default/charts/chart-bar-multiple.tsx
+++ /dev/null
@@ -1,80 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { Bar, BarChart, CartesianGrid, XAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-
-export const description = "A multiple bar chart"
-
-const chartData = [
- { month: "January", desktop: 186, mobile: 80 },
- { month: "February", desktop: 305, mobile: 200 },
- { month: "March", desktop: 237, mobile: 120 },
- { month: "April", desktop: 73, mobile: 190 },
- { month: "May", desktop: 209, mobile: 130 },
- { month: "June", desktop: 214, mobile: 140 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
- mobile: {
- label: "Mobile",
- color: "hsl(var(--chart-2))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Bar Chart - Multiple
- January - June 2024
-
-
-
-
-
- value.slice(0, 3)}
- />
- }
- />
-
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- Showing total visitors for the last 6 months
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/charts/chart-bar-negative.tsx b/deprecated/www/__registry__/default/charts/chart-bar-negative.tsx
deleted file mode 100644
index f9e3b3e360..0000000000
--- a/deprecated/www/__registry__/default/charts/chart-bar-negative.tsx
+++ /dev/null
@@ -1,79 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { Bar, BarChart, CartesianGrid, Cell, LabelList } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-
-export const description = "A bar chart with negative values"
-
-const chartData = [
- { month: "January", visitors: 186 },
- { month: "February", visitors: 205 },
- { month: "March", visitors: -207 },
- { month: "April", visitors: 173 },
- { month: "May", visitors: -209 },
- { month: "June", visitors: 214 },
-]
-
-const chartConfig = {
- visitors: {
- label: "Visitors",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Bar Chart - Negative
- January - June 2024
-
-
-
-
-
- }
- />
-
-
- {chartData.map((item) => (
- 0
- ? "hsl(var(--chart-1))"
- : "hsl(var(--chart-2))"
- }
- />
- ))}
- |
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- Showing total visitors for the last 6 months
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/charts/chart-bar-stacked.tsx b/deprecated/www/__registry__/default/charts/chart-bar-stacked.tsx
deleted file mode 100644
index 211bfe6aef..0000000000
--- a/deprecated/www/__registry__/default/charts/chart-bar-stacked.tsx
+++ /dev/null
@@ -1,90 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { Bar, BarChart, CartesianGrid, XAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartLegend,
- ChartLegendContent,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-
-export const description = "A stacked bar chart with a legend"
-
-const chartData = [
- { month: "January", desktop: 186, mobile: 80 },
- { month: "February", desktop: 305, mobile: 200 },
- { month: "March", desktop: 237, mobile: 120 },
- { month: "April", desktop: 73, mobile: 190 },
- { month: "May", desktop: 209, mobile: 130 },
- { month: "June", desktop: 214, mobile: 140 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
- mobile: {
- label: "Mobile",
- color: "hsl(var(--chart-2))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Bar Chart - Stacked + Legend
- January - June 2024
-
-
-
-
-
- value.slice(0, 3)}
- />
- } />
- } />
-
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- Showing total visitors for the last 6 months
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/charts/chart-line-default.tsx b/deprecated/www/__registry__/default/charts/chart-line-default.tsx
deleted file mode 100644
index 24972697fc..0000000000
--- a/deprecated/www/__registry__/default/charts/chart-line-default.tsx
+++ /dev/null
@@ -1,88 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { CartesianGrid, Line, LineChart, XAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-
-export const description = "A line chart"
-
-const chartData = [
- { month: "January", desktop: 186 },
- { month: "February", desktop: 305 },
- { month: "March", desktop: 237 },
- { month: "April", desktop: 73 },
- { month: "May", desktop: 209 },
- { month: "June", desktop: 214 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Line Chart
- January - June 2024
-
-
-
-
-
- value.slice(0, 3)}
- />
- }
- />
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- Showing total visitors for the last 6 months
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/charts/chart-line-dots-colors.tsx b/deprecated/www/__registry__/default/charts/chart-line-dots-colors.tsx
deleted file mode 100644
index e568ddd990..0000000000
--- a/deprecated/www/__registry__/default/charts/chart-line-dots-colors.tsx
+++ /dev/null
@@ -1,118 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { CartesianGrid, Dot, Line, LineChart } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-
-export const description = "A line chart with dots and colors"
-
-const chartData = [
- { browser: "chrome", visitors: 275, fill: "var(--color-chrome)" },
- { browser: "safari", visitors: 200, fill: "var(--color-safari)" },
- { browser: "firefox", visitors: 187, fill: "var(--color-firefox)" },
- { browser: "edge", visitors: 173, fill: "var(--color-edge)" },
- { browser: "other", visitors: 90, fill: "var(--color-other)" },
-]
-
-const chartConfig = {
- visitors: {
- label: "Visitors",
- color: "hsl(var(--chart-2))",
- },
- chrome: {
- label: "Chrome",
- color: "hsl(var(--chart-1))",
- },
- safari: {
- label: "Safari",
- color: "hsl(var(--chart-2))",
- },
- firefox: {
- label: "Firefox",
- color: "hsl(var(--chart-3))",
- },
- edge: {
- label: "Edge",
- color: "hsl(var(--chart-4))",
- },
- other: {
- label: "Other",
- color: "hsl(var(--chart-5))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Line Chart - Dots Colors
- January - June 2024
-
-
-
-
-
-
- }
- />
- {
- return (
-
- )
- }}
- />
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- Showing total visitors for the last 6 months
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/charts/chart-line-dots-custom.tsx b/deprecated/www/__registry__/default/charts/chart-line-dots-custom.tsx
deleted file mode 100644
index 4eae4da575..0000000000
--- a/deprecated/www/__registry__/default/charts/chart-line-dots-custom.tsx
+++ /dev/null
@@ -1,105 +0,0 @@
-"use client"
-
-import { GitCommitVertical, TrendingUp } from "lucide-react"
-import { CartesianGrid, Line, LineChart, XAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-
-export const description = "A line chart with custom dots"
-
-const chartData = [
- { month: "January", desktop: 186, mobile: 80 },
- { month: "February", desktop: 305, mobile: 200 },
- { month: "March", desktop: 237, mobile: 120 },
- { month: "April", desktop: 73, mobile: 190 },
- { month: "May", desktop: 209, mobile: 130 },
- { month: "June", desktop: 214, mobile: 140 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
- mobile: {
- label: "Mobile",
- color: "hsl(var(--chart-2))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Line Chart - Custom Dots
- January - June 2024
-
-
-
-
-
- value.slice(0, 3)}
- />
- }
- />
- {
- const r = 24
- return (
-
- )
- }}
- />
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- Showing total visitors for the last 6 months
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/charts/chart-line-dots.tsx b/deprecated/www/__registry__/default/charts/chart-line-dots.tsx
deleted file mode 100644
index d52f09148e..0000000000
--- a/deprecated/www/__registry__/default/charts/chart-line-dots.tsx
+++ /dev/null
@@ -1,97 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { CartesianGrid, Line, LineChart, XAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-
-export const description = "A line chart with dots"
-
-const chartData = [
- { month: "January", desktop: 186, mobile: 80 },
- { month: "February", desktop: 305, mobile: 200 },
- { month: "March", desktop: 237, mobile: 120 },
- { month: "April", desktop: 73, mobile: 190 },
- { month: "May", desktop: 209, mobile: 130 },
- { month: "June", desktop: 214, mobile: 140 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
- mobile: {
- label: "Mobile",
- color: "hsl(var(--chart-2))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Line Chart - Dots
- January - June 2024
-
-
-
-
-
- value.slice(0, 3)}
- />
- }
- />
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- Showing total visitors for the last 6 months
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/charts/chart-line-interactive.tsx b/deprecated/www/__registry__/default/charts/chart-line-interactive.tsx
deleted file mode 100644
index 6f61820071..0000000000
--- a/deprecated/www/__registry__/default/charts/chart-line-interactive.tsx
+++ /dev/null
@@ -1,227 +0,0 @@
-"use client"
-
-import * as React from "react"
-import { CartesianGrid, Line, LineChart, XAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-
-export const description = "An interactive line chart"
-
-const chartData = [
- { date: "2024-04-01", desktop: 222, mobile: 150 },
- { date: "2024-04-02", desktop: 97, mobile: 180 },
- { date: "2024-04-03", desktop: 167, mobile: 120 },
- { date: "2024-04-04", desktop: 242, mobile: 260 },
- { date: "2024-04-05", desktop: 373, mobile: 290 },
- { date: "2024-04-06", desktop: 301, mobile: 340 },
- { date: "2024-04-07", desktop: 245, mobile: 180 },
- { date: "2024-04-08", desktop: 409, mobile: 320 },
- { date: "2024-04-09", desktop: 59, mobile: 110 },
- { date: "2024-04-10", desktop: 261, mobile: 190 },
- { date: "2024-04-11", desktop: 327, mobile: 350 },
- { date: "2024-04-12", desktop: 292, mobile: 210 },
- { date: "2024-04-13", desktop: 342, mobile: 380 },
- { date: "2024-04-14", desktop: 137, mobile: 220 },
- { date: "2024-04-15", desktop: 120, mobile: 170 },
- { date: "2024-04-16", desktop: 138, mobile: 190 },
- { date: "2024-04-17", desktop: 446, mobile: 360 },
- { date: "2024-04-18", desktop: 364, mobile: 410 },
- { date: "2024-04-19", desktop: 243, mobile: 180 },
- { date: "2024-04-20", desktop: 89, mobile: 150 },
- { date: "2024-04-21", desktop: 137, mobile: 200 },
- { date: "2024-04-22", desktop: 224, mobile: 170 },
- { date: "2024-04-23", desktop: 138, mobile: 230 },
- { date: "2024-04-24", desktop: 387, mobile: 290 },
- { date: "2024-04-25", desktop: 215, mobile: 250 },
- { date: "2024-04-26", desktop: 75, mobile: 130 },
- { date: "2024-04-27", desktop: 383, mobile: 420 },
- { date: "2024-04-28", desktop: 122, mobile: 180 },
- { date: "2024-04-29", desktop: 315, mobile: 240 },
- { date: "2024-04-30", desktop: 454, mobile: 380 },
- { date: "2024-05-01", desktop: 165, mobile: 220 },
- { date: "2024-05-02", desktop: 293, mobile: 310 },
- { date: "2024-05-03", desktop: 247, mobile: 190 },
- { date: "2024-05-04", desktop: 385, mobile: 420 },
- { date: "2024-05-05", desktop: 481, mobile: 390 },
- { date: "2024-05-06", desktop: 498, mobile: 520 },
- { date: "2024-05-07", desktop: 388, mobile: 300 },
- { date: "2024-05-08", desktop: 149, mobile: 210 },
- { date: "2024-05-09", desktop: 227, mobile: 180 },
- { date: "2024-05-10", desktop: 293, mobile: 330 },
- { date: "2024-05-11", desktop: 335, mobile: 270 },
- { date: "2024-05-12", desktop: 197, mobile: 240 },
- { date: "2024-05-13", desktop: 197, mobile: 160 },
- { date: "2024-05-14", desktop: 448, mobile: 490 },
- { date: "2024-05-15", desktop: 473, mobile: 380 },
- { date: "2024-05-16", desktop: 338, mobile: 400 },
- { date: "2024-05-17", desktop: 499, mobile: 420 },
- { date: "2024-05-18", desktop: 315, mobile: 350 },
- { date: "2024-05-19", desktop: 235, mobile: 180 },
- { date: "2024-05-20", desktop: 177, mobile: 230 },
- { date: "2024-05-21", desktop: 82, mobile: 140 },
- { date: "2024-05-22", desktop: 81, mobile: 120 },
- { date: "2024-05-23", desktop: 252, mobile: 290 },
- { date: "2024-05-24", desktop: 294, mobile: 220 },
- { date: "2024-05-25", desktop: 201, mobile: 250 },
- { date: "2024-05-26", desktop: 213, mobile: 170 },
- { date: "2024-05-27", desktop: 420, mobile: 460 },
- { date: "2024-05-28", desktop: 233, mobile: 190 },
- { date: "2024-05-29", desktop: 78, mobile: 130 },
- { date: "2024-05-30", desktop: 340, mobile: 280 },
- { date: "2024-05-31", desktop: 178, mobile: 230 },
- { date: "2024-06-01", desktop: 178, mobile: 200 },
- { date: "2024-06-02", desktop: 470, mobile: 410 },
- { date: "2024-06-03", desktop: 103, mobile: 160 },
- { date: "2024-06-04", desktop: 439, mobile: 380 },
- { date: "2024-06-05", desktop: 88, mobile: 140 },
- { date: "2024-06-06", desktop: 294, mobile: 250 },
- { date: "2024-06-07", desktop: 323, mobile: 370 },
- { date: "2024-06-08", desktop: 385, mobile: 320 },
- { date: "2024-06-09", desktop: 438, mobile: 480 },
- { date: "2024-06-10", desktop: 155, mobile: 200 },
- { date: "2024-06-11", desktop: 92, mobile: 150 },
- { date: "2024-06-12", desktop: 492, mobile: 420 },
- { date: "2024-06-13", desktop: 81, mobile: 130 },
- { date: "2024-06-14", desktop: 426, mobile: 380 },
- { date: "2024-06-15", desktop: 307, mobile: 350 },
- { date: "2024-06-16", desktop: 371, mobile: 310 },
- { date: "2024-06-17", desktop: 475, mobile: 520 },
- { date: "2024-06-18", desktop: 107, mobile: 170 },
- { date: "2024-06-19", desktop: 341, mobile: 290 },
- { date: "2024-06-20", desktop: 408, mobile: 450 },
- { date: "2024-06-21", desktop: 169, mobile: 210 },
- { date: "2024-06-22", desktop: 317, mobile: 270 },
- { date: "2024-06-23", desktop: 480, mobile: 530 },
- { date: "2024-06-24", desktop: 132, mobile: 180 },
- { date: "2024-06-25", desktop: 141, mobile: 190 },
- { date: "2024-06-26", desktop: 434, mobile: 380 },
- { date: "2024-06-27", desktop: 448, mobile: 490 },
- { date: "2024-06-28", desktop: 149, mobile: 200 },
- { date: "2024-06-29", desktop: 103, mobile: 160 },
- { date: "2024-06-30", desktop: 446, mobile: 400 },
-]
-
-const chartConfig = {
- views: {
- label: "Page Views",
- },
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
- mobile: {
- label: "Mobile",
- color: "hsl(var(--chart-2))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- const [activeChart, setActiveChart] =
- React.useState("desktop")
-
- const total = React.useMemo(
- () => ({
- desktop: chartData.reduce((acc, curr) => acc + curr.desktop, 0),
- mobile: chartData.reduce((acc, curr) => acc + curr.mobile, 0),
- }),
- []
- )
-
- return (
-
-
-
- Line Chart - Interactive
-
- Showing total visitors for the last 3 months
-
-
-
- {["desktop", "mobile"].map((key) => {
- const chart = key as keyof typeof chartConfig
- return (
- setActiveChart(chart)}
- >
-
- {chartConfig[chart].label}
-
-
- {total[key as keyof typeof total].toLocaleString()}
-
-
- )
- })}
-
-
-
-
-
-
- {
- const date = new Date(value)
- return date.toLocaleDateString("en-US", {
- month: "short",
- day: "numeric",
- })
- }}
- />
- {
- return new Date(value).toLocaleDateString("en-US", {
- month: "short",
- day: "numeric",
- year: "numeric",
- })
- }}
- />
- }
- />
-
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/charts/chart-line-label-custom.tsx b/deprecated/www/__registry__/default/charts/chart-line-label-custom.tsx
deleted file mode 100644
index e6976bd892..0000000000
--- a/deprecated/www/__registry__/default/charts/chart-line-label-custom.tsx
+++ /dev/null
@@ -1,123 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { CartesianGrid, LabelList, Line, LineChart } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-
-export const description = "A line chart with a custom label"
-
-const chartData = [
- { browser: "chrome", visitors: 275, fill: "var(--color-chrome)" },
- { browser: "safari", visitors: 200, fill: "var(--color-safari)" },
- { browser: "firefox", visitors: 187, fill: "var(--color-firefox)" },
- { browser: "edge", visitors: 173, fill: "var(--color-edge)" },
- { browser: "other", visitors: 90, fill: "var(--color-other)" },
-]
-
-const chartConfig = {
- visitors: {
- label: "Visitors",
- color: "hsl(var(--chart-2))",
- },
- chrome: {
- label: "Chrome",
- color: "hsl(var(--chart-1))",
- },
- safari: {
- label: "Safari",
- color: "hsl(var(--chart-2))",
- },
- firefox: {
- label: "Firefox",
- color: "hsl(var(--chart-3))",
- },
- edge: {
- label: "Edge",
- color: "hsl(var(--chart-4))",
- },
- other: {
- label: "Other",
- color: "hsl(var(--chart-5))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Line Chart - Custom Label
- January - June 2024
-
-
-
-
-
-
- }
- />
-
-
- chartConfig[value]?.label
- }
- />
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- Showing total visitors for the last 6 months
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/charts/chart-line-label.tsx b/deprecated/www/__registry__/default/charts/chart-line-label.tsx
deleted file mode 100644
index 159e103176..0000000000
--- a/deprecated/www/__registry__/default/charts/chart-line-label.tsx
+++ /dev/null
@@ -1,105 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { CartesianGrid, LabelList, Line, LineChart, XAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-
-export const description = "A line chart with a label"
-
-const chartData = [
- { month: "January", desktop: 186, mobile: 80 },
- { month: "February", desktop: 305, mobile: 200 },
- { month: "March", desktop: 237, mobile: 120 },
- { month: "April", desktop: 73, mobile: 190 },
- { month: "May", desktop: 209, mobile: 130 },
- { month: "June", desktop: 214, mobile: 140 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
- mobile: {
- label: "Mobile",
- color: "hsl(var(--chart-2))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Line Chart - Label
- January - June 2024
-
-
-
-
-
- value.slice(0, 3)}
- />
- }
- />
-
-
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- Showing total visitors for the last 6 months
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/charts/chart-line-linear.tsx b/deprecated/www/__registry__/default/charts/chart-line-linear.tsx
deleted file mode 100644
index 9d3e06f5e9..0000000000
--- a/deprecated/www/__registry__/default/charts/chart-line-linear.tsx
+++ /dev/null
@@ -1,88 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { CartesianGrid, Line, LineChart, XAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-
-export const description = "A linear line chart"
-
-const chartData = [
- { month: "January", desktop: 186 },
- { month: "February", desktop: 305 },
- { month: "March", desktop: 237 },
- { month: "April", desktop: 73 },
- { month: "May", desktop: 209 },
- { month: "June", desktop: 214 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Line Chart - Linear
- January - June 2024
-
-
-
-
-
- value.slice(0, 3)}
- />
- }
- />
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- Showing total visitors for the last 6 months
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/charts/chart-line-multiple.tsx b/deprecated/www/__registry__/default/charts/chart-line-multiple.tsx
deleted file mode 100644
index 61ea1d960f..0000000000
--- a/deprecated/www/__registry__/default/charts/chart-line-multiple.tsx
+++ /dev/null
@@ -1,100 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { CartesianGrid, Line, LineChart, XAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-
-export const description = "A multiple line chart"
-
-const chartData = [
- { month: "January", desktop: 186, mobile: 80 },
- { month: "February", desktop: 305, mobile: 200 },
- { month: "March", desktop: 237, mobile: 120 },
- { month: "April", desktop: 73, mobile: 190 },
- { month: "May", desktop: 209, mobile: 130 },
- { month: "June", desktop: 214, mobile: 140 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
- mobile: {
- label: "Mobile",
- color: "hsl(var(--chart-2))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Line Chart - Multiple
- January - June 2024
-
-
-
-
-
- value.slice(0, 3)}
- />
- } />
-
-
-
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- Showing total visitors for the last 6 months
-
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/charts/chart-line-step.tsx b/deprecated/www/__registry__/default/charts/chart-line-step.tsx
deleted file mode 100644
index 608bd5f628..0000000000
--- a/deprecated/www/__registry__/default/charts/chart-line-step.tsx
+++ /dev/null
@@ -1,88 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { CartesianGrid, Line, LineChart, XAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-
-export const description = "A line chart with step"
-
-const chartData = [
- { month: "January", desktop: 186 },
- { month: "February", desktop: 305 },
- { month: "March", desktop: 237 },
- { month: "April", desktop: 73 },
- { month: "May", desktop: 209 },
- { month: "June", desktop: 214 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Line Chart - Step
- January - June 2024
-
-
-
-
-
- value.slice(0, 3)}
- />
- }
- />
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- Showing total visitors for the last 6 months
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/charts/chart-pie-donut-active.tsx b/deprecated/www/__registry__/default/charts/chart-pie-donut-active.tsx
deleted file mode 100644
index 5a39041919..0000000000
--- a/deprecated/www/__registry__/default/charts/chart-pie-donut-active.tsx
+++ /dev/null
@@ -1,102 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { Label, Pie, PieChart, Sector } from "recharts"
-import { PieSectorDataItem } from "recharts/types/polar/Pie"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-
-export const description = "A donut chart with an active sector"
-
-const chartData = [
- { browser: "chrome", visitors: 275, fill: "var(--color-chrome)" },
- { browser: "safari", visitors: 200, fill: "var(--color-safari)" },
- { browser: "firefox", visitors: 187, fill: "var(--color-firefox)" },
- { browser: "edge", visitors: 173, fill: "var(--color-edge)" },
- { browser: "other", visitors: 90, fill: "var(--color-other)" },
-]
-
-const chartConfig = {
- visitors: {
- label: "Visitors",
- },
- chrome: {
- label: "Chrome",
- color: "hsl(var(--chart-1))",
- },
- safari: {
- label: "Safari",
- color: "hsl(var(--chart-2))",
- },
- firefox: {
- label: "Firefox",
- color: "hsl(var(--chart-3))",
- },
- edge: {
- label: "Edge",
- color: "hsl(var(--chart-4))",
- },
- other: {
- label: "Other",
- color: "hsl(var(--chart-5))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Pie Chart - Donut Active
- January - June 2024
-
-
-
-
- }
- />
- (
-
- )}
- />
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- Showing total visitors for the last 6 months
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/charts/chart-pie-donut-text.tsx b/deprecated/www/__registry__/default/charts/chart-pie-donut-text.tsx
deleted file mode 100644
index ff5391ab1d..0000000000
--- a/deprecated/www/__registry__/default/charts/chart-pie-donut-text.tsx
+++ /dev/null
@@ -1,129 +0,0 @@
-"use client"
-
-import * as React from "react"
-import { TrendingUp } from "lucide-react"
-import { Label, Pie, PieChart } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-
-export const description = "A donut chart with text"
-
-const chartData = [
- { browser: "chrome", visitors: 275, fill: "var(--color-chrome)" },
- { browser: "safari", visitors: 200, fill: "var(--color-safari)" },
- { browser: "firefox", visitors: 287, fill: "var(--color-firefox)" },
- { browser: "edge", visitors: 173, fill: "var(--color-edge)" },
- { browser: "other", visitors: 190, fill: "var(--color-other)" },
-]
-
-const chartConfig = {
- visitors: {
- label: "Visitors",
- },
- chrome: {
- label: "Chrome",
- color: "hsl(var(--chart-1))",
- },
- safari: {
- label: "Safari",
- color: "hsl(var(--chart-2))",
- },
- firefox: {
- label: "Firefox",
- color: "hsl(var(--chart-3))",
- },
- edge: {
- label: "Edge",
- color: "hsl(var(--chart-4))",
- },
- other: {
- label: "Other",
- color: "hsl(var(--chart-5))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- const totalVisitors = React.useMemo(() => {
- return chartData.reduce((acc, curr) => acc + curr.visitors, 0)
- }, [])
-
- return (
-
-
- Pie Chart - Donut with Text
- January - June 2024
-
-
-
-
- }
- />
-
- {
- if (viewBox && "cx" in viewBox && "cy" in viewBox) {
- return (
-
-
- {totalVisitors.toLocaleString()}
-
-
- Visitors
-
-
- )
- }
- }}
- />
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- Showing total visitors for the last 6 months
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/charts/chart-pie-donut.tsx b/deprecated/www/__registry__/default/charts/chart-pie-donut.tsx
deleted file mode 100644
index 45d17ecdd2..0000000000
--- a/deprecated/www/__registry__/default/charts/chart-pie-donut.tsx
+++ /dev/null
@@ -1,93 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { Pie, PieChart } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-
-export const description = "A donut chart"
-
-const chartData = [
- { browser: "chrome", visitors: 275, fill: "var(--color-chrome)" },
- { browser: "safari", visitors: 200, fill: "var(--color-safari)" },
- { browser: "firefox", visitors: 187, fill: "var(--color-firefox)" },
- { browser: "edge", visitors: 173, fill: "var(--color-edge)" },
- { browser: "other", visitors: 90, fill: "var(--color-other)" },
-]
-
-const chartConfig = {
- visitors: {
- label: "Visitors",
- },
- chrome: {
- label: "Chrome",
- color: "hsl(var(--chart-1))",
- },
- safari: {
- label: "Safari",
- color: "hsl(var(--chart-2))",
- },
- firefox: {
- label: "Firefox",
- color: "hsl(var(--chart-3))",
- },
- edge: {
- label: "Edge",
- color: "hsl(var(--chart-4))",
- },
- other: {
- label: "Other",
- color: "hsl(var(--chart-5))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Pie Chart - Donut
- January - June 2024
-
-
-
-
- }
- />
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- Showing total visitors for the last 6 months
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/charts/chart-pie-interactive.tsx b/deprecated/www/__registry__/default/charts/chart-pie-interactive.tsx
deleted file mode 100644
index e1abb04262..0000000000
--- a/deprecated/www/__registry__/default/charts/chart-pie-interactive.tsx
+++ /dev/null
@@ -1,192 +0,0 @@
-"use client"
-
-import * as React from "react"
-import { Label, Pie, PieChart, Sector } from "recharts"
-import { PieSectorDataItem } from "recharts/types/polar/Pie"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartStyle,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-import {
- Select,
- SelectContent,
- SelectItem,
- SelectTrigger,
- SelectValue,
-} from "@/registry/default/ui/select"
-
-export const description = "An interactive pie chart"
-
-const desktopData = [
- { month: "january", desktop: 186, fill: "var(--color-january)" },
- { month: "february", desktop: 305, fill: "var(--color-february)" },
- { month: "march", desktop: 237, fill: "var(--color-march)" },
- { month: "april", desktop: 173, fill: "var(--color-april)" },
- { month: "may", desktop: 209, fill: "var(--color-may)" },
-]
-
-const chartConfig = {
- visitors: {
- label: "Visitors",
- },
- desktop: {
- label: "Desktop",
- },
- mobile: {
- label: "Mobile",
- },
- january: {
- label: "January",
- color: "hsl(var(--chart-1))",
- },
- february: {
- label: "February",
- color: "hsl(var(--chart-2))",
- },
- march: {
- label: "March",
- color: "hsl(var(--chart-3))",
- },
- april: {
- label: "April",
- color: "hsl(var(--chart-4))",
- },
- may: {
- label: "May",
- color: "hsl(var(--chart-5))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- const id = "pie-interactive"
- const [activeMonth, setActiveMonth] = React.useState(desktopData[0].month)
-
- const activeIndex = React.useMemo(
- () => desktopData.findIndex((item) => item.month === activeMonth),
- [activeMonth]
- )
- const months = React.useMemo(() => desktopData.map((item) => item.month), [])
-
- return (
-
-
-
-
- Pie Chart - Interactive
- January - June 2024
-
-
-
-
-
-
- {months.map((key) => {
- const config = chartConfig[key as keyof typeof chartConfig]
-
- if (!config) {
- return null
- }
-
- return (
-
-
-
- {config?.label}
-
-
- )
- })}
-
-
-
-
-
-
- }
- />
- (
-
-
-
-
- )}
- >
- {
- if (viewBox && "cx" in viewBox && "cy" in viewBox) {
- return (
-
-
- {desktopData[activeIndex].desktop.toLocaleString()}
-
-
- Visitors
-
-
- )
- }
- }}
- />
-
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/charts/chart-pie-label-custom.tsx b/deprecated/www/__registry__/default/charts/chart-pie-label-custom.tsx
deleted file mode 100644
index 4b8c616214..0000000000
--- a/deprecated/www/__registry__/default/charts/chart-pie-label-custom.tsx
+++ /dev/null
@@ -1,107 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { Pie, PieChart } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-
-export const description = "A pie chart with a custom label"
-
-const chartData = [
- { browser: "chrome", visitors: 275, fill: "var(--color-chrome)" },
- { browser: "safari", visitors: 200, fill: "var(--color-safari)" },
- { browser: "firefox", visitors: 187, fill: "var(--color-firefox)" },
- { browser: "edge", visitors: 173, fill: "var(--color-edge)" },
- { browser: "other", visitors: 90, fill: "var(--color-other)" },
-]
-
-const chartConfig = {
- visitors: {
- label: "Visitors",
- },
- chrome: {
- label: "Chrome",
- color: "hsl(var(--chart-1))",
- },
- safari: {
- label: "Safari",
- color: "hsl(var(--chart-2))",
- },
- firefox: {
- label: "Firefox",
- color: "hsl(var(--chart-3))",
- },
- edge: {
- label: "Edge",
- color: "hsl(var(--chart-4))",
- },
- other: {
- label: "Other",
- color: "hsl(var(--chart-5))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Pie Chart - Custom Label
- January - June 2024
-
-
-
-
- }
- />
- {
- return (
-
- {payload.visitors}
-
- )
- }}
- nameKey="browser"
- />
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- Showing total visitors for the last 6 months
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/charts/chart-pie-label-list.tsx b/deprecated/www/__registry__/default/charts/chart-pie-label-list.tsx
deleted file mode 100644
index 6b083fb02a..0000000000
--- a/deprecated/www/__registry__/default/charts/chart-pie-label-list.tsx
+++ /dev/null
@@ -1,97 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { LabelList, Pie, PieChart } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-
-export const description = "A pie chart with a label list"
-
-const chartData = [
- { browser: "chrome", visitors: 275, fill: "var(--color-chrome)" },
- { browser: "safari", visitors: 200, fill: "var(--color-safari)" },
- { browser: "firefox", visitors: 187, fill: "var(--color-firefox)" },
- { browser: "edge", visitors: 173, fill: "var(--color-edge)" },
- { browser: "other", visitors: 90, fill: "var(--color-other)" },
-]
-
-const chartConfig = {
- visitors: {
- label: "Visitors",
- },
- chrome: {
- label: "Chrome",
- color: "hsl(var(--chart-1))",
- },
- safari: {
- label: "Safari",
- color: "hsl(var(--chart-2))",
- },
- firefox: {
- label: "Firefox",
- color: "hsl(var(--chart-3))",
- },
- edge: {
- label: "Edge",
- color: "hsl(var(--chart-4))",
- },
- other: {
- label: "Other",
- color: "hsl(var(--chart-5))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Pie Chart - Label List
- January - June 2024
-
-
-
-
- }
- />
-
-
- chartConfig[value]?.label
- }
- />
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- Showing total visitors for the last 6 months
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/charts/chart-pie-label.tsx b/deprecated/www/__registry__/default/charts/chart-pie-label.tsx
deleted file mode 100644
index 26c294cd65..0000000000
--- a/deprecated/www/__registry__/default/charts/chart-pie-label.tsx
+++ /dev/null
@@ -1,85 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { Pie, PieChart } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-
-export const description = "A pie chart with a label"
-
-const chartData = [
- { browser: "chrome", visitors: 275, fill: "var(--color-chrome)" },
- { browser: "safari", visitors: 200, fill: "var(--color-safari)" },
- { browser: "firefox", visitors: 187, fill: "var(--color-firefox)" },
- { browser: "edge", visitors: 173, fill: "var(--color-edge)" },
- { browser: "other", visitors: 90, fill: "var(--color-other)" },
-]
-
-const chartConfig = {
- visitors: {
- label: "Visitors",
- },
- chrome: {
- label: "Chrome",
- color: "hsl(var(--chart-1))",
- },
- safari: {
- label: "Safari",
- color: "hsl(var(--chart-2))",
- },
- firefox: {
- label: "Firefox",
- color: "hsl(var(--chart-3))",
- },
- edge: {
- label: "Edge",
- color: "hsl(var(--chart-4))",
- },
- other: {
- label: "Other",
- color: "hsl(var(--chart-5))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Pie Chart - Label
- January - June 2024
-
-
-
-
- } />
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- Showing total visitors for the last 6 months
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/charts/chart-pie-legend.tsx b/deprecated/www/__registry__/default/charts/chart-pie-legend.tsx
deleted file mode 100644
index 3e3d7534a8..0000000000
--- a/deprecated/www/__registry__/default/charts/chart-pie-legend.tsx
+++ /dev/null
@@ -1,78 +0,0 @@
-"use client"
-
-import { Pie, PieChart } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartLegend,
- ChartLegendContent,
-} from "@/registry/default/ui/chart"
-
-export const description = "A pie chart with a legend"
-
-const chartData = [
- { browser: "chrome", visitors: 275, fill: "var(--color-chrome)" },
- { browser: "safari", visitors: 200, fill: "var(--color-safari)" },
- { browser: "firefox", visitors: 187, fill: "var(--color-firefox)" },
- { browser: "edge", visitors: 173, fill: "var(--color-edge)" },
- { browser: "other", visitors: 90, fill: "var(--color-other)" },
-]
-
-const chartConfig = {
- visitors: {
- label: "Visitors",
- },
- chrome: {
- label: "Chrome",
- color: "hsl(var(--chart-1))",
- },
- safari: {
- label: "Safari",
- color: "hsl(var(--chart-2))",
- },
- firefox: {
- label: "Firefox",
- color: "hsl(var(--chart-3))",
- },
- edge: {
- label: "Edge",
- color: "hsl(var(--chart-4))",
- },
- other: {
- label: "Other",
- color: "hsl(var(--chart-5))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Pie Chart - Legend
- January - June 2024
-
-
-
-
-
- }
- className="-translate-y-2 flex-wrap gap-2 [&>*]:basis-1/4 [&>*]:justify-center"
- />
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/charts/chart-pie-separator-none.tsx b/deprecated/www/__registry__/default/charts/chart-pie-separator-none.tsx
deleted file mode 100644
index 08ec2b5633..0000000000
--- a/deprecated/www/__registry__/default/charts/chart-pie-separator-none.tsx
+++ /dev/null
@@ -1,93 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { Pie, PieChart } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-
-export const description = "A pie chart with no separator"
-
-const chartData = [
- { browser: "chrome", visitors: 275, fill: "var(--color-chrome)" },
- { browser: "safari", visitors: 200, fill: "var(--color-safari)" },
- { browser: "firefox", visitors: 187, fill: "var(--color-firefox)" },
- { browser: "edge", visitors: 173, fill: "var(--color-edge)" },
- { browser: "other", visitors: 90, fill: "var(--color-other)" },
-]
-
-const chartConfig = {
- visitors: {
- label: "Visitors",
- },
- chrome: {
- label: "Chrome",
- color: "hsl(var(--chart-1))",
- },
- safari: {
- label: "Safari",
- color: "hsl(var(--chart-2))",
- },
- firefox: {
- label: "Firefox",
- color: "hsl(var(--chart-3))",
- },
- edge: {
- label: "Edge",
- color: "hsl(var(--chart-4))",
- },
- other: {
- label: "Other",
- color: "hsl(var(--chart-5))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Pie Chart - Separator None
- January - June 2024
-
-
-
-
- }
- />
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- Showing total visitors for the last 6 months
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/charts/chart-pie-simple.tsx b/deprecated/www/__registry__/default/charts/chart-pie-simple.tsx
deleted file mode 100644
index 5108126f71..0000000000
--- a/deprecated/www/__registry__/default/charts/chart-pie-simple.tsx
+++ /dev/null
@@ -1,88 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { Pie, PieChart } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-
-export const description = "A simple pie chart"
-
-const chartData = [
- { browser: "chrome", visitors: 275, fill: "var(--color-chrome)" },
- { browser: "safari", visitors: 200, fill: "var(--color-safari)" },
- { browser: "firefox", visitors: 187, fill: "var(--color-firefox)" },
- { browser: "edge", visitors: 173, fill: "var(--color-edge)" },
- { browser: "other", visitors: 90, fill: "var(--color-other)" },
-]
-
-const chartConfig = {
- visitors: {
- label: "Visitors",
- },
- chrome: {
- label: "Chrome",
- color: "hsl(var(--chart-1))",
- },
- safari: {
- label: "Safari",
- color: "hsl(var(--chart-2))",
- },
- firefox: {
- label: "Firefox",
- color: "hsl(var(--chart-3))",
- },
- edge: {
- label: "Edge",
- color: "hsl(var(--chart-4))",
- },
- other: {
- label: "Other",
- color: "hsl(var(--chart-5))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Pie Chart
- January - June 2024
-
-
-
-
- }
- />
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- Showing total visitors for the last 6 months
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/charts/chart-pie-stacked.tsx b/deprecated/www/__registry__/default/charts/chart-pie-stacked.tsx
deleted file mode 100644
index db8b0efbbc..0000000000
--- a/deprecated/www/__registry__/default/charts/chart-pie-stacked.tsx
+++ /dev/null
@@ -1,119 +0,0 @@
-"use client"
-
-import * as React from "react"
-import { TrendingUp } from "lucide-react"
-import { Label, Pie, PieChart } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-
-export const description = "A pie chart with stacked sections"
-
-const desktopData = [
- { month: "january", desktop: 186, fill: "var(--color-january)" },
- { month: "february", desktop: 305, fill: "var(--color-february)" },
- { month: "march", desktop: 237, fill: "var(--color-march)" },
- { month: "april", desktop: 173, fill: "var(--color-april)" },
- { month: "may", desktop: 209, fill: "var(--color-may)" },
-]
-
-const mobileData = [
- { month: "january", mobile: 80, fill: "var(--color-january)" },
- { month: "february", mobile: 200, fill: "var(--color-february)" },
- { month: "march", mobile: 120, fill: "var(--color-march)" },
- { month: "april", mobile: 190, fill: "var(--color-april)" },
- { month: "may", mobile: 130, fill: "var(--color-may)" },
-]
-
-const chartConfig = {
- visitors: {
- label: "Visitors",
- },
- desktop: {
- label: "Desktop",
- },
- mobile: {
- label: "Mobile",
- },
- january: {
- label: "January",
- color: "hsl(var(--chart-1))",
- },
- february: {
- label: "February",
- color: "hsl(var(--chart-2))",
- },
- march: {
- label: "March",
- color: "hsl(var(--chart-3))",
- },
- april: {
- label: "April",
- color: "hsl(var(--chart-4))",
- },
- may: {
- label: "May",
- color: "hsl(var(--chart-5))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Pie Chart - Stacked
- January - June 2024
-
-
-
-
- {
- return chartConfig[
- payload?.[0].dataKey as keyof typeof chartConfig
- ].label
- }}
- />
- }
- />
-
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- Showing total visitors for the last 6 months
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/charts/chart-radar-default.tsx b/deprecated/www/__registry__/default/charts/chart-radar-default.tsx
deleted file mode 100644
index e4b4185684..0000000000
--- a/deprecated/www/__registry__/default/charts/chart-radar-default.tsx
+++ /dev/null
@@ -1,75 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { PolarAngleAxis, PolarGrid, Radar, RadarChart } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-
-export const description = "A radar chart"
-
-const chartData = [
- { month: "January", desktop: 186 },
- { month: "February", desktop: 305 },
- { month: "March", desktop: 237 },
- { month: "April", desktop: 273 },
- { month: "May", desktop: 209 },
- { month: "June", desktop: 214 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Radar Chart
-
- Showing total visitors for the last 6 months
-
-
-
-
-
- } />
-
-
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- January - June 2024
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/charts/chart-radar-dots.tsx b/deprecated/www/__registry__/default/charts/chart-radar-dots.tsx
deleted file mode 100644
index 461a229540..0000000000
--- a/deprecated/www/__registry__/default/charts/chart-radar-dots.tsx
+++ /dev/null
@@ -1,79 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { PolarAngleAxis, PolarGrid, Radar, RadarChart } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-
-export const description = "A radar chart with dots"
-
-const chartData = [
- { month: "January", desktop: 186 },
- { month: "February", desktop: 305 },
- { month: "March", desktop: 237 },
- { month: "April", desktop: 273 },
- { month: "May", desktop: 209 },
- { month: "June", desktop: 214 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Radar Chart - Dots
-
- Showing total visitors for the last 6 months
-
-
-
-
-
- } />
-
-
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- January - June 2024
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/charts/chart-radar-grid-circle-fill.tsx b/deprecated/www/__registry__/default/charts/chart-radar-grid-circle-fill.tsx
deleted file mode 100644
index 0bed543195..0000000000
--- a/deprecated/www/__registry__/default/charts/chart-radar-grid-circle-fill.tsx
+++ /dev/null
@@ -1,78 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { PolarAngleAxis, PolarGrid, Radar, RadarChart } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-
-export const description = "A radar chart with a grid and circle fill"
-
-const chartData = [
- { month: "January", desktop: 186 },
- { month: "February", desktop: 285 },
- { month: "March", desktop: 237 },
- { month: "April", desktop: 203 },
- { month: "May", desktop: 209 },
- { month: "June", desktop: 264 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Radar Chart - Grid Circle Filled
-
- Showing total visitors for the last 6 months
-
-
-
-
-
- } />
-
-
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- January - June 2024
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/charts/chart-radar-grid-circle-no-lines.tsx b/deprecated/www/__registry__/default/charts/chart-radar-grid-circle-no-lines.tsx
deleted file mode 100644
index 332a86b3cb..0000000000
--- a/deprecated/www/__registry__/default/charts/chart-radar-grid-circle-no-lines.tsx
+++ /dev/null
@@ -1,82 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { PolarAngleAxis, PolarGrid, Radar, RadarChart } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-
-export const description = "A radar chart with a grid and circle fill"
-
-const chartData = [
- { month: "January", desktop: 186 },
- { month: "February", desktop: 305 },
- { month: "March", desktop: 237 },
- { month: "April", desktop: 203 },
- { month: "May", desktop: 209 },
- { month: "June", desktop: 214 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Radar Chart - Grid Circle - No lines
-
- Showing total visitors for the last 6 months
-
-
-
-
-
- }
- />
-
-
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- January - June 2024
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/charts/chart-radar-grid-circle.tsx b/deprecated/www/__registry__/default/charts/chart-radar-grid-circle.tsx
deleted file mode 100644
index e6b3a569c4..0000000000
--- a/deprecated/www/__registry__/default/charts/chart-radar-grid-circle.tsx
+++ /dev/null
@@ -1,82 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { PolarAngleAxis, PolarGrid, Radar, RadarChart } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-
-export const description = "A radar chart with a grid and circle"
-
-const chartData = [
- { month: "January", desktop: 186 },
- { month: "February", desktop: 305 },
- { month: "March", desktop: 237 },
- { month: "April", desktop: 273 },
- { month: "May", desktop: 209 },
- { month: "June", desktop: 214 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Radar Chart - Grid Circle
-
- Showing total visitors for the last 6 months
-
-
-
-
-
- }
- />
-
-
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- January - June 2024
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/charts/chart-radar-grid-custom.tsx b/deprecated/www/__registry__/default/charts/chart-radar-grid-custom.tsx
deleted file mode 100644
index 738d9f7c2a..0000000000
--- a/deprecated/www/__registry__/default/charts/chart-radar-grid-custom.tsx
+++ /dev/null
@@ -1,78 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { PolarAngleAxis, PolarGrid, Radar, RadarChart } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-
-export const description = "A radar chart with a custom grid"
-
-const chartData = [
- { month: "January", desktop: 186 },
- { month: "February", desktop: 305 },
- { month: "March", desktop: 237 },
- { month: "April", desktop: 273 },
- { month: "May", desktop: 209 },
- { month: "June", desktop: 214 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Radar Chart - Grid Custom
-
- Showing total visitors for the last 6 months
-
-
-
-
-
- }
- />
-
-
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- January - June 2024
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/charts/chart-radar-grid-fill.tsx b/deprecated/www/__registry__/default/charts/chart-radar-grid-fill.tsx
deleted file mode 100644
index 182b08f51a..0000000000
--- a/deprecated/www/__registry__/default/charts/chart-radar-grid-fill.tsx
+++ /dev/null
@@ -1,78 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { PolarAngleAxis, PolarGrid, Radar, RadarChart } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-
-export const description = "A radar chart with a grid filled"
-
-const chartData = [
- { month: "January", desktop: 186 },
- { month: "February", desktop: 285 },
- { month: "March", desktop: 237 },
- { month: "April", desktop: 203 },
- { month: "May", desktop: 209 },
- { month: "June", desktop: 264 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Radar Chart - Grid Filled
-
- Showing total visitors for the last 6 months
-
-
-
-
-
- }
- />
-
-
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- January - June 2024
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/charts/chart-radar-grid-none.tsx b/deprecated/www/__registry__/default/charts/chart-radar-grid-none.tsx
deleted file mode 100644
index 348075e832..0000000000
--- a/deprecated/www/__registry__/default/charts/chart-radar-grid-none.tsx
+++ /dev/null
@@ -1,81 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { PolarAngleAxis, Radar, RadarChart } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-
-export const description = "A radar chart with no grid"
-
-const chartData = [
- { month: "January", desktop: 186 },
- { month: "February", desktop: 305 },
- { month: "March", desktop: 237 },
- { month: "April", desktop: 273 },
- { month: "May", desktop: 209 },
- { month: "June", desktop: 214 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Radar Chart - Grid None
-
- Showing total visitors for the last 6 months
-
-
-
-
-
- }
- />
-
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- January - June 2024
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/charts/chart-radar-icons.tsx b/deprecated/www/__registry__/default/charts/chart-radar-icons.tsx
deleted file mode 100644
index efbbf89c8b..0000000000
--- a/deprecated/www/__registry__/default/charts/chart-radar-icons.tsx
+++ /dev/null
@@ -1,94 +0,0 @@
-"use client"
-
-import { ArrowDownFromLine, ArrowUpFromLine, TrendingUp } from "lucide-react"
-import { PolarAngleAxis, PolarGrid, Radar, RadarChart } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartLegend,
- ChartLegendContent,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-
-export const description = "A radar chart with icons"
-
-const chartData = [
- { month: "January", desktop: 186, mobile: 80 },
- { month: "February", desktop: 305, mobile: 200 },
- { month: "March", desktop: 237, mobile: 120 },
- { month: "April", desktop: 73, mobile: 190 },
- { month: "May", desktop: 209, mobile: 130 },
- { month: "June", desktop: 214, mobile: 140 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- icon: ArrowDownFromLine,
- },
- mobile: {
- label: "Mobile",
- color: "hsl(var(--chart-2))",
- icon: ArrowUpFromLine,
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Radar Chart - Icons
-
- Showing total visitors for the last 6 months
-
-
-
-
-
- }
- />
-
-
-
-
- } />
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- January - June 2024
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/charts/chart-radar-label-custom.tsx b/deprecated/www/__registry__/default/charts/chart-radar-label-custom.tsx
deleted file mode 100644
index 4e65b8996d..0000000000
--- a/deprecated/www/__registry__/default/charts/chart-radar-label-custom.tsx
+++ /dev/null
@@ -1,120 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { PolarAngleAxis, PolarGrid, Radar, RadarChart } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-
-export const description = "A radar chart with a custom label"
-
-const chartData = [
- { month: "January", desktop: 186, mobile: 80 },
- { month: "February", desktop: 305, mobile: 200 },
- { month: "March", desktop: 237, mobile: 120 },
- { month: "April", desktop: 73, mobile: 190 },
- { month: "May", desktop: 209, mobile: 130 },
- { month: "June", desktop: 214, mobile: 140 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
- mobile: {
- label: "Mobile",
- color: "hsl(var(--chart-2))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Radar Chart - Custom Label
-
- Showing total visitors for the last 6 months
-
-
-
-
-
- }
- />
- {
- const data = chartData[index]
-
- return (
-
- {data.desktop}
- /
- {data.mobile}
-
- {data.month}
-
-
- )
- }}
- />
-
-
-
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- January - June 2024
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/charts/chart-radar-legend.tsx b/deprecated/www/__registry__/default/charts/chart-radar-legend.tsx
deleted file mode 100644
index 535bc82c07..0000000000
--- a/deprecated/www/__registry__/default/charts/chart-radar-legend.tsx
+++ /dev/null
@@ -1,92 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { PolarAngleAxis, PolarGrid, Radar, RadarChart } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartLegend,
- ChartLegendContent,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-
-export const description = "A radar chart with a legend"
-
-const chartData = [
- { month: "January", desktop: 186, mobile: 80 },
- { month: "February", desktop: 305, mobile: 200 },
- { month: "March", desktop: 237, mobile: 120 },
- { month: "April", desktop: 73, mobile: 190 },
- { month: "May", desktop: 209, mobile: 130 },
- { month: "June", desktop: 214, mobile: 140 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
- mobile: {
- label: "Mobile",
- color: "hsl(var(--chart-2))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Radar Chart - Legend
-
- Showing total visitors for the last 6 months
-
-
-
-
-
- }
- />
-
-
-
-
- } />
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- January - June 2024
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/charts/chart-radar-lines-only.tsx b/deprecated/www/__registry__/default/charts/chart-radar-lines-only.tsx
deleted file mode 100644
index c6e0c52525..0000000000
--- a/deprecated/www/__registry__/default/charts/chart-radar-lines-only.tsx
+++ /dev/null
@@ -1,91 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { PolarAngleAxis, PolarGrid, Radar, RadarChart } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-
-export const description = "A radar chart with lines only"
-
-const chartData = [
- { month: "January", desktop: 186, mobile: 160 },
- { month: "February", desktop: 185, mobile: 170 },
- { month: "March", desktop: 207, mobile: 180 },
- { month: "April", desktop: 173, mobile: 160 },
- { month: "May", desktop: 160, mobile: 190 },
- { month: "June", desktop: 174, mobile: 204 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
- mobile: {
- label: "Mobile",
- color: "hsl(var(--chart-2))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Radar Chart - Lines Only
-
- Showing total visitors for the last 6 months
-
-
-
-
-
- }
- />
-
-
-
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- January - June 2024
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/charts/chart-radar-multiple.tsx b/deprecated/www/__registry__/default/charts/chart-radar-multiple.tsx
deleted file mode 100644
index 2463d7ae31..0000000000
--- a/deprecated/www/__registry__/default/charts/chart-radar-multiple.tsx
+++ /dev/null
@@ -1,83 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { PolarAngleAxis, PolarGrid, Radar, RadarChart } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-
-export const description = "A radar chart with multiple data"
-
-const chartData = [
- { month: "January", desktop: 186, mobile: 80 },
- { month: "February", desktop: 305, mobile: 200 },
- { month: "March", desktop: 237, mobile: 120 },
- { month: "April", desktop: 73, mobile: 190 },
- { month: "May", desktop: 209, mobile: 130 },
- { month: "June", desktop: 214, mobile: 140 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
- mobile: {
- label: "Mobile",
- color: "hsl(var(--chart-2))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Radar Chart - Multiple
-
- Showing total visitors for the last 6 months
-
-
-
-
-
- }
- />
-
-
-
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- January - June 2024
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/charts/chart-radar-radius.tsx b/deprecated/www/__registry__/default/charts/chart-radar-radius.tsx
deleted file mode 100644
index 22cbe8e197..0000000000
--- a/deprecated/www/__registry__/default/charts/chart-radar-radius.tsx
+++ /dev/null
@@ -1,96 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import {
- PolarAngleAxis,
- PolarGrid,
- PolarRadiusAxis,
- Radar,
- RadarChart,
-} from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-
-export const description = "A radar chart with a radius axis"
-
-const chartData = [
- { month: "January", desktop: 186, mobile: 80 },
- { month: "February", desktop: 305, mobile: 200 },
- { month: "March", desktop: 237, mobile: 120 },
- { month: "April", desktop: 73, mobile: 190 },
- { month: "May", desktop: 209, mobile: 130 },
- { month: "June", desktop: 214, mobile: 140 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
- mobile: {
- label: "Mobile",
- color: "hsl(var(--chart-2))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Radar Chart - Radius Axis
-
- Showing total visitors for the last 6 months
-
-
-
-
-
-
- }
- />
-
-
-
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- January - June 2024
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/charts/chart-radial-grid.tsx b/deprecated/www/__registry__/default/charts/chart-radial-grid.tsx
deleted file mode 100644
index cc91ba2c8b..0000000000
--- a/deprecated/www/__registry__/default/charts/chart-radial-grid.tsx
+++ /dev/null
@@ -1,89 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { PolarGrid, RadialBar, RadialBarChart } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-
-export const description = "A radial chart with a grid"
-
-const chartData = [
- { browser: "chrome", visitors: 275, fill: "var(--color-chrome)" },
- { browser: "safari", visitors: 200, fill: "var(--color-safari)" },
- { browser: "firefox", visitors: 187, fill: "var(--color-firefox)" },
- { browser: "edge", visitors: 173, fill: "var(--color-edge)" },
- { browser: "other", visitors: 90, fill: "var(--color-other)" },
-]
-
-const chartConfig = {
- visitors: {
- label: "Visitors",
- },
- chrome: {
- label: "Chrome",
- color: "hsl(var(--chart-1))",
- },
- safari: {
- label: "Safari",
- color: "hsl(var(--chart-2))",
- },
- firefox: {
- label: "Firefox",
- color: "hsl(var(--chart-3))",
- },
- edge: {
- label: "Edge",
- color: "hsl(var(--chart-4))",
- },
- other: {
- label: "Other",
- color: "hsl(var(--chart-5))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Radial Chart - Grid
- January - June 2024
-
-
-
-
- }
- />
-
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- Showing total visitors for the last 6 months
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/charts/chart-radial-label.tsx b/deprecated/www/__registry__/default/charts/chart-radial-label.tsx
deleted file mode 100644
index 179a919f6c..0000000000
--- a/deprecated/www/__registry__/default/charts/chart-radial-label.tsx
+++ /dev/null
@@ -1,101 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { LabelList, RadialBar, RadialBarChart } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-
-export const description = "A radial chart with a label"
-
-const chartData = [
- { browser: "chrome", visitors: 275, fill: "var(--color-chrome)" },
- { browser: "safari", visitors: 200, fill: "var(--color-safari)" },
- { browser: "firefox", visitors: 187, fill: "var(--color-firefox)" },
- { browser: "edge", visitors: 173, fill: "var(--color-edge)" },
- { browser: "other", visitors: 90, fill: "var(--color-other)" },
-]
-
-const chartConfig = {
- visitors: {
- label: "Visitors",
- },
- chrome: {
- label: "Chrome",
- color: "hsl(var(--chart-1))",
- },
- safari: {
- label: "Safari",
- color: "hsl(var(--chart-2))",
- },
- firefox: {
- label: "Firefox",
- color: "hsl(var(--chart-3))",
- },
- edge: {
- label: "Edge",
- color: "hsl(var(--chart-4))",
- },
- other: {
- label: "Other",
- color: "hsl(var(--chart-5))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Radial Chart - Label
- January - June 2024
-
-
-
-
- }
- />
-
-
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- Showing total visitors for the last 6 months
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/charts/chart-radial-shape.tsx b/deprecated/www/__registry__/default/charts/chart-radial-shape.tsx
deleted file mode 100644
index bd3754e986..0000000000
--- a/deprecated/www/__registry__/default/charts/chart-radial-shape.tsx
+++ /dev/null
@@ -1,108 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import {
- Label,
- PolarGrid,
- PolarRadiusAxis,
- RadialBar,
- RadialBarChart,
-} from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import { ChartConfig, ChartContainer } from "@/registry/default/ui/chart"
-
-export const description = "A radial chart with a custom shape"
-
-const chartData = [
- { browser: "safari", visitors: 1260, fill: "var(--color-safari)" },
-]
-
-const chartConfig = {
- visitors: {
- label: "Visitors",
- },
- safari: {
- label: "Safari",
- color: "hsl(var(--chart-2))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Radial Chart - Shape
- January - June 2024
-
-
-
-
-
-
-
- {
- if (viewBox && "cx" in viewBox && "cy" in viewBox) {
- return (
-
-
- {chartData[0].visitors.toLocaleString()}
-
-
- Visitors
-
-
- )
- }
- }}
- />
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- Showing total visitors for the last 6 months
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/charts/chart-radial-simple.tsx b/deprecated/www/__registry__/default/charts/chart-radial-simple.tsx
deleted file mode 100644
index 57a8030230..0000000000
--- a/deprecated/www/__registry__/default/charts/chart-radial-simple.tsx
+++ /dev/null
@@ -1,88 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { RadialBar, RadialBarChart } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-
-export const description = "A radial chart"
-
-const chartData = [
- { browser: "chrome", visitors: 275, fill: "var(--color-chrome)" },
- { browser: "safari", visitors: 200, fill: "var(--color-safari)" },
- { browser: "firefox", visitors: 187, fill: "var(--color-firefox)" },
- { browser: "edge", visitors: 173, fill: "var(--color-edge)" },
- { browser: "other", visitors: 90, fill: "var(--color-other)" },
-]
-
-const chartConfig = {
- visitors: {
- label: "Visitors",
- },
- chrome: {
- label: "Chrome",
- color: "hsl(var(--chart-1))",
- },
- safari: {
- label: "Safari",
- color: "hsl(var(--chart-2))",
- },
- firefox: {
- label: "Firefox",
- color: "hsl(var(--chart-3))",
- },
- edge: {
- label: "Edge",
- color: "hsl(var(--chart-4))",
- },
- other: {
- label: "Other",
- color: "hsl(var(--chart-5))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Radial Chart
- January - June 2024
-
-
-
-
- }
- />
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- Showing total visitors for the last 6 months
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/charts/chart-radial-stacked.tsx b/deprecated/www/__registry__/default/charts/chart-radial-stacked.tsx
deleted file mode 100644
index a5b78f27fe..0000000000
--- a/deprecated/www/__registry__/default/charts/chart-radial-stacked.tsx
+++ /dev/null
@@ -1,113 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { Label, PolarRadiusAxis, RadialBar, RadialBarChart } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-
-export const description = "A radial chart with stacked sections"
-
-const chartData = [{ month: "january", desktop: 1260, mobile: 570 }]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
- mobile: {
- label: "Mobile",
- color: "hsl(var(--chart-2))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- const totalVisitors = chartData[0].desktop + chartData[0].mobile
-
- return (
-
-
- Radial Chart - Stacked
- January - June 2024
-
-
-
-
- }
- />
-
- {
- if (viewBox && "cx" in viewBox && "cy" in viewBox) {
- return (
-
-
- {totalVisitors.toLocaleString()}
-
-
- Visitors
-
-
- )
- }
- }}
- />
-
-
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- Showing total visitors for the last 6 months
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/charts/chart-radial-text.tsx b/deprecated/www/__registry__/default/charts/chart-radial-text.tsx
deleted file mode 100644
index a798f66121..0000000000
--- a/deprecated/www/__registry__/default/charts/chart-radial-text.tsx
+++ /dev/null
@@ -1,109 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import {
- Label,
- PolarGrid,
- PolarRadiusAxis,
- RadialBar,
- RadialBarChart,
-} from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import { ChartConfig, ChartContainer } from "@/registry/default/ui/chart"
-
-export const description = "A radial chart with text"
-
-const chartData = [
- { browser: "safari", visitors: 200, fill: "var(--color-safari)" },
-]
-
-const chartConfig = {
- visitors: {
- label: "Visitors",
- },
- safari: {
- label: "Safari",
- color: "hsl(var(--chart-2))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Radial Chart - Text
- January - June 2024
-
-
-
-
-
-
-
- {
- if (viewBox && "cx" in viewBox && "cy" in viewBox) {
- return (
-
-
- {chartData[0].visitors.toLocaleString()}
-
-
- Visitors
-
-
- )
- }
- }}
- />
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- Showing total visitors for the last 6 months
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/charts/chart-tooltip-advanced.tsx b/deprecated/www/__registry__/default/charts/chart-tooltip-advanced.tsx
deleted file mode 100644
index 7a70079821..0000000000
--- a/deprecated/www/__registry__/default/charts/chart-tooltip-advanced.tsx
+++ /dev/null
@@ -1,123 +0,0 @@
-"use client"
-
-import { Bar, BarChart, XAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-
-export const description = "A stacked bar chart with a legend"
-
-const chartData = [
- { date: "2024-07-15", running: 450, swimming: 300 },
- { date: "2024-07-16", running: 380, swimming: 420 },
- { date: "2024-07-17", running: 520, swimming: 120 },
- { date: "2024-07-18", running: 140, swimming: 550 },
- { date: "2024-07-19", running: 600, swimming: 350 },
- { date: "2024-07-20", running: 480, swimming: 400 },
-]
-
-const chartConfig = {
- running: {
- label: "Running",
- color: "hsl(var(--chart-1))",
- },
- swimming: {
- label: "Swimming",
- color: "hsl(var(--chart-2))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Tooltip - Advanced
-
- Tooltip with custom formatter and total.
-
-
-
-
-
- {
- return new Date(value).toLocaleDateString("en-US", {
- weekday: "short",
- })
- }}
- />
-
-
- (
- <>
-
- {chartConfig[name as keyof typeof chartConfig]?.label ||
- name}
-
- {value}
-
- kcal
-
-
- {/* Add this after the last item */}
- {index === 1 && (
-
- Total
-
- {item.payload.running + item.payload.swimming}
-
- kcal
-
-
-
- )}
- >
- )}
- />
- }
- cursor={false}
- defaultIndex={1}
- />
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/charts/chart-tooltip-default.tsx b/deprecated/www/__registry__/default/charts/chart-tooltip-default.tsx
deleted file mode 100644
index e1ed087075..0000000000
--- a/deprecated/www/__registry__/default/charts/chart-tooltip-default.tsx
+++ /dev/null
@@ -1,89 +0,0 @@
-"use client"
-
-import { Bar, BarChart, XAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-
-export const description = "A stacked bar chart with a legend"
-export const iframeHeight = "600px"
-export const containerClassName =
- "[&>div]:w-full [&>div]:max-w-md flex items-center justify-center min-h-svh"
-
-const chartData = [
- { date: "2024-07-15", running: 450, swimming: 300 },
- { date: "2024-07-16", running: 380, swimming: 420 },
- { date: "2024-07-17", running: 520, swimming: 120 },
- { date: "2024-07-18", running: 140, swimming: 550 },
- { date: "2024-07-19", running: 600, swimming: 350 },
- { date: "2024-07-20", running: 480, swimming: 400 },
-]
-
-const chartConfig = {
- running: {
- label: "Running",
- color: "hsl(var(--chart-1))",
- },
- swimming: {
- label: "Swimming",
- color: "hsl(var(--chart-2))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Tooltip - Default
-
- Default tooltip with ChartTooltipContent.
-
-
-
-
-
- {
- return new Date(value).toLocaleDateString("en-US", {
- weekday: "short",
- })
- }}
- />
-
-
- }
- cursor={false}
- defaultIndex={1}
- />
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/charts/chart-tooltip-formatter.tsx b/deprecated/www/__registry__/default/charts/chart-tooltip-formatter.tsx
deleted file mode 100644
index 8c1b6d7009..0000000000
--- a/deprecated/www/__registry__/default/charts/chart-tooltip-formatter.tsx
+++ /dev/null
@@ -1,100 +0,0 @@
-"use client"
-
-import { Bar, BarChart, XAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-
-export const description = "A stacked bar chart with a legend"
-
-const chartData = [
- { date: "2024-07-15", running: 450, swimming: 300 },
- { date: "2024-07-16", running: 380, swimming: 420 },
- { date: "2024-07-17", running: 520, swimming: 120 },
- { date: "2024-07-18", running: 140, swimming: 550 },
- { date: "2024-07-19", running: 600, swimming: 350 },
- { date: "2024-07-20", running: 480, swimming: 400 },
-]
-
-const chartConfig = {
- running: {
- label: "Running",
- color: "hsl(var(--chart-1))",
- },
- swimming: {
- label: "Swimming",
- color: "hsl(var(--chart-2))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Tooltip - Formatter
- Tooltip with custom formatter .
-
-
-
-
- {
- return new Date(value).toLocaleDateString("en-US", {
- weekday: "short",
- })
- }}
- />
-
-
- (
-
- {chartConfig[name as keyof typeof chartConfig]?.label ||
- name}
-
- {value}
-
- kcal
-
-
-
- )}
- />
- }
- cursor={false}
- defaultIndex={1}
- />
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/charts/chart-tooltip-icons.tsx b/deprecated/www/__registry__/default/charts/chart-tooltip-icons.tsx
deleted file mode 100644
index a95db7a7b5..0000000000
--- a/deprecated/www/__registry__/default/charts/chart-tooltip-icons.tsx
+++ /dev/null
@@ -1,87 +0,0 @@
-"use client"
-
-import { Footprints, Waves } from "lucide-react"
-import { Bar, BarChart, XAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-
-export const description = "A stacked bar chart with a legend"
-
-const chartData = [
- { date: "2024-07-15", running: 450, swimming: 300 },
- { date: "2024-07-16", running: 380, swimming: 420 },
- { date: "2024-07-17", running: 520, swimming: 120 },
- { date: "2024-07-18", running: 140, swimming: 550 },
- { date: "2024-07-19", running: 600, swimming: 350 },
- { date: "2024-07-20", running: 480, swimming: 400 },
-]
-
-const chartConfig = {
- running: {
- label: "Running",
- color: "hsl(var(--chart-1))",
- icon: Footprints,
- },
- swimming: {
- label: "Swimming",
- color: "hsl(var(--chart-2))",
- icon: Waves,
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Tooltip - Icons
- Tooltip with icons.
-
-
-
-
- {
- return new Date(value).toLocaleDateString("en-US", {
- weekday: "short",
- })
- }}
- />
-
-
- }
- cursor={false}
- defaultIndex={1}
- />
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/charts/chart-tooltip-indicator-line.tsx b/deprecated/www/__registry__/default/charts/chart-tooltip-indicator-line.tsx
deleted file mode 100644
index 8f59a417cd..0000000000
--- a/deprecated/www/__registry__/default/charts/chart-tooltip-indicator-line.tsx
+++ /dev/null
@@ -1,87 +0,0 @@
-"use client"
-
-import { Bar, BarChart, XAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-
-export const description = "A stacked bar chart with a legend"
-export const iframeHeight = "600px"
-export const containerClassName =
- "[&>div]:w-full [&>div]:max-w-md flex items-center justify-center min-h-svh"
-
-const chartData = [
- { date: "2024-07-15", running: 450, swimming: 300 },
- { date: "2024-07-16", running: 380, swimming: 420 },
- { date: "2024-07-17", running: 520, swimming: 120 },
- { date: "2024-07-18", running: 140, swimming: 550 },
- { date: "2024-07-19", running: 600, swimming: 350 },
- { date: "2024-07-20", running: 480, swimming: 400 },
-]
-
-const chartConfig = {
- running: {
- label: "Running",
- color: "hsl(var(--chart-1))",
- },
- swimming: {
- label: "Swimming",
- color: "hsl(var(--chart-2))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Tooltip - Line Indicator
- Tooltip with line indicator.
-
-
-
-
- {
- return new Date(value).toLocaleDateString("en-US", {
- weekday: "short",
- })
- }}
- />
-
-
- }
- cursor={false}
- defaultIndex={1}
- />
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/charts/chart-tooltip-indicator-none.tsx b/deprecated/www/__registry__/default/charts/chart-tooltip-indicator-none.tsx
deleted file mode 100644
index 52c3790224..0000000000
--- a/deprecated/www/__registry__/default/charts/chart-tooltip-indicator-none.tsx
+++ /dev/null
@@ -1,84 +0,0 @@
-"use client"
-
-import { Bar, BarChart, XAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-
-export const description = "A stacked bar chart with a legend"
-
-const chartData = [
- { date: "2024-07-15", running: 450, swimming: 300 },
- { date: "2024-07-16", running: 380, swimming: 420 },
- { date: "2024-07-17", running: 520, swimming: 120 },
- { date: "2024-07-18", running: 140, swimming: 550 },
- { date: "2024-07-19", running: 600, swimming: 350 },
- { date: "2024-07-20", running: 480, swimming: 400 },
-]
-
-const chartConfig = {
- running: {
- label: "Running",
- color: "hsl(var(--chart-1))",
- },
- swimming: {
- label: "Swimming",
- color: "hsl(var(--chart-2))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Tooltip - No Indicator
- Tooltip with no indicator.
-
-
-
-
- {
- return new Date(value).toLocaleDateString("en-US", {
- weekday: "short",
- })
- }}
- />
-
-
- }
- cursor={false}
- defaultIndex={1}
- />
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/charts/chart-tooltip-label-custom.tsx b/deprecated/www/__registry__/default/charts/chart-tooltip-label-custom.tsx
deleted file mode 100644
index ebd735e075..0000000000
--- a/deprecated/www/__registry__/default/charts/chart-tooltip-label-custom.tsx
+++ /dev/null
@@ -1,91 +0,0 @@
-"use client"
-
-import { Bar, BarChart, XAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-
-export const description = "A stacked bar chart with a legend"
-
-const chartData = [
- { date: "2024-07-15", running: 450, swimming: 300 },
- { date: "2024-07-16", running: 380, swimming: 420 },
- { date: "2024-07-17", running: 520, swimming: 120 },
- { date: "2024-07-18", running: 140, swimming: 550 },
- { date: "2024-07-19", running: 600, swimming: 350 },
- { date: "2024-07-20", running: 480, swimming: 400 },
-]
-
-const chartConfig = {
- activities: {
- label: "Activities",
- },
- running: {
- label: "Running",
- color: "hsl(var(--chart-1))",
- },
- swimming: {
- label: "Swimming",
- color: "hsl(var(--chart-2))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Tooltip - Custom label
-
- Tooltip with custom label from chartConfig.
-
-
-
-
-
- {
- return new Date(value).toLocaleDateString("en-US", {
- weekday: "short",
- })
- }}
- />
-
-
-
- }
- cursor={false}
- defaultIndex={1}
- />
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/charts/chart-tooltip-label-formatter.tsx b/deprecated/www/__registry__/default/charts/chart-tooltip-label-formatter.tsx
deleted file mode 100644
index ed1173c5b7..0000000000
--- a/deprecated/www/__registry__/default/charts/chart-tooltip-label-formatter.tsx
+++ /dev/null
@@ -1,94 +0,0 @@
-"use client"
-
-import { Bar, BarChart, XAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-
-export const description = "A stacked bar chart with a legend"
-
-const chartData = [
- { date: "2024-07-15", running: 450, swimming: 300 },
- { date: "2024-07-16", running: 380, swimming: 420 },
- { date: "2024-07-17", running: 520, swimming: 120 },
- { date: "2024-07-18", running: 140, swimming: 550 },
- { date: "2024-07-19", running: 600, swimming: 350 },
- { date: "2024-07-20", running: 480, swimming: 400 },
-]
-
-const chartConfig = {
- running: {
- label: "Running",
- color: "hsl(var(--chart-1))",
- },
- swimming: {
- label: "Swimming",
- color: "hsl(var(--chart-2))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Tooltip - Label Formatter
- Tooltip with label formatter.
-
-
-
-
- {
- return new Date(value).toLocaleDateString("en-US", {
- weekday: "short",
- })
- }}
- />
-
-
- {
- return new Date(value).toLocaleDateString("en-US", {
- day: "numeric",
- month: "long",
- year: "numeric",
- })
- }}
- />
- }
- cursor={false}
- defaultIndex={1}
- />
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/default/charts/chart-tooltip-label-none.tsx b/deprecated/www/__registry__/default/charts/chart-tooltip-label-none.tsx
deleted file mode 100644
index 4aadf3fc79..0000000000
--- a/deprecated/www/__registry__/default/charts/chart-tooltip-label-none.tsx
+++ /dev/null
@@ -1,84 +0,0 @@
-"use client"
-
-import { Bar, BarChart, XAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardHeader,
- CardTitle,
-} from "@/registry/default/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/default/ui/chart"
-
-export const description = "A stacked bar chart with a legend"
-
-const chartData = [
- { date: "2024-07-15", running: 450, swimming: 300 },
- { date: "2024-07-16", running: 380, swimming: 420 },
- { date: "2024-07-17", running: 520, swimming: 120 },
- { date: "2024-07-18", running: 140, swimming: 550 },
- { date: "2024-07-19", running: 600, swimming: 350 },
- { date: "2024-07-20", running: 480, swimming: 400 },
-]
-
-const chartConfig = {
- running: {
- label: "Running",
- color: "hsl(var(--chart-1))",
- },
- swimming: {
- label: "Swimming",
- color: "hsl(var(--chart-2))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Tooltip - No Label
- Tooltip with no label.
-
-
-
-
- {
- return new Date(value).toLocaleDateString("en-US", {
- weekday: "short",
- })
- }}
- />
-
-
- }
- cursor={false}
- defaultIndex={1}
- />
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/icons.tsx b/deprecated/www/__registry__/icons.tsx
deleted file mode 100644
index 3c8f028fcb..0000000000
--- a/deprecated/www/__registry__/icons.tsx
+++ /dev/null
@@ -1,451 +0,0 @@
-// @ts-nocheck
-// This file is autogenerated by scripts/build-registry.ts
-// Do not edit this file directly.
-import * as React from "react"
-
-export const Icons = {
- AlertCircle: {
- lucide: React.lazy(() =>
- import("lucide-react").then((mod) => ({
- default: mod.AlertCircle,
- }))
- ),
- radix: React.lazy(() =>
- import("@radix-ui/react-icons").then((mod) => ({
- default: mod.ExclamationTriangleIcon,
- }))
- ),
- },
- ArrowLeft: {
- lucide: React.lazy(() =>
- import("lucide-react").then((mod) => ({
- default: mod.ArrowLeft,
- }))
- ),
- radix: React.lazy(() =>
- import("@radix-ui/react-icons").then((mod) => ({
- default: mod.ArrowLeftIcon,
- }))
- ),
- },
- ArrowRight: {
- lucide: React.lazy(() =>
- import("lucide-react").then((mod) => ({
- default: mod.ArrowRight,
- }))
- ),
- radix: React.lazy(() =>
- import("@radix-ui/react-icons").then((mod) => ({
- default: mod.ArrowRightIcon,
- }))
- ),
- },
- ArrowUpDown: {
- lucide: React.lazy(() =>
- import("lucide-react").then((mod) => ({
- default: mod.ArrowUpDown,
- }))
- ),
- radix: React.lazy(() =>
- import("@radix-ui/react-icons").then((mod) => ({
- default: mod.CaretSortIcon,
- }))
- ),
- },
- BellRing: {
- lucide: React.lazy(() =>
- import("lucide-react").then((mod) => ({
- default: mod.BellRing,
- }))
- ),
- radix: React.lazy(() =>
- import("@radix-ui/react-icons").then((mod) => ({
- default: mod.BellIcon,
- }))
- ),
- },
- Bold: {
- lucide: React.lazy(() =>
- import("lucide-react").then((mod) => ({
- default: mod.Bold,
- }))
- ),
- radix: React.lazy(() =>
- import("@radix-ui/react-icons").then((mod) => ({
- default: mod.FontBoldIcon,
- }))
- ),
- },
- Calculator: {
- lucide: React.lazy(() =>
- import("lucide-react").then((mod) => ({
- default: mod.Calculator,
- }))
- ),
- radix: React.lazy(() =>
- import("@radix-ui/react-icons").then((mod) => ({
- default: mod.ComponentPlaceholderIcon,
- }))
- ),
- },
- Calendar: {
- lucide: React.lazy(() =>
- import("lucide-react").then((mod) => ({
- default: mod.Calendar,
- }))
- ),
- radix: React.lazy(() =>
- import("@radix-ui/react-icons").then((mod) => ({
- default: mod.CalendarIcon,
- }))
- ),
- },
- Check: {
- lucide: React.lazy(() =>
- import("lucide-react").then((mod) => ({
- default: mod.Check,
- }))
- ),
- radix: React.lazy(() =>
- import("@radix-ui/react-icons").then((mod) => ({
- default: mod.CheckIcon,
- }))
- ),
- },
- ChevronDown: {
- lucide: React.lazy(() =>
- import("lucide-react").then((mod) => ({
- default: mod.ChevronDown,
- }))
- ),
- radix: React.lazy(() =>
- import("@radix-ui/react-icons").then((mod) => ({
- default: mod.ChevronDownIcon,
- }))
- ),
- },
- ChevronLeft: {
- lucide: React.lazy(() =>
- import("lucide-react").then((mod) => ({
- default: mod.ChevronLeft,
- }))
- ),
- radix: React.lazy(() =>
- import("@radix-ui/react-icons").then((mod) => ({
- default: mod.ChevronLeftIcon,
- }))
- ),
- },
- ChevronRight: {
- lucide: React.lazy(() =>
- import("lucide-react").then((mod) => ({
- default: mod.ChevronRight,
- }))
- ),
- radix: React.lazy(() =>
- import("@radix-ui/react-icons").then((mod) => ({
- default: mod.ChevronRightIcon,
- }))
- ),
- },
- ChevronUp: {
- lucide: React.lazy(() =>
- import("lucide-react").then((mod) => ({
- default: mod.ChevronUp,
- }))
- ),
- radix: React.lazy(() =>
- import("@radix-ui/react-icons").then((mod) => ({
- default: mod.ChevronUpIcon,
- }))
- ),
- },
- ChevronsUpDown: {
- lucide: React.lazy(() =>
- import("lucide-react").then((mod) => ({
- default: mod.ChevronsUpDown,
- }))
- ),
- radix: React.lazy(() =>
- import("@radix-ui/react-icons").then((mod) => ({
- default: mod.CaretSortIcon,
- }))
- ),
- },
- Circle: {
- lucide: React.lazy(() =>
- import("lucide-react").then((mod) => ({
- default: mod.Circle,
- }))
- ),
- radix: React.lazy(() =>
- import("@radix-ui/react-icons").then((mod) => ({
- default: mod.DotFilledIcon,
- }))
- ),
- },
- Copy: {
- lucide: React.lazy(() =>
- import("lucide-react").then((mod) => ({
- default: mod.Copy,
- }))
- ),
- radix: React.lazy(() =>
- import("@radix-ui/react-icons").then((mod) => ({
- default: mod.CopyIcon,
- }))
- ),
- },
- CreditCard: {
- lucide: React.lazy(() =>
- import("lucide-react").then((mod) => ({
- default: mod.CreditCard,
- }))
- ),
- radix: React.lazy(() =>
- import("@radix-ui/react-icons").then((mod) => ({
- default: mod.ComponentPlaceholderIcon,
- }))
- ),
- },
- GripVertical: {
- lucide: React.lazy(() =>
- import("lucide-react").then((mod) => ({
- default: mod.GripVertical,
- }))
- ),
- radix: React.lazy(() =>
- import("@radix-ui/react-icons").then((mod) => ({
- default: mod.DragHandleDots2Icon,
- }))
- ),
- },
- Italic: {
- lucide: React.lazy(() =>
- import("lucide-react").then((mod) => ({
- default: mod.Italic,
- }))
- ),
- radix: React.lazy(() =>
- import("@radix-ui/react-icons").then((mod) => ({
- default: mod.FontItalicIcon,
- }))
- ),
- },
- Loader2: {
- lucide: React.lazy(() =>
- import("lucide-react").then((mod) => ({
- default: mod.Loader2,
- }))
- ),
- radix: React.lazy(() =>
- import("@radix-ui/react-icons").then((mod) => ({
- default: mod.ReloadIcon,
- }))
- ),
- },
- Mail: {
- lucide: React.lazy(() =>
- import("lucide-react").then((mod) => ({
- default: mod.Mail,
- }))
- ),
- radix: React.lazy(() =>
- import("@radix-ui/react-icons").then((mod) => ({
- default: mod.EnvelopeClosedIcon,
- }))
- ),
- },
- MailOpen: {
- lucide: React.lazy(() =>
- import("lucide-react").then((mod) => ({
- default: mod.MailOpen,
- }))
- ),
- radix: React.lazy(() =>
- import("@radix-ui/react-icons").then((mod) => ({
- default: mod.EnvelopeOpenIcon,
- }))
- ),
- },
- Minus: {
- lucide: React.lazy(() =>
- import("lucide-react").then((mod) => ({
- default: mod.Minus,
- }))
- ),
- radix: React.lazy(() =>
- import("@radix-ui/react-icons").then((mod) => ({
- default: mod.MinusIcon,
- }))
- ),
- },
- Moon: {
- lucide: React.lazy(() =>
- import("lucide-react").then((mod) => ({
- default: mod.Moon,
- }))
- ),
- radix: React.lazy(() =>
- import("@radix-ui/react-icons").then((mod) => ({
- default: mod.MoonIcon,
- }))
- ),
- },
- MoreHorizontal: {
- lucide: React.lazy(() =>
- import("lucide-react").then((mod) => ({
- default: mod.MoreHorizontal,
- }))
- ),
- radix: React.lazy(() =>
- import("@radix-ui/react-icons").then((mod) => ({
- default: mod.DotsHorizontalIcon,
- }))
- ),
- },
- PanelLeft: {
- lucide: React.lazy(() =>
- import("lucide-react").then((mod) => ({
- default: mod.PanelLeft,
- }))
- ),
- radix: React.lazy(() =>
- import("@radix-ui/react-icons").then((mod) => ({
- default: mod.ViewVerticalIcon,
- }))
- ),
- },
- Plus: {
- lucide: React.lazy(() =>
- import("lucide-react").then((mod) => ({
- default: mod.Plus,
- }))
- ),
- radix: React.lazy(() =>
- import("@radix-ui/react-icons").then((mod) => ({
- default: mod.PlusIcon,
- }))
- ),
- },
- Search: {
- lucide: React.lazy(() =>
- import("lucide-react").then((mod) => ({
- default: mod.Search,
- }))
- ),
- radix: React.lazy(() =>
- import("@radix-ui/react-icons").then((mod) => ({
- default: mod.MagnifyingGlassIcon,
- }))
- ),
- },
- Send: {
- lucide: React.lazy(() =>
- import("lucide-react").then((mod) => ({
- default: mod.Send,
- }))
- ),
- radix: React.lazy(() =>
- import("@radix-ui/react-icons").then((mod) => ({
- default: mod.PaperPlaneIcon,
- }))
- ),
- },
- Settings: {
- lucide: React.lazy(() =>
- import("lucide-react").then((mod) => ({
- default: mod.Settings,
- }))
- ),
- radix: React.lazy(() =>
- import("@radix-ui/react-icons").then((mod) => ({
- default: mod.GearIcon,
- }))
- ),
- },
- Slash: {
- lucide: React.lazy(() =>
- import("lucide-react").then((mod) => ({
- default: mod.Slash,
- }))
- ),
- radix: React.lazy(() =>
- import("@radix-ui/react-icons").then((mod) => ({
- default: mod.SlashIcon,
- }))
- ),
- },
- Smile: {
- lucide: React.lazy(() =>
- import("lucide-react").then((mod) => ({
- default: mod.Smile,
- }))
- ),
- radix: React.lazy(() =>
- import("@radix-ui/react-icons").then((mod) => ({
- default: mod.FaceIcon,
- }))
- ),
- },
- Sun: {
- lucide: React.lazy(() =>
- import("lucide-react").then((mod) => ({
- default: mod.Sun,
- }))
- ),
- radix: React.lazy(() =>
- import("@radix-ui/react-icons").then((mod) => ({
- default: mod.SunIcon,
- }))
- ),
- },
- Terminal: {
- lucide: React.lazy(() =>
- import("lucide-react").then((mod) => ({
- default: mod.Terminal,
- }))
- ),
- radix: React.lazy(() =>
- import("@radix-ui/react-icons").then((mod) => ({
- default: mod.RocketIcon,
- }))
- ),
- },
- Underline: {
- lucide: React.lazy(() =>
- import("lucide-react").then((mod) => ({
- default: mod.Underline,
- }))
- ),
- radix: React.lazy(() =>
- import("@radix-ui/react-icons").then((mod) => ({
- default: mod.UnderlineIcon,
- }))
- ),
- },
- User: {
- lucide: React.lazy(() =>
- import("lucide-react").then((mod) => ({
- default: mod.User,
- }))
- ),
- radix: React.lazy(() =>
- import("@radix-ui/react-icons").then((mod) => ({
- default: mod.PersonIcon,
- }))
- ),
- },
- X: {
- lucide: React.lazy(() =>
- import("lucide-react").then((mod) => ({
- default: mod.X,
- }))
- ),
- radix: React.lazy(() =>
- import("@radix-ui/react-icons").then((mod) => ({
- default: mod.Cross2Icon,
- }))
- ),
- },
-}
diff --git a/deprecated/www/__registry__/index.tsx b/deprecated/www/__registry__/index.tsx
deleted file mode 100644
index 18cf6aa04a..0000000000
--- a/deprecated/www/__registry__/index.tsx
+++ /dev/null
@@ -1,11928 +0,0 @@
-// @ts-nocheck
-// This file is autogenerated by scripts/build-registry.ts
-// Do not edit this file directly.
-import * as React from "react"
-
-export const Index: Record = {
- "new-york": {
- "index": {
- name: "index",
- description: "",
- type: "registry:style",
- registryDependencies: ["utils"],
- files: [],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/style/index")),
- source: "",
- meta: undefined,
- },
- "style": {
- name: "style",
- description: "",
- type: "registry:style",
- registryDependencies: ["utils"],
- files: [],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/style/style")),
- source: "",
- meta: undefined,
- },
- "accordion": {
- name: "accordion",
- description: "",
- type: "registry:ui",
- registryDependencies: undefined,
- files: [{
- path: "registry/new-york/ui/accordion.tsx",
- type: "registry:ui",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/ui/accordion.tsx")),
- source: "",
- meta: undefined,
- },
- "alert": {
- name: "alert",
- description: "",
- type: "registry:ui",
- registryDependencies: undefined,
- files: [{
- path: "registry/new-york/ui/alert.tsx",
- type: "registry:ui",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/ui/alert.tsx")),
- source: "",
- meta: undefined,
- },
- "alert-dialog": {
- name: "alert-dialog",
- description: "",
- type: "registry:ui",
- registryDependencies: ["button"],
- files: [{
- path: "registry/new-york/ui/alert-dialog.tsx",
- type: "registry:ui",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/ui/alert-dialog.tsx")),
- source: "",
- meta: undefined,
- },
- "aspect-ratio": {
- name: "aspect-ratio",
- description: "",
- type: "registry:ui",
- registryDependencies: undefined,
- files: [{
- path: "registry/new-york/ui/aspect-ratio.tsx",
- type: "registry:ui",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/ui/aspect-ratio.tsx")),
- source: "",
- meta: undefined,
- },
- "avatar": {
- name: "avatar",
- description: "",
- type: "registry:ui",
- registryDependencies: undefined,
- files: [{
- path: "registry/new-york/ui/avatar.tsx",
- type: "registry:ui",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/ui/avatar.tsx")),
- source: "",
- meta: undefined,
- },
- "badge": {
- name: "badge",
- description: "",
- type: "registry:ui",
- registryDependencies: undefined,
- files: [{
- path: "registry/new-york/ui/badge.tsx",
- type: "registry:ui",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/ui/badge.tsx")),
- source: "",
- meta: undefined,
- },
- "breadcrumb": {
- name: "breadcrumb",
- description: "",
- type: "registry:ui",
- registryDependencies: undefined,
- files: [{
- path: "registry/new-york/ui/breadcrumb.tsx",
- type: "registry:ui",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/ui/breadcrumb.tsx")),
- source: "",
- meta: undefined,
- },
- "button": {
- name: "button",
- description: "",
- type: "registry:ui",
- registryDependencies: undefined,
- files: [{
- path: "registry/new-york/ui/button.tsx",
- type: "registry:ui",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/ui/button.tsx")),
- source: "",
- meta: undefined,
- },
- "button-group": {
- name: "button-group",
- description: "",
- type: "registry:ui",
- registryDependencies: ["button","separator"],
- files: [{
- path: "registry/new-york/ui/button-group.tsx",
- type: "registry:ui",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/ui/button-group.tsx")),
- source: "",
- meta: undefined,
- },
- "calendar": {
- name: "calendar",
- description: "",
- type: "registry:ui",
- registryDependencies: ["button"],
- files: [{
- path: "registry/new-york/ui/calendar.tsx",
- type: "registry:ui",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/ui/calendar.tsx")),
- source: "",
- meta: undefined,
- },
- "card": {
- name: "card",
- description: "",
- type: "registry:ui",
- registryDependencies: undefined,
- files: [{
- path: "registry/new-york/ui/card.tsx",
- type: "registry:ui",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/ui/card.tsx")),
- source: "",
- meta: undefined,
- },
- "carousel": {
- name: "carousel",
- description: "",
- type: "registry:ui",
- registryDependencies: ["button"],
- files: [{
- path: "registry/new-york/ui/carousel.tsx",
- type: "registry:ui",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/ui/carousel.tsx")),
- source: "",
- meta: undefined,
- },
- "chart": {
- name: "chart",
- description: "",
- type: "registry:ui",
- registryDependencies: ["card"],
- files: [{
- path: "registry/new-york/ui/chart.tsx",
- type: "registry:ui",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/ui/chart.tsx")),
- source: "",
- meta: undefined,
- },
- "checkbox": {
- name: "checkbox",
- description: "",
- type: "registry:ui",
- registryDependencies: undefined,
- files: [{
- path: "registry/new-york/ui/checkbox.tsx",
- type: "registry:ui",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/ui/checkbox.tsx")),
- source: "",
- meta: undefined,
- },
- "collapsible": {
- name: "collapsible",
- description: "",
- type: "registry:ui",
- registryDependencies: undefined,
- files: [{
- path: "registry/new-york/ui/collapsible.tsx",
- type: "registry:ui",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/ui/collapsible.tsx")),
- source: "",
- meta: undefined,
- },
- "command": {
- name: "command",
- description: "",
- type: "registry:ui",
- registryDependencies: ["dialog"],
- files: [{
- path: "registry/new-york/ui/command.tsx",
- type: "registry:ui",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/ui/command.tsx")),
- source: "",
- meta: undefined,
- },
- "context-menu": {
- name: "context-menu",
- description: "",
- type: "registry:ui",
- registryDependencies: undefined,
- files: [{
- path: "registry/new-york/ui/context-menu.tsx",
- type: "registry:ui",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/ui/context-menu.tsx")),
- source: "",
- meta: undefined,
- },
- "dialog": {
- name: "dialog",
- description: "",
- type: "registry:ui",
- registryDependencies: undefined,
- files: [{
- path: "registry/new-york/ui/dialog.tsx",
- type: "registry:ui",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/ui/dialog.tsx")),
- source: "",
- meta: undefined,
- },
- "drawer": {
- name: "drawer",
- description: "",
- type: "registry:ui",
- registryDependencies: undefined,
- files: [{
- path: "registry/new-york/ui/drawer.tsx",
- type: "registry:ui",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/ui/drawer.tsx")),
- source: "",
- meta: undefined,
- },
- "dropdown-menu": {
- name: "dropdown-menu",
- description: "",
- type: "registry:ui",
- registryDependencies: undefined,
- files: [{
- path: "registry/new-york/ui/dropdown-menu.tsx",
- type: "registry:ui",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/ui/dropdown-menu.tsx")),
- source: "",
- meta: undefined,
- },
- "empty": {
- name: "empty",
- description: "",
- type: "registry:ui",
- registryDependencies: undefined,
- files: [{
- path: "registry/new-york/ui/empty.tsx",
- type: "registry:ui",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/ui/empty.tsx")),
- source: "",
- meta: undefined,
- },
- "field": {
- name: "field",
- description: "",
- type: "registry:ui",
- registryDependencies: ["label","separator"],
- files: [{
- path: "registry/new-york/ui/field.tsx",
- type: "registry:ui",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/ui/field.tsx")),
- source: "",
- meta: undefined,
- },
- "form": {
- name: "form",
- description: "",
- type: "registry:ui",
- registryDependencies: ["button","label"],
- files: [{
- path: "registry/new-york/ui/form.tsx",
- type: "registry:ui",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/ui/form.tsx")),
- source: "",
- meta: undefined,
- },
- "hover-card": {
- name: "hover-card",
- description: "",
- type: "registry:ui",
- registryDependencies: undefined,
- files: [{
- path: "registry/new-york/ui/hover-card.tsx",
- type: "registry:ui",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/ui/hover-card.tsx")),
- source: "",
- meta: undefined,
- },
- "input": {
- name: "input",
- description: "",
- type: "registry:ui",
- registryDependencies: undefined,
- files: [{
- path: "registry/new-york/ui/input.tsx",
- type: "registry:ui",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/ui/input.tsx")),
- source: "",
- meta: undefined,
- },
- "input-group": {
- name: "input-group",
- description: "",
- type: "registry:ui",
- registryDependencies: ["button","input","textarea"],
- files: [{
- path: "registry/new-york/ui/input-group.tsx",
- type: "registry:ui",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/ui/input-group.tsx")),
- source: "",
- meta: undefined,
- },
- "input-otp": {
- name: "input-otp",
- description: "",
- type: "registry:ui",
- registryDependencies: undefined,
- files: [{
- path: "registry/new-york/ui/input-otp.tsx",
- type: "registry:ui",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/ui/input-otp.tsx")),
- source: "",
- meta: undefined,
- },
- "item": {
- name: "item",
- description: "",
- type: "registry:ui",
- registryDependencies: ["separator"],
- files: [{
- path: "registry/new-york/ui/item.tsx",
- type: "registry:ui",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/ui/item.tsx")),
- source: "",
- meta: undefined,
- },
- "kbd": {
- name: "kbd",
- description: "",
- type: "registry:ui",
- registryDependencies: undefined,
- files: [{
- path: "registry/new-york/ui/kbd.tsx",
- type: "registry:ui",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/ui/kbd.tsx")),
- source: "",
- meta: undefined,
- },
- "label": {
- name: "label",
- description: "",
- type: "registry:ui",
- registryDependencies: undefined,
- files: [{
- path: "registry/new-york/ui/label.tsx",
- type: "registry:ui",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/ui/label.tsx")),
- source: "",
- meta: undefined,
- },
- "menubar": {
- name: "menubar",
- description: "",
- type: "registry:ui",
- registryDependencies: undefined,
- files: [{
- path: "registry/new-york/ui/menubar.tsx",
- type: "registry:ui",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/ui/menubar.tsx")),
- source: "",
- meta: undefined,
- },
- "navigation-menu": {
- name: "navigation-menu",
- description: "",
- type: "registry:ui",
- registryDependencies: undefined,
- files: [{
- path: "registry/new-york/ui/navigation-menu.tsx",
- type: "registry:ui",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/ui/navigation-menu.tsx")),
- source: "",
- meta: undefined,
- },
- "pagination": {
- name: "pagination",
- description: "",
- type: "registry:ui",
- registryDependencies: ["button"],
- files: [{
- path: "registry/new-york/ui/pagination.tsx",
- type: "registry:ui",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/ui/pagination.tsx")),
- source: "",
- meta: undefined,
- },
- "popover": {
- name: "popover",
- description: "",
- type: "registry:ui",
- registryDependencies: undefined,
- files: [{
- path: "registry/new-york/ui/popover.tsx",
- type: "registry:ui",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/ui/popover.tsx")),
- source: "",
- meta: undefined,
- },
- "progress": {
- name: "progress",
- description: "",
- type: "registry:ui",
- registryDependencies: undefined,
- files: [{
- path: "registry/new-york/ui/progress.tsx",
- type: "registry:ui",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/ui/progress.tsx")),
- source: "",
- meta: undefined,
- },
- "radio-group": {
- name: "radio-group",
- description: "",
- type: "registry:ui",
- registryDependencies: undefined,
- files: [{
- path: "registry/new-york/ui/radio-group.tsx",
- type: "registry:ui",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/ui/radio-group.tsx")),
- source: "",
- meta: undefined,
- },
- "resizable": {
- name: "resizable",
- description: "",
- type: "registry:ui",
- registryDependencies: undefined,
- files: [{
- path: "registry/new-york/ui/resizable.tsx",
- type: "registry:ui",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/ui/resizable.tsx")),
- source: "",
- meta: undefined,
- },
- "scroll-area": {
- name: "scroll-area",
- description: "",
- type: "registry:ui",
- registryDependencies: undefined,
- files: [{
- path: "registry/new-york/ui/scroll-area.tsx",
- type: "registry:ui",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/ui/scroll-area.tsx")),
- source: "",
- meta: undefined,
- },
- "select": {
- name: "select",
- description: "",
- type: "registry:ui",
- registryDependencies: undefined,
- files: [{
- path: "registry/new-york/ui/select.tsx",
- type: "registry:ui",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/ui/select.tsx")),
- source: "",
- meta: undefined,
- },
- "separator": {
- name: "separator",
- description: "",
- type: "registry:ui",
- registryDependencies: undefined,
- files: [{
- path: "registry/new-york/ui/separator.tsx",
- type: "registry:ui",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/ui/separator.tsx")),
- source: "",
- meta: undefined,
- },
- "sheet": {
- name: "sheet",
- description: "",
- type: "registry:ui",
- registryDependencies: undefined,
- files: [{
- path: "registry/new-york/ui/sheet.tsx",
- type: "registry:ui",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/ui/sheet.tsx")),
- source: "",
- meta: undefined,
- },
- "sidebar": {
- name: "sidebar",
- description: "",
- type: "registry:ui",
- registryDependencies: ["button","separator","sheet","tooltip","input","use-mobile","skeleton"],
- files: [{
- path: "registry/new-york/ui/sidebar.tsx",
- type: "registry:ui",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/ui/sidebar.tsx")),
- source: "",
- meta: undefined,
- },
- "skeleton": {
- name: "skeleton",
- description: "",
- type: "registry:ui",
- registryDependencies: undefined,
- files: [{
- path: "registry/new-york/ui/skeleton.tsx",
- type: "registry:ui",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/ui/skeleton.tsx")),
- source: "",
- meta: undefined,
- },
- "slider": {
- name: "slider",
- description: "",
- type: "registry:ui",
- registryDependencies: undefined,
- files: [{
- path: "registry/new-york/ui/slider.tsx",
- type: "registry:ui",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/ui/slider.tsx")),
- source: "",
- meta: undefined,
- },
- "sonner": {
- name: "sonner",
- description: "",
- type: "registry:ui",
- registryDependencies: undefined,
- files: [{
- path: "registry/new-york/ui/sonner.tsx",
- type: "registry:ui",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/ui/sonner.tsx")),
- source: "",
- meta: undefined,
- },
- "spinner": {
- name: "spinner",
- description: "",
- type: "registry:ui",
- registryDependencies: undefined,
- files: [{
- path: "registry/new-york/ui/spinner.tsx",
- type: "registry:ui",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/ui/spinner.tsx")),
- source: "",
- meta: undefined,
- },
- "switch": {
- name: "switch",
- description: "",
- type: "registry:ui",
- registryDependencies: undefined,
- files: [{
- path: "registry/new-york/ui/switch.tsx",
- type: "registry:ui",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/ui/switch.tsx")),
- source: "",
- meta: undefined,
- },
- "table": {
- name: "table",
- description: "",
- type: "registry:ui",
- registryDependencies: undefined,
- files: [{
- path: "registry/new-york/ui/table.tsx",
- type: "registry:ui",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/ui/table.tsx")),
- source: "",
- meta: undefined,
- },
- "tabs": {
- name: "tabs",
- description: "",
- type: "registry:ui",
- registryDependencies: undefined,
- files: [{
- path: "registry/new-york/ui/tabs.tsx",
- type: "registry:ui",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/ui/tabs.tsx")),
- source: "",
- meta: undefined,
- },
- "textarea": {
- name: "textarea",
- description: "",
- type: "registry:ui",
- registryDependencies: undefined,
- files: [{
- path: "registry/new-york/ui/textarea.tsx",
- type: "registry:ui",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/ui/textarea.tsx")),
- source: "",
- meta: undefined,
- },
- "toast": {
- name: "toast",
- description: "",
- type: "registry:ui",
- registryDependencies: undefined,
- files: [{
- path: "registry/new-york/ui/toast.tsx",
- type: "registry:ui",
- target: ""
- },{
- path: "registry/new-york/hooks/use-toast.ts",
- type: "registry:hook",
- target: ""
- },{
- path: "registry/new-york/ui/toaster.tsx",
- type: "registry:ui",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/ui/toast.tsx")),
- source: "",
- meta: undefined,
- },
- "toggle": {
- name: "toggle",
- description: "",
- type: "registry:ui",
- registryDependencies: undefined,
- files: [{
- path: "registry/new-york/ui/toggle.tsx",
- type: "registry:ui",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/ui/toggle.tsx")),
- source: "",
- meta: undefined,
- },
- "toggle-group": {
- name: "toggle-group",
- description: "",
- type: "registry:ui",
- registryDependencies: ["toggle"],
- files: [{
- path: "registry/new-york/ui/toggle-group.tsx",
- type: "registry:ui",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/ui/toggle-group.tsx")),
- source: "",
- meta: undefined,
- },
- "tooltip": {
- name: "tooltip",
- description: "",
- type: "registry:ui",
- registryDependencies: undefined,
- files: [{
- path: "registry/new-york/ui/tooltip.tsx",
- type: "registry:ui",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/ui/tooltip.tsx")),
- source: "",
- meta: undefined,
- },
- "dashboard-01": {
- name: "dashboard-01",
- description: "A dashboard with sidebar, charts and data table.",
- type: "registry:block",
- registryDependencies: ["sidebar","breadcrumb","separator","label","chart","card","select","tabs","table","toggle-group","badge","button","checkbox","dropdown-menu","drawer","input","avatar","sheet","sonner"],
- files: [{
- path: "registry/new-york/blocks/dashboard-01/page.tsx",
- type: "registry:page",
- target: "app/dashboard/page.tsx"
- },{
- path: "registry/new-york/blocks/dashboard-01/data.json",
- type: "registry:file",
- target: "app/dashboard/data.json"
- },{
- path: "registry/new-york/blocks/dashboard-01/components/app-sidebar.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/new-york/blocks/dashboard-01/components/chart-area-interactive.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/new-york/blocks/dashboard-01/components/data-table.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/new-york/blocks/dashboard-01/components/nav-documents.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/new-york/blocks/dashboard-01/components/nav-main.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/new-york/blocks/dashboard-01/components/nav-secondary.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/new-york/blocks/dashboard-01/components/nav-user.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/new-york/blocks/dashboard-01/components/section-cards.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/new-york/blocks/dashboard-01/components/site-header.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: ["dashboard"],
- component: React.lazy(() => import("@/registry/new-york/blocks/dashboard-01/page.tsx")),
- source: "__registry__/new-york/blocks/dashboard-01/page.tsx",
- meta: undefined,
- },
- "sidebar-01": {
- name: "sidebar-01",
- description: "A simple sidebar with navigation grouped by section.",
- type: "registry:block",
- registryDependencies: ["sidebar","breadcrumb","separator","label","dropdown-menu"],
- files: [{
- path: "registry/new-york/blocks/sidebar-01/page.tsx",
- type: "registry:page",
- target: "app/dashboard/page.tsx"
- },{
- path: "registry/new-york/blocks/sidebar-01/components/app-sidebar.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/new-york/blocks/sidebar-01/components/search-form.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/new-york/blocks/sidebar-01/components/version-switcher.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: ["sidebar","dashboard"],
- component: React.lazy(() => import("@/registry/new-york/blocks/sidebar-01/page.tsx")),
- source: "__registry__/new-york/blocks/sidebar-01/page.tsx",
- meta: undefined,
- },
- "sidebar-02": {
- name: "sidebar-02",
- description: "A sidebar with collapsible sections.",
- type: "registry:block",
- registryDependencies: ["sidebar","breadcrumb","separator","label","dropdown-menu"],
- files: [{
- path: "registry/new-york/blocks/sidebar-02/page.tsx",
- type: "registry:page",
- target: "app/dashboard/page.tsx"
- },{
- path: "registry/new-york/blocks/sidebar-02/components/app-sidebar.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/new-york/blocks/sidebar-02/components/search-form.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/new-york/blocks/sidebar-02/components/version-switcher.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: ["sidebar","dashboard"],
- component: React.lazy(() => import("@/registry/new-york/blocks/sidebar-02/page.tsx")),
- source: "__registry__/new-york/blocks/sidebar-02/page.tsx",
- meta: undefined,
- },
- "sidebar-03": {
- name: "sidebar-03",
- description: "A sidebar with submenus.",
- type: "registry:block",
- registryDependencies: ["sidebar","breadcrumb"],
- files: [{
- path: "registry/new-york/blocks/sidebar-03/page.tsx",
- type: "registry:page",
- target: "app/dashboard/page.tsx"
- },{
- path: "registry/new-york/blocks/sidebar-03/components/app-sidebar.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: ["sidebar","dashboard"],
- component: React.lazy(() => import("@/registry/new-york/blocks/sidebar-03/page.tsx")),
- source: "__registry__/new-york/blocks/sidebar-03/page.tsx",
- meta: undefined,
- },
- "sidebar-04": {
- name: "sidebar-04",
- description: "A floating sidebar with submenus.",
- type: "registry:block",
- registryDependencies: ["sidebar","breadcrumb","separator"],
- files: [{
- path: "registry/new-york/blocks/sidebar-04/page.tsx",
- type: "registry:page",
- target: "app/dashboard/page.tsx"
- },{
- path: "registry/new-york/blocks/sidebar-04/components/app-sidebar.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: ["sidebar","dashboard"],
- component: React.lazy(() => import("@/registry/new-york/blocks/sidebar-04/page.tsx")),
- source: "__registry__/new-york/blocks/sidebar-04/page.tsx",
- meta: undefined,
- },
- "sidebar-05": {
- name: "sidebar-05",
- description: "A sidebar with collapsible submenus.",
- type: "registry:block",
- registryDependencies: ["sidebar","breadcrumb","separator","label","collapsible"],
- files: [{
- path: "registry/new-york/blocks/sidebar-05/page.tsx",
- type: "registry:page",
- target: "app/dashboard/page.tsx"
- },{
- path: "registry/new-york/blocks/sidebar-05/components/app-sidebar.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/new-york/blocks/sidebar-05/components/search-form.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: ["sidebar","dashboard"],
- component: React.lazy(() => import("@/registry/new-york/blocks/sidebar-05/page.tsx")),
- source: "__registry__/new-york/blocks/sidebar-05/page.tsx",
- meta: undefined,
- },
- "sidebar-06": {
- name: "sidebar-06",
- description: "A sidebar with submenus as dropdowns.",
- type: "registry:block",
- registryDependencies: ["sidebar","breadcrumb","separator","card","dropdown-menu"],
- files: [{
- path: "registry/new-york/blocks/sidebar-06/page.tsx",
- type: "registry:page",
- target: "app/dashboard/page.tsx"
- },{
- path: "registry/new-york/blocks/sidebar-06/components/app-sidebar.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/new-york/blocks/sidebar-06/components/nav-main.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/new-york/blocks/sidebar-06/components/sidebar-opt-in-form.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: ["sidebar","dashboard"],
- component: React.lazy(() => import("@/registry/new-york/blocks/sidebar-06/page.tsx")),
- source: "__registry__/new-york/blocks/sidebar-06/page.tsx",
- meta: undefined,
- },
- "sidebar-07": {
- name: "sidebar-07",
- description: "A sidebar that collapses to icons.",
- type: "registry:block",
- registryDependencies: ["sidebar","breadcrumb","separator","collapsible","dropdown-menu","avatar"],
- files: [{
- path: "registry/new-york/blocks/sidebar-07/page.tsx",
- type: "registry:page",
- target: "app/dashboard/page.tsx"
- },{
- path: "registry/new-york/blocks/sidebar-07/components/app-sidebar.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/new-york/blocks/sidebar-07/components/nav-main.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/new-york/blocks/sidebar-07/components/nav-projects.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/new-york/blocks/sidebar-07/components/nav-user.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/new-york/blocks/sidebar-07/components/team-switcher.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: ["sidebar","dashboard"],
- component: React.lazy(() => import("@/registry/new-york/blocks/sidebar-07/page.tsx")),
- source: "__registry__/new-york/blocks/sidebar-07/page.tsx",
- meta: undefined,
- },
- "sidebar-08": {
- name: "sidebar-08",
- description: "An inset sidebar with secondary navigation.",
- type: "registry:block",
- registryDependencies: ["sidebar","breadcrumb","separator","collapsible","dropdown-menu","avatar"],
- files: [{
- path: "registry/new-york/blocks/sidebar-08/page.tsx",
- type: "registry:page",
- target: "app/dashboard/page.tsx"
- },{
- path: "registry/new-york/blocks/sidebar-08/components/app-sidebar.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/new-york/blocks/sidebar-08/components/nav-main.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/new-york/blocks/sidebar-08/components/nav-projects.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/new-york/blocks/sidebar-08/components/nav-secondary.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/new-york/blocks/sidebar-08/components/nav-user.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: ["sidebar","dashboard"],
- component: React.lazy(() => import("@/registry/new-york/blocks/sidebar-08/page.tsx")),
- source: "__registry__/new-york/blocks/sidebar-08/page.tsx",
- meta: undefined,
- },
- "sidebar-09": {
- name: "sidebar-09",
- description: "Collapsible nested sidebars.",
- type: "registry:block",
- registryDependencies: ["sidebar","breadcrumb","separator","collapsible","dropdown-menu","avatar","switch","label"],
- files: [{
- path: "registry/new-york/blocks/sidebar-09/page.tsx",
- type: "registry:page",
- target: "app/dashboard/page.tsx"
- },{
- path: "registry/new-york/blocks/sidebar-09/components/app-sidebar.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/new-york/blocks/sidebar-09/components/nav-user.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: ["sidebar","dashboard"],
- component: React.lazy(() => import("@/registry/new-york/blocks/sidebar-09/page.tsx")),
- source: "__registry__/new-york/blocks/sidebar-09/page.tsx",
- meta: undefined,
- },
- "sidebar-10": {
- name: "sidebar-10",
- description: "A sidebar in a popover.",
- type: "registry:block",
- registryDependencies: ["sidebar","breadcrumb","separator","popover","collapsible","dropdown-menu"],
- files: [{
- path: "registry/new-york/blocks/sidebar-10/page.tsx",
- type: "registry:page",
- target: "app/dashboard/page.tsx"
- },{
- path: "registry/new-york/blocks/sidebar-10/components/app-sidebar.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/new-york/blocks/sidebar-10/components/nav-actions.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/new-york/blocks/sidebar-10/components/nav-favorites.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/new-york/blocks/sidebar-10/components/nav-main.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/new-york/blocks/sidebar-10/components/nav-secondary.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/new-york/blocks/sidebar-10/components/nav-workspaces.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/new-york/blocks/sidebar-10/components/team-switcher.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: ["sidebar","dashboard"],
- component: React.lazy(() => import("@/registry/new-york/blocks/sidebar-10/page.tsx")),
- source: "__registry__/new-york/blocks/sidebar-10/page.tsx",
- meta: undefined,
- },
- "sidebar-11": {
- name: "sidebar-11",
- description: "A sidebar with a collapsible file tree.",
- type: "registry:block",
- registryDependencies: ["sidebar","breadcrumb","separator","collapsible"],
- files: [{
- path: "registry/new-york/blocks/sidebar-11/page.tsx",
- type: "registry:page",
- target: "app/dashboard/page.tsx"
- },{
- path: "registry/new-york/blocks/sidebar-11/components/app-sidebar.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: ["sidebar","dashboard"],
- component: React.lazy(() => import("@/registry/new-york/blocks/sidebar-11/page.tsx")),
- source: "__registry__/new-york/blocks/sidebar-11/page.tsx",
- meta: undefined,
- },
- "sidebar-12": {
- name: "sidebar-12",
- description: "A sidebar with a calendar.",
- type: "registry:block",
- registryDependencies: ["sidebar","breadcrumb","separator","collapsible","calendar","dropdown-menu","avatar"],
- files: [{
- path: "registry/new-york/blocks/sidebar-12/page.tsx",
- type: "registry:page",
- target: "app/dashboard/page.tsx"
- },{
- path: "registry/new-york/blocks/sidebar-12/components/app-sidebar.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/new-york/blocks/sidebar-12/components/calendars.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/new-york/blocks/sidebar-12/components/date-picker.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/new-york/blocks/sidebar-12/components/nav-user.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: ["sidebar","dashboard"],
- component: React.lazy(() => import("@/registry/new-york/blocks/sidebar-12/page.tsx")),
- source: "__registry__/new-york/blocks/sidebar-12/page.tsx",
- meta: undefined,
- },
- "sidebar-13": {
- name: "sidebar-13",
- description: "A sidebar in a dialog.",
- type: "registry:block",
- registryDependencies: ["sidebar","breadcrumb","button","dialog"],
- files: [{
- path: "registry/new-york/blocks/sidebar-13/page.tsx",
- type: "registry:page",
- target: "app/dashboard/page.tsx"
- },{
- path: "registry/new-york/blocks/sidebar-13/components/settings-dialog.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: ["sidebar","dashboard"],
- component: React.lazy(() => import("@/registry/new-york/blocks/sidebar-13/page.tsx")),
- source: "__registry__/new-york/blocks/sidebar-13/page.tsx",
- meta: undefined,
- },
- "sidebar-14": {
- name: "sidebar-14",
- description: "A sidebar on the right.",
- type: "registry:block",
- registryDependencies: ["sidebar","breadcrumb"],
- files: [{
- path: "registry/new-york/blocks/sidebar-14/page.tsx",
- type: "registry:page",
- target: "app/dashboard/page.tsx"
- },{
- path: "registry/new-york/blocks/sidebar-14/components/app-sidebar.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: ["sidebar","dashboard"],
- component: React.lazy(() => import("@/registry/new-york/blocks/sidebar-14/page.tsx")),
- source: "__registry__/new-york/blocks/sidebar-14/page.tsx",
- meta: undefined,
- },
- "sidebar-15": {
- name: "sidebar-15",
- description: "A left and right sidebar.",
- type: "registry:block",
- registryDependencies: ["sidebar","breadcrumb","separator","popover","collapsible","dropdown-menu","calendar","avatar"],
- files: [{
- path: "registry/new-york/blocks/sidebar-15/page.tsx",
- type: "registry:page",
- target: "app/dashboard/page.tsx"
- },{
- path: "registry/new-york/blocks/sidebar-15/components/calendars.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/new-york/blocks/sidebar-15/components/date-picker.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/new-york/blocks/sidebar-15/components/nav-favorites.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/new-york/blocks/sidebar-15/components/nav-main.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/new-york/blocks/sidebar-15/components/nav-secondary.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/new-york/blocks/sidebar-15/components/nav-user.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/new-york/blocks/sidebar-15/components/nav-workspaces.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/new-york/blocks/sidebar-15/components/sidebar-left.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/new-york/blocks/sidebar-15/components/sidebar-right.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/new-york/blocks/sidebar-15/components/team-switcher.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: ["sidebar","dashboard"],
- component: React.lazy(() => import("@/registry/new-york/blocks/sidebar-15/page.tsx")),
- source: "__registry__/new-york/blocks/sidebar-15/page.tsx",
- meta: undefined,
- },
- "sidebar-16": {
- name: "sidebar-16",
- description: "A sidebar with a sticky site header.",
- type: "registry:block",
- registryDependencies: ["sidebar","breadcrumb","separator","collapsible","dropdown-menu","avatar","button","label"],
- files: [{
- path: "registry/new-york/blocks/sidebar-16/page.tsx",
- type: "registry:page",
- target: "app/dashboard/page.tsx"
- },{
- path: "registry/new-york/blocks/sidebar-16/components/app-sidebar.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/new-york/blocks/sidebar-16/components/nav-main.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/new-york/blocks/sidebar-16/components/nav-projects.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/new-york/blocks/sidebar-16/components/nav-secondary.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/new-york/blocks/sidebar-16/components/nav-user.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/new-york/blocks/sidebar-16/components/search-form.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/new-york/blocks/sidebar-16/components/site-header.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: ["sidebar","dashboard"],
- component: React.lazy(() => import("@/registry/new-york/blocks/sidebar-16/page.tsx")),
- source: "__registry__/new-york/blocks/sidebar-16/page.tsx",
- meta: undefined,
- },
- "login-01": {
- name: "login-01",
- description: "A simple login form.",
- type: "registry:block",
- registryDependencies: ["button","card","input","label"],
- files: [{
- path: "registry/new-york/blocks/login-01/page.tsx",
- type: "registry:page",
- target: "app/login/page.tsx"
- },{
- path: "registry/new-york/blocks/login-01/components/login-form.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: ["authentication","login"],
- component: React.lazy(() => import("@/registry/new-york/blocks/login-01/page.tsx")),
- source: "__registry__/new-york/blocks/login-01/page.tsx",
- meta: undefined,
- },
- "login-02": {
- name: "login-02",
- description: "A two column login page with a cover image.",
- type: "registry:block",
- registryDependencies: ["button","card","input","label"],
- files: [{
- path: "registry/new-york/blocks/login-02/page.tsx",
- type: "registry:page",
- target: "app/login/page.tsx"
- },{
- path: "registry/new-york/blocks/login-02/components/login-form.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: ["authentication","login"],
- component: React.lazy(() => import("@/registry/new-york/blocks/login-02/page.tsx")),
- source: "__registry__/new-york/blocks/login-02/page.tsx",
- meta: undefined,
- },
- "login-03": {
- name: "login-03",
- description: "A login page with a muted background color.",
- type: "registry:block",
- registryDependencies: ["button","card","input","label"],
- files: [{
- path: "registry/new-york/blocks/login-03/page.tsx",
- type: "registry:page",
- target: "app/login/page.tsx"
- },{
- path: "registry/new-york/blocks/login-03/components/login-form.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: ["authentication","login"],
- component: React.lazy(() => import("@/registry/new-york/blocks/login-03/page.tsx")),
- source: "__registry__/new-york/blocks/login-03/page.tsx",
- meta: undefined,
- },
- "login-04": {
- name: "login-04",
- description: "A login page with form and image.",
- type: "registry:block",
- registryDependencies: ["button","card","input","label"],
- files: [{
- path: "registry/new-york/blocks/login-04/page.tsx",
- type: "registry:page",
- target: "app/login/page.tsx"
- },{
- path: "registry/new-york/blocks/login-04/components/login-form.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: ["authentication","login"],
- component: React.lazy(() => import("@/registry/new-york/blocks/login-04/page.tsx")),
- source: "__registry__/new-york/blocks/login-04/page.tsx",
- meta: undefined,
- },
- "login-05": {
- name: "login-05",
- description: "A simple email-only login page.",
- type: "registry:block",
- registryDependencies: ["button","card","input","label"],
- files: [{
- path: "registry/new-york/blocks/login-05/page.tsx",
- type: "registry:page",
- target: "app/login/page.tsx"
- },{
- path: "registry/new-york/blocks/login-05/components/login-form.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: ["authentication","login"],
- component: React.lazy(() => import("@/registry/new-york/blocks/login-05/page.tsx")),
- source: "__registry__/new-york/blocks/login-05/page.tsx",
- meta: undefined,
- },
- "calendar-01": {
- name: "calendar-01",
- description: "A simple calendar.",
- type: "registry:block",
- registryDependencies: ["calendar"],
- files: [{
- path: "registry/new-york/blocks/calendar-01.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: ["calendar","date"],
- component: React.lazy(() => import("@/registry/new-york/blocks/calendar-01.tsx")),
- source: "__registry__/new-york/blocks/calendar-01.tsx",
- meta: {"iframeHeight":"600px","container":"w-full bg-surface min-h-svh flex px-4 py-12 items-start md:py-20 justify-center min-w-0","mobile":"component"},
- },
- "calendar-02": {
- name: "calendar-02",
- description: "Multiple months with single selection.",
- type: "registry:block",
- registryDependencies: ["calendar"],
- files: [{
- path: "registry/new-york/blocks/calendar-02.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: ["calendar","date"],
- component: React.lazy(() => import("@/registry/new-york/blocks/calendar-02.tsx")),
- source: "__registry__/new-york/blocks/calendar-02.tsx",
- meta: {"iframeHeight":"600px","container":"w-full bg-surface min-h-svh flex px-4 py-12 items-start md:py-20 justify-center min-w-0","mobile":"component"},
- },
- "calendar-03": {
- name: "calendar-03",
- description: "Multiple months with multiple selection.",
- type: "registry:block",
- registryDependencies: ["calendar"],
- files: [{
- path: "registry/new-york/blocks/calendar-03.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: ["calendar","date"],
- component: React.lazy(() => import("@/registry/new-york/blocks/calendar-03.tsx")),
- source: "__registry__/new-york/blocks/calendar-03.tsx",
- meta: {"iframeHeight":"600px","container":"w-full bg-surface min-h-svh flex px-4 py-12 items-start md:py-20 justify-center min-w-0","mobile":"component"},
- },
- "calendar-04": {
- name: "calendar-04",
- description: "Single month with range selection",
- type: "registry:block",
- registryDependencies: ["calendar"],
- files: [{
- path: "registry/new-york/blocks/calendar-04.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: ["calendar","date"],
- component: React.lazy(() => import("@/registry/new-york/blocks/calendar-04.tsx")),
- source: "__registry__/new-york/blocks/calendar-04.tsx",
- meta: {"iframeHeight":"600px","container":"w-full bg-surface min-h-svh flex px-4 py-12 items-start md:py-20 justify-center min-w-0 xl:pt-28","mobile":"component"},
- },
- "calendar-05": {
- name: "calendar-05",
- description: "Multiple months with range selection",
- type: "registry:block",
- registryDependencies: ["calendar"],
- files: [{
- path: "registry/new-york/blocks/calendar-05.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: ["calendar","date"],
- component: React.lazy(() => import("@/registry/new-york/blocks/calendar-05.tsx")),
- source: "__registry__/new-york/blocks/calendar-05.tsx",
- meta: {"iframeHeight":"600px","container":"w-full bg-surface min-h-svh flex px-6 py-12 items-start md:pt-20 justify-center min-w-0 xl:py-24","mobile":"component"},
- },
- "calendar-06": {
- name: "calendar-06",
- description: "Range selection with minimum days",
- type: "registry:block",
- registryDependencies: ["calendar"],
- files: [{
- path: "registry/new-york/blocks/calendar-06.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: ["calendar","date"],
- component: React.lazy(() => import("@/registry/new-york/blocks/calendar-06.tsx")),
- source: "__registry__/new-york/blocks/calendar-06.tsx",
- meta: {"iframeHeight":"600px","container":"w-full bg-surface min-h-svh flex px-6 py-12 items-start md:pt-20 justify-center min-w-0 xl:py-24","mobile":"component"},
- },
- "calendar-07": {
- name: "calendar-07",
- description: "Range selection with minimum and maximum days",
- type: "registry:block",
- registryDependencies: ["calendar"],
- files: [{
- path: "registry/new-york/blocks/calendar-07.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: ["calendar","date"],
- component: React.lazy(() => import("@/registry/new-york/blocks/calendar-07.tsx")),
- source: "__registry__/new-york/blocks/calendar-07.tsx",
- meta: {"iframeHeight":"600px","container":"w-full bg-surface min-h-svh flex px-6 py-12 items-start md:pt-20 justify-center min-w-0 xl:py-24","mobile":"component"},
- },
- "calendar-08": {
- name: "calendar-08",
- description: "Calendar with disabled days",
- type: "registry:block",
- registryDependencies: ["calendar"],
- files: [{
- path: "registry/new-york/blocks/calendar-08.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: ["calendar","date"],
- component: React.lazy(() => import("@/registry/new-york/blocks/calendar-08.tsx")),
- source: "__registry__/new-york/blocks/calendar-08.tsx",
- meta: {"iframeHeight":"600px","container":"w-full bg-surface min-h-svh flex px-6 py-12 items-start md:pt-20 justify-center min-w-0 xl:py-24","mobile":"component"},
- },
- "calendar-09": {
- name: "calendar-09",
- description: "Calendar with disabled weekends",
- type: "registry:block",
- registryDependencies: ["calendar"],
- files: [{
- path: "registry/new-york/blocks/calendar-09.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: ["calendar","date"],
- component: React.lazy(() => import("@/registry/new-york/blocks/calendar-09.tsx")),
- source: "__registry__/new-york/blocks/calendar-09.tsx",
- meta: {"iframeHeight":"600px","container":"w-full bg-surface min-h-svh flex px-6 py-12 items-start md:pt-20 justify-center min-w-0 xl:py-24","mobile":"component"},
- },
- "calendar-10": {
- name: "calendar-10",
- description: "Today button",
- type: "registry:block",
- registryDependencies: ["calendar","card","button"],
- files: [{
- path: "registry/new-york/blocks/calendar-10.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: ["calendar","date"],
- component: React.lazy(() => import("@/registry/new-york/blocks/calendar-10.tsx")),
- source: "__registry__/new-york/blocks/calendar-10.tsx",
- meta: {"iframeHeight":"600px","container":"w-full bg-surface min-h-svh flex px-6 py-12 items-start md:pt-20 justify-center min-w-0 xl:py-24","mobile":"component"},
- },
- "calendar-11": {
- name: "calendar-11",
- description: "Start and end of month",
- type: "registry:block",
- registryDependencies: ["calendar"],
- files: [{
- path: "registry/new-york/blocks/calendar-11.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: ["calendar","date"],
- component: React.lazy(() => import("@/registry/new-york/blocks/calendar-11.tsx")),
- source: "__registry__/new-york/blocks/calendar-11.tsx",
- meta: {"iframeHeight":"600px","container":"w-full bg-surface min-h-svh flex px-6 py-12 items-start md:pt-20 justify-center min-w-0 xl:py-24","mobile":"component"},
- },
- "calendar-12": {
- name: "calendar-12",
- description: "Localized calendar",
- type: "registry:block",
- registryDependencies: ["calendar","card","select"],
- files: [{
- path: "registry/new-york/blocks/calendar-12.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: ["calendar","date"],
- component: React.lazy(() => import("@/registry/new-york/blocks/calendar-12.tsx")),
- source: "__registry__/new-york/blocks/calendar-12.tsx",
- meta: {"iframeHeight":"600px","container":"w-full bg-surface min-h-svh flex px-6 py-12 items-start md:pt-20 justify-center min-w-0 xl:py-24","mobile":"component"},
- },
- "calendar-13": {
- name: "calendar-13",
- description: "With Month and Year Dropdown",
- type: "registry:block",
- registryDependencies: ["calendar","label","select"],
- files: [{
- path: "registry/new-york/blocks/calendar-13.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: ["calendar","date"],
- component: React.lazy(() => import("@/registry/new-york/blocks/calendar-13.tsx")),
- source: "__registry__/new-york/blocks/calendar-13.tsx",
- meta: {"iframeHeight":"600px","container":"w-full bg-surface min-h-svh flex px-6 py-12 items-start md:pt-20 justify-center min-w-0 xl:py-24","mobile":"component"},
- },
- "calendar-14": {
- name: "calendar-14",
- description: "With Booked/Unavailable Days",
- type: "registry:block",
- registryDependencies: ["calendar"],
- files: [{
- path: "registry/new-york/blocks/calendar-14.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: ["calendar","date"],
- component: React.lazy(() => import("@/registry/new-york/blocks/calendar-14.tsx")),
- source: "__registry__/new-york/blocks/calendar-14.tsx",
- meta: {"iframeHeight":"600px","container":"w-full bg-surface min-h-svh flex px-6 py-12 items-start md:pt-20 justify-center min-w-0 xl:py-24","mobile":"component"},
- },
- "calendar-15": {
- name: "calendar-15",
- description: "With Week Numbers",
- type: "registry:block",
- registryDependencies: ["calendar"],
- files: [{
- path: "registry/new-york/blocks/calendar-15.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: ["calendar","date"],
- component: React.lazy(() => import("@/registry/new-york/blocks/calendar-15.tsx")),
- source: "__registry__/new-york/blocks/calendar-15.tsx",
- meta: {"iframeHeight":"600px","container":"w-full bg-surface min-h-svh flex px-6 py-12 items-start md:pt-20 justify-center min-w-0 xl:py-24","mobile":"component"},
- },
- "calendar-16": {
- name: "calendar-16",
- description: "With time picker",
- type: "registry:block",
- registryDependencies: ["calendar","card","input","label"],
- files: [{
- path: "registry/new-york/blocks/calendar-16.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: ["calendar","date"],
- component: React.lazy(() => import("@/registry/new-york/blocks/calendar-16.tsx")),
- source: "__registry__/new-york/blocks/calendar-16.tsx",
- meta: {"iframeHeight":"600px","container":"w-full bg-surface min-h-svh flex px-6 py-12 items-start justify-center min-w-0","mobile":"component"},
- },
- "calendar-17": {
- name: "calendar-17",
- description: "With time picker inline",
- type: "registry:block",
- registryDependencies: ["calendar","card","input","label"],
- files: [{
- path: "registry/new-york/blocks/calendar-17.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: ["calendar","date"],
- component: React.lazy(() => import("@/registry/new-york/blocks/calendar-17.tsx")),
- source: "__registry__/new-york/blocks/calendar-17.tsx",
- meta: {"iframeHeight":"600px","container":"w-full bg-surface min-h-svh flex px-6 py-12 items-start md:pt-20 justify-center min-w-0 xl:py-24","mobile":"component"},
- },
- "calendar-18": {
- name: "calendar-18",
- description: "Variable size",
- type: "registry:block",
- registryDependencies: ["calendar"],
- files: [{
- path: "registry/new-york/blocks/calendar-18.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: ["calendar","date"],
- component: React.lazy(() => import("@/registry/new-york/blocks/calendar-18.tsx")),
- source: "__registry__/new-york/blocks/calendar-18.tsx",
- meta: {"iframeHeight":"600px","container":"w-full bg-surface min-h-svh flex px-6 py-12 items-start md:pt-20 justify-center min-w-0 xl:py-24","mobile":"component"},
- },
- "calendar-19": {
- name: "calendar-19",
- description: "With presets",
- type: "registry:block",
- registryDependencies: ["calendar","card","input","label"],
- files: [{
- path: "registry/new-york/blocks/calendar-19.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: ["calendar","date"],
- component: React.lazy(() => import("@/registry/new-york/blocks/calendar-19.tsx")),
- source: "__registry__/new-york/blocks/calendar-19.tsx",
- meta: {"iframeHeight":"600px","container":"w-full bg-surface min-h-svh flex px-6 py-12 items-start justify-center min-w-0","mobile":"component"},
- },
- "calendar-20": {
- name: "calendar-20",
- description: "With time presets",
- type: "registry:block",
- registryDependencies: ["calendar","card","button"],
- files: [{
- path: "registry/new-york/blocks/calendar-20.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: ["calendar","date"],
- component: React.lazy(() => import("@/registry/new-york/blocks/calendar-20.tsx")),
- source: "__registry__/new-york/blocks/calendar-20.tsx",
- meta: {"iframeHeight":"600px","container":"w-full bg-surface min-h-svh flex px-6 py-12 items-start justify-center min-w-0","mobile":"component"},
- },
- "calendar-21": {
- name: "calendar-21",
- description: "Custom days and formatters",
- type: "registry:block",
- registryDependencies: ["calendar"],
- files: [{
- path: "registry/new-york/blocks/calendar-21.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: ["calendar","date"],
- component: React.lazy(() => import("@/registry/new-york/blocks/calendar-21.tsx")),
- source: "__registry__/new-york/blocks/calendar-21.tsx",
- meta: {"iframeHeight":"600px","container":"w-full bg-surface min-h-svh flex px-6 py-12 items-start justify-center min-w-0","mobile":"component"},
- },
- "calendar-22": {
- name: "calendar-22",
- description: "Date picker",
- type: "registry:block",
- registryDependencies: ["calendar","popover","button","label"],
- files: [{
- path: "registry/new-york/blocks/calendar-22.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: ["calendar","date"],
- component: React.lazy(() => import("@/registry/new-york/blocks/calendar-22.tsx")),
- source: "__registry__/new-york/blocks/calendar-22.tsx",
- meta: {"iframeHeight":"600px","container":"w-full bg-surface min-h-svh flex px-6 py-12 items-start md:pt-20 justify-center min-w-0 xl:py-24","mobile":"component"},
- },
- "calendar-23": {
- name: "calendar-23",
- description: "Date range picker",
- type: "registry:block",
- registryDependencies: ["calendar","popover","button","label"],
- files: [{
- path: "registry/new-york/blocks/calendar-23.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: ["calendar","date"],
- component: React.lazy(() => import("@/registry/new-york/blocks/calendar-23.tsx")),
- source: "__registry__/new-york/blocks/calendar-23.tsx",
- meta: {"iframeHeight":"600px","container":"w-full bg-surface min-h-svh flex px-6 py-12 items-start md:pt-20 justify-center min-w-0 xl:py-24","mobile":"component"},
- },
- "calendar-24": {
- name: "calendar-24",
- description: "Date and Time picker",
- type: "registry:block",
- registryDependencies: ["calendar","popover","button","label"],
- files: [{
- path: "registry/new-york/blocks/calendar-24.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: ["calendar","date"],
- component: React.lazy(() => import("@/registry/new-york/blocks/calendar-24.tsx")),
- source: "__registry__/new-york/blocks/calendar-24.tsx",
- meta: {"iframeHeight":"600px","container":"w-full bg-surface min-h-svh flex px-6 py-12 items-start md:pt-20 justify-center min-w-0 xl:py-24","mobile":"component"},
- },
- "calendar-25": {
- name: "calendar-25",
- description: "Date and Time range picker",
- type: "registry:block",
- registryDependencies: ["calendar","popover","button","label"],
- files: [{
- path: "registry/new-york/blocks/calendar-25.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: ["calendar","date"],
- component: React.lazy(() => import("@/registry/new-york/blocks/calendar-25.tsx")),
- source: "__registry__/new-york/blocks/calendar-25.tsx",
- meta: {"iframeHeight":"600px","container":"w-full bg-surface min-h-svh flex px-6 py-12 items-start md:pt-20 justify-center min-w-0 xl:py-24","mobile":"component"},
- },
- "calendar-26": {
- name: "calendar-26",
- description: "Date range picker with time",
- type: "registry:block",
- registryDependencies: ["calendar","popover","button","input","label"],
- files: [{
- path: "registry/new-york/blocks/calendar-26.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: ["calendar","date"],
- component: React.lazy(() => import("@/registry/new-york/blocks/calendar-26.tsx")),
- source: "__registry__/new-york/blocks/calendar-26.tsx",
- meta: {"iframeHeight":"600px","container":"w-full bg-surface min-h-svh flex px-6 py-12 items-start md:pt-20 justify-center min-w-0 xl:py-24","mobile":"component"},
- },
- "calendar-27": {
- name: "calendar-27",
- description: "Chart filter",
- type: "registry:block",
- registryDependencies: ["calendar","chart","card","popover","button"],
- files: [{
- path: "registry/new-york/blocks/calendar-27.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: ["calendar","date"],
- component: React.lazy(() => import("@/registry/new-york/blocks/calendar-27.tsx")),
- source: "__registry__/new-york/blocks/calendar-27.tsx",
- meta: {"iframeHeight":"600px","container":"w-full bg-surface min-h-svh flex px-6 py-12 items-start justify-center min-w-0","mobile":"component"},
- },
- "calendar-28": {
- name: "calendar-28",
- description: "Input with date picker",
- type: "registry:block",
- registryDependencies: ["calendar","input","label","popover","button"],
- files: [{
- path: "registry/new-york/blocks/calendar-28.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: ["calendar","date"],
- component: React.lazy(() => import("@/registry/new-york/blocks/calendar-28.tsx")),
- source: "__registry__/new-york/blocks/calendar-28.tsx",
- meta: {"iframeHeight":"600px","container":"w-full bg-surface min-h-svh flex px-6 py-12 items-start md:pt-20 justify-center min-w-0 xl:py-24","mobile":"component"},
- },
- "calendar-29": {
- name: "calendar-29",
- description: "Natural language date picker",
- type: "registry:block",
- registryDependencies: ["calendar","input","label","popover","button"],
- files: [{
- path: "registry/new-york/blocks/calendar-29.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: ["calendar","date"],
- component: React.lazy(() => import("@/registry/new-york/blocks/calendar-29.tsx")),
- source: "__registry__/new-york/blocks/calendar-29.tsx",
- meta: {"iframeHeight":"600px","container":"w-full bg-surface min-h-svh flex px-6 py-12 items-start md:pt-20 justify-center min-w-0 xl:py-24","mobile":"component"},
- },
- "calendar-30": {
- name: "calendar-30",
- description: "With little-date",
- type: "registry:block",
- registryDependencies: ["calendar","input","label","popover","button"],
- files: [{
- path: "registry/new-york/blocks/calendar-30.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: ["calendar","date"],
- component: React.lazy(() => import("@/registry/new-york/blocks/calendar-30.tsx")),
- source: "__registry__/new-york/blocks/calendar-30.tsx",
- meta: {"iframeHeight":"600px","container":"w-full bg-surface min-h-svh flex px-6 py-12 items-start md:pt-20 justify-center min-w-0 xl:py-24","mobile":"component"},
- },
- "calendar-31": {
- name: "calendar-31",
- description: "With event slots",
- type: "registry:block",
- registryDependencies: ["calendar","card","button"],
- files: [{
- path: "registry/new-york/blocks/calendar-31.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: ["calendar","date"],
- component: React.lazy(() => import("@/registry/new-york/blocks/calendar-31.tsx")),
- source: "__registry__/new-york/blocks/calendar-31.tsx",
- meta: {"iframeHeight":"700px","container":"w-full bg-surface min-h-svh flex px-6 py-12 items-start md:pt-20 justify-center min-w-0","mobile":"component"},
- },
- "calendar-32": {
- name: "calendar-32",
- description: "Date picker in a drawer",
- type: "registry:block",
- registryDependencies: ["calendar","button","drawer"],
- files: [{
- path: "registry/new-york/blocks/calendar-32.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: ["calendar","date"],
- component: React.lazy(() => import("@/registry/new-york/blocks/calendar-32.tsx")),
- source: "__registry__/new-york/blocks/calendar-32.tsx",
- meta: {"iframeHeight":"600px","container":"w-full bg-surface min-h-svh flex px-6 py-12 items-start md:pt-20 justify-center min-w-0 xl:py-24","mobile":"component"},
- },
- "chart-area-axes": {
- name: "chart-area-axes",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/new-york/charts/chart-area-axes.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-area"],
- component: React.lazy(() => import("@/registry/new-york/charts/chart-area-axes.tsx")),
- source: "__registry__/new-york/charts/chart-area-axes.tsx",
- meta: undefined,
- },
- "chart-area-default": {
- name: "chart-area-default",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/new-york/charts/chart-area-default.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-area"],
- component: React.lazy(() => import("@/registry/new-york/charts/chart-area-default.tsx")),
- source: "__registry__/new-york/charts/chart-area-default.tsx",
- meta: undefined,
- },
- "chart-area-gradient": {
- name: "chart-area-gradient",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/new-york/charts/chart-area-gradient.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-area"],
- component: React.lazy(() => import("@/registry/new-york/charts/chart-area-gradient.tsx")),
- source: "__registry__/new-york/charts/chart-area-gradient.tsx",
- meta: undefined,
- },
- "chart-area-icons": {
- name: "chart-area-icons",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/new-york/charts/chart-area-icons.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-area"],
- component: React.lazy(() => import("@/registry/new-york/charts/chart-area-icons.tsx")),
- source: "__registry__/new-york/charts/chart-area-icons.tsx",
- meta: undefined,
- },
- "chart-area-interactive": {
- name: "chart-area-interactive",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart","select"],
- files: [{
- path: "registry/new-york/charts/chart-area-interactive.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: ["charts","charts-area"],
- component: React.lazy(() => import("@/registry/new-york/charts/chart-area-interactive.tsx")),
- source: "__registry__/new-york/charts/chart-area-interactive.tsx",
- meta: undefined,
- },
- "chart-area-legend": {
- name: "chart-area-legend",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/new-york/charts/chart-area-legend.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-area"],
- component: React.lazy(() => import("@/registry/new-york/charts/chart-area-legend.tsx")),
- source: "__registry__/new-york/charts/chart-area-legend.tsx",
- meta: undefined,
- },
- "chart-area-linear": {
- name: "chart-area-linear",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/new-york/charts/chart-area-linear.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-area"],
- component: React.lazy(() => import("@/registry/new-york/charts/chart-area-linear.tsx")),
- source: "__registry__/new-york/charts/chart-area-linear.tsx",
- meta: undefined,
- },
- "chart-area-stacked-expand": {
- name: "chart-area-stacked-expand",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/new-york/charts/chart-area-stacked-expand.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-area"],
- component: React.lazy(() => import("@/registry/new-york/charts/chart-area-stacked-expand.tsx")),
- source: "__registry__/new-york/charts/chart-area-stacked-expand.tsx",
- meta: undefined,
- },
- "chart-area-stacked": {
- name: "chart-area-stacked",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/new-york/charts/chart-area-stacked.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-area"],
- component: React.lazy(() => import("@/registry/new-york/charts/chart-area-stacked.tsx")),
- source: "__registry__/new-york/charts/chart-area-stacked.tsx",
- meta: undefined,
- },
- "chart-area-step": {
- name: "chart-area-step",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/new-york/charts/chart-area-step.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-area"],
- component: React.lazy(() => import("@/registry/new-york/charts/chart-area-step.tsx")),
- source: "__registry__/new-york/charts/chart-area-step.tsx",
- meta: undefined,
- },
- "chart-bar-active": {
- name: "chart-bar-active",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/new-york/charts/chart-bar-active.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-bar"],
- component: React.lazy(() => import("@/registry/new-york/charts/chart-bar-active.tsx")),
- source: "__registry__/new-york/charts/chart-bar-active.tsx",
- meta: undefined,
- },
- "chart-bar-default": {
- name: "chart-bar-default",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/new-york/charts/chart-bar-default.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-bar"],
- component: React.lazy(() => import("@/registry/new-york/charts/chart-bar-default.tsx")),
- source: "__registry__/new-york/charts/chart-bar-default.tsx",
- meta: undefined,
- },
- "chart-bar-horizontal": {
- name: "chart-bar-horizontal",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/new-york/charts/chart-bar-horizontal.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-bar"],
- component: React.lazy(() => import("@/registry/new-york/charts/chart-bar-horizontal.tsx")),
- source: "__registry__/new-york/charts/chart-bar-horizontal.tsx",
- meta: undefined,
- },
- "chart-bar-interactive": {
- name: "chart-bar-interactive",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/new-york/charts/chart-bar-interactive.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-bar"],
- component: React.lazy(() => import("@/registry/new-york/charts/chart-bar-interactive.tsx")),
- source: "__registry__/new-york/charts/chart-bar-interactive.tsx",
- meta: undefined,
- },
- "chart-bar-label-custom": {
- name: "chart-bar-label-custom",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/new-york/charts/chart-bar-label-custom.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-bar"],
- component: React.lazy(() => import("@/registry/new-york/charts/chart-bar-label-custom.tsx")),
- source: "__registry__/new-york/charts/chart-bar-label-custom.tsx",
- meta: undefined,
- },
- "chart-bar-label": {
- name: "chart-bar-label",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/new-york/charts/chart-bar-label.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-bar"],
- component: React.lazy(() => import("@/registry/new-york/charts/chart-bar-label.tsx")),
- source: "__registry__/new-york/charts/chart-bar-label.tsx",
- meta: undefined,
- },
- "chart-bar-mixed": {
- name: "chart-bar-mixed",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/new-york/charts/chart-bar-mixed.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-bar"],
- component: React.lazy(() => import("@/registry/new-york/charts/chart-bar-mixed.tsx")),
- source: "__registry__/new-york/charts/chart-bar-mixed.tsx",
- meta: undefined,
- },
- "chart-bar-multiple": {
- name: "chart-bar-multiple",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/new-york/charts/chart-bar-multiple.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-bar"],
- component: React.lazy(() => import("@/registry/new-york/charts/chart-bar-multiple.tsx")),
- source: "__registry__/new-york/charts/chart-bar-multiple.tsx",
- meta: undefined,
- },
- "chart-bar-negative": {
- name: "chart-bar-negative",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/new-york/charts/chart-bar-negative.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-bar"],
- component: React.lazy(() => import("@/registry/new-york/charts/chart-bar-negative.tsx")),
- source: "__registry__/new-york/charts/chart-bar-negative.tsx",
- meta: undefined,
- },
- "chart-bar-stacked": {
- name: "chart-bar-stacked",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/new-york/charts/chart-bar-stacked.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-bar"],
- component: React.lazy(() => import("@/registry/new-york/charts/chart-bar-stacked.tsx")),
- source: "__registry__/new-york/charts/chart-bar-stacked.tsx",
- meta: undefined,
- },
- "chart-line-default": {
- name: "chart-line-default",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/new-york/charts/chart-line-default.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-line"],
- component: React.lazy(() => import("@/registry/new-york/charts/chart-line-default.tsx")),
- source: "__registry__/new-york/charts/chart-line-default.tsx",
- meta: undefined,
- },
- "chart-line-dots-colors": {
- name: "chart-line-dots-colors",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/new-york/charts/chart-line-dots-colors.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-line"],
- component: React.lazy(() => import("@/registry/new-york/charts/chart-line-dots-colors.tsx")),
- source: "__registry__/new-york/charts/chart-line-dots-colors.tsx",
- meta: undefined,
- },
- "chart-line-dots-custom": {
- name: "chart-line-dots-custom",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/new-york/charts/chart-line-dots-custom.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-line"],
- component: React.lazy(() => import("@/registry/new-york/charts/chart-line-dots-custom.tsx")),
- source: "__registry__/new-york/charts/chart-line-dots-custom.tsx",
- meta: undefined,
- },
- "chart-line-dots": {
- name: "chart-line-dots",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/new-york/charts/chart-line-dots.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-line"],
- component: React.lazy(() => import("@/registry/new-york/charts/chart-line-dots.tsx")),
- source: "__registry__/new-york/charts/chart-line-dots.tsx",
- meta: undefined,
- },
- "chart-line-interactive": {
- name: "chart-line-interactive",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/new-york/charts/chart-line-interactive.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-line"],
- component: React.lazy(() => import("@/registry/new-york/charts/chart-line-interactive.tsx")),
- source: "__registry__/new-york/charts/chart-line-interactive.tsx",
- meta: undefined,
- },
- "chart-line-label-custom": {
- name: "chart-line-label-custom",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/new-york/charts/chart-line-label-custom.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-line"],
- component: React.lazy(() => import("@/registry/new-york/charts/chart-line-label-custom.tsx")),
- source: "__registry__/new-york/charts/chart-line-label-custom.tsx",
- meta: undefined,
- },
- "chart-line-label": {
- name: "chart-line-label",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/new-york/charts/chart-line-label.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-line"],
- component: React.lazy(() => import("@/registry/new-york/charts/chart-line-label.tsx")),
- source: "__registry__/new-york/charts/chart-line-label.tsx",
- meta: undefined,
- },
- "chart-line-linear": {
- name: "chart-line-linear",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/new-york/charts/chart-line-linear.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-line"],
- component: React.lazy(() => import("@/registry/new-york/charts/chart-line-linear.tsx")),
- source: "__registry__/new-york/charts/chart-line-linear.tsx",
- meta: undefined,
- },
- "chart-line-multiple": {
- name: "chart-line-multiple",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/new-york/charts/chart-line-multiple.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-line"],
- component: React.lazy(() => import("@/registry/new-york/charts/chart-line-multiple.tsx")),
- source: "__registry__/new-york/charts/chart-line-multiple.tsx",
- meta: undefined,
- },
- "chart-line-step": {
- name: "chart-line-step",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/new-york/charts/chart-line-step.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-line"],
- component: React.lazy(() => import("@/registry/new-york/charts/chart-line-step.tsx")),
- source: "__registry__/new-york/charts/chart-line-step.tsx",
- meta: undefined,
- },
- "chart-pie-donut-active": {
- name: "chart-pie-donut-active",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/new-york/charts/chart-pie-donut-active.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-pie"],
- component: React.lazy(() => import("@/registry/new-york/charts/chart-pie-donut-active.tsx")),
- source: "__registry__/new-york/charts/chart-pie-donut-active.tsx",
- meta: undefined,
- },
- "chart-pie-donut-text": {
- name: "chart-pie-donut-text",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/new-york/charts/chart-pie-donut-text.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-pie"],
- component: React.lazy(() => import("@/registry/new-york/charts/chart-pie-donut-text.tsx")),
- source: "__registry__/new-york/charts/chart-pie-donut-text.tsx",
- meta: undefined,
- },
- "chart-pie-donut": {
- name: "chart-pie-donut",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/new-york/charts/chart-pie-donut.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-pie"],
- component: React.lazy(() => import("@/registry/new-york/charts/chart-pie-donut.tsx")),
- source: "__registry__/new-york/charts/chart-pie-donut.tsx",
- meta: undefined,
- },
- "chart-pie-interactive": {
- name: "chart-pie-interactive",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/new-york/charts/chart-pie-interactive.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-pie"],
- component: React.lazy(() => import("@/registry/new-york/charts/chart-pie-interactive.tsx")),
- source: "__registry__/new-york/charts/chart-pie-interactive.tsx",
- meta: undefined,
- },
- "chart-pie-label-custom": {
- name: "chart-pie-label-custom",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/new-york/charts/chart-pie-label-custom.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-pie"],
- component: React.lazy(() => import("@/registry/new-york/charts/chart-pie-label-custom.tsx")),
- source: "__registry__/new-york/charts/chart-pie-label-custom.tsx",
- meta: undefined,
- },
- "chart-pie-label-list": {
- name: "chart-pie-label-list",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/new-york/charts/chart-pie-label-list.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-pie"],
- component: React.lazy(() => import("@/registry/new-york/charts/chart-pie-label-list.tsx")),
- source: "__registry__/new-york/charts/chart-pie-label-list.tsx",
- meta: undefined,
- },
- "chart-pie-label": {
- name: "chart-pie-label",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/new-york/charts/chart-pie-label.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-pie"],
- component: React.lazy(() => import("@/registry/new-york/charts/chart-pie-label.tsx")),
- source: "__registry__/new-york/charts/chart-pie-label.tsx",
- meta: undefined,
- },
- "chart-pie-legend": {
- name: "chart-pie-legend",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/new-york/charts/chart-pie-legend.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-pie"],
- component: React.lazy(() => import("@/registry/new-york/charts/chart-pie-legend.tsx")),
- source: "__registry__/new-york/charts/chart-pie-legend.tsx",
- meta: undefined,
- },
- "chart-pie-separator-none": {
- name: "chart-pie-separator-none",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/new-york/charts/chart-pie-separator-none.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-pie"],
- component: React.lazy(() => import("@/registry/new-york/charts/chart-pie-separator-none.tsx")),
- source: "__registry__/new-york/charts/chart-pie-separator-none.tsx",
- meta: undefined,
- },
- "chart-pie-simple": {
- name: "chart-pie-simple",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/new-york/charts/chart-pie-simple.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-pie"],
- component: React.lazy(() => import("@/registry/new-york/charts/chart-pie-simple.tsx")),
- source: "__registry__/new-york/charts/chart-pie-simple.tsx",
- meta: undefined,
- },
- "chart-pie-stacked": {
- name: "chart-pie-stacked",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/new-york/charts/chart-pie-stacked.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-pie"],
- component: React.lazy(() => import("@/registry/new-york/charts/chart-pie-stacked.tsx")),
- source: "__registry__/new-york/charts/chart-pie-stacked.tsx",
- meta: undefined,
- },
- "chart-radar-default": {
- name: "chart-radar-default",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/new-york/charts/chart-radar-default.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-radar"],
- component: React.lazy(() => import("@/registry/new-york/charts/chart-radar-default.tsx")),
- source: "__registry__/new-york/charts/chart-radar-default.tsx",
- meta: undefined,
- },
- "chart-radar-dots": {
- name: "chart-radar-dots",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/new-york/charts/chart-radar-dots.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-radar"],
- component: React.lazy(() => import("@/registry/new-york/charts/chart-radar-dots.tsx")),
- source: "__registry__/new-york/charts/chart-radar-dots.tsx",
- meta: undefined,
- },
- "chart-radar-grid-circle-fill": {
- name: "chart-radar-grid-circle-fill",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/new-york/charts/chart-radar-grid-circle-fill.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-radar"],
- component: React.lazy(() => import("@/registry/new-york/charts/chart-radar-grid-circle-fill.tsx")),
- source: "__registry__/new-york/charts/chart-radar-grid-circle-fill.tsx",
- meta: undefined,
- },
- "chart-radar-grid-circle-no-lines": {
- name: "chart-radar-grid-circle-no-lines",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/new-york/charts/chart-radar-grid-circle-no-lines.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-radar"],
- component: React.lazy(() => import("@/registry/new-york/charts/chart-radar-grid-circle-no-lines.tsx")),
- source: "__registry__/new-york/charts/chart-radar-grid-circle-no-lines.tsx",
- meta: undefined,
- },
- "chart-radar-grid-circle": {
- name: "chart-radar-grid-circle",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/new-york/charts/chart-radar-grid-circle.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-radar"],
- component: React.lazy(() => import("@/registry/new-york/charts/chart-radar-grid-circle.tsx")),
- source: "__registry__/new-york/charts/chart-radar-grid-circle.tsx",
- meta: undefined,
- },
- "chart-radar-grid-custom": {
- name: "chart-radar-grid-custom",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/new-york/charts/chart-radar-grid-custom.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-radar"],
- component: React.lazy(() => import("@/registry/new-york/charts/chart-radar-grid-custom.tsx")),
- source: "__registry__/new-york/charts/chart-radar-grid-custom.tsx",
- meta: undefined,
- },
- "chart-radar-grid-fill": {
- name: "chart-radar-grid-fill",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/new-york/charts/chart-radar-grid-fill.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-radar"],
- component: React.lazy(() => import("@/registry/new-york/charts/chart-radar-grid-fill.tsx")),
- source: "__registry__/new-york/charts/chart-radar-grid-fill.tsx",
- meta: undefined,
- },
- "chart-radar-grid-none": {
- name: "chart-radar-grid-none",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/new-york/charts/chart-radar-grid-none.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-radar"],
- component: React.lazy(() => import("@/registry/new-york/charts/chart-radar-grid-none.tsx")),
- source: "__registry__/new-york/charts/chart-radar-grid-none.tsx",
- meta: undefined,
- },
- "chart-radar-icons": {
- name: "chart-radar-icons",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/new-york/charts/chart-radar-icons.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-radar"],
- component: React.lazy(() => import("@/registry/new-york/charts/chart-radar-icons.tsx")),
- source: "__registry__/new-york/charts/chart-radar-icons.tsx",
- meta: undefined,
- },
- "chart-radar-label-custom": {
- name: "chart-radar-label-custom",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/new-york/charts/chart-radar-label-custom.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-radar"],
- component: React.lazy(() => import("@/registry/new-york/charts/chart-radar-label-custom.tsx")),
- source: "__registry__/new-york/charts/chart-radar-label-custom.tsx",
- meta: undefined,
- },
- "chart-radar-legend": {
- name: "chart-radar-legend",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/new-york/charts/chart-radar-legend.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-radar"],
- component: React.lazy(() => import("@/registry/new-york/charts/chart-radar-legend.tsx")),
- source: "__registry__/new-york/charts/chart-radar-legend.tsx",
- meta: undefined,
- },
- "chart-radar-lines-only": {
- name: "chart-radar-lines-only",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/new-york/charts/chart-radar-lines-only.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-radar"],
- component: React.lazy(() => import("@/registry/new-york/charts/chart-radar-lines-only.tsx")),
- source: "__registry__/new-york/charts/chart-radar-lines-only.tsx",
- meta: undefined,
- },
- "chart-radar-multiple": {
- name: "chart-radar-multiple",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/new-york/charts/chart-radar-multiple.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-radar"],
- component: React.lazy(() => import("@/registry/new-york/charts/chart-radar-multiple.tsx")),
- source: "__registry__/new-york/charts/chart-radar-multiple.tsx",
- meta: undefined,
- },
- "chart-radar-radius": {
- name: "chart-radar-radius",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/new-york/charts/chart-radar-radius.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-radar"],
- component: React.lazy(() => import("@/registry/new-york/charts/chart-radar-radius.tsx")),
- source: "__registry__/new-york/charts/chart-radar-radius.tsx",
- meta: undefined,
- },
- "chart-radial-grid": {
- name: "chart-radial-grid",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/new-york/charts/chart-radial-grid.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-radial"],
- component: React.lazy(() => import("@/registry/new-york/charts/chart-radial-grid.tsx")),
- source: "__registry__/new-york/charts/chart-radial-grid.tsx",
- meta: undefined,
- },
- "chart-radial-label": {
- name: "chart-radial-label",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/new-york/charts/chart-radial-label.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-radial"],
- component: React.lazy(() => import("@/registry/new-york/charts/chart-radial-label.tsx")),
- source: "__registry__/new-york/charts/chart-radial-label.tsx",
- meta: undefined,
- },
- "chart-radial-shape": {
- name: "chart-radial-shape",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/new-york/charts/chart-radial-shape.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-radial"],
- component: React.lazy(() => import("@/registry/new-york/charts/chart-radial-shape.tsx")),
- source: "__registry__/new-york/charts/chart-radial-shape.tsx",
- meta: undefined,
- },
- "chart-radial-simple": {
- name: "chart-radial-simple",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/new-york/charts/chart-radial-simple.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-radial"],
- component: React.lazy(() => import("@/registry/new-york/charts/chart-radial-simple.tsx")),
- source: "__registry__/new-york/charts/chart-radial-simple.tsx",
- meta: undefined,
- },
- "chart-radial-stacked": {
- name: "chart-radial-stacked",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/new-york/charts/chart-radial-stacked.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-radial"],
- component: React.lazy(() => import("@/registry/new-york/charts/chart-radial-stacked.tsx")),
- source: "__registry__/new-york/charts/chart-radial-stacked.tsx",
- meta: undefined,
- },
- "chart-radial-text": {
- name: "chart-radial-text",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/new-york/charts/chart-radial-text.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-radial"],
- component: React.lazy(() => import("@/registry/new-york/charts/chart-radial-text.tsx")),
- source: "__registry__/new-york/charts/chart-radial-text.tsx",
- meta: undefined,
- },
- "chart-tooltip-default": {
- name: "chart-tooltip-default",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/new-york/charts/chart-tooltip-default.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-tooltip"],
- component: React.lazy(() => import("@/registry/new-york/charts/chart-tooltip-default.tsx")),
- source: "__registry__/new-york/charts/chart-tooltip-default.tsx",
- meta: undefined,
- },
- "chart-tooltip-indicator-line": {
- name: "chart-tooltip-indicator-line",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/new-york/charts/chart-tooltip-indicator-line.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-tooltip"],
- component: React.lazy(() => import("@/registry/new-york/charts/chart-tooltip-indicator-line.tsx")),
- source: "__registry__/new-york/charts/chart-tooltip-indicator-line.tsx",
- meta: undefined,
- },
- "chart-tooltip-indicator-none": {
- name: "chart-tooltip-indicator-none",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/new-york/charts/chart-tooltip-indicator-none.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-tooltip"],
- component: React.lazy(() => import("@/registry/new-york/charts/chart-tooltip-indicator-none.tsx")),
- source: "__registry__/new-york/charts/chart-tooltip-indicator-none.tsx",
- meta: undefined,
- },
- "chart-tooltip-label-none": {
- name: "chart-tooltip-label-none",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/new-york/charts/chart-tooltip-label-none.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-tooltip"],
- component: React.lazy(() => import("@/registry/new-york/charts/chart-tooltip-label-none.tsx")),
- source: "__registry__/new-york/charts/chart-tooltip-label-none.tsx",
- meta: undefined,
- },
- "chart-tooltip-label-custom": {
- name: "chart-tooltip-label-custom",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/new-york/charts/chart-tooltip-label-custom.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-tooltip"],
- component: React.lazy(() => import("@/registry/new-york/charts/chart-tooltip-label-custom.tsx")),
- source: "__registry__/new-york/charts/chart-tooltip-label-custom.tsx",
- meta: undefined,
- },
- "chart-tooltip-label-formatter": {
- name: "chart-tooltip-label-formatter",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/new-york/charts/chart-tooltip-label-formatter.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-tooltip"],
- component: React.lazy(() => import("@/registry/new-york/charts/chart-tooltip-label-formatter.tsx")),
- source: "__registry__/new-york/charts/chart-tooltip-label-formatter.tsx",
- meta: undefined,
- },
- "chart-tooltip-formatter": {
- name: "chart-tooltip-formatter",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/new-york/charts/chart-tooltip-formatter.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-tooltip"],
- component: React.lazy(() => import("@/registry/new-york/charts/chart-tooltip-formatter.tsx")),
- source: "__registry__/new-york/charts/chart-tooltip-formatter.tsx",
- meta: undefined,
- },
- "chart-tooltip-icons": {
- name: "chart-tooltip-icons",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/new-york/charts/chart-tooltip-icons.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-tooltip"],
- component: React.lazy(() => import("@/registry/new-york/charts/chart-tooltip-icons.tsx")),
- source: "__registry__/new-york/charts/chart-tooltip-icons.tsx",
- meta: undefined,
- },
- "chart-tooltip-advanced": {
- name: "chart-tooltip-advanced",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/new-york/charts/chart-tooltip-advanced.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-tooltip"],
- component: React.lazy(() => import("@/registry/new-york/charts/chart-tooltip-advanced.tsx")),
- source: "__registry__/new-york/charts/chart-tooltip-advanced.tsx",
- meta: undefined,
- },
- "utils": {
- name: "utils",
- description: "",
- type: "registry:lib",
- registryDependencies: undefined,
- files: [{
- path: "registry/new-york/lib/utils.ts",
- type: "registry:lib",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/lib/utils.ts")),
- source: "",
- meta: undefined,
- },
- "use-mobile": {
- name: "use-mobile",
- description: "",
- type: "registry:hook",
- registryDependencies: undefined,
- files: [{
- path: "registry/new-york/hooks/use-mobile.tsx",
- type: "registry:hook",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/hooks/use-mobile.tsx")),
- source: "",
- meta: undefined,
- },
- "use-toast": {
- name: "use-toast",
- description: "",
- type: "registry:hook",
- registryDependencies: undefined,
- files: [{
- path: "registry/new-york/hooks/use-toast.ts",
- type: "registry:hook",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/hooks/use-toast.ts")),
- source: "",
- meta: undefined,
- },
- "sink": {
- name: "sink",
- description: "",
- type: "registry:internal",
- registryDependencies: ["accordion","alert","alert-dialog","aspect-ratio","avatar","badge","breadcrumb","button","calendar","card","carousel","chart","checkbox","collapsible","command","context-menu","dialog","drawer","dropdown-menu","hover-card","input","input-otp","label","menubar","navigation-menu","pagination","popover","progress","radio-group","resizable","scroll-area","select","separator","sheet","sidebar","skeleton","slider","sonner","switch","table","tabs","textarea","toast","toggle","toggle-group","tooltip"],
- files: [{
- path: "registry/new-york/internal/sink/page.tsx",
- type: "registry:page",
- target: "app/sink/page.tsx"
- },{
- path: "registry/new-york/internal/sink/components/app-sidebar.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/new-york/internal/sink/components/component-wrapper.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/new-york/internal/sink/components/nav-main.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/new-york/internal/sink/components/nav-projects.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/new-york/internal/sink/components/nav-user.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/new-york/internal/sink/components/team-switcher.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/new-york/internal/sink/components/accordion-demo.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/new-york/internal/sink/components/alert-demo.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/new-york/internal/sink/components/alert-dialog-demo.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/new-york/internal/sink/components/aspect-ratio-demo.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/new-york/internal/sink/components/avatar-demo.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/new-york/internal/sink/components/badge-demo.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/new-york/internal/sink/components/breadcrumb-demo.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/new-york/internal/sink/components/button-demo.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/new-york/internal/sink/components/calendar-demo.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/new-york/internal/sink/components/card-demo.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/new-york/internal/sink/components/carousel-demo.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/new-york/internal/sink/components/checkbox-demo.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/new-york/internal/sink/components/collapsible-demo.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/new-york/internal/sink/components/combobox-demo.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/new-york/internal/sink/components/command-demo.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/new-york/internal/sink/components/context-menu-demo.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/new-york/internal/sink/components/date-picker-demo.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/new-york/internal/sink/components/dialog-demo.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/new-york/internal/sink/components/drawer-demo.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/new-york/internal/sink/components/dropdown-menu-demo.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/new-york/internal/sink/components/hover-card-demo.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/new-york/internal/sink/components/input-demo.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/new-york/internal/sink/components/input-otp-demo.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/new-york/internal/sink/components/label-demo.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/new-york/internal/sink/components/menubar-demo.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/new-york/internal/sink/components/navigation-menu-demo.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/new-york/internal/sink/components/pagination-demo.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/new-york/internal/sink/components/popover-demo.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/new-york/internal/sink/components/progress-demo.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/new-york/internal/sink/components/radio-group-demo.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/new-york/internal/sink/components/resizable-handle.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/new-york/internal/sink/components/scroll-area-demo.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/new-york/internal/sink/components/select-demo.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/new-york/internal/sink/components/separator-demo.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/new-york/internal/sink/components/sheet-demo.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/new-york/internal/sink/components/skeleton-demo.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/new-york/internal/sink/components/slider-demo.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/new-york/internal/sink/components/sonner-demo.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/new-york/internal/sink/components/switch-demo.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/new-york/internal/sink/components/table-demo.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/new-york/internal/sink/components/tabs-demo.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/new-york/internal/sink/components/textarea-demo.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/new-york/internal/sink/components/toast-demo.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/new-york/internal/sink/components/toggle-demo.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/new-york/internal/sink/components/toggle-group-demo.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/new-york/internal/sink/components/tooltip-demo.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/new-york/internal/sink/components/badge-destructive.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/new-york/internal/sink/components/badge-outline.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/new-york/internal/sink/components/badge-secondary.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/new-york/internal/sink/components/button-destructive.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/new-york/internal/sink/components/button-ghost.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/new-york/internal/sink/components/button-link.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/new-york/internal/sink/components/button-loading.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/new-york/internal/sink/components/button-outline.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/new-york/internal/sink/components/button-secondary.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/new-york/internal/sink/components/button-with-icon.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/new-york/internal/sink/components/toggle-disabled.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/new-york/internal/sink/components/toggle-outline.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/new-york/internal/sink/components/toggle-with-text.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/internal/sink/page.tsx")),
- source: "",
- meta: undefined,
- },
- "sidebar-demo": {
- name: "sidebar-demo",
- description: "",
- type: "registry:internal",
- registryDependencies: undefined,
- files: [{
- path: "registry/new-york/internal/sidebar-demo.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/internal/sidebar-demo.tsx")),
- source: "",
- meta: undefined,
- },
- "sidebar-header": {
- name: "sidebar-header",
- description: "",
- type: "registry:internal",
- registryDependencies: undefined,
- files: [{
- path: "registry/new-york/internal/sidebar-header.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/internal/sidebar-header.tsx")),
- source: "",
- meta: undefined,
- },
- "sidebar-footer": {
- name: "sidebar-footer",
- description: "",
- type: "registry:internal",
- registryDependencies: undefined,
- files: [{
- path: "registry/new-york/internal/sidebar-footer.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/internal/sidebar-footer.tsx")),
- source: "",
- meta: undefined,
- },
- "sidebar-group": {
- name: "sidebar-group",
- description: "",
- type: "registry:internal",
- registryDependencies: undefined,
- files: [{
- path: "registry/new-york/internal/sidebar-group.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/internal/sidebar-group.tsx")),
- source: "",
- meta: undefined,
- },
- "sidebar-group-collapsible": {
- name: "sidebar-group-collapsible",
- description: "",
- type: "registry:internal",
- registryDependencies: undefined,
- files: [{
- path: "registry/new-york/internal/sidebar-group-collapsible.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/internal/sidebar-group-collapsible.tsx")),
- source: "",
- meta: undefined,
- },
- "sidebar-group-action": {
- name: "sidebar-group-action",
- description: "",
- type: "registry:internal",
- registryDependencies: undefined,
- files: [{
- path: "registry/new-york/internal/sidebar-group-action.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/internal/sidebar-group-action.tsx")),
- source: "",
- meta: undefined,
- },
- "sidebar-menu": {
- name: "sidebar-menu",
- description: "",
- type: "registry:internal",
- registryDependencies: undefined,
- files: [{
- path: "registry/new-york/internal/sidebar-menu.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/internal/sidebar-menu.tsx")),
- source: "",
- meta: undefined,
- },
- "sidebar-menu-action": {
- name: "sidebar-menu-action",
- description: "",
- type: "registry:internal",
- registryDependencies: undefined,
- files: [{
- path: "registry/new-york/internal/sidebar-menu-action.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/internal/sidebar-menu-action.tsx")),
- source: "",
- meta: undefined,
- },
- "sidebar-menu-sub": {
- name: "sidebar-menu-sub",
- description: "",
- type: "registry:internal",
- registryDependencies: undefined,
- files: [{
- path: "registry/new-york/internal/sidebar-menu-sub.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/internal/sidebar-menu-sub.tsx")),
- source: "",
- meta: undefined,
- },
- "sidebar-menu-collapsible": {
- name: "sidebar-menu-collapsible",
- description: "",
- type: "registry:internal",
- registryDependencies: undefined,
- files: [{
- path: "registry/new-york/internal/sidebar-menu-collapsible.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/internal/sidebar-menu-collapsible.tsx")),
- source: "",
- meta: undefined,
- },
- "sidebar-menu-badge": {
- name: "sidebar-menu-badge",
- description: "",
- type: "registry:internal",
- registryDependencies: undefined,
- files: [{
- path: "registry/new-york/internal/sidebar-menu-badge.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/internal/sidebar-menu-badge.tsx")),
- source: "",
- meta: undefined,
- },
- "sidebar-rsc": {
- name: "sidebar-rsc",
- description: "",
- type: "registry:internal",
- registryDependencies: undefined,
- files: [{
- path: "registry/new-york/internal/sidebar-rsc.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/internal/sidebar-rsc.tsx")),
- source: "",
- meta: undefined,
- },
- "sidebar-controlled": {
- name: "sidebar-controlled",
- description: "",
- type: "registry:internal",
- registryDependencies: undefined,
- files: [{
- path: "registry/new-york/internal/sidebar-controlled.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/internal/sidebar-controlled.tsx")),
- source: "",
- meta: undefined,
- },
- "v0-sidebar-01": {
- name: "v0-sidebar-01",
- description: "",
- type: "registry:internal",
- registryDependencies: ["sidebar","breadcrumb","separator","label","dropdown-menu"],
- files: [{
- path: "registry/new-york/internal/sidebar-01.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/internal/sidebar-01.tsx")),
- source: "",
- meta: undefined,
- },
- "v0-sidebar-02": {
- name: "v0-sidebar-02",
- description: "",
- type: "registry:internal",
- registryDependencies: ["sidebar","breadcrumb","separator","label","dropdown-menu"],
- files: [{
- path: "registry/new-york/internal/sidebar-02.tsx",
- type: "registry:internal",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/internal/sidebar-02.tsx")),
- source: "",
- meta: undefined,
- },
- "v0-sidebar-03": {
- name: "v0-sidebar-03",
- description: "",
- type: "registry:internal",
- registryDependencies: ["sidebar","breadcrumb"],
- files: [{
- path: "registry/new-york/internal/sidebar-03.tsx",
- type: "registry:internal",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/internal/sidebar-03.tsx")),
- source: "",
- meta: undefined,
- },
- "v0-sidebar-04": {
- name: "v0-sidebar-04",
- description: "",
- type: "registry:internal",
- registryDependencies: ["sidebar","breadcrumb","separator"],
- files: [{
- path: "registry/new-york/internal/sidebar-04.tsx",
- type: "registry:internal",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/internal/sidebar-04.tsx")),
- source: "",
- meta: undefined,
- },
- "v0-sidebar-05": {
- name: "v0-sidebar-05",
- description: "",
- type: "registry:internal",
- registryDependencies: ["sidebar","breadcrumb","separator","label","collapsible"],
- files: [{
- path: "registry/new-york/internal/sidebar-05.tsx",
- type: "registry:internal",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/internal/sidebar-05.tsx")),
- source: "",
- meta: undefined,
- },
- "v0-sidebar-06": {
- name: "v0-sidebar-06",
- description: "",
- type: "registry:internal",
- registryDependencies: ["sidebar","breadcrumb","separator","card","dropdown-menu"],
- files: [{
- path: "registry/new-york/internal/sidebar-06.tsx",
- type: "registry:internal",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/internal/sidebar-06.tsx")),
- source: "",
- meta: undefined,
- },
- "v0-sidebar-07": {
- name: "v0-sidebar-07",
- description: "",
- type: "registry:internal",
- registryDependencies: ["sidebar","breadcrumb","separator","collapsible","dropdown-menu","avatar"],
- files: [{
- path: "registry/new-york/internal/sidebar-07.tsx",
- type: "registry:internal",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/internal/sidebar-07.tsx")),
- source: "",
- meta: undefined,
- },
- "v0-sidebar-08": {
- name: "v0-sidebar-08",
- description: "",
- type: "registry:internal",
- registryDependencies: ["sidebar","breadcrumb","separator","collapsible","dropdown-menu","avatar"],
- files: [{
- path: "registry/new-york/internal/sidebar-08.tsx",
- type: "registry:internal",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/internal/sidebar-08.tsx")),
- source: "",
- meta: undefined,
- },
- "v0-sidebar-09": {
- name: "v0-sidebar-09",
- description: "",
- type: "registry:internal",
- registryDependencies: ["sidebar","breadcrumb","separator","collapsible","dropdown-menu","avatar","switch"],
- files: [{
- path: "registry/new-york/internal/sidebar-09.tsx",
- type: "registry:internal",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/internal/sidebar-09.tsx")),
- source: "",
- meta: undefined,
- },
- "v0-sidebar-10": {
- name: "v0-sidebar-10",
- description: "",
- type: "registry:internal",
- registryDependencies: ["sidebar","breadcrumb","separator","popover","collapsible","dropdown-menu"],
- files: [{
- path: "registry/new-york/internal/sidebar-10.tsx",
- type: "registry:internal",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/internal/sidebar-10.tsx")),
- source: "",
- meta: undefined,
- },
- "v0-sidebar-11": {
- name: "v0-sidebar-11",
- description: "",
- type: "registry:internal",
- registryDependencies: ["sidebar","breadcrumb","separator","collapsible"],
- files: [{
- path: "registry/new-york/internal/sidebar-11.tsx",
- type: "registry:internal",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/internal/sidebar-11.tsx")),
- source: "",
- meta: undefined,
- },
- "v0-sidebar-12": {
- name: "v0-sidebar-12",
- description: "",
- type: "registry:internal",
- registryDependencies: ["sidebar","breadcrumb","separator","collapsible","calendar","dropdown-menu","avatar"],
- files: [{
- path: "registry/new-york/internal/sidebar-12.tsx",
- type: "registry:internal",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/internal/sidebar-12.tsx")),
- source: "",
- meta: undefined,
- },
- "v0-sidebar-13": {
- name: "v0-sidebar-13",
- description: "",
- type: "registry:internal",
- registryDependencies: ["sidebar","breadcrumb","button","dialog"],
- files: [{
- path: "registry/new-york/internal/sidebar-13.tsx",
- type: "registry:internal",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/internal/sidebar-13.tsx")),
- source: "",
- meta: undefined,
- },
- "v0-sidebar-14": {
- name: "v0-sidebar-14",
- description: "",
- type: "registry:internal",
- registryDependencies: ["sidebar","breadcrumb"],
- files: [{
- path: "registry/new-york/internal/sidebar-14.tsx",
- type: "registry:internal",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/internal/sidebar-14.tsx")),
- source: "",
- meta: undefined,
- },
- "v0-sidebar-15": {
- name: "v0-sidebar-15",
- description: "",
- type: "registry:internal",
- registryDependencies: ["sidebar","breadcrumb","separator","popover","collapsible","dropdown-menu","calendar","avatar"],
- files: [{
- path: "registry/new-york/internal/sidebar-15.tsx",
- type: "registry:internal",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/internal/sidebar-15.tsx")),
- source: "",
- meta: undefined,
- },
- "v0-login-01": {
- name: "v0-login-01",
- description: "",
- type: "registry:internal",
- registryDependencies: ["button","card","input","label"],
- files: [{
- path: "registry/new-york/internal/login-01.tsx",
- type: "registry:internal",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/internal/login-01.tsx")),
- source: "",
- meta: undefined,
- },
- "accordion-demo": {
- name: "accordion-demo",
- description: "",
- type: "registry:example",
- registryDependencies: ["accordion"],
- files: [{
- path: "registry/new-york/examples/accordion-demo.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/accordion-demo.tsx")),
- source: "",
- meta: undefined,
- },
- "alert-demo": {
- name: "alert-demo",
- description: "",
- type: "registry:example",
- registryDependencies: ["alert"],
- files: [{
- path: "registry/new-york/examples/alert-demo.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/alert-demo.tsx")),
- source: "",
- meta: undefined,
- },
- "alert-destructive": {
- name: "alert-destructive",
- description: "",
- type: "registry:example",
- registryDependencies: ["alert"],
- files: [{
- path: "registry/new-york/examples/alert-destructive.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/alert-destructive.tsx")),
- source: "",
- meta: undefined,
- },
- "alert-dialog-demo": {
- name: "alert-dialog-demo",
- description: "",
- type: "registry:example",
- registryDependencies: ["alert-dialog","button"],
- files: [{
- path: "registry/new-york/examples/alert-dialog-demo.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/alert-dialog-demo.tsx")),
- source: "",
- meta: undefined,
- },
- "aspect-ratio-demo": {
- name: "aspect-ratio-demo",
- description: "",
- type: "registry:example",
- registryDependencies: ["aspect-ratio"],
- files: [{
- path: "registry/new-york/examples/aspect-ratio-demo.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/aspect-ratio-demo.tsx")),
- source: "",
- meta: undefined,
- },
- "avatar-demo": {
- name: "avatar-demo",
- description: "",
- type: "registry:example",
- registryDependencies: ["avatar"],
- files: [{
- path: "registry/new-york/examples/avatar-demo.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/avatar-demo.tsx")),
- source: "",
- meta: undefined,
- },
- "badge-demo": {
- name: "badge-demo",
- description: "",
- type: "registry:example",
- registryDependencies: ["badge"],
- files: [{
- path: "registry/new-york/examples/badge-demo.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/badge-demo.tsx")),
- source: "",
- meta: undefined,
- },
- "badge-destructive": {
- name: "badge-destructive",
- description: "",
- type: "registry:example",
- registryDependencies: ["badge"],
- files: [{
- path: "registry/new-york/examples/badge-destructive.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/badge-destructive.tsx")),
- source: "",
- meta: undefined,
- },
- "badge-outline": {
- name: "badge-outline",
- description: "",
- type: "registry:example",
- registryDependencies: ["badge"],
- files: [{
- path: "registry/new-york/examples/badge-outline.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/badge-outline.tsx")),
- source: "",
- meta: undefined,
- },
- "badge-secondary": {
- name: "badge-secondary",
- description: "",
- type: "registry:example",
- registryDependencies: ["badge"],
- files: [{
- path: "registry/new-york/examples/badge-secondary.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/badge-secondary.tsx")),
- source: "",
- meta: undefined,
- },
- "breadcrumb-demo": {
- name: "breadcrumb-demo",
- description: "",
- type: "registry:example",
- registryDependencies: ["breadcrumb"],
- files: [{
- path: "registry/new-york/examples/breadcrumb-demo.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/breadcrumb-demo.tsx")),
- source: "",
- meta: undefined,
- },
- "breadcrumb-separator": {
- name: "breadcrumb-separator",
- description: "",
- type: "registry:example",
- registryDependencies: ["breadcrumb"],
- files: [{
- path: "registry/new-york/examples/breadcrumb-separator.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/breadcrumb-separator.tsx")),
- source: "",
- meta: undefined,
- },
- "breadcrumb-dropdown": {
- name: "breadcrumb-dropdown",
- description: "",
- type: "registry:example",
- registryDependencies: ["breadcrumb"],
- files: [{
- path: "registry/new-york/examples/breadcrumb-dropdown.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/breadcrumb-dropdown.tsx")),
- source: "",
- meta: undefined,
- },
- "breadcrumb-ellipsis": {
- name: "breadcrumb-ellipsis",
- description: "",
- type: "registry:example",
- registryDependencies: ["breadcrumb"],
- files: [{
- path: "registry/new-york/examples/breadcrumb-ellipsis.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/breadcrumb-ellipsis.tsx")),
- source: "",
- meta: undefined,
- },
- "breadcrumb-link": {
- name: "breadcrumb-link",
- description: "",
- type: "registry:example",
- registryDependencies: ["breadcrumb"],
- files: [{
- path: "registry/new-york/examples/breadcrumb-link.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/breadcrumb-link.tsx")),
- source: "",
- meta: undefined,
- },
- "breadcrumb-responsive": {
- name: "breadcrumb-responsive",
- description: "",
- type: "registry:example",
- registryDependencies: ["breadcrumb"],
- files: [{
- path: "registry/new-york/examples/breadcrumb-responsive.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/breadcrumb-responsive.tsx")),
- source: "",
- meta: undefined,
- },
- "button-demo": {
- name: "button-demo",
- description: "",
- type: "registry:example",
- registryDependencies: ["button"],
- files: [{
- path: "registry/new-york/examples/button-demo.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/button-demo.tsx")),
- source: "",
- meta: undefined,
- },
- "button-secondary": {
- name: "button-secondary",
- description: "",
- type: "registry:example",
- registryDependencies: ["button"],
- files: [{
- path: "registry/new-york/examples/button-secondary.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/button-secondary.tsx")),
- source: "",
- meta: undefined,
- },
- "button-destructive": {
- name: "button-destructive",
- description: "",
- type: "registry:example",
- registryDependencies: ["button"],
- files: [{
- path: "registry/new-york/examples/button-destructive.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/button-destructive.tsx")),
- source: "",
- meta: undefined,
- },
- "button-outline": {
- name: "button-outline",
- description: "",
- type: "registry:example",
- registryDependencies: ["button"],
- files: [{
- path: "registry/new-york/examples/button-outline.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/button-outline.tsx")),
- source: "",
- meta: undefined,
- },
- "button-ghost": {
- name: "button-ghost",
- description: "",
- type: "registry:example",
- registryDependencies: ["button"],
- files: [{
- path: "registry/new-york/examples/button-ghost.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/button-ghost.tsx")),
- source: "",
- meta: undefined,
- },
- "button-link": {
- name: "button-link",
- description: "",
- type: "registry:example",
- registryDependencies: ["button"],
- files: [{
- path: "registry/new-york/examples/button-link.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/button-link.tsx")),
- source: "",
- meta: undefined,
- },
- "button-with-icon": {
- name: "button-with-icon",
- description: "",
- type: "registry:example",
- registryDependencies: ["button"],
- files: [{
- path: "registry/new-york/examples/button-with-icon.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/button-with-icon.tsx")),
- source: "",
- meta: undefined,
- },
- "button-loading": {
- name: "button-loading",
- description: "",
- type: "registry:example",
- registryDependencies: ["button"],
- files: [{
- path: "registry/new-york/examples/button-loading.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/button-loading.tsx")),
- source: "",
- meta: undefined,
- },
- "button-icon": {
- name: "button-icon",
- description: "",
- type: "registry:example",
- registryDependencies: ["button"],
- files: [{
- path: "registry/new-york/examples/button-icon.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/button-icon.tsx")),
- source: "",
- meta: undefined,
- },
- "button-as-child": {
- name: "button-as-child",
- description: "",
- type: "registry:example",
- registryDependencies: ["button"],
- files: [{
- path: "registry/new-york/examples/button-as-child.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/button-as-child.tsx")),
- source: "",
- meta: undefined,
- },
- "calendar-demo": {
- name: "calendar-demo",
- description: "",
- type: "registry:example",
- registryDependencies: ["calendar"],
- files: [{
- path: "registry/new-york/examples/calendar-demo.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/calendar-demo.tsx")),
- source: "",
- meta: undefined,
- },
- "calendar-form": {
- name: "calendar-form",
- description: "",
- type: "registry:example",
- registryDependencies: ["calendar","form","popover"],
- files: [{
- path: "registry/new-york/examples/calendar-form.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/calendar-form.tsx")),
- source: "",
- meta: undefined,
- },
- "card-demo": {
- name: "card-demo",
- description: "",
- type: "registry:example",
- registryDependencies: ["card","button","switch"],
- files: [{
- path: "registry/new-york/examples/card-demo.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/card-demo.tsx")),
- source: "",
- meta: undefined,
- },
- "card-with-form": {
- name: "card-with-form",
- description: "",
- type: "registry:example",
- registryDependencies: ["button","card","input","label","select"],
- files: [{
- path: "registry/new-york/examples/card-with-form.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/card-with-form.tsx")),
- source: "",
- meta: undefined,
- },
- "carousel-demo": {
- name: "carousel-demo",
- description: "",
- type: "registry:example",
- registryDependencies: ["carousel"],
- files: [{
- path: "registry/new-york/examples/carousel-demo.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/carousel-demo.tsx")),
- source: "",
- meta: undefined,
- },
- "carousel-size": {
- name: "carousel-size",
- description: "",
- type: "registry:example",
- registryDependencies: ["carousel"],
- files: [{
- path: "registry/new-york/examples/carousel-size.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/carousel-size.tsx")),
- source: "",
- meta: undefined,
- },
- "carousel-spacing": {
- name: "carousel-spacing",
- description: "",
- type: "registry:example",
- registryDependencies: ["carousel"],
- files: [{
- path: "registry/new-york/examples/carousel-spacing.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/carousel-spacing.tsx")),
- source: "",
- meta: undefined,
- },
- "carousel-orientation": {
- name: "carousel-orientation",
- description: "",
- type: "registry:example",
- registryDependencies: ["carousel"],
- files: [{
- path: "registry/new-york/examples/carousel-orientation.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/carousel-orientation.tsx")),
- source: "",
- meta: undefined,
- },
- "carousel-api": {
- name: "carousel-api",
- description: "",
- type: "registry:example",
- registryDependencies: ["carousel"],
- files: [{
- path: "registry/new-york/examples/carousel-api.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/carousel-api.tsx")),
- source: "",
- meta: undefined,
- },
- "carousel-plugin": {
- name: "carousel-plugin",
- description: "",
- type: "registry:example",
- registryDependencies: ["carousel"],
- files: [{
- path: "registry/new-york/examples/carousel-plugin.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/carousel-plugin.tsx")),
- source: "",
- meta: undefined,
- },
- "checkbox-demo": {
- name: "checkbox-demo",
- description: "",
- type: "registry:example",
- registryDependencies: ["checkbox"],
- files: [{
- path: "registry/new-york/examples/checkbox-demo.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/checkbox-demo.tsx")),
- source: "",
- meta: undefined,
- },
- "checkbox-disabled": {
- name: "checkbox-disabled",
- description: "",
- type: "registry:example",
- registryDependencies: ["checkbox"],
- files: [{
- path: "registry/new-york/examples/checkbox-disabled.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/checkbox-disabled.tsx")),
- source: "",
- meta: undefined,
- },
- "checkbox-form-multiple": {
- name: "checkbox-form-multiple",
- description: "",
- type: "registry:example",
- registryDependencies: ["checkbox","form"],
- files: [{
- path: "registry/new-york/examples/checkbox-form-multiple.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/checkbox-form-multiple.tsx")),
- source: "",
- meta: undefined,
- },
- "checkbox-form-single": {
- name: "checkbox-form-single",
- description: "",
- type: "registry:example",
- registryDependencies: ["checkbox","form"],
- files: [{
- path: "registry/new-york/examples/checkbox-form-single.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/checkbox-form-single.tsx")),
- source: "",
- meta: undefined,
- },
- "checkbox-with-text": {
- name: "checkbox-with-text",
- description: "",
- type: "registry:example",
- registryDependencies: ["checkbox"],
- files: [{
- path: "registry/new-york/examples/checkbox-with-text.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/checkbox-with-text.tsx")),
- source: "",
- meta: undefined,
- },
- "collapsible-demo": {
- name: "collapsible-demo",
- description: "",
- type: "registry:example",
- registryDependencies: ["collapsible"],
- files: [{
- path: "registry/new-york/examples/collapsible-demo.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/collapsible-demo.tsx")),
- source: "",
- meta: undefined,
- },
- "combobox-demo": {
- name: "combobox-demo",
- description: "",
- type: "registry:example",
- registryDependencies: ["command"],
- files: [{
- path: "registry/new-york/examples/combobox-demo.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/combobox-demo.tsx")),
- source: "",
- meta: undefined,
- },
- "combobox-dropdown-menu": {
- name: "combobox-dropdown-menu",
- description: "",
- type: "registry:example",
- registryDependencies: ["command","dropdown-menu","button"],
- files: [{
- path: "registry/new-york/examples/combobox-dropdown-menu.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/combobox-dropdown-menu.tsx")),
- source: "",
- meta: undefined,
- },
- "combobox-form": {
- name: "combobox-form",
- description: "",
- type: "registry:example",
- registryDependencies: ["command","form"],
- files: [{
- path: "registry/new-york/examples/combobox-form.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/combobox-form.tsx")),
- source: "",
- meta: undefined,
- },
- "combobox-popover": {
- name: "combobox-popover",
- description: "",
- type: "registry:example",
- registryDependencies: ["combobox","popover"],
- files: [{
- path: "registry/new-york/examples/combobox-popover.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/combobox-popover.tsx")),
- source: "",
- meta: undefined,
- },
- "combobox-responsive": {
- name: "combobox-responsive",
- description: "",
- type: "registry:example",
- registryDependencies: ["combobox","popover","drawer"],
- files: [{
- path: "registry/new-york/examples/combobox-responsive.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/combobox-responsive.tsx")),
- source: "",
- meta: undefined,
- },
- "command-demo": {
- name: "command-demo",
- description: "",
- type: "registry:example",
- registryDependencies: ["command"],
- files: [{
- path: "registry/new-york/examples/command-demo.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/command-demo.tsx")),
- source: "",
- meta: undefined,
- },
- "command-dialog": {
- name: "command-dialog",
- description: "",
- type: "registry:example",
- registryDependencies: ["command","dialog"],
- files: [{
- path: "registry/new-york/examples/command-dialog.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/command-dialog.tsx")),
- source: "",
- meta: undefined,
- },
- "context-menu-demo": {
- name: "context-menu-demo",
- description: "",
- type: "registry:example",
- registryDependencies: ["context-menu"],
- files: [{
- path: "registry/new-york/examples/context-menu-demo.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/context-menu-demo.tsx")),
- source: "",
- meta: undefined,
- },
- "data-table-demo": {
- name: "data-table-demo",
- description: "",
- type: "registry:example",
- registryDependencies: ["data-table"],
- files: [{
- path: "registry/new-york/examples/data-table-demo.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/data-table-demo.tsx")),
- source: "",
- meta: undefined,
- },
- "date-picker-demo": {
- name: "date-picker-demo",
- description: "",
- type: "registry:example",
- registryDependencies: ["button","calendar","popover"],
- files: [{
- path: "registry/new-york/examples/date-picker-demo.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/date-picker-demo.tsx")),
- source: "",
- meta: undefined,
- },
- "date-picker-form": {
- name: "date-picker-form",
- description: "",
- type: "registry:example",
- registryDependencies: ["button","calendar","form","popover"],
- files: [{
- path: "registry/new-york/examples/date-picker-form.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/date-picker-form.tsx")),
- source: "",
- meta: undefined,
- },
- "date-picker-with-presets": {
- name: "date-picker-with-presets",
- description: "",
- type: "registry:example",
- registryDependencies: ["button","calendar","popover","select"],
- files: [{
- path: "registry/new-york/examples/date-picker-with-presets.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/date-picker-with-presets.tsx")),
- source: "",
- meta: undefined,
- },
- "date-picker-with-range": {
- name: "date-picker-with-range",
- description: "",
- type: "registry:example",
- registryDependencies: ["button","calendar","popover"],
- files: [{
- path: "registry/new-york/examples/date-picker-with-range.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/date-picker-with-range.tsx")),
- source: "",
- meta: undefined,
- },
- "dialog-demo": {
- name: "dialog-demo",
- description: "",
- type: "registry:example",
- registryDependencies: ["dialog"],
- files: [{
- path: "registry/new-york/examples/dialog-demo.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/dialog-demo.tsx")),
- source: "",
- meta: undefined,
- },
- "dialog-close-button": {
- name: "dialog-close-button",
- description: "",
- type: "registry:example",
- registryDependencies: ["dialog","button"],
- files: [{
- path: "registry/new-york/examples/dialog-close-button.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/dialog-close-button.tsx")),
- source: "",
- meta: undefined,
- },
- "drawer-demo": {
- name: "drawer-demo",
- description: "",
- type: "registry:example",
- registryDependencies: ["drawer"],
- files: [{
- path: "registry/new-york/examples/drawer-demo.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/drawer-demo.tsx")),
- source: "",
- meta: undefined,
- },
- "drawer-dialog": {
- name: "drawer-dialog",
- description: "",
- type: "registry:example",
- registryDependencies: ["drawer","dialog"],
- files: [{
- path: "registry/new-york/examples/drawer-dialog.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/drawer-dialog.tsx")),
- source: "",
- meta: undefined,
- },
- "dropdown-menu-demo": {
- name: "dropdown-menu-demo",
- description: "",
- type: "registry:example",
- registryDependencies: ["dropdown-menu"],
- files: [{
- path: "registry/new-york/examples/dropdown-menu-demo.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/dropdown-menu-demo.tsx")),
- source: "",
- meta: undefined,
- },
- "dropdown-menu-checkboxes": {
- name: "dropdown-menu-checkboxes",
- description: "",
- type: "registry:example",
- registryDependencies: ["dropdown-menu","checkbox"],
- files: [{
- path: "registry/new-york/examples/dropdown-menu-checkboxes.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/dropdown-menu-checkboxes.tsx")),
- source: "",
- meta: undefined,
- },
- "dropdown-menu-radio-group": {
- name: "dropdown-menu-radio-group",
- description: "",
- type: "registry:example",
- registryDependencies: ["dropdown-menu","radio-group"],
- files: [{
- path: "registry/new-york/examples/dropdown-menu-radio-group.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/dropdown-menu-radio-group.tsx")),
- source: "",
- meta: undefined,
- },
- "hover-card-demo": {
- name: "hover-card-demo",
- description: "",
- type: "registry:example",
- registryDependencies: ["hover-card"],
- files: [{
- path: "registry/new-york/examples/hover-card-demo.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/hover-card-demo.tsx")),
- source: "",
- meta: undefined,
- },
- "input-demo": {
- name: "input-demo",
- description: "",
- type: "registry:example",
- registryDependencies: ["input"],
- files: [{
- path: "registry/new-york/examples/input-demo.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/input-demo.tsx")),
- source: "",
- meta: undefined,
- },
- "input-disabled": {
- name: "input-disabled",
- description: "",
- type: "registry:example",
- registryDependencies: ["input"],
- files: [{
- path: "registry/new-york/examples/input-disabled.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/input-disabled.tsx")),
- source: "",
- meta: undefined,
- },
- "input-file": {
- name: "input-file",
- description: "",
- type: "registry:example",
- registryDependencies: ["input"],
- files: [{
- path: "registry/new-york/examples/input-file.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/input-file.tsx")),
- source: "",
- meta: undefined,
- },
- "input-form": {
- name: "input-form",
- description: "",
- type: "registry:example",
- registryDependencies: ["input","button","form"],
- files: [{
- path: "registry/new-york/examples/input-form.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/input-form.tsx")),
- source: "",
- meta: undefined,
- },
- "input-with-button": {
- name: "input-with-button",
- description: "",
- type: "registry:example",
- registryDependencies: ["input","button"],
- files: [{
- path: "registry/new-york/examples/input-with-button.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/input-with-button.tsx")),
- source: "",
- meta: undefined,
- },
- "input-with-label": {
- name: "input-with-label",
- description: "",
- type: "registry:example",
- registryDependencies: ["input","button","label"],
- files: [{
- path: "registry/new-york/examples/input-with-label.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/input-with-label.tsx")),
- source: "",
- meta: undefined,
- },
- "input-with-text": {
- name: "input-with-text",
- description: "",
- type: "registry:example",
- registryDependencies: ["input","button","label"],
- files: [{
- path: "registry/new-york/examples/input-with-text.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/input-with-text.tsx")),
- source: "",
- meta: undefined,
- },
- "input-otp-demo": {
- name: "input-otp-demo",
- description: "",
- type: "registry:example",
- registryDependencies: ["input-otp"],
- files: [{
- path: "registry/new-york/examples/input-otp-demo.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/input-otp-demo.tsx")),
- source: "",
- meta: undefined,
- },
- "input-otp-pattern": {
- name: "input-otp-pattern",
- description: "",
- type: "registry:example",
- registryDependencies: ["input-otp"],
- files: [{
- path: "registry/new-york/examples/input-otp-pattern.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/input-otp-pattern.tsx")),
- source: "",
- meta: undefined,
- },
- "input-otp-separator": {
- name: "input-otp-separator",
- description: "",
- type: "registry:example",
- registryDependencies: ["input-otp"],
- files: [{
- path: "registry/new-york/examples/input-otp-separator.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/input-otp-separator.tsx")),
- source: "",
- meta: undefined,
- },
- "input-otp-controlled": {
- name: "input-otp-controlled",
- description: "",
- type: "registry:example",
- registryDependencies: ["input-otp"],
- files: [{
- path: "registry/new-york/examples/input-otp-controlled.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/input-otp-controlled.tsx")),
- source: "",
- meta: undefined,
- },
- "input-otp-form": {
- name: "input-otp-form",
- description: "",
- type: "registry:example",
- registryDependencies: ["input-otp","form"],
- files: [{
- path: "registry/new-york/examples/input-otp-form.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/input-otp-form.tsx")),
- source: "",
- meta: undefined,
- },
- "label-demo": {
- name: "label-demo",
- description: "",
- type: "registry:example",
- registryDependencies: ["label"],
- files: [{
- path: "registry/new-york/examples/label-demo.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/label-demo.tsx")),
- source: "",
- meta: undefined,
- },
- "menubar-demo": {
- name: "menubar-demo",
- description: "",
- type: "registry:example",
- registryDependencies: ["menubar"],
- files: [{
- path: "registry/new-york/examples/menubar-demo.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/menubar-demo.tsx")),
- source: "",
- meta: undefined,
- },
- "navigation-menu-demo": {
- name: "navigation-menu-demo",
- description: "",
- type: "registry:example",
- registryDependencies: ["navigation-menu"],
- files: [{
- path: "registry/new-york/examples/navigation-menu-demo.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/navigation-menu-demo.tsx")),
- source: "",
- meta: undefined,
- },
- "pagination-demo": {
- name: "pagination-demo",
- description: "",
- type: "registry:example",
- registryDependencies: ["pagination"],
- files: [{
- path: "registry/new-york/examples/pagination-demo.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/pagination-demo.tsx")),
- source: "",
- meta: undefined,
- },
- "popover-demo": {
- name: "popover-demo",
- description: "",
- type: "registry:example",
- registryDependencies: ["popover"],
- files: [{
- path: "registry/new-york/examples/popover-demo.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/popover-demo.tsx")),
- source: "",
- meta: undefined,
- },
- "progress-demo": {
- name: "progress-demo",
- description: "",
- type: "registry:example",
- registryDependencies: ["progress"],
- files: [{
- path: "registry/new-york/examples/progress-demo.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/progress-demo.tsx")),
- source: "",
- meta: undefined,
- },
- "radio-group-demo": {
- name: "radio-group-demo",
- description: "",
- type: "registry:example",
- registryDependencies: ["radio-group"],
- files: [{
- path: "registry/new-york/examples/radio-group-demo.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/radio-group-demo.tsx")),
- source: "",
- meta: undefined,
- },
- "radio-group-form": {
- name: "radio-group-form",
- description: "",
- type: "registry:example",
- registryDependencies: ["radio-group","form"],
- files: [{
- path: "registry/new-york/examples/radio-group-form.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/radio-group-form.tsx")),
- source: "",
- meta: undefined,
- },
- "resizable-demo": {
- name: "resizable-demo",
- description: "",
- type: "registry:example",
- registryDependencies: ["resizable"],
- files: [{
- path: "registry/new-york/examples/resizable-demo.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/resizable-demo.tsx")),
- source: "",
- meta: undefined,
- },
- "resizable-demo-with-handle": {
- name: "resizable-demo-with-handle",
- description: "",
- type: "registry:example",
- registryDependencies: ["resizable"],
- files: [{
- path: "registry/new-york/examples/resizable-demo-with-handle.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/resizable-demo-with-handle.tsx")),
- source: "",
- meta: undefined,
- },
- "resizable-vertical": {
- name: "resizable-vertical",
- description: "",
- type: "registry:example",
- registryDependencies: ["resizable"],
- files: [{
- path: "registry/new-york/examples/resizable-vertical.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/resizable-vertical.tsx")),
- source: "",
- meta: undefined,
- },
- "resizable-handle": {
- name: "resizable-handle",
- description: "",
- type: "registry:example",
- registryDependencies: ["resizable"],
- files: [{
- path: "registry/new-york/examples/resizable-handle.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/resizable-handle.tsx")),
- source: "",
- meta: undefined,
- },
- "scroll-area-demo": {
- name: "scroll-area-demo",
- description: "",
- type: "registry:example",
- registryDependencies: ["scroll-area"],
- files: [{
- path: "registry/new-york/examples/scroll-area-demo.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/scroll-area-demo.tsx")),
- source: "",
- meta: undefined,
- },
- "scroll-area-horizontal-demo": {
- name: "scroll-area-horizontal-demo",
- description: "",
- type: "registry:example",
- registryDependencies: ["scroll-area"],
- files: [{
- path: "registry/new-york/examples/scroll-area-horizontal-demo.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/scroll-area-horizontal-demo.tsx")),
- source: "",
- meta: undefined,
- },
- "select-demo": {
- name: "select-demo",
- description: "",
- type: "registry:example",
- registryDependencies: ["select"],
- files: [{
- path: "registry/new-york/examples/select-demo.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/select-demo.tsx")),
- source: "",
- meta: undefined,
- },
- "select-scrollable": {
- name: "select-scrollable",
- description: "",
- type: "registry:example",
- registryDependencies: ["select"],
- files: [{
- path: "registry/new-york/examples/select-scrollable.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/select-scrollable.tsx")),
- source: "",
- meta: undefined,
- },
- "select-form": {
- name: "select-form",
- description: "",
- type: "registry:example",
- registryDependencies: ["select"],
- files: [{
- path: "registry/new-york/examples/select-form.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/select-form.tsx")),
- source: "",
- meta: undefined,
- },
- "separator-demo": {
- name: "separator-demo",
- description: "",
- type: "registry:example",
- registryDependencies: ["separator"],
- files: [{
- path: "registry/new-york/examples/separator-demo.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/separator-demo.tsx")),
- source: "",
- meta: undefined,
- },
- "sheet-demo": {
- name: "sheet-demo",
- description: "",
- type: "registry:example",
- registryDependencies: ["sheet"],
- files: [{
- path: "registry/new-york/examples/sheet-demo.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/sheet-demo.tsx")),
- source: "",
- meta: undefined,
- },
- "sheet-side": {
- name: "sheet-side",
- description: "",
- type: "registry:example",
- registryDependencies: ["sheet"],
- files: [{
- path: "registry/new-york/examples/sheet-side.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/sheet-side.tsx")),
- source: "",
- meta: undefined,
- },
- "skeleton-demo": {
- name: "skeleton-demo",
- description: "",
- type: "registry:example",
- registryDependencies: ["skeleton"],
- files: [{
- path: "registry/new-york/examples/skeleton-demo.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/skeleton-demo.tsx")),
- source: "",
- meta: undefined,
- },
- "skeleton-card": {
- name: "skeleton-card",
- description: "",
- type: "registry:example",
- registryDependencies: ["skeleton"],
- files: [{
- path: "registry/new-york/examples/skeleton-card.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/skeleton-card.tsx")),
- source: "",
- meta: undefined,
- },
- "slider-demo": {
- name: "slider-demo",
- description: "",
- type: "registry:example",
- registryDependencies: ["slider"],
- files: [{
- path: "registry/new-york/examples/slider-demo.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/slider-demo.tsx")),
- source: "",
- meta: undefined,
- },
- "sonner-demo": {
- name: "sonner-demo",
- description: "",
- type: "registry:example",
- registryDependencies: ["sonner"],
- files: [{
- path: "registry/new-york/examples/sonner-demo.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/sonner-demo.tsx")),
- source: "",
- meta: undefined,
- },
- "switch-demo": {
- name: "switch-demo",
- description: "",
- type: "registry:example",
- registryDependencies: ["switch"],
- files: [{
- path: "registry/new-york/examples/switch-demo.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/switch-demo.tsx")),
- source: "",
- meta: undefined,
- },
- "switch-form": {
- name: "switch-form",
- description: "",
- type: "registry:example",
- registryDependencies: ["switch","form"],
- files: [{
- path: "registry/new-york/examples/switch-form.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/switch-form.tsx")),
- source: "",
- meta: undefined,
- },
- "table-demo": {
- name: "table-demo",
- description: "",
- type: "registry:example",
- registryDependencies: ["table"],
- files: [{
- path: "registry/new-york/examples/table-demo.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/table-demo.tsx")),
- source: "",
- meta: undefined,
- },
- "tabs-demo": {
- name: "tabs-demo",
- description: "",
- type: "registry:example",
- registryDependencies: ["tabs"],
- files: [{
- path: "registry/new-york/examples/tabs-demo.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/tabs-demo.tsx")),
- source: "",
- meta: undefined,
- },
- "textarea-demo": {
- name: "textarea-demo",
- description: "",
- type: "registry:example",
- registryDependencies: ["textarea"],
- files: [{
- path: "registry/new-york/examples/textarea-demo.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/textarea-demo.tsx")),
- source: "",
- meta: undefined,
- },
- "textarea-disabled": {
- name: "textarea-disabled",
- description: "",
- type: "registry:example",
- registryDependencies: ["textarea"],
- files: [{
- path: "registry/new-york/examples/textarea-disabled.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/textarea-disabled.tsx")),
- source: "",
- meta: undefined,
- },
- "textarea-form": {
- name: "textarea-form",
- description: "",
- type: "registry:example",
- registryDependencies: ["textarea","form"],
- files: [{
- path: "registry/new-york/examples/textarea-form.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/textarea-form.tsx")),
- source: "",
- meta: undefined,
- },
- "textarea-with-button": {
- name: "textarea-with-button",
- description: "",
- type: "registry:example",
- registryDependencies: ["textarea","button"],
- files: [{
- path: "registry/new-york/examples/textarea-with-button.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/textarea-with-button.tsx")),
- source: "",
- meta: undefined,
- },
- "textarea-with-label": {
- name: "textarea-with-label",
- description: "",
- type: "registry:example",
- registryDependencies: ["textarea","label"],
- files: [{
- path: "registry/new-york/examples/textarea-with-label.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/textarea-with-label.tsx")),
- source: "",
- meta: undefined,
- },
- "textarea-with-text": {
- name: "textarea-with-text",
- description: "",
- type: "registry:example",
- registryDependencies: ["textarea","label"],
- files: [{
- path: "registry/new-york/examples/textarea-with-text.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/textarea-with-text.tsx")),
- source: "",
- meta: undefined,
- },
- "toast-demo": {
- name: "toast-demo",
- description: "",
- type: "registry:example",
- registryDependencies: ["toast"],
- files: [{
- path: "registry/new-york/examples/toast-demo.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/toast-demo.tsx")),
- source: "",
- meta: undefined,
- },
- "toast-destructive": {
- name: "toast-destructive",
- description: "",
- type: "registry:example",
- registryDependencies: ["toast"],
- files: [{
- path: "registry/new-york/examples/toast-destructive.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/toast-destructive.tsx")),
- source: "",
- meta: undefined,
- },
- "toast-simple": {
- name: "toast-simple",
- description: "",
- type: "registry:example",
- registryDependencies: ["toast"],
- files: [{
- path: "registry/new-york/examples/toast-simple.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/toast-simple.tsx")),
- source: "",
- meta: undefined,
- },
- "toast-with-action": {
- name: "toast-with-action",
- description: "",
- type: "registry:example",
- registryDependencies: ["toast"],
- files: [{
- path: "registry/new-york/examples/toast-with-action.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/toast-with-action.tsx")),
- source: "",
- meta: undefined,
- },
- "toast-with-title": {
- name: "toast-with-title",
- description: "",
- type: "registry:example",
- registryDependencies: ["toast"],
- files: [{
- path: "registry/new-york/examples/toast-with-title.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/toast-with-title.tsx")),
- source: "",
- meta: undefined,
- },
- "toggle-group-demo": {
- name: "toggle-group-demo",
- description: "",
- type: "registry:example",
- registryDependencies: ["toggle-group"],
- files: [{
- path: "registry/new-york/examples/toggle-group-demo.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/toggle-group-demo.tsx")),
- source: "",
- meta: undefined,
- },
- "toggle-group-disabled": {
- name: "toggle-group-disabled",
- description: "",
- type: "registry:example",
- registryDependencies: ["toggle-group"],
- files: [{
- path: "registry/new-york/examples/toggle-group-disabled.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/toggle-group-disabled.tsx")),
- source: "",
- meta: undefined,
- },
- "toggle-group-lg": {
- name: "toggle-group-lg",
- description: "",
- type: "registry:example",
- registryDependencies: ["toggle-group"],
- files: [{
- path: "registry/new-york/examples/toggle-group-lg.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/toggle-group-lg.tsx")),
- source: "",
- meta: undefined,
- },
- "toggle-group-outline": {
- name: "toggle-group-outline",
- description: "",
- type: "registry:example",
- registryDependencies: ["toggle-group"],
- files: [{
- path: "registry/new-york/examples/toggle-group-outline.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/toggle-group-outline.tsx")),
- source: "",
- meta: undefined,
- },
- "toggle-group-sm": {
- name: "toggle-group-sm",
- description: "",
- type: "registry:example",
- registryDependencies: ["toggle-group"],
- files: [{
- path: "registry/new-york/examples/toggle-group-sm.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/toggle-group-sm.tsx")),
- source: "",
- meta: undefined,
- },
- "toggle-group-single": {
- name: "toggle-group-single",
- description: "",
- type: "registry:example",
- registryDependencies: ["toggle-group"],
- files: [{
- path: "registry/new-york/examples/toggle-group-single.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/toggle-group-single.tsx")),
- source: "",
- meta: undefined,
- },
- "toggle-demo": {
- name: "toggle-demo",
- description: "",
- type: "registry:example",
- registryDependencies: ["toggle"],
- files: [{
- path: "registry/new-york/examples/toggle-demo.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/toggle-demo.tsx")),
- source: "",
- meta: undefined,
- },
- "toggle-disabled": {
- name: "toggle-disabled",
- description: "",
- type: "registry:example",
- registryDependencies: ["toggle"],
- files: [{
- path: "registry/new-york/examples/toggle-disabled.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/toggle-disabled.tsx")),
- source: "",
- meta: undefined,
- },
- "toggle-lg": {
- name: "toggle-lg",
- description: "",
- type: "registry:example",
- registryDependencies: ["toggle"],
- files: [{
- path: "registry/new-york/examples/toggle-lg.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/toggle-lg.tsx")),
- source: "",
- meta: undefined,
- },
- "toggle-outline": {
- name: "toggle-outline",
- description: "",
- type: "registry:example",
- registryDependencies: ["toggle"],
- files: [{
- path: "registry/new-york/examples/toggle-outline.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/toggle-outline.tsx")),
- source: "",
- meta: undefined,
- },
- "toggle-sm": {
- name: "toggle-sm",
- description: "",
- type: "registry:example",
- registryDependencies: ["toggle"],
- files: [{
- path: "registry/new-york/examples/toggle-sm.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/toggle-sm.tsx")),
- source: "",
- meta: undefined,
- },
- "toggle-with-text": {
- name: "toggle-with-text",
- description: "",
- type: "registry:example",
- registryDependencies: ["toggle"],
- files: [{
- path: "registry/new-york/examples/toggle-with-text.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/toggle-with-text.tsx")),
- source: "",
- meta: undefined,
- },
- "tooltip-demo": {
- name: "tooltip-demo",
- description: "",
- type: "registry:example",
- registryDependencies: ["tooltip"],
- files: [{
- path: "registry/new-york/examples/tooltip-demo.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/tooltip-demo.tsx")),
- source: "",
- meta: undefined,
- },
- "typography-blockquote": {
- name: "typography-blockquote",
- description: "",
- type: "registry:example",
- registryDependencies: undefined,
- files: [{
- path: "registry/new-york/examples/typography-blockquote.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/typography-blockquote.tsx")),
- source: "",
- meta: undefined,
- },
- "typography-demo": {
- name: "typography-demo",
- description: "",
- type: "registry:example",
- registryDependencies: undefined,
- files: [{
- path: "registry/new-york/examples/typography-demo.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/typography-demo.tsx")),
- source: "",
- meta: undefined,
- },
- "typography-h1": {
- name: "typography-h1",
- description: "",
- type: "registry:example",
- registryDependencies: undefined,
- files: [{
- path: "registry/new-york/examples/typography-h1.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/typography-h1.tsx")),
- source: "",
- meta: undefined,
- },
- "typography-h2": {
- name: "typography-h2",
- description: "",
- type: "registry:example",
- registryDependencies: undefined,
- files: [{
- path: "registry/new-york/examples/typography-h2.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/typography-h2.tsx")),
- source: "",
- meta: undefined,
- },
- "typography-h3": {
- name: "typography-h3",
- description: "",
- type: "registry:example",
- registryDependencies: undefined,
- files: [{
- path: "registry/new-york/examples/typography-h3.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/typography-h3.tsx")),
- source: "",
- meta: undefined,
- },
- "typography-h4": {
- name: "typography-h4",
- description: "",
- type: "registry:example",
- registryDependencies: undefined,
- files: [{
- path: "registry/new-york/examples/typography-h4.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/typography-h4.tsx")),
- source: "",
- meta: undefined,
- },
- "typography-inline-code": {
- name: "typography-inline-code",
- description: "",
- type: "registry:example",
- registryDependencies: undefined,
- files: [{
- path: "registry/new-york/examples/typography-inline-code.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/typography-inline-code.tsx")),
- source: "",
- meta: undefined,
- },
- "typography-large": {
- name: "typography-large",
- description: "",
- type: "registry:example",
- registryDependencies: undefined,
- files: [{
- path: "registry/new-york/examples/typography-large.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/typography-large.tsx")),
- source: "",
- meta: undefined,
- },
- "typography-lead": {
- name: "typography-lead",
- description: "",
- type: "registry:example",
- registryDependencies: undefined,
- files: [{
- path: "registry/new-york/examples/typography-lead.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/typography-lead.tsx")),
- source: "",
- meta: undefined,
- },
- "typography-list": {
- name: "typography-list",
- description: "",
- type: "registry:example",
- registryDependencies: undefined,
- files: [{
- path: "registry/new-york/examples/typography-list.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/typography-list.tsx")),
- source: "",
- meta: undefined,
- },
- "typography-muted": {
- name: "typography-muted",
- description: "",
- type: "registry:example",
- registryDependencies: undefined,
- files: [{
- path: "registry/new-york/examples/typography-muted.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/typography-muted.tsx")),
- source: "",
- meta: undefined,
- },
- "typography-p": {
- name: "typography-p",
- description: "",
- type: "registry:example",
- registryDependencies: undefined,
- files: [{
- path: "registry/new-york/examples/typography-p.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/typography-p.tsx")),
- source: "",
- meta: undefined,
- },
- "typography-small": {
- name: "typography-small",
- description: "",
- type: "registry:example",
- registryDependencies: undefined,
- files: [{
- path: "registry/new-york/examples/typography-small.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/typography-small.tsx")),
- source: "",
- meta: undefined,
- },
- "typography-table": {
- name: "typography-table",
- description: "",
- type: "registry:example",
- registryDependencies: undefined,
- files: [{
- path: "registry/new-york/examples/typography-table.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/typography-table.tsx")),
- source: "",
- meta: undefined,
- },
- "mode-toggle": {
- name: "mode-toggle",
- description: "",
- type: "registry:example",
- registryDependencies: undefined,
- files: [{
- path: "registry/new-york/examples/mode-toggle.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/mode-toggle.tsx")),
- source: "",
- meta: undefined,
- },
- "chart-bar-demo": {
- name: "chart-bar-demo",
- description: "",
- type: "registry:example",
- registryDependencies: undefined,
- files: [{
- path: "registry/new-york/examples/chart-bar-demo.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/chart-bar-demo.tsx")),
- source: "",
- meta: undefined,
- },
- "chart-bar-demo-grid": {
- name: "chart-bar-demo-grid",
- description: "",
- type: "registry:example",
- registryDependencies: undefined,
- files: [{
- path: "registry/new-york/examples/chart-bar-demo-grid.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/chart-bar-demo-grid.tsx")),
- source: "",
- meta: undefined,
- },
- "chart-bar-demo-axis": {
- name: "chart-bar-demo-axis",
- description: "",
- type: "registry:example",
- registryDependencies: undefined,
- files: [{
- path: "registry/new-york/examples/chart-bar-demo-axis.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/chart-bar-demo-axis.tsx")),
- source: "",
- meta: undefined,
- },
- "chart-bar-demo-tooltip": {
- name: "chart-bar-demo-tooltip",
- description: "",
- type: "registry:example",
- registryDependencies: undefined,
- files: [{
- path: "registry/new-york/examples/chart-bar-demo-tooltip.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/chart-bar-demo-tooltip.tsx")),
- source: "",
- meta: undefined,
- },
- "chart-bar-demo-legend": {
- name: "chart-bar-demo-legend",
- description: "",
- type: "registry:example",
- registryDependencies: undefined,
- files: [{
- path: "registry/new-york/examples/chart-bar-demo-legend.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/chart-bar-demo-legend.tsx")),
- source: "",
- meta: undefined,
- },
- "chart-tooltip-demo": {
- name: "chart-tooltip-demo",
- description: "",
- type: "registry:example",
- registryDependencies: undefined,
- files: [{
- path: "registry/new-york/examples/chart-tooltip-demo.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/new-york/examples/chart-tooltip-demo.tsx")),
- source: "",
- meta: undefined,
- },
- }, "default": {
- "index": {
- name: "index",
- description: "",
- type: "registry:style",
- registryDependencies: ["utils"],
- files: [],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/style/index")),
- source: "",
- meta: undefined,
- },
- "style": {
- name: "style",
- description: "",
- type: "registry:style",
- registryDependencies: ["utils"],
- files: [],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/style/style")),
- source: "",
- meta: undefined,
- },
- "accordion": {
- name: "accordion",
- description: "",
- type: "registry:ui",
- registryDependencies: undefined,
- files: [{
- path: "registry/default/ui/accordion.tsx",
- type: "registry:ui",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/ui/accordion.tsx")),
- source: "",
- meta: undefined,
- },
- "alert": {
- name: "alert",
- description: "",
- type: "registry:ui",
- registryDependencies: undefined,
- files: [{
- path: "registry/default/ui/alert.tsx",
- type: "registry:ui",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/ui/alert.tsx")),
- source: "",
- meta: undefined,
- },
- "alert-dialog": {
- name: "alert-dialog",
- description: "",
- type: "registry:ui",
- registryDependencies: ["button"],
- files: [{
- path: "registry/default/ui/alert-dialog.tsx",
- type: "registry:ui",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/ui/alert-dialog.tsx")),
- source: "",
- meta: undefined,
- },
- "aspect-ratio": {
- name: "aspect-ratio",
- description: "",
- type: "registry:ui",
- registryDependencies: undefined,
- files: [{
- path: "registry/default/ui/aspect-ratio.tsx",
- type: "registry:ui",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/ui/aspect-ratio.tsx")),
- source: "",
- meta: undefined,
- },
- "avatar": {
- name: "avatar",
- description: "",
- type: "registry:ui",
- registryDependencies: undefined,
- files: [{
- path: "registry/default/ui/avatar.tsx",
- type: "registry:ui",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/ui/avatar.tsx")),
- source: "",
- meta: undefined,
- },
- "badge": {
- name: "badge",
- description: "",
- type: "registry:ui",
- registryDependencies: undefined,
- files: [{
- path: "registry/default/ui/badge.tsx",
- type: "registry:ui",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/ui/badge.tsx")),
- source: "",
- meta: undefined,
- },
- "breadcrumb": {
- name: "breadcrumb",
- description: "",
- type: "registry:ui",
- registryDependencies: undefined,
- files: [{
- path: "registry/default/ui/breadcrumb.tsx",
- type: "registry:ui",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/ui/breadcrumb.tsx")),
- source: "",
- meta: undefined,
- },
- "button": {
- name: "button",
- description: "",
- type: "registry:ui",
- registryDependencies: undefined,
- files: [{
- path: "registry/default/ui/button.tsx",
- type: "registry:ui",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/ui/button.tsx")),
- source: "",
- meta: undefined,
- },
- "button-group": {
- name: "button-group",
- description: "",
- type: "registry:ui",
- registryDependencies: ["button","separator"],
- files: [{
- path: "registry/default/ui/button-group.tsx",
- type: "registry:ui",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/ui/button-group.tsx")),
- source: "",
- meta: undefined,
- },
- "calendar": {
- name: "calendar",
- description: "",
- type: "registry:ui",
- registryDependencies: ["button"],
- files: [{
- path: "registry/default/ui/calendar.tsx",
- type: "registry:ui",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/ui/calendar.tsx")),
- source: "",
- meta: undefined,
- },
- "card": {
- name: "card",
- description: "",
- type: "registry:ui",
- registryDependencies: undefined,
- files: [{
- path: "registry/default/ui/card.tsx",
- type: "registry:ui",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/ui/card.tsx")),
- source: "",
- meta: undefined,
- },
- "carousel": {
- name: "carousel",
- description: "",
- type: "registry:ui",
- registryDependencies: ["button"],
- files: [{
- path: "registry/default/ui/carousel.tsx",
- type: "registry:ui",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/ui/carousel.tsx")),
- source: "",
- meta: undefined,
- },
- "chart": {
- name: "chart",
- description: "",
- type: "registry:ui",
- registryDependencies: ["card"],
- files: [{
- path: "registry/default/ui/chart.tsx",
- type: "registry:ui",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/ui/chart.tsx")),
- source: "",
- meta: undefined,
- },
- "checkbox": {
- name: "checkbox",
- description: "",
- type: "registry:ui",
- registryDependencies: undefined,
- files: [{
- path: "registry/default/ui/checkbox.tsx",
- type: "registry:ui",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/ui/checkbox.tsx")),
- source: "",
- meta: undefined,
- },
- "collapsible": {
- name: "collapsible",
- description: "",
- type: "registry:ui",
- registryDependencies: undefined,
- files: [{
- path: "registry/default/ui/collapsible.tsx",
- type: "registry:ui",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/ui/collapsible.tsx")),
- source: "",
- meta: undefined,
- },
- "command": {
- name: "command",
- description: "",
- type: "registry:ui",
- registryDependencies: ["dialog"],
- files: [{
- path: "registry/default/ui/command.tsx",
- type: "registry:ui",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/ui/command.tsx")),
- source: "",
- meta: undefined,
- },
- "context-menu": {
- name: "context-menu",
- description: "",
- type: "registry:ui",
- registryDependencies: undefined,
- files: [{
- path: "registry/default/ui/context-menu.tsx",
- type: "registry:ui",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/ui/context-menu.tsx")),
- source: "",
- meta: undefined,
- },
- "dialog": {
- name: "dialog",
- description: "",
- type: "registry:ui",
- registryDependencies: undefined,
- files: [{
- path: "registry/default/ui/dialog.tsx",
- type: "registry:ui",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/ui/dialog.tsx")),
- source: "",
- meta: undefined,
- },
- "drawer": {
- name: "drawer",
- description: "",
- type: "registry:ui",
- registryDependencies: undefined,
- files: [{
- path: "registry/default/ui/drawer.tsx",
- type: "registry:ui",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/ui/drawer.tsx")),
- source: "",
- meta: undefined,
- },
- "dropdown-menu": {
- name: "dropdown-menu",
- description: "",
- type: "registry:ui",
- registryDependencies: undefined,
- files: [{
- path: "registry/default/ui/dropdown-menu.tsx",
- type: "registry:ui",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/ui/dropdown-menu.tsx")),
- source: "",
- meta: undefined,
- },
- "empty": {
- name: "empty",
- description: "",
- type: "registry:ui",
- registryDependencies: undefined,
- files: [{
- path: "registry/default/ui/empty.tsx",
- type: "registry:ui",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/ui/empty.tsx")),
- source: "",
- meta: undefined,
- },
- "field": {
- name: "field",
- description: "",
- type: "registry:ui",
- registryDependencies: ["label","separator"],
- files: [{
- path: "registry/default/ui/field.tsx",
- type: "registry:ui",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/ui/field.tsx")),
- source: "",
- meta: undefined,
- },
- "form": {
- name: "form",
- description: "",
- type: "registry:ui",
- registryDependencies: ["button","label"],
- files: [{
- path: "registry/default/ui/form.tsx",
- type: "registry:ui",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/ui/form.tsx")),
- source: "",
- meta: undefined,
- },
- "hover-card": {
- name: "hover-card",
- description: "",
- type: "registry:ui",
- registryDependencies: undefined,
- files: [{
- path: "registry/default/ui/hover-card.tsx",
- type: "registry:ui",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/ui/hover-card.tsx")),
- source: "",
- meta: undefined,
- },
- "input": {
- name: "input",
- description: "",
- type: "registry:ui",
- registryDependencies: undefined,
- files: [{
- path: "registry/default/ui/input.tsx",
- type: "registry:ui",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/ui/input.tsx")),
- source: "",
- meta: undefined,
- },
- "input-group": {
- name: "input-group",
- description: "",
- type: "registry:ui",
- registryDependencies: ["button","input","textarea"],
- files: [{
- path: "registry/default/ui/input-group.tsx",
- type: "registry:ui",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/ui/input-group.tsx")),
- source: "",
- meta: undefined,
- },
- "input-otp": {
- name: "input-otp",
- description: "",
- type: "registry:ui",
- registryDependencies: undefined,
- files: [{
- path: "registry/default/ui/input-otp.tsx",
- type: "registry:ui",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/ui/input-otp.tsx")),
- source: "",
- meta: undefined,
- },
- "item": {
- name: "item",
- description: "",
- type: "registry:ui",
- registryDependencies: ["separator"],
- files: [{
- path: "registry/default/ui/item.tsx",
- type: "registry:ui",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/ui/item.tsx")),
- source: "",
- meta: undefined,
- },
- "kbd": {
- name: "kbd",
- description: "",
- type: "registry:ui",
- registryDependencies: undefined,
- files: [{
- path: "registry/default/ui/kbd.tsx",
- type: "registry:ui",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/ui/kbd.tsx")),
- source: "",
- meta: undefined,
- },
- "label": {
- name: "label",
- description: "",
- type: "registry:ui",
- registryDependencies: undefined,
- files: [{
- path: "registry/default/ui/label.tsx",
- type: "registry:ui",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/ui/label.tsx")),
- source: "",
- meta: undefined,
- },
- "menubar": {
- name: "menubar",
- description: "",
- type: "registry:ui",
- registryDependencies: undefined,
- files: [{
- path: "registry/default/ui/menubar.tsx",
- type: "registry:ui",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/ui/menubar.tsx")),
- source: "",
- meta: undefined,
- },
- "navigation-menu": {
- name: "navigation-menu",
- description: "",
- type: "registry:ui",
- registryDependencies: undefined,
- files: [{
- path: "registry/default/ui/navigation-menu.tsx",
- type: "registry:ui",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/ui/navigation-menu.tsx")),
- source: "",
- meta: undefined,
- },
- "pagination": {
- name: "pagination",
- description: "",
- type: "registry:ui",
- registryDependencies: ["button"],
- files: [{
- path: "registry/default/ui/pagination.tsx",
- type: "registry:ui",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/ui/pagination.tsx")),
- source: "",
- meta: undefined,
- },
- "popover": {
- name: "popover",
- description: "",
- type: "registry:ui",
- registryDependencies: undefined,
- files: [{
- path: "registry/default/ui/popover.tsx",
- type: "registry:ui",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/ui/popover.tsx")),
- source: "",
- meta: undefined,
- },
- "progress": {
- name: "progress",
- description: "",
- type: "registry:ui",
- registryDependencies: undefined,
- files: [{
- path: "registry/default/ui/progress.tsx",
- type: "registry:ui",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/ui/progress.tsx")),
- source: "",
- meta: undefined,
- },
- "radio-group": {
- name: "radio-group",
- description: "",
- type: "registry:ui",
- registryDependencies: undefined,
- files: [{
- path: "registry/default/ui/radio-group.tsx",
- type: "registry:ui",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/ui/radio-group.tsx")),
- source: "",
- meta: undefined,
- },
- "resizable": {
- name: "resizable",
- description: "",
- type: "registry:ui",
- registryDependencies: undefined,
- files: [{
- path: "registry/default/ui/resizable.tsx",
- type: "registry:ui",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/ui/resizable.tsx")),
- source: "",
- meta: undefined,
- },
- "scroll-area": {
- name: "scroll-area",
- description: "",
- type: "registry:ui",
- registryDependencies: undefined,
- files: [{
- path: "registry/default/ui/scroll-area.tsx",
- type: "registry:ui",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/ui/scroll-area.tsx")),
- source: "",
- meta: undefined,
- },
- "select": {
- name: "select",
- description: "",
- type: "registry:ui",
- registryDependencies: undefined,
- files: [{
- path: "registry/default/ui/select.tsx",
- type: "registry:ui",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/ui/select.tsx")),
- source: "",
- meta: undefined,
- },
- "separator": {
- name: "separator",
- description: "",
- type: "registry:ui",
- registryDependencies: undefined,
- files: [{
- path: "registry/default/ui/separator.tsx",
- type: "registry:ui",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/ui/separator.tsx")),
- source: "",
- meta: undefined,
- },
- "sheet": {
- name: "sheet",
- description: "",
- type: "registry:ui",
- registryDependencies: undefined,
- files: [{
- path: "registry/default/ui/sheet.tsx",
- type: "registry:ui",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/ui/sheet.tsx")),
- source: "",
- meta: undefined,
- },
- "sidebar": {
- name: "sidebar",
- description: "",
- type: "registry:ui",
- registryDependencies: ["button","separator","sheet","tooltip","input","use-mobile","skeleton"],
- files: [{
- path: "registry/default/ui/sidebar.tsx",
- type: "registry:ui",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/ui/sidebar.tsx")),
- source: "",
- meta: undefined,
- },
- "skeleton": {
- name: "skeleton",
- description: "",
- type: "registry:ui",
- registryDependencies: undefined,
- files: [{
- path: "registry/default/ui/skeleton.tsx",
- type: "registry:ui",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/ui/skeleton.tsx")),
- source: "",
- meta: undefined,
- },
- "slider": {
- name: "slider",
- description: "",
- type: "registry:ui",
- registryDependencies: undefined,
- files: [{
- path: "registry/default/ui/slider.tsx",
- type: "registry:ui",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/ui/slider.tsx")),
- source: "",
- meta: undefined,
- },
- "sonner": {
- name: "sonner",
- description: "",
- type: "registry:ui",
- registryDependencies: undefined,
- files: [{
- path: "registry/default/ui/sonner.tsx",
- type: "registry:ui",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/ui/sonner.tsx")),
- source: "",
- meta: undefined,
- },
- "spinner": {
- name: "spinner",
- description: "",
- type: "registry:ui",
- registryDependencies: undefined,
- files: [{
- path: "registry/default/ui/spinner.tsx",
- type: "registry:ui",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/ui/spinner.tsx")),
- source: "",
- meta: undefined,
- },
- "switch": {
- name: "switch",
- description: "",
- type: "registry:ui",
- registryDependencies: undefined,
- files: [{
- path: "registry/default/ui/switch.tsx",
- type: "registry:ui",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/ui/switch.tsx")),
- source: "",
- meta: undefined,
- },
- "table": {
- name: "table",
- description: "",
- type: "registry:ui",
- registryDependencies: undefined,
- files: [{
- path: "registry/default/ui/table.tsx",
- type: "registry:ui",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/ui/table.tsx")),
- source: "",
- meta: undefined,
- },
- "tabs": {
- name: "tabs",
- description: "",
- type: "registry:ui",
- registryDependencies: undefined,
- files: [{
- path: "registry/default/ui/tabs.tsx",
- type: "registry:ui",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/ui/tabs.tsx")),
- source: "",
- meta: undefined,
- },
- "textarea": {
- name: "textarea",
- description: "",
- type: "registry:ui",
- registryDependencies: undefined,
- files: [{
- path: "registry/default/ui/textarea.tsx",
- type: "registry:ui",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/ui/textarea.tsx")),
- source: "",
- meta: undefined,
- },
- "toast": {
- name: "toast",
- description: "",
- type: "registry:ui",
- registryDependencies: undefined,
- files: [{
- path: "registry/default/ui/toast.tsx",
- type: "registry:ui",
- target: ""
- },{
- path: "registry/default/hooks/use-toast.ts",
- type: "registry:hook",
- target: ""
- },{
- path: "registry/default/ui/toaster.tsx",
- type: "registry:ui",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/ui/toast.tsx")),
- source: "",
- meta: undefined,
- },
- "toggle": {
- name: "toggle",
- description: "",
- type: "registry:ui",
- registryDependencies: undefined,
- files: [{
- path: "registry/default/ui/toggle.tsx",
- type: "registry:ui",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/ui/toggle.tsx")),
- source: "",
- meta: undefined,
- },
- "toggle-group": {
- name: "toggle-group",
- description: "",
- type: "registry:ui",
- registryDependencies: ["toggle"],
- files: [{
- path: "registry/default/ui/toggle-group.tsx",
- type: "registry:ui",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/ui/toggle-group.tsx")),
- source: "",
- meta: undefined,
- },
- "tooltip": {
- name: "tooltip",
- description: "",
- type: "registry:ui",
- registryDependencies: undefined,
- files: [{
- path: "registry/default/ui/tooltip.tsx",
- type: "registry:ui",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/ui/tooltip.tsx")),
- source: "",
- meta: undefined,
- },
- "dashboard-01": {
- name: "dashboard-01",
- description: "A dashboard with sidebar, charts and data table.",
- type: "registry:block",
- registryDependencies: ["sidebar","breadcrumb","separator","label","chart","card","select","tabs","table","toggle-group","badge","button","checkbox","dropdown-menu","drawer","input","avatar","sheet","sonner"],
- files: [{
- path: "registry/default/blocks/dashboard-01/page.tsx",
- type: "registry:page",
- target: "app/dashboard/page.tsx"
- },{
- path: "registry/default/blocks/dashboard-01/data.json",
- type: "registry:file",
- target: "app/dashboard/data.json"
- },{
- path: "registry/default/blocks/dashboard-01/components/app-sidebar.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/default/blocks/dashboard-01/components/chart-area-interactive.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/default/blocks/dashboard-01/components/data-table.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/default/blocks/dashboard-01/components/nav-documents.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/default/blocks/dashboard-01/components/nav-main.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/default/blocks/dashboard-01/components/nav-secondary.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/default/blocks/dashboard-01/components/nav-user.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/default/blocks/dashboard-01/components/section-cards.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/default/blocks/dashboard-01/components/site-header.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: ["dashboard"],
- component: React.lazy(() => import("@/registry/default/blocks/dashboard-01/page.tsx")),
- source: "__registry__/default/blocks/dashboard-01/page.tsx",
- meta: undefined,
- },
- "sidebar-01": {
- name: "sidebar-01",
- description: "A simple sidebar with navigation grouped by section.",
- type: "registry:block",
- registryDependencies: ["sidebar","breadcrumb","separator","label","dropdown-menu"],
- files: [{
- path: "registry/default/blocks/sidebar-01/page.tsx",
- type: "registry:page",
- target: "app/dashboard/page.tsx"
- },{
- path: "registry/default/blocks/sidebar-01/components/app-sidebar.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/default/blocks/sidebar-01/components/search-form.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/default/blocks/sidebar-01/components/version-switcher.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: ["sidebar","dashboard"],
- component: React.lazy(() => import("@/registry/default/blocks/sidebar-01/page.tsx")),
- source: "__registry__/default/blocks/sidebar-01/page.tsx",
- meta: undefined,
- },
- "sidebar-02": {
- name: "sidebar-02",
- description: "A sidebar with collapsible sections.",
- type: "registry:block",
- registryDependencies: ["sidebar","breadcrumb","separator","label","dropdown-menu"],
- files: [{
- path: "registry/default/blocks/sidebar-02/page.tsx",
- type: "registry:page",
- target: "app/dashboard/page.tsx"
- },{
- path: "registry/default/blocks/sidebar-02/components/app-sidebar.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/default/blocks/sidebar-02/components/search-form.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/default/blocks/sidebar-02/components/version-switcher.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: ["sidebar","dashboard"],
- component: React.lazy(() => import("@/registry/default/blocks/sidebar-02/page.tsx")),
- source: "__registry__/default/blocks/sidebar-02/page.tsx",
- meta: undefined,
- },
- "sidebar-03": {
- name: "sidebar-03",
- description: "A sidebar with submenus.",
- type: "registry:block",
- registryDependencies: ["sidebar","breadcrumb"],
- files: [{
- path: "registry/default/blocks/sidebar-03/page.tsx",
- type: "registry:page",
- target: "app/dashboard/page.tsx"
- },{
- path: "registry/default/blocks/sidebar-03/components/app-sidebar.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: ["sidebar","dashboard"],
- component: React.lazy(() => import("@/registry/default/blocks/sidebar-03/page.tsx")),
- source: "__registry__/default/blocks/sidebar-03/page.tsx",
- meta: undefined,
- },
- "sidebar-04": {
- name: "sidebar-04",
- description: "A floating sidebar with submenus.",
- type: "registry:block",
- registryDependencies: ["sidebar","breadcrumb","separator"],
- files: [{
- path: "registry/default/blocks/sidebar-04/page.tsx",
- type: "registry:page",
- target: "app/dashboard/page.tsx"
- },{
- path: "registry/default/blocks/sidebar-04/components/app-sidebar.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: ["sidebar","dashboard"],
- component: React.lazy(() => import("@/registry/default/blocks/sidebar-04/page.tsx")),
- source: "__registry__/default/blocks/sidebar-04/page.tsx",
- meta: undefined,
- },
- "sidebar-05": {
- name: "sidebar-05",
- description: "A sidebar with collapsible submenus.",
- type: "registry:block",
- registryDependencies: ["sidebar","breadcrumb","separator","label","collapsible"],
- files: [{
- path: "registry/default/blocks/sidebar-05/page.tsx",
- type: "registry:page",
- target: "app/dashboard/page.tsx"
- },{
- path: "registry/default/blocks/sidebar-05/components/app-sidebar.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/default/blocks/sidebar-05/components/search-form.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: ["sidebar","dashboard"],
- component: React.lazy(() => import("@/registry/default/blocks/sidebar-05/page.tsx")),
- source: "__registry__/default/blocks/sidebar-05/page.tsx",
- meta: undefined,
- },
- "sidebar-06": {
- name: "sidebar-06",
- description: "A sidebar with submenus as dropdowns.",
- type: "registry:block",
- registryDependencies: ["sidebar","breadcrumb","separator","card","dropdown-menu"],
- files: [{
- path: "registry/default/blocks/sidebar-06/page.tsx",
- type: "registry:page",
- target: "app/dashboard/page.tsx"
- },{
- path: "registry/default/blocks/sidebar-06/components/app-sidebar.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/default/blocks/sidebar-06/components/nav-main.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/default/blocks/sidebar-06/components/sidebar-opt-in-form.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: ["sidebar","dashboard"],
- component: React.lazy(() => import("@/registry/default/blocks/sidebar-06/page.tsx")),
- source: "__registry__/default/blocks/sidebar-06/page.tsx",
- meta: undefined,
- },
- "sidebar-07": {
- name: "sidebar-07",
- description: "A sidebar that collapses to icons.",
- type: "registry:block",
- registryDependencies: ["sidebar","breadcrumb","separator","collapsible","dropdown-menu","avatar"],
- files: [{
- path: "registry/default/blocks/sidebar-07/page.tsx",
- type: "registry:page",
- target: "app/dashboard/page.tsx"
- },{
- path: "registry/default/blocks/sidebar-07/components/app-sidebar.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/default/blocks/sidebar-07/components/nav-main.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/default/blocks/sidebar-07/components/nav-projects.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/default/blocks/sidebar-07/components/nav-user.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/default/blocks/sidebar-07/components/team-switcher.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: ["sidebar","dashboard"],
- component: React.lazy(() => import("@/registry/default/blocks/sidebar-07/page.tsx")),
- source: "__registry__/default/blocks/sidebar-07/page.tsx",
- meta: undefined,
- },
- "sidebar-08": {
- name: "sidebar-08",
- description: "An inset sidebar with secondary navigation.",
- type: "registry:block",
- registryDependencies: ["sidebar","breadcrumb","separator","collapsible","dropdown-menu","avatar"],
- files: [{
- path: "registry/default/blocks/sidebar-08/page.tsx",
- type: "registry:page",
- target: "app/dashboard/page.tsx"
- },{
- path: "registry/default/blocks/sidebar-08/components/app-sidebar.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/default/blocks/sidebar-08/components/nav-main.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/default/blocks/sidebar-08/components/nav-projects.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/default/blocks/sidebar-08/components/nav-secondary.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/default/blocks/sidebar-08/components/nav-user.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: ["sidebar","dashboard"],
- component: React.lazy(() => import("@/registry/default/blocks/sidebar-08/page.tsx")),
- source: "__registry__/default/blocks/sidebar-08/page.tsx",
- meta: undefined,
- },
- "sidebar-09": {
- name: "sidebar-09",
- description: "Collapsible nested sidebars.",
- type: "registry:block",
- registryDependencies: ["sidebar","breadcrumb","separator","collapsible","dropdown-menu","avatar","switch","label"],
- files: [{
- path: "registry/default/blocks/sidebar-09/page.tsx",
- type: "registry:page",
- target: "app/dashboard/page.tsx"
- },{
- path: "registry/default/blocks/sidebar-09/components/app-sidebar.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/default/blocks/sidebar-09/components/nav-user.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: ["sidebar","dashboard"],
- component: React.lazy(() => import("@/registry/default/blocks/sidebar-09/page.tsx")),
- source: "__registry__/default/blocks/sidebar-09/page.tsx",
- meta: undefined,
- },
- "sidebar-10": {
- name: "sidebar-10",
- description: "A sidebar in a popover.",
- type: "registry:block",
- registryDependencies: ["sidebar","breadcrumb","separator","popover","collapsible","dropdown-menu"],
- files: [{
- path: "registry/default/blocks/sidebar-10/page.tsx",
- type: "registry:page",
- target: "app/dashboard/page.tsx"
- },{
- path: "registry/default/blocks/sidebar-10/components/app-sidebar.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/default/blocks/sidebar-10/components/nav-actions.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/default/blocks/sidebar-10/components/nav-favorites.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/default/blocks/sidebar-10/components/nav-main.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/default/blocks/sidebar-10/components/nav-secondary.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/default/blocks/sidebar-10/components/nav-workspaces.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/default/blocks/sidebar-10/components/team-switcher.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: ["sidebar","dashboard"],
- component: React.lazy(() => import("@/registry/default/blocks/sidebar-10/page.tsx")),
- source: "__registry__/default/blocks/sidebar-10/page.tsx",
- meta: undefined,
- },
- "sidebar-11": {
- name: "sidebar-11",
- description: "A sidebar with a collapsible file tree.",
- type: "registry:block",
- registryDependencies: ["sidebar","breadcrumb","separator","collapsible"],
- files: [{
- path: "registry/default/blocks/sidebar-11/page.tsx",
- type: "registry:page",
- target: "app/dashboard/page.tsx"
- },{
- path: "registry/default/blocks/sidebar-11/components/app-sidebar.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: ["sidebar","dashboard"],
- component: React.lazy(() => import("@/registry/default/blocks/sidebar-11/page.tsx")),
- source: "__registry__/default/blocks/sidebar-11/page.tsx",
- meta: undefined,
- },
- "sidebar-12": {
- name: "sidebar-12",
- description: "A sidebar with a calendar.",
- type: "registry:block",
- registryDependencies: ["sidebar","breadcrumb","separator","collapsible","calendar","dropdown-menu","avatar"],
- files: [{
- path: "registry/default/blocks/sidebar-12/page.tsx",
- type: "registry:page",
- target: "app/dashboard/page.tsx"
- },{
- path: "registry/default/blocks/sidebar-12/components/app-sidebar.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/default/blocks/sidebar-12/components/calendars.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/default/blocks/sidebar-12/components/date-picker.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/default/blocks/sidebar-12/components/nav-user.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: ["sidebar","dashboard"],
- component: React.lazy(() => import("@/registry/default/blocks/sidebar-12/page.tsx")),
- source: "__registry__/default/blocks/sidebar-12/page.tsx",
- meta: undefined,
- },
- "sidebar-13": {
- name: "sidebar-13",
- description: "A sidebar in a dialog.",
- type: "registry:block",
- registryDependencies: ["sidebar","breadcrumb","button","dialog"],
- files: [{
- path: "registry/default/blocks/sidebar-13/page.tsx",
- type: "registry:page",
- target: "app/dashboard/page.tsx"
- },{
- path: "registry/default/blocks/sidebar-13/components/settings-dialog.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: ["sidebar","dashboard"],
- component: React.lazy(() => import("@/registry/default/blocks/sidebar-13/page.tsx")),
- source: "__registry__/default/blocks/sidebar-13/page.tsx",
- meta: undefined,
- },
- "sidebar-14": {
- name: "sidebar-14",
- description: "A sidebar on the right.",
- type: "registry:block",
- registryDependencies: ["sidebar","breadcrumb"],
- files: [{
- path: "registry/default/blocks/sidebar-14/page.tsx",
- type: "registry:page",
- target: "app/dashboard/page.tsx"
- },{
- path: "registry/default/blocks/sidebar-14/components/app-sidebar.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: ["sidebar","dashboard"],
- component: React.lazy(() => import("@/registry/default/blocks/sidebar-14/page.tsx")),
- source: "__registry__/default/blocks/sidebar-14/page.tsx",
- meta: undefined,
- },
- "sidebar-15": {
- name: "sidebar-15",
- description: "A left and right sidebar.",
- type: "registry:block",
- registryDependencies: ["sidebar","breadcrumb","separator","popover","collapsible","dropdown-menu","calendar","avatar"],
- files: [{
- path: "registry/default/blocks/sidebar-15/page.tsx",
- type: "registry:page",
- target: "app/dashboard/page.tsx"
- },{
- path: "registry/default/blocks/sidebar-15/components/calendars.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/default/blocks/sidebar-15/components/date-picker.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/default/blocks/sidebar-15/components/nav-favorites.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/default/blocks/sidebar-15/components/nav-main.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/default/blocks/sidebar-15/components/nav-secondary.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/default/blocks/sidebar-15/components/nav-user.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/default/blocks/sidebar-15/components/nav-workspaces.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/default/blocks/sidebar-15/components/sidebar-left.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/default/blocks/sidebar-15/components/sidebar-right.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/default/blocks/sidebar-15/components/team-switcher.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: ["sidebar","dashboard"],
- component: React.lazy(() => import("@/registry/default/blocks/sidebar-15/page.tsx")),
- source: "__registry__/default/blocks/sidebar-15/page.tsx",
- meta: undefined,
- },
- "sidebar-16": {
- name: "sidebar-16",
- description: "A sidebar with a sticky site header.",
- type: "registry:block",
- registryDependencies: ["sidebar","breadcrumb","separator","collapsible","dropdown-menu","avatar","button","label"],
- files: [{
- path: "registry/default/blocks/sidebar-16/page.tsx",
- type: "registry:page",
- target: "app/dashboard/page.tsx"
- },{
- path: "registry/default/blocks/sidebar-16/components/app-sidebar.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/default/blocks/sidebar-16/components/nav-main.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/default/blocks/sidebar-16/components/nav-projects.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/default/blocks/sidebar-16/components/nav-secondary.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/default/blocks/sidebar-16/components/nav-user.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/default/blocks/sidebar-16/components/search-form.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/default/blocks/sidebar-16/components/site-header.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: ["sidebar","dashboard"],
- component: React.lazy(() => import("@/registry/default/blocks/sidebar-16/page.tsx")),
- source: "__registry__/default/blocks/sidebar-16/page.tsx",
- meta: undefined,
- },
- "login-01": {
- name: "login-01",
- description: "A simple login form.",
- type: "registry:block",
- registryDependencies: ["button","card","input","label"],
- files: [{
- path: "registry/default/blocks/login-01/page.tsx",
- type: "registry:page",
- target: "app/login/page.tsx"
- },{
- path: "registry/default/blocks/login-01/components/login-form.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: ["authentication","login"],
- component: React.lazy(() => import("@/registry/default/blocks/login-01/page.tsx")),
- source: "__registry__/default/blocks/login-01/page.tsx",
- meta: undefined,
- },
- "login-02": {
- name: "login-02",
- description: "A two column login page with a cover image.",
- type: "registry:block",
- registryDependencies: ["button","card","input","label"],
- files: [{
- path: "registry/default/blocks/login-02/page.tsx",
- type: "registry:page",
- target: "app/login/page.tsx"
- },{
- path: "registry/default/blocks/login-02/components/login-form.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: ["authentication","login"],
- component: React.lazy(() => import("@/registry/default/blocks/login-02/page.tsx")),
- source: "__registry__/default/blocks/login-02/page.tsx",
- meta: undefined,
- },
- "login-03": {
- name: "login-03",
- description: "A login page with a muted background color.",
- type: "registry:block",
- registryDependencies: ["button","card","input","label"],
- files: [{
- path: "registry/default/blocks/login-03/page.tsx",
- type: "registry:page",
- target: "app/login/page.tsx"
- },{
- path: "registry/default/blocks/login-03/components/login-form.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: ["authentication","login"],
- component: React.lazy(() => import("@/registry/default/blocks/login-03/page.tsx")),
- source: "__registry__/default/blocks/login-03/page.tsx",
- meta: undefined,
- },
- "login-04": {
- name: "login-04",
- description: "A login page with form and image.",
- type: "registry:block",
- registryDependencies: ["button","card","input","label"],
- files: [{
- path: "registry/default/blocks/login-04/page.tsx",
- type: "registry:page",
- target: "app/login/page.tsx"
- },{
- path: "registry/default/blocks/login-04/components/login-form.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: ["authentication","login"],
- component: React.lazy(() => import("@/registry/default/blocks/login-04/page.tsx")),
- source: "__registry__/default/blocks/login-04/page.tsx",
- meta: undefined,
- },
- "login-05": {
- name: "login-05",
- description: "A simple email-only login page.",
- type: "registry:block",
- registryDependencies: ["button","card","input","label"],
- files: [{
- path: "registry/default/blocks/login-05/page.tsx",
- type: "registry:page",
- target: "app/login/page.tsx"
- },{
- path: "registry/default/blocks/login-05/components/login-form.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: ["authentication","login"],
- component: React.lazy(() => import("@/registry/default/blocks/login-05/page.tsx")),
- source: "__registry__/default/blocks/login-05/page.tsx",
- meta: undefined,
- },
- "calendar-01": {
- name: "calendar-01",
- description: "A simple calendar.",
- type: "registry:block",
- registryDependencies: ["calendar"],
- files: [{
- path: "registry/default/blocks/calendar-01.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: ["calendar","date"],
- component: React.lazy(() => import("@/registry/default/blocks/calendar-01.tsx")),
- source: "__registry__/default/blocks/calendar-01.tsx",
- meta: {"iframeHeight":"600px","container":"w-full bg-surface min-h-svh flex px-4 py-12 items-start md:py-20 justify-center min-w-0","mobile":"component"},
- },
- "calendar-02": {
- name: "calendar-02",
- description: "Multiple months with single selection.",
- type: "registry:block",
- registryDependencies: ["calendar"],
- files: [{
- path: "registry/default/blocks/calendar-02.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: ["calendar","date"],
- component: React.lazy(() => import("@/registry/default/blocks/calendar-02.tsx")),
- source: "__registry__/default/blocks/calendar-02.tsx",
- meta: {"iframeHeight":"600px","container":"w-full bg-surface min-h-svh flex px-4 py-12 items-start md:py-20 justify-center min-w-0","mobile":"component"},
- },
- "calendar-03": {
- name: "calendar-03",
- description: "Multiple months with multiple selection.",
- type: "registry:block",
- registryDependencies: ["calendar"],
- files: [{
- path: "registry/default/blocks/calendar-03.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: ["calendar","date"],
- component: React.lazy(() => import("@/registry/default/blocks/calendar-03.tsx")),
- source: "__registry__/default/blocks/calendar-03.tsx",
- meta: {"iframeHeight":"600px","container":"w-full bg-surface min-h-svh flex px-4 py-12 items-start md:py-20 justify-center min-w-0","mobile":"component"},
- },
- "calendar-04": {
- name: "calendar-04",
- description: "Single month with range selection",
- type: "registry:block",
- registryDependencies: ["calendar"],
- files: [{
- path: "registry/default/blocks/calendar-04.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: ["calendar","date"],
- component: React.lazy(() => import("@/registry/default/blocks/calendar-04.tsx")),
- source: "__registry__/default/blocks/calendar-04.tsx",
- meta: {"iframeHeight":"600px","container":"w-full bg-surface min-h-svh flex px-4 py-12 items-start md:py-20 justify-center min-w-0 xl:pt-28","mobile":"component"},
- },
- "calendar-05": {
- name: "calendar-05",
- description: "Multiple months with range selection",
- type: "registry:block",
- registryDependencies: ["calendar"],
- files: [{
- path: "registry/default/blocks/calendar-05.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: ["calendar","date"],
- component: React.lazy(() => import("@/registry/default/blocks/calendar-05.tsx")),
- source: "__registry__/default/blocks/calendar-05.tsx",
- meta: {"iframeHeight":"600px","container":"w-full bg-surface min-h-svh flex px-6 py-12 items-start md:pt-20 justify-center min-w-0 xl:py-24","mobile":"component"},
- },
- "calendar-06": {
- name: "calendar-06",
- description: "Range selection with minimum days",
- type: "registry:block",
- registryDependencies: ["calendar"],
- files: [{
- path: "registry/default/blocks/calendar-06.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: ["calendar","date"],
- component: React.lazy(() => import("@/registry/default/blocks/calendar-06.tsx")),
- source: "__registry__/default/blocks/calendar-06.tsx",
- meta: {"iframeHeight":"600px","container":"w-full bg-surface min-h-svh flex px-6 py-12 items-start md:pt-20 justify-center min-w-0 xl:py-24","mobile":"component"},
- },
- "calendar-07": {
- name: "calendar-07",
- description: "Range selection with minimum and maximum days",
- type: "registry:block",
- registryDependencies: ["calendar"],
- files: [{
- path: "registry/default/blocks/calendar-07.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: ["calendar","date"],
- component: React.lazy(() => import("@/registry/default/blocks/calendar-07.tsx")),
- source: "__registry__/default/blocks/calendar-07.tsx",
- meta: {"iframeHeight":"600px","container":"w-full bg-surface min-h-svh flex px-6 py-12 items-start md:pt-20 justify-center min-w-0 xl:py-24","mobile":"component"},
- },
- "calendar-08": {
- name: "calendar-08",
- description: "Calendar with disabled days",
- type: "registry:block",
- registryDependencies: ["calendar"],
- files: [{
- path: "registry/default/blocks/calendar-08.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: ["calendar","date"],
- component: React.lazy(() => import("@/registry/default/blocks/calendar-08.tsx")),
- source: "__registry__/default/blocks/calendar-08.tsx",
- meta: {"iframeHeight":"600px","container":"w-full bg-surface min-h-svh flex px-6 py-12 items-start md:pt-20 justify-center min-w-0 xl:py-24","mobile":"component"},
- },
- "calendar-09": {
- name: "calendar-09",
- description: "Calendar with disabled weekends",
- type: "registry:block",
- registryDependencies: ["calendar"],
- files: [{
- path: "registry/default/blocks/calendar-09.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: ["calendar","date"],
- component: React.lazy(() => import("@/registry/default/blocks/calendar-09.tsx")),
- source: "__registry__/default/blocks/calendar-09.tsx",
- meta: {"iframeHeight":"600px","container":"w-full bg-surface min-h-svh flex px-6 py-12 items-start md:pt-20 justify-center min-w-0 xl:py-24","mobile":"component"},
- },
- "calendar-10": {
- name: "calendar-10",
- description: "Today button",
- type: "registry:block",
- registryDependencies: ["calendar","card","button"],
- files: [{
- path: "registry/default/blocks/calendar-10.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: ["calendar","date"],
- component: React.lazy(() => import("@/registry/default/blocks/calendar-10.tsx")),
- source: "__registry__/default/blocks/calendar-10.tsx",
- meta: {"iframeHeight":"600px","container":"w-full bg-surface min-h-svh flex px-6 py-12 items-start md:pt-20 justify-center min-w-0 xl:py-24","mobile":"component"},
- },
- "calendar-11": {
- name: "calendar-11",
- description: "Start and end of month",
- type: "registry:block",
- registryDependencies: ["calendar"],
- files: [{
- path: "registry/default/blocks/calendar-11.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: ["calendar","date"],
- component: React.lazy(() => import("@/registry/default/blocks/calendar-11.tsx")),
- source: "__registry__/default/blocks/calendar-11.tsx",
- meta: {"iframeHeight":"600px","container":"w-full bg-surface min-h-svh flex px-6 py-12 items-start md:pt-20 justify-center min-w-0 xl:py-24","mobile":"component"},
- },
- "calendar-12": {
- name: "calendar-12",
- description: "Localized calendar",
- type: "registry:block",
- registryDependencies: ["calendar","card","select"],
- files: [{
- path: "registry/default/blocks/calendar-12.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: ["calendar","date"],
- component: React.lazy(() => import("@/registry/default/blocks/calendar-12.tsx")),
- source: "__registry__/default/blocks/calendar-12.tsx",
- meta: {"iframeHeight":"600px","container":"w-full bg-surface min-h-svh flex px-6 py-12 items-start md:pt-20 justify-center min-w-0 xl:py-24","mobile":"component"},
- },
- "calendar-13": {
- name: "calendar-13",
- description: "With Month and Year Dropdown",
- type: "registry:block",
- registryDependencies: ["calendar","label","select"],
- files: [{
- path: "registry/default/blocks/calendar-13.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: ["calendar","date"],
- component: React.lazy(() => import("@/registry/default/blocks/calendar-13.tsx")),
- source: "__registry__/default/blocks/calendar-13.tsx",
- meta: {"iframeHeight":"600px","container":"w-full bg-surface min-h-svh flex px-6 py-12 items-start md:pt-20 justify-center min-w-0 xl:py-24","mobile":"component"},
- },
- "calendar-14": {
- name: "calendar-14",
- description: "With Booked/Unavailable Days",
- type: "registry:block",
- registryDependencies: ["calendar"],
- files: [{
- path: "registry/default/blocks/calendar-14.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: ["calendar","date"],
- component: React.lazy(() => import("@/registry/default/blocks/calendar-14.tsx")),
- source: "__registry__/default/blocks/calendar-14.tsx",
- meta: {"iframeHeight":"600px","container":"w-full bg-surface min-h-svh flex px-6 py-12 items-start md:pt-20 justify-center min-w-0 xl:py-24","mobile":"component"},
- },
- "calendar-15": {
- name: "calendar-15",
- description: "With Week Numbers",
- type: "registry:block",
- registryDependencies: ["calendar"],
- files: [{
- path: "registry/default/blocks/calendar-15.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: ["calendar","date"],
- component: React.lazy(() => import("@/registry/default/blocks/calendar-15.tsx")),
- source: "__registry__/default/blocks/calendar-15.tsx",
- meta: {"iframeHeight":"600px","container":"w-full bg-surface min-h-svh flex px-6 py-12 items-start md:pt-20 justify-center min-w-0 xl:py-24","mobile":"component"},
- },
- "calendar-16": {
- name: "calendar-16",
- description: "With time picker",
- type: "registry:block",
- registryDependencies: ["calendar","card","input","label"],
- files: [{
- path: "registry/default/blocks/calendar-16.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: ["calendar","date"],
- component: React.lazy(() => import("@/registry/default/blocks/calendar-16.tsx")),
- source: "__registry__/default/blocks/calendar-16.tsx",
- meta: {"iframeHeight":"600px","container":"w-full bg-surface min-h-svh flex px-6 py-12 items-start justify-center min-w-0","mobile":"component"},
- },
- "calendar-17": {
- name: "calendar-17",
- description: "With time picker inline",
- type: "registry:block",
- registryDependencies: ["calendar","card","input","label"],
- files: [{
- path: "registry/default/blocks/calendar-17.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: ["calendar","date"],
- component: React.lazy(() => import("@/registry/default/blocks/calendar-17.tsx")),
- source: "__registry__/default/blocks/calendar-17.tsx",
- meta: {"iframeHeight":"600px","container":"w-full bg-surface min-h-svh flex px-6 py-12 items-start md:pt-20 justify-center min-w-0 xl:py-24","mobile":"component"},
- },
- "calendar-18": {
- name: "calendar-18",
- description: "Variable size",
- type: "registry:block",
- registryDependencies: ["calendar"],
- files: [{
- path: "registry/default/blocks/calendar-18.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: ["calendar","date"],
- component: React.lazy(() => import("@/registry/default/blocks/calendar-18.tsx")),
- source: "__registry__/default/blocks/calendar-18.tsx",
- meta: {"iframeHeight":"600px","container":"w-full bg-surface min-h-svh flex px-6 py-12 items-start md:pt-20 justify-center min-w-0 xl:py-24","mobile":"component"},
- },
- "calendar-19": {
- name: "calendar-19",
- description: "With presets",
- type: "registry:block",
- registryDependencies: ["calendar","card","input","label"],
- files: [{
- path: "registry/default/blocks/calendar-19.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: ["calendar","date"],
- component: React.lazy(() => import("@/registry/default/blocks/calendar-19.tsx")),
- source: "__registry__/default/blocks/calendar-19.tsx",
- meta: {"iframeHeight":"600px","container":"w-full bg-surface min-h-svh flex px-6 py-12 items-start justify-center min-w-0","mobile":"component"},
- },
- "calendar-20": {
- name: "calendar-20",
- description: "With time presets",
- type: "registry:block",
- registryDependencies: ["calendar","card","button"],
- files: [{
- path: "registry/default/blocks/calendar-20.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: ["calendar","date"],
- component: React.lazy(() => import("@/registry/default/blocks/calendar-20.tsx")),
- source: "__registry__/default/blocks/calendar-20.tsx",
- meta: {"iframeHeight":"600px","container":"w-full bg-surface min-h-svh flex px-6 py-12 items-start justify-center min-w-0","mobile":"component"},
- },
- "calendar-21": {
- name: "calendar-21",
- description: "Custom days and formatters",
- type: "registry:block",
- registryDependencies: ["calendar"],
- files: [{
- path: "registry/default/blocks/calendar-21.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: ["calendar","date"],
- component: React.lazy(() => import("@/registry/default/blocks/calendar-21.tsx")),
- source: "__registry__/default/blocks/calendar-21.tsx",
- meta: {"iframeHeight":"600px","container":"w-full bg-surface min-h-svh flex px-6 py-12 items-start justify-center min-w-0","mobile":"component"},
- },
- "calendar-22": {
- name: "calendar-22",
- description: "Date picker",
- type: "registry:block",
- registryDependencies: ["calendar","popover","button","label"],
- files: [{
- path: "registry/default/blocks/calendar-22.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: ["calendar","date"],
- component: React.lazy(() => import("@/registry/default/blocks/calendar-22.tsx")),
- source: "__registry__/default/blocks/calendar-22.tsx",
- meta: {"iframeHeight":"600px","container":"w-full bg-surface min-h-svh flex px-6 py-12 items-start md:pt-20 justify-center min-w-0 xl:py-24","mobile":"component"},
- },
- "calendar-23": {
- name: "calendar-23",
- description: "Date range picker",
- type: "registry:block",
- registryDependencies: ["calendar","popover","button","label"],
- files: [{
- path: "registry/default/blocks/calendar-23.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: ["calendar","date"],
- component: React.lazy(() => import("@/registry/default/blocks/calendar-23.tsx")),
- source: "__registry__/default/blocks/calendar-23.tsx",
- meta: {"iframeHeight":"600px","container":"w-full bg-surface min-h-svh flex px-6 py-12 items-start md:pt-20 justify-center min-w-0 xl:py-24","mobile":"component"},
- },
- "calendar-24": {
- name: "calendar-24",
- description: "Date and Time picker",
- type: "registry:block",
- registryDependencies: ["calendar","popover","button","label"],
- files: [{
- path: "registry/default/blocks/calendar-24.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: ["calendar","date"],
- component: React.lazy(() => import("@/registry/default/blocks/calendar-24.tsx")),
- source: "__registry__/default/blocks/calendar-24.tsx",
- meta: {"iframeHeight":"600px","container":"w-full bg-surface min-h-svh flex px-6 py-12 items-start md:pt-20 justify-center min-w-0 xl:py-24","mobile":"component"},
- },
- "calendar-25": {
- name: "calendar-25",
- description: "Date and Time range picker",
- type: "registry:block",
- registryDependencies: ["calendar","popover","button","label"],
- files: [{
- path: "registry/default/blocks/calendar-25.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: ["calendar","date"],
- component: React.lazy(() => import("@/registry/default/blocks/calendar-25.tsx")),
- source: "__registry__/default/blocks/calendar-25.tsx",
- meta: {"iframeHeight":"600px","container":"w-full bg-surface min-h-svh flex px-6 py-12 items-start md:pt-20 justify-center min-w-0 xl:py-24","mobile":"component"},
- },
- "calendar-26": {
- name: "calendar-26",
- description: "Date range picker with time",
- type: "registry:block",
- registryDependencies: ["calendar","popover","button","input","label"],
- files: [{
- path: "registry/default/blocks/calendar-26.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: ["calendar","date"],
- component: React.lazy(() => import("@/registry/default/blocks/calendar-26.tsx")),
- source: "__registry__/default/blocks/calendar-26.tsx",
- meta: {"iframeHeight":"600px","container":"w-full bg-surface min-h-svh flex px-6 py-12 items-start md:pt-20 justify-center min-w-0 xl:py-24","mobile":"component"},
- },
- "calendar-27": {
- name: "calendar-27",
- description: "Chart filter",
- type: "registry:block",
- registryDependencies: ["calendar","chart","card","popover","button"],
- files: [{
- path: "registry/default/blocks/calendar-27.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: ["calendar","date"],
- component: React.lazy(() => import("@/registry/default/blocks/calendar-27.tsx")),
- source: "__registry__/default/blocks/calendar-27.tsx",
- meta: {"iframeHeight":"600px","container":"w-full bg-surface min-h-svh flex px-6 py-12 items-start justify-center min-w-0","mobile":"component"},
- },
- "calendar-28": {
- name: "calendar-28",
- description: "Input with date picker",
- type: "registry:block",
- registryDependencies: ["calendar","input","label","popover","button"],
- files: [{
- path: "registry/default/blocks/calendar-28.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: ["calendar","date"],
- component: React.lazy(() => import("@/registry/default/blocks/calendar-28.tsx")),
- source: "__registry__/default/blocks/calendar-28.tsx",
- meta: {"iframeHeight":"600px","container":"w-full bg-surface min-h-svh flex px-6 py-12 items-start md:pt-20 justify-center min-w-0 xl:py-24","mobile":"component"},
- },
- "calendar-29": {
- name: "calendar-29",
- description: "Natural language date picker",
- type: "registry:block",
- registryDependencies: ["calendar","input","label","popover","button"],
- files: [{
- path: "registry/default/blocks/calendar-29.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: ["calendar","date"],
- component: React.lazy(() => import("@/registry/default/blocks/calendar-29.tsx")),
- source: "__registry__/default/blocks/calendar-29.tsx",
- meta: {"iframeHeight":"600px","container":"w-full bg-surface min-h-svh flex px-6 py-12 items-start md:pt-20 justify-center min-w-0 xl:py-24","mobile":"component"},
- },
- "calendar-30": {
- name: "calendar-30",
- description: "With little-date",
- type: "registry:block",
- registryDependencies: ["calendar","input","label","popover","button"],
- files: [{
- path: "registry/default/blocks/calendar-30.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: ["calendar","date"],
- component: React.lazy(() => import("@/registry/default/blocks/calendar-30.tsx")),
- source: "__registry__/default/blocks/calendar-30.tsx",
- meta: {"iframeHeight":"600px","container":"w-full bg-surface min-h-svh flex px-6 py-12 items-start md:pt-20 justify-center min-w-0 xl:py-24","mobile":"component"},
- },
- "calendar-31": {
- name: "calendar-31",
- description: "With event slots",
- type: "registry:block",
- registryDependencies: ["calendar","card","button"],
- files: [{
- path: "registry/default/blocks/calendar-31.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: ["calendar","date"],
- component: React.lazy(() => import("@/registry/default/blocks/calendar-31.tsx")),
- source: "__registry__/default/blocks/calendar-31.tsx",
- meta: {"iframeHeight":"700px","container":"w-full bg-surface min-h-svh flex px-6 py-12 items-start md:pt-20 justify-center min-w-0","mobile":"component"},
- },
- "calendar-32": {
- name: "calendar-32",
- description: "Date picker in a drawer",
- type: "registry:block",
- registryDependencies: ["calendar","button","drawer"],
- files: [{
- path: "registry/default/blocks/calendar-32.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: ["calendar","date"],
- component: React.lazy(() => import("@/registry/default/blocks/calendar-32.tsx")),
- source: "__registry__/default/blocks/calendar-32.tsx",
- meta: {"iframeHeight":"600px","container":"w-full bg-surface min-h-svh flex px-6 py-12 items-start md:pt-20 justify-center min-w-0 xl:py-24","mobile":"component"},
- },
- "chart-area-axes": {
- name: "chart-area-axes",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/default/charts/chart-area-axes.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-area"],
- component: React.lazy(() => import("@/registry/default/charts/chart-area-axes.tsx")),
- source: "__registry__/default/charts/chart-area-axes.tsx",
- meta: undefined,
- },
- "chart-area-default": {
- name: "chart-area-default",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/default/charts/chart-area-default.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-area"],
- component: React.lazy(() => import("@/registry/default/charts/chart-area-default.tsx")),
- source: "__registry__/default/charts/chart-area-default.tsx",
- meta: undefined,
- },
- "chart-area-gradient": {
- name: "chart-area-gradient",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/default/charts/chart-area-gradient.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-area"],
- component: React.lazy(() => import("@/registry/default/charts/chart-area-gradient.tsx")),
- source: "__registry__/default/charts/chart-area-gradient.tsx",
- meta: undefined,
- },
- "chart-area-icons": {
- name: "chart-area-icons",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/default/charts/chart-area-icons.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-area"],
- component: React.lazy(() => import("@/registry/default/charts/chart-area-icons.tsx")),
- source: "__registry__/default/charts/chart-area-icons.tsx",
- meta: undefined,
- },
- "chart-area-interactive": {
- name: "chart-area-interactive",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart","select"],
- files: [{
- path: "registry/default/charts/chart-area-interactive.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: ["charts","charts-area"],
- component: React.lazy(() => import("@/registry/default/charts/chart-area-interactive.tsx")),
- source: "__registry__/default/charts/chart-area-interactive.tsx",
- meta: undefined,
- },
- "chart-area-legend": {
- name: "chart-area-legend",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/default/charts/chart-area-legend.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-area"],
- component: React.lazy(() => import("@/registry/default/charts/chart-area-legend.tsx")),
- source: "__registry__/default/charts/chart-area-legend.tsx",
- meta: undefined,
- },
- "chart-area-linear": {
- name: "chart-area-linear",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/default/charts/chart-area-linear.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-area"],
- component: React.lazy(() => import("@/registry/default/charts/chart-area-linear.tsx")),
- source: "__registry__/default/charts/chart-area-linear.tsx",
- meta: undefined,
- },
- "chart-area-stacked-expand": {
- name: "chart-area-stacked-expand",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/default/charts/chart-area-stacked-expand.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-area"],
- component: React.lazy(() => import("@/registry/default/charts/chart-area-stacked-expand.tsx")),
- source: "__registry__/default/charts/chart-area-stacked-expand.tsx",
- meta: undefined,
- },
- "chart-area-stacked": {
- name: "chart-area-stacked",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/default/charts/chart-area-stacked.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-area"],
- component: React.lazy(() => import("@/registry/default/charts/chart-area-stacked.tsx")),
- source: "__registry__/default/charts/chart-area-stacked.tsx",
- meta: undefined,
- },
- "chart-area-step": {
- name: "chart-area-step",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/default/charts/chart-area-step.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-area"],
- component: React.lazy(() => import("@/registry/default/charts/chart-area-step.tsx")),
- source: "__registry__/default/charts/chart-area-step.tsx",
- meta: undefined,
- },
- "chart-bar-active": {
- name: "chart-bar-active",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/default/charts/chart-bar-active.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-bar"],
- component: React.lazy(() => import("@/registry/default/charts/chart-bar-active.tsx")),
- source: "__registry__/default/charts/chart-bar-active.tsx",
- meta: undefined,
- },
- "chart-bar-default": {
- name: "chart-bar-default",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/default/charts/chart-bar-default.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-bar"],
- component: React.lazy(() => import("@/registry/default/charts/chart-bar-default.tsx")),
- source: "__registry__/default/charts/chart-bar-default.tsx",
- meta: undefined,
- },
- "chart-bar-horizontal": {
- name: "chart-bar-horizontal",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/default/charts/chart-bar-horizontal.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-bar"],
- component: React.lazy(() => import("@/registry/default/charts/chart-bar-horizontal.tsx")),
- source: "__registry__/default/charts/chart-bar-horizontal.tsx",
- meta: undefined,
- },
- "chart-bar-interactive": {
- name: "chart-bar-interactive",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/default/charts/chart-bar-interactive.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-bar"],
- component: React.lazy(() => import("@/registry/default/charts/chart-bar-interactive.tsx")),
- source: "__registry__/default/charts/chart-bar-interactive.tsx",
- meta: undefined,
- },
- "chart-bar-label-custom": {
- name: "chart-bar-label-custom",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/default/charts/chart-bar-label-custom.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-bar"],
- component: React.lazy(() => import("@/registry/default/charts/chart-bar-label-custom.tsx")),
- source: "__registry__/default/charts/chart-bar-label-custom.tsx",
- meta: undefined,
- },
- "chart-bar-label": {
- name: "chart-bar-label",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/default/charts/chart-bar-label.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-bar"],
- component: React.lazy(() => import("@/registry/default/charts/chart-bar-label.tsx")),
- source: "__registry__/default/charts/chart-bar-label.tsx",
- meta: undefined,
- },
- "chart-bar-mixed": {
- name: "chart-bar-mixed",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/default/charts/chart-bar-mixed.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-bar"],
- component: React.lazy(() => import("@/registry/default/charts/chart-bar-mixed.tsx")),
- source: "__registry__/default/charts/chart-bar-mixed.tsx",
- meta: undefined,
- },
- "chart-bar-multiple": {
- name: "chart-bar-multiple",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/default/charts/chart-bar-multiple.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-bar"],
- component: React.lazy(() => import("@/registry/default/charts/chart-bar-multiple.tsx")),
- source: "__registry__/default/charts/chart-bar-multiple.tsx",
- meta: undefined,
- },
- "chart-bar-negative": {
- name: "chart-bar-negative",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/default/charts/chart-bar-negative.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-bar"],
- component: React.lazy(() => import("@/registry/default/charts/chart-bar-negative.tsx")),
- source: "__registry__/default/charts/chart-bar-negative.tsx",
- meta: undefined,
- },
- "chart-bar-stacked": {
- name: "chart-bar-stacked",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/default/charts/chart-bar-stacked.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-bar"],
- component: React.lazy(() => import("@/registry/default/charts/chart-bar-stacked.tsx")),
- source: "__registry__/default/charts/chart-bar-stacked.tsx",
- meta: undefined,
- },
- "chart-line-default": {
- name: "chart-line-default",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/default/charts/chart-line-default.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-line"],
- component: React.lazy(() => import("@/registry/default/charts/chart-line-default.tsx")),
- source: "__registry__/default/charts/chart-line-default.tsx",
- meta: undefined,
- },
- "chart-line-dots-colors": {
- name: "chart-line-dots-colors",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/default/charts/chart-line-dots-colors.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-line"],
- component: React.lazy(() => import("@/registry/default/charts/chart-line-dots-colors.tsx")),
- source: "__registry__/default/charts/chart-line-dots-colors.tsx",
- meta: undefined,
- },
- "chart-line-dots-custom": {
- name: "chart-line-dots-custom",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/default/charts/chart-line-dots-custom.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-line"],
- component: React.lazy(() => import("@/registry/default/charts/chart-line-dots-custom.tsx")),
- source: "__registry__/default/charts/chart-line-dots-custom.tsx",
- meta: undefined,
- },
- "chart-line-dots": {
- name: "chart-line-dots",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/default/charts/chart-line-dots.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-line"],
- component: React.lazy(() => import("@/registry/default/charts/chart-line-dots.tsx")),
- source: "__registry__/default/charts/chart-line-dots.tsx",
- meta: undefined,
- },
- "chart-line-interactive": {
- name: "chart-line-interactive",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/default/charts/chart-line-interactive.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-line"],
- component: React.lazy(() => import("@/registry/default/charts/chart-line-interactive.tsx")),
- source: "__registry__/default/charts/chart-line-interactive.tsx",
- meta: undefined,
- },
- "chart-line-label-custom": {
- name: "chart-line-label-custom",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/default/charts/chart-line-label-custom.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-line"],
- component: React.lazy(() => import("@/registry/default/charts/chart-line-label-custom.tsx")),
- source: "__registry__/default/charts/chart-line-label-custom.tsx",
- meta: undefined,
- },
- "chart-line-label": {
- name: "chart-line-label",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/default/charts/chart-line-label.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-line"],
- component: React.lazy(() => import("@/registry/default/charts/chart-line-label.tsx")),
- source: "__registry__/default/charts/chart-line-label.tsx",
- meta: undefined,
- },
- "chart-line-linear": {
- name: "chart-line-linear",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/default/charts/chart-line-linear.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-line"],
- component: React.lazy(() => import("@/registry/default/charts/chart-line-linear.tsx")),
- source: "__registry__/default/charts/chart-line-linear.tsx",
- meta: undefined,
- },
- "chart-line-multiple": {
- name: "chart-line-multiple",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/default/charts/chart-line-multiple.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-line"],
- component: React.lazy(() => import("@/registry/default/charts/chart-line-multiple.tsx")),
- source: "__registry__/default/charts/chart-line-multiple.tsx",
- meta: undefined,
- },
- "chart-line-step": {
- name: "chart-line-step",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/default/charts/chart-line-step.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-line"],
- component: React.lazy(() => import("@/registry/default/charts/chart-line-step.tsx")),
- source: "__registry__/default/charts/chart-line-step.tsx",
- meta: undefined,
- },
- "chart-pie-donut-active": {
- name: "chart-pie-donut-active",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/default/charts/chart-pie-donut-active.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-pie"],
- component: React.lazy(() => import("@/registry/default/charts/chart-pie-donut-active.tsx")),
- source: "__registry__/default/charts/chart-pie-donut-active.tsx",
- meta: undefined,
- },
- "chart-pie-donut-text": {
- name: "chart-pie-donut-text",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/default/charts/chart-pie-donut-text.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-pie"],
- component: React.lazy(() => import("@/registry/default/charts/chart-pie-donut-text.tsx")),
- source: "__registry__/default/charts/chart-pie-donut-text.tsx",
- meta: undefined,
- },
- "chart-pie-donut": {
- name: "chart-pie-donut",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/default/charts/chart-pie-donut.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-pie"],
- component: React.lazy(() => import("@/registry/default/charts/chart-pie-donut.tsx")),
- source: "__registry__/default/charts/chart-pie-donut.tsx",
- meta: undefined,
- },
- "chart-pie-interactive": {
- name: "chart-pie-interactive",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/default/charts/chart-pie-interactive.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-pie"],
- component: React.lazy(() => import("@/registry/default/charts/chart-pie-interactive.tsx")),
- source: "__registry__/default/charts/chart-pie-interactive.tsx",
- meta: undefined,
- },
- "chart-pie-label-custom": {
- name: "chart-pie-label-custom",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/default/charts/chart-pie-label-custom.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-pie"],
- component: React.lazy(() => import("@/registry/default/charts/chart-pie-label-custom.tsx")),
- source: "__registry__/default/charts/chart-pie-label-custom.tsx",
- meta: undefined,
- },
- "chart-pie-label-list": {
- name: "chart-pie-label-list",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/default/charts/chart-pie-label-list.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-pie"],
- component: React.lazy(() => import("@/registry/default/charts/chart-pie-label-list.tsx")),
- source: "__registry__/default/charts/chart-pie-label-list.tsx",
- meta: undefined,
- },
- "chart-pie-label": {
- name: "chart-pie-label",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/default/charts/chart-pie-label.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-pie"],
- component: React.lazy(() => import("@/registry/default/charts/chart-pie-label.tsx")),
- source: "__registry__/default/charts/chart-pie-label.tsx",
- meta: undefined,
- },
- "chart-pie-legend": {
- name: "chart-pie-legend",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/default/charts/chart-pie-legend.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-pie"],
- component: React.lazy(() => import("@/registry/default/charts/chart-pie-legend.tsx")),
- source: "__registry__/default/charts/chart-pie-legend.tsx",
- meta: undefined,
- },
- "chart-pie-separator-none": {
- name: "chart-pie-separator-none",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/default/charts/chart-pie-separator-none.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-pie"],
- component: React.lazy(() => import("@/registry/default/charts/chart-pie-separator-none.tsx")),
- source: "__registry__/default/charts/chart-pie-separator-none.tsx",
- meta: undefined,
- },
- "chart-pie-simple": {
- name: "chart-pie-simple",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/default/charts/chart-pie-simple.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-pie"],
- component: React.lazy(() => import("@/registry/default/charts/chart-pie-simple.tsx")),
- source: "__registry__/default/charts/chart-pie-simple.tsx",
- meta: undefined,
- },
- "chart-pie-stacked": {
- name: "chart-pie-stacked",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/default/charts/chart-pie-stacked.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-pie"],
- component: React.lazy(() => import("@/registry/default/charts/chart-pie-stacked.tsx")),
- source: "__registry__/default/charts/chart-pie-stacked.tsx",
- meta: undefined,
- },
- "chart-radar-default": {
- name: "chart-radar-default",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/default/charts/chart-radar-default.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-radar"],
- component: React.lazy(() => import("@/registry/default/charts/chart-radar-default.tsx")),
- source: "__registry__/default/charts/chart-radar-default.tsx",
- meta: undefined,
- },
- "chart-radar-dots": {
- name: "chart-radar-dots",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/default/charts/chart-radar-dots.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-radar"],
- component: React.lazy(() => import("@/registry/default/charts/chart-radar-dots.tsx")),
- source: "__registry__/default/charts/chart-radar-dots.tsx",
- meta: undefined,
- },
- "chart-radar-grid-circle-fill": {
- name: "chart-radar-grid-circle-fill",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/default/charts/chart-radar-grid-circle-fill.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-radar"],
- component: React.lazy(() => import("@/registry/default/charts/chart-radar-grid-circle-fill.tsx")),
- source: "__registry__/default/charts/chart-radar-grid-circle-fill.tsx",
- meta: undefined,
- },
- "chart-radar-grid-circle-no-lines": {
- name: "chart-radar-grid-circle-no-lines",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/default/charts/chart-radar-grid-circle-no-lines.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-radar"],
- component: React.lazy(() => import("@/registry/default/charts/chart-radar-grid-circle-no-lines.tsx")),
- source: "__registry__/default/charts/chart-radar-grid-circle-no-lines.tsx",
- meta: undefined,
- },
- "chart-radar-grid-circle": {
- name: "chart-radar-grid-circle",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/default/charts/chart-radar-grid-circle.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-radar"],
- component: React.lazy(() => import("@/registry/default/charts/chart-radar-grid-circle.tsx")),
- source: "__registry__/default/charts/chart-radar-grid-circle.tsx",
- meta: undefined,
- },
- "chart-radar-grid-custom": {
- name: "chart-radar-grid-custom",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/default/charts/chart-radar-grid-custom.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-radar"],
- component: React.lazy(() => import("@/registry/default/charts/chart-radar-grid-custom.tsx")),
- source: "__registry__/default/charts/chart-radar-grid-custom.tsx",
- meta: undefined,
- },
- "chart-radar-grid-fill": {
- name: "chart-radar-grid-fill",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/default/charts/chart-radar-grid-fill.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-radar"],
- component: React.lazy(() => import("@/registry/default/charts/chart-radar-grid-fill.tsx")),
- source: "__registry__/default/charts/chart-radar-grid-fill.tsx",
- meta: undefined,
- },
- "chart-radar-grid-none": {
- name: "chart-radar-grid-none",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/default/charts/chart-radar-grid-none.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-radar"],
- component: React.lazy(() => import("@/registry/default/charts/chart-radar-grid-none.tsx")),
- source: "__registry__/default/charts/chart-radar-grid-none.tsx",
- meta: undefined,
- },
- "chart-radar-icons": {
- name: "chart-radar-icons",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/default/charts/chart-radar-icons.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-radar"],
- component: React.lazy(() => import("@/registry/default/charts/chart-radar-icons.tsx")),
- source: "__registry__/default/charts/chart-radar-icons.tsx",
- meta: undefined,
- },
- "chart-radar-label-custom": {
- name: "chart-radar-label-custom",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/default/charts/chart-radar-label-custom.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-radar"],
- component: React.lazy(() => import("@/registry/default/charts/chart-radar-label-custom.tsx")),
- source: "__registry__/default/charts/chart-radar-label-custom.tsx",
- meta: undefined,
- },
- "chart-radar-legend": {
- name: "chart-radar-legend",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/default/charts/chart-radar-legend.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-radar"],
- component: React.lazy(() => import("@/registry/default/charts/chart-radar-legend.tsx")),
- source: "__registry__/default/charts/chart-radar-legend.tsx",
- meta: undefined,
- },
- "chart-radar-lines-only": {
- name: "chart-radar-lines-only",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/default/charts/chart-radar-lines-only.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-radar"],
- component: React.lazy(() => import("@/registry/default/charts/chart-radar-lines-only.tsx")),
- source: "__registry__/default/charts/chart-radar-lines-only.tsx",
- meta: undefined,
- },
- "chart-radar-multiple": {
- name: "chart-radar-multiple",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/default/charts/chart-radar-multiple.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-radar"],
- component: React.lazy(() => import("@/registry/default/charts/chart-radar-multiple.tsx")),
- source: "__registry__/default/charts/chart-radar-multiple.tsx",
- meta: undefined,
- },
- "chart-radar-radius": {
- name: "chart-radar-radius",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/default/charts/chart-radar-radius.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-radar"],
- component: React.lazy(() => import("@/registry/default/charts/chart-radar-radius.tsx")),
- source: "__registry__/default/charts/chart-radar-radius.tsx",
- meta: undefined,
- },
- "chart-radial-grid": {
- name: "chart-radial-grid",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/default/charts/chart-radial-grid.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-radial"],
- component: React.lazy(() => import("@/registry/default/charts/chart-radial-grid.tsx")),
- source: "__registry__/default/charts/chart-radial-grid.tsx",
- meta: undefined,
- },
- "chart-radial-label": {
- name: "chart-radial-label",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/default/charts/chart-radial-label.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-radial"],
- component: React.lazy(() => import("@/registry/default/charts/chart-radial-label.tsx")),
- source: "__registry__/default/charts/chart-radial-label.tsx",
- meta: undefined,
- },
- "chart-radial-shape": {
- name: "chart-radial-shape",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/default/charts/chart-radial-shape.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-radial"],
- component: React.lazy(() => import("@/registry/default/charts/chart-radial-shape.tsx")),
- source: "__registry__/default/charts/chart-radial-shape.tsx",
- meta: undefined,
- },
- "chart-radial-simple": {
- name: "chart-radial-simple",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/default/charts/chart-radial-simple.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-radial"],
- component: React.lazy(() => import("@/registry/default/charts/chart-radial-simple.tsx")),
- source: "__registry__/default/charts/chart-radial-simple.tsx",
- meta: undefined,
- },
- "chart-radial-stacked": {
- name: "chart-radial-stacked",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/default/charts/chart-radial-stacked.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-radial"],
- component: React.lazy(() => import("@/registry/default/charts/chart-radial-stacked.tsx")),
- source: "__registry__/default/charts/chart-radial-stacked.tsx",
- meta: undefined,
- },
- "chart-radial-text": {
- name: "chart-radial-text",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/default/charts/chart-radial-text.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-radial"],
- component: React.lazy(() => import("@/registry/default/charts/chart-radial-text.tsx")),
- source: "__registry__/default/charts/chart-radial-text.tsx",
- meta: undefined,
- },
- "chart-tooltip-default": {
- name: "chart-tooltip-default",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/default/charts/chart-tooltip-default.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-tooltip"],
- component: React.lazy(() => import("@/registry/default/charts/chart-tooltip-default.tsx")),
- source: "__registry__/default/charts/chart-tooltip-default.tsx",
- meta: undefined,
- },
- "chart-tooltip-indicator-line": {
- name: "chart-tooltip-indicator-line",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/default/charts/chart-tooltip-indicator-line.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-tooltip"],
- component: React.lazy(() => import("@/registry/default/charts/chart-tooltip-indicator-line.tsx")),
- source: "__registry__/default/charts/chart-tooltip-indicator-line.tsx",
- meta: undefined,
- },
- "chart-tooltip-indicator-none": {
- name: "chart-tooltip-indicator-none",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/default/charts/chart-tooltip-indicator-none.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-tooltip"],
- component: React.lazy(() => import("@/registry/default/charts/chart-tooltip-indicator-none.tsx")),
- source: "__registry__/default/charts/chart-tooltip-indicator-none.tsx",
- meta: undefined,
- },
- "chart-tooltip-label-none": {
- name: "chart-tooltip-label-none",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/default/charts/chart-tooltip-label-none.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-tooltip"],
- component: React.lazy(() => import("@/registry/default/charts/chart-tooltip-label-none.tsx")),
- source: "__registry__/default/charts/chart-tooltip-label-none.tsx",
- meta: undefined,
- },
- "chart-tooltip-label-custom": {
- name: "chart-tooltip-label-custom",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/default/charts/chart-tooltip-label-custom.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-tooltip"],
- component: React.lazy(() => import("@/registry/default/charts/chart-tooltip-label-custom.tsx")),
- source: "__registry__/default/charts/chart-tooltip-label-custom.tsx",
- meta: undefined,
- },
- "chart-tooltip-label-formatter": {
- name: "chart-tooltip-label-formatter",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/default/charts/chart-tooltip-label-formatter.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-tooltip"],
- component: React.lazy(() => import("@/registry/default/charts/chart-tooltip-label-formatter.tsx")),
- source: "__registry__/default/charts/chart-tooltip-label-formatter.tsx",
- meta: undefined,
- },
- "chart-tooltip-formatter": {
- name: "chart-tooltip-formatter",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/default/charts/chart-tooltip-formatter.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-tooltip"],
- component: React.lazy(() => import("@/registry/default/charts/chart-tooltip-formatter.tsx")),
- source: "__registry__/default/charts/chart-tooltip-formatter.tsx",
- meta: undefined,
- },
- "chart-tooltip-icons": {
- name: "chart-tooltip-icons",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/default/charts/chart-tooltip-icons.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-tooltip"],
- component: React.lazy(() => import("@/registry/default/charts/chart-tooltip-icons.tsx")),
- source: "__registry__/default/charts/chart-tooltip-icons.tsx",
- meta: undefined,
- },
- "chart-tooltip-advanced": {
- name: "chart-tooltip-advanced",
- description: "",
- type: "registry:block",
- registryDependencies: ["card","chart"],
- files: [{
- path: "registry/default/charts/chart-tooltip-advanced.tsx",
- type: "registry:block",
- target: ""
- }],
- categories: ["charts","charts-tooltip"],
- component: React.lazy(() => import("@/registry/default/charts/chart-tooltip-advanced.tsx")),
- source: "__registry__/default/charts/chart-tooltip-advanced.tsx",
- meta: undefined,
- },
- "utils": {
- name: "utils",
- description: "",
- type: "registry:lib",
- registryDependencies: undefined,
- files: [{
- path: "registry/default/lib/utils.ts",
- type: "registry:lib",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/lib/utils.ts")),
- source: "",
- meta: undefined,
- },
- "use-mobile": {
- name: "use-mobile",
- description: "",
- type: "registry:hook",
- registryDependencies: undefined,
- files: [{
- path: "registry/default/hooks/use-mobile.tsx",
- type: "registry:hook",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/hooks/use-mobile.tsx")),
- source: "",
- meta: undefined,
- },
- "use-toast": {
- name: "use-toast",
- description: "",
- type: "registry:hook",
- registryDependencies: undefined,
- files: [{
- path: "registry/default/hooks/use-toast.ts",
- type: "registry:hook",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/hooks/use-toast.ts")),
- source: "",
- meta: undefined,
- },
- "sink": {
- name: "sink",
- description: "",
- type: "registry:internal",
- registryDependencies: ["accordion","alert","alert-dialog","aspect-ratio","avatar","badge","breadcrumb","button","calendar","card","carousel","chart","checkbox","collapsible","command","context-menu","dialog","drawer","dropdown-menu","hover-card","input","input-otp","label","menubar","navigation-menu","pagination","popover","progress","radio-group","resizable","scroll-area","select","separator","sheet","sidebar","skeleton","slider","sonner","switch","table","tabs","textarea","toast","toggle","toggle-group","tooltip"],
- files: [{
- path: "registry/default/internal/sink/page.tsx",
- type: "registry:page",
- target: "app/sink/page.tsx"
- },{
- path: "registry/default/internal/sink/components/app-sidebar.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/default/internal/sink/components/component-wrapper.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/default/internal/sink/components/nav-main.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/default/internal/sink/components/nav-projects.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/default/internal/sink/components/nav-user.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/default/internal/sink/components/team-switcher.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/default/internal/sink/components/accordion-demo.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/default/internal/sink/components/alert-demo.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/default/internal/sink/components/alert-dialog-demo.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/default/internal/sink/components/aspect-ratio-demo.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/default/internal/sink/components/avatar-demo.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/default/internal/sink/components/badge-demo.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/default/internal/sink/components/breadcrumb-demo.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/default/internal/sink/components/button-demo.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/default/internal/sink/components/calendar-demo.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/default/internal/sink/components/card-demo.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/default/internal/sink/components/carousel-demo.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/default/internal/sink/components/checkbox-demo.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/default/internal/sink/components/collapsible-demo.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/default/internal/sink/components/combobox-demo.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/default/internal/sink/components/command-demo.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/default/internal/sink/components/context-menu-demo.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/default/internal/sink/components/date-picker-demo.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/default/internal/sink/components/dialog-demo.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/default/internal/sink/components/drawer-demo.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/default/internal/sink/components/dropdown-menu-demo.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/default/internal/sink/components/hover-card-demo.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/default/internal/sink/components/input-demo.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/default/internal/sink/components/input-otp-demo.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/default/internal/sink/components/label-demo.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/default/internal/sink/components/menubar-demo.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/default/internal/sink/components/navigation-menu-demo.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/default/internal/sink/components/pagination-demo.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/default/internal/sink/components/popover-demo.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/default/internal/sink/components/progress-demo.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/default/internal/sink/components/radio-group-demo.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/default/internal/sink/components/resizable-handle.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/default/internal/sink/components/scroll-area-demo.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/default/internal/sink/components/select-demo.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/default/internal/sink/components/separator-demo.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/default/internal/sink/components/sheet-demo.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/default/internal/sink/components/skeleton-demo.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/default/internal/sink/components/slider-demo.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/default/internal/sink/components/sonner-demo.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/default/internal/sink/components/switch-demo.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/default/internal/sink/components/table-demo.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/default/internal/sink/components/tabs-demo.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/default/internal/sink/components/textarea-demo.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/default/internal/sink/components/toast-demo.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/default/internal/sink/components/toggle-demo.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/default/internal/sink/components/toggle-group-demo.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/default/internal/sink/components/tooltip-demo.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/default/internal/sink/components/badge-destructive.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/default/internal/sink/components/badge-outline.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/default/internal/sink/components/badge-secondary.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/default/internal/sink/components/button-destructive.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/default/internal/sink/components/button-ghost.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/default/internal/sink/components/button-link.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/default/internal/sink/components/button-loading.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/default/internal/sink/components/button-outline.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/default/internal/sink/components/button-secondary.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/default/internal/sink/components/button-with-icon.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/default/internal/sink/components/toggle-disabled.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/default/internal/sink/components/toggle-outline.tsx",
- type: "registry:component",
- target: ""
- },{
- path: "registry/default/internal/sink/components/toggle-with-text.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/internal/sink/page.tsx")),
- source: "",
- meta: undefined,
- },
- "sidebar-demo": {
- name: "sidebar-demo",
- description: "",
- type: "registry:internal",
- registryDependencies: undefined,
- files: [{
- path: "registry/default/internal/sidebar-demo.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/internal/sidebar-demo.tsx")),
- source: "",
- meta: undefined,
- },
- "sidebar-header": {
- name: "sidebar-header",
- description: "",
- type: "registry:internal",
- registryDependencies: undefined,
- files: [{
- path: "registry/default/internal/sidebar-header.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/internal/sidebar-header.tsx")),
- source: "",
- meta: undefined,
- },
- "sidebar-footer": {
- name: "sidebar-footer",
- description: "",
- type: "registry:internal",
- registryDependencies: undefined,
- files: [{
- path: "registry/default/internal/sidebar-footer.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/internal/sidebar-footer.tsx")),
- source: "",
- meta: undefined,
- },
- "sidebar-group": {
- name: "sidebar-group",
- description: "",
- type: "registry:internal",
- registryDependencies: undefined,
- files: [{
- path: "registry/default/internal/sidebar-group.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/internal/sidebar-group.tsx")),
- source: "",
- meta: undefined,
- },
- "sidebar-group-collapsible": {
- name: "sidebar-group-collapsible",
- description: "",
- type: "registry:internal",
- registryDependencies: undefined,
- files: [{
- path: "registry/default/internal/sidebar-group-collapsible.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/internal/sidebar-group-collapsible.tsx")),
- source: "",
- meta: undefined,
- },
- "sidebar-group-action": {
- name: "sidebar-group-action",
- description: "",
- type: "registry:internal",
- registryDependencies: undefined,
- files: [{
- path: "registry/default/internal/sidebar-group-action.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/internal/sidebar-group-action.tsx")),
- source: "",
- meta: undefined,
- },
- "sidebar-menu": {
- name: "sidebar-menu",
- description: "",
- type: "registry:internal",
- registryDependencies: undefined,
- files: [{
- path: "registry/default/internal/sidebar-menu.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/internal/sidebar-menu.tsx")),
- source: "",
- meta: undefined,
- },
- "sidebar-menu-action": {
- name: "sidebar-menu-action",
- description: "",
- type: "registry:internal",
- registryDependencies: undefined,
- files: [{
- path: "registry/default/internal/sidebar-menu-action.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/internal/sidebar-menu-action.tsx")),
- source: "",
- meta: undefined,
- },
- "sidebar-menu-sub": {
- name: "sidebar-menu-sub",
- description: "",
- type: "registry:internal",
- registryDependencies: undefined,
- files: [{
- path: "registry/default/internal/sidebar-menu-sub.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/internal/sidebar-menu-sub.tsx")),
- source: "",
- meta: undefined,
- },
- "sidebar-menu-collapsible": {
- name: "sidebar-menu-collapsible",
- description: "",
- type: "registry:internal",
- registryDependencies: undefined,
- files: [{
- path: "registry/default/internal/sidebar-menu-collapsible.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/internal/sidebar-menu-collapsible.tsx")),
- source: "",
- meta: undefined,
- },
- "sidebar-menu-badge": {
- name: "sidebar-menu-badge",
- description: "",
- type: "registry:internal",
- registryDependencies: undefined,
- files: [{
- path: "registry/default/internal/sidebar-menu-badge.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/internal/sidebar-menu-badge.tsx")),
- source: "",
- meta: undefined,
- },
- "sidebar-rsc": {
- name: "sidebar-rsc",
- description: "",
- type: "registry:internal",
- registryDependencies: undefined,
- files: [{
- path: "registry/default/internal/sidebar-rsc.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/internal/sidebar-rsc.tsx")),
- source: "",
- meta: undefined,
- },
- "sidebar-controlled": {
- name: "sidebar-controlled",
- description: "",
- type: "registry:internal",
- registryDependencies: undefined,
- files: [{
- path: "registry/default/internal/sidebar-controlled.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/internal/sidebar-controlled.tsx")),
- source: "",
- meta: undefined,
- },
- "v0-sidebar-01": {
- name: "v0-sidebar-01",
- description: "",
- type: "registry:internal",
- registryDependencies: ["sidebar","breadcrumb","separator","label","dropdown-menu"],
- files: [{
- path: "registry/default/internal/sidebar-01.tsx",
- type: "registry:component",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/internal/sidebar-01.tsx")),
- source: "",
- meta: undefined,
- },
- "v0-sidebar-02": {
- name: "v0-sidebar-02",
- description: "",
- type: "registry:internal",
- registryDependencies: ["sidebar","breadcrumb","separator","label","dropdown-menu"],
- files: [{
- path: "registry/default/internal/sidebar-02.tsx",
- type: "registry:internal",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/internal/sidebar-02.tsx")),
- source: "",
- meta: undefined,
- },
- "v0-sidebar-03": {
- name: "v0-sidebar-03",
- description: "",
- type: "registry:internal",
- registryDependencies: ["sidebar","breadcrumb"],
- files: [{
- path: "registry/default/internal/sidebar-03.tsx",
- type: "registry:internal",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/internal/sidebar-03.tsx")),
- source: "",
- meta: undefined,
- },
- "v0-sidebar-04": {
- name: "v0-sidebar-04",
- description: "",
- type: "registry:internal",
- registryDependencies: ["sidebar","breadcrumb","separator"],
- files: [{
- path: "registry/default/internal/sidebar-04.tsx",
- type: "registry:internal",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/internal/sidebar-04.tsx")),
- source: "",
- meta: undefined,
- },
- "v0-sidebar-05": {
- name: "v0-sidebar-05",
- description: "",
- type: "registry:internal",
- registryDependencies: ["sidebar","breadcrumb","separator","label","collapsible"],
- files: [{
- path: "registry/default/internal/sidebar-05.tsx",
- type: "registry:internal",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/internal/sidebar-05.tsx")),
- source: "",
- meta: undefined,
- },
- "v0-sidebar-06": {
- name: "v0-sidebar-06",
- description: "",
- type: "registry:internal",
- registryDependencies: ["sidebar","breadcrumb","separator","card","dropdown-menu"],
- files: [{
- path: "registry/default/internal/sidebar-06.tsx",
- type: "registry:internal",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/internal/sidebar-06.tsx")),
- source: "",
- meta: undefined,
- },
- "v0-sidebar-07": {
- name: "v0-sidebar-07",
- description: "",
- type: "registry:internal",
- registryDependencies: ["sidebar","breadcrumb","separator","collapsible","dropdown-menu","avatar"],
- files: [{
- path: "registry/default/internal/sidebar-07.tsx",
- type: "registry:internal",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/internal/sidebar-07.tsx")),
- source: "",
- meta: undefined,
- },
- "v0-sidebar-08": {
- name: "v0-sidebar-08",
- description: "",
- type: "registry:internal",
- registryDependencies: ["sidebar","breadcrumb","separator","collapsible","dropdown-menu","avatar"],
- files: [{
- path: "registry/default/internal/sidebar-08.tsx",
- type: "registry:internal",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/internal/sidebar-08.tsx")),
- source: "",
- meta: undefined,
- },
- "v0-sidebar-09": {
- name: "v0-sidebar-09",
- description: "",
- type: "registry:internal",
- registryDependencies: ["sidebar","breadcrumb","separator","collapsible","dropdown-menu","avatar","switch"],
- files: [{
- path: "registry/default/internal/sidebar-09.tsx",
- type: "registry:internal",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/internal/sidebar-09.tsx")),
- source: "",
- meta: undefined,
- },
- "v0-sidebar-10": {
- name: "v0-sidebar-10",
- description: "",
- type: "registry:internal",
- registryDependencies: ["sidebar","breadcrumb","separator","popover","collapsible","dropdown-menu"],
- files: [{
- path: "registry/default/internal/sidebar-10.tsx",
- type: "registry:internal",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/internal/sidebar-10.tsx")),
- source: "",
- meta: undefined,
- },
- "v0-sidebar-11": {
- name: "v0-sidebar-11",
- description: "",
- type: "registry:internal",
- registryDependencies: ["sidebar","breadcrumb","separator","collapsible"],
- files: [{
- path: "registry/default/internal/sidebar-11.tsx",
- type: "registry:internal",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/internal/sidebar-11.tsx")),
- source: "",
- meta: undefined,
- },
- "v0-sidebar-12": {
- name: "v0-sidebar-12",
- description: "",
- type: "registry:internal",
- registryDependencies: ["sidebar","breadcrumb","separator","collapsible","calendar","dropdown-menu","avatar"],
- files: [{
- path: "registry/default/internal/sidebar-12.tsx",
- type: "registry:internal",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/internal/sidebar-12.tsx")),
- source: "",
- meta: undefined,
- },
- "v0-sidebar-13": {
- name: "v0-sidebar-13",
- description: "",
- type: "registry:internal",
- registryDependencies: ["sidebar","breadcrumb","button","dialog"],
- files: [{
- path: "registry/default/internal/sidebar-13.tsx",
- type: "registry:internal",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/internal/sidebar-13.tsx")),
- source: "",
- meta: undefined,
- },
- "v0-sidebar-14": {
- name: "v0-sidebar-14",
- description: "",
- type: "registry:internal",
- registryDependencies: ["sidebar","breadcrumb"],
- files: [{
- path: "registry/default/internal/sidebar-14.tsx",
- type: "registry:internal",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/internal/sidebar-14.tsx")),
- source: "",
- meta: undefined,
- },
- "v0-sidebar-15": {
- name: "v0-sidebar-15",
- description: "",
- type: "registry:internal",
- registryDependencies: ["sidebar","breadcrumb","separator","popover","collapsible","dropdown-menu","calendar","avatar"],
- files: [{
- path: "registry/default/internal/sidebar-15.tsx",
- type: "registry:internal",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/internal/sidebar-15.tsx")),
- source: "",
- meta: undefined,
- },
- "v0-login-01": {
- name: "v0-login-01",
- description: "",
- type: "registry:internal",
- registryDependencies: ["button","card","input","label"],
- files: [{
- path: "registry/default/internal/login-01.tsx",
- type: "registry:internal",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/internal/login-01.tsx")),
- source: "",
- meta: undefined,
- },
- "accordion-demo": {
- name: "accordion-demo",
- description: "",
- type: "registry:example",
- registryDependencies: ["accordion"],
- files: [{
- path: "registry/default/examples/accordion-demo.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/accordion-demo.tsx")),
- source: "",
- meta: undefined,
- },
- "alert-demo": {
- name: "alert-demo",
- description: "",
- type: "registry:example",
- registryDependencies: ["alert"],
- files: [{
- path: "registry/default/examples/alert-demo.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/alert-demo.tsx")),
- source: "",
- meta: undefined,
- },
- "alert-destructive": {
- name: "alert-destructive",
- description: "",
- type: "registry:example",
- registryDependencies: ["alert"],
- files: [{
- path: "registry/default/examples/alert-destructive.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/alert-destructive.tsx")),
- source: "",
- meta: undefined,
- },
- "alert-dialog-demo": {
- name: "alert-dialog-demo",
- description: "",
- type: "registry:example",
- registryDependencies: ["alert-dialog","button"],
- files: [{
- path: "registry/default/examples/alert-dialog-demo.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/alert-dialog-demo.tsx")),
- source: "",
- meta: undefined,
- },
- "aspect-ratio-demo": {
- name: "aspect-ratio-demo",
- description: "",
- type: "registry:example",
- registryDependencies: ["aspect-ratio"],
- files: [{
- path: "registry/default/examples/aspect-ratio-demo.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/aspect-ratio-demo.tsx")),
- source: "",
- meta: undefined,
- },
- "avatar-demo": {
- name: "avatar-demo",
- description: "",
- type: "registry:example",
- registryDependencies: ["avatar"],
- files: [{
- path: "registry/default/examples/avatar-demo.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/avatar-demo.tsx")),
- source: "",
- meta: undefined,
- },
- "badge-demo": {
- name: "badge-demo",
- description: "",
- type: "registry:example",
- registryDependencies: ["badge"],
- files: [{
- path: "registry/default/examples/badge-demo.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/badge-demo.tsx")),
- source: "",
- meta: undefined,
- },
- "badge-destructive": {
- name: "badge-destructive",
- description: "",
- type: "registry:example",
- registryDependencies: ["badge"],
- files: [{
- path: "registry/default/examples/badge-destructive.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/badge-destructive.tsx")),
- source: "",
- meta: undefined,
- },
- "badge-outline": {
- name: "badge-outline",
- description: "",
- type: "registry:example",
- registryDependencies: ["badge"],
- files: [{
- path: "registry/default/examples/badge-outline.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/badge-outline.tsx")),
- source: "",
- meta: undefined,
- },
- "badge-secondary": {
- name: "badge-secondary",
- description: "",
- type: "registry:example",
- registryDependencies: ["badge"],
- files: [{
- path: "registry/default/examples/badge-secondary.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/badge-secondary.tsx")),
- source: "",
- meta: undefined,
- },
- "breadcrumb-demo": {
- name: "breadcrumb-demo",
- description: "",
- type: "registry:example",
- registryDependencies: ["breadcrumb"],
- files: [{
- path: "registry/default/examples/breadcrumb-demo.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/breadcrumb-demo.tsx")),
- source: "",
- meta: undefined,
- },
- "breadcrumb-separator": {
- name: "breadcrumb-separator",
- description: "",
- type: "registry:example",
- registryDependencies: ["breadcrumb"],
- files: [{
- path: "registry/default/examples/breadcrumb-separator.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/breadcrumb-separator.tsx")),
- source: "",
- meta: undefined,
- },
- "breadcrumb-dropdown": {
- name: "breadcrumb-dropdown",
- description: "",
- type: "registry:example",
- registryDependencies: ["breadcrumb"],
- files: [{
- path: "registry/default/examples/breadcrumb-dropdown.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/breadcrumb-dropdown.tsx")),
- source: "",
- meta: undefined,
- },
- "breadcrumb-ellipsis": {
- name: "breadcrumb-ellipsis",
- description: "",
- type: "registry:example",
- registryDependencies: ["breadcrumb"],
- files: [{
- path: "registry/default/examples/breadcrumb-ellipsis.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/breadcrumb-ellipsis.tsx")),
- source: "",
- meta: undefined,
- },
- "breadcrumb-link": {
- name: "breadcrumb-link",
- description: "",
- type: "registry:example",
- registryDependencies: ["breadcrumb"],
- files: [{
- path: "registry/default/examples/breadcrumb-link.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/breadcrumb-link.tsx")),
- source: "",
- meta: undefined,
- },
- "breadcrumb-responsive": {
- name: "breadcrumb-responsive",
- description: "",
- type: "registry:example",
- registryDependencies: ["breadcrumb"],
- files: [{
- path: "registry/default/examples/breadcrumb-responsive.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/breadcrumb-responsive.tsx")),
- source: "",
- meta: undefined,
- },
- "button-demo": {
- name: "button-demo",
- description: "",
- type: "registry:example",
- registryDependencies: ["button"],
- files: [{
- path: "registry/default/examples/button-demo.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/button-demo.tsx")),
- source: "",
- meta: undefined,
- },
- "button-secondary": {
- name: "button-secondary",
- description: "",
- type: "registry:example",
- registryDependencies: ["button"],
- files: [{
- path: "registry/default/examples/button-secondary.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/button-secondary.tsx")),
- source: "",
- meta: undefined,
- },
- "button-destructive": {
- name: "button-destructive",
- description: "",
- type: "registry:example",
- registryDependencies: ["button"],
- files: [{
- path: "registry/default/examples/button-destructive.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/button-destructive.tsx")),
- source: "",
- meta: undefined,
- },
- "button-outline": {
- name: "button-outline",
- description: "",
- type: "registry:example",
- registryDependencies: ["button"],
- files: [{
- path: "registry/default/examples/button-outline.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/button-outline.tsx")),
- source: "",
- meta: undefined,
- },
- "button-ghost": {
- name: "button-ghost",
- description: "",
- type: "registry:example",
- registryDependencies: ["button"],
- files: [{
- path: "registry/default/examples/button-ghost.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/button-ghost.tsx")),
- source: "",
- meta: undefined,
- },
- "button-link": {
- name: "button-link",
- description: "",
- type: "registry:example",
- registryDependencies: ["button"],
- files: [{
- path: "registry/default/examples/button-link.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/button-link.tsx")),
- source: "",
- meta: undefined,
- },
- "button-with-icon": {
- name: "button-with-icon",
- description: "",
- type: "registry:example",
- registryDependencies: ["button"],
- files: [{
- path: "registry/default/examples/button-with-icon.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/button-with-icon.tsx")),
- source: "",
- meta: undefined,
- },
- "button-loading": {
- name: "button-loading",
- description: "",
- type: "registry:example",
- registryDependencies: ["button"],
- files: [{
- path: "registry/default/examples/button-loading.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/button-loading.tsx")),
- source: "",
- meta: undefined,
- },
- "button-icon": {
- name: "button-icon",
- description: "",
- type: "registry:example",
- registryDependencies: ["button"],
- files: [{
- path: "registry/default/examples/button-icon.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/button-icon.tsx")),
- source: "",
- meta: undefined,
- },
- "button-as-child": {
- name: "button-as-child",
- description: "",
- type: "registry:example",
- registryDependencies: ["button"],
- files: [{
- path: "registry/default/examples/button-as-child.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/button-as-child.tsx")),
- source: "",
- meta: undefined,
- },
- "calendar-demo": {
- name: "calendar-demo",
- description: "",
- type: "registry:example",
- registryDependencies: ["calendar"],
- files: [{
- path: "registry/default/examples/calendar-demo.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/calendar-demo.tsx")),
- source: "",
- meta: undefined,
- },
- "calendar-form": {
- name: "calendar-form",
- description: "",
- type: "registry:example",
- registryDependencies: ["calendar","form","popover"],
- files: [{
- path: "registry/default/examples/calendar-form.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/calendar-form.tsx")),
- source: "",
- meta: undefined,
- },
- "card-demo": {
- name: "card-demo",
- description: "",
- type: "registry:example",
- registryDependencies: ["card","button","switch"],
- files: [{
- path: "registry/default/examples/card-demo.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/card-demo.tsx")),
- source: "",
- meta: undefined,
- },
- "card-with-form": {
- name: "card-with-form",
- description: "",
- type: "registry:example",
- registryDependencies: ["button","card","input","label","select"],
- files: [{
- path: "registry/default/examples/card-with-form.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/card-with-form.tsx")),
- source: "",
- meta: undefined,
- },
- "carousel-demo": {
- name: "carousel-demo",
- description: "",
- type: "registry:example",
- registryDependencies: ["carousel"],
- files: [{
- path: "registry/default/examples/carousel-demo.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/carousel-demo.tsx")),
- source: "",
- meta: undefined,
- },
- "carousel-size": {
- name: "carousel-size",
- description: "",
- type: "registry:example",
- registryDependencies: ["carousel"],
- files: [{
- path: "registry/default/examples/carousel-size.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/carousel-size.tsx")),
- source: "",
- meta: undefined,
- },
- "carousel-spacing": {
- name: "carousel-spacing",
- description: "",
- type: "registry:example",
- registryDependencies: ["carousel"],
- files: [{
- path: "registry/default/examples/carousel-spacing.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/carousel-spacing.tsx")),
- source: "",
- meta: undefined,
- },
- "carousel-orientation": {
- name: "carousel-orientation",
- description: "",
- type: "registry:example",
- registryDependencies: ["carousel"],
- files: [{
- path: "registry/default/examples/carousel-orientation.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/carousel-orientation.tsx")),
- source: "",
- meta: undefined,
- },
- "carousel-api": {
- name: "carousel-api",
- description: "",
- type: "registry:example",
- registryDependencies: ["carousel"],
- files: [{
- path: "registry/default/examples/carousel-api.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/carousel-api.tsx")),
- source: "",
- meta: undefined,
- },
- "carousel-plugin": {
- name: "carousel-plugin",
- description: "",
- type: "registry:example",
- registryDependencies: ["carousel"],
- files: [{
- path: "registry/default/examples/carousel-plugin.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/carousel-plugin.tsx")),
- source: "",
- meta: undefined,
- },
- "checkbox-demo": {
- name: "checkbox-demo",
- description: "",
- type: "registry:example",
- registryDependencies: ["checkbox"],
- files: [{
- path: "registry/default/examples/checkbox-demo.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/checkbox-demo.tsx")),
- source: "",
- meta: undefined,
- },
- "checkbox-disabled": {
- name: "checkbox-disabled",
- description: "",
- type: "registry:example",
- registryDependencies: ["checkbox"],
- files: [{
- path: "registry/default/examples/checkbox-disabled.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/checkbox-disabled.tsx")),
- source: "",
- meta: undefined,
- },
- "checkbox-form-multiple": {
- name: "checkbox-form-multiple",
- description: "",
- type: "registry:example",
- registryDependencies: ["checkbox","form"],
- files: [{
- path: "registry/default/examples/checkbox-form-multiple.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/checkbox-form-multiple.tsx")),
- source: "",
- meta: undefined,
- },
- "checkbox-form-single": {
- name: "checkbox-form-single",
- description: "",
- type: "registry:example",
- registryDependencies: ["checkbox","form"],
- files: [{
- path: "registry/default/examples/checkbox-form-single.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/checkbox-form-single.tsx")),
- source: "",
- meta: undefined,
- },
- "checkbox-with-text": {
- name: "checkbox-with-text",
- description: "",
- type: "registry:example",
- registryDependencies: ["checkbox"],
- files: [{
- path: "registry/default/examples/checkbox-with-text.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/checkbox-with-text.tsx")),
- source: "",
- meta: undefined,
- },
- "collapsible-demo": {
- name: "collapsible-demo",
- description: "",
- type: "registry:example",
- registryDependencies: ["collapsible"],
- files: [{
- path: "registry/default/examples/collapsible-demo.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/collapsible-demo.tsx")),
- source: "",
- meta: undefined,
- },
- "combobox-demo": {
- name: "combobox-demo",
- description: "",
- type: "registry:example",
- registryDependencies: ["command"],
- files: [{
- path: "registry/default/examples/combobox-demo.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/combobox-demo.tsx")),
- source: "",
- meta: undefined,
- },
- "combobox-dropdown-menu": {
- name: "combobox-dropdown-menu",
- description: "",
- type: "registry:example",
- registryDependencies: ["command","dropdown-menu","button"],
- files: [{
- path: "registry/default/examples/combobox-dropdown-menu.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/combobox-dropdown-menu.tsx")),
- source: "",
- meta: undefined,
- },
- "combobox-form": {
- name: "combobox-form",
- description: "",
- type: "registry:example",
- registryDependencies: ["command","form"],
- files: [{
- path: "registry/default/examples/combobox-form.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/combobox-form.tsx")),
- source: "",
- meta: undefined,
- },
- "combobox-popover": {
- name: "combobox-popover",
- description: "",
- type: "registry:example",
- registryDependencies: ["combobox","popover"],
- files: [{
- path: "registry/default/examples/combobox-popover.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/combobox-popover.tsx")),
- source: "",
- meta: undefined,
- },
- "combobox-responsive": {
- name: "combobox-responsive",
- description: "",
- type: "registry:example",
- registryDependencies: ["combobox","popover","drawer"],
- files: [{
- path: "registry/default/examples/combobox-responsive.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/combobox-responsive.tsx")),
- source: "",
- meta: undefined,
- },
- "command-demo": {
- name: "command-demo",
- description: "",
- type: "registry:example",
- registryDependencies: ["command"],
- files: [{
- path: "registry/default/examples/command-demo.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/command-demo.tsx")),
- source: "",
- meta: undefined,
- },
- "command-dialog": {
- name: "command-dialog",
- description: "",
- type: "registry:example",
- registryDependencies: ["command","dialog"],
- files: [{
- path: "registry/default/examples/command-dialog.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/command-dialog.tsx")),
- source: "",
- meta: undefined,
- },
- "context-menu-demo": {
- name: "context-menu-demo",
- description: "",
- type: "registry:example",
- registryDependencies: ["context-menu"],
- files: [{
- path: "registry/default/examples/context-menu-demo.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/context-menu-demo.tsx")),
- source: "",
- meta: undefined,
- },
- "data-table-demo": {
- name: "data-table-demo",
- description: "",
- type: "registry:example",
- registryDependencies: ["data-table"],
- files: [{
- path: "registry/default/examples/data-table-demo.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/data-table-demo.tsx")),
- source: "",
- meta: undefined,
- },
- "date-picker-demo": {
- name: "date-picker-demo",
- description: "",
- type: "registry:example",
- registryDependencies: ["button","calendar","popover"],
- files: [{
- path: "registry/default/examples/date-picker-demo.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/date-picker-demo.tsx")),
- source: "",
- meta: undefined,
- },
- "date-picker-form": {
- name: "date-picker-form",
- description: "",
- type: "registry:example",
- registryDependencies: ["button","calendar","form","popover"],
- files: [{
- path: "registry/default/examples/date-picker-form.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/date-picker-form.tsx")),
- source: "",
- meta: undefined,
- },
- "date-picker-with-presets": {
- name: "date-picker-with-presets",
- description: "",
- type: "registry:example",
- registryDependencies: ["button","calendar","popover","select"],
- files: [{
- path: "registry/default/examples/date-picker-with-presets.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/date-picker-with-presets.tsx")),
- source: "",
- meta: undefined,
- },
- "date-picker-with-range": {
- name: "date-picker-with-range",
- description: "",
- type: "registry:example",
- registryDependencies: ["button","calendar","popover"],
- files: [{
- path: "registry/default/examples/date-picker-with-range.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/date-picker-with-range.tsx")),
- source: "",
- meta: undefined,
- },
- "dialog-demo": {
- name: "dialog-demo",
- description: "",
- type: "registry:example",
- registryDependencies: ["dialog"],
- files: [{
- path: "registry/default/examples/dialog-demo.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/dialog-demo.tsx")),
- source: "",
- meta: undefined,
- },
- "dialog-close-button": {
- name: "dialog-close-button",
- description: "",
- type: "registry:example",
- registryDependencies: ["dialog","button"],
- files: [{
- path: "registry/default/examples/dialog-close-button.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/dialog-close-button.tsx")),
- source: "",
- meta: undefined,
- },
- "drawer-demo": {
- name: "drawer-demo",
- description: "",
- type: "registry:example",
- registryDependencies: ["drawer"],
- files: [{
- path: "registry/default/examples/drawer-demo.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/drawer-demo.tsx")),
- source: "",
- meta: undefined,
- },
- "drawer-dialog": {
- name: "drawer-dialog",
- description: "",
- type: "registry:example",
- registryDependencies: ["drawer","dialog"],
- files: [{
- path: "registry/default/examples/drawer-dialog.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/drawer-dialog.tsx")),
- source: "",
- meta: undefined,
- },
- "dropdown-menu-demo": {
- name: "dropdown-menu-demo",
- description: "",
- type: "registry:example",
- registryDependencies: ["dropdown-menu"],
- files: [{
- path: "registry/default/examples/dropdown-menu-demo.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/dropdown-menu-demo.tsx")),
- source: "",
- meta: undefined,
- },
- "dropdown-menu-checkboxes": {
- name: "dropdown-menu-checkboxes",
- description: "",
- type: "registry:example",
- registryDependencies: ["dropdown-menu","checkbox"],
- files: [{
- path: "registry/default/examples/dropdown-menu-checkboxes.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/dropdown-menu-checkboxes.tsx")),
- source: "",
- meta: undefined,
- },
- "dropdown-menu-radio-group": {
- name: "dropdown-menu-radio-group",
- description: "",
- type: "registry:example",
- registryDependencies: ["dropdown-menu","radio-group"],
- files: [{
- path: "registry/default/examples/dropdown-menu-radio-group.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/dropdown-menu-radio-group.tsx")),
- source: "",
- meta: undefined,
- },
- "hover-card-demo": {
- name: "hover-card-demo",
- description: "",
- type: "registry:example",
- registryDependencies: ["hover-card"],
- files: [{
- path: "registry/default/examples/hover-card-demo.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/hover-card-demo.tsx")),
- source: "",
- meta: undefined,
- },
- "input-demo": {
- name: "input-demo",
- description: "",
- type: "registry:example",
- registryDependencies: ["input"],
- files: [{
- path: "registry/default/examples/input-demo.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/input-demo.tsx")),
- source: "",
- meta: undefined,
- },
- "input-disabled": {
- name: "input-disabled",
- description: "",
- type: "registry:example",
- registryDependencies: ["input"],
- files: [{
- path: "registry/default/examples/input-disabled.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/input-disabled.tsx")),
- source: "",
- meta: undefined,
- },
- "input-file": {
- name: "input-file",
- description: "",
- type: "registry:example",
- registryDependencies: ["input"],
- files: [{
- path: "registry/default/examples/input-file.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/input-file.tsx")),
- source: "",
- meta: undefined,
- },
- "input-form": {
- name: "input-form",
- description: "",
- type: "registry:example",
- registryDependencies: ["input","button","form"],
- files: [{
- path: "registry/default/examples/input-form.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/input-form.tsx")),
- source: "",
- meta: undefined,
- },
- "input-with-button": {
- name: "input-with-button",
- description: "",
- type: "registry:example",
- registryDependencies: ["input","button"],
- files: [{
- path: "registry/default/examples/input-with-button.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/input-with-button.tsx")),
- source: "",
- meta: undefined,
- },
- "input-with-label": {
- name: "input-with-label",
- description: "",
- type: "registry:example",
- registryDependencies: ["input","button","label"],
- files: [{
- path: "registry/default/examples/input-with-label.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/input-with-label.tsx")),
- source: "",
- meta: undefined,
- },
- "input-with-text": {
- name: "input-with-text",
- description: "",
- type: "registry:example",
- registryDependencies: ["input","button","label"],
- files: [{
- path: "registry/default/examples/input-with-text.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/input-with-text.tsx")),
- source: "",
- meta: undefined,
- },
- "input-otp-demo": {
- name: "input-otp-demo",
- description: "",
- type: "registry:example",
- registryDependencies: ["input-otp"],
- files: [{
- path: "registry/default/examples/input-otp-demo.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/input-otp-demo.tsx")),
- source: "",
- meta: undefined,
- },
- "input-otp-pattern": {
- name: "input-otp-pattern",
- description: "",
- type: "registry:example",
- registryDependencies: ["input-otp"],
- files: [{
- path: "registry/default/examples/input-otp-pattern.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/input-otp-pattern.tsx")),
- source: "",
- meta: undefined,
- },
- "input-otp-separator": {
- name: "input-otp-separator",
- description: "",
- type: "registry:example",
- registryDependencies: ["input-otp"],
- files: [{
- path: "registry/default/examples/input-otp-separator.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/input-otp-separator.tsx")),
- source: "",
- meta: undefined,
- },
- "input-otp-controlled": {
- name: "input-otp-controlled",
- description: "",
- type: "registry:example",
- registryDependencies: ["input-otp"],
- files: [{
- path: "registry/default/examples/input-otp-controlled.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/input-otp-controlled.tsx")),
- source: "",
- meta: undefined,
- },
- "input-otp-form": {
- name: "input-otp-form",
- description: "",
- type: "registry:example",
- registryDependencies: ["input-otp","form"],
- files: [{
- path: "registry/default/examples/input-otp-form.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/input-otp-form.tsx")),
- source: "",
- meta: undefined,
- },
- "label-demo": {
- name: "label-demo",
- description: "",
- type: "registry:example",
- registryDependencies: ["label"],
- files: [{
- path: "registry/default/examples/label-demo.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/label-demo.tsx")),
- source: "",
- meta: undefined,
- },
- "menubar-demo": {
- name: "menubar-demo",
- description: "",
- type: "registry:example",
- registryDependencies: ["menubar"],
- files: [{
- path: "registry/default/examples/menubar-demo.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/menubar-demo.tsx")),
- source: "",
- meta: undefined,
- },
- "navigation-menu-demo": {
- name: "navigation-menu-demo",
- description: "",
- type: "registry:example",
- registryDependencies: ["navigation-menu"],
- files: [{
- path: "registry/default/examples/navigation-menu-demo.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/navigation-menu-demo.tsx")),
- source: "",
- meta: undefined,
- },
- "pagination-demo": {
- name: "pagination-demo",
- description: "",
- type: "registry:example",
- registryDependencies: ["pagination"],
- files: [{
- path: "registry/default/examples/pagination-demo.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/pagination-demo.tsx")),
- source: "",
- meta: undefined,
- },
- "popover-demo": {
- name: "popover-demo",
- description: "",
- type: "registry:example",
- registryDependencies: ["popover"],
- files: [{
- path: "registry/default/examples/popover-demo.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/popover-demo.tsx")),
- source: "",
- meta: undefined,
- },
- "progress-demo": {
- name: "progress-demo",
- description: "",
- type: "registry:example",
- registryDependencies: ["progress"],
- files: [{
- path: "registry/default/examples/progress-demo.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/progress-demo.tsx")),
- source: "",
- meta: undefined,
- },
- "radio-group-demo": {
- name: "radio-group-demo",
- description: "",
- type: "registry:example",
- registryDependencies: ["radio-group"],
- files: [{
- path: "registry/default/examples/radio-group-demo.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/radio-group-demo.tsx")),
- source: "",
- meta: undefined,
- },
- "radio-group-form": {
- name: "radio-group-form",
- description: "",
- type: "registry:example",
- registryDependencies: ["radio-group","form"],
- files: [{
- path: "registry/default/examples/radio-group-form.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/radio-group-form.tsx")),
- source: "",
- meta: undefined,
- },
- "resizable-demo": {
- name: "resizable-demo",
- description: "",
- type: "registry:example",
- registryDependencies: ["resizable"],
- files: [{
- path: "registry/default/examples/resizable-demo.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/resizable-demo.tsx")),
- source: "",
- meta: undefined,
- },
- "resizable-demo-with-handle": {
- name: "resizable-demo-with-handle",
- description: "",
- type: "registry:example",
- registryDependencies: ["resizable"],
- files: [{
- path: "registry/default/examples/resizable-demo-with-handle.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/resizable-demo-with-handle.tsx")),
- source: "",
- meta: undefined,
- },
- "resizable-vertical": {
- name: "resizable-vertical",
- description: "",
- type: "registry:example",
- registryDependencies: ["resizable"],
- files: [{
- path: "registry/default/examples/resizable-vertical.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/resizable-vertical.tsx")),
- source: "",
- meta: undefined,
- },
- "resizable-handle": {
- name: "resizable-handle",
- description: "",
- type: "registry:example",
- registryDependencies: ["resizable"],
- files: [{
- path: "registry/default/examples/resizable-handle.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/resizable-handle.tsx")),
- source: "",
- meta: undefined,
- },
- "scroll-area-demo": {
- name: "scroll-area-demo",
- description: "",
- type: "registry:example",
- registryDependencies: ["scroll-area"],
- files: [{
- path: "registry/default/examples/scroll-area-demo.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/scroll-area-demo.tsx")),
- source: "",
- meta: undefined,
- },
- "scroll-area-horizontal-demo": {
- name: "scroll-area-horizontal-demo",
- description: "",
- type: "registry:example",
- registryDependencies: ["scroll-area"],
- files: [{
- path: "registry/default/examples/scroll-area-horizontal-demo.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/scroll-area-horizontal-demo.tsx")),
- source: "",
- meta: undefined,
- },
- "select-demo": {
- name: "select-demo",
- description: "",
- type: "registry:example",
- registryDependencies: ["select"],
- files: [{
- path: "registry/default/examples/select-demo.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/select-demo.tsx")),
- source: "",
- meta: undefined,
- },
- "select-scrollable": {
- name: "select-scrollable",
- description: "",
- type: "registry:example",
- registryDependencies: ["select"],
- files: [{
- path: "registry/default/examples/select-scrollable.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/select-scrollable.tsx")),
- source: "",
- meta: undefined,
- },
- "select-form": {
- name: "select-form",
- description: "",
- type: "registry:example",
- registryDependencies: ["select"],
- files: [{
- path: "registry/default/examples/select-form.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/select-form.tsx")),
- source: "",
- meta: undefined,
- },
- "separator-demo": {
- name: "separator-demo",
- description: "",
- type: "registry:example",
- registryDependencies: ["separator"],
- files: [{
- path: "registry/default/examples/separator-demo.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/separator-demo.tsx")),
- source: "",
- meta: undefined,
- },
- "sheet-demo": {
- name: "sheet-demo",
- description: "",
- type: "registry:example",
- registryDependencies: ["sheet"],
- files: [{
- path: "registry/default/examples/sheet-demo.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/sheet-demo.tsx")),
- source: "",
- meta: undefined,
- },
- "sheet-side": {
- name: "sheet-side",
- description: "",
- type: "registry:example",
- registryDependencies: ["sheet"],
- files: [{
- path: "registry/default/examples/sheet-side.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/sheet-side.tsx")),
- source: "",
- meta: undefined,
- },
- "skeleton-demo": {
- name: "skeleton-demo",
- description: "",
- type: "registry:example",
- registryDependencies: ["skeleton"],
- files: [{
- path: "registry/default/examples/skeleton-demo.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/skeleton-demo.tsx")),
- source: "",
- meta: undefined,
- },
- "skeleton-card": {
- name: "skeleton-card",
- description: "",
- type: "registry:example",
- registryDependencies: ["skeleton"],
- files: [{
- path: "registry/default/examples/skeleton-card.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/skeleton-card.tsx")),
- source: "",
- meta: undefined,
- },
- "slider-demo": {
- name: "slider-demo",
- description: "",
- type: "registry:example",
- registryDependencies: ["slider"],
- files: [{
- path: "registry/default/examples/slider-demo.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/slider-demo.tsx")),
- source: "",
- meta: undefined,
- },
- "sonner-demo": {
- name: "sonner-demo",
- description: "",
- type: "registry:example",
- registryDependencies: ["sonner"],
- files: [{
- path: "registry/default/examples/sonner-demo.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/sonner-demo.tsx")),
- source: "",
- meta: undefined,
- },
- "switch-demo": {
- name: "switch-demo",
- description: "",
- type: "registry:example",
- registryDependencies: ["switch"],
- files: [{
- path: "registry/default/examples/switch-demo.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/switch-demo.tsx")),
- source: "",
- meta: undefined,
- },
- "switch-form": {
- name: "switch-form",
- description: "",
- type: "registry:example",
- registryDependencies: ["switch","form"],
- files: [{
- path: "registry/default/examples/switch-form.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/switch-form.tsx")),
- source: "",
- meta: undefined,
- },
- "table-demo": {
- name: "table-demo",
- description: "",
- type: "registry:example",
- registryDependencies: ["table"],
- files: [{
- path: "registry/default/examples/table-demo.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/table-demo.tsx")),
- source: "",
- meta: undefined,
- },
- "tabs-demo": {
- name: "tabs-demo",
- description: "",
- type: "registry:example",
- registryDependencies: ["tabs"],
- files: [{
- path: "registry/default/examples/tabs-demo.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/tabs-demo.tsx")),
- source: "",
- meta: undefined,
- },
- "textarea-demo": {
- name: "textarea-demo",
- description: "",
- type: "registry:example",
- registryDependencies: ["textarea"],
- files: [{
- path: "registry/default/examples/textarea-demo.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/textarea-demo.tsx")),
- source: "",
- meta: undefined,
- },
- "textarea-disabled": {
- name: "textarea-disabled",
- description: "",
- type: "registry:example",
- registryDependencies: ["textarea"],
- files: [{
- path: "registry/default/examples/textarea-disabled.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/textarea-disabled.tsx")),
- source: "",
- meta: undefined,
- },
- "textarea-form": {
- name: "textarea-form",
- description: "",
- type: "registry:example",
- registryDependencies: ["textarea","form"],
- files: [{
- path: "registry/default/examples/textarea-form.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/textarea-form.tsx")),
- source: "",
- meta: undefined,
- },
- "textarea-with-button": {
- name: "textarea-with-button",
- description: "",
- type: "registry:example",
- registryDependencies: ["textarea","button"],
- files: [{
- path: "registry/default/examples/textarea-with-button.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/textarea-with-button.tsx")),
- source: "",
- meta: undefined,
- },
- "textarea-with-label": {
- name: "textarea-with-label",
- description: "",
- type: "registry:example",
- registryDependencies: ["textarea","label"],
- files: [{
- path: "registry/default/examples/textarea-with-label.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/textarea-with-label.tsx")),
- source: "",
- meta: undefined,
- },
- "textarea-with-text": {
- name: "textarea-with-text",
- description: "",
- type: "registry:example",
- registryDependencies: ["textarea","label"],
- files: [{
- path: "registry/default/examples/textarea-with-text.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/textarea-with-text.tsx")),
- source: "",
- meta: undefined,
- },
- "toast-demo": {
- name: "toast-demo",
- description: "",
- type: "registry:example",
- registryDependencies: ["toast"],
- files: [{
- path: "registry/default/examples/toast-demo.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/toast-demo.tsx")),
- source: "",
- meta: undefined,
- },
- "toast-destructive": {
- name: "toast-destructive",
- description: "",
- type: "registry:example",
- registryDependencies: ["toast"],
- files: [{
- path: "registry/default/examples/toast-destructive.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/toast-destructive.tsx")),
- source: "",
- meta: undefined,
- },
- "toast-simple": {
- name: "toast-simple",
- description: "",
- type: "registry:example",
- registryDependencies: ["toast"],
- files: [{
- path: "registry/default/examples/toast-simple.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/toast-simple.tsx")),
- source: "",
- meta: undefined,
- },
- "toast-with-action": {
- name: "toast-with-action",
- description: "",
- type: "registry:example",
- registryDependencies: ["toast"],
- files: [{
- path: "registry/default/examples/toast-with-action.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/toast-with-action.tsx")),
- source: "",
- meta: undefined,
- },
- "toast-with-title": {
- name: "toast-with-title",
- description: "",
- type: "registry:example",
- registryDependencies: ["toast"],
- files: [{
- path: "registry/default/examples/toast-with-title.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/toast-with-title.tsx")),
- source: "",
- meta: undefined,
- },
- "toggle-group-demo": {
- name: "toggle-group-demo",
- description: "",
- type: "registry:example",
- registryDependencies: ["toggle-group"],
- files: [{
- path: "registry/default/examples/toggle-group-demo.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/toggle-group-demo.tsx")),
- source: "",
- meta: undefined,
- },
- "toggle-group-disabled": {
- name: "toggle-group-disabled",
- description: "",
- type: "registry:example",
- registryDependencies: ["toggle-group"],
- files: [{
- path: "registry/default/examples/toggle-group-disabled.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/toggle-group-disabled.tsx")),
- source: "",
- meta: undefined,
- },
- "toggle-group-lg": {
- name: "toggle-group-lg",
- description: "",
- type: "registry:example",
- registryDependencies: ["toggle-group"],
- files: [{
- path: "registry/default/examples/toggle-group-lg.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/toggle-group-lg.tsx")),
- source: "",
- meta: undefined,
- },
- "toggle-group-outline": {
- name: "toggle-group-outline",
- description: "",
- type: "registry:example",
- registryDependencies: ["toggle-group"],
- files: [{
- path: "registry/default/examples/toggle-group-outline.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/toggle-group-outline.tsx")),
- source: "",
- meta: undefined,
- },
- "toggle-group-sm": {
- name: "toggle-group-sm",
- description: "",
- type: "registry:example",
- registryDependencies: ["toggle-group"],
- files: [{
- path: "registry/default/examples/toggle-group-sm.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/toggle-group-sm.tsx")),
- source: "",
- meta: undefined,
- },
- "toggle-group-single": {
- name: "toggle-group-single",
- description: "",
- type: "registry:example",
- registryDependencies: ["toggle-group"],
- files: [{
- path: "registry/default/examples/toggle-group-single.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/toggle-group-single.tsx")),
- source: "",
- meta: undefined,
- },
- "toggle-demo": {
- name: "toggle-demo",
- description: "",
- type: "registry:example",
- registryDependencies: ["toggle"],
- files: [{
- path: "registry/default/examples/toggle-demo.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/toggle-demo.tsx")),
- source: "",
- meta: undefined,
- },
- "toggle-disabled": {
- name: "toggle-disabled",
- description: "",
- type: "registry:example",
- registryDependencies: ["toggle"],
- files: [{
- path: "registry/default/examples/toggle-disabled.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/toggle-disabled.tsx")),
- source: "",
- meta: undefined,
- },
- "toggle-lg": {
- name: "toggle-lg",
- description: "",
- type: "registry:example",
- registryDependencies: ["toggle"],
- files: [{
- path: "registry/default/examples/toggle-lg.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/toggle-lg.tsx")),
- source: "",
- meta: undefined,
- },
- "toggle-outline": {
- name: "toggle-outline",
- description: "",
- type: "registry:example",
- registryDependencies: ["toggle"],
- files: [{
- path: "registry/default/examples/toggle-outline.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/toggle-outline.tsx")),
- source: "",
- meta: undefined,
- },
- "toggle-sm": {
- name: "toggle-sm",
- description: "",
- type: "registry:example",
- registryDependencies: ["toggle"],
- files: [{
- path: "registry/default/examples/toggle-sm.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/toggle-sm.tsx")),
- source: "",
- meta: undefined,
- },
- "toggle-with-text": {
- name: "toggle-with-text",
- description: "",
- type: "registry:example",
- registryDependencies: ["toggle"],
- files: [{
- path: "registry/default/examples/toggle-with-text.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/toggle-with-text.tsx")),
- source: "",
- meta: undefined,
- },
- "tooltip-demo": {
- name: "tooltip-demo",
- description: "",
- type: "registry:example",
- registryDependencies: ["tooltip"],
- files: [{
- path: "registry/default/examples/tooltip-demo.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/tooltip-demo.tsx")),
- source: "",
- meta: undefined,
- },
- "typography-blockquote": {
- name: "typography-blockquote",
- description: "",
- type: "registry:example",
- registryDependencies: undefined,
- files: [{
- path: "registry/default/examples/typography-blockquote.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/typography-blockquote.tsx")),
- source: "",
- meta: undefined,
- },
- "typography-demo": {
- name: "typography-demo",
- description: "",
- type: "registry:example",
- registryDependencies: undefined,
- files: [{
- path: "registry/default/examples/typography-demo.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/typography-demo.tsx")),
- source: "",
- meta: undefined,
- },
- "typography-h1": {
- name: "typography-h1",
- description: "",
- type: "registry:example",
- registryDependencies: undefined,
- files: [{
- path: "registry/default/examples/typography-h1.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/typography-h1.tsx")),
- source: "",
- meta: undefined,
- },
- "typography-h2": {
- name: "typography-h2",
- description: "",
- type: "registry:example",
- registryDependencies: undefined,
- files: [{
- path: "registry/default/examples/typography-h2.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/typography-h2.tsx")),
- source: "",
- meta: undefined,
- },
- "typography-h3": {
- name: "typography-h3",
- description: "",
- type: "registry:example",
- registryDependencies: undefined,
- files: [{
- path: "registry/default/examples/typography-h3.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/typography-h3.tsx")),
- source: "",
- meta: undefined,
- },
- "typography-h4": {
- name: "typography-h4",
- description: "",
- type: "registry:example",
- registryDependencies: undefined,
- files: [{
- path: "registry/default/examples/typography-h4.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/typography-h4.tsx")),
- source: "",
- meta: undefined,
- },
- "typography-inline-code": {
- name: "typography-inline-code",
- description: "",
- type: "registry:example",
- registryDependencies: undefined,
- files: [{
- path: "registry/default/examples/typography-inline-code.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/typography-inline-code.tsx")),
- source: "",
- meta: undefined,
- },
- "typography-large": {
- name: "typography-large",
- description: "",
- type: "registry:example",
- registryDependencies: undefined,
- files: [{
- path: "registry/default/examples/typography-large.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/typography-large.tsx")),
- source: "",
- meta: undefined,
- },
- "typography-lead": {
- name: "typography-lead",
- description: "",
- type: "registry:example",
- registryDependencies: undefined,
- files: [{
- path: "registry/default/examples/typography-lead.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/typography-lead.tsx")),
- source: "",
- meta: undefined,
- },
- "typography-list": {
- name: "typography-list",
- description: "",
- type: "registry:example",
- registryDependencies: undefined,
- files: [{
- path: "registry/default/examples/typography-list.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/typography-list.tsx")),
- source: "",
- meta: undefined,
- },
- "typography-muted": {
- name: "typography-muted",
- description: "",
- type: "registry:example",
- registryDependencies: undefined,
- files: [{
- path: "registry/default/examples/typography-muted.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/typography-muted.tsx")),
- source: "",
- meta: undefined,
- },
- "typography-p": {
- name: "typography-p",
- description: "",
- type: "registry:example",
- registryDependencies: undefined,
- files: [{
- path: "registry/default/examples/typography-p.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/typography-p.tsx")),
- source: "",
- meta: undefined,
- },
- "typography-small": {
- name: "typography-small",
- description: "",
- type: "registry:example",
- registryDependencies: undefined,
- files: [{
- path: "registry/default/examples/typography-small.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/typography-small.tsx")),
- source: "",
- meta: undefined,
- },
- "typography-table": {
- name: "typography-table",
- description: "",
- type: "registry:example",
- registryDependencies: undefined,
- files: [{
- path: "registry/default/examples/typography-table.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/typography-table.tsx")),
- source: "",
- meta: undefined,
- },
- "mode-toggle": {
- name: "mode-toggle",
- description: "",
- type: "registry:example",
- registryDependencies: undefined,
- files: [{
- path: "registry/default/examples/mode-toggle.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/mode-toggle.tsx")),
- source: "",
- meta: undefined,
- },
- "chart-bar-demo": {
- name: "chart-bar-demo",
- description: "",
- type: "registry:example",
- registryDependencies: undefined,
- files: [{
- path: "registry/default/examples/chart-bar-demo.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/chart-bar-demo.tsx")),
- source: "",
- meta: undefined,
- },
- "chart-bar-demo-grid": {
- name: "chart-bar-demo-grid",
- description: "",
- type: "registry:example",
- registryDependencies: undefined,
- files: [{
- path: "registry/default/examples/chart-bar-demo-grid.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/chart-bar-demo-grid.tsx")),
- source: "",
- meta: undefined,
- },
- "chart-bar-demo-axis": {
- name: "chart-bar-demo-axis",
- description: "",
- type: "registry:example",
- registryDependencies: undefined,
- files: [{
- path: "registry/default/examples/chart-bar-demo-axis.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/chart-bar-demo-axis.tsx")),
- source: "",
- meta: undefined,
- },
- "chart-bar-demo-tooltip": {
- name: "chart-bar-demo-tooltip",
- description: "",
- type: "registry:example",
- registryDependencies: undefined,
- files: [{
- path: "registry/default/examples/chart-bar-demo-tooltip.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/chart-bar-demo-tooltip.tsx")),
- source: "",
- meta: undefined,
- },
- "chart-bar-demo-legend": {
- name: "chart-bar-demo-legend",
- description: "",
- type: "registry:example",
- registryDependencies: undefined,
- files: [{
- path: "registry/default/examples/chart-bar-demo-legend.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/chart-bar-demo-legend.tsx")),
- source: "",
- meta: undefined,
- },
- "chart-tooltip-demo": {
- name: "chart-tooltip-demo",
- description: "",
- type: "registry:example",
- registryDependencies: undefined,
- files: [{
- path: "registry/default/examples/chart-tooltip-demo.tsx",
- type: "registry:example",
- target: ""
- }],
- categories: undefined,
- component: React.lazy(() => import("@/registry/default/examples/chart-tooltip-demo.tsx")),
- source: "",
- meta: undefined,
- },
- },
-}
diff --git a/deprecated/www/__registry__/new-york/block/sidebar-16/page.tsx b/deprecated/www/__registry__/new-york/block/sidebar-16/page.tsx
deleted file mode 100644
index d639e07c2e..0000000000
--- a/deprecated/www/__registry__/new-york/block/sidebar-16/page.tsx
+++ /dev/null
@@ -1,134 +0,0 @@
-"use client"
-
-import * as React from "react"
-import { Command, Sidebar } from "lucide-react"
-
-import { AppSidebar } from "@/registry/new-york/block/sidebar-16/components/app-sidebar"
-import {
- Breadcrumb,
- BreadcrumbItem,
- BreadcrumbLink,
- BreadcrumbList,
- BreadcrumbPage,
- BreadcrumbSeparator,
-} from "@/registry/new-york/ui/breadcrumb"
-import { Button } from "@/registry/new-york/ui/button"
-import { Separator } from "@/registry/new-york/ui/separator"
-import {
- SidebarInset,
- SidebarProvider,
- SidebarTrigger,
-} from "@/registry/new-york/ui/sidebar"
-
-export const iframeHeight = "800px"
-
-export const description = "An inset sidebar with site header navigation."
-
-const HEADER_HEIGHT = "4rem"
-
-export default function Page() {
- const [open, setOpen] = React.useState(true)
-
- return (
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Building Your Application
-
-
-
-
- Data Fetching
-
-
-
-
-
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/blocks/app-01/page.tsx b/deprecated/www/__registry__/new-york/blocks/app-01/page.tsx
deleted file mode 100644
index cd86b7dc4f..0000000000
--- a/deprecated/www/__registry__/new-york/blocks/app-01/page.tsx
+++ /dev/null
@@ -1,27 +0,0 @@
-import { AddTaskForm } from "@/registry/new-york/blocks/app-01/components/add-task-form"
-import { TasksList } from "@/registry/new-york/blocks/app-01/components/tasks-list"
-import {
- Card,
- CardContent,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-
-export default function AppPage() {
- return (
-
-
-
- Add Task
-
-
-
-
-
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/blocks/button-01/page.tsx b/deprecated/www/__registry__/new-york/blocks/button-01/page.tsx
deleted file mode 100644
index da382c533c..0000000000
--- a/deprecated/www/__registry__/new-york/blocks/button-01/page.tsx
+++ /dev/null
@@ -1,9 +0,0 @@
-import { AmazingButton } from "@/registry/new-york/blocks/button-01/components/amazing-button"
-
-export default function Page() {
- return (
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/blocks/calendar-01.tsx b/deprecated/www/__registry__/new-york/blocks/calendar-01.tsx
deleted file mode 100644
index 6ec892f267..0000000000
--- a/deprecated/www/__registry__/new-york/blocks/calendar-01.tsx
+++ /dev/null
@@ -1,21 +0,0 @@
-"use client"
-
-import * as React from "react"
-
-import { Calendar } from "@/registry/new-york/ui/calendar"
-
-export default function Calendar01() {
- const [date, setDate] = React.useState(
- new Date(2025, 5, 12)
- )
-
- return (
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/blocks/calendar-02.tsx b/deprecated/www/__registry__/new-york/blocks/calendar-02.tsx
deleted file mode 100644
index ec4099fc80..0000000000
--- a/deprecated/www/__registry__/new-york/blocks/calendar-02.tsx
+++ /dev/null
@@ -1,22 +0,0 @@
-"use client"
-
-import * as React from "react"
-
-import { Calendar } from "@/registry/new-york/ui/calendar"
-
-export default function Calendar02() {
- const [date, setDate] = React.useState(
- new Date(2025, 5, 12)
- )
-
- return (
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/blocks/calendar-03.tsx b/deprecated/www/__registry__/new-york/blocks/calendar-03.tsx
deleted file mode 100644
index fa06eb391f..0000000000
--- a/deprecated/www/__registry__/new-york/blocks/calendar-03.tsx
+++ /dev/null
@@ -1,25 +0,0 @@
-"use client"
-
-import * as React from "react"
-
-import { Calendar } from "@/registry/new-york/ui/calendar"
-
-export default function Calendar03() {
- const [dates, setDates] = React.useState([
- new Date(2025, 5, 12),
- new Date(2025, 6, 24),
- ])
-
- return (
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/blocks/calendar-04.tsx b/deprecated/www/__registry__/new-york/blocks/calendar-04.tsx
deleted file mode 100644
index d3f823baf8..0000000000
--- a/deprecated/www/__registry__/new-york/blocks/calendar-04.tsx
+++ /dev/null
@@ -1,23 +0,0 @@
-"use client"
-
-import * as React from "react"
-import { type DateRange } from "react-day-picker"
-
-import { Calendar } from "@/registry/new-york/ui/calendar"
-
-export default function Calendar04() {
- const [dateRange, setDateRange] = React.useState({
- from: new Date(2025, 5, 9),
- to: new Date(2025, 5, 26),
- })
-
- return (
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/blocks/calendar-05.tsx b/deprecated/www/__registry__/new-york/blocks/calendar-05.tsx
deleted file mode 100644
index ec01627f23..0000000000
--- a/deprecated/www/__registry__/new-york/blocks/calendar-05.tsx
+++ /dev/null
@@ -1,24 +0,0 @@
-"use client"
-
-import * as React from "react"
-import { type DateRange } from "react-day-picker"
-
-import { Calendar } from "@/registry/new-york/ui/calendar"
-
-export default function Calendar05() {
- const [dateRange, setDateRange] = React.useState({
- from: new Date(2025, 5, 12),
- to: new Date(2025, 6, 15),
- })
-
- return (
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/blocks/calendar-06.tsx b/deprecated/www/__registry__/new-york/blocks/calendar-06.tsx
deleted file mode 100644
index 9d8cc09c9d..0000000000
--- a/deprecated/www/__registry__/new-york/blocks/calendar-06.tsx
+++ /dev/null
@@ -1,30 +0,0 @@
-"use client"
-
-import * as React from "react"
-import { type DateRange } from "react-day-picker"
-
-import { Calendar } from "@/registry/new-york/ui/calendar"
-
-export default function Calendar06() {
- const [dateRange, setDateRange] = React.useState({
- from: new Date(2025, 5, 12),
- to: new Date(2025, 5, 26),
- })
-
- return (
-
-
-
- A minimum of 5 days is required
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/blocks/calendar-07.tsx b/deprecated/www/__registry__/new-york/blocks/calendar-07.tsx
deleted file mode 100644
index 26651effb9..0000000000
--- a/deprecated/www/__registry__/new-york/blocks/calendar-07.tsx
+++ /dev/null
@@ -1,31 +0,0 @@
-"use client"
-
-import * as React from "react"
-import { type DateRange } from "react-day-picker"
-
-import { Calendar } from "@/registry/new-york/ui/calendar"
-
-export default function Calendar07() {
- const [dateRange, setDateRange] = React.useState({
- from: new Date(2025, 5, 18),
- to: new Date(2025, 6, 7),
- })
-
- return (
-
-
-
- Your stay must be between 2 and 20 nights
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/blocks/calendar-08.tsx b/deprecated/www/__registry__/new-york/blocks/calendar-08.tsx
deleted file mode 100644
index 094f975b2d..0000000000
--- a/deprecated/www/__registry__/new-york/blocks/calendar-08.tsx
+++ /dev/null
@@ -1,24 +0,0 @@
-"use client"
-
-import * as React from "react"
-
-import { Calendar } from "@/registry/new-york/ui/calendar"
-
-export default function Calendar08() {
- const [date, setDate] = React.useState(
- new Date(2025, 5, 12)
- )
-
- return (
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/blocks/calendar-09.tsx b/deprecated/www/__registry__/new-york/blocks/calendar-09.tsx
deleted file mode 100644
index f46cb5b13e..0000000000
--- a/deprecated/www/__registry__/new-york/blocks/calendar-09.tsx
+++ /dev/null
@@ -1,26 +0,0 @@
-"use client"
-
-import * as React from "react"
-import { type DateRange } from "react-day-picker"
-
-import { Calendar } from "@/registry/new-york/ui/calendar"
-
-export default function Calendar09() {
- const [dateRange, setDateRange] = React.useState({
- from: new Date(2025, 5, 17),
- to: new Date(2025, 5, 20),
- })
-
- return (
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/blocks/calendar-10.tsx b/deprecated/www/__registry__/new-york/blocks/calendar-10.tsx
deleted file mode 100644
index 05e48d5300..0000000000
--- a/deprecated/www/__registry__/new-york/blocks/calendar-10.tsx
+++ /dev/null
@@ -1,50 +0,0 @@
-"use client"
-
-import * as React from "react"
-
-import { Button } from "@/registry/new-york/ui/button"
-import { Calendar } from "@/registry/new-york/ui/calendar"
-import {
- Card,
- CardContent,
- CardDescription,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-
-export default function Calendar10() {
- const [date, setDate] = React.useState(
- new Date(2025, 5, 12)
- )
- const [month, setMonth] = React.useState(new Date())
-
- return (
-
-
- Appointment
- Find a date
- {
- setMonth(new Date())
- setDate(new Date())
- }}
- >
- Today
-
-
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/blocks/calendar-11.tsx b/deprecated/www/__registry__/new-york/blocks/calendar-11.tsx
deleted file mode 100644
index 10a58ba3cd..0000000000
--- a/deprecated/www/__registry__/new-york/blocks/calendar-11.tsx
+++ /dev/null
@@ -1,31 +0,0 @@
-"use client"
-
-import * as React from "react"
-import { type DateRange } from "react-day-picker"
-
-import { Calendar } from "@/registry/new-york/ui/calendar"
-
-export default function Calendar11() {
- const [dateRange, setDateRange] = React.useState({
- from: new Date(2025, 5, 17),
- to: new Date(2025, 5, 20),
- })
-
- return (
-
-
-
- We are open in June and July only.
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/blocks/calendar-12.tsx b/deprecated/www/__registry__/new-york/blocks/calendar-12.tsx
deleted file mode 100644
index 89e8b422e1..0000000000
--- a/deprecated/www/__registry__/new-york/blocks/calendar-12.tsx
+++ /dev/null
@@ -1,78 +0,0 @@
-"use client"
-
-import * as React from "react"
-import { type DateRange } from "react-day-picker"
-import { enUS, es } from "react-day-picker/locale"
-
-import { Calendar } from "@/registry/new-york/ui/calendar"
-import {
- Card,
- CardContent,
- CardDescription,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- Select,
- SelectContent,
- SelectItem,
- SelectTrigger,
- SelectValue,
-} from "@/registry/new-york/ui/select"
-
-const localizedStrings = {
- en: {
- title: "Book an appointment",
- description: "Select the dates for your appointment",
- },
- es: {
- title: "Reserva una cita",
- description: "Selecciona las fechas para tu cita",
- },
-} as const
-
-export default function Calendar12() {
- const [locale, setLocale] =
- React.useState("es")
- const [dateRange, setDateRange] = React.useState({
- from: new Date(2025, 8, 9),
- to: new Date(2025, 8, 17),
- })
-
- return (
-
-
- {localizedStrings[locale].title}
-
- {localizedStrings[locale].description}
-
-
- setLocale(value as keyof typeof localizedStrings)
- }
- >
-
-
-
-
- Español
- English
-
-
-
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/blocks/calendar-13.tsx b/deprecated/www/__registry__/new-york/blocks/calendar-13.tsx
deleted file mode 100644
index fbe5c58f77..0000000000
--- a/deprecated/www/__registry__/new-york/blocks/calendar-13.tsx
+++ /dev/null
@@ -1,58 +0,0 @@
-"use client"
-
-import * as React from "react"
-
-import { Calendar } from "@/registry/new-york/ui/calendar"
-import { Label } from "@/registry/new-york/ui/label"
-import {
- Select,
- SelectContent,
- SelectItem,
- SelectTrigger,
- SelectValue,
-} from "@/registry/new-york/ui/select"
-
-export default function Calendar13() {
- const [dropdown, setDropdown] =
- React.useState["captionLayout"]>(
- "dropdown"
- )
- const [date, setDate] = React.useState(
- new Date(2025, 5, 12)
- )
-
- return (
-
-
-
-
- Dropdown
-
-
- setDropdown(
- value as React.ComponentProps["captionLayout"]
- )
- }
- >
-
-
-
-
- Month and Year
- Month Only
- Year Only
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/blocks/calendar-14.tsx b/deprecated/www/__registry__/new-york/blocks/calendar-14.tsx
deleted file mode 100644
index 41be778b9f..0000000000
--- a/deprecated/www/__registry__/new-york/blocks/calendar-14.tsx
+++ /dev/null
@@ -1,32 +0,0 @@
-"use client"
-
-import * as React from "react"
-
-import { Calendar } from "@/registry/new-york/ui/calendar"
-
-export default function Calendar14() {
- const [date, setDate] = React.useState(
- new Date(2025, 5, 12)
- )
- const bookedDates = Array.from(
- { length: 12 },
- (_, i) => new Date(2025, 5, 15 + i)
- )
-
- return (
- button]:line-through opacity-100",
- }}
- className="rounded-lg border shadow-sm"
- />
- )
-}
diff --git a/deprecated/www/__registry__/new-york/blocks/calendar-15.tsx b/deprecated/www/__registry__/new-york/blocks/calendar-15.tsx
deleted file mode 100644
index 8031bd2ced..0000000000
--- a/deprecated/www/__registry__/new-york/blocks/calendar-15.tsx
+++ /dev/null
@@ -1,22 +0,0 @@
-"use client"
-
-import * as React from "react"
-
-import { Calendar } from "@/registry/new-york/ui/calendar"
-
-export default function Calendar15() {
- const [date, setDate] = React.useState(
- new Date(2025, 5, 12)
- )
-
- return (
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/blocks/calendar-16.tsx b/deprecated/www/__registry__/new-york/blocks/calendar-16.tsx
deleted file mode 100644
index 638ec8ff21..0000000000
--- a/deprecated/www/__registry__/new-york/blocks/calendar-16.tsx
+++ /dev/null
@@ -1,56 +0,0 @@
-"use client"
-
-import * as React from "react"
-import { Clock2Icon } from "lucide-react"
-
-import { Calendar } from "@/registry/new-york/ui/calendar"
-import { Card, CardContent, CardFooter } from "@/registry/new-york/ui/card"
-import { Input } from "@/registry/new-york/ui/input"
-import { Label } from "@/registry/new-york/ui/label"
-
-export default function Calendar16() {
- const [date, setDate] = React.useState(
- new Date(2025, 5, 12)
- )
-
- return (
-
-
-
-
-
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/blocks/calendar-17.tsx b/deprecated/www/__registry__/new-york/blocks/calendar-17.tsx
deleted file mode 100644
index 5ac8cbc4f0..0000000000
--- a/deprecated/www/__registry__/new-york/blocks/calendar-17.tsx
+++ /dev/null
@@ -1,54 +0,0 @@
-"use client"
-
-import * as React from "react"
-
-import { Calendar } from "@/registry/new-york/ui/calendar"
-import { Card, CardContent, CardFooter } from "@/registry/new-york/ui/card"
-import { Input } from "@/registry/new-york/ui/input"
-import { Label } from "@/registry/new-york/ui/label"
-
-export default function Calendar17() {
- const [date, setDate] = React.useState(
- new Date(2025, 5, 12)
- )
-
- return (
-
-
-
-
-
-
-
- Start Time
-
-
-
- -
-
-
- End Time
-
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/blocks/calendar-18.tsx b/deprecated/www/__registry__/new-york/blocks/calendar-18.tsx
deleted file mode 100644
index d647923405..0000000000
--- a/deprecated/www/__registry__/new-york/blocks/calendar-18.tsx
+++ /dev/null
@@ -1,21 +0,0 @@
-"use client"
-
-import * as React from "react"
-
-import { Calendar } from "@/registry/new-york/ui/calendar"
-
-export default function Calendar18() {
- const [date, setDate] = React.useState(
- new Date(2025, 5, 12)
- )
-
- return (
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/blocks/calendar-19.tsx b/deprecated/www/__registry__/new-york/blocks/calendar-19.tsx
deleted file mode 100644
index 54a62dd7e9..0000000000
--- a/deprecated/www/__registry__/new-york/blocks/calendar-19.tsx
+++ /dev/null
@@ -1,50 +0,0 @@
-"use client"
-
-import * as React from "react"
-import { addDays } from "date-fns"
-
-import { Button } from "@/registry/new-york/ui/button"
-import { Calendar } from "@/registry/new-york/ui/calendar"
-import { Card, CardContent, CardFooter } from "@/registry/new-york/ui/card"
-
-export default function Calendar19() {
- const [date, setDate] = React.useState(
- new Date(2025, 5, 12)
- )
-
- return (
-
-
-
-
-
- {[
- { label: "Today", value: 0 },
- { label: "Tomorrow", value: 1 },
- { label: "In 3 days", value: 3 },
- { label: "In a week", value: 7 },
- { label: "In 2 weeks", value: 14 },
- ].map((preset) => (
- {
- const newDate = addDays(new Date(), preset.value)
- setDate(newDate)
- }}
- >
- {preset.label}
-
- ))}
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/blocks/calendar-20.tsx b/deprecated/www/__registry__/new-york/blocks/calendar-20.tsx
deleted file mode 100644
index 2a2bb3f5eb..0000000000
--- a/deprecated/www/__registry__/new-york/blocks/calendar-20.tsx
+++ /dev/null
@@ -1,97 +0,0 @@
-"use client"
-
-import * as React from "react"
-
-import { Button } from "@/registry/new-york/ui/button"
-import { Calendar } from "@/registry/new-york/ui/calendar"
-import { Card, CardContent, CardFooter } from "@/registry/new-york/ui/card"
-
-export default function Calendar20() {
- const [date, setDate] = React.useState(
- new Date(2025, 5, 12)
- )
- const [selectedTime, setSelectedTime] = React.useState("10:00")
- const timeSlots = Array.from({ length: 37 }, (_, i) => {
- const totalMinutes = i * 15
- const hour = Math.floor(totalMinutes / 60) + 9
- const minute = totalMinutes % 60
- return `${hour.toString().padStart(2, "0")}:${minute
- .toString()
- .padStart(2, "0")}`
- })
-
- const bookedDates = Array.from(
- { length: 3 },
- (_, i) => new Date(2025, 5, 17 + i)
- )
-
- return (
-
-
-
- button]:line-through opacity-100",
- }}
- className="bg-transparent p-0 [--cell-size:2.5rem] md:[--cell-size:3rem]"
- formatters={{
- formatWeekdayName: (date) => {
- return date.toLocaleString("en-US", { weekday: "short" })
- },
- }}
- />
-
-
-
- {timeSlots.map((time) => (
- setSelectedTime(time)}
- className="w-full shadow-none"
- >
- {time}
-
- ))}
-
-
-
-
-
- {date && selectedTime ? (
- <>
- Your meeting is booked for{" "}
-
- {" "}
- {date?.toLocaleDateString("en-US", {
- weekday: "long",
- day: "numeric",
- month: "long",
- })}{" "}
-
- at {selectedTime} .
- >
- ) : (
- <>Select a date and time for your meeting.>
- )}
-
-
- Continue
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/blocks/calendar-21.tsx b/deprecated/www/__registry__/new-york/blocks/calendar-21.tsx
deleted file mode 100644
index 9016b91b8c..0000000000
--- a/deprecated/www/__registry__/new-york/blocks/calendar-21.tsx
+++ /dev/null
@@ -1,42 +0,0 @@
-"use client"
-
-import * as React from "react"
-import { DateRange } from "react-day-picker"
-
-import { Calendar, CalendarDayButton } from "@/registry/new-york/ui/calendar"
-
-export default function Calendar21() {
- const [range, setRange] = React.useState({
- from: new Date(2025, 5, 12),
- to: new Date(2025, 5, 17),
- })
-
- return (
- {
- return date.toLocaleString("default", { month: "long" })
- },
- }}
- components={{
- DayButton: ({ children, modifiers, day, ...props }) => {
- const isWeekend = day.date.getDay() === 0 || day.date.getDay() === 6
-
- return (
-
- {children}
- {!modifiers.outside && {isWeekend ? "$220" : "$100"} }
-
- )
- },
- }}
- />
- )
-}
diff --git a/deprecated/www/__registry__/new-york/blocks/calendar-22.tsx b/deprecated/www/__registry__/new-york/blocks/calendar-22.tsx
deleted file mode 100644
index fbba5c925a..0000000000
--- a/deprecated/www/__registry__/new-york/blocks/calendar-22.tsx
+++ /dev/null
@@ -1,49 +0,0 @@
-"use client"
-
-import * as React from "react"
-import { ChevronDownIcon } from "lucide-react"
-
-import { Button } from "@/registry/new-york/ui/button"
-import { Calendar } from "@/registry/new-york/ui/calendar"
-import { Label } from "@/registry/new-york/ui/label"
-import {
- Popover,
- PopoverContent,
- PopoverTrigger,
-} from "@/registry/new-york/ui/popover"
-
-export default function Calendar22() {
- const [open, setOpen] = React.useState(false)
- const [date, setDate] = React.useState(undefined)
-
- return (
-
-
- Date of birth
-
-
-
-
- {date ? date.toLocaleDateString() : "Select date"}
-
-
-
-
- {
- setDate(date)
- setOpen(false)
- }}
- />
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/blocks/calendar-23.tsx b/deprecated/www/__registry__/new-york/blocks/calendar-23.tsx
deleted file mode 100644
index 2702cd90fd..0000000000
--- a/deprecated/www/__registry__/new-york/blocks/calendar-23.tsx
+++ /dev/null
@@ -1,50 +0,0 @@
-"use client"
-
-import * as React from "react"
-import { ChevronDownIcon } from "lucide-react"
-import { type DateRange } from "react-day-picker"
-
-import { Button } from "@/registry/new-york/ui/button"
-import { Calendar } from "@/registry/new-york/ui/calendar"
-import { Label } from "@/registry/new-york/ui/label"
-import {
- Popover,
- PopoverContent,
- PopoverTrigger,
-} from "@/registry/new-york/ui/popover"
-
-export default function Calendar23() {
- const [range, setRange] = React.useState(undefined)
-
- return (
-
-
- Select your stay
-
-
-
-
- {range?.from && range?.to
- ? `${range.from.toLocaleDateString()} - ${range.to.toLocaleDateString()}`
- : "Select date"}
-
-
-
-
- {
- setRange(range)
- }}
- />
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/blocks/calendar-24.tsx b/deprecated/www/__registry__/new-york/blocks/calendar-24.tsx
deleted file mode 100644
index 02640d5936..0000000000
--- a/deprecated/www/__registry__/new-york/blocks/calendar-24.tsx
+++ /dev/null
@@ -1,64 +0,0 @@
-"use client"
-
-import * as React from "react"
-import { ChevronDownIcon } from "lucide-react"
-
-import { Button } from "@/registry/new-york/ui/button"
-import { Calendar } from "@/registry/new-york/ui/calendar"
-import { Input } from "@/registry/new-york/ui/input"
-import { Label } from "@/registry/new-york/ui/label"
-import {
- Popover,
- PopoverContent,
- PopoverTrigger,
-} from "@/registry/new-york/ui/popover"
-
-export default function Calendar24() {
- const [open, setOpen] = React.useState(false)
- const [date, setDate] = React.useState(undefined)
-
- return (
-
-
-
- Date
-
-
-
-
- {date ? date.toLocaleDateString() : "Select date"}
-
-
-
-
- {
- setDate(date)
- setOpen(false)
- }}
- />
-
-
-
-
-
- Time
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/blocks/calendar-25.tsx b/deprecated/www/__registry__/new-york/blocks/calendar-25.tsx
deleted file mode 100644
index 5ed864df3e..0000000000
--- a/deprecated/www/__registry__/new-york/blocks/calendar-25.tsx
+++ /dev/null
@@ -1,78 +0,0 @@
-"use client"
-
-import * as React from "react"
-import { ChevronDownIcon } from "lucide-react"
-
-import { Button } from "@/registry/new-york/ui/button"
-import { Calendar } from "@/registry/new-york/ui/calendar"
-import { Input } from "@/registry/new-york/ui/input"
-import { Label } from "@/registry/new-york/ui/label"
-import {
- Popover,
- PopoverContent,
- PopoverTrigger,
-} from "@/registry/new-york/ui/popover"
-
-export default function Calendar25() {
- const [open, setOpen] = React.useState(false)
- const [date, setDate] = React.useState(undefined)
-
- return (
-
-
-
- Date
-
-
-
-
- {date ? date.toLocaleDateString() : "Select date"}
-
-
-
-
- {
- setDate(date)
- setOpen(false)
- }}
- />
-
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/blocks/calendar-26.tsx b/deprecated/www/__registry__/new-york/blocks/calendar-26.tsx
deleted file mode 100644
index 166cd46498..0000000000
--- a/deprecated/www/__registry__/new-york/blocks/calendar-26.tsx
+++ /dev/null
@@ -1,133 +0,0 @@
-"use client"
-
-import * as React from "react"
-import { ChevronDownIcon } from "lucide-react"
-
-import { Button } from "@/registry/new-york/ui/button"
-import { Calendar } from "@/registry/new-york/ui/calendar"
-import { Input } from "@/registry/new-york/ui/input"
-import { Label } from "@/registry/new-york/ui/label"
-import {
- Popover,
- PopoverContent,
- PopoverTrigger,
-} from "@/registry/new-york/ui/popover"
-
-export default function Calendar26() {
- const [openFrom, setOpenFrom] = React.useState(false)
- const [openTo, setOpenTo] = React.useState(false)
- const [dateFrom, setDateFrom] = React.useState(
- new Date("2025-06-01")
- )
- const [dateTo, setDateTo] = React.useState(
- new Date("2025-06-03")
- )
-
- return (
-
-
-
-
- Check-in
-
-
-
-
- {dateFrom
- ? dateFrom.toLocaleDateString("en-US", {
- day: "2-digit",
- month: "short",
- year: "numeric",
- })
- : "Select date"}
-
-
-
-
- {
- setDateFrom(date)
- setOpenFrom(false)
- }}
- />
-
-
-
-
-
- From
-
-
-
-
-
-
-
- Check-out
-
-
-
-
- {dateTo
- ? dateTo.toLocaleDateString("en-US", {
- day: "2-digit",
- month: "short",
- year: "numeric",
- })
- : "Select date"}
-
-
-
-
- {
- setDateTo(date)
- setOpenTo(false)
- }}
- disabled={dateFrom && { before: dateFrom }}
- />
-
-
-
-
-
- To
-
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/blocks/calendar-27.tsx b/deprecated/www/__registry__/new-york/blocks/calendar-27.tsx
deleted file mode 100644
index 89c65876e2..0000000000
--- a/deprecated/www/__registry__/new-york/blocks/calendar-27.tsx
+++ /dev/null
@@ -1,177 +0,0 @@
-"use client"
-
-import * as React from "react"
-import { CalendarIcon } from "lucide-react"
-import { DateRange } from "react-day-picker"
-import { Bar, BarChart, CartesianGrid, XAxis } from "recharts"
-
-import { Button } from "@/registry/new-york/ui/button"
-import { Calendar } from "@/registry/new-york/ui/calendar"
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-import {
- Popover,
- PopoverContent,
- PopoverTrigger,
-} from "@/registry/new-york/ui/popover"
-
-const chartData = [
- { date: "2025-06-01", visitors: 178 },
- { date: "2025-06-02", visitors: 470 },
- { date: "2025-06-03", visitors: 103 },
- { date: "2025-06-04", visitors: 439 },
- { date: "2025-06-05", visitors: 88 },
- { date: "2025-06-06", visitors: 294 },
- { date: "2025-06-07", visitors: 323 },
- { date: "2025-06-08", visitors: 385 },
- { date: "2025-06-09", visitors: 438 },
- { date: "2025-06-10", visitors: 155 },
- { date: "2025-06-11", visitors: 92 },
- { date: "2025-06-12", visitors: 492 },
- { date: "2025-06-13", visitors: 81 },
- { date: "2025-06-14", visitors: 426 },
- { date: "2025-06-15", visitors: 307 },
- { date: "2025-06-16", visitors: 371 },
- { date: "2025-06-17", visitors: 475 },
- { date: "2025-06-18", visitors: 107 },
- { date: "2025-06-19", visitors: 341 },
- { date: "2025-06-20", visitors: 408 },
- { date: "2025-06-21", visitors: 169 },
- { date: "2025-06-22", visitors: 317 },
- { date: "2025-06-23", visitors: 480 },
- { date: "2025-06-24", visitors: 132 },
- { date: "2025-06-25", visitors: 141 },
- { date: "2025-06-26", visitors: 434 },
- { date: "2025-06-27", visitors: 448 },
- { date: "2025-06-28", visitors: 149 },
- { date: "2025-06-29", visitors: 103 },
- { date: "2025-06-30", visitors: 446 },
-]
-
-const total = chartData.reduce((acc, curr) => acc + curr.visitors, 0)
-
-const chartConfig = {
- visitors: {
- label: "Visitors",
- color: "hsl(var(--primary))",
- },
-} satisfies ChartConfig
-
-export default function Calendar27() {
- const [range, setRange] = React.useState({
- from: new Date(2025, 5, 5),
- to: new Date(2025, 5, 20),
- })
- const filteredData = React.useMemo(() => {
- if (!range?.from && !range?.to) {
- return chartData
- }
-
- return chartData.filter((item) => {
- const date = new Date(item.date)
- return date >= range.from! && date <= range.to!
- })
- }, [range])
-
- return (
-
-
- Web Analytics
-
- Showing total visitors for this month.
-
-
-
-
-
- {range?.from && range?.to
- ? `${range.from.toLocaleDateString()} - ${range.to.toLocaleDateString()}`
- : "June 2025"}
-
-
-
-
-
-
-
-
-
-
-
- {
- const date = new Date(value)
- return date.toLocaleDateString("en-US", {
- day: "numeric",
- })
- }}
- />
- {
- return new Date(value).toLocaleDateString("en-US", {
- month: "short",
- day: "numeric",
- year: "numeric",
- })
- }}
- />
- }
- />
-
-
-
-
-
-
- You had{" "}
- {total.toLocaleString()} {" "}
- visitors for the month of June.
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/blocks/calendar-28.tsx b/deprecated/www/__registry__/new-york/blocks/calendar-28.tsx
deleted file mode 100644
index 40b63bc2e7..0000000000
--- a/deprecated/www/__registry__/new-york/blocks/calendar-28.tsx
+++ /dev/null
@@ -1,104 +0,0 @@
-"use client"
-
-import * as React from "react"
-import { CalendarIcon } from "lucide-react"
-
-import { Button } from "@/registry/new-york/ui/button"
-import { Calendar } from "@/registry/new-york/ui/calendar"
-import { Input } from "@/registry/new-york/ui/input"
-import { Label } from "@/registry/new-york/ui/label"
-import {
- Popover,
- PopoverContent,
- PopoverTrigger,
-} from "@/registry/new-york/ui/popover"
-
-function formatDate(date: Date | undefined) {
- if (!date) {
- return ""
- }
-
- return date.toLocaleDateString("en-US", {
- day: "2-digit",
- month: "long",
- year: "numeric",
- })
-}
-
-function isValidDate(date: Date | undefined) {
- if (!date) {
- return false
- }
- return !isNaN(date.getTime())
-}
-
-export default function Calendar28() {
- const [open, setOpen] = React.useState(false)
- const [date, setDate] = React.useState(
- new Date("2025-06-01")
- )
- const [month, setMonth] = React.useState(date)
- const [value, setValue] = React.useState(formatDate(date))
-
- return (
-
-
- Subscription Date
-
-
-
{
- const date = new Date(e.target.value)
- setValue(e.target.value)
- if (isValidDate(date)) {
- setDate(date)
- setMonth(date)
- }
- }}
- onKeyDown={(e) => {
- if (e.key === "ArrowDown") {
- e.preventDefault()
- setOpen(true)
- }
- }}
- />
-
-
-
-
- Select date
-
-
-
- {
- setDate(date)
- setValue(formatDate(date))
- setOpen(false)
- }}
- />
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/blocks/calendar-29.tsx b/deprecated/www/__registry__/new-york/blocks/calendar-29.tsx
deleted file mode 100644
index a08ffa1b1d..0000000000
--- a/deprecated/www/__registry__/new-york/blocks/calendar-29.tsx
+++ /dev/null
@@ -1,96 +0,0 @@
-"use client"
-
-import * as React from "react"
-import { parseDate } from "chrono-node"
-import { CalendarIcon } from "lucide-react"
-
-import { Button } from "@/registry/new-york/ui/button"
-import { Calendar } from "@/registry/new-york/ui/calendar"
-import { Input } from "@/registry/new-york/ui/input"
-import { Label } from "@/registry/new-york/ui/label"
-import {
- Popover,
- PopoverContent,
- PopoverTrigger,
-} from "@/registry/new-york/ui/popover"
-
-function formatDate(date: Date | undefined) {
- if (!date) {
- return ""
- }
-
- return date.toLocaleDateString("en-US", {
- day: "2-digit",
- month: "long",
- year: "numeric",
- })
-}
-
-export default function Calendar29() {
- const [open, setOpen] = React.useState(false)
- const [value, setValue] = React.useState("In 2 days")
- const [date, setDate] = React.useState(
- parseDate(value) || undefined
- )
- const [month, setMonth] = React.useState(date)
-
- return (
-
-
- Schedule Date
-
-
-
{
- setValue(e.target.value)
- const date = parseDate(e.target.value)
- if (date) {
- setDate(date)
- setMonth(date)
- }
- }}
- onKeyDown={(e) => {
- if (e.key === "ArrowDown") {
- e.preventDefault()
- setOpen(true)
- }
- }}
- />
-
-
-
-
- Select date
-
-
-
- {
- setDate(date)
- setValue(formatDate(date))
- setOpen(false)
- }}
- />
-
-
-
-
- Your post will be published on{" "}
- {formatDate(date)} .
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/blocks/calendar-30.tsx b/deprecated/www/__registry__/new-york/blocks/calendar-30.tsx
deleted file mode 100644
index 05b5a9ae9f..0000000000
--- a/deprecated/www/__registry__/new-york/blocks/calendar-30.tsx
+++ /dev/null
@@ -1,56 +0,0 @@
-"use client"
-
-import * as React from "react"
-import { formatDateRange } from "little-date"
-import { ChevronDownIcon } from "lucide-react"
-import { type DateRange } from "react-day-picker"
-
-import { Button } from "@/registry/new-york/ui/button"
-import { Calendar } from "@/registry/new-york/ui/calendar"
-import { Label } from "@/registry/new-york/ui/label"
-import {
- Popover,
- PopoverContent,
- PopoverTrigger,
-} from "@/registry/new-york/ui/popover"
-
-export default function Calendar30() {
- const [range, setRange] = React.useState({
- from: new Date(2025, 5, 4),
- to: new Date(2025, 5, 10),
- })
-
- return (
-
-
- Select your stay
-
-
-
-
- {range?.from && range?.to
- ? formatDateRange(range.from, range.to, {
- includeTime: false,
- })
- : "Select date"}
-
-
-
-
- {
- setRange(range)
- }}
- />
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/blocks/calendar-31.tsx b/deprecated/www/__registry__/new-york/blocks/calendar-31.tsx
deleted file mode 100644
index c4d3844f9e..0000000000
--- a/deprecated/www/__registry__/new-york/blocks/calendar-31.tsx
+++ /dev/null
@@ -1,80 +0,0 @@
-"use client"
-
-import * as React from "react"
-import { formatDateRange } from "little-date"
-import { PlusIcon } from "lucide-react"
-
-import { Button } from "@/registry/new-york/ui/button"
-import { Calendar } from "@/registry/new-york/ui/calendar"
-import { Card, CardContent, CardFooter } from "@/registry/new-york/ui/card"
-
-const events = [
- {
- title: "Team Sync Meeting",
- from: "2025-06-12T09:00:00",
- to: "2025-06-12T10:00:00",
- },
- {
- title: "Design Review",
- from: "2025-06-12T11:30:00",
- to: "2025-06-12T12:30:00",
- },
- {
- title: "Client Presentation",
- from: "2025-06-12T14:00:00",
- to: "2025-06-12T15:00:00",
- },
-]
-
-export default function Calendar31() {
- const [date, setDate] = React.useState(
- new Date(2025, 5, 12)
- )
-
- return (
-
-
-
-
-
-
-
- {date?.toLocaleDateString("en-US", {
- day: "numeric",
- month: "long",
- year: "numeric",
- })}
-
-
-
- Add Event
-
-
-
- {events.map((event) => (
-
-
{event.title}
-
- {formatDateRange(new Date(event.from), new Date(event.to))}
-
-
- ))}
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/blocks/calendar-32.tsx b/deprecated/www/__registry__/new-york/blocks/calendar-32.tsx
deleted file mode 100644
index 21c8f5e160..0000000000
--- a/deprecated/www/__registry__/new-york/blocks/calendar-32.tsx
+++ /dev/null
@@ -1,60 +0,0 @@
-"use client"
-
-import * as React from "react"
-import { CalendarPlusIcon } from "lucide-react"
-
-import { Button } from "@/registry/new-york/ui/button"
-import { Calendar } from "@/registry/new-york/ui/calendar"
-import {
- Drawer,
- DrawerContent,
- DrawerDescription,
- DrawerHeader,
- DrawerTitle,
- DrawerTrigger,
-} from "@/registry/new-york/ui/drawer"
-import { Label } from "@/registry/new-york/ui/label"
-
-export default function Calendar32() {
- const [open, setOpen] = React.useState(false)
- const [date, setDate] = React.useState(undefined)
-
- return (
-
-
- Date of birth
-
-
-
-
- {date ? date.toLocaleDateString() : "Select date"}
-
-
-
-
-
- Select date
- Set your date of birth
-
- {
- setDate(date)
- setOpen(false)
- }}
- className="mx-auto [--cell-size:clamp(0px,calc(100vw/7.5),52px)]"
- />
-
-
-
- This example works best on mobile.
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/blocks/chart-area-axes.tsx b/deprecated/www/__registry__/new-york/blocks/chart-area-axes.tsx
deleted file mode 100644
index 8efb8a382d..0000000000
--- a/deprecated/www/__registry__/new-york/blocks/chart-area-axes.tsx
+++ /dev/null
@@ -1,110 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { Area, AreaChart, CartesianGrid, XAxis, YAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-
-export const description = "An area chart with axes"
-
-const chartData = [
- { month: "January", desktop: 186, mobile: 80 },
- { month: "February", desktop: 305, mobile: 200 },
- { month: "March", desktop: 237, mobile: 120 },
- { month: "April", desktop: 73, mobile: 190 },
- { month: "May", desktop: 209, mobile: 130 },
- { month: "June", desktop: 214, mobile: 140 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
- mobile: {
- label: "Mobile",
- color: "hsl(var(--chart-2))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Area Chart - Axes
-
- Showing total visitors for the last 6 months
-
-
-
-
-
-
- value.slice(0, 3)}
- />
-
- } />
-
-
-
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- January - June 2024
-
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/blocks/chart-area-default.tsx b/deprecated/www/__registry__/new-york/blocks/chart-area-default.tsx
deleted file mode 100644
index 95e9ca5a73..0000000000
--- a/deprecated/www/__registry__/new-york/blocks/chart-area-default.tsx
+++ /dev/null
@@ -1,94 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { Area, AreaChart, CartesianGrid, XAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-
-export const description = "A simple area chart"
-
-const chartData = [
- { month: "January", desktop: 186 },
- { month: "February", desktop: 305 },
- { month: "March", desktop: 237 },
- { month: "April", desktop: 73 },
- { month: "May", desktop: 209 },
- { month: "June", desktop: 214 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Area Chart
-
- Showing total visitors for the last 6 months
-
-
-
-
-
-
- value.slice(0, 3)}
- />
- }
- />
-
-
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- January - June 2024
-
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/blocks/chart-area-gradient.tsx b/deprecated/www/__registry__/new-york/blocks/chart-area-gradient.tsx
deleted file mode 100644
index de6eada513..0000000000
--- a/deprecated/www/__registry__/new-york/blocks/chart-area-gradient.tsx
+++ /dev/null
@@ -1,130 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { Area, AreaChart, CartesianGrid, XAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-
-export const description = "An area chart with gradient fill"
-
-const chartData = [
- { month: "January", desktop: 186, mobile: 80 },
- { month: "February", desktop: 305, mobile: 200 },
- { month: "March", desktop: 237, mobile: 120 },
- { month: "April", desktop: 73, mobile: 190 },
- { month: "May", desktop: 209, mobile: 130 },
- { month: "June", desktop: 214, mobile: 140 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
- mobile: {
- label: "Mobile",
- color: "hsl(var(--chart-2))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Area Chart - Gradient
-
- Showing total visitors for the last 6 months
-
-
-
-
-
-
- value.slice(0, 3)}
- />
- } />
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- January - June 2024
-
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/blocks/chart-area-icons.tsx b/deprecated/www/__registry__/new-york/blocks/chart-area-icons.tsx
deleted file mode 100644
index 5d136dfd07..0000000000
--- a/deprecated/www/__registry__/new-york/blocks/chart-area-icons.tsx
+++ /dev/null
@@ -1,112 +0,0 @@
-"use client"
-
-import { TrendingDown, TrendingUp } from "lucide-react"
-import { Area, AreaChart, CartesianGrid, XAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartLegend,
- ChartLegendContent,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-
-export const description = "An area chart with icons"
-
-const chartData = [
- { month: "January", desktop: 186, mobile: 80 },
- { month: "February", desktop: 305, mobile: 200 },
- { month: "March", desktop: 237, mobile: 120 },
- { month: "April", desktop: 73, mobile: 190 },
- { month: "May", desktop: 209, mobile: 130 },
- { month: "June", desktop: 214, mobile: 140 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- icon: TrendingDown,
- },
- mobile: {
- label: "Mobile",
- color: "hsl(var(--chart-2))",
- icon: TrendingUp,
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Area Chart - Icons
-
- Showing total visitors for the last 6 months
-
-
-
-
-
-
- value.slice(0, 3)}
- />
- }
- />
-
-
- } />
-
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- January - June 2024
-
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/blocks/chart-area-interactive.tsx b/deprecated/www/__registry__/new-york/blocks/chart-area-interactive.tsx
deleted file mode 100644
index cd8e7e6b28..0000000000
--- a/deprecated/www/__registry__/new-york/blocks/chart-area-interactive.tsx
+++ /dev/null
@@ -1,266 +0,0 @@
-"use client"
-
-import * as React from "react"
-import { Area, AreaChart, CartesianGrid, XAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartLegend,
- ChartLegendContent,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-import {
- Select,
- SelectContent,
- SelectItem,
- SelectTrigger,
- SelectValue,
-} from "@/registry/new-york/ui/select"
-
-export const description = "An interactive area chart"
-
-const chartData = [
- { date: "2024-04-01", desktop: 222, mobile: 150 },
- { date: "2024-04-02", desktop: 97, mobile: 180 },
- { date: "2024-04-03", desktop: 167, mobile: 120 },
- { date: "2024-04-04", desktop: 242, mobile: 260 },
- { date: "2024-04-05", desktop: 373, mobile: 290 },
- { date: "2024-04-06", desktop: 301, mobile: 340 },
- { date: "2024-04-07", desktop: 245, mobile: 180 },
- { date: "2024-04-08", desktop: 409, mobile: 320 },
- { date: "2024-04-09", desktop: 59, mobile: 110 },
- { date: "2024-04-10", desktop: 261, mobile: 190 },
- { date: "2024-04-11", desktop: 327, mobile: 350 },
- { date: "2024-04-12", desktop: 292, mobile: 210 },
- { date: "2024-04-13", desktop: 342, mobile: 380 },
- { date: "2024-04-14", desktop: 137, mobile: 220 },
- { date: "2024-04-15", desktop: 120, mobile: 170 },
- { date: "2024-04-16", desktop: 138, mobile: 190 },
- { date: "2024-04-17", desktop: 446, mobile: 360 },
- { date: "2024-04-18", desktop: 364, mobile: 410 },
- { date: "2024-04-19", desktop: 243, mobile: 180 },
- { date: "2024-04-20", desktop: 89, mobile: 150 },
- { date: "2024-04-21", desktop: 137, mobile: 200 },
- { date: "2024-04-22", desktop: 224, mobile: 170 },
- { date: "2024-04-23", desktop: 138, mobile: 230 },
- { date: "2024-04-24", desktop: 387, mobile: 290 },
- { date: "2024-04-25", desktop: 215, mobile: 250 },
- { date: "2024-04-26", desktop: 75, mobile: 130 },
- { date: "2024-04-27", desktop: 383, mobile: 420 },
- { date: "2024-04-28", desktop: 122, mobile: 180 },
- { date: "2024-04-29", desktop: 315, mobile: 240 },
- { date: "2024-04-30", desktop: 454, mobile: 380 },
- { date: "2024-05-01", desktop: 165, mobile: 220 },
- { date: "2024-05-02", desktop: 293, mobile: 310 },
- { date: "2024-05-03", desktop: 247, mobile: 190 },
- { date: "2024-05-04", desktop: 385, mobile: 420 },
- { date: "2024-05-05", desktop: 481, mobile: 390 },
- { date: "2024-05-06", desktop: 498, mobile: 520 },
- { date: "2024-05-07", desktop: 388, mobile: 300 },
- { date: "2024-05-08", desktop: 149, mobile: 210 },
- { date: "2024-05-09", desktop: 227, mobile: 180 },
- { date: "2024-05-10", desktop: 293, mobile: 330 },
- { date: "2024-05-11", desktop: 335, mobile: 270 },
- { date: "2024-05-12", desktop: 197, mobile: 240 },
- { date: "2024-05-13", desktop: 197, mobile: 160 },
- { date: "2024-05-14", desktop: 448, mobile: 490 },
- { date: "2024-05-15", desktop: 473, mobile: 380 },
- { date: "2024-05-16", desktop: 338, mobile: 400 },
- { date: "2024-05-17", desktop: 499, mobile: 420 },
- { date: "2024-05-18", desktop: 315, mobile: 350 },
- { date: "2024-05-19", desktop: 235, mobile: 180 },
- { date: "2024-05-20", desktop: 177, mobile: 230 },
- { date: "2024-05-21", desktop: 82, mobile: 140 },
- { date: "2024-05-22", desktop: 81, mobile: 120 },
- { date: "2024-05-23", desktop: 252, mobile: 290 },
- { date: "2024-05-24", desktop: 294, mobile: 220 },
- { date: "2024-05-25", desktop: 201, mobile: 250 },
- { date: "2024-05-26", desktop: 213, mobile: 170 },
- { date: "2024-05-27", desktop: 420, mobile: 460 },
- { date: "2024-05-28", desktop: 233, mobile: 190 },
- { date: "2024-05-29", desktop: 78, mobile: 130 },
- { date: "2024-05-30", desktop: 340, mobile: 280 },
- { date: "2024-05-31", desktop: 178, mobile: 230 },
- { date: "2024-06-01", desktop: 178, mobile: 200 },
- { date: "2024-06-02", desktop: 470, mobile: 410 },
- { date: "2024-06-03", desktop: 103, mobile: 160 },
- { date: "2024-06-04", desktop: 439, mobile: 380 },
- { date: "2024-06-05", desktop: 88, mobile: 140 },
- { date: "2024-06-06", desktop: 294, mobile: 250 },
- { date: "2024-06-07", desktop: 323, mobile: 370 },
- { date: "2024-06-08", desktop: 385, mobile: 320 },
- { date: "2024-06-09", desktop: 438, mobile: 480 },
- { date: "2024-06-10", desktop: 155, mobile: 200 },
- { date: "2024-06-11", desktop: 92, mobile: 150 },
- { date: "2024-06-12", desktop: 492, mobile: 420 },
- { date: "2024-06-13", desktop: 81, mobile: 130 },
- { date: "2024-06-14", desktop: 426, mobile: 380 },
- { date: "2024-06-15", desktop: 307, mobile: 350 },
- { date: "2024-06-16", desktop: 371, mobile: 310 },
- { date: "2024-06-17", desktop: 475, mobile: 520 },
- { date: "2024-06-18", desktop: 107, mobile: 170 },
- { date: "2024-06-19", desktop: 341, mobile: 290 },
- { date: "2024-06-20", desktop: 408, mobile: 450 },
- { date: "2024-06-21", desktop: 169, mobile: 210 },
- { date: "2024-06-22", desktop: 317, mobile: 270 },
- { date: "2024-06-23", desktop: 480, mobile: 530 },
- { date: "2024-06-24", desktop: 132, mobile: 180 },
- { date: "2024-06-25", desktop: 141, mobile: 190 },
- { date: "2024-06-26", desktop: 434, mobile: 380 },
- { date: "2024-06-27", desktop: 448, mobile: 490 },
- { date: "2024-06-28", desktop: 149, mobile: 200 },
- { date: "2024-06-29", desktop: 103, mobile: 160 },
- { date: "2024-06-30", desktop: 446, mobile: 400 },
-]
-
-const chartConfig = {
- visitors: {
- label: "Visitors",
- },
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
- mobile: {
- label: "Mobile",
- color: "hsl(var(--chart-2))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- const [timeRange, setTimeRange] = React.useState("90d")
-
- const filteredData = chartData.filter((item) => {
- const date = new Date(item.date)
- const referenceDate = new Date("2024-06-30")
- let daysToSubtract = 90
- if (timeRange === "30d") {
- daysToSubtract = 30
- } else if (timeRange === "7d") {
- daysToSubtract = 7
- }
- const startDate = new Date(referenceDate)
- startDate.setDate(startDate.getDate() - daysToSubtract)
- return date >= startDate
- })
-
- return (
-
-
-
- Area Chart - Interactive
-
- Showing total visitors for the last 3 months
-
-
-
-
-
-
-
-
- Last 3 months
-
-
- Last 30 days
-
-
- Last 7 days
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {
- const date = new Date(value)
- return date.toLocaleDateString("en-US", {
- month: "short",
- day: "numeric",
- })
- }}
- />
- {
- return new Date(value).toLocaleDateString("en-US", {
- month: "short",
- day: "numeric",
- })
- }}
- indicator="dot"
- />
- }
- />
-
-
- } />
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/blocks/chart-area-legend.tsx b/deprecated/www/__registry__/new-york/blocks/chart-area-legend.tsx
deleted file mode 100644
index 13ba0ba54a..0000000000
--- a/deprecated/www/__registry__/new-york/blocks/chart-area-legend.tsx
+++ /dev/null
@@ -1,110 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { Area, AreaChart, CartesianGrid, XAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartLegend,
- ChartLegendContent,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-
-export const description = "An area chart with a legend"
-
-const chartData = [
- { month: "January", desktop: 186, mobile: 80 },
- { month: "February", desktop: 305, mobile: 200 },
- { month: "March", desktop: 237, mobile: 120 },
- { month: "April", desktop: 73, mobile: 190 },
- { month: "May", desktop: 209, mobile: 130 },
- { month: "June", desktop: 214, mobile: 140 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
- mobile: {
- label: "Mobile",
- color: "hsl(var(--chart-2))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Area Chart - Legend
-
- Showing total visitors for the last 6 months
-
-
-
-
-
-
- value.slice(0, 3)}
- />
- }
- />
-
-
- } />
-
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- January - June 2024
-
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/blocks/chart-area-linear.tsx b/deprecated/www/__registry__/new-york/blocks/chart-area-linear.tsx
deleted file mode 100644
index 2b88f333fd..0000000000
--- a/deprecated/www/__registry__/new-york/blocks/chart-area-linear.tsx
+++ /dev/null
@@ -1,94 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { Area, AreaChart, CartesianGrid, XAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-
-export const description = "A linear area chart"
-
-const chartData = [
- { month: "January", desktop: 186 },
- { month: "February", desktop: 305 },
- { month: "March", desktop: 237 },
- { month: "April", desktop: 73 },
- { month: "May", desktop: 209 },
- { month: "June", desktop: 214 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Area Chart - Linear
-
- Showing total visitors for the last 6 months
-
-
-
-
-
-
- value.slice(0, 3)}
- />
- }
- />
-
-
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- January - June 2024
-
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/blocks/chart-area-stacked-expand.tsx b/deprecated/www/__registry__/new-york/blocks/chart-area-stacked-expand.tsx
deleted file mode 100644
index f7662c0f71..0000000000
--- a/deprecated/www/__registry__/new-york/blocks/chart-area-stacked-expand.tsx
+++ /dev/null
@@ -1,121 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { Area, AreaChart, CartesianGrid, XAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-
-export const description = "A stacked area chart with expand stacking"
-
-const chartData = [
- { month: "January", desktop: 186, mobile: 80, other: 45 },
- { month: "February", desktop: 305, mobile: 200, other: 100 },
- { month: "March", desktop: 237, mobile: 120, other: 150 },
- { month: "April", desktop: 73, mobile: 190, other: 50 },
- { month: "May", desktop: 209, mobile: 130, other: 100 },
- { month: "June", desktop: 214, mobile: 140, other: 160 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
- mobile: {
- label: "Mobile",
- color: "hsl(var(--chart-2))",
- },
- other: {
- label: "Other",
- color: "hsl(var(--chart-3))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Area Chart - Stacked Expanded
-
- Showing total visitors for the last 6months
-
-
-
-
-
-
- value.slice(0, 3)}
- />
- }
- />
-
-
-
-
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- January - June 2024
-
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/blocks/chart-area-stacked.tsx b/deprecated/www/__registry__/new-york/blocks/chart-area-stacked.tsx
deleted file mode 100644
index d0c1b6eee8..0000000000
--- a/deprecated/www/__registry__/new-york/blocks/chart-area-stacked.tsx
+++ /dev/null
@@ -1,107 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { Area, AreaChart, CartesianGrid, XAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-
-export const description = "A stacked area chart"
-
-const chartData = [
- { month: "January", desktop: 186, mobile: 80 },
- { month: "February", desktop: 305, mobile: 200 },
- { month: "March", desktop: 237, mobile: 120 },
- { month: "April", desktop: 73, mobile: 190 },
- { month: "May", desktop: 209, mobile: 130 },
- { month: "June", desktop: 214, mobile: 140 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
- mobile: {
- label: "Mobile",
- color: "hsl(var(--chart-2))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Area Chart - Stacked
-
- Showing total visitors for the last 6 months
-
-
-
-
-
-
- value.slice(0, 3)}
- />
- }
- />
-
-
-
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- January - June 2024
-
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/blocks/chart-area-step.tsx b/deprecated/www/__registry__/new-york/blocks/chart-area-step.tsx
deleted file mode 100644
index be43a89d3c..0000000000
--- a/deprecated/www/__registry__/new-york/blocks/chart-area-step.tsx
+++ /dev/null
@@ -1,95 +0,0 @@
-"use client"
-
-import { Activity, TrendingUp } from "lucide-react"
-import { Area, AreaChart, CartesianGrid, XAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-
-export const description = "A step area chart"
-
-const chartData = [
- { month: "January", desktop: 186 },
- { month: "February", desktop: 305 },
- { month: "March", desktop: 237 },
- { month: "April", desktop: 73 },
- { month: "May", desktop: 209 },
- { month: "June", desktop: 214 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- icon: Activity,
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Area Chart - Step
-
- Showing total visitors for the last 6 months
-
-
-
-
-
-
- value.slice(0, 3)}
- />
- }
- />
-
-
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- January - June 2024
-
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/blocks/chart-bar-active.tsx b/deprecated/www/__registry__/new-york/blocks/chart-bar-active.tsx
deleted file mode 100644
index b913609d92..0000000000
--- a/deprecated/www/__registry__/new-york/blocks/chart-bar-active.tsx
+++ /dev/null
@@ -1,111 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { Bar, BarChart, CartesianGrid, Rectangle, XAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-
-export const description = "A bar chart with an active bar"
-
-const chartData = [
- { browser: "chrome", visitors: 187, fill: "var(--color-chrome)" },
- { browser: "safari", visitors: 200, fill: "var(--color-safari)" },
- { browser: "firefox", visitors: 275, fill: "var(--color-firefox)" },
- { browser: "edge", visitors: 173, fill: "var(--color-edge)" },
- { browser: "other", visitors: 90, fill: "var(--color-other)" },
-]
-
-const chartConfig = {
- visitors: {
- label: "Visitors",
- },
- chrome: {
- label: "Chrome",
- color: "hsl(var(--chart-1))",
- },
- safari: {
- label: "Safari",
- color: "hsl(var(--chart-2))",
- },
- firefox: {
- label: "Firefox",
- color: "hsl(var(--chart-3))",
- },
- edge: {
- label: "Edge",
- color: "hsl(var(--chart-4))",
- },
- other: {
- label: "Other",
- color: "hsl(var(--chart-5))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Bar Chart - Active
- January - June 2024
-
-
-
-
-
-
- chartConfig[value as keyof typeof chartConfig]?.label
- }
- />
- }
- />
- {
- return (
-
- )
- }}
- />
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- Showing total visitors for the last 6 months
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/blocks/chart-bar-default.tsx b/deprecated/www/__registry__/new-york/blocks/chart-bar-default.tsx
deleted file mode 100644
index 5aec111e67..0000000000
--- a/deprecated/www/__registry__/new-york/blocks/chart-bar-default.tsx
+++ /dev/null
@@ -1,75 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { Bar, BarChart, CartesianGrid, XAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-
-export const description = "A bar chart"
-
-const chartData = [
- { month: "January", desktop: 186 },
- { month: "February", desktop: 305 },
- { month: "March", desktop: 237 },
- { month: "April", desktop: 73 },
- { month: "May", desktop: 209 },
- { month: "June", desktop: 214 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Bar Chart
- January - June 2024
-
-
-
-
-
- value.slice(0, 3)}
- />
- }
- />
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- Showing total visitors for the last 6 months
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/blocks/chart-bar-horizontal.tsx b/deprecated/www/__registry__/new-york/blocks/chart-bar-horizontal.tsx
deleted file mode 100644
index b8b1014517..0000000000
--- a/deprecated/www/__registry__/new-york/blocks/chart-bar-horizontal.tsx
+++ /dev/null
@@ -1,83 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { Bar, BarChart, XAxis, YAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-
-export const description = "A horizontal bar chart"
-
-const chartData = [
- { month: "January", desktop: 186 },
- { month: "February", desktop: 305 },
- { month: "March", desktop: 237 },
- { month: "April", desktop: 73 },
- { month: "May", desktop: 209 },
- { month: "June", desktop: 214 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Bar Chart - Horizontal
- January - June 2024
-
-
-
-
-
- value.slice(0, 3)}
- />
- }
- />
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- Showing total visitors for the last 6 months
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/blocks/chart-bar-interactive.tsx b/deprecated/www/__registry__/new-york/blocks/chart-bar-interactive.tsx
deleted file mode 100644
index f988ef5e11..0000000000
--- a/deprecated/www/__registry__/new-york/blocks/chart-bar-interactive.tsx
+++ /dev/null
@@ -1,221 +0,0 @@
-"use client"
-
-import * as React from "react"
-import { Bar, BarChart, CartesianGrid, XAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-
-export const description = "An interactive bar chart"
-
-const chartData = [
- { date: "2024-04-01", desktop: 222, mobile: 150 },
- { date: "2024-04-02", desktop: 97, mobile: 180 },
- { date: "2024-04-03", desktop: 167, mobile: 120 },
- { date: "2024-04-04", desktop: 242, mobile: 260 },
- { date: "2024-04-05", desktop: 373, mobile: 290 },
- { date: "2024-04-06", desktop: 301, mobile: 340 },
- { date: "2024-04-07", desktop: 245, mobile: 180 },
- { date: "2024-04-08", desktop: 409, mobile: 320 },
- { date: "2024-04-09", desktop: 59, mobile: 110 },
- { date: "2024-04-10", desktop: 261, mobile: 190 },
- { date: "2024-04-11", desktop: 327, mobile: 350 },
- { date: "2024-04-12", desktop: 292, mobile: 210 },
- { date: "2024-04-13", desktop: 342, mobile: 380 },
- { date: "2024-04-14", desktop: 137, mobile: 220 },
- { date: "2024-04-15", desktop: 120, mobile: 170 },
- { date: "2024-04-16", desktop: 138, mobile: 190 },
- { date: "2024-04-17", desktop: 446, mobile: 360 },
- { date: "2024-04-18", desktop: 364, mobile: 410 },
- { date: "2024-04-19", desktop: 243, mobile: 180 },
- { date: "2024-04-20", desktop: 89, mobile: 150 },
- { date: "2024-04-21", desktop: 137, mobile: 200 },
- { date: "2024-04-22", desktop: 224, mobile: 170 },
- { date: "2024-04-23", desktop: 138, mobile: 230 },
- { date: "2024-04-24", desktop: 387, mobile: 290 },
- { date: "2024-04-25", desktop: 215, mobile: 250 },
- { date: "2024-04-26", desktop: 75, mobile: 130 },
- { date: "2024-04-27", desktop: 383, mobile: 420 },
- { date: "2024-04-28", desktop: 122, mobile: 180 },
- { date: "2024-04-29", desktop: 315, mobile: 240 },
- { date: "2024-04-30", desktop: 454, mobile: 380 },
- { date: "2024-05-01", desktop: 165, mobile: 220 },
- { date: "2024-05-02", desktop: 293, mobile: 310 },
- { date: "2024-05-03", desktop: 247, mobile: 190 },
- { date: "2024-05-04", desktop: 385, mobile: 420 },
- { date: "2024-05-05", desktop: 481, mobile: 390 },
- { date: "2024-05-06", desktop: 498, mobile: 520 },
- { date: "2024-05-07", desktop: 388, mobile: 300 },
- { date: "2024-05-08", desktop: 149, mobile: 210 },
- { date: "2024-05-09", desktop: 227, mobile: 180 },
- { date: "2024-05-10", desktop: 293, mobile: 330 },
- { date: "2024-05-11", desktop: 335, mobile: 270 },
- { date: "2024-05-12", desktop: 197, mobile: 240 },
- { date: "2024-05-13", desktop: 197, mobile: 160 },
- { date: "2024-05-14", desktop: 448, mobile: 490 },
- { date: "2024-05-15", desktop: 473, mobile: 380 },
- { date: "2024-05-16", desktop: 338, mobile: 400 },
- { date: "2024-05-17", desktop: 499, mobile: 420 },
- { date: "2024-05-18", desktop: 315, mobile: 350 },
- { date: "2024-05-19", desktop: 235, mobile: 180 },
- { date: "2024-05-20", desktop: 177, mobile: 230 },
- { date: "2024-05-21", desktop: 82, mobile: 140 },
- { date: "2024-05-22", desktop: 81, mobile: 120 },
- { date: "2024-05-23", desktop: 252, mobile: 290 },
- { date: "2024-05-24", desktop: 294, mobile: 220 },
- { date: "2024-05-25", desktop: 201, mobile: 250 },
- { date: "2024-05-26", desktop: 213, mobile: 170 },
- { date: "2024-05-27", desktop: 420, mobile: 460 },
- { date: "2024-05-28", desktop: 233, mobile: 190 },
- { date: "2024-05-29", desktop: 78, mobile: 130 },
- { date: "2024-05-30", desktop: 340, mobile: 280 },
- { date: "2024-05-31", desktop: 178, mobile: 230 },
- { date: "2024-06-01", desktop: 178, mobile: 200 },
- { date: "2024-06-02", desktop: 470, mobile: 410 },
- { date: "2024-06-03", desktop: 103, mobile: 160 },
- { date: "2024-06-04", desktop: 439, mobile: 380 },
- { date: "2024-06-05", desktop: 88, mobile: 140 },
- { date: "2024-06-06", desktop: 294, mobile: 250 },
- { date: "2024-06-07", desktop: 323, mobile: 370 },
- { date: "2024-06-08", desktop: 385, mobile: 320 },
- { date: "2024-06-09", desktop: 438, mobile: 480 },
- { date: "2024-06-10", desktop: 155, mobile: 200 },
- { date: "2024-06-11", desktop: 92, mobile: 150 },
- { date: "2024-06-12", desktop: 492, mobile: 420 },
- { date: "2024-06-13", desktop: 81, mobile: 130 },
- { date: "2024-06-14", desktop: 426, mobile: 380 },
- { date: "2024-06-15", desktop: 307, mobile: 350 },
- { date: "2024-06-16", desktop: 371, mobile: 310 },
- { date: "2024-06-17", desktop: 475, mobile: 520 },
- { date: "2024-06-18", desktop: 107, mobile: 170 },
- { date: "2024-06-19", desktop: 341, mobile: 290 },
- { date: "2024-06-20", desktop: 408, mobile: 450 },
- { date: "2024-06-21", desktop: 169, mobile: 210 },
- { date: "2024-06-22", desktop: 317, mobile: 270 },
- { date: "2024-06-23", desktop: 480, mobile: 530 },
- { date: "2024-06-24", desktop: 132, mobile: 180 },
- { date: "2024-06-25", desktop: 141, mobile: 190 },
- { date: "2024-06-26", desktop: 434, mobile: 380 },
- { date: "2024-06-27", desktop: 448, mobile: 490 },
- { date: "2024-06-28", desktop: 149, mobile: 200 },
- { date: "2024-06-29", desktop: 103, mobile: 160 },
- { date: "2024-06-30", desktop: 446, mobile: 400 },
-]
-
-const chartConfig = {
- views: {
- label: "Page Views",
- },
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
- mobile: {
- label: "Mobile",
- color: "hsl(var(--chart-2))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- const [activeChart, setActiveChart] =
- React.useState("desktop")
-
- const total = React.useMemo(
- () => ({
- desktop: chartData.reduce((acc, curr) => acc + curr.desktop, 0),
- mobile: chartData.reduce((acc, curr) => acc + curr.mobile, 0),
- }),
- []
- )
-
- return (
-
-
-
- Bar Chart - Interactive
-
- Showing total visitors for the last 3 months
-
-
-
- {["desktop", "mobile"].map((key) => {
- const chart = key as keyof typeof chartConfig
- return (
- setActiveChart(chart)}
- >
-
- {chartConfig[chart].label}
-
-
- {total[key as keyof typeof total].toLocaleString()}
-
-
- )
- })}
-
-
-
-
-
-
- {
- const date = new Date(value)
- return date.toLocaleDateString("en-US", {
- month: "short",
- day: "numeric",
- })
- }}
- />
- {
- return new Date(value).toLocaleDateString("en-US", {
- month: "short",
- day: "numeric",
- year: "numeric",
- })
- }}
- />
- }
- />
-
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/blocks/chart-bar-label-custom.tsx b/deprecated/www/__registry__/new-york/blocks/chart-bar-label-custom.tsx
deleted file mode 100644
index bba630a900..0000000000
--- a/deprecated/www/__registry__/new-york/blocks/chart-bar-label-custom.tsx
+++ /dev/null
@@ -1,112 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { Bar, BarChart, CartesianGrid, LabelList, XAxis, YAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-
-export const description = "A bar chart with a custom label"
-
-const chartData = [
- { month: "January", desktop: 186, mobile: 80 },
- { month: "February", desktop: 305, mobile: 200 },
- { month: "March", desktop: 237, mobile: 120 },
- { month: "April", desktop: 73, mobile: 190 },
- { month: "May", desktop: 209, mobile: 130 },
- { month: "June", desktop: 214, mobile: 140 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
- mobile: {
- label: "Mobile",
- color: "hsl(var(--chart-2))",
- },
- label: {
- color: "hsl(var(--background))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Bar Chart - Custom Label
- January - June 2024
-
-
-
-
-
- value.slice(0, 3)}
- hide
- />
-
- }
- />
-
-
-
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- Showing total visitors for the last 6 months
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/blocks/chart-bar-label.tsx b/deprecated/www/__registry__/new-york/blocks/chart-bar-label.tsx
deleted file mode 100644
index 1a06e05e00..0000000000
--- a/deprecated/www/__registry__/new-york/blocks/chart-bar-label.tsx
+++ /dev/null
@@ -1,88 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { Bar, BarChart, CartesianGrid, LabelList, XAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-
-export const description = "A bar chart with a label"
-
-const chartData = [
- { month: "January", desktop: 186 },
- { month: "February", desktop: 305 },
- { month: "March", desktop: 237 },
- { month: "April", desktop: 73 },
- { month: "May", desktop: 209 },
- { month: "June", desktop: 214 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Bar Chart - Label
- January - June 2024
-
-
-
-
-
- value.slice(0, 3)}
- />
- }
- />
-
-
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- Showing total visitors for the last 6 months
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/blocks/chart-bar-mixed.tsx b/deprecated/www/__registry__/new-york/blocks/chart-bar-mixed.tsx
deleted file mode 100644
index f839877833..0000000000
--- a/deprecated/www/__registry__/new-york/blocks/chart-bar-mixed.tsx
+++ /dev/null
@@ -1,103 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { Bar, BarChart, XAxis, YAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-
-export const description = "A mixed bar chart"
-
-const chartData = [
- { browser: "chrome", visitors: 275, fill: "var(--color-chrome)" },
- { browser: "safari", visitors: 200, fill: "var(--color-safari)" },
- { browser: "firefox", visitors: 187, fill: "var(--color-firefox)" },
- { browser: "edge", visitors: 173, fill: "var(--color-edge)" },
- { browser: "other", visitors: 90, fill: "var(--color-other)" },
-]
-
-const chartConfig = {
- visitors: {
- label: "Visitors",
- },
- chrome: {
- label: "Chrome",
- color: "hsl(var(--chart-1))",
- },
- safari: {
- label: "Safari",
- color: "hsl(var(--chart-2))",
- },
- firefox: {
- label: "Firefox",
- color: "hsl(var(--chart-3))",
- },
- edge: {
- label: "Edge",
- color: "hsl(var(--chart-4))",
- },
- other: {
- label: "Other",
- color: "hsl(var(--chart-5))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Bar Chart - Mixed
- January - June 2024
-
-
-
-
-
- chartConfig[value as keyof typeof chartConfig]?.label
- }
- />
-
- }
- />
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- Showing total visitors for the last 6 months
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/blocks/chart-bar-multiple.tsx b/deprecated/www/__registry__/new-york/blocks/chart-bar-multiple.tsx
deleted file mode 100644
index b570638ce6..0000000000
--- a/deprecated/www/__registry__/new-york/blocks/chart-bar-multiple.tsx
+++ /dev/null
@@ -1,80 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { Bar, BarChart, CartesianGrid, XAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-
-export const description = "A multiple bar chart"
-
-const chartData = [
- { month: "January", desktop: 186, mobile: 80 },
- { month: "February", desktop: 305, mobile: 200 },
- { month: "March", desktop: 237, mobile: 120 },
- { month: "April", desktop: 73, mobile: 190 },
- { month: "May", desktop: 209, mobile: 130 },
- { month: "June", desktop: 214, mobile: 140 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
- mobile: {
- label: "Mobile",
- color: "hsl(var(--chart-2))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Bar Chart - Multiple
- January - June 2024
-
-
-
-
-
- value.slice(0, 3)}
- />
- }
- />
-
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- Showing total visitors for the last 6 months
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/blocks/chart-bar-negative.tsx b/deprecated/www/__registry__/new-york/blocks/chart-bar-negative.tsx
deleted file mode 100644
index c735fc6fff..0000000000
--- a/deprecated/www/__registry__/new-york/blocks/chart-bar-negative.tsx
+++ /dev/null
@@ -1,79 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { Bar, BarChart, CartesianGrid, Cell, LabelList } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-
-export const description = "A bar chart with negative values"
-
-const chartData = [
- { month: "January", visitors: 186 },
- { month: "February", visitors: 205 },
- { month: "March", visitors: -207 },
- { month: "April", visitors: 173 },
- { month: "May", visitors: -209 },
- { month: "June", visitors: 214 },
-]
-
-const chartConfig = {
- visitors: {
- label: "Visitors",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Bar Chart - Negative
- January - June 2024
-
-
-
-
-
- }
- />
-
-
- {chartData.map((item) => (
- 0
- ? "hsl(var(--chart-1))"
- : "hsl(var(--chart-2))"
- }
- />
- ))}
- |
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- Showing total visitors for the last 6 months
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/blocks/chart-bar-stacked.tsx b/deprecated/www/__registry__/new-york/blocks/chart-bar-stacked.tsx
deleted file mode 100644
index ddfa81e47e..0000000000
--- a/deprecated/www/__registry__/new-york/blocks/chart-bar-stacked.tsx
+++ /dev/null
@@ -1,90 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { Bar, BarChart, CartesianGrid, XAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartLegend,
- ChartLegendContent,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-
-export const description = "A stacked bar chart with a legend"
-
-const chartData = [
- { month: "January", desktop: 186, mobile: 80 },
- { month: "February", desktop: 305, mobile: 200 },
- { month: "March", desktop: 237, mobile: 120 },
- { month: "April", desktop: 73, mobile: 190 },
- { month: "May", desktop: 209, mobile: 130 },
- { month: "June", desktop: 214, mobile: 140 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
- mobile: {
- label: "Mobile",
- color: "hsl(var(--chart-2))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Bar Chart - Stacked + Legend
- January - June 2024
-
-
-
-
-
- value.slice(0, 3)}
- />
- } />
- } />
-
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- Showing total visitors for the last 6 months
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/blocks/chart-line-default.tsx b/deprecated/www/__registry__/new-york/blocks/chart-line-default.tsx
deleted file mode 100644
index ccc36bc5b6..0000000000
--- a/deprecated/www/__registry__/new-york/blocks/chart-line-default.tsx
+++ /dev/null
@@ -1,88 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { CartesianGrid, Line, LineChart, XAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-
-export const description = "A line chart"
-
-const chartData = [
- { month: "January", desktop: 186 },
- { month: "February", desktop: 305 },
- { month: "March", desktop: 237 },
- { month: "April", desktop: 73 },
- { month: "May", desktop: 209 },
- { month: "June", desktop: 214 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Line Chart
- January - June 2024
-
-
-
-
-
- value.slice(0, 3)}
- />
- }
- />
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- Showing total visitors for the last 6 months
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/blocks/chart-line-dots-colors.tsx b/deprecated/www/__registry__/new-york/blocks/chart-line-dots-colors.tsx
deleted file mode 100644
index 5176281cc2..0000000000
--- a/deprecated/www/__registry__/new-york/blocks/chart-line-dots-colors.tsx
+++ /dev/null
@@ -1,118 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { CartesianGrid, Dot, Line, LineChart } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-
-export const description = "A line chart with dots and colors"
-
-const chartData = [
- { browser: "chrome", visitors: 275, fill: "var(--color-chrome)" },
- { browser: "safari", visitors: 200, fill: "var(--color-safari)" },
- { browser: "firefox", visitors: 187, fill: "var(--color-firefox)" },
- { browser: "edge", visitors: 173, fill: "var(--color-edge)" },
- { browser: "other", visitors: 90, fill: "var(--color-other)" },
-]
-
-const chartConfig = {
- visitors: {
- label: "Visitors",
- color: "hsl(var(--chart-2))",
- },
- chrome: {
- label: "Chrome",
- color: "hsl(var(--chart-1))",
- },
- safari: {
- label: "Safari",
- color: "hsl(var(--chart-2))",
- },
- firefox: {
- label: "Firefox",
- color: "hsl(var(--chart-3))",
- },
- edge: {
- label: "Edge",
- color: "hsl(var(--chart-4))",
- },
- other: {
- label: "Other",
- color: "hsl(var(--chart-5))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Line Chart - Dots Colors
- January - June 2024
-
-
-
-
-
-
- }
- />
- {
- return (
-
- )
- }}
- />
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- Showing total visitors for the last 6 months
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/blocks/chart-line-dots-custom.tsx b/deprecated/www/__registry__/new-york/blocks/chart-line-dots-custom.tsx
deleted file mode 100644
index 9b7e86ca36..0000000000
--- a/deprecated/www/__registry__/new-york/blocks/chart-line-dots-custom.tsx
+++ /dev/null
@@ -1,105 +0,0 @@
-"use client"
-
-import { GitCommitVertical, TrendingUp } from "lucide-react"
-import { CartesianGrid, Line, LineChart, XAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-
-export const description = "A line chart with custom dots"
-
-const chartData = [
- { month: "January", desktop: 186, mobile: 80 },
- { month: "February", desktop: 305, mobile: 200 },
- { month: "March", desktop: 237, mobile: 120 },
- { month: "April", desktop: 73, mobile: 190 },
- { month: "May", desktop: 209, mobile: 130 },
- { month: "June", desktop: 214, mobile: 140 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
- mobile: {
- label: "Mobile",
- color: "hsl(var(--chart-2))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Line Chart - Custom Dots
- January - June 2024
-
-
-
-
-
- value.slice(0, 3)}
- />
- }
- />
- {
- const r = 24
- return (
-
- )
- }}
- />
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- Showing total visitors for the last 6 months
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/blocks/chart-line-dots.tsx b/deprecated/www/__registry__/new-york/blocks/chart-line-dots.tsx
deleted file mode 100644
index 54fb10ed80..0000000000
--- a/deprecated/www/__registry__/new-york/blocks/chart-line-dots.tsx
+++ /dev/null
@@ -1,97 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { CartesianGrid, Line, LineChart, XAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-
-export const description = "A line chart with dots"
-
-const chartData = [
- { month: "January", desktop: 186, mobile: 80 },
- { month: "February", desktop: 305, mobile: 200 },
- { month: "March", desktop: 237, mobile: 120 },
- { month: "April", desktop: 73, mobile: 190 },
- { month: "May", desktop: 209, mobile: 130 },
- { month: "June", desktop: 214, mobile: 140 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
- mobile: {
- label: "Mobile",
- color: "hsl(var(--chart-2))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Line Chart - Dots
- January - June 2024
-
-
-
-
-
- value.slice(0, 3)}
- />
- }
- />
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- Showing total visitors for the last 6 months
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/blocks/chart-line-interactive.tsx b/deprecated/www/__registry__/new-york/blocks/chart-line-interactive.tsx
deleted file mode 100644
index 4432eb89c2..0000000000
--- a/deprecated/www/__registry__/new-york/blocks/chart-line-interactive.tsx
+++ /dev/null
@@ -1,227 +0,0 @@
-"use client"
-
-import * as React from "react"
-import { CartesianGrid, Line, LineChart, XAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-
-export const description = "An interactive line chart"
-
-const chartData = [
- { date: "2024-04-01", desktop: 222, mobile: 150 },
- { date: "2024-04-02", desktop: 97, mobile: 180 },
- { date: "2024-04-03", desktop: 167, mobile: 120 },
- { date: "2024-04-04", desktop: 242, mobile: 260 },
- { date: "2024-04-05", desktop: 373, mobile: 290 },
- { date: "2024-04-06", desktop: 301, mobile: 340 },
- { date: "2024-04-07", desktop: 245, mobile: 180 },
- { date: "2024-04-08", desktop: 409, mobile: 320 },
- { date: "2024-04-09", desktop: 59, mobile: 110 },
- { date: "2024-04-10", desktop: 261, mobile: 190 },
- { date: "2024-04-11", desktop: 327, mobile: 350 },
- { date: "2024-04-12", desktop: 292, mobile: 210 },
- { date: "2024-04-13", desktop: 342, mobile: 380 },
- { date: "2024-04-14", desktop: 137, mobile: 220 },
- { date: "2024-04-15", desktop: 120, mobile: 170 },
- { date: "2024-04-16", desktop: 138, mobile: 190 },
- { date: "2024-04-17", desktop: 446, mobile: 360 },
- { date: "2024-04-18", desktop: 364, mobile: 410 },
- { date: "2024-04-19", desktop: 243, mobile: 180 },
- { date: "2024-04-20", desktop: 89, mobile: 150 },
- { date: "2024-04-21", desktop: 137, mobile: 200 },
- { date: "2024-04-22", desktop: 224, mobile: 170 },
- { date: "2024-04-23", desktop: 138, mobile: 230 },
- { date: "2024-04-24", desktop: 387, mobile: 290 },
- { date: "2024-04-25", desktop: 215, mobile: 250 },
- { date: "2024-04-26", desktop: 75, mobile: 130 },
- { date: "2024-04-27", desktop: 383, mobile: 420 },
- { date: "2024-04-28", desktop: 122, mobile: 180 },
- { date: "2024-04-29", desktop: 315, mobile: 240 },
- { date: "2024-04-30", desktop: 454, mobile: 380 },
- { date: "2024-05-01", desktop: 165, mobile: 220 },
- { date: "2024-05-02", desktop: 293, mobile: 310 },
- { date: "2024-05-03", desktop: 247, mobile: 190 },
- { date: "2024-05-04", desktop: 385, mobile: 420 },
- { date: "2024-05-05", desktop: 481, mobile: 390 },
- { date: "2024-05-06", desktop: 498, mobile: 520 },
- { date: "2024-05-07", desktop: 388, mobile: 300 },
- { date: "2024-05-08", desktop: 149, mobile: 210 },
- { date: "2024-05-09", desktop: 227, mobile: 180 },
- { date: "2024-05-10", desktop: 293, mobile: 330 },
- { date: "2024-05-11", desktop: 335, mobile: 270 },
- { date: "2024-05-12", desktop: 197, mobile: 240 },
- { date: "2024-05-13", desktop: 197, mobile: 160 },
- { date: "2024-05-14", desktop: 448, mobile: 490 },
- { date: "2024-05-15", desktop: 473, mobile: 380 },
- { date: "2024-05-16", desktop: 338, mobile: 400 },
- { date: "2024-05-17", desktop: 499, mobile: 420 },
- { date: "2024-05-18", desktop: 315, mobile: 350 },
- { date: "2024-05-19", desktop: 235, mobile: 180 },
- { date: "2024-05-20", desktop: 177, mobile: 230 },
- { date: "2024-05-21", desktop: 82, mobile: 140 },
- { date: "2024-05-22", desktop: 81, mobile: 120 },
- { date: "2024-05-23", desktop: 252, mobile: 290 },
- { date: "2024-05-24", desktop: 294, mobile: 220 },
- { date: "2024-05-25", desktop: 201, mobile: 250 },
- { date: "2024-05-26", desktop: 213, mobile: 170 },
- { date: "2024-05-27", desktop: 420, mobile: 460 },
- { date: "2024-05-28", desktop: 233, mobile: 190 },
- { date: "2024-05-29", desktop: 78, mobile: 130 },
- { date: "2024-05-30", desktop: 340, mobile: 280 },
- { date: "2024-05-31", desktop: 178, mobile: 230 },
- { date: "2024-06-01", desktop: 178, mobile: 200 },
- { date: "2024-06-02", desktop: 470, mobile: 410 },
- { date: "2024-06-03", desktop: 103, mobile: 160 },
- { date: "2024-06-04", desktop: 439, mobile: 380 },
- { date: "2024-06-05", desktop: 88, mobile: 140 },
- { date: "2024-06-06", desktop: 294, mobile: 250 },
- { date: "2024-06-07", desktop: 323, mobile: 370 },
- { date: "2024-06-08", desktop: 385, mobile: 320 },
- { date: "2024-06-09", desktop: 438, mobile: 480 },
- { date: "2024-06-10", desktop: 155, mobile: 200 },
- { date: "2024-06-11", desktop: 92, mobile: 150 },
- { date: "2024-06-12", desktop: 492, mobile: 420 },
- { date: "2024-06-13", desktop: 81, mobile: 130 },
- { date: "2024-06-14", desktop: 426, mobile: 380 },
- { date: "2024-06-15", desktop: 307, mobile: 350 },
- { date: "2024-06-16", desktop: 371, mobile: 310 },
- { date: "2024-06-17", desktop: 475, mobile: 520 },
- { date: "2024-06-18", desktop: 107, mobile: 170 },
- { date: "2024-06-19", desktop: 341, mobile: 290 },
- { date: "2024-06-20", desktop: 408, mobile: 450 },
- { date: "2024-06-21", desktop: 169, mobile: 210 },
- { date: "2024-06-22", desktop: 317, mobile: 270 },
- { date: "2024-06-23", desktop: 480, mobile: 530 },
- { date: "2024-06-24", desktop: 132, mobile: 180 },
- { date: "2024-06-25", desktop: 141, mobile: 190 },
- { date: "2024-06-26", desktop: 434, mobile: 380 },
- { date: "2024-06-27", desktop: 448, mobile: 490 },
- { date: "2024-06-28", desktop: 149, mobile: 200 },
- { date: "2024-06-29", desktop: 103, mobile: 160 },
- { date: "2024-06-30", desktop: 446, mobile: 400 },
-]
-
-const chartConfig = {
- views: {
- label: "Page Views",
- },
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
- mobile: {
- label: "Mobile",
- color: "hsl(var(--chart-2))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- const [activeChart, setActiveChart] =
- React.useState("desktop")
-
- const total = React.useMemo(
- () => ({
- desktop: chartData.reduce((acc, curr) => acc + curr.desktop, 0),
- mobile: chartData.reduce((acc, curr) => acc + curr.mobile, 0),
- }),
- []
- )
-
- return (
-
-
-
- Line Chart - Interactive
-
- Showing total visitors for the last 3 months
-
-
-
- {["desktop", "mobile"].map((key) => {
- const chart = key as keyof typeof chartConfig
- return (
- setActiveChart(chart)}
- >
-
- {chartConfig[chart].label}
-
-
- {total[key as keyof typeof total].toLocaleString()}
-
-
- )
- })}
-
-
-
-
-
-
- {
- const date = new Date(value)
- return date.toLocaleDateString("en-US", {
- month: "short",
- day: "numeric",
- })
- }}
- />
- {
- return new Date(value).toLocaleDateString("en-US", {
- month: "short",
- day: "numeric",
- year: "numeric",
- })
- }}
- />
- }
- />
-
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/blocks/chart-line-label-custom.tsx b/deprecated/www/__registry__/new-york/blocks/chart-line-label-custom.tsx
deleted file mode 100644
index f7972946fc..0000000000
--- a/deprecated/www/__registry__/new-york/blocks/chart-line-label-custom.tsx
+++ /dev/null
@@ -1,123 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { CartesianGrid, LabelList, Line, LineChart } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-
-export const description = "A line chart with a custom label"
-
-const chartData = [
- { browser: "chrome", visitors: 275, fill: "var(--color-chrome)" },
- { browser: "safari", visitors: 200, fill: "var(--color-safari)" },
- { browser: "firefox", visitors: 187, fill: "var(--color-firefox)" },
- { browser: "edge", visitors: 173, fill: "var(--color-edge)" },
- { browser: "other", visitors: 90, fill: "var(--color-other)" },
-]
-
-const chartConfig = {
- visitors: {
- label: "Visitors",
- color: "hsl(var(--chart-2))",
- },
- chrome: {
- label: "Chrome",
- color: "hsl(var(--chart-1))",
- },
- safari: {
- label: "Safari",
- color: "hsl(var(--chart-2))",
- },
- firefox: {
- label: "Firefox",
- color: "hsl(var(--chart-3))",
- },
- edge: {
- label: "Edge",
- color: "hsl(var(--chart-4))",
- },
- other: {
- label: "Other",
- color: "hsl(var(--chart-5))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Line Chart - Custom Label
- January - June 2024
-
-
-
-
-
-
- }
- />
-
-
- chartConfig[value]?.label
- }
- />
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- Showing total visitors for the last 6 months
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/blocks/chart-line-label.tsx b/deprecated/www/__registry__/new-york/blocks/chart-line-label.tsx
deleted file mode 100644
index c6b832d6a6..0000000000
--- a/deprecated/www/__registry__/new-york/blocks/chart-line-label.tsx
+++ /dev/null
@@ -1,105 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { CartesianGrid, LabelList, Line, LineChart, XAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-
-export const description = "A line chart with a label"
-
-const chartData = [
- { month: "January", desktop: 186, mobile: 80 },
- { month: "February", desktop: 305, mobile: 200 },
- { month: "March", desktop: 237, mobile: 120 },
- { month: "April", desktop: 73, mobile: 190 },
- { month: "May", desktop: 209, mobile: 130 },
- { month: "June", desktop: 214, mobile: 140 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
- mobile: {
- label: "Mobile",
- color: "hsl(var(--chart-2))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Line Chart - Label
- January - June 2024
-
-
-
-
-
- value.slice(0, 3)}
- />
- }
- />
-
-
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- Showing total visitors for the last 6 months
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/blocks/chart-line-linear.tsx b/deprecated/www/__registry__/new-york/blocks/chart-line-linear.tsx
deleted file mode 100644
index 7225a5f79c..0000000000
--- a/deprecated/www/__registry__/new-york/blocks/chart-line-linear.tsx
+++ /dev/null
@@ -1,88 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { CartesianGrid, Line, LineChart, XAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-
-export const description = "A linear line chart"
-
-const chartData = [
- { month: "January", desktop: 186 },
- { month: "February", desktop: 305 },
- { month: "March", desktop: 237 },
- { month: "April", desktop: 73 },
- { month: "May", desktop: 209 },
- { month: "June", desktop: 214 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Line Chart - Linear
- January - June 2024
-
-
-
-
-
- value.slice(0, 3)}
- />
- }
- />
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- Showing total visitors for the last 6 months
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/blocks/chart-line-multiple.tsx b/deprecated/www/__registry__/new-york/blocks/chart-line-multiple.tsx
deleted file mode 100644
index f972819f5b..0000000000
--- a/deprecated/www/__registry__/new-york/blocks/chart-line-multiple.tsx
+++ /dev/null
@@ -1,100 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { CartesianGrid, Line, LineChart, XAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-
-export const description = "A multiple line chart"
-
-const chartData = [
- { month: "January", desktop: 186, mobile: 80 },
- { month: "February", desktop: 305, mobile: 200 },
- { month: "March", desktop: 237, mobile: 120 },
- { month: "April", desktop: 73, mobile: 190 },
- { month: "May", desktop: 209, mobile: 130 },
- { month: "June", desktop: 214, mobile: 140 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
- mobile: {
- label: "Mobile",
- color: "hsl(var(--chart-2))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Line Chart - Multiple
- January - June 2024
-
-
-
-
-
- value.slice(0, 3)}
- />
- } />
-
-
-
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- Showing total visitors for the last 6 months
-
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/blocks/chart-line-step.tsx b/deprecated/www/__registry__/new-york/blocks/chart-line-step.tsx
deleted file mode 100644
index 4531051867..0000000000
--- a/deprecated/www/__registry__/new-york/blocks/chart-line-step.tsx
+++ /dev/null
@@ -1,88 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { CartesianGrid, Line, LineChart, XAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-
-export const description = "A line chart with step"
-
-const chartData = [
- { month: "January", desktop: 186 },
- { month: "February", desktop: 305 },
- { month: "March", desktop: 237 },
- { month: "April", desktop: 73 },
- { month: "May", desktop: 209 },
- { month: "June", desktop: 214 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Line Chart - Step
- January - June 2024
-
-
-
-
-
- value.slice(0, 3)}
- />
- }
- />
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- Showing total visitors for the last 6 months
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/blocks/chart-pie-donut-active.tsx b/deprecated/www/__registry__/new-york/blocks/chart-pie-donut-active.tsx
deleted file mode 100644
index 7d7a82eca8..0000000000
--- a/deprecated/www/__registry__/new-york/blocks/chart-pie-donut-active.tsx
+++ /dev/null
@@ -1,102 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { Label, Pie, PieChart, Sector } from "recharts"
-import { PieSectorDataItem } from "recharts/types/polar/Pie"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-
-export const description = "A donut chart with an active sector"
-
-const chartData = [
- { browser: "chrome", visitors: 275, fill: "var(--color-chrome)" },
- { browser: "safari", visitors: 200, fill: "var(--color-safari)" },
- { browser: "firefox", visitors: 187, fill: "var(--color-firefox)" },
- { browser: "edge", visitors: 173, fill: "var(--color-edge)" },
- { browser: "other", visitors: 90, fill: "var(--color-other)" },
-]
-
-const chartConfig = {
- visitors: {
- label: "Visitors",
- },
- chrome: {
- label: "Chrome",
- color: "hsl(var(--chart-1))",
- },
- safari: {
- label: "Safari",
- color: "hsl(var(--chart-2))",
- },
- firefox: {
- label: "Firefox",
- color: "hsl(var(--chart-3))",
- },
- edge: {
- label: "Edge",
- color: "hsl(var(--chart-4))",
- },
- other: {
- label: "Other",
- color: "hsl(var(--chart-5))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Pie Chart - Donut Active
- January - June 2024
-
-
-
-
- }
- />
- (
-
- )}
- />
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- Showing total visitors for the last 6 months
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/blocks/chart-pie-donut-text.tsx b/deprecated/www/__registry__/new-york/blocks/chart-pie-donut-text.tsx
deleted file mode 100644
index 1fb6bc74d1..0000000000
--- a/deprecated/www/__registry__/new-york/blocks/chart-pie-donut-text.tsx
+++ /dev/null
@@ -1,129 +0,0 @@
-"use client"
-
-import * as React from "react"
-import { TrendingUp } from "lucide-react"
-import { Label, Pie, PieChart } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-
-export const description = "A donut chart with text"
-
-const chartData = [
- { browser: "chrome", visitors: 275, fill: "var(--color-chrome)" },
- { browser: "safari", visitors: 200, fill: "var(--color-safari)" },
- { browser: "firefox", visitors: 287, fill: "var(--color-firefox)" },
- { browser: "edge", visitors: 173, fill: "var(--color-edge)" },
- { browser: "other", visitors: 190, fill: "var(--color-other)" },
-]
-
-const chartConfig = {
- visitors: {
- label: "Visitors",
- },
- chrome: {
- label: "Chrome",
- color: "hsl(var(--chart-1))",
- },
- safari: {
- label: "Safari",
- color: "hsl(var(--chart-2))",
- },
- firefox: {
- label: "Firefox",
- color: "hsl(var(--chart-3))",
- },
- edge: {
- label: "Edge",
- color: "hsl(var(--chart-4))",
- },
- other: {
- label: "Other",
- color: "hsl(var(--chart-5))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- const totalVisitors = React.useMemo(() => {
- return chartData.reduce((acc, curr) => acc + curr.visitors, 0)
- }, [])
-
- return (
-
-
- Pie Chart - Donut with Text
- January - June 2024
-
-
-
-
- }
- />
-
- {
- if (viewBox && "cx" in viewBox && "cy" in viewBox) {
- return (
-
-
- {totalVisitors.toLocaleString()}
-
-
- Visitors
-
-
- )
- }
- }}
- />
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- Showing total visitors for the last 6 months
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/blocks/chart-pie-donut.tsx b/deprecated/www/__registry__/new-york/blocks/chart-pie-donut.tsx
deleted file mode 100644
index 42965dac6a..0000000000
--- a/deprecated/www/__registry__/new-york/blocks/chart-pie-donut.tsx
+++ /dev/null
@@ -1,93 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { Pie, PieChart } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-
-export const description = "A donut chart"
-
-const chartData = [
- { browser: "chrome", visitors: 275, fill: "var(--color-chrome)" },
- { browser: "safari", visitors: 200, fill: "var(--color-safari)" },
- { browser: "firefox", visitors: 187, fill: "var(--color-firefox)" },
- { browser: "edge", visitors: 173, fill: "var(--color-edge)" },
- { browser: "other", visitors: 90, fill: "var(--color-other)" },
-]
-
-const chartConfig = {
- visitors: {
- label: "Visitors",
- },
- chrome: {
- label: "Chrome",
- color: "hsl(var(--chart-1))",
- },
- safari: {
- label: "Safari",
- color: "hsl(var(--chart-2))",
- },
- firefox: {
- label: "Firefox",
- color: "hsl(var(--chart-3))",
- },
- edge: {
- label: "Edge",
- color: "hsl(var(--chart-4))",
- },
- other: {
- label: "Other",
- color: "hsl(var(--chart-5))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Pie Chart - Donut
- January - June 2024
-
-
-
-
- }
- />
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- Showing total visitors for the last 6 months
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/blocks/chart-pie-interactive.tsx b/deprecated/www/__registry__/new-york/blocks/chart-pie-interactive.tsx
deleted file mode 100644
index 8da797d079..0000000000
--- a/deprecated/www/__registry__/new-york/blocks/chart-pie-interactive.tsx
+++ /dev/null
@@ -1,192 +0,0 @@
-"use client"
-
-import * as React from "react"
-import { Label, Pie, PieChart, Sector } from "recharts"
-import { PieSectorDataItem } from "recharts/types/polar/Pie"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartStyle,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-import {
- Select,
- SelectContent,
- SelectItem,
- SelectTrigger,
- SelectValue,
-} from "@/registry/new-york/ui/select"
-
-export const description = "An interactive pie chart"
-
-const desktopData = [
- { month: "january", desktop: 186, fill: "var(--color-january)" },
- { month: "february", desktop: 305, fill: "var(--color-february)" },
- { month: "march", desktop: 237, fill: "var(--color-march)" },
- { month: "april", desktop: 173, fill: "var(--color-april)" },
- { month: "may", desktop: 209, fill: "var(--color-may)" },
-]
-
-const chartConfig = {
- visitors: {
- label: "Visitors",
- },
- desktop: {
- label: "Desktop",
- },
- mobile: {
- label: "Mobile",
- },
- january: {
- label: "January",
- color: "hsl(var(--chart-1))",
- },
- february: {
- label: "February",
- color: "hsl(var(--chart-2))",
- },
- march: {
- label: "March",
- color: "hsl(var(--chart-3))",
- },
- april: {
- label: "April",
- color: "hsl(var(--chart-4))",
- },
- may: {
- label: "May",
- color: "hsl(var(--chart-5))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- const id = "pie-interactive"
- const [activeMonth, setActiveMonth] = React.useState(desktopData[0].month)
-
- const activeIndex = React.useMemo(
- () => desktopData.findIndex((item) => item.month === activeMonth),
- [activeMonth]
- )
- const months = React.useMemo(() => desktopData.map((item) => item.month), [])
-
- return (
-
-
-
-
- Pie Chart - Interactive
- January - June 2024
-
-
-
-
-
-
- {months.map((key) => {
- const config = chartConfig[key as keyof typeof chartConfig]
-
- if (!config) {
- return null
- }
-
- return (
-
-
-
- {config?.label}
-
-
- )
- })}
-
-
-
-
-
-
- }
- />
- (
-
-
-
-
- )}
- >
- {
- if (viewBox && "cx" in viewBox && "cy" in viewBox) {
- return (
-
-
- {desktopData[activeIndex].desktop.toLocaleString()}
-
-
- Visitors
-
-
- )
- }
- }}
- />
-
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/blocks/chart-pie-label-custom.tsx b/deprecated/www/__registry__/new-york/blocks/chart-pie-label-custom.tsx
deleted file mode 100644
index ff956ebf9d..0000000000
--- a/deprecated/www/__registry__/new-york/blocks/chart-pie-label-custom.tsx
+++ /dev/null
@@ -1,107 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { Pie, PieChart } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-
-export const description = "A pie chart with a custom label"
-
-const chartData = [
- { browser: "chrome", visitors: 275, fill: "var(--color-chrome)" },
- { browser: "safari", visitors: 200, fill: "var(--color-safari)" },
- { browser: "firefox", visitors: 187, fill: "var(--color-firefox)" },
- { browser: "edge", visitors: 173, fill: "var(--color-edge)" },
- { browser: "other", visitors: 90, fill: "var(--color-other)" },
-]
-
-const chartConfig = {
- visitors: {
- label: "Visitors",
- },
- chrome: {
- label: "Chrome",
- color: "hsl(var(--chart-1))",
- },
- safari: {
- label: "Safari",
- color: "hsl(var(--chart-2))",
- },
- firefox: {
- label: "Firefox",
- color: "hsl(var(--chart-3))",
- },
- edge: {
- label: "Edge",
- color: "hsl(var(--chart-4))",
- },
- other: {
- label: "Other",
- color: "hsl(var(--chart-5))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Pie Chart - Custom Label
- January - June 2024
-
-
-
-
- }
- />
- {
- return (
-
- {payload.visitors}
-
- )
- }}
- nameKey="browser"
- />
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- Showing total visitors for the last 6 months
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/blocks/chart-pie-label-list.tsx b/deprecated/www/__registry__/new-york/blocks/chart-pie-label-list.tsx
deleted file mode 100644
index 0bc77dfde0..0000000000
--- a/deprecated/www/__registry__/new-york/blocks/chart-pie-label-list.tsx
+++ /dev/null
@@ -1,97 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { LabelList, Pie, PieChart } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-
-export const description = "A pie chart with a label list"
-
-const chartData = [
- { browser: "chrome", visitors: 275, fill: "var(--color-chrome)" },
- { browser: "safari", visitors: 200, fill: "var(--color-safari)" },
- { browser: "firefox", visitors: 187, fill: "var(--color-firefox)" },
- { browser: "edge", visitors: 173, fill: "var(--color-edge)" },
- { browser: "other", visitors: 90, fill: "var(--color-other)" },
-]
-
-const chartConfig = {
- visitors: {
- label: "Visitors",
- },
- chrome: {
- label: "Chrome",
- color: "hsl(var(--chart-1))",
- },
- safari: {
- label: "Safari",
- color: "hsl(var(--chart-2))",
- },
- firefox: {
- label: "Firefox",
- color: "hsl(var(--chart-3))",
- },
- edge: {
- label: "Edge",
- color: "hsl(var(--chart-4))",
- },
- other: {
- label: "Other",
- color: "hsl(var(--chart-5))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Pie Chart - Label List
- January - June 2024
-
-
-
-
- }
- />
-
-
- chartConfig[value]?.label
- }
- />
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- Showing total visitors for the last 6 months
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/blocks/chart-pie-label.tsx b/deprecated/www/__registry__/new-york/blocks/chart-pie-label.tsx
deleted file mode 100644
index e4a13c9397..0000000000
--- a/deprecated/www/__registry__/new-york/blocks/chart-pie-label.tsx
+++ /dev/null
@@ -1,85 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { Pie, PieChart } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-
-export const description = "A pie chart with a label"
-
-const chartData = [
- { browser: "chrome", visitors: 275, fill: "var(--color-chrome)" },
- { browser: "safari", visitors: 200, fill: "var(--color-safari)" },
- { browser: "firefox", visitors: 187, fill: "var(--color-firefox)" },
- { browser: "edge", visitors: 173, fill: "var(--color-edge)" },
- { browser: "other", visitors: 90, fill: "var(--color-other)" },
-]
-
-const chartConfig = {
- visitors: {
- label: "Visitors",
- },
- chrome: {
- label: "Chrome",
- color: "hsl(var(--chart-1))",
- },
- safari: {
- label: "Safari",
- color: "hsl(var(--chart-2))",
- },
- firefox: {
- label: "Firefox",
- color: "hsl(var(--chart-3))",
- },
- edge: {
- label: "Edge",
- color: "hsl(var(--chart-4))",
- },
- other: {
- label: "Other",
- color: "hsl(var(--chart-5))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Pie Chart - Label
- January - June 2024
-
-
-
-
- } />
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- Showing total visitors for the last 6 months
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/blocks/chart-pie-legend.tsx b/deprecated/www/__registry__/new-york/blocks/chart-pie-legend.tsx
deleted file mode 100644
index d75f89eacf..0000000000
--- a/deprecated/www/__registry__/new-york/blocks/chart-pie-legend.tsx
+++ /dev/null
@@ -1,78 +0,0 @@
-"use client"
-
-import { Pie, PieChart } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartLegend,
- ChartLegendContent,
-} from "@/registry/new-york/ui/chart"
-
-export const description = "A pie chart with a legend"
-
-const chartData = [
- { browser: "chrome", visitors: 275, fill: "var(--color-chrome)" },
- { browser: "safari", visitors: 200, fill: "var(--color-safari)" },
- { browser: "firefox", visitors: 187, fill: "var(--color-firefox)" },
- { browser: "edge", visitors: 173, fill: "var(--color-edge)" },
- { browser: "other", visitors: 90, fill: "var(--color-other)" },
-]
-
-const chartConfig = {
- visitors: {
- label: "Visitors",
- },
- chrome: {
- label: "Chrome",
- color: "hsl(var(--chart-1))",
- },
- safari: {
- label: "Safari",
- color: "hsl(var(--chart-2))",
- },
- firefox: {
- label: "Firefox",
- color: "hsl(var(--chart-3))",
- },
- edge: {
- label: "Edge",
- color: "hsl(var(--chart-4))",
- },
- other: {
- label: "Other",
- color: "hsl(var(--chart-5))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Pie Chart - Legend
- January - June 2024
-
-
-
-
-
- }
- className="-translate-y-2 flex-wrap gap-2 [&>*]:basis-1/4 [&>*]:justify-center"
- />
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/blocks/chart-pie-separator-none.tsx b/deprecated/www/__registry__/new-york/blocks/chart-pie-separator-none.tsx
deleted file mode 100644
index cf191f1615..0000000000
--- a/deprecated/www/__registry__/new-york/blocks/chart-pie-separator-none.tsx
+++ /dev/null
@@ -1,93 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { Pie, PieChart } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-
-export const description = "A pie chart with no separator"
-
-const chartData = [
- { browser: "chrome", visitors: 275, fill: "var(--color-chrome)" },
- { browser: "safari", visitors: 200, fill: "var(--color-safari)" },
- { browser: "firefox", visitors: 187, fill: "var(--color-firefox)" },
- { browser: "edge", visitors: 173, fill: "var(--color-edge)" },
- { browser: "other", visitors: 90, fill: "var(--color-other)" },
-]
-
-const chartConfig = {
- visitors: {
- label: "Visitors",
- },
- chrome: {
- label: "Chrome",
- color: "hsl(var(--chart-1))",
- },
- safari: {
- label: "Safari",
- color: "hsl(var(--chart-2))",
- },
- firefox: {
- label: "Firefox",
- color: "hsl(var(--chart-3))",
- },
- edge: {
- label: "Edge",
- color: "hsl(var(--chart-4))",
- },
- other: {
- label: "Other",
- color: "hsl(var(--chart-5))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Pie Chart - Separator None
- January - June 2024
-
-
-
-
- }
- />
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- Showing total visitors for the last 6 months
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/blocks/chart-pie-simple.tsx b/deprecated/www/__registry__/new-york/blocks/chart-pie-simple.tsx
deleted file mode 100644
index c529f52bb1..0000000000
--- a/deprecated/www/__registry__/new-york/blocks/chart-pie-simple.tsx
+++ /dev/null
@@ -1,88 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { Pie, PieChart } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-
-export const description = "A simple pie chart"
-
-const chartData = [
- { browser: "chrome", visitors: 275, fill: "var(--color-chrome)" },
- { browser: "safari", visitors: 200, fill: "var(--color-safari)" },
- { browser: "firefox", visitors: 187, fill: "var(--color-firefox)" },
- { browser: "edge", visitors: 173, fill: "var(--color-edge)" },
- { browser: "other", visitors: 90, fill: "var(--color-other)" },
-]
-
-const chartConfig = {
- visitors: {
- label: "Visitors",
- },
- chrome: {
- label: "Chrome",
- color: "hsl(var(--chart-1))",
- },
- safari: {
- label: "Safari",
- color: "hsl(var(--chart-2))",
- },
- firefox: {
- label: "Firefox",
- color: "hsl(var(--chart-3))",
- },
- edge: {
- label: "Edge",
- color: "hsl(var(--chart-4))",
- },
- other: {
- label: "Other",
- color: "hsl(var(--chart-5))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Pie Chart
- January - June 2024
-
-
-
-
- }
- />
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- Showing total visitors for the last 6 months
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/blocks/chart-pie-stacked.tsx b/deprecated/www/__registry__/new-york/blocks/chart-pie-stacked.tsx
deleted file mode 100644
index b4be18a47d..0000000000
--- a/deprecated/www/__registry__/new-york/blocks/chart-pie-stacked.tsx
+++ /dev/null
@@ -1,119 +0,0 @@
-"use client"
-
-import * as React from "react"
-import { TrendingUp } from "lucide-react"
-import { Label, Pie, PieChart } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-
-export const description = "A pie chart with stacked sections"
-
-const desktopData = [
- { month: "january", desktop: 186, fill: "var(--color-january)" },
- { month: "february", desktop: 305, fill: "var(--color-february)" },
- { month: "march", desktop: 237, fill: "var(--color-march)" },
- { month: "april", desktop: 173, fill: "var(--color-april)" },
- { month: "may", desktop: 209, fill: "var(--color-may)" },
-]
-
-const mobileData = [
- { month: "january", mobile: 80, fill: "var(--color-january)" },
- { month: "february", mobile: 200, fill: "var(--color-february)" },
- { month: "march", mobile: 120, fill: "var(--color-march)" },
- { month: "april", mobile: 190, fill: "var(--color-april)" },
- { month: "may", mobile: 130, fill: "var(--color-may)" },
-]
-
-const chartConfig = {
- visitors: {
- label: "Visitors",
- },
- desktop: {
- label: "Desktop",
- },
- mobile: {
- label: "Mobile",
- },
- january: {
- label: "January",
- color: "hsl(var(--chart-1))",
- },
- february: {
- label: "February",
- color: "hsl(var(--chart-2))",
- },
- march: {
- label: "March",
- color: "hsl(var(--chart-3))",
- },
- april: {
- label: "April",
- color: "hsl(var(--chart-4))",
- },
- may: {
- label: "May",
- color: "hsl(var(--chart-5))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Pie Chart - Stacked
- January - June 2024
-
-
-
-
- {
- return chartConfig[
- payload?.[0].dataKey as keyof typeof chartConfig
- ].label
- }}
- />
- }
- />
-
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- Showing total visitors for the last 6 months
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/blocks/chart-radar-default.tsx b/deprecated/www/__registry__/new-york/blocks/chart-radar-default.tsx
deleted file mode 100644
index 7d258514cd..0000000000
--- a/deprecated/www/__registry__/new-york/blocks/chart-radar-default.tsx
+++ /dev/null
@@ -1,75 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { PolarAngleAxis, PolarGrid, Radar, RadarChart } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-
-export const description = "A radar chart"
-
-const chartData = [
- { month: "January", desktop: 186 },
- { month: "February", desktop: 305 },
- { month: "March", desktop: 237 },
- { month: "April", desktop: 273 },
- { month: "May", desktop: 209 },
- { month: "June", desktop: 214 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Radar Chart
-
- Showing total visitors for the last 6 months
-
-
-
-
-
- } />
-
-
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- January - June 2024
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/blocks/chart-radar-dots.tsx b/deprecated/www/__registry__/new-york/blocks/chart-radar-dots.tsx
deleted file mode 100644
index 385734eae7..0000000000
--- a/deprecated/www/__registry__/new-york/blocks/chart-radar-dots.tsx
+++ /dev/null
@@ -1,79 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { PolarAngleAxis, PolarGrid, Radar, RadarChart } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-
-export const description = "A radar chart with dots"
-
-const chartData = [
- { month: "January", desktop: 186 },
- { month: "February", desktop: 305 },
- { month: "March", desktop: 237 },
- { month: "April", desktop: 273 },
- { month: "May", desktop: 209 },
- { month: "June", desktop: 214 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Radar Chart - Dots
-
- Showing total visitors for the last 6 months
-
-
-
-
-
- } />
-
-
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- January - June 2024
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/blocks/chart-radar-grid-circle-fill.tsx b/deprecated/www/__registry__/new-york/blocks/chart-radar-grid-circle-fill.tsx
deleted file mode 100644
index f3c62bbe86..0000000000
--- a/deprecated/www/__registry__/new-york/blocks/chart-radar-grid-circle-fill.tsx
+++ /dev/null
@@ -1,78 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { PolarAngleAxis, PolarGrid, Radar, RadarChart } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-
-export const description = "A radar chart with a grid and circle fill"
-
-const chartData = [
- { month: "January", desktop: 186 },
- { month: "February", desktop: 285 },
- { month: "March", desktop: 237 },
- { month: "April", desktop: 203 },
- { month: "May", desktop: 209 },
- { month: "June", desktop: 264 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Radar Chart - Grid Circle Filled
-
- Showing total visitors for the last 6 months
-
-
-
-
-
- } />
-
-
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- January - June 2024
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/blocks/chart-radar-grid-circle-no-lines.tsx b/deprecated/www/__registry__/new-york/blocks/chart-radar-grid-circle-no-lines.tsx
deleted file mode 100644
index 5164314998..0000000000
--- a/deprecated/www/__registry__/new-york/blocks/chart-radar-grid-circle-no-lines.tsx
+++ /dev/null
@@ -1,82 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { PolarAngleAxis, PolarGrid, Radar, RadarChart } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-
-export const description = "A radar chart with a grid and circle fill"
-
-const chartData = [
- { month: "January", desktop: 186 },
- { month: "February", desktop: 305 },
- { month: "March", desktop: 237 },
- { month: "April", desktop: 203 },
- { month: "May", desktop: 209 },
- { month: "June", desktop: 214 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Radar Chart - Grid Circle - No lines
-
- Showing total visitors for the last 6 months
-
-
-
-
-
- }
- />
-
-
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- January - June 2024
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/blocks/chart-radar-grid-circle.tsx b/deprecated/www/__registry__/new-york/blocks/chart-radar-grid-circle.tsx
deleted file mode 100644
index 0cfb63f0e1..0000000000
--- a/deprecated/www/__registry__/new-york/blocks/chart-radar-grid-circle.tsx
+++ /dev/null
@@ -1,82 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { PolarAngleAxis, PolarGrid, Radar, RadarChart } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-
-export const description = "A radar chart with a grid and circle"
-
-const chartData = [
- { month: "January", desktop: 186 },
- { month: "February", desktop: 305 },
- { month: "March", desktop: 237 },
- { month: "April", desktop: 273 },
- { month: "May", desktop: 209 },
- { month: "June", desktop: 214 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Radar Chart - Grid Circle
-
- Showing total visitors for the last 6 months
-
-
-
-
-
- }
- />
-
-
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- January - June 2024
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/blocks/chart-radar-grid-custom.tsx b/deprecated/www/__registry__/new-york/blocks/chart-radar-grid-custom.tsx
deleted file mode 100644
index c48dfcd641..0000000000
--- a/deprecated/www/__registry__/new-york/blocks/chart-radar-grid-custom.tsx
+++ /dev/null
@@ -1,78 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { PolarAngleAxis, PolarGrid, Radar, RadarChart } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-
-export const description = "A radar chart with a custom grid"
-
-const chartData = [
- { month: "January", desktop: 186 },
- { month: "February", desktop: 305 },
- { month: "March", desktop: 237 },
- { month: "April", desktop: 273 },
- { month: "May", desktop: 209 },
- { month: "June", desktop: 214 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Radar Chart - Grid Custom
-
- Showing total visitors for the last 6 months
-
-
-
-
-
- }
- />
-
-
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- January - June 2024
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/blocks/chart-radar-grid-fill.tsx b/deprecated/www/__registry__/new-york/blocks/chart-radar-grid-fill.tsx
deleted file mode 100644
index 69e2a9e06f..0000000000
--- a/deprecated/www/__registry__/new-york/blocks/chart-radar-grid-fill.tsx
+++ /dev/null
@@ -1,78 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { PolarAngleAxis, PolarGrid, Radar, RadarChart } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-
-export const description = "A radar chart with a grid filled"
-
-const chartData = [
- { month: "January", desktop: 186 },
- { month: "February", desktop: 285 },
- { month: "March", desktop: 237 },
- { month: "April", desktop: 203 },
- { month: "May", desktop: 209 },
- { month: "June", desktop: 264 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Radar Chart - Grid Filled
-
- Showing total visitors for the last 6 months
-
-
-
-
-
- }
- />
-
-
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- January - June 2024
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/blocks/chart-radar-grid-none.tsx b/deprecated/www/__registry__/new-york/blocks/chart-radar-grid-none.tsx
deleted file mode 100644
index bdd774945a..0000000000
--- a/deprecated/www/__registry__/new-york/blocks/chart-radar-grid-none.tsx
+++ /dev/null
@@ -1,81 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { PolarAngleAxis, Radar, RadarChart } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-
-export const description = "A radar chart with no grid"
-
-const chartData = [
- { month: "January", desktop: 186 },
- { month: "February", desktop: 305 },
- { month: "March", desktop: 237 },
- { month: "April", desktop: 273 },
- { month: "May", desktop: 209 },
- { month: "June", desktop: 214 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Radar Chart - Grid None
-
- Showing total visitors for the last 6 months
-
-
-
-
-
- }
- />
-
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- January - June 2024
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/blocks/chart-radar-icons.tsx b/deprecated/www/__registry__/new-york/blocks/chart-radar-icons.tsx
deleted file mode 100644
index d6e5b9ad9b..0000000000
--- a/deprecated/www/__registry__/new-york/blocks/chart-radar-icons.tsx
+++ /dev/null
@@ -1,94 +0,0 @@
-"use client"
-
-import { ArrowDownFromLine, ArrowUpFromLine, TrendingUp } from "lucide-react"
-import { PolarAngleAxis, PolarGrid, Radar, RadarChart } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartLegend,
- ChartLegendContent,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-
-export const description = "A radar chart with icons"
-
-const chartData = [
- { month: "January", desktop: 186, mobile: 80 },
- { month: "February", desktop: 305, mobile: 200 },
- { month: "March", desktop: 237, mobile: 120 },
- { month: "April", desktop: 73, mobile: 190 },
- { month: "May", desktop: 209, mobile: 130 },
- { month: "June", desktop: 214, mobile: 140 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- icon: ArrowDownFromLine,
- },
- mobile: {
- label: "Mobile",
- color: "hsl(var(--chart-2))",
- icon: ArrowUpFromLine,
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Radar Chart - Icons
-
- Showing total visitors for the last 6 months
-
-
-
-
-
- }
- />
-
-
-
-
- } />
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- January - June 2024
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/blocks/chart-radar-label-custom.tsx b/deprecated/www/__registry__/new-york/blocks/chart-radar-label-custom.tsx
deleted file mode 100644
index 7d693b2eda..0000000000
--- a/deprecated/www/__registry__/new-york/blocks/chart-radar-label-custom.tsx
+++ /dev/null
@@ -1,120 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { PolarAngleAxis, PolarGrid, Radar, RadarChart } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-
-export const description = "A radar chart with a custom label"
-
-const chartData = [
- { month: "January", desktop: 186, mobile: 80 },
- { month: "February", desktop: 305, mobile: 200 },
- { month: "March", desktop: 237, mobile: 120 },
- { month: "April", desktop: 73, mobile: 190 },
- { month: "May", desktop: 209, mobile: 130 },
- { month: "June", desktop: 214, mobile: 140 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
- mobile: {
- label: "Mobile",
- color: "hsl(var(--chart-2))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Radar Chart - Custom Label
-
- Showing total visitors for the last 6 months
-
-
-
-
-
- }
- />
- {
- const data = chartData[index]
-
- return (
-
- {data.desktop}
- /
- {data.mobile}
-
- {data.month}
-
-
- )
- }}
- />
-
-
-
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- January - June 2024
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/blocks/chart-radar-legend.tsx b/deprecated/www/__registry__/new-york/blocks/chart-radar-legend.tsx
deleted file mode 100644
index 4000465449..0000000000
--- a/deprecated/www/__registry__/new-york/blocks/chart-radar-legend.tsx
+++ /dev/null
@@ -1,92 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { PolarAngleAxis, PolarGrid, Radar, RadarChart } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartLegend,
- ChartLegendContent,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-
-export const description = "A radar chart with a legend"
-
-const chartData = [
- { month: "January", desktop: 186, mobile: 80 },
- { month: "February", desktop: 305, mobile: 200 },
- { month: "March", desktop: 237, mobile: 120 },
- { month: "April", desktop: 73, mobile: 190 },
- { month: "May", desktop: 209, mobile: 130 },
- { month: "June", desktop: 214, mobile: 140 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
- mobile: {
- label: "Mobile",
- color: "hsl(var(--chart-2))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Radar Chart - Legend
-
- Showing total visitors for the last 6 months
-
-
-
-
-
- }
- />
-
-
-
-
- } />
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- January - June 2024
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/blocks/chart-radar-lines-only.tsx b/deprecated/www/__registry__/new-york/blocks/chart-radar-lines-only.tsx
deleted file mode 100644
index abaf967363..0000000000
--- a/deprecated/www/__registry__/new-york/blocks/chart-radar-lines-only.tsx
+++ /dev/null
@@ -1,91 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { PolarAngleAxis, PolarGrid, Radar, RadarChart } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-
-export const description = "A radar chart with lines only"
-
-const chartData = [
- { month: "January", desktop: 186, mobile: 160 },
- { month: "February", desktop: 185, mobile: 170 },
- { month: "March", desktop: 207, mobile: 180 },
- { month: "April", desktop: 173, mobile: 160 },
- { month: "May", desktop: 160, mobile: 190 },
- { month: "June", desktop: 174, mobile: 204 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
- mobile: {
- label: "Mobile",
- color: "hsl(var(--chart-2))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Radar Chart - Lines Only
-
- Showing total visitors for the last 6 months
-
-
-
-
-
- }
- />
-
-
-
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- January - June 2024
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/blocks/chart-radar-multiple.tsx b/deprecated/www/__registry__/new-york/blocks/chart-radar-multiple.tsx
deleted file mode 100644
index d8786f8b4a..0000000000
--- a/deprecated/www/__registry__/new-york/blocks/chart-radar-multiple.tsx
+++ /dev/null
@@ -1,83 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { PolarAngleAxis, PolarGrid, Radar, RadarChart } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-
-export const description = "A radar chart with multiple data"
-
-const chartData = [
- { month: "January", desktop: 186, mobile: 80 },
- { month: "February", desktop: 305, mobile: 200 },
- { month: "March", desktop: 237, mobile: 120 },
- { month: "April", desktop: 73, mobile: 190 },
- { month: "May", desktop: 209, mobile: 130 },
- { month: "June", desktop: 214, mobile: 140 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
- mobile: {
- label: "Mobile",
- color: "hsl(var(--chart-2))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Radar Chart - Multiple
-
- Showing total visitors for the last 6 months
-
-
-
-
-
- }
- />
-
-
-
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- January - June 2024
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/blocks/chart-radar-radius.tsx b/deprecated/www/__registry__/new-york/blocks/chart-radar-radius.tsx
deleted file mode 100644
index aa82f8f024..0000000000
--- a/deprecated/www/__registry__/new-york/blocks/chart-radar-radius.tsx
+++ /dev/null
@@ -1,96 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import {
- PolarAngleAxis,
- PolarGrid,
- PolarRadiusAxis,
- Radar,
- RadarChart,
-} from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-
-export const description = "A radar chart with a radius axis"
-
-const chartData = [
- { month: "January", desktop: 186, mobile: 80 },
- { month: "February", desktop: 305, mobile: 200 },
- { month: "March", desktop: 237, mobile: 120 },
- { month: "April", desktop: 73, mobile: 190 },
- { month: "May", desktop: 209, mobile: 130 },
- { month: "June", desktop: 214, mobile: 140 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
- mobile: {
- label: "Mobile",
- color: "hsl(var(--chart-2))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Radar Chart - Radius Axis
-
- Showing total visitors for the last 6 months
-
-
-
-
-
-
- }
- />
-
-
-
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- January - June 2024
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/blocks/chart-radial-grid.tsx b/deprecated/www/__registry__/new-york/blocks/chart-radial-grid.tsx
deleted file mode 100644
index 69a1a3a603..0000000000
--- a/deprecated/www/__registry__/new-york/blocks/chart-radial-grid.tsx
+++ /dev/null
@@ -1,89 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { PolarGrid, RadialBar, RadialBarChart } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-
-export const description = "A radial chart with a grid"
-
-const chartData = [
- { browser: "chrome", visitors: 275, fill: "var(--color-chrome)" },
- { browser: "safari", visitors: 200, fill: "var(--color-safari)" },
- { browser: "firefox", visitors: 187, fill: "var(--color-firefox)" },
- { browser: "edge", visitors: 173, fill: "var(--color-edge)" },
- { browser: "other", visitors: 90, fill: "var(--color-other)" },
-]
-
-const chartConfig = {
- visitors: {
- label: "Visitors",
- },
- chrome: {
- label: "Chrome",
- color: "hsl(var(--chart-1))",
- },
- safari: {
- label: "Safari",
- color: "hsl(var(--chart-2))",
- },
- firefox: {
- label: "Firefox",
- color: "hsl(var(--chart-3))",
- },
- edge: {
- label: "Edge",
- color: "hsl(var(--chart-4))",
- },
- other: {
- label: "Other",
- color: "hsl(var(--chart-5))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Radial Chart - Grid
- January - June 2024
-
-
-
-
- }
- />
-
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- Showing total visitors for the last 6 months
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/blocks/chart-radial-label.tsx b/deprecated/www/__registry__/new-york/blocks/chart-radial-label.tsx
deleted file mode 100644
index 25c1bc41bf..0000000000
--- a/deprecated/www/__registry__/new-york/blocks/chart-radial-label.tsx
+++ /dev/null
@@ -1,101 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { LabelList, RadialBar, RadialBarChart } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-
-export const description = "A radial chart with a label"
-
-const chartData = [
- { browser: "chrome", visitors: 275, fill: "var(--color-chrome)" },
- { browser: "safari", visitors: 200, fill: "var(--color-safari)" },
- { browser: "firefox", visitors: 187, fill: "var(--color-firefox)" },
- { browser: "edge", visitors: 173, fill: "var(--color-edge)" },
- { browser: "other", visitors: 90, fill: "var(--color-other)" },
-]
-
-const chartConfig = {
- visitors: {
- label: "Visitors",
- },
- chrome: {
- label: "Chrome",
- color: "hsl(var(--chart-1))",
- },
- safari: {
- label: "Safari",
- color: "hsl(var(--chart-2))",
- },
- firefox: {
- label: "Firefox",
- color: "hsl(var(--chart-3))",
- },
- edge: {
- label: "Edge",
- color: "hsl(var(--chart-4))",
- },
- other: {
- label: "Other",
- color: "hsl(var(--chart-5))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Radial Chart - Label
- January - June 2024
-
-
-
-
- }
- />
-
-
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- Showing total visitors for the last 6 months
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/blocks/chart-radial-shape.tsx b/deprecated/www/__registry__/new-york/blocks/chart-radial-shape.tsx
deleted file mode 100644
index 592e225c4a..0000000000
--- a/deprecated/www/__registry__/new-york/blocks/chart-radial-shape.tsx
+++ /dev/null
@@ -1,108 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import {
- Label,
- PolarGrid,
- PolarRadiusAxis,
- RadialBar,
- RadialBarChart,
-} from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import { ChartConfig, ChartContainer } from "@/registry/new-york/ui/chart"
-
-export const description = "A radial chart with a custom shape"
-
-const chartData = [
- { browser: "safari", visitors: 1260, fill: "var(--color-safari)" },
-]
-
-const chartConfig = {
- visitors: {
- label: "Visitors",
- },
- safari: {
- label: "Safari",
- color: "hsl(var(--chart-2))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Radial Chart - Shape
- January - June 2024
-
-
-
-
-
-
-
- {
- if (viewBox && "cx" in viewBox && "cy" in viewBox) {
- return (
-
-
- {chartData[0].visitors.toLocaleString()}
-
-
- Visitors
-
-
- )
- }
- }}
- />
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- Showing total visitors for the last 6 months
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/blocks/chart-radial-simple.tsx b/deprecated/www/__registry__/new-york/blocks/chart-radial-simple.tsx
deleted file mode 100644
index 4033acb323..0000000000
--- a/deprecated/www/__registry__/new-york/blocks/chart-radial-simple.tsx
+++ /dev/null
@@ -1,88 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { RadialBar, RadialBarChart } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-
-export const description = "A radial chart"
-
-const chartData = [
- { browser: "chrome", visitors: 275, fill: "var(--color-chrome)" },
- { browser: "safari", visitors: 200, fill: "var(--color-safari)" },
- { browser: "firefox", visitors: 187, fill: "var(--color-firefox)" },
- { browser: "edge", visitors: 173, fill: "var(--color-edge)" },
- { browser: "other", visitors: 90, fill: "var(--color-other)" },
-]
-
-const chartConfig = {
- visitors: {
- label: "Visitors",
- },
- chrome: {
- label: "Chrome",
- color: "hsl(var(--chart-1))",
- },
- safari: {
- label: "Safari",
- color: "hsl(var(--chart-2))",
- },
- firefox: {
- label: "Firefox",
- color: "hsl(var(--chart-3))",
- },
- edge: {
- label: "Edge",
- color: "hsl(var(--chart-4))",
- },
- other: {
- label: "Other",
- color: "hsl(var(--chart-5))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Radial Chart
- January - June 2024
-
-
-
-
- }
- />
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- Showing total visitors for the last 6 months
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/blocks/chart-radial-stacked.tsx b/deprecated/www/__registry__/new-york/blocks/chart-radial-stacked.tsx
deleted file mode 100644
index 38d35670e5..0000000000
--- a/deprecated/www/__registry__/new-york/blocks/chart-radial-stacked.tsx
+++ /dev/null
@@ -1,113 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { Label, PolarRadiusAxis, RadialBar, RadialBarChart } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-
-export const description = "A radial chart with stacked sections"
-
-const chartData = [{ month: "january", desktop: 1260, mobile: 570 }]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
- mobile: {
- label: "Mobile",
- color: "hsl(var(--chart-2))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- const totalVisitors = chartData[0].desktop + chartData[0].mobile
-
- return (
-
-
- Radial Chart - Stacked
- January - June 2024
-
-
-
-
- }
- />
-
- {
- if (viewBox && "cx" in viewBox && "cy" in viewBox) {
- return (
-
-
- {totalVisitors.toLocaleString()}
-
-
- Visitors
-
-
- )
- }
- }}
- />
-
-
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- Showing total visitors for the last 6 months
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/blocks/chart-radial-text.tsx b/deprecated/www/__registry__/new-york/blocks/chart-radial-text.tsx
deleted file mode 100644
index b88623e6e2..0000000000
--- a/deprecated/www/__registry__/new-york/blocks/chart-radial-text.tsx
+++ /dev/null
@@ -1,109 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import {
- Label,
- PolarGrid,
- PolarRadiusAxis,
- RadialBar,
- RadialBarChart,
-} from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import { ChartConfig, ChartContainer } from "@/registry/new-york/ui/chart"
-
-export const description = "A radial chart with text"
-
-const chartData = [
- { browser: "safari", visitors: 200, fill: "var(--color-safari)" },
-]
-
-const chartConfig = {
- visitors: {
- label: "Visitors",
- },
- safari: {
- label: "Safari",
- color: "hsl(var(--chart-2))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Radial Chart - Text
- January - June 2024
-
-
-
-
-
-
-
- {
- if (viewBox && "cx" in viewBox && "cy" in viewBox) {
- return (
-
-
- {chartData[0].visitors.toLocaleString()}
-
-
- Visitors
-
-
- )
- }
- }}
- />
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- Showing total visitors for the last 6 months
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/blocks/chart-tooltip-advanced.tsx b/deprecated/www/__registry__/new-york/blocks/chart-tooltip-advanced.tsx
deleted file mode 100644
index bbc9f115dd..0000000000
--- a/deprecated/www/__registry__/new-york/blocks/chart-tooltip-advanced.tsx
+++ /dev/null
@@ -1,123 +0,0 @@
-"use client"
-
-import { Bar, BarChart, XAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-
-export const description = "A stacked bar chart with a legend"
-
-const chartData = [
- { date: "2024-07-15", running: 450, swimming: 300 },
- { date: "2024-07-16", running: 380, swimming: 420 },
- { date: "2024-07-17", running: 520, swimming: 120 },
- { date: "2024-07-18", running: 140, swimming: 550 },
- { date: "2024-07-19", running: 600, swimming: 350 },
- { date: "2024-07-20", running: 480, swimming: 400 },
-]
-
-const chartConfig = {
- running: {
- label: "Running",
- color: "hsl(var(--chart-1))",
- },
- swimming: {
- label: "Swimming",
- color: "hsl(var(--chart-2))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Tooltip - Advanced
-
- Tooltip with custom formatter and total.
-
-
-
-
-
- {
- return new Date(value).toLocaleDateString("en-US", {
- weekday: "short",
- })
- }}
- />
-
-
- (
- <>
-
- {chartConfig[name as keyof typeof chartConfig]?.label ||
- name}
-
- {value}
-
- kcal
-
-
- {/* Add this after the last item */}
- {index === 1 && (
-
- Total
-
- {item.payload.running + item.payload.swimming}
-
- kcal
-
-
-
- )}
- >
- )}
- />
- }
- cursor={false}
- defaultIndex={1}
- />
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/blocks/chart-tooltip-default.tsx b/deprecated/www/__registry__/new-york/blocks/chart-tooltip-default.tsx
deleted file mode 100644
index 759b4555be..0000000000
--- a/deprecated/www/__registry__/new-york/blocks/chart-tooltip-default.tsx
+++ /dev/null
@@ -1,89 +0,0 @@
-"use client"
-
-import { Bar, BarChart, XAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-
-export const description = "A stacked bar chart with a legend"
-export const iframeHeight = "600px"
-export const containerClassName =
- "[&>div]:w-full [&>div]:max-w-md flex items-center justify-center min-h-svh"
-
-const chartData = [
- { date: "2024-07-15", running: 450, swimming: 300 },
- { date: "2024-07-16", running: 380, swimming: 420 },
- { date: "2024-07-17", running: 520, swimming: 120 },
- { date: "2024-07-18", running: 140, swimming: 550 },
- { date: "2024-07-19", running: 600, swimming: 350 },
- { date: "2024-07-20", running: 480, swimming: 400 },
-]
-
-const chartConfig = {
- running: {
- label: "Running",
- color: "hsl(var(--chart-1))",
- },
- swimming: {
- label: "Swimming",
- color: "hsl(var(--chart-2))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Tooltip - Default
-
- Default tooltip with ChartTooltipContent.
-
-
-
-
-
- {
- return new Date(value).toLocaleDateString("en-US", {
- weekday: "short",
- })
- }}
- />
-
-
- }
- cursor={false}
- defaultIndex={1}
- />
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/blocks/chart-tooltip-formatter.tsx b/deprecated/www/__registry__/new-york/blocks/chart-tooltip-formatter.tsx
deleted file mode 100644
index e67f266f27..0000000000
--- a/deprecated/www/__registry__/new-york/blocks/chart-tooltip-formatter.tsx
+++ /dev/null
@@ -1,100 +0,0 @@
-"use client"
-
-import { Bar, BarChart, XAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-
-export const description = "A stacked bar chart with a legend"
-
-const chartData = [
- { date: "2024-07-15", running: 450, swimming: 300 },
- { date: "2024-07-16", running: 380, swimming: 420 },
- { date: "2024-07-17", running: 520, swimming: 120 },
- { date: "2024-07-18", running: 140, swimming: 550 },
- { date: "2024-07-19", running: 600, swimming: 350 },
- { date: "2024-07-20", running: 480, swimming: 400 },
-]
-
-const chartConfig = {
- running: {
- label: "Running",
- color: "hsl(var(--chart-1))",
- },
- swimming: {
- label: "Swimming",
- color: "hsl(var(--chart-2))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Tooltip - Formatter
- Tooltip with custom formatter .
-
-
-
-
- {
- return new Date(value).toLocaleDateString("en-US", {
- weekday: "short",
- })
- }}
- />
-
-
- (
-
- {chartConfig[name as keyof typeof chartConfig]?.label ||
- name}
-
- {value}
-
- kcal
-
-
-
- )}
- />
- }
- cursor={false}
- defaultIndex={1}
- />
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/blocks/chart-tooltip-icons.tsx b/deprecated/www/__registry__/new-york/blocks/chart-tooltip-icons.tsx
deleted file mode 100644
index f2bf071923..0000000000
--- a/deprecated/www/__registry__/new-york/blocks/chart-tooltip-icons.tsx
+++ /dev/null
@@ -1,87 +0,0 @@
-"use client"
-
-import { Footprints, Waves } from "lucide-react"
-import { Bar, BarChart, XAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-
-export const description = "A stacked bar chart with a legend"
-
-const chartData = [
- { date: "2024-07-15", running: 450, swimming: 300 },
- { date: "2024-07-16", running: 380, swimming: 420 },
- { date: "2024-07-17", running: 520, swimming: 120 },
- { date: "2024-07-18", running: 140, swimming: 550 },
- { date: "2024-07-19", running: 600, swimming: 350 },
- { date: "2024-07-20", running: 480, swimming: 400 },
-]
-
-const chartConfig = {
- running: {
- label: "Running",
- color: "hsl(var(--chart-1))",
- icon: Footprints,
- },
- swimming: {
- label: "Swimming",
- color: "hsl(var(--chart-2))",
- icon: Waves,
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Tooltip - Icons
- Tooltip with icons.
-
-
-
-
- {
- return new Date(value).toLocaleDateString("en-US", {
- weekday: "short",
- })
- }}
- />
-
-
- }
- cursor={false}
- defaultIndex={1}
- />
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/blocks/chart-tooltip-indicator-line.tsx b/deprecated/www/__registry__/new-york/blocks/chart-tooltip-indicator-line.tsx
deleted file mode 100644
index 19c3f85889..0000000000
--- a/deprecated/www/__registry__/new-york/blocks/chart-tooltip-indicator-line.tsx
+++ /dev/null
@@ -1,87 +0,0 @@
-"use client"
-
-import { Bar, BarChart, XAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-
-export const description = "A stacked bar chart with a legend"
-export const iframeHeight = "600px"
-export const containerClassName =
- "[&>div]:w-full [&>div]:max-w-md flex items-center justify-center min-h-svh"
-
-const chartData = [
- { date: "2024-07-15", running: 450, swimming: 300 },
- { date: "2024-07-16", running: 380, swimming: 420 },
- { date: "2024-07-17", running: 520, swimming: 120 },
- { date: "2024-07-18", running: 140, swimming: 550 },
- { date: "2024-07-19", running: 600, swimming: 350 },
- { date: "2024-07-20", running: 480, swimming: 400 },
-]
-
-const chartConfig = {
- running: {
- label: "Running",
- color: "hsl(var(--chart-1))",
- },
- swimming: {
- label: "Swimming",
- color: "hsl(var(--chart-2))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Tooltip - Line Indicator
- Tooltip with line indicator.
-
-
-
-
- {
- return new Date(value).toLocaleDateString("en-US", {
- weekday: "short",
- })
- }}
- />
-
-
- }
- cursor={false}
- defaultIndex={1}
- />
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/blocks/chart-tooltip-indicator-none.tsx b/deprecated/www/__registry__/new-york/blocks/chart-tooltip-indicator-none.tsx
deleted file mode 100644
index 29c898a861..0000000000
--- a/deprecated/www/__registry__/new-york/blocks/chart-tooltip-indicator-none.tsx
+++ /dev/null
@@ -1,84 +0,0 @@
-"use client"
-
-import { Bar, BarChart, XAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-
-export const description = "A stacked bar chart with a legend"
-
-const chartData = [
- { date: "2024-07-15", running: 450, swimming: 300 },
- { date: "2024-07-16", running: 380, swimming: 420 },
- { date: "2024-07-17", running: 520, swimming: 120 },
- { date: "2024-07-18", running: 140, swimming: 550 },
- { date: "2024-07-19", running: 600, swimming: 350 },
- { date: "2024-07-20", running: 480, swimming: 400 },
-]
-
-const chartConfig = {
- running: {
- label: "Running",
- color: "hsl(var(--chart-1))",
- },
- swimming: {
- label: "Swimming",
- color: "hsl(var(--chart-2))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Tooltip - No Indicator
- Tooltip with no indicator.
-
-
-
-
- {
- return new Date(value).toLocaleDateString("en-US", {
- weekday: "short",
- })
- }}
- />
-
-
- }
- cursor={false}
- defaultIndex={1}
- />
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/blocks/chart-tooltip-label-custom.tsx b/deprecated/www/__registry__/new-york/blocks/chart-tooltip-label-custom.tsx
deleted file mode 100644
index f632510879..0000000000
--- a/deprecated/www/__registry__/new-york/blocks/chart-tooltip-label-custom.tsx
+++ /dev/null
@@ -1,91 +0,0 @@
-"use client"
-
-import { Bar, BarChart, XAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-
-export const description = "A stacked bar chart with a legend"
-
-const chartData = [
- { date: "2024-07-15", running: 450, swimming: 300 },
- { date: "2024-07-16", running: 380, swimming: 420 },
- { date: "2024-07-17", running: 520, swimming: 120 },
- { date: "2024-07-18", running: 140, swimming: 550 },
- { date: "2024-07-19", running: 600, swimming: 350 },
- { date: "2024-07-20", running: 480, swimming: 400 },
-]
-
-const chartConfig = {
- activities: {
- label: "Activities",
- },
- running: {
- label: "Running",
- color: "hsl(var(--chart-1))",
- },
- swimming: {
- label: "Swimming",
- color: "hsl(var(--chart-2))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Tooltip - Custom label
-
- Tooltip with custom label from chartConfig.
-
-
-
-
-
- {
- return new Date(value).toLocaleDateString("en-US", {
- weekday: "short",
- })
- }}
- />
-
-
-
- }
- cursor={false}
- defaultIndex={1}
- />
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/blocks/chart-tooltip-label-formatter.tsx b/deprecated/www/__registry__/new-york/blocks/chart-tooltip-label-formatter.tsx
deleted file mode 100644
index 220a445b0c..0000000000
--- a/deprecated/www/__registry__/new-york/blocks/chart-tooltip-label-formatter.tsx
+++ /dev/null
@@ -1,94 +0,0 @@
-"use client"
-
-import { Bar, BarChart, XAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-
-export const description = "A stacked bar chart with a legend"
-
-const chartData = [
- { date: "2024-07-15", running: 450, swimming: 300 },
- { date: "2024-07-16", running: 380, swimming: 420 },
- { date: "2024-07-17", running: 520, swimming: 120 },
- { date: "2024-07-18", running: 140, swimming: 550 },
- { date: "2024-07-19", running: 600, swimming: 350 },
- { date: "2024-07-20", running: 480, swimming: 400 },
-]
-
-const chartConfig = {
- running: {
- label: "Running",
- color: "hsl(var(--chart-1))",
- },
- swimming: {
- label: "Swimming",
- color: "hsl(var(--chart-2))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Tooltip - Label Formatter
- Tooltip with label formatter.
-
-
-
-
- {
- return new Date(value).toLocaleDateString("en-US", {
- weekday: "short",
- })
- }}
- />
-
-
- {
- return new Date(value).toLocaleDateString("en-US", {
- day: "numeric",
- month: "long",
- year: "numeric",
- })
- }}
- />
- }
- cursor={false}
- defaultIndex={1}
- />
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/blocks/chart-tooltip-label-none.tsx b/deprecated/www/__registry__/new-york/blocks/chart-tooltip-label-none.tsx
deleted file mode 100644
index a655168dff..0000000000
--- a/deprecated/www/__registry__/new-york/blocks/chart-tooltip-label-none.tsx
+++ /dev/null
@@ -1,84 +0,0 @@
-"use client"
-
-import { Bar, BarChart, XAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-
-export const description = "A stacked bar chart with a legend"
-
-const chartData = [
- { date: "2024-07-15", running: 450, swimming: 300 },
- { date: "2024-07-16", running: 380, swimming: 420 },
- { date: "2024-07-17", running: 520, swimming: 120 },
- { date: "2024-07-18", running: 140, swimming: 550 },
- { date: "2024-07-19", running: 600, swimming: 350 },
- { date: "2024-07-20", running: 480, swimming: 400 },
-]
-
-const chartConfig = {
- running: {
- label: "Running",
- color: "hsl(var(--chart-1))",
- },
- swimming: {
- label: "Swimming",
- color: "hsl(var(--chart-2))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Tooltip - No Label
- Tooltip with no label.
-
-
-
-
- {
- return new Date(value).toLocaleDateString("en-US", {
- weekday: "short",
- })
- }}
- />
-
-
- }
- cursor={false}
- defaultIndex={1}
- />
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/blocks/dashboard-01/page.tsx b/deprecated/www/__registry__/new-york/blocks/dashboard-01/page.tsx
deleted file mode 100644
index e5602a4af1..0000000000
--- a/deprecated/www/__registry__/new-york/blocks/dashboard-01/page.tsx
+++ /dev/null
@@ -1,30 +0,0 @@
-import { AppSidebar } from "@/registry/new-york/blocks/dashboard-01/components/app-sidebar"
-import { ChartAreaInteractive } from "@/registry/new-york/blocks/dashboard-01/components/chart-area-interactive"
-import { DataTable } from "@/registry/new-york/blocks/dashboard-01/components/data-table"
-import { SectionCards } from "@/registry/new-york/blocks/dashboard-01/components/section-cards"
-import { SiteHeader } from "@/registry/new-york/blocks/dashboard-01/components/site-header"
-import { SidebarInset, SidebarProvider } from "@/registry/new-york/ui/sidebar"
-
-import data from "./data.json"
-
-export default function Page() {
- return (
-
-
-
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/blocks/login-01/page.tsx b/deprecated/www/__registry__/new-york/blocks/login-01/page.tsx
deleted file mode 100644
index 20fe9846ce..0000000000
--- a/deprecated/www/__registry__/new-york/blocks/login-01/page.tsx
+++ /dev/null
@@ -1,11 +0,0 @@
-import { LoginForm } from "@/registry/new-york/blocks/login-01/components/login-form"
-
-export default function Page() {
- return (
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/blocks/login-02/page.tsx b/deprecated/www/__registry__/new-york/blocks/login-02/page.tsx
deleted file mode 100644
index 7353a4d4fa..0000000000
--- a/deprecated/www/__registry__/new-york/blocks/login-02/page.tsx
+++ /dev/null
@@ -1,32 +0,0 @@
-import { GalleryVerticalEnd } from "lucide-react"
-
-import { LoginForm } from "@/registry/new-york/blocks/login-02/components/login-form"
-
-export default function LoginPage() {
- return (
-
-
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/blocks/login-03/page.tsx b/deprecated/www/__registry__/new-york/blocks/login-03/page.tsx
deleted file mode 100644
index a4ced5031b..0000000000
--- a/deprecated/www/__registry__/new-york/blocks/login-03/page.tsx
+++ /dev/null
@@ -1,19 +0,0 @@
-import { GalleryVerticalEnd } from "lucide-react"
-
-import { LoginForm } from "@/registry/new-york/blocks/login-03/components/login-form"
-
-export default function LoginPage() {
- return (
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/blocks/login-04/page.tsx b/deprecated/www/__registry__/new-york/blocks/login-04/page.tsx
deleted file mode 100644
index e2188012ae..0000000000
--- a/deprecated/www/__registry__/new-york/blocks/login-04/page.tsx
+++ /dev/null
@@ -1,11 +0,0 @@
-import { LoginForm } from "@/registry/new-york/blocks/login-04/components/login-form"
-
-export default function LoginPage() {
- return (
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/blocks/login-05/page.tsx b/deprecated/www/__registry__/new-york/blocks/login-05/page.tsx
deleted file mode 100644
index 3d03c04805..0000000000
--- a/deprecated/www/__registry__/new-york/blocks/login-05/page.tsx
+++ /dev/null
@@ -1,11 +0,0 @@
-import { LoginForm } from "@/registry/new-york/blocks/login-05/components/login-form"
-
-export default function LoginPage() {
- return (
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/blocks/sidebar-01/page.tsx b/deprecated/www/__registry__/new-york/blocks/sidebar-01/page.tsx
deleted file mode 100644
index a13e7b06fe..0000000000
--- a/deprecated/www/__registry__/new-york/blocks/sidebar-01/page.tsx
+++ /dev/null
@@ -1,50 +0,0 @@
-import { AppSidebar } from "@/registry/new-york/blocks/sidebar-01/components/app-sidebar"
-import {
- Breadcrumb,
- BreadcrumbItem,
- BreadcrumbLink,
- BreadcrumbList,
- BreadcrumbPage,
- BreadcrumbSeparator,
-} from "@/registry/new-york/ui/breadcrumb"
-import { Separator } from "@/registry/new-york/ui/separator"
-import {
- SidebarInset,
- SidebarProvider,
- SidebarTrigger,
-} from "@/registry/new-york/ui/sidebar"
-
-export default function Page() {
- return (
-
-
-
-
-
-
-
-
-
-
- Building Your Application
-
-
-
-
- Data Fetching
-
-
-
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/blocks/sidebar-02/page.tsx b/deprecated/www/__registry__/new-york/blocks/sidebar-02/page.tsx
deleted file mode 100644
index 140cf70f88..0000000000
--- a/deprecated/www/__registry__/new-york/blocks/sidebar-02/page.tsx
+++ /dev/null
@@ -1,50 +0,0 @@
-import { AppSidebar } from "@/registry/new-york/blocks/sidebar-02/components/app-sidebar"
-import {
- Breadcrumb,
- BreadcrumbItem,
- BreadcrumbLink,
- BreadcrumbList,
- BreadcrumbPage,
- BreadcrumbSeparator,
-} from "@/registry/new-york/ui/breadcrumb"
-import { Separator } from "@/registry/new-york/ui/separator"
-import {
- SidebarInset,
- SidebarProvider,
- SidebarTrigger,
-} from "@/registry/new-york/ui/sidebar"
-
-export default function Page() {
- return (
-
-
-
-
-
-
-
-
-
-
- Building Your Application
-
-
-
-
- Data Fetching
-
-
-
-
-
- {Array.from({ length: 24 }).map((_, index) => (
-
- ))}
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/blocks/sidebar-03/page.tsx b/deprecated/www/__registry__/new-york/blocks/sidebar-03/page.tsx
deleted file mode 100644
index 768d4775bb..0000000000
--- a/deprecated/www/__registry__/new-york/blocks/sidebar-03/page.tsx
+++ /dev/null
@@ -1,52 +0,0 @@
-import { AppSidebar } from "@/registry/new-york/blocks/sidebar-03/components/app-sidebar"
-import {
- Breadcrumb,
- BreadcrumbItem,
- BreadcrumbLink,
- BreadcrumbList,
- BreadcrumbPage,
- BreadcrumbSeparator,
-} from "@/registry/new-york/ui/breadcrumb"
-import { Separator } from "@/registry/new-york/ui/separator"
-import {
- SidebarInset,
- SidebarProvider,
- SidebarTrigger,
-} from "@/registry/new-york/ui/sidebar"
-
-export default function Page() {
- return (
-
-
-
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/blocks/sidebar-04/page.tsx b/deprecated/www/__registry__/new-york/blocks/sidebar-04/page.tsx
deleted file mode 100644
index fd5d6c8f00..0000000000
--- a/deprecated/www/__registry__/new-york/blocks/sidebar-04/page.tsx
+++ /dev/null
@@ -1,56 +0,0 @@
-import { AppSidebar } from "@/registry/new-york/blocks/sidebar-04/components/app-sidebar"
-import {
- Breadcrumb,
- BreadcrumbItem,
- BreadcrumbLink,
- BreadcrumbList,
- BreadcrumbPage,
- BreadcrumbSeparator,
-} from "@/registry/new-york/ui/breadcrumb"
-import { Separator } from "@/registry/new-york/ui/separator"
-import {
- SidebarInset,
- SidebarProvider,
- SidebarTrigger,
-} from "@/registry/new-york/ui/sidebar"
-
-export default function Page() {
- return (
-
-
-
-
-
-
-
-
-
-
- Building Your Application
-
-
-
-
- Data Fetching
-
-
-
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/blocks/sidebar-05/page.tsx b/deprecated/www/__registry__/new-york/blocks/sidebar-05/page.tsx
deleted file mode 100644
index 9d630900db..0000000000
--- a/deprecated/www/__registry__/new-york/blocks/sidebar-05/page.tsx
+++ /dev/null
@@ -1,50 +0,0 @@
-import { AppSidebar } from "@/registry/new-york/blocks/sidebar-05/components/app-sidebar"
-import {
- Breadcrumb,
- BreadcrumbItem,
- BreadcrumbLink,
- BreadcrumbList,
- BreadcrumbPage,
- BreadcrumbSeparator,
-} from "@/registry/new-york/ui/breadcrumb"
-import { Separator } from "@/registry/new-york/ui/separator"
-import {
- SidebarInset,
- SidebarProvider,
- SidebarTrigger,
-} from "@/registry/new-york/ui/sidebar"
-
-export default function Page() {
- return (
-
-
-
-
-
-
-
-
-
-
- Building Your Application
-
-
-
-
- Data Fetching
-
-
-
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/blocks/sidebar-06/page.tsx b/deprecated/www/__registry__/new-york/blocks/sidebar-06/page.tsx
deleted file mode 100644
index ac30ac9fe1..0000000000
--- a/deprecated/www/__registry__/new-york/blocks/sidebar-06/page.tsx
+++ /dev/null
@@ -1,50 +0,0 @@
-import { AppSidebar } from "@/registry/new-york/blocks/sidebar-06/components/app-sidebar"
-import {
- Breadcrumb,
- BreadcrumbItem,
- BreadcrumbLink,
- BreadcrumbList,
- BreadcrumbPage,
- BreadcrumbSeparator,
-} from "@/registry/new-york/ui/breadcrumb"
-import { Separator } from "@/registry/new-york/ui/separator"
-import {
- SidebarInset,
- SidebarProvider,
- SidebarTrigger,
-} from "@/registry/new-york/ui/sidebar"
-
-export default function Page() {
- return (
-
-
-
-
-
-
-
-
-
-
- Building Your Application
-
-
-
-
- Data Fetching
-
-
-
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/blocks/sidebar-07/page.tsx b/deprecated/www/__registry__/new-york/blocks/sidebar-07/page.tsx
deleted file mode 100644
index 8f9ab72554..0000000000
--- a/deprecated/www/__registry__/new-york/blocks/sidebar-07/page.tsx
+++ /dev/null
@@ -1,52 +0,0 @@
-import { AppSidebar } from "@/registry/new-york/blocks/sidebar-07/components/app-sidebar"
-import {
- Breadcrumb,
- BreadcrumbItem,
- BreadcrumbLink,
- BreadcrumbList,
- BreadcrumbPage,
- BreadcrumbSeparator,
-} from "@/registry/new-york/ui/breadcrumb"
-import { Separator } from "@/registry/new-york/ui/separator"
-import {
- SidebarInset,
- SidebarProvider,
- SidebarTrigger,
-} from "@/registry/new-york/ui/sidebar"
-
-export default function Page() {
- return (
-
-
-
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/blocks/sidebar-08/page.tsx b/deprecated/www/__registry__/new-york/blocks/sidebar-08/page.tsx
deleted file mode 100644
index 6df3df5d46..0000000000
--- a/deprecated/www/__registry__/new-york/blocks/sidebar-08/page.tsx
+++ /dev/null
@@ -1,52 +0,0 @@
-import { AppSidebar } from "@/registry/new-york/blocks/sidebar-08/components/app-sidebar"
-import {
- Breadcrumb,
- BreadcrumbItem,
- BreadcrumbLink,
- BreadcrumbList,
- BreadcrumbPage,
- BreadcrumbSeparator,
-} from "@/registry/new-york/ui/breadcrumb"
-import { Separator } from "@/registry/new-york/ui/separator"
-import {
- SidebarInset,
- SidebarProvider,
- SidebarTrigger,
-} from "@/registry/new-york/ui/sidebar"
-
-export default function Page() {
- return (
-
-
-
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/blocks/sidebar-09/page.tsx b/deprecated/www/__registry__/new-york/blocks/sidebar-09/page.tsx
deleted file mode 100644
index 8c5b59468d..0000000000
--- a/deprecated/www/__registry__/new-york/blocks/sidebar-09/page.tsx
+++ /dev/null
@@ -1,54 +0,0 @@
-import { AppSidebar } from "@/registry/new-york/blocks/sidebar-09/components/app-sidebar"
-import {
- Breadcrumb,
- BreadcrumbItem,
- BreadcrumbLink,
- BreadcrumbList,
- BreadcrumbPage,
- BreadcrumbSeparator,
-} from "@/registry/new-york/ui/breadcrumb"
-import { Separator } from "@/registry/new-york/ui/separator"
-import {
- SidebarInset,
- SidebarProvider,
- SidebarTrigger,
-} from "@/registry/new-york/ui/sidebar"
-
-export default function Page() {
- return (
-
-
-
-
-
-
-
-
-
- All Inboxes
-
-
-
- Inbox
-
-
-
-
-
- {Array.from({ length: 24 }).map((_, index) => (
-
- ))}
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/blocks/sidebar-10/page.tsx b/deprecated/www/__registry__/new-york/blocks/sidebar-10/page.tsx
deleted file mode 100644
index d12f80239a..0000000000
--- a/deprecated/www/__registry__/new-york/blocks/sidebar-10/page.tsx
+++ /dev/null
@@ -1,46 +0,0 @@
-import { AppSidebar } from "@/registry/new-york/blocks/sidebar-10/components/app-sidebar"
-import { NavActions } from "@/registry/new-york/blocks/sidebar-10/components/nav-actions"
-import {
- Breadcrumb,
- BreadcrumbItem,
- BreadcrumbList,
- BreadcrumbPage,
-} from "@/registry/new-york/ui/breadcrumb"
-import { Separator } from "@/registry/new-york/ui/separator"
-import {
- SidebarInset,
- SidebarProvider,
- SidebarTrigger,
-} from "@/registry/new-york/ui/sidebar"
-
-export default function Page() {
- return (
-
-
-
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/blocks/sidebar-11/page.tsx b/deprecated/www/__registry__/new-york/blocks/sidebar-11/page.tsx
deleted file mode 100644
index 939d72c682..0000000000
--- a/deprecated/www/__registry__/new-york/blocks/sidebar-11/page.tsx
+++ /dev/null
@@ -1,52 +0,0 @@
-import { AppSidebar } from "@/registry/new-york/blocks/sidebar-11/components/app-sidebar"
-import {
- Breadcrumb,
- BreadcrumbItem,
- BreadcrumbLink,
- BreadcrumbList,
- BreadcrumbPage,
- BreadcrumbSeparator,
-} from "@/registry/new-york/ui/breadcrumb"
-import { Separator } from "@/registry/new-york/ui/separator"
-import {
- SidebarInset,
- SidebarProvider,
- SidebarTrigger,
-} from "@/registry/new-york/ui/sidebar"
-
-export default function Page() {
- return (
-
-
-
-
-
-
-
-
-
- components
-
-
-
- ui
-
-
-
- button.tsx
-
-
-
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/blocks/sidebar-12/page.tsx b/deprecated/www/__registry__/new-york/blocks/sidebar-12/page.tsx
deleted file mode 100644
index ccf68cbe1f..0000000000
--- a/deprecated/www/__registry__/new-york/blocks/sidebar-12/page.tsx
+++ /dev/null
@@ -1,41 +0,0 @@
-import { AppSidebar } from "@/registry/new-york/blocks/sidebar-12/components/app-sidebar"
-import {
- Breadcrumb,
- BreadcrumbItem,
- BreadcrumbList,
- BreadcrumbPage,
-} from "@/registry/new-york/ui/breadcrumb"
-import { Separator } from "@/registry/new-york/ui/separator"
-import {
- SidebarInset,
- SidebarProvider,
- SidebarTrigger,
-} from "@/registry/new-york/ui/sidebar"
-
-export default function Page() {
- return (
-
-
-
-
-
-
-
-
-
- October 2024
-
-
-
-
-
-
- {Array.from({ length: 20 }).map((_, i) => (
-
- ))}
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/blocks/sidebar-13/page.tsx b/deprecated/www/__registry__/new-york/blocks/sidebar-13/page.tsx
deleted file mode 100644
index a323b1c5d1..0000000000
--- a/deprecated/www/__registry__/new-york/blocks/sidebar-13/page.tsx
+++ /dev/null
@@ -1,9 +0,0 @@
-import { SettingsDialog } from "@/registry/new-york/blocks/sidebar-13/components/settings-dialog"
-
-export default function Page() {
- return (
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/blocks/sidebar-14/page.tsx b/deprecated/www/__registry__/new-york/blocks/sidebar-14/page.tsx
deleted file mode 100644
index 7d6c0b37c7..0000000000
--- a/deprecated/www/__registry__/new-york/blocks/sidebar-14/page.tsx
+++ /dev/null
@@ -1,48 +0,0 @@
-import { AppSidebar } from "@/registry/new-york/blocks/sidebar-14/components/app-sidebar"
-import {
- Breadcrumb,
- BreadcrumbItem,
- BreadcrumbLink,
- BreadcrumbList,
- BreadcrumbPage,
- BreadcrumbSeparator,
-} from "@/registry/new-york/ui/breadcrumb"
-import {
- SidebarInset,
- SidebarProvider,
- SidebarTrigger,
-} from "@/registry/new-york/ui/sidebar"
-
-export default function Page() {
- return (
-
-
-
-
-
-
-
- Building Your Application
-
-
-
-
- Data Fetching
-
-
-
-
-
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/blocks/sidebar-15/page.tsx b/deprecated/www/__registry__/new-york/blocks/sidebar-15/page.tsx
deleted file mode 100644
index acfcc0a4c1..0000000000
--- a/deprecated/www/__registry__/new-york/blocks/sidebar-15/page.tsx
+++ /dev/null
@@ -1,44 +0,0 @@
-import { SidebarLeft } from "@/registry/new-york/blocks/sidebar-15/components/sidebar-left"
-import { SidebarRight } from "@/registry/new-york/blocks/sidebar-15/components/sidebar-right"
-import {
- Breadcrumb,
- BreadcrumbItem,
- BreadcrumbList,
- BreadcrumbPage,
-} from "@/registry/new-york/ui/breadcrumb"
-import { Separator } from "@/registry/new-york/ui/separator"
-import {
- SidebarInset,
- SidebarProvider,
- SidebarTrigger,
-} from "@/registry/new-york/ui/sidebar"
-
-export default function Page() {
- return (
-
-
-
-
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/blocks/sidebar-16/page.tsx b/deprecated/www/__registry__/new-york/blocks/sidebar-16/page.tsx
deleted file mode 100644
index 85d4f3b69b..0000000000
--- a/deprecated/www/__registry__/new-york/blocks/sidebar-16/page.tsx
+++ /dev/null
@@ -1,30 +0,0 @@
-import { AppSidebar } from "@/registry/new-york/blocks/sidebar-16/components/app-sidebar"
-import { SiteHeader } from "@/registry/new-york/blocks/sidebar-16/components/site-header"
-import { SidebarInset, SidebarProvider } from "@/registry/new-york/ui/sidebar"
-
-export const iframeHeight = "800px"
-
-export const description = "A sidebar with a header and a search form."
-
-export default function Page() {
- return (
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/charts/chart-area-axes.tsx b/deprecated/www/__registry__/new-york/charts/chart-area-axes.tsx
deleted file mode 100644
index 8efb8a382d..0000000000
--- a/deprecated/www/__registry__/new-york/charts/chart-area-axes.tsx
+++ /dev/null
@@ -1,110 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { Area, AreaChart, CartesianGrid, XAxis, YAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-
-export const description = "An area chart with axes"
-
-const chartData = [
- { month: "January", desktop: 186, mobile: 80 },
- { month: "February", desktop: 305, mobile: 200 },
- { month: "March", desktop: 237, mobile: 120 },
- { month: "April", desktop: 73, mobile: 190 },
- { month: "May", desktop: 209, mobile: 130 },
- { month: "June", desktop: 214, mobile: 140 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
- mobile: {
- label: "Mobile",
- color: "hsl(var(--chart-2))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Area Chart - Axes
-
- Showing total visitors for the last 6 months
-
-
-
-
-
-
- value.slice(0, 3)}
- />
-
- } />
-
-
-
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- January - June 2024
-
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/charts/chart-area-default.tsx b/deprecated/www/__registry__/new-york/charts/chart-area-default.tsx
deleted file mode 100644
index 95e9ca5a73..0000000000
--- a/deprecated/www/__registry__/new-york/charts/chart-area-default.tsx
+++ /dev/null
@@ -1,94 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { Area, AreaChart, CartesianGrid, XAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-
-export const description = "A simple area chart"
-
-const chartData = [
- { month: "January", desktop: 186 },
- { month: "February", desktop: 305 },
- { month: "March", desktop: 237 },
- { month: "April", desktop: 73 },
- { month: "May", desktop: 209 },
- { month: "June", desktop: 214 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Area Chart
-
- Showing total visitors for the last 6 months
-
-
-
-
-
-
- value.slice(0, 3)}
- />
- }
- />
-
-
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- January - June 2024
-
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/charts/chart-area-gradient.tsx b/deprecated/www/__registry__/new-york/charts/chart-area-gradient.tsx
deleted file mode 100644
index de6eada513..0000000000
--- a/deprecated/www/__registry__/new-york/charts/chart-area-gradient.tsx
+++ /dev/null
@@ -1,130 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { Area, AreaChart, CartesianGrid, XAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-
-export const description = "An area chart with gradient fill"
-
-const chartData = [
- { month: "January", desktop: 186, mobile: 80 },
- { month: "February", desktop: 305, mobile: 200 },
- { month: "March", desktop: 237, mobile: 120 },
- { month: "April", desktop: 73, mobile: 190 },
- { month: "May", desktop: 209, mobile: 130 },
- { month: "June", desktop: 214, mobile: 140 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
- mobile: {
- label: "Mobile",
- color: "hsl(var(--chart-2))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Area Chart - Gradient
-
- Showing total visitors for the last 6 months
-
-
-
-
-
-
- value.slice(0, 3)}
- />
- } />
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- January - June 2024
-
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/charts/chart-area-icons.tsx b/deprecated/www/__registry__/new-york/charts/chart-area-icons.tsx
deleted file mode 100644
index 5d136dfd07..0000000000
--- a/deprecated/www/__registry__/new-york/charts/chart-area-icons.tsx
+++ /dev/null
@@ -1,112 +0,0 @@
-"use client"
-
-import { TrendingDown, TrendingUp } from "lucide-react"
-import { Area, AreaChart, CartesianGrid, XAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartLegend,
- ChartLegendContent,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-
-export const description = "An area chart with icons"
-
-const chartData = [
- { month: "January", desktop: 186, mobile: 80 },
- { month: "February", desktop: 305, mobile: 200 },
- { month: "March", desktop: 237, mobile: 120 },
- { month: "April", desktop: 73, mobile: 190 },
- { month: "May", desktop: 209, mobile: 130 },
- { month: "June", desktop: 214, mobile: 140 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- icon: TrendingDown,
- },
- mobile: {
- label: "Mobile",
- color: "hsl(var(--chart-2))",
- icon: TrendingUp,
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Area Chart - Icons
-
- Showing total visitors for the last 6 months
-
-
-
-
-
-
- value.slice(0, 3)}
- />
- }
- />
-
-
- } />
-
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- January - June 2024
-
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/charts/chart-area-interactive.tsx b/deprecated/www/__registry__/new-york/charts/chart-area-interactive.tsx
deleted file mode 100644
index cd8e7e6b28..0000000000
--- a/deprecated/www/__registry__/new-york/charts/chart-area-interactive.tsx
+++ /dev/null
@@ -1,266 +0,0 @@
-"use client"
-
-import * as React from "react"
-import { Area, AreaChart, CartesianGrid, XAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartLegend,
- ChartLegendContent,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-import {
- Select,
- SelectContent,
- SelectItem,
- SelectTrigger,
- SelectValue,
-} from "@/registry/new-york/ui/select"
-
-export const description = "An interactive area chart"
-
-const chartData = [
- { date: "2024-04-01", desktop: 222, mobile: 150 },
- { date: "2024-04-02", desktop: 97, mobile: 180 },
- { date: "2024-04-03", desktop: 167, mobile: 120 },
- { date: "2024-04-04", desktop: 242, mobile: 260 },
- { date: "2024-04-05", desktop: 373, mobile: 290 },
- { date: "2024-04-06", desktop: 301, mobile: 340 },
- { date: "2024-04-07", desktop: 245, mobile: 180 },
- { date: "2024-04-08", desktop: 409, mobile: 320 },
- { date: "2024-04-09", desktop: 59, mobile: 110 },
- { date: "2024-04-10", desktop: 261, mobile: 190 },
- { date: "2024-04-11", desktop: 327, mobile: 350 },
- { date: "2024-04-12", desktop: 292, mobile: 210 },
- { date: "2024-04-13", desktop: 342, mobile: 380 },
- { date: "2024-04-14", desktop: 137, mobile: 220 },
- { date: "2024-04-15", desktop: 120, mobile: 170 },
- { date: "2024-04-16", desktop: 138, mobile: 190 },
- { date: "2024-04-17", desktop: 446, mobile: 360 },
- { date: "2024-04-18", desktop: 364, mobile: 410 },
- { date: "2024-04-19", desktop: 243, mobile: 180 },
- { date: "2024-04-20", desktop: 89, mobile: 150 },
- { date: "2024-04-21", desktop: 137, mobile: 200 },
- { date: "2024-04-22", desktop: 224, mobile: 170 },
- { date: "2024-04-23", desktop: 138, mobile: 230 },
- { date: "2024-04-24", desktop: 387, mobile: 290 },
- { date: "2024-04-25", desktop: 215, mobile: 250 },
- { date: "2024-04-26", desktop: 75, mobile: 130 },
- { date: "2024-04-27", desktop: 383, mobile: 420 },
- { date: "2024-04-28", desktop: 122, mobile: 180 },
- { date: "2024-04-29", desktop: 315, mobile: 240 },
- { date: "2024-04-30", desktop: 454, mobile: 380 },
- { date: "2024-05-01", desktop: 165, mobile: 220 },
- { date: "2024-05-02", desktop: 293, mobile: 310 },
- { date: "2024-05-03", desktop: 247, mobile: 190 },
- { date: "2024-05-04", desktop: 385, mobile: 420 },
- { date: "2024-05-05", desktop: 481, mobile: 390 },
- { date: "2024-05-06", desktop: 498, mobile: 520 },
- { date: "2024-05-07", desktop: 388, mobile: 300 },
- { date: "2024-05-08", desktop: 149, mobile: 210 },
- { date: "2024-05-09", desktop: 227, mobile: 180 },
- { date: "2024-05-10", desktop: 293, mobile: 330 },
- { date: "2024-05-11", desktop: 335, mobile: 270 },
- { date: "2024-05-12", desktop: 197, mobile: 240 },
- { date: "2024-05-13", desktop: 197, mobile: 160 },
- { date: "2024-05-14", desktop: 448, mobile: 490 },
- { date: "2024-05-15", desktop: 473, mobile: 380 },
- { date: "2024-05-16", desktop: 338, mobile: 400 },
- { date: "2024-05-17", desktop: 499, mobile: 420 },
- { date: "2024-05-18", desktop: 315, mobile: 350 },
- { date: "2024-05-19", desktop: 235, mobile: 180 },
- { date: "2024-05-20", desktop: 177, mobile: 230 },
- { date: "2024-05-21", desktop: 82, mobile: 140 },
- { date: "2024-05-22", desktop: 81, mobile: 120 },
- { date: "2024-05-23", desktop: 252, mobile: 290 },
- { date: "2024-05-24", desktop: 294, mobile: 220 },
- { date: "2024-05-25", desktop: 201, mobile: 250 },
- { date: "2024-05-26", desktop: 213, mobile: 170 },
- { date: "2024-05-27", desktop: 420, mobile: 460 },
- { date: "2024-05-28", desktop: 233, mobile: 190 },
- { date: "2024-05-29", desktop: 78, mobile: 130 },
- { date: "2024-05-30", desktop: 340, mobile: 280 },
- { date: "2024-05-31", desktop: 178, mobile: 230 },
- { date: "2024-06-01", desktop: 178, mobile: 200 },
- { date: "2024-06-02", desktop: 470, mobile: 410 },
- { date: "2024-06-03", desktop: 103, mobile: 160 },
- { date: "2024-06-04", desktop: 439, mobile: 380 },
- { date: "2024-06-05", desktop: 88, mobile: 140 },
- { date: "2024-06-06", desktop: 294, mobile: 250 },
- { date: "2024-06-07", desktop: 323, mobile: 370 },
- { date: "2024-06-08", desktop: 385, mobile: 320 },
- { date: "2024-06-09", desktop: 438, mobile: 480 },
- { date: "2024-06-10", desktop: 155, mobile: 200 },
- { date: "2024-06-11", desktop: 92, mobile: 150 },
- { date: "2024-06-12", desktop: 492, mobile: 420 },
- { date: "2024-06-13", desktop: 81, mobile: 130 },
- { date: "2024-06-14", desktop: 426, mobile: 380 },
- { date: "2024-06-15", desktop: 307, mobile: 350 },
- { date: "2024-06-16", desktop: 371, mobile: 310 },
- { date: "2024-06-17", desktop: 475, mobile: 520 },
- { date: "2024-06-18", desktop: 107, mobile: 170 },
- { date: "2024-06-19", desktop: 341, mobile: 290 },
- { date: "2024-06-20", desktop: 408, mobile: 450 },
- { date: "2024-06-21", desktop: 169, mobile: 210 },
- { date: "2024-06-22", desktop: 317, mobile: 270 },
- { date: "2024-06-23", desktop: 480, mobile: 530 },
- { date: "2024-06-24", desktop: 132, mobile: 180 },
- { date: "2024-06-25", desktop: 141, mobile: 190 },
- { date: "2024-06-26", desktop: 434, mobile: 380 },
- { date: "2024-06-27", desktop: 448, mobile: 490 },
- { date: "2024-06-28", desktop: 149, mobile: 200 },
- { date: "2024-06-29", desktop: 103, mobile: 160 },
- { date: "2024-06-30", desktop: 446, mobile: 400 },
-]
-
-const chartConfig = {
- visitors: {
- label: "Visitors",
- },
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
- mobile: {
- label: "Mobile",
- color: "hsl(var(--chart-2))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- const [timeRange, setTimeRange] = React.useState("90d")
-
- const filteredData = chartData.filter((item) => {
- const date = new Date(item.date)
- const referenceDate = new Date("2024-06-30")
- let daysToSubtract = 90
- if (timeRange === "30d") {
- daysToSubtract = 30
- } else if (timeRange === "7d") {
- daysToSubtract = 7
- }
- const startDate = new Date(referenceDate)
- startDate.setDate(startDate.getDate() - daysToSubtract)
- return date >= startDate
- })
-
- return (
-
-
-
- Area Chart - Interactive
-
- Showing total visitors for the last 3 months
-
-
-
-
-
-
-
-
- Last 3 months
-
-
- Last 30 days
-
-
- Last 7 days
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {
- const date = new Date(value)
- return date.toLocaleDateString("en-US", {
- month: "short",
- day: "numeric",
- })
- }}
- />
- {
- return new Date(value).toLocaleDateString("en-US", {
- month: "short",
- day: "numeric",
- })
- }}
- indicator="dot"
- />
- }
- />
-
-
- } />
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/charts/chart-area-legend.tsx b/deprecated/www/__registry__/new-york/charts/chart-area-legend.tsx
deleted file mode 100644
index 13ba0ba54a..0000000000
--- a/deprecated/www/__registry__/new-york/charts/chart-area-legend.tsx
+++ /dev/null
@@ -1,110 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { Area, AreaChart, CartesianGrid, XAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartLegend,
- ChartLegendContent,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-
-export const description = "An area chart with a legend"
-
-const chartData = [
- { month: "January", desktop: 186, mobile: 80 },
- { month: "February", desktop: 305, mobile: 200 },
- { month: "March", desktop: 237, mobile: 120 },
- { month: "April", desktop: 73, mobile: 190 },
- { month: "May", desktop: 209, mobile: 130 },
- { month: "June", desktop: 214, mobile: 140 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
- mobile: {
- label: "Mobile",
- color: "hsl(var(--chart-2))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Area Chart - Legend
-
- Showing total visitors for the last 6 months
-
-
-
-
-
-
- value.slice(0, 3)}
- />
- }
- />
-
-
- } />
-
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- January - June 2024
-
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/charts/chart-area-linear.tsx b/deprecated/www/__registry__/new-york/charts/chart-area-linear.tsx
deleted file mode 100644
index 2b88f333fd..0000000000
--- a/deprecated/www/__registry__/new-york/charts/chart-area-linear.tsx
+++ /dev/null
@@ -1,94 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { Area, AreaChart, CartesianGrid, XAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-
-export const description = "A linear area chart"
-
-const chartData = [
- { month: "January", desktop: 186 },
- { month: "February", desktop: 305 },
- { month: "March", desktop: 237 },
- { month: "April", desktop: 73 },
- { month: "May", desktop: 209 },
- { month: "June", desktop: 214 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Area Chart - Linear
-
- Showing total visitors for the last 6 months
-
-
-
-
-
-
- value.slice(0, 3)}
- />
- }
- />
-
-
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- January - June 2024
-
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/charts/chart-area-stacked-expand.tsx b/deprecated/www/__registry__/new-york/charts/chart-area-stacked-expand.tsx
deleted file mode 100644
index f7662c0f71..0000000000
--- a/deprecated/www/__registry__/new-york/charts/chart-area-stacked-expand.tsx
+++ /dev/null
@@ -1,121 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { Area, AreaChart, CartesianGrid, XAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-
-export const description = "A stacked area chart with expand stacking"
-
-const chartData = [
- { month: "January", desktop: 186, mobile: 80, other: 45 },
- { month: "February", desktop: 305, mobile: 200, other: 100 },
- { month: "March", desktop: 237, mobile: 120, other: 150 },
- { month: "April", desktop: 73, mobile: 190, other: 50 },
- { month: "May", desktop: 209, mobile: 130, other: 100 },
- { month: "June", desktop: 214, mobile: 140, other: 160 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
- mobile: {
- label: "Mobile",
- color: "hsl(var(--chart-2))",
- },
- other: {
- label: "Other",
- color: "hsl(var(--chart-3))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Area Chart - Stacked Expanded
-
- Showing total visitors for the last 6months
-
-
-
-
-
-
- value.slice(0, 3)}
- />
- }
- />
-
-
-
-
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- January - June 2024
-
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/charts/chart-area-stacked.tsx b/deprecated/www/__registry__/new-york/charts/chart-area-stacked.tsx
deleted file mode 100644
index d0c1b6eee8..0000000000
--- a/deprecated/www/__registry__/new-york/charts/chart-area-stacked.tsx
+++ /dev/null
@@ -1,107 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { Area, AreaChart, CartesianGrid, XAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-
-export const description = "A stacked area chart"
-
-const chartData = [
- { month: "January", desktop: 186, mobile: 80 },
- { month: "February", desktop: 305, mobile: 200 },
- { month: "March", desktop: 237, mobile: 120 },
- { month: "April", desktop: 73, mobile: 190 },
- { month: "May", desktop: 209, mobile: 130 },
- { month: "June", desktop: 214, mobile: 140 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
- mobile: {
- label: "Mobile",
- color: "hsl(var(--chart-2))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Area Chart - Stacked
-
- Showing total visitors for the last 6 months
-
-
-
-
-
-
- value.slice(0, 3)}
- />
- }
- />
-
-
-
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- January - June 2024
-
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/charts/chart-area-step.tsx b/deprecated/www/__registry__/new-york/charts/chart-area-step.tsx
deleted file mode 100644
index be43a89d3c..0000000000
--- a/deprecated/www/__registry__/new-york/charts/chart-area-step.tsx
+++ /dev/null
@@ -1,95 +0,0 @@
-"use client"
-
-import { Activity, TrendingUp } from "lucide-react"
-import { Area, AreaChart, CartesianGrid, XAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-
-export const description = "A step area chart"
-
-const chartData = [
- { month: "January", desktop: 186 },
- { month: "February", desktop: 305 },
- { month: "March", desktop: 237 },
- { month: "April", desktop: 73 },
- { month: "May", desktop: 209 },
- { month: "June", desktop: 214 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- icon: Activity,
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Area Chart - Step
-
- Showing total visitors for the last 6 months
-
-
-
-
-
-
- value.slice(0, 3)}
- />
- }
- />
-
-
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- January - June 2024
-
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/charts/chart-bar-active.tsx b/deprecated/www/__registry__/new-york/charts/chart-bar-active.tsx
deleted file mode 100644
index b913609d92..0000000000
--- a/deprecated/www/__registry__/new-york/charts/chart-bar-active.tsx
+++ /dev/null
@@ -1,111 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { Bar, BarChart, CartesianGrid, Rectangle, XAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-
-export const description = "A bar chart with an active bar"
-
-const chartData = [
- { browser: "chrome", visitors: 187, fill: "var(--color-chrome)" },
- { browser: "safari", visitors: 200, fill: "var(--color-safari)" },
- { browser: "firefox", visitors: 275, fill: "var(--color-firefox)" },
- { browser: "edge", visitors: 173, fill: "var(--color-edge)" },
- { browser: "other", visitors: 90, fill: "var(--color-other)" },
-]
-
-const chartConfig = {
- visitors: {
- label: "Visitors",
- },
- chrome: {
- label: "Chrome",
- color: "hsl(var(--chart-1))",
- },
- safari: {
- label: "Safari",
- color: "hsl(var(--chart-2))",
- },
- firefox: {
- label: "Firefox",
- color: "hsl(var(--chart-3))",
- },
- edge: {
- label: "Edge",
- color: "hsl(var(--chart-4))",
- },
- other: {
- label: "Other",
- color: "hsl(var(--chart-5))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Bar Chart - Active
- January - June 2024
-
-
-
-
-
-
- chartConfig[value as keyof typeof chartConfig]?.label
- }
- />
- }
- />
- {
- return (
-
- )
- }}
- />
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- Showing total visitors for the last 6 months
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/charts/chart-bar-default.tsx b/deprecated/www/__registry__/new-york/charts/chart-bar-default.tsx
deleted file mode 100644
index 5aec111e67..0000000000
--- a/deprecated/www/__registry__/new-york/charts/chart-bar-default.tsx
+++ /dev/null
@@ -1,75 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { Bar, BarChart, CartesianGrid, XAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-
-export const description = "A bar chart"
-
-const chartData = [
- { month: "January", desktop: 186 },
- { month: "February", desktop: 305 },
- { month: "March", desktop: 237 },
- { month: "April", desktop: 73 },
- { month: "May", desktop: 209 },
- { month: "June", desktop: 214 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Bar Chart
- January - June 2024
-
-
-
-
-
- value.slice(0, 3)}
- />
- }
- />
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- Showing total visitors for the last 6 months
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/charts/chart-bar-horizontal.tsx b/deprecated/www/__registry__/new-york/charts/chart-bar-horizontal.tsx
deleted file mode 100644
index b8b1014517..0000000000
--- a/deprecated/www/__registry__/new-york/charts/chart-bar-horizontal.tsx
+++ /dev/null
@@ -1,83 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { Bar, BarChart, XAxis, YAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-
-export const description = "A horizontal bar chart"
-
-const chartData = [
- { month: "January", desktop: 186 },
- { month: "February", desktop: 305 },
- { month: "March", desktop: 237 },
- { month: "April", desktop: 73 },
- { month: "May", desktop: 209 },
- { month: "June", desktop: 214 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Bar Chart - Horizontal
- January - June 2024
-
-
-
-
-
- value.slice(0, 3)}
- />
- }
- />
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- Showing total visitors for the last 6 months
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/charts/chart-bar-interactive.tsx b/deprecated/www/__registry__/new-york/charts/chart-bar-interactive.tsx
deleted file mode 100644
index f988ef5e11..0000000000
--- a/deprecated/www/__registry__/new-york/charts/chart-bar-interactive.tsx
+++ /dev/null
@@ -1,221 +0,0 @@
-"use client"
-
-import * as React from "react"
-import { Bar, BarChart, CartesianGrid, XAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-
-export const description = "An interactive bar chart"
-
-const chartData = [
- { date: "2024-04-01", desktop: 222, mobile: 150 },
- { date: "2024-04-02", desktop: 97, mobile: 180 },
- { date: "2024-04-03", desktop: 167, mobile: 120 },
- { date: "2024-04-04", desktop: 242, mobile: 260 },
- { date: "2024-04-05", desktop: 373, mobile: 290 },
- { date: "2024-04-06", desktop: 301, mobile: 340 },
- { date: "2024-04-07", desktop: 245, mobile: 180 },
- { date: "2024-04-08", desktop: 409, mobile: 320 },
- { date: "2024-04-09", desktop: 59, mobile: 110 },
- { date: "2024-04-10", desktop: 261, mobile: 190 },
- { date: "2024-04-11", desktop: 327, mobile: 350 },
- { date: "2024-04-12", desktop: 292, mobile: 210 },
- { date: "2024-04-13", desktop: 342, mobile: 380 },
- { date: "2024-04-14", desktop: 137, mobile: 220 },
- { date: "2024-04-15", desktop: 120, mobile: 170 },
- { date: "2024-04-16", desktop: 138, mobile: 190 },
- { date: "2024-04-17", desktop: 446, mobile: 360 },
- { date: "2024-04-18", desktop: 364, mobile: 410 },
- { date: "2024-04-19", desktop: 243, mobile: 180 },
- { date: "2024-04-20", desktop: 89, mobile: 150 },
- { date: "2024-04-21", desktop: 137, mobile: 200 },
- { date: "2024-04-22", desktop: 224, mobile: 170 },
- { date: "2024-04-23", desktop: 138, mobile: 230 },
- { date: "2024-04-24", desktop: 387, mobile: 290 },
- { date: "2024-04-25", desktop: 215, mobile: 250 },
- { date: "2024-04-26", desktop: 75, mobile: 130 },
- { date: "2024-04-27", desktop: 383, mobile: 420 },
- { date: "2024-04-28", desktop: 122, mobile: 180 },
- { date: "2024-04-29", desktop: 315, mobile: 240 },
- { date: "2024-04-30", desktop: 454, mobile: 380 },
- { date: "2024-05-01", desktop: 165, mobile: 220 },
- { date: "2024-05-02", desktop: 293, mobile: 310 },
- { date: "2024-05-03", desktop: 247, mobile: 190 },
- { date: "2024-05-04", desktop: 385, mobile: 420 },
- { date: "2024-05-05", desktop: 481, mobile: 390 },
- { date: "2024-05-06", desktop: 498, mobile: 520 },
- { date: "2024-05-07", desktop: 388, mobile: 300 },
- { date: "2024-05-08", desktop: 149, mobile: 210 },
- { date: "2024-05-09", desktop: 227, mobile: 180 },
- { date: "2024-05-10", desktop: 293, mobile: 330 },
- { date: "2024-05-11", desktop: 335, mobile: 270 },
- { date: "2024-05-12", desktop: 197, mobile: 240 },
- { date: "2024-05-13", desktop: 197, mobile: 160 },
- { date: "2024-05-14", desktop: 448, mobile: 490 },
- { date: "2024-05-15", desktop: 473, mobile: 380 },
- { date: "2024-05-16", desktop: 338, mobile: 400 },
- { date: "2024-05-17", desktop: 499, mobile: 420 },
- { date: "2024-05-18", desktop: 315, mobile: 350 },
- { date: "2024-05-19", desktop: 235, mobile: 180 },
- { date: "2024-05-20", desktop: 177, mobile: 230 },
- { date: "2024-05-21", desktop: 82, mobile: 140 },
- { date: "2024-05-22", desktop: 81, mobile: 120 },
- { date: "2024-05-23", desktop: 252, mobile: 290 },
- { date: "2024-05-24", desktop: 294, mobile: 220 },
- { date: "2024-05-25", desktop: 201, mobile: 250 },
- { date: "2024-05-26", desktop: 213, mobile: 170 },
- { date: "2024-05-27", desktop: 420, mobile: 460 },
- { date: "2024-05-28", desktop: 233, mobile: 190 },
- { date: "2024-05-29", desktop: 78, mobile: 130 },
- { date: "2024-05-30", desktop: 340, mobile: 280 },
- { date: "2024-05-31", desktop: 178, mobile: 230 },
- { date: "2024-06-01", desktop: 178, mobile: 200 },
- { date: "2024-06-02", desktop: 470, mobile: 410 },
- { date: "2024-06-03", desktop: 103, mobile: 160 },
- { date: "2024-06-04", desktop: 439, mobile: 380 },
- { date: "2024-06-05", desktop: 88, mobile: 140 },
- { date: "2024-06-06", desktop: 294, mobile: 250 },
- { date: "2024-06-07", desktop: 323, mobile: 370 },
- { date: "2024-06-08", desktop: 385, mobile: 320 },
- { date: "2024-06-09", desktop: 438, mobile: 480 },
- { date: "2024-06-10", desktop: 155, mobile: 200 },
- { date: "2024-06-11", desktop: 92, mobile: 150 },
- { date: "2024-06-12", desktop: 492, mobile: 420 },
- { date: "2024-06-13", desktop: 81, mobile: 130 },
- { date: "2024-06-14", desktop: 426, mobile: 380 },
- { date: "2024-06-15", desktop: 307, mobile: 350 },
- { date: "2024-06-16", desktop: 371, mobile: 310 },
- { date: "2024-06-17", desktop: 475, mobile: 520 },
- { date: "2024-06-18", desktop: 107, mobile: 170 },
- { date: "2024-06-19", desktop: 341, mobile: 290 },
- { date: "2024-06-20", desktop: 408, mobile: 450 },
- { date: "2024-06-21", desktop: 169, mobile: 210 },
- { date: "2024-06-22", desktop: 317, mobile: 270 },
- { date: "2024-06-23", desktop: 480, mobile: 530 },
- { date: "2024-06-24", desktop: 132, mobile: 180 },
- { date: "2024-06-25", desktop: 141, mobile: 190 },
- { date: "2024-06-26", desktop: 434, mobile: 380 },
- { date: "2024-06-27", desktop: 448, mobile: 490 },
- { date: "2024-06-28", desktop: 149, mobile: 200 },
- { date: "2024-06-29", desktop: 103, mobile: 160 },
- { date: "2024-06-30", desktop: 446, mobile: 400 },
-]
-
-const chartConfig = {
- views: {
- label: "Page Views",
- },
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
- mobile: {
- label: "Mobile",
- color: "hsl(var(--chart-2))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- const [activeChart, setActiveChart] =
- React.useState("desktop")
-
- const total = React.useMemo(
- () => ({
- desktop: chartData.reduce((acc, curr) => acc + curr.desktop, 0),
- mobile: chartData.reduce((acc, curr) => acc + curr.mobile, 0),
- }),
- []
- )
-
- return (
-
-
-
- Bar Chart - Interactive
-
- Showing total visitors for the last 3 months
-
-
-
- {["desktop", "mobile"].map((key) => {
- const chart = key as keyof typeof chartConfig
- return (
- setActiveChart(chart)}
- >
-
- {chartConfig[chart].label}
-
-
- {total[key as keyof typeof total].toLocaleString()}
-
-
- )
- })}
-
-
-
-
-
-
- {
- const date = new Date(value)
- return date.toLocaleDateString("en-US", {
- month: "short",
- day: "numeric",
- })
- }}
- />
- {
- return new Date(value).toLocaleDateString("en-US", {
- month: "short",
- day: "numeric",
- year: "numeric",
- })
- }}
- />
- }
- />
-
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/charts/chart-bar-label-custom.tsx b/deprecated/www/__registry__/new-york/charts/chart-bar-label-custom.tsx
deleted file mode 100644
index bba630a900..0000000000
--- a/deprecated/www/__registry__/new-york/charts/chart-bar-label-custom.tsx
+++ /dev/null
@@ -1,112 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { Bar, BarChart, CartesianGrid, LabelList, XAxis, YAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-
-export const description = "A bar chart with a custom label"
-
-const chartData = [
- { month: "January", desktop: 186, mobile: 80 },
- { month: "February", desktop: 305, mobile: 200 },
- { month: "March", desktop: 237, mobile: 120 },
- { month: "April", desktop: 73, mobile: 190 },
- { month: "May", desktop: 209, mobile: 130 },
- { month: "June", desktop: 214, mobile: 140 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
- mobile: {
- label: "Mobile",
- color: "hsl(var(--chart-2))",
- },
- label: {
- color: "hsl(var(--background))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Bar Chart - Custom Label
- January - June 2024
-
-
-
-
-
- value.slice(0, 3)}
- hide
- />
-
- }
- />
-
-
-
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- Showing total visitors for the last 6 months
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/charts/chart-bar-label.tsx b/deprecated/www/__registry__/new-york/charts/chart-bar-label.tsx
deleted file mode 100644
index 1a06e05e00..0000000000
--- a/deprecated/www/__registry__/new-york/charts/chart-bar-label.tsx
+++ /dev/null
@@ -1,88 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { Bar, BarChart, CartesianGrid, LabelList, XAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-
-export const description = "A bar chart with a label"
-
-const chartData = [
- { month: "January", desktop: 186 },
- { month: "February", desktop: 305 },
- { month: "March", desktop: 237 },
- { month: "April", desktop: 73 },
- { month: "May", desktop: 209 },
- { month: "June", desktop: 214 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Bar Chart - Label
- January - June 2024
-
-
-
-
-
- value.slice(0, 3)}
- />
- }
- />
-
-
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- Showing total visitors for the last 6 months
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/charts/chart-bar-mixed.tsx b/deprecated/www/__registry__/new-york/charts/chart-bar-mixed.tsx
deleted file mode 100644
index f839877833..0000000000
--- a/deprecated/www/__registry__/new-york/charts/chart-bar-mixed.tsx
+++ /dev/null
@@ -1,103 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { Bar, BarChart, XAxis, YAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-
-export const description = "A mixed bar chart"
-
-const chartData = [
- { browser: "chrome", visitors: 275, fill: "var(--color-chrome)" },
- { browser: "safari", visitors: 200, fill: "var(--color-safari)" },
- { browser: "firefox", visitors: 187, fill: "var(--color-firefox)" },
- { browser: "edge", visitors: 173, fill: "var(--color-edge)" },
- { browser: "other", visitors: 90, fill: "var(--color-other)" },
-]
-
-const chartConfig = {
- visitors: {
- label: "Visitors",
- },
- chrome: {
- label: "Chrome",
- color: "hsl(var(--chart-1))",
- },
- safari: {
- label: "Safari",
- color: "hsl(var(--chart-2))",
- },
- firefox: {
- label: "Firefox",
- color: "hsl(var(--chart-3))",
- },
- edge: {
- label: "Edge",
- color: "hsl(var(--chart-4))",
- },
- other: {
- label: "Other",
- color: "hsl(var(--chart-5))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Bar Chart - Mixed
- January - June 2024
-
-
-
-
-
- chartConfig[value as keyof typeof chartConfig]?.label
- }
- />
-
- }
- />
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- Showing total visitors for the last 6 months
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/charts/chart-bar-multiple.tsx b/deprecated/www/__registry__/new-york/charts/chart-bar-multiple.tsx
deleted file mode 100644
index b570638ce6..0000000000
--- a/deprecated/www/__registry__/new-york/charts/chart-bar-multiple.tsx
+++ /dev/null
@@ -1,80 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { Bar, BarChart, CartesianGrid, XAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-
-export const description = "A multiple bar chart"
-
-const chartData = [
- { month: "January", desktop: 186, mobile: 80 },
- { month: "February", desktop: 305, mobile: 200 },
- { month: "March", desktop: 237, mobile: 120 },
- { month: "April", desktop: 73, mobile: 190 },
- { month: "May", desktop: 209, mobile: 130 },
- { month: "June", desktop: 214, mobile: 140 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
- mobile: {
- label: "Mobile",
- color: "hsl(var(--chart-2))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Bar Chart - Multiple
- January - June 2024
-
-
-
-
-
- value.slice(0, 3)}
- />
- }
- />
-
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- Showing total visitors for the last 6 months
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/charts/chart-bar-negative.tsx b/deprecated/www/__registry__/new-york/charts/chart-bar-negative.tsx
deleted file mode 100644
index c735fc6fff..0000000000
--- a/deprecated/www/__registry__/new-york/charts/chart-bar-negative.tsx
+++ /dev/null
@@ -1,79 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { Bar, BarChart, CartesianGrid, Cell, LabelList } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-
-export const description = "A bar chart with negative values"
-
-const chartData = [
- { month: "January", visitors: 186 },
- { month: "February", visitors: 205 },
- { month: "March", visitors: -207 },
- { month: "April", visitors: 173 },
- { month: "May", visitors: -209 },
- { month: "June", visitors: 214 },
-]
-
-const chartConfig = {
- visitors: {
- label: "Visitors",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Bar Chart - Negative
- January - June 2024
-
-
-
-
-
- }
- />
-
-
- {chartData.map((item) => (
- 0
- ? "hsl(var(--chart-1))"
- : "hsl(var(--chart-2))"
- }
- />
- ))}
- |
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- Showing total visitors for the last 6 months
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/charts/chart-bar-stacked.tsx b/deprecated/www/__registry__/new-york/charts/chart-bar-stacked.tsx
deleted file mode 100644
index ddfa81e47e..0000000000
--- a/deprecated/www/__registry__/new-york/charts/chart-bar-stacked.tsx
+++ /dev/null
@@ -1,90 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { Bar, BarChart, CartesianGrid, XAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartLegend,
- ChartLegendContent,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-
-export const description = "A stacked bar chart with a legend"
-
-const chartData = [
- { month: "January", desktop: 186, mobile: 80 },
- { month: "February", desktop: 305, mobile: 200 },
- { month: "March", desktop: 237, mobile: 120 },
- { month: "April", desktop: 73, mobile: 190 },
- { month: "May", desktop: 209, mobile: 130 },
- { month: "June", desktop: 214, mobile: 140 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
- mobile: {
- label: "Mobile",
- color: "hsl(var(--chart-2))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Bar Chart - Stacked + Legend
- January - June 2024
-
-
-
-
-
- value.slice(0, 3)}
- />
- } />
- } />
-
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- Showing total visitors for the last 6 months
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/charts/chart-line-default.tsx b/deprecated/www/__registry__/new-york/charts/chart-line-default.tsx
deleted file mode 100644
index ccc36bc5b6..0000000000
--- a/deprecated/www/__registry__/new-york/charts/chart-line-default.tsx
+++ /dev/null
@@ -1,88 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { CartesianGrid, Line, LineChart, XAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-
-export const description = "A line chart"
-
-const chartData = [
- { month: "January", desktop: 186 },
- { month: "February", desktop: 305 },
- { month: "March", desktop: 237 },
- { month: "April", desktop: 73 },
- { month: "May", desktop: 209 },
- { month: "June", desktop: 214 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Line Chart
- January - June 2024
-
-
-
-
-
- value.slice(0, 3)}
- />
- }
- />
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- Showing total visitors for the last 6 months
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/charts/chart-line-dots-colors.tsx b/deprecated/www/__registry__/new-york/charts/chart-line-dots-colors.tsx
deleted file mode 100644
index 5176281cc2..0000000000
--- a/deprecated/www/__registry__/new-york/charts/chart-line-dots-colors.tsx
+++ /dev/null
@@ -1,118 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { CartesianGrid, Dot, Line, LineChart } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-
-export const description = "A line chart with dots and colors"
-
-const chartData = [
- { browser: "chrome", visitors: 275, fill: "var(--color-chrome)" },
- { browser: "safari", visitors: 200, fill: "var(--color-safari)" },
- { browser: "firefox", visitors: 187, fill: "var(--color-firefox)" },
- { browser: "edge", visitors: 173, fill: "var(--color-edge)" },
- { browser: "other", visitors: 90, fill: "var(--color-other)" },
-]
-
-const chartConfig = {
- visitors: {
- label: "Visitors",
- color: "hsl(var(--chart-2))",
- },
- chrome: {
- label: "Chrome",
- color: "hsl(var(--chart-1))",
- },
- safari: {
- label: "Safari",
- color: "hsl(var(--chart-2))",
- },
- firefox: {
- label: "Firefox",
- color: "hsl(var(--chart-3))",
- },
- edge: {
- label: "Edge",
- color: "hsl(var(--chart-4))",
- },
- other: {
- label: "Other",
- color: "hsl(var(--chart-5))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Line Chart - Dots Colors
- January - June 2024
-
-
-
-
-
-
- }
- />
- {
- return (
-
- )
- }}
- />
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- Showing total visitors for the last 6 months
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/charts/chart-line-dots-custom.tsx b/deprecated/www/__registry__/new-york/charts/chart-line-dots-custom.tsx
deleted file mode 100644
index 9b7e86ca36..0000000000
--- a/deprecated/www/__registry__/new-york/charts/chart-line-dots-custom.tsx
+++ /dev/null
@@ -1,105 +0,0 @@
-"use client"
-
-import { GitCommitVertical, TrendingUp } from "lucide-react"
-import { CartesianGrid, Line, LineChart, XAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-
-export const description = "A line chart with custom dots"
-
-const chartData = [
- { month: "January", desktop: 186, mobile: 80 },
- { month: "February", desktop: 305, mobile: 200 },
- { month: "March", desktop: 237, mobile: 120 },
- { month: "April", desktop: 73, mobile: 190 },
- { month: "May", desktop: 209, mobile: 130 },
- { month: "June", desktop: 214, mobile: 140 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
- mobile: {
- label: "Mobile",
- color: "hsl(var(--chart-2))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Line Chart - Custom Dots
- January - June 2024
-
-
-
-
-
- value.slice(0, 3)}
- />
- }
- />
- {
- const r = 24
- return (
-
- )
- }}
- />
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- Showing total visitors for the last 6 months
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/charts/chart-line-dots.tsx b/deprecated/www/__registry__/new-york/charts/chart-line-dots.tsx
deleted file mode 100644
index 54fb10ed80..0000000000
--- a/deprecated/www/__registry__/new-york/charts/chart-line-dots.tsx
+++ /dev/null
@@ -1,97 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { CartesianGrid, Line, LineChart, XAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-
-export const description = "A line chart with dots"
-
-const chartData = [
- { month: "January", desktop: 186, mobile: 80 },
- { month: "February", desktop: 305, mobile: 200 },
- { month: "March", desktop: 237, mobile: 120 },
- { month: "April", desktop: 73, mobile: 190 },
- { month: "May", desktop: 209, mobile: 130 },
- { month: "June", desktop: 214, mobile: 140 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
- mobile: {
- label: "Mobile",
- color: "hsl(var(--chart-2))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Line Chart - Dots
- January - June 2024
-
-
-
-
-
- value.slice(0, 3)}
- />
- }
- />
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- Showing total visitors for the last 6 months
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/charts/chart-line-interactive.tsx b/deprecated/www/__registry__/new-york/charts/chart-line-interactive.tsx
deleted file mode 100644
index 4432eb89c2..0000000000
--- a/deprecated/www/__registry__/new-york/charts/chart-line-interactive.tsx
+++ /dev/null
@@ -1,227 +0,0 @@
-"use client"
-
-import * as React from "react"
-import { CartesianGrid, Line, LineChart, XAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-
-export const description = "An interactive line chart"
-
-const chartData = [
- { date: "2024-04-01", desktop: 222, mobile: 150 },
- { date: "2024-04-02", desktop: 97, mobile: 180 },
- { date: "2024-04-03", desktop: 167, mobile: 120 },
- { date: "2024-04-04", desktop: 242, mobile: 260 },
- { date: "2024-04-05", desktop: 373, mobile: 290 },
- { date: "2024-04-06", desktop: 301, mobile: 340 },
- { date: "2024-04-07", desktop: 245, mobile: 180 },
- { date: "2024-04-08", desktop: 409, mobile: 320 },
- { date: "2024-04-09", desktop: 59, mobile: 110 },
- { date: "2024-04-10", desktop: 261, mobile: 190 },
- { date: "2024-04-11", desktop: 327, mobile: 350 },
- { date: "2024-04-12", desktop: 292, mobile: 210 },
- { date: "2024-04-13", desktop: 342, mobile: 380 },
- { date: "2024-04-14", desktop: 137, mobile: 220 },
- { date: "2024-04-15", desktop: 120, mobile: 170 },
- { date: "2024-04-16", desktop: 138, mobile: 190 },
- { date: "2024-04-17", desktop: 446, mobile: 360 },
- { date: "2024-04-18", desktop: 364, mobile: 410 },
- { date: "2024-04-19", desktop: 243, mobile: 180 },
- { date: "2024-04-20", desktop: 89, mobile: 150 },
- { date: "2024-04-21", desktop: 137, mobile: 200 },
- { date: "2024-04-22", desktop: 224, mobile: 170 },
- { date: "2024-04-23", desktop: 138, mobile: 230 },
- { date: "2024-04-24", desktop: 387, mobile: 290 },
- { date: "2024-04-25", desktop: 215, mobile: 250 },
- { date: "2024-04-26", desktop: 75, mobile: 130 },
- { date: "2024-04-27", desktop: 383, mobile: 420 },
- { date: "2024-04-28", desktop: 122, mobile: 180 },
- { date: "2024-04-29", desktop: 315, mobile: 240 },
- { date: "2024-04-30", desktop: 454, mobile: 380 },
- { date: "2024-05-01", desktop: 165, mobile: 220 },
- { date: "2024-05-02", desktop: 293, mobile: 310 },
- { date: "2024-05-03", desktop: 247, mobile: 190 },
- { date: "2024-05-04", desktop: 385, mobile: 420 },
- { date: "2024-05-05", desktop: 481, mobile: 390 },
- { date: "2024-05-06", desktop: 498, mobile: 520 },
- { date: "2024-05-07", desktop: 388, mobile: 300 },
- { date: "2024-05-08", desktop: 149, mobile: 210 },
- { date: "2024-05-09", desktop: 227, mobile: 180 },
- { date: "2024-05-10", desktop: 293, mobile: 330 },
- { date: "2024-05-11", desktop: 335, mobile: 270 },
- { date: "2024-05-12", desktop: 197, mobile: 240 },
- { date: "2024-05-13", desktop: 197, mobile: 160 },
- { date: "2024-05-14", desktop: 448, mobile: 490 },
- { date: "2024-05-15", desktop: 473, mobile: 380 },
- { date: "2024-05-16", desktop: 338, mobile: 400 },
- { date: "2024-05-17", desktop: 499, mobile: 420 },
- { date: "2024-05-18", desktop: 315, mobile: 350 },
- { date: "2024-05-19", desktop: 235, mobile: 180 },
- { date: "2024-05-20", desktop: 177, mobile: 230 },
- { date: "2024-05-21", desktop: 82, mobile: 140 },
- { date: "2024-05-22", desktop: 81, mobile: 120 },
- { date: "2024-05-23", desktop: 252, mobile: 290 },
- { date: "2024-05-24", desktop: 294, mobile: 220 },
- { date: "2024-05-25", desktop: 201, mobile: 250 },
- { date: "2024-05-26", desktop: 213, mobile: 170 },
- { date: "2024-05-27", desktop: 420, mobile: 460 },
- { date: "2024-05-28", desktop: 233, mobile: 190 },
- { date: "2024-05-29", desktop: 78, mobile: 130 },
- { date: "2024-05-30", desktop: 340, mobile: 280 },
- { date: "2024-05-31", desktop: 178, mobile: 230 },
- { date: "2024-06-01", desktop: 178, mobile: 200 },
- { date: "2024-06-02", desktop: 470, mobile: 410 },
- { date: "2024-06-03", desktop: 103, mobile: 160 },
- { date: "2024-06-04", desktop: 439, mobile: 380 },
- { date: "2024-06-05", desktop: 88, mobile: 140 },
- { date: "2024-06-06", desktop: 294, mobile: 250 },
- { date: "2024-06-07", desktop: 323, mobile: 370 },
- { date: "2024-06-08", desktop: 385, mobile: 320 },
- { date: "2024-06-09", desktop: 438, mobile: 480 },
- { date: "2024-06-10", desktop: 155, mobile: 200 },
- { date: "2024-06-11", desktop: 92, mobile: 150 },
- { date: "2024-06-12", desktop: 492, mobile: 420 },
- { date: "2024-06-13", desktop: 81, mobile: 130 },
- { date: "2024-06-14", desktop: 426, mobile: 380 },
- { date: "2024-06-15", desktop: 307, mobile: 350 },
- { date: "2024-06-16", desktop: 371, mobile: 310 },
- { date: "2024-06-17", desktop: 475, mobile: 520 },
- { date: "2024-06-18", desktop: 107, mobile: 170 },
- { date: "2024-06-19", desktop: 341, mobile: 290 },
- { date: "2024-06-20", desktop: 408, mobile: 450 },
- { date: "2024-06-21", desktop: 169, mobile: 210 },
- { date: "2024-06-22", desktop: 317, mobile: 270 },
- { date: "2024-06-23", desktop: 480, mobile: 530 },
- { date: "2024-06-24", desktop: 132, mobile: 180 },
- { date: "2024-06-25", desktop: 141, mobile: 190 },
- { date: "2024-06-26", desktop: 434, mobile: 380 },
- { date: "2024-06-27", desktop: 448, mobile: 490 },
- { date: "2024-06-28", desktop: 149, mobile: 200 },
- { date: "2024-06-29", desktop: 103, mobile: 160 },
- { date: "2024-06-30", desktop: 446, mobile: 400 },
-]
-
-const chartConfig = {
- views: {
- label: "Page Views",
- },
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
- mobile: {
- label: "Mobile",
- color: "hsl(var(--chart-2))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- const [activeChart, setActiveChart] =
- React.useState("desktop")
-
- const total = React.useMemo(
- () => ({
- desktop: chartData.reduce((acc, curr) => acc + curr.desktop, 0),
- mobile: chartData.reduce((acc, curr) => acc + curr.mobile, 0),
- }),
- []
- )
-
- return (
-
-
-
- Line Chart - Interactive
-
- Showing total visitors for the last 3 months
-
-
-
- {["desktop", "mobile"].map((key) => {
- const chart = key as keyof typeof chartConfig
- return (
- setActiveChart(chart)}
- >
-
- {chartConfig[chart].label}
-
-
- {total[key as keyof typeof total].toLocaleString()}
-
-
- )
- })}
-
-
-
-
-
-
- {
- const date = new Date(value)
- return date.toLocaleDateString("en-US", {
- month: "short",
- day: "numeric",
- })
- }}
- />
- {
- return new Date(value).toLocaleDateString("en-US", {
- month: "short",
- day: "numeric",
- year: "numeric",
- })
- }}
- />
- }
- />
-
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/charts/chart-line-label-custom.tsx b/deprecated/www/__registry__/new-york/charts/chart-line-label-custom.tsx
deleted file mode 100644
index f7972946fc..0000000000
--- a/deprecated/www/__registry__/new-york/charts/chart-line-label-custom.tsx
+++ /dev/null
@@ -1,123 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { CartesianGrid, LabelList, Line, LineChart } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-
-export const description = "A line chart with a custom label"
-
-const chartData = [
- { browser: "chrome", visitors: 275, fill: "var(--color-chrome)" },
- { browser: "safari", visitors: 200, fill: "var(--color-safari)" },
- { browser: "firefox", visitors: 187, fill: "var(--color-firefox)" },
- { browser: "edge", visitors: 173, fill: "var(--color-edge)" },
- { browser: "other", visitors: 90, fill: "var(--color-other)" },
-]
-
-const chartConfig = {
- visitors: {
- label: "Visitors",
- color: "hsl(var(--chart-2))",
- },
- chrome: {
- label: "Chrome",
- color: "hsl(var(--chart-1))",
- },
- safari: {
- label: "Safari",
- color: "hsl(var(--chart-2))",
- },
- firefox: {
- label: "Firefox",
- color: "hsl(var(--chart-3))",
- },
- edge: {
- label: "Edge",
- color: "hsl(var(--chart-4))",
- },
- other: {
- label: "Other",
- color: "hsl(var(--chart-5))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Line Chart - Custom Label
- January - June 2024
-
-
-
-
-
-
- }
- />
-
-
- chartConfig[value]?.label
- }
- />
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- Showing total visitors for the last 6 months
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/charts/chart-line-label.tsx b/deprecated/www/__registry__/new-york/charts/chart-line-label.tsx
deleted file mode 100644
index c6b832d6a6..0000000000
--- a/deprecated/www/__registry__/new-york/charts/chart-line-label.tsx
+++ /dev/null
@@ -1,105 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { CartesianGrid, LabelList, Line, LineChart, XAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-
-export const description = "A line chart with a label"
-
-const chartData = [
- { month: "January", desktop: 186, mobile: 80 },
- { month: "February", desktop: 305, mobile: 200 },
- { month: "March", desktop: 237, mobile: 120 },
- { month: "April", desktop: 73, mobile: 190 },
- { month: "May", desktop: 209, mobile: 130 },
- { month: "June", desktop: 214, mobile: 140 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
- mobile: {
- label: "Mobile",
- color: "hsl(var(--chart-2))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Line Chart - Label
- January - June 2024
-
-
-
-
-
- value.slice(0, 3)}
- />
- }
- />
-
-
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- Showing total visitors for the last 6 months
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/charts/chart-line-linear.tsx b/deprecated/www/__registry__/new-york/charts/chart-line-linear.tsx
deleted file mode 100644
index 7225a5f79c..0000000000
--- a/deprecated/www/__registry__/new-york/charts/chart-line-linear.tsx
+++ /dev/null
@@ -1,88 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { CartesianGrid, Line, LineChart, XAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-
-export const description = "A linear line chart"
-
-const chartData = [
- { month: "January", desktop: 186 },
- { month: "February", desktop: 305 },
- { month: "March", desktop: 237 },
- { month: "April", desktop: 73 },
- { month: "May", desktop: 209 },
- { month: "June", desktop: 214 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Line Chart - Linear
- January - June 2024
-
-
-
-
-
- value.slice(0, 3)}
- />
- }
- />
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- Showing total visitors for the last 6 months
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/charts/chart-line-multiple.tsx b/deprecated/www/__registry__/new-york/charts/chart-line-multiple.tsx
deleted file mode 100644
index f972819f5b..0000000000
--- a/deprecated/www/__registry__/new-york/charts/chart-line-multiple.tsx
+++ /dev/null
@@ -1,100 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { CartesianGrid, Line, LineChart, XAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-
-export const description = "A multiple line chart"
-
-const chartData = [
- { month: "January", desktop: 186, mobile: 80 },
- { month: "February", desktop: 305, mobile: 200 },
- { month: "March", desktop: 237, mobile: 120 },
- { month: "April", desktop: 73, mobile: 190 },
- { month: "May", desktop: 209, mobile: 130 },
- { month: "June", desktop: 214, mobile: 140 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
- mobile: {
- label: "Mobile",
- color: "hsl(var(--chart-2))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Line Chart - Multiple
- January - June 2024
-
-
-
-
-
- value.slice(0, 3)}
- />
- } />
-
-
-
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- Showing total visitors for the last 6 months
-
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/charts/chart-line-step.tsx b/deprecated/www/__registry__/new-york/charts/chart-line-step.tsx
deleted file mode 100644
index 4531051867..0000000000
--- a/deprecated/www/__registry__/new-york/charts/chart-line-step.tsx
+++ /dev/null
@@ -1,88 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { CartesianGrid, Line, LineChart, XAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-
-export const description = "A line chart with step"
-
-const chartData = [
- { month: "January", desktop: 186 },
- { month: "February", desktop: 305 },
- { month: "March", desktop: 237 },
- { month: "April", desktop: 73 },
- { month: "May", desktop: 209 },
- { month: "June", desktop: 214 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Line Chart - Step
- January - June 2024
-
-
-
-
-
- value.slice(0, 3)}
- />
- }
- />
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- Showing total visitors for the last 6 months
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/charts/chart-pie-donut-active.tsx b/deprecated/www/__registry__/new-york/charts/chart-pie-donut-active.tsx
deleted file mode 100644
index 7d7a82eca8..0000000000
--- a/deprecated/www/__registry__/new-york/charts/chart-pie-donut-active.tsx
+++ /dev/null
@@ -1,102 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { Label, Pie, PieChart, Sector } from "recharts"
-import { PieSectorDataItem } from "recharts/types/polar/Pie"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-
-export const description = "A donut chart with an active sector"
-
-const chartData = [
- { browser: "chrome", visitors: 275, fill: "var(--color-chrome)" },
- { browser: "safari", visitors: 200, fill: "var(--color-safari)" },
- { browser: "firefox", visitors: 187, fill: "var(--color-firefox)" },
- { browser: "edge", visitors: 173, fill: "var(--color-edge)" },
- { browser: "other", visitors: 90, fill: "var(--color-other)" },
-]
-
-const chartConfig = {
- visitors: {
- label: "Visitors",
- },
- chrome: {
- label: "Chrome",
- color: "hsl(var(--chart-1))",
- },
- safari: {
- label: "Safari",
- color: "hsl(var(--chart-2))",
- },
- firefox: {
- label: "Firefox",
- color: "hsl(var(--chart-3))",
- },
- edge: {
- label: "Edge",
- color: "hsl(var(--chart-4))",
- },
- other: {
- label: "Other",
- color: "hsl(var(--chart-5))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Pie Chart - Donut Active
- January - June 2024
-
-
-
-
- }
- />
- (
-
- )}
- />
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- Showing total visitors for the last 6 months
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/charts/chart-pie-donut-text.tsx b/deprecated/www/__registry__/new-york/charts/chart-pie-donut-text.tsx
deleted file mode 100644
index 1fb6bc74d1..0000000000
--- a/deprecated/www/__registry__/new-york/charts/chart-pie-donut-text.tsx
+++ /dev/null
@@ -1,129 +0,0 @@
-"use client"
-
-import * as React from "react"
-import { TrendingUp } from "lucide-react"
-import { Label, Pie, PieChart } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-
-export const description = "A donut chart with text"
-
-const chartData = [
- { browser: "chrome", visitors: 275, fill: "var(--color-chrome)" },
- { browser: "safari", visitors: 200, fill: "var(--color-safari)" },
- { browser: "firefox", visitors: 287, fill: "var(--color-firefox)" },
- { browser: "edge", visitors: 173, fill: "var(--color-edge)" },
- { browser: "other", visitors: 190, fill: "var(--color-other)" },
-]
-
-const chartConfig = {
- visitors: {
- label: "Visitors",
- },
- chrome: {
- label: "Chrome",
- color: "hsl(var(--chart-1))",
- },
- safari: {
- label: "Safari",
- color: "hsl(var(--chart-2))",
- },
- firefox: {
- label: "Firefox",
- color: "hsl(var(--chart-3))",
- },
- edge: {
- label: "Edge",
- color: "hsl(var(--chart-4))",
- },
- other: {
- label: "Other",
- color: "hsl(var(--chart-5))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- const totalVisitors = React.useMemo(() => {
- return chartData.reduce((acc, curr) => acc + curr.visitors, 0)
- }, [])
-
- return (
-
-
- Pie Chart - Donut with Text
- January - June 2024
-
-
-
-
- }
- />
-
- {
- if (viewBox && "cx" in viewBox && "cy" in viewBox) {
- return (
-
-
- {totalVisitors.toLocaleString()}
-
-
- Visitors
-
-
- )
- }
- }}
- />
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- Showing total visitors for the last 6 months
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/charts/chart-pie-donut.tsx b/deprecated/www/__registry__/new-york/charts/chart-pie-donut.tsx
deleted file mode 100644
index 42965dac6a..0000000000
--- a/deprecated/www/__registry__/new-york/charts/chart-pie-donut.tsx
+++ /dev/null
@@ -1,93 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { Pie, PieChart } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-
-export const description = "A donut chart"
-
-const chartData = [
- { browser: "chrome", visitors: 275, fill: "var(--color-chrome)" },
- { browser: "safari", visitors: 200, fill: "var(--color-safari)" },
- { browser: "firefox", visitors: 187, fill: "var(--color-firefox)" },
- { browser: "edge", visitors: 173, fill: "var(--color-edge)" },
- { browser: "other", visitors: 90, fill: "var(--color-other)" },
-]
-
-const chartConfig = {
- visitors: {
- label: "Visitors",
- },
- chrome: {
- label: "Chrome",
- color: "hsl(var(--chart-1))",
- },
- safari: {
- label: "Safari",
- color: "hsl(var(--chart-2))",
- },
- firefox: {
- label: "Firefox",
- color: "hsl(var(--chart-3))",
- },
- edge: {
- label: "Edge",
- color: "hsl(var(--chart-4))",
- },
- other: {
- label: "Other",
- color: "hsl(var(--chart-5))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Pie Chart - Donut
- January - June 2024
-
-
-
-
- }
- />
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- Showing total visitors for the last 6 months
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/charts/chart-pie-interactive.tsx b/deprecated/www/__registry__/new-york/charts/chart-pie-interactive.tsx
deleted file mode 100644
index 8da797d079..0000000000
--- a/deprecated/www/__registry__/new-york/charts/chart-pie-interactive.tsx
+++ /dev/null
@@ -1,192 +0,0 @@
-"use client"
-
-import * as React from "react"
-import { Label, Pie, PieChart, Sector } from "recharts"
-import { PieSectorDataItem } from "recharts/types/polar/Pie"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartStyle,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-import {
- Select,
- SelectContent,
- SelectItem,
- SelectTrigger,
- SelectValue,
-} from "@/registry/new-york/ui/select"
-
-export const description = "An interactive pie chart"
-
-const desktopData = [
- { month: "january", desktop: 186, fill: "var(--color-january)" },
- { month: "february", desktop: 305, fill: "var(--color-february)" },
- { month: "march", desktop: 237, fill: "var(--color-march)" },
- { month: "april", desktop: 173, fill: "var(--color-april)" },
- { month: "may", desktop: 209, fill: "var(--color-may)" },
-]
-
-const chartConfig = {
- visitors: {
- label: "Visitors",
- },
- desktop: {
- label: "Desktop",
- },
- mobile: {
- label: "Mobile",
- },
- january: {
- label: "January",
- color: "hsl(var(--chart-1))",
- },
- february: {
- label: "February",
- color: "hsl(var(--chart-2))",
- },
- march: {
- label: "March",
- color: "hsl(var(--chart-3))",
- },
- april: {
- label: "April",
- color: "hsl(var(--chart-4))",
- },
- may: {
- label: "May",
- color: "hsl(var(--chart-5))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- const id = "pie-interactive"
- const [activeMonth, setActiveMonth] = React.useState(desktopData[0].month)
-
- const activeIndex = React.useMemo(
- () => desktopData.findIndex((item) => item.month === activeMonth),
- [activeMonth]
- )
- const months = React.useMemo(() => desktopData.map((item) => item.month), [])
-
- return (
-
-
-
-
- Pie Chart - Interactive
- January - June 2024
-
-
-
-
-
-
- {months.map((key) => {
- const config = chartConfig[key as keyof typeof chartConfig]
-
- if (!config) {
- return null
- }
-
- return (
-
-
-
- {config?.label}
-
-
- )
- })}
-
-
-
-
-
-
- }
- />
- (
-
-
-
-
- )}
- >
- {
- if (viewBox && "cx" in viewBox && "cy" in viewBox) {
- return (
-
-
- {desktopData[activeIndex].desktop.toLocaleString()}
-
-
- Visitors
-
-
- )
- }
- }}
- />
-
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/charts/chart-pie-label-custom.tsx b/deprecated/www/__registry__/new-york/charts/chart-pie-label-custom.tsx
deleted file mode 100644
index ff956ebf9d..0000000000
--- a/deprecated/www/__registry__/new-york/charts/chart-pie-label-custom.tsx
+++ /dev/null
@@ -1,107 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { Pie, PieChart } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-
-export const description = "A pie chart with a custom label"
-
-const chartData = [
- { browser: "chrome", visitors: 275, fill: "var(--color-chrome)" },
- { browser: "safari", visitors: 200, fill: "var(--color-safari)" },
- { browser: "firefox", visitors: 187, fill: "var(--color-firefox)" },
- { browser: "edge", visitors: 173, fill: "var(--color-edge)" },
- { browser: "other", visitors: 90, fill: "var(--color-other)" },
-]
-
-const chartConfig = {
- visitors: {
- label: "Visitors",
- },
- chrome: {
- label: "Chrome",
- color: "hsl(var(--chart-1))",
- },
- safari: {
- label: "Safari",
- color: "hsl(var(--chart-2))",
- },
- firefox: {
- label: "Firefox",
- color: "hsl(var(--chart-3))",
- },
- edge: {
- label: "Edge",
- color: "hsl(var(--chart-4))",
- },
- other: {
- label: "Other",
- color: "hsl(var(--chart-5))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Pie Chart - Custom Label
- January - June 2024
-
-
-
-
- }
- />
- {
- return (
-
- {payload.visitors}
-
- )
- }}
- nameKey="browser"
- />
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- Showing total visitors for the last 6 months
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/charts/chart-pie-label-list.tsx b/deprecated/www/__registry__/new-york/charts/chart-pie-label-list.tsx
deleted file mode 100644
index 0bc77dfde0..0000000000
--- a/deprecated/www/__registry__/new-york/charts/chart-pie-label-list.tsx
+++ /dev/null
@@ -1,97 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { LabelList, Pie, PieChart } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-
-export const description = "A pie chart with a label list"
-
-const chartData = [
- { browser: "chrome", visitors: 275, fill: "var(--color-chrome)" },
- { browser: "safari", visitors: 200, fill: "var(--color-safari)" },
- { browser: "firefox", visitors: 187, fill: "var(--color-firefox)" },
- { browser: "edge", visitors: 173, fill: "var(--color-edge)" },
- { browser: "other", visitors: 90, fill: "var(--color-other)" },
-]
-
-const chartConfig = {
- visitors: {
- label: "Visitors",
- },
- chrome: {
- label: "Chrome",
- color: "hsl(var(--chart-1))",
- },
- safari: {
- label: "Safari",
- color: "hsl(var(--chart-2))",
- },
- firefox: {
- label: "Firefox",
- color: "hsl(var(--chart-3))",
- },
- edge: {
- label: "Edge",
- color: "hsl(var(--chart-4))",
- },
- other: {
- label: "Other",
- color: "hsl(var(--chart-5))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Pie Chart - Label List
- January - June 2024
-
-
-
-
- }
- />
-
-
- chartConfig[value]?.label
- }
- />
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- Showing total visitors for the last 6 months
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/charts/chart-pie-label.tsx b/deprecated/www/__registry__/new-york/charts/chart-pie-label.tsx
deleted file mode 100644
index e4a13c9397..0000000000
--- a/deprecated/www/__registry__/new-york/charts/chart-pie-label.tsx
+++ /dev/null
@@ -1,85 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { Pie, PieChart } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-
-export const description = "A pie chart with a label"
-
-const chartData = [
- { browser: "chrome", visitors: 275, fill: "var(--color-chrome)" },
- { browser: "safari", visitors: 200, fill: "var(--color-safari)" },
- { browser: "firefox", visitors: 187, fill: "var(--color-firefox)" },
- { browser: "edge", visitors: 173, fill: "var(--color-edge)" },
- { browser: "other", visitors: 90, fill: "var(--color-other)" },
-]
-
-const chartConfig = {
- visitors: {
- label: "Visitors",
- },
- chrome: {
- label: "Chrome",
- color: "hsl(var(--chart-1))",
- },
- safari: {
- label: "Safari",
- color: "hsl(var(--chart-2))",
- },
- firefox: {
- label: "Firefox",
- color: "hsl(var(--chart-3))",
- },
- edge: {
- label: "Edge",
- color: "hsl(var(--chart-4))",
- },
- other: {
- label: "Other",
- color: "hsl(var(--chart-5))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Pie Chart - Label
- January - June 2024
-
-
-
-
- } />
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- Showing total visitors for the last 6 months
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/charts/chart-pie-legend.tsx b/deprecated/www/__registry__/new-york/charts/chart-pie-legend.tsx
deleted file mode 100644
index d75f89eacf..0000000000
--- a/deprecated/www/__registry__/new-york/charts/chart-pie-legend.tsx
+++ /dev/null
@@ -1,78 +0,0 @@
-"use client"
-
-import { Pie, PieChart } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartLegend,
- ChartLegendContent,
-} from "@/registry/new-york/ui/chart"
-
-export const description = "A pie chart with a legend"
-
-const chartData = [
- { browser: "chrome", visitors: 275, fill: "var(--color-chrome)" },
- { browser: "safari", visitors: 200, fill: "var(--color-safari)" },
- { browser: "firefox", visitors: 187, fill: "var(--color-firefox)" },
- { browser: "edge", visitors: 173, fill: "var(--color-edge)" },
- { browser: "other", visitors: 90, fill: "var(--color-other)" },
-]
-
-const chartConfig = {
- visitors: {
- label: "Visitors",
- },
- chrome: {
- label: "Chrome",
- color: "hsl(var(--chart-1))",
- },
- safari: {
- label: "Safari",
- color: "hsl(var(--chart-2))",
- },
- firefox: {
- label: "Firefox",
- color: "hsl(var(--chart-3))",
- },
- edge: {
- label: "Edge",
- color: "hsl(var(--chart-4))",
- },
- other: {
- label: "Other",
- color: "hsl(var(--chart-5))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Pie Chart - Legend
- January - June 2024
-
-
-
-
-
- }
- className="-translate-y-2 flex-wrap gap-2 [&>*]:basis-1/4 [&>*]:justify-center"
- />
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/charts/chart-pie-separator-none.tsx b/deprecated/www/__registry__/new-york/charts/chart-pie-separator-none.tsx
deleted file mode 100644
index cf191f1615..0000000000
--- a/deprecated/www/__registry__/new-york/charts/chart-pie-separator-none.tsx
+++ /dev/null
@@ -1,93 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { Pie, PieChart } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-
-export const description = "A pie chart with no separator"
-
-const chartData = [
- { browser: "chrome", visitors: 275, fill: "var(--color-chrome)" },
- { browser: "safari", visitors: 200, fill: "var(--color-safari)" },
- { browser: "firefox", visitors: 187, fill: "var(--color-firefox)" },
- { browser: "edge", visitors: 173, fill: "var(--color-edge)" },
- { browser: "other", visitors: 90, fill: "var(--color-other)" },
-]
-
-const chartConfig = {
- visitors: {
- label: "Visitors",
- },
- chrome: {
- label: "Chrome",
- color: "hsl(var(--chart-1))",
- },
- safari: {
- label: "Safari",
- color: "hsl(var(--chart-2))",
- },
- firefox: {
- label: "Firefox",
- color: "hsl(var(--chart-3))",
- },
- edge: {
- label: "Edge",
- color: "hsl(var(--chart-4))",
- },
- other: {
- label: "Other",
- color: "hsl(var(--chart-5))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Pie Chart - Separator None
- January - June 2024
-
-
-
-
- }
- />
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- Showing total visitors for the last 6 months
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/charts/chart-pie-simple.tsx b/deprecated/www/__registry__/new-york/charts/chart-pie-simple.tsx
deleted file mode 100644
index c529f52bb1..0000000000
--- a/deprecated/www/__registry__/new-york/charts/chart-pie-simple.tsx
+++ /dev/null
@@ -1,88 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { Pie, PieChart } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-
-export const description = "A simple pie chart"
-
-const chartData = [
- { browser: "chrome", visitors: 275, fill: "var(--color-chrome)" },
- { browser: "safari", visitors: 200, fill: "var(--color-safari)" },
- { browser: "firefox", visitors: 187, fill: "var(--color-firefox)" },
- { browser: "edge", visitors: 173, fill: "var(--color-edge)" },
- { browser: "other", visitors: 90, fill: "var(--color-other)" },
-]
-
-const chartConfig = {
- visitors: {
- label: "Visitors",
- },
- chrome: {
- label: "Chrome",
- color: "hsl(var(--chart-1))",
- },
- safari: {
- label: "Safari",
- color: "hsl(var(--chart-2))",
- },
- firefox: {
- label: "Firefox",
- color: "hsl(var(--chart-3))",
- },
- edge: {
- label: "Edge",
- color: "hsl(var(--chart-4))",
- },
- other: {
- label: "Other",
- color: "hsl(var(--chart-5))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Pie Chart
- January - June 2024
-
-
-
-
- }
- />
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- Showing total visitors for the last 6 months
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/charts/chart-pie-stacked.tsx b/deprecated/www/__registry__/new-york/charts/chart-pie-stacked.tsx
deleted file mode 100644
index b4be18a47d..0000000000
--- a/deprecated/www/__registry__/new-york/charts/chart-pie-stacked.tsx
+++ /dev/null
@@ -1,119 +0,0 @@
-"use client"
-
-import * as React from "react"
-import { TrendingUp } from "lucide-react"
-import { Label, Pie, PieChart } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-
-export const description = "A pie chart with stacked sections"
-
-const desktopData = [
- { month: "january", desktop: 186, fill: "var(--color-january)" },
- { month: "february", desktop: 305, fill: "var(--color-february)" },
- { month: "march", desktop: 237, fill: "var(--color-march)" },
- { month: "april", desktop: 173, fill: "var(--color-april)" },
- { month: "may", desktop: 209, fill: "var(--color-may)" },
-]
-
-const mobileData = [
- { month: "january", mobile: 80, fill: "var(--color-january)" },
- { month: "february", mobile: 200, fill: "var(--color-february)" },
- { month: "march", mobile: 120, fill: "var(--color-march)" },
- { month: "april", mobile: 190, fill: "var(--color-april)" },
- { month: "may", mobile: 130, fill: "var(--color-may)" },
-]
-
-const chartConfig = {
- visitors: {
- label: "Visitors",
- },
- desktop: {
- label: "Desktop",
- },
- mobile: {
- label: "Mobile",
- },
- january: {
- label: "January",
- color: "hsl(var(--chart-1))",
- },
- february: {
- label: "February",
- color: "hsl(var(--chart-2))",
- },
- march: {
- label: "March",
- color: "hsl(var(--chart-3))",
- },
- april: {
- label: "April",
- color: "hsl(var(--chart-4))",
- },
- may: {
- label: "May",
- color: "hsl(var(--chart-5))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Pie Chart - Stacked
- January - June 2024
-
-
-
-
- {
- return chartConfig[
- payload?.[0].dataKey as keyof typeof chartConfig
- ].label
- }}
- />
- }
- />
-
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- Showing total visitors for the last 6 months
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/charts/chart-radar-default.tsx b/deprecated/www/__registry__/new-york/charts/chart-radar-default.tsx
deleted file mode 100644
index 7d258514cd..0000000000
--- a/deprecated/www/__registry__/new-york/charts/chart-radar-default.tsx
+++ /dev/null
@@ -1,75 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { PolarAngleAxis, PolarGrid, Radar, RadarChart } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-
-export const description = "A radar chart"
-
-const chartData = [
- { month: "January", desktop: 186 },
- { month: "February", desktop: 305 },
- { month: "March", desktop: 237 },
- { month: "April", desktop: 273 },
- { month: "May", desktop: 209 },
- { month: "June", desktop: 214 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Radar Chart
-
- Showing total visitors for the last 6 months
-
-
-
-
-
- } />
-
-
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- January - June 2024
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/charts/chart-radar-dots.tsx b/deprecated/www/__registry__/new-york/charts/chart-radar-dots.tsx
deleted file mode 100644
index 385734eae7..0000000000
--- a/deprecated/www/__registry__/new-york/charts/chart-radar-dots.tsx
+++ /dev/null
@@ -1,79 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { PolarAngleAxis, PolarGrid, Radar, RadarChart } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-
-export const description = "A radar chart with dots"
-
-const chartData = [
- { month: "January", desktop: 186 },
- { month: "February", desktop: 305 },
- { month: "March", desktop: 237 },
- { month: "April", desktop: 273 },
- { month: "May", desktop: 209 },
- { month: "June", desktop: 214 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Radar Chart - Dots
-
- Showing total visitors for the last 6 months
-
-
-
-
-
- } />
-
-
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- January - June 2024
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/charts/chart-radar-grid-circle-fill.tsx b/deprecated/www/__registry__/new-york/charts/chart-radar-grid-circle-fill.tsx
deleted file mode 100644
index f3c62bbe86..0000000000
--- a/deprecated/www/__registry__/new-york/charts/chart-radar-grid-circle-fill.tsx
+++ /dev/null
@@ -1,78 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { PolarAngleAxis, PolarGrid, Radar, RadarChart } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-
-export const description = "A radar chart with a grid and circle fill"
-
-const chartData = [
- { month: "January", desktop: 186 },
- { month: "February", desktop: 285 },
- { month: "March", desktop: 237 },
- { month: "April", desktop: 203 },
- { month: "May", desktop: 209 },
- { month: "June", desktop: 264 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Radar Chart - Grid Circle Filled
-
- Showing total visitors for the last 6 months
-
-
-
-
-
- } />
-
-
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- January - June 2024
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/charts/chart-radar-grid-circle-no-lines.tsx b/deprecated/www/__registry__/new-york/charts/chart-radar-grid-circle-no-lines.tsx
deleted file mode 100644
index 5164314998..0000000000
--- a/deprecated/www/__registry__/new-york/charts/chart-radar-grid-circle-no-lines.tsx
+++ /dev/null
@@ -1,82 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { PolarAngleAxis, PolarGrid, Radar, RadarChart } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-
-export const description = "A radar chart with a grid and circle fill"
-
-const chartData = [
- { month: "January", desktop: 186 },
- { month: "February", desktop: 305 },
- { month: "March", desktop: 237 },
- { month: "April", desktop: 203 },
- { month: "May", desktop: 209 },
- { month: "June", desktop: 214 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Radar Chart - Grid Circle - No lines
-
- Showing total visitors for the last 6 months
-
-
-
-
-
- }
- />
-
-
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- January - June 2024
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/charts/chart-radar-grid-circle.tsx b/deprecated/www/__registry__/new-york/charts/chart-radar-grid-circle.tsx
deleted file mode 100644
index 0cfb63f0e1..0000000000
--- a/deprecated/www/__registry__/new-york/charts/chart-radar-grid-circle.tsx
+++ /dev/null
@@ -1,82 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { PolarAngleAxis, PolarGrid, Radar, RadarChart } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-
-export const description = "A radar chart with a grid and circle"
-
-const chartData = [
- { month: "January", desktop: 186 },
- { month: "February", desktop: 305 },
- { month: "March", desktop: 237 },
- { month: "April", desktop: 273 },
- { month: "May", desktop: 209 },
- { month: "June", desktop: 214 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Radar Chart - Grid Circle
-
- Showing total visitors for the last 6 months
-
-
-
-
-
- }
- />
-
-
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- January - June 2024
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/charts/chart-radar-grid-custom.tsx b/deprecated/www/__registry__/new-york/charts/chart-radar-grid-custom.tsx
deleted file mode 100644
index c48dfcd641..0000000000
--- a/deprecated/www/__registry__/new-york/charts/chart-radar-grid-custom.tsx
+++ /dev/null
@@ -1,78 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { PolarAngleAxis, PolarGrid, Radar, RadarChart } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-
-export const description = "A radar chart with a custom grid"
-
-const chartData = [
- { month: "January", desktop: 186 },
- { month: "February", desktop: 305 },
- { month: "March", desktop: 237 },
- { month: "April", desktop: 273 },
- { month: "May", desktop: 209 },
- { month: "June", desktop: 214 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Radar Chart - Grid Custom
-
- Showing total visitors for the last 6 months
-
-
-
-
-
- }
- />
-
-
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- January - June 2024
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/charts/chart-radar-grid-fill.tsx b/deprecated/www/__registry__/new-york/charts/chart-radar-grid-fill.tsx
deleted file mode 100644
index 69e2a9e06f..0000000000
--- a/deprecated/www/__registry__/new-york/charts/chart-radar-grid-fill.tsx
+++ /dev/null
@@ -1,78 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { PolarAngleAxis, PolarGrid, Radar, RadarChart } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-
-export const description = "A radar chart with a grid filled"
-
-const chartData = [
- { month: "January", desktop: 186 },
- { month: "February", desktop: 285 },
- { month: "March", desktop: 237 },
- { month: "April", desktop: 203 },
- { month: "May", desktop: 209 },
- { month: "June", desktop: 264 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Radar Chart - Grid Filled
-
- Showing total visitors for the last 6 months
-
-
-
-
-
- }
- />
-
-
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- January - June 2024
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/charts/chart-radar-grid-none.tsx b/deprecated/www/__registry__/new-york/charts/chart-radar-grid-none.tsx
deleted file mode 100644
index bdd774945a..0000000000
--- a/deprecated/www/__registry__/new-york/charts/chart-radar-grid-none.tsx
+++ /dev/null
@@ -1,81 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { PolarAngleAxis, Radar, RadarChart } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-
-export const description = "A radar chart with no grid"
-
-const chartData = [
- { month: "January", desktop: 186 },
- { month: "February", desktop: 305 },
- { month: "March", desktop: 237 },
- { month: "April", desktop: 273 },
- { month: "May", desktop: 209 },
- { month: "June", desktop: 214 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Radar Chart - Grid None
-
- Showing total visitors for the last 6 months
-
-
-
-
-
- }
- />
-
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- January - June 2024
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/charts/chart-radar-icons.tsx b/deprecated/www/__registry__/new-york/charts/chart-radar-icons.tsx
deleted file mode 100644
index d6e5b9ad9b..0000000000
--- a/deprecated/www/__registry__/new-york/charts/chart-radar-icons.tsx
+++ /dev/null
@@ -1,94 +0,0 @@
-"use client"
-
-import { ArrowDownFromLine, ArrowUpFromLine, TrendingUp } from "lucide-react"
-import { PolarAngleAxis, PolarGrid, Radar, RadarChart } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartLegend,
- ChartLegendContent,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-
-export const description = "A radar chart with icons"
-
-const chartData = [
- { month: "January", desktop: 186, mobile: 80 },
- { month: "February", desktop: 305, mobile: 200 },
- { month: "March", desktop: 237, mobile: 120 },
- { month: "April", desktop: 73, mobile: 190 },
- { month: "May", desktop: 209, mobile: 130 },
- { month: "June", desktop: 214, mobile: 140 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- icon: ArrowDownFromLine,
- },
- mobile: {
- label: "Mobile",
- color: "hsl(var(--chart-2))",
- icon: ArrowUpFromLine,
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Radar Chart - Icons
-
- Showing total visitors for the last 6 months
-
-
-
-
-
- }
- />
-
-
-
-
- } />
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- January - June 2024
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/charts/chart-radar-label-custom.tsx b/deprecated/www/__registry__/new-york/charts/chart-radar-label-custom.tsx
deleted file mode 100644
index 7d693b2eda..0000000000
--- a/deprecated/www/__registry__/new-york/charts/chart-radar-label-custom.tsx
+++ /dev/null
@@ -1,120 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { PolarAngleAxis, PolarGrid, Radar, RadarChart } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-
-export const description = "A radar chart with a custom label"
-
-const chartData = [
- { month: "January", desktop: 186, mobile: 80 },
- { month: "February", desktop: 305, mobile: 200 },
- { month: "March", desktop: 237, mobile: 120 },
- { month: "April", desktop: 73, mobile: 190 },
- { month: "May", desktop: 209, mobile: 130 },
- { month: "June", desktop: 214, mobile: 140 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
- mobile: {
- label: "Mobile",
- color: "hsl(var(--chart-2))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Radar Chart - Custom Label
-
- Showing total visitors for the last 6 months
-
-
-
-
-
- }
- />
- {
- const data = chartData[index]
-
- return (
-
- {data.desktop}
- /
- {data.mobile}
-
- {data.month}
-
-
- )
- }}
- />
-
-
-
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- January - June 2024
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/charts/chart-radar-legend.tsx b/deprecated/www/__registry__/new-york/charts/chart-radar-legend.tsx
deleted file mode 100644
index 4000465449..0000000000
--- a/deprecated/www/__registry__/new-york/charts/chart-radar-legend.tsx
+++ /dev/null
@@ -1,92 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { PolarAngleAxis, PolarGrid, Radar, RadarChart } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartLegend,
- ChartLegendContent,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-
-export const description = "A radar chart with a legend"
-
-const chartData = [
- { month: "January", desktop: 186, mobile: 80 },
- { month: "February", desktop: 305, mobile: 200 },
- { month: "March", desktop: 237, mobile: 120 },
- { month: "April", desktop: 73, mobile: 190 },
- { month: "May", desktop: 209, mobile: 130 },
- { month: "June", desktop: 214, mobile: 140 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
- mobile: {
- label: "Mobile",
- color: "hsl(var(--chart-2))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Radar Chart - Legend
-
- Showing total visitors for the last 6 months
-
-
-
-
-
- }
- />
-
-
-
-
- } />
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- January - June 2024
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/charts/chart-radar-lines-only.tsx b/deprecated/www/__registry__/new-york/charts/chart-radar-lines-only.tsx
deleted file mode 100644
index abaf967363..0000000000
--- a/deprecated/www/__registry__/new-york/charts/chart-radar-lines-only.tsx
+++ /dev/null
@@ -1,91 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { PolarAngleAxis, PolarGrid, Radar, RadarChart } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-
-export const description = "A radar chart with lines only"
-
-const chartData = [
- { month: "January", desktop: 186, mobile: 160 },
- { month: "February", desktop: 185, mobile: 170 },
- { month: "March", desktop: 207, mobile: 180 },
- { month: "April", desktop: 173, mobile: 160 },
- { month: "May", desktop: 160, mobile: 190 },
- { month: "June", desktop: 174, mobile: 204 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
- mobile: {
- label: "Mobile",
- color: "hsl(var(--chart-2))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Radar Chart - Lines Only
-
- Showing total visitors for the last 6 months
-
-
-
-
-
- }
- />
-
-
-
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- January - June 2024
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/charts/chart-radar-multiple.tsx b/deprecated/www/__registry__/new-york/charts/chart-radar-multiple.tsx
deleted file mode 100644
index d8786f8b4a..0000000000
--- a/deprecated/www/__registry__/new-york/charts/chart-radar-multiple.tsx
+++ /dev/null
@@ -1,83 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { PolarAngleAxis, PolarGrid, Radar, RadarChart } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-
-export const description = "A radar chart with multiple data"
-
-const chartData = [
- { month: "January", desktop: 186, mobile: 80 },
- { month: "February", desktop: 305, mobile: 200 },
- { month: "March", desktop: 237, mobile: 120 },
- { month: "April", desktop: 73, mobile: 190 },
- { month: "May", desktop: 209, mobile: 130 },
- { month: "June", desktop: 214, mobile: 140 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
- mobile: {
- label: "Mobile",
- color: "hsl(var(--chart-2))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Radar Chart - Multiple
-
- Showing total visitors for the last 6 months
-
-
-
-
-
- }
- />
-
-
-
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- January - June 2024
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/charts/chart-radar-radius.tsx b/deprecated/www/__registry__/new-york/charts/chart-radar-radius.tsx
deleted file mode 100644
index aa82f8f024..0000000000
--- a/deprecated/www/__registry__/new-york/charts/chart-radar-radius.tsx
+++ /dev/null
@@ -1,96 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import {
- PolarAngleAxis,
- PolarGrid,
- PolarRadiusAxis,
- Radar,
- RadarChart,
-} from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-
-export const description = "A radar chart with a radius axis"
-
-const chartData = [
- { month: "January", desktop: 186, mobile: 80 },
- { month: "February", desktop: 305, mobile: 200 },
- { month: "March", desktop: 237, mobile: 120 },
- { month: "April", desktop: 73, mobile: 190 },
- { month: "May", desktop: 209, mobile: 130 },
- { month: "June", desktop: 214, mobile: 140 },
-]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
- mobile: {
- label: "Mobile",
- color: "hsl(var(--chart-2))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Radar Chart - Radius Axis
-
- Showing total visitors for the last 6 months
-
-
-
-
-
-
- }
- />
-
-
-
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- January - June 2024
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/charts/chart-radial-grid.tsx b/deprecated/www/__registry__/new-york/charts/chart-radial-grid.tsx
deleted file mode 100644
index 69a1a3a603..0000000000
--- a/deprecated/www/__registry__/new-york/charts/chart-radial-grid.tsx
+++ /dev/null
@@ -1,89 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { PolarGrid, RadialBar, RadialBarChart } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-
-export const description = "A radial chart with a grid"
-
-const chartData = [
- { browser: "chrome", visitors: 275, fill: "var(--color-chrome)" },
- { browser: "safari", visitors: 200, fill: "var(--color-safari)" },
- { browser: "firefox", visitors: 187, fill: "var(--color-firefox)" },
- { browser: "edge", visitors: 173, fill: "var(--color-edge)" },
- { browser: "other", visitors: 90, fill: "var(--color-other)" },
-]
-
-const chartConfig = {
- visitors: {
- label: "Visitors",
- },
- chrome: {
- label: "Chrome",
- color: "hsl(var(--chart-1))",
- },
- safari: {
- label: "Safari",
- color: "hsl(var(--chart-2))",
- },
- firefox: {
- label: "Firefox",
- color: "hsl(var(--chart-3))",
- },
- edge: {
- label: "Edge",
- color: "hsl(var(--chart-4))",
- },
- other: {
- label: "Other",
- color: "hsl(var(--chart-5))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Radial Chart - Grid
- January - June 2024
-
-
-
-
- }
- />
-
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- Showing total visitors for the last 6 months
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/charts/chart-radial-label.tsx b/deprecated/www/__registry__/new-york/charts/chart-radial-label.tsx
deleted file mode 100644
index 25c1bc41bf..0000000000
--- a/deprecated/www/__registry__/new-york/charts/chart-radial-label.tsx
+++ /dev/null
@@ -1,101 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { LabelList, RadialBar, RadialBarChart } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-
-export const description = "A radial chart with a label"
-
-const chartData = [
- { browser: "chrome", visitors: 275, fill: "var(--color-chrome)" },
- { browser: "safari", visitors: 200, fill: "var(--color-safari)" },
- { browser: "firefox", visitors: 187, fill: "var(--color-firefox)" },
- { browser: "edge", visitors: 173, fill: "var(--color-edge)" },
- { browser: "other", visitors: 90, fill: "var(--color-other)" },
-]
-
-const chartConfig = {
- visitors: {
- label: "Visitors",
- },
- chrome: {
- label: "Chrome",
- color: "hsl(var(--chart-1))",
- },
- safari: {
- label: "Safari",
- color: "hsl(var(--chart-2))",
- },
- firefox: {
- label: "Firefox",
- color: "hsl(var(--chart-3))",
- },
- edge: {
- label: "Edge",
- color: "hsl(var(--chart-4))",
- },
- other: {
- label: "Other",
- color: "hsl(var(--chart-5))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Radial Chart - Label
- January - June 2024
-
-
-
-
- }
- />
-
-
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- Showing total visitors for the last 6 months
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/charts/chart-radial-shape.tsx b/deprecated/www/__registry__/new-york/charts/chart-radial-shape.tsx
deleted file mode 100644
index 592e225c4a..0000000000
--- a/deprecated/www/__registry__/new-york/charts/chart-radial-shape.tsx
+++ /dev/null
@@ -1,108 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import {
- Label,
- PolarGrid,
- PolarRadiusAxis,
- RadialBar,
- RadialBarChart,
-} from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import { ChartConfig, ChartContainer } from "@/registry/new-york/ui/chart"
-
-export const description = "A radial chart with a custom shape"
-
-const chartData = [
- { browser: "safari", visitors: 1260, fill: "var(--color-safari)" },
-]
-
-const chartConfig = {
- visitors: {
- label: "Visitors",
- },
- safari: {
- label: "Safari",
- color: "hsl(var(--chart-2))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Radial Chart - Shape
- January - June 2024
-
-
-
-
-
-
-
- {
- if (viewBox && "cx" in viewBox && "cy" in viewBox) {
- return (
-
-
- {chartData[0].visitors.toLocaleString()}
-
-
- Visitors
-
-
- )
- }
- }}
- />
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- Showing total visitors for the last 6 months
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/charts/chart-radial-simple.tsx b/deprecated/www/__registry__/new-york/charts/chart-radial-simple.tsx
deleted file mode 100644
index 4033acb323..0000000000
--- a/deprecated/www/__registry__/new-york/charts/chart-radial-simple.tsx
+++ /dev/null
@@ -1,88 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { RadialBar, RadialBarChart } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-
-export const description = "A radial chart"
-
-const chartData = [
- { browser: "chrome", visitors: 275, fill: "var(--color-chrome)" },
- { browser: "safari", visitors: 200, fill: "var(--color-safari)" },
- { browser: "firefox", visitors: 187, fill: "var(--color-firefox)" },
- { browser: "edge", visitors: 173, fill: "var(--color-edge)" },
- { browser: "other", visitors: 90, fill: "var(--color-other)" },
-]
-
-const chartConfig = {
- visitors: {
- label: "Visitors",
- },
- chrome: {
- label: "Chrome",
- color: "hsl(var(--chart-1))",
- },
- safari: {
- label: "Safari",
- color: "hsl(var(--chart-2))",
- },
- firefox: {
- label: "Firefox",
- color: "hsl(var(--chart-3))",
- },
- edge: {
- label: "Edge",
- color: "hsl(var(--chart-4))",
- },
- other: {
- label: "Other",
- color: "hsl(var(--chart-5))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Radial Chart
- January - June 2024
-
-
-
-
- }
- />
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- Showing total visitors for the last 6 months
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/charts/chart-radial-stacked.tsx b/deprecated/www/__registry__/new-york/charts/chart-radial-stacked.tsx
deleted file mode 100644
index 38d35670e5..0000000000
--- a/deprecated/www/__registry__/new-york/charts/chart-radial-stacked.tsx
+++ /dev/null
@@ -1,113 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import { Label, PolarRadiusAxis, RadialBar, RadialBarChart } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-
-export const description = "A radial chart with stacked sections"
-
-const chartData = [{ month: "january", desktop: 1260, mobile: 570 }]
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
- mobile: {
- label: "Mobile",
- color: "hsl(var(--chart-2))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- const totalVisitors = chartData[0].desktop + chartData[0].mobile
-
- return (
-
-
- Radial Chart - Stacked
- January - June 2024
-
-
-
-
- }
- />
-
- {
- if (viewBox && "cx" in viewBox && "cy" in viewBox) {
- return (
-
-
- {totalVisitors.toLocaleString()}
-
-
- Visitors
-
-
- )
- }
- }}
- />
-
-
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- Showing total visitors for the last 6 months
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/charts/chart-radial-text.tsx b/deprecated/www/__registry__/new-york/charts/chart-radial-text.tsx
deleted file mode 100644
index b88623e6e2..0000000000
--- a/deprecated/www/__registry__/new-york/charts/chart-radial-text.tsx
+++ /dev/null
@@ -1,109 +0,0 @@
-"use client"
-
-import { TrendingUp } from "lucide-react"
-import {
- Label,
- PolarGrid,
- PolarRadiusAxis,
- RadialBar,
- RadialBarChart,
-} from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import { ChartConfig, ChartContainer } from "@/registry/new-york/ui/chart"
-
-export const description = "A radial chart with text"
-
-const chartData = [
- { browser: "safari", visitors: 200, fill: "var(--color-safari)" },
-]
-
-const chartConfig = {
- visitors: {
- label: "Visitors",
- },
- safari: {
- label: "Safari",
- color: "hsl(var(--chart-2))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Radial Chart - Text
- January - June 2024
-
-
-
-
-
-
-
- {
- if (viewBox && "cx" in viewBox && "cy" in viewBox) {
- return (
-
-
- {chartData[0].visitors.toLocaleString()}
-
-
- Visitors
-
-
- )
- }
- }}
- />
-
-
-
-
-
-
- Trending up by 5.2% this month
-
-
- Showing total visitors for the last 6 months
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/charts/chart-tooltip-advanced.tsx b/deprecated/www/__registry__/new-york/charts/chart-tooltip-advanced.tsx
deleted file mode 100644
index bbc9f115dd..0000000000
--- a/deprecated/www/__registry__/new-york/charts/chart-tooltip-advanced.tsx
+++ /dev/null
@@ -1,123 +0,0 @@
-"use client"
-
-import { Bar, BarChart, XAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-
-export const description = "A stacked bar chart with a legend"
-
-const chartData = [
- { date: "2024-07-15", running: 450, swimming: 300 },
- { date: "2024-07-16", running: 380, swimming: 420 },
- { date: "2024-07-17", running: 520, swimming: 120 },
- { date: "2024-07-18", running: 140, swimming: 550 },
- { date: "2024-07-19", running: 600, swimming: 350 },
- { date: "2024-07-20", running: 480, swimming: 400 },
-]
-
-const chartConfig = {
- running: {
- label: "Running",
- color: "hsl(var(--chart-1))",
- },
- swimming: {
- label: "Swimming",
- color: "hsl(var(--chart-2))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Tooltip - Advanced
-
- Tooltip with custom formatter and total.
-
-
-
-
-
- {
- return new Date(value).toLocaleDateString("en-US", {
- weekday: "short",
- })
- }}
- />
-
-
- (
- <>
-
- {chartConfig[name as keyof typeof chartConfig]?.label ||
- name}
-
- {value}
-
- kcal
-
-
- {/* Add this after the last item */}
- {index === 1 && (
-
- Total
-
- {item.payload.running + item.payload.swimming}
-
- kcal
-
-
-
- )}
- >
- )}
- />
- }
- cursor={false}
- defaultIndex={1}
- />
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/charts/chart-tooltip-default.tsx b/deprecated/www/__registry__/new-york/charts/chart-tooltip-default.tsx
deleted file mode 100644
index 759b4555be..0000000000
--- a/deprecated/www/__registry__/new-york/charts/chart-tooltip-default.tsx
+++ /dev/null
@@ -1,89 +0,0 @@
-"use client"
-
-import { Bar, BarChart, XAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-
-export const description = "A stacked bar chart with a legend"
-export const iframeHeight = "600px"
-export const containerClassName =
- "[&>div]:w-full [&>div]:max-w-md flex items-center justify-center min-h-svh"
-
-const chartData = [
- { date: "2024-07-15", running: 450, swimming: 300 },
- { date: "2024-07-16", running: 380, swimming: 420 },
- { date: "2024-07-17", running: 520, swimming: 120 },
- { date: "2024-07-18", running: 140, swimming: 550 },
- { date: "2024-07-19", running: 600, swimming: 350 },
- { date: "2024-07-20", running: 480, swimming: 400 },
-]
-
-const chartConfig = {
- running: {
- label: "Running",
- color: "hsl(var(--chart-1))",
- },
- swimming: {
- label: "Swimming",
- color: "hsl(var(--chart-2))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Tooltip - Default
-
- Default tooltip with ChartTooltipContent.
-
-
-
-
-
- {
- return new Date(value).toLocaleDateString("en-US", {
- weekday: "short",
- })
- }}
- />
-
-
- }
- cursor={false}
- defaultIndex={1}
- />
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/charts/chart-tooltip-formatter.tsx b/deprecated/www/__registry__/new-york/charts/chart-tooltip-formatter.tsx
deleted file mode 100644
index e67f266f27..0000000000
--- a/deprecated/www/__registry__/new-york/charts/chart-tooltip-formatter.tsx
+++ /dev/null
@@ -1,100 +0,0 @@
-"use client"
-
-import { Bar, BarChart, XAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-
-export const description = "A stacked bar chart with a legend"
-
-const chartData = [
- { date: "2024-07-15", running: 450, swimming: 300 },
- { date: "2024-07-16", running: 380, swimming: 420 },
- { date: "2024-07-17", running: 520, swimming: 120 },
- { date: "2024-07-18", running: 140, swimming: 550 },
- { date: "2024-07-19", running: 600, swimming: 350 },
- { date: "2024-07-20", running: 480, swimming: 400 },
-]
-
-const chartConfig = {
- running: {
- label: "Running",
- color: "hsl(var(--chart-1))",
- },
- swimming: {
- label: "Swimming",
- color: "hsl(var(--chart-2))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Tooltip - Formatter
- Tooltip with custom formatter .
-
-
-
-
- {
- return new Date(value).toLocaleDateString("en-US", {
- weekday: "short",
- })
- }}
- />
-
-
- (
-
- {chartConfig[name as keyof typeof chartConfig]?.label ||
- name}
-
- {value}
-
- kcal
-
-
-
- )}
- />
- }
- cursor={false}
- defaultIndex={1}
- />
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/charts/chart-tooltip-icons.tsx b/deprecated/www/__registry__/new-york/charts/chart-tooltip-icons.tsx
deleted file mode 100644
index f2bf071923..0000000000
--- a/deprecated/www/__registry__/new-york/charts/chart-tooltip-icons.tsx
+++ /dev/null
@@ -1,87 +0,0 @@
-"use client"
-
-import { Footprints, Waves } from "lucide-react"
-import { Bar, BarChart, XAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-
-export const description = "A stacked bar chart with a legend"
-
-const chartData = [
- { date: "2024-07-15", running: 450, swimming: 300 },
- { date: "2024-07-16", running: 380, swimming: 420 },
- { date: "2024-07-17", running: 520, swimming: 120 },
- { date: "2024-07-18", running: 140, swimming: 550 },
- { date: "2024-07-19", running: 600, swimming: 350 },
- { date: "2024-07-20", running: 480, swimming: 400 },
-]
-
-const chartConfig = {
- running: {
- label: "Running",
- color: "hsl(var(--chart-1))",
- icon: Footprints,
- },
- swimming: {
- label: "Swimming",
- color: "hsl(var(--chart-2))",
- icon: Waves,
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Tooltip - Icons
- Tooltip with icons.
-
-
-
-
- {
- return new Date(value).toLocaleDateString("en-US", {
- weekday: "short",
- })
- }}
- />
-
-
- }
- cursor={false}
- defaultIndex={1}
- />
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/charts/chart-tooltip-indicator-line.tsx b/deprecated/www/__registry__/new-york/charts/chart-tooltip-indicator-line.tsx
deleted file mode 100644
index 19c3f85889..0000000000
--- a/deprecated/www/__registry__/new-york/charts/chart-tooltip-indicator-line.tsx
+++ /dev/null
@@ -1,87 +0,0 @@
-"use client"
-
-import { Bar, BarChart, XAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-
-export const description = "A stacked bar chart with a legend"
-export const iframeHeight = "600px"
-export const containerClassName =
- "[&>div]:w-full [&>div]:max-w-md flex items-center justify-center min-h-svh"
-
-const chartData = [
- { date: "2024-07-15", running: 450, swimming: 300 },
- { date: "2024-07-16", running: 380, swimming: 420 },
- { date: "2024-07-17", running: 520, swimming: 120 },
- { date: "2024-07-18", running: 140, swimming: 550 },
- { date: "2024-07-19", running: 600, swimming: 350 },
- { date: "2024-07-20", running: 480, swimming: 400 },
-]
-
-const chartConfig = {
- running: {
- label: "Running",
- color: "hsl(var(--chart-1))",
- },
- swimming: {
- label: "Swimming",
- color: "hsl(var(--chart-2))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Tooltip - Line Indicator
- Tooltip with line indicator.
-
-
-
-
- {
- return new Date(value).toLocaleDateString("en-US", {
- weekday: "short",
- })
- }}
- />
-
-
- }
- cursor={false}
- defaultIndex={1}
- />
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/charts/chart-tooltip-indicator-none.tsx b/deprecated/www/__registry__/new-york/charts/chart-tooltip-indicator-none.tsx
deleted file mode 100644
index 29c898a861..0000000000
--- a/deprecated/www/__registry__/new-york/charts/chart-tooltip-indicator-none.tsx
+++ /dev/null
@@ -1,84 +0,0 @@
-"use client"
-
-import { Bar, BarChart, XAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-
-export const description = "A stacked bar chart with a legend"
-
-const chartData = [
- { date: "2024-07-15", running: 450, swimming: 300 },
- { date: "2024-07-16", running: 380, swimming: 420 },
- { date: "2024-07-17", running: 520, swimming: 120 },
- { date: "2024-07-18", running: 140, swimming: 550 },
- { date: "2024-07-19", running: 600, swimming: 350 },
- { date: "2024-07-20", running: 480, swimming: 400 },
-]
-
-const chartConfig = {
- running: {
- label: "Running",
- color: "hsl(var(--chart-1))",
- },
- swimming: {
- label: "Swimming",
- color: "hsl(var(--chart-2))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Tooltip - No Indicator
- Tooltip with no indicator.
-
-
-
-
- {
- return new Date(value).toLocaleDateString("en-US", {
- weekday: "short",
- })
- }}
- />
-
-
- }
- cursor={false}
- defaultIndex={1}
- />
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/charts/chart-tooltip-label-custom.tsx b/deprecated/www/__registry__/new-york/charts/chart-tooltip-label-custom.tsx
deleted file mode 100644
index f632510879..0000000000
--- a/deprecated/www/__registry__/new-york/charts/chart-tooltip-label-custom.tsx
+++ /dev/null
@@ -1,91 +0,0 @@
-"use client"
-
-import { Bar, BarChart, XAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-
-export const description = "A stacked bar chart with a legend"
-
-const chartData = [
- { date: "2024-07-15", running: 450, swimming: 300 },
- { date: "2024-07-16", running: 380, swimming: 420 },
- { date: "2024-07-17", running: 520, swimming: 120 },
- { date: "2024-07-18", running: 140, swimming: 550 },
- { date: "2024-07-19", running: 600, swimming: 350 },
- { date: "2024-07-20", running: 480, swimming: 400 },
-]
-
-const chartConfig = {
- activities: {
- label: "Activities",
- },
- running: {
- label: "Running",
- color: "hsl(var(--chart-1))",
- },
- swimming: {
- label: "Swimming",
- color: "hsl(var(--chart-2))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Tooltip - Custom label
-
- Tooltip with custom label from chartConfig.
-
-
-
-
-
- {
- return new Date(value).toLocaleDateString("en-US", {
- weekday: "short",
- })
- }}
- />
-
-
-
- }
- cursor={false}
- defaultIndex={1}
- />
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/charts/chart-tooltip-label-formatter.tsx b/deprecated/www/__registry__/new-york/charts/chart-tooltip-label-formatter.tsx
deleted file mode 100644
index 220a445b0c..0000000000
--- a/deprecated/www/__registry__/new-york/charts/chart-tooltip-label-formatter.tsx
+++ /dev/null
@@ -1,94 +0,0 @@
-"use client"
-
-import { Bar, BarChart, XAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-
-export const description = "A stacked bar chart with a legend"
-
-const chartData = [
- { date: "2024-07-15", running: 450, swimming: 300 },
- { date: "2024-07-16", running: 380, swimming: 420 },
- { date: "2024-07-17", running: 520, swimming: 120 },
- { date: "2024-07-18", running: 140, swimming: 550 },
- { date: "2024-07-19", running: 600, swimming: 350 },
- { date: "2024-07-20", running: 480, swimming: 400 },
-]
-
-const chartConfig = {
- running: {
- label: "Running",
- color: "hsl(var(--chart-1))",
- },
- swimming: {
- label: "Swimming",
- color: "hsl(var(--chart-2))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Tooltip - Label Formatter
- Tooltip with label formatter.
-
-
-
-
- {
- return new Date(value).toLocaleDateString("en-US", {
- weekday: "short",
- })
- }}
- />
-
-
- {
- return new Date(value).toLocaleDateString("en-US", {
- day: "numeric",
- month: "long",
- year: "numeric",
- })
- }}
- />
- }
- cursor={false}
- defaultIndex={1}
- />
-
-
-
-
- )
-}
diff --git a/deprecated/www/__registry__/new-york/charts/chart-tooltip-label-none.tsx b/deprecated/www/__registry__/new-york/charts/chart-tooltip-label-none.tsx
deleted file mode 100644
index a655168dff..0000000000
--- a/deprecated/www/__registry__/new-york/charts/chart-tooltip-label-none.tsx
+++ /dev/null
@@ -1,84 +0,0 @@
-"use client"
-
-import { Bar, BarChart, XAxis } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-
-export const description = "A stacked bar chart with a legend"
-
-const chartData = [
- { date: "2024-07-15", running: 450, swimming: 300 },
- { date: "2024-07-16", running: 380, swimming: 420 },
- { date: "2024-07-17", running: 520, swimming: 120 },
- { date: "2024-07-18", running: 140, swimming: 550 },
- { date: "2024-07-19", running: 600, swimming: 350 },
- { date: "2024-07-20", running: 480, swimming: 400 },
-]
-
-const chartConfig = {
- running: {
- label: "Running",
- color: "hsl(var(--chart-1))",
- },
- swimming: {
- label: "Swimming",
- color: "hsl(var(--chart-2))",
- },
-} satisfies ChartConfig
-
-export default function Component() {
- return (
-
-
- Tooltip - No Label
- Tooltip with no label.
-
-
-
-
- {
- return new Date(value).toLocaleDateString("en-US", {
- weekday: "short",
- })
- }}
- />
-
-
- }
- cursor={false}
- defaultIndex={1}
- />
-
-
-
-
- )
-}
diff --git a/deprecated/www/actions/edit-in-v0.ts b/deprecated/www/actions/edit-in-v0.ts
deleted file mode 100644
index 125dacc563..0000000000
--- a/deprecated/www/actions/edit-in-v0.ts
+++ /dev/null
@@ -1,205 +0,0 @@
-"use server"
-
-import { track } from "@vercel/analytics/server"
-import { capitalCase } from "change-case"
-
-import { getRegistryItem } from "@/lib/registry"
-import { Style } from "@/registry/registry-styles"
-
-const TAILWIND_CONFIG_BLOCKS = ["dashboard-01"]
-
-export async function editInV0({
- name,
- style,
- url,
-}: {
- name: string
- style?: Style["name"]
- url: string
-}) {
- style = style ?? "new-york"
- try {
- const registryItem = await getRegistryItem(name, style)
-
- if (!registryItem) {
- return { error: "Something went wrong. Please try again later." }
- }
-
- await track("edit_in_v0", {
- name,
- title: registryItem.name,
- description: registryItem.description ?? registryItem.name,
- style,
- url,
- })
-
- // Remove v0 prefix from the name
- registryItem.name = registryItem.name.replace(/^v0-/, "")
-
- const projectName = capitalCase(name.replace(/\d+/g, ""))
- registryItem.description = registryItem.description || projectName
-
- // Replace `@/registry/new-york/` in files.
- registryItem.files = registryItem.files?.map((file) => {
- if (file.content?.includes("@/registry/new-york/ui")) {
- file.content = file.content?.replaceAll(
- "@/registry/new-york/ui",
- "@/components/ui"
- )
- }
- return file
- })
-
- if (TAILWIND_CONFIG_BLOCKS.includes(name)) {
- registryItem.files?.push({
- path: "tailwind.config.js",
- type: "registry:file",
- target: "tailwind.config.js",
- content: TAILWIND_CONFIG,
- })
- }
-
- const payload = {
- version: 2,
- payload: registryItem,
- source: {
- title: "shadcn/ui",
- url,
- },
- meta: {
- project: projectName,
- file: `${name}.tsx`,
- },
- }
-
- const response = await fetch(`${process.env.V0_URL}/chat/api/open-in-v0`, {
- method: "POST",
- body: JSON.stringify(payload),
- headers: {
- "x-v0-edit-secret": process.env.V0_EDIT_SECRET!,
- "x-vercel-protection-bypass":
- process.env.DEPLOYMENT_PROTECTION_BYPASS || "not-set",
- "Content-Type": "application/json",
- },
- })
-
- if (!response.ok) {
- if (response.status === 403) {
- throw new Error("Unauthorized")
- }
-
- console.error(response.statusText)
-
- throw new Error("Something went wrong. Please try again later.")
- }
-
- const result = await response.json()
-
- return {
- ...result,
- url: `${process.env.V0_URL}/chat/api/open-in-v0/${result.id}`,
- }
- } catch (error) {
- console.error(error)
- if (error instanceof Error) {
- return { error: error.message }
- }
- }
-}
-
-const TAILWIND_CONFIG = `const { fontFamily } = require("tailwindcss/defaultTheme")
-
-/** @type {import('tailwindcss').Config} */
-module.exports = {
- darkMode: ["class"],
- content: ["app/**/*.{ts,tsx}", "components/**/*.{ts,tsx}"],
- theme: {
- extend: {
- fontFamily: {
- sans: ["var(--font-geist-sans)", ...fontFamily.sans],
- mono: ["var(--font-geist-mono)", ...fontFamily.mono],
- },
- colors: {
- border: "hsl(var(--border))",
- input: "hsl(var(--input))",
- ring: "hsl(var(--ring))",
- background: "hsl(var(--background))",
- foreground: "hsl(var(--foreground))",
- primary: {
- DEFAULT: "hsl(var(--primary))",
- foreground: "hsl(var(--primary-foreground))",
- },
- secondary: {
- DEFAULT: "hsl(var(--secondary))",
- foreground: "hsl(var(--secondary-foreground))",
- },
- destructive: {
- DEFAULT: "hsl(var(--destructive) / )",
- foreground: "hsl(var(--destructive-foreground) / )",
- },
- muted: {
- DEFAULT: "hsl(var(--muted))",
- foreground: "hsl(var(--muted-foreground))",
- },
- accent: {
- DEFAULT: "hsl(var(--accent))",
- foreground: "hsl(var(--accent-foreground))",
- },
- popover: {
- DEFAULT: "hsl(var(--popover))",
- foreground: "hsl(var(--popover-foreground))",
- },
- card: {
- DEFAULT: "hsl(var(--card))",
- foreground: "hsl(var(--card-foreground))",
- },
- chart: {
- '1': 'hsl(var(--chart-1))',
- '2': 'hsl(var(--chart-2))',
- '3': 'hsl(var(--chart-3))',
- '4': 'hsl(var(--chart-4))',
- '5': 'hsl(var(--chart-5))'
- },
- sidebar: {
- DEFAULT: "hsl(var(--sidebar-background))",
- foreground: "hsl(var(--sidebar-foreground))",
- primary: "hsl(var(--sidebar-primary))",
- "primary-foreground": "hsl(var(--sidebar-primary-foreground))",
- accent: "hsl(var(--sidebar-accent))",
- "accent-foreground": "hsl(var(--sidebar-accent-foreground))",
- border: "hsl(var(--sidebar-border))",
- ring: "hsl(var(--sidebar-ring))",
- },
- },
- borderRadius: {
- xl: "calc(var(--radius) + 4px)",
- lg: "var(--radius)",
- md: "calc(var(--radius) - 2px)",
- sm: "calc(var(--radius) - 4px)",
- },
- keyframes: {
- "accordion-down": {
- from: { height: "0" },
- to: { height: "var(--radix-accordion-content-height)" },
- },
- "accordion-up": {
- from: { height: "var(--radix-accordion-content-height)" },
- to: { height: "0" },
- },
- "caret-blink": {
- "0%,70%,100%": { opacity: "1" },
- "20%,50%": { opacity: "0" },
- },
- },
- animation: {
- "accordion-down": "accordion-down 0.2s ease-out",
- "accordion-up": "accordion-up 0.2s ease-out",
- "caret-blink": "caret-blink 1.25s ease-out infinite",
- },
- },
- },
- plugins: [
- require("tailwindcss-animate"),
- require("@tailwindcss/container-queries"),
- ],
-}`
diff --git a/deprecated/www/app/(app)/blocks/[...categories]/page.tsx b/deprecated/www/app/(app)/blocks/[...categories]/page.tsx
deleted file mode 100644
index d02086924a..0000000000
--- a/deprecated/www/app/(app)/blocks/[...categories]/page.tsx
+++ /dev/null
@@ -1,31 +0,0 @@
-import { getAllBlockIds } from "@/lib/blocks"
-import { BlockDisplay } from "@/components/block-display"
-import { registryCategories } from "@/registry/registry-categories"
-
-export const dynamicParams = false
-
-export async function generateStaticParams() {
- return registryCategories.map((category) => ({
- categories: [category.slug],
- }))
-}
-
-export default async function BlocksPage({
- params,
-}: {
- params: { categories?: string[] }
-}) {
- const blocks = await getAllBlockIds(
- ["registry:block"],
- params.categories ?? []
- )
-
- return blocks.map((name) => (
-
-
-
- ))
-}
diff --git a/deprecated/www/app/(app)/blocks/layout.tsx b/deprecated/www/app/(app)/blocks/layout.tsx
deleted file mode 100644
index 2b52e49052..0000000000
--- a/deprecated/www/app/(app)/blocks/layout.tsx
+++ /dev/null
@@ -1,74 +0,0 @@
-import { Metadata } from "next"
-
-import { Announcement } from "@/components/announcement"
-import { BlocksNav } from "@/components/blocks-nav"
-import {
- PageActions,
- PageHeader,
- PageHeaderDescription,
- PageHeaderHeading,
-} from "@/components/page-header"
-import { Button } from "@/registry/new-york/ui/button"
-
-import "@/styles/mdx.css"
-import Link from "next/link"
-
-const title = "Building Blocks for the Web"
-const description =
- "Clean, modern building blocks. Copy and paste into your apps. Works with all React frameworks. Open Source. Free forever."
-
-export const metadata: Metadata = {
- title,
- description,
- openGraph: {
- images: [
- {
- url: `/og?title=${encodeURIComponent(
- title
- )}&description=${encodeURIComponent(description)}`,
- },
- ],
- },
- twitter: {
- card: "summary_large_image",
- images: [
- {
- url: `/og?title=${encodeURIComponent(
- title
- )}&description=${encodeURIComponent(description)}`,
- },
- ],
- },
-}
-
-export default function BlocksLayout({
- children,
-}: {
- children: React.ReactNode
-}) {
- return (
- <>
-
-
- {title}
- {description}
-
-
- Browse Blocks
-
-
- Add a block
-
-
-
-
- {children}
- >
- )
-}
diff --git a/deprecated/www/app/(app)/blocks/page.tsx b/deprecated/www/app/(app)/blocks/page.tsx
deleted file mode 100644
index 199985bf68..0000000000
--- a/deprecated/www/app/(app)/blocks/page.tsx
+++ /dev/null
@@ -1,34 +0,0 @@
-import Link from "next/link"
-
-import { BlockDisplay } from "@/components/block-display"
-import { Button } from "@/registry/new-york/ui/button"
-
-const FEATURED_BLOCKS = [
- "dashboard-01",
- "sidebar-07",
- "sidebar-03",
- "login-03",
- "login-04",
-]
-
-export default async function BlocksPage() {
- return (
-
- {FEATURED_BLOCKS.map((block) => (
-
-
-
- ))}
-
-
-
- Browse all blocks
-
-
-
-
- )
-}
diff --git a/deprecated/www/app/(app)/charts/charts.tsx b/deprecated/www/app/(app)/charts/charts.tsx
deleted file mode 100644
index 694d62b0bc..0000000000
--- a/deprecated/www/app/(app)/charts/charts.tsx
+++ /dev/null
@@ -1,76 +0,0 @@
-export { default as ChartAreaDefault } from "@/registry/new-york/charts/chart-area-default"
-export { default as ChartAreaLinear } from "@/registry/new-york/charts/chart-area-linear"
-export { default as ChartAreaStep } from "@/registry/new-york/charts/chart-area-step"
-export { default as ChartAreaLegend } from "@/registry/new-york/charts/chart-area-legend"
-export { default as ChartAreaStacked } from "@/registry/new-york/charts/chart-area-stacked"
-export { default as ChartAreaStackedExpand } from "@/registry/new-york/charts/chart-area-stacked-expand"
-export { default as ChartAreaIcons } from "@/registry/new-york/charts/chart-area-icons"
-export { default as ChartAreaGradient } from "@/registry/new-york/charts/chart-area-gradient"
-export { default as ChartAreaAxes } from "@/registry/new-york/charts/chart-area-axes"
-export { default as ChartAreaInteractive } from "@/registry/new-york/charts/chart-area-interactive"
-
-export { default as ChartBarDefault } from "@/registry/new-york/charts/chart-bar-default"
-export { default as ChartBarHorizontal } from "@/registry/new-york/charts/chart-bar-horizontal"
-export { default as ChartBarMultiple } from "@/registry/new-york/charts/chart-bar-multiple"
-export { default as ChartBarStacked } from "@/registry/new-york/charts/chart-bar-stacked"
-export { default as ChartBarLabel } from "@/registry/new-york/charts/chart-bar-label"
-export { default as ChartBarLabelCustom } from "@/registry/new-york/charts/chart-bar-label-custom"
-export { default as ChartBarMixed } from "@/registry/new-york/charts/chart-bar-mixed"
-export { default as ChartBarActive } from "@/registry/new-york/charts/chart-bar-active"
-export { default as ChartBarNegative } from "@/registry/new-york/charts/chart-bar-negative"
-export { default as ChartBarInteractive } from "@/registry/new-york/charts/chart-bar-interactive"
-
-export { default as ChartLineDefault } from "@/registry/new-york/charts/chart-line-default"
-export { default as ChartLineLinear } from "@/registry/new-york/charts/chart-line-linear"
-export { default as ChartLineStep } from "@/registry/new-york/charts/chart-line-step"
-export { default as ChartLineMultiple } from "@/registry/new-york/charts/chart-line-multiple"
-export { default as ChartLineDots } from "@/registry/new-york/charts/chart-line-dots"
-export { default as ChartLineDotsCustom } from "@/registry/new-york/charts/chart-line-dots-custom"
-export { default as ChartLineDotsColors } from "@/registry/new-york/charts/chart-line-dots-colors"
-export { default as ChartLineLabel } from "@/registry/new-york/charts/chart-line-label"
-export { default as ChartLineLabelCustom } from "@/registry/new-york/charts/chart-line-label-custom"
-export { default as ChartLineInteractive } from "@/registry/new-york/charts/chart-line-interactive"
-
-export { default as ChartPieSimple } from "@/registry/new-york/charts/chart-pie-simple"
-export { default as ChartPieSeparatorNone } from "@/registry/new-york/charts/chart-pie-separator-none"
-export { default as ChartPieLabel } from "@/registry/new-york/charts/chart-pie-label"
-export { default as ChartPieLabelCustom } from "@/registry/new-york/charts/chart-pie-label-custom"
-export { default as ChartPieLabelList } from "@/registry/new-york/charts/chart-pie-label-list"
-export { default as ChartPieLegend } from "@/registry/new-york/charts/chart-pie-legend"
-export { default as ChartPieDonut } from "@/registry/new-york/charts/chart-pie-donut"
-export { default as ChartPieDonutActive } from "@/registry/new-york/charts/chart-pie-donut-active"
-export { default as ChartPieDonutText } from "@/registry/new-york/charts/chart-pie-donut-text"
-export { default as ChartPieStacked } from "@/registry/new-york/charts/chart-pie-stacked"
-export { default as ChartPieInteractive } from "@/registry/new-york/charts/chart-pie-interactive"
-
-export { default as ChartRadarDefault } from "@/registry/new-york/charts/chart-radar-default"
-export { default as ChartRadarDots } from "@/registry/new-york/charts/chart-radar-dots"
-export { default as ChartRadarLinesOnly } from "@/registry/new-york/charts/chart-radar-lines-only"
-export { default as ChartRadarLabelCustom } from "@/registry/new-york/charts/chart-radar-label-custom"
-export { default as ChartRadarGridCustom } from "@/registry/new-york/charts/chart-radar-grid-custom"
-export { default as ChartRadarGridNone } from "@/registry/new-york/charts/chart-radar-grid-none"
-export { default as ChartRadarGridCircle } from "@/registry/new-york/charts/chart-radar-grid-circle"
-export { default as ChartRadarGridCircleNoLines } from "@/registry/new-york/charts/chart-radar-grid-circle-no-lines"
-export { default as ChartRadarGridCircleFill } from "@/registry/new-york/charts/chart-radar-grid-circle-fill"
-export { default as ChartRadarGridFill } from "@/registry/new-york/charts/chart-radar-grid-fill"
-export { default as ChartRadarMultiple } from "@/registry/new-york/charts/chart-radar-multiple"
-export { default as ChartRadarLegend } from "@/registry/new-york/charts/chart-radar-legend"
-export { default as ChartRadarIcons } from "@/registry/new-york/charts/chart-radar-icons"
-export { default as ChartRadarRadius } from "@/registry/new-york/charts/chart-radar-radius"
-
-export { default as ChartRadialSimple } from "@/registry/new-york/charts/chart-radial-simple"
-export { default as ChartRadialLabel } from "@/registry/new-york/charts/chart-radial-label"
-export { default as ChartRadialGrid } from "@/registry/new-york/charts/chart-radial-grid"
-export { default as ChartRadialText } from "@/registry/new-york/charts/chart-radial-text"
-export { default as ChartRadialShape } from "@/registry/new-york/charts/chart-radial-shape"
-export { default as ChartRadialStacked } from "@/registry/new-york/charts/chart-radial-stacked"
-
-export { default as ChartTooltipDefault } from "@/registry/new-york/charts/chart-tooltip-default"
-export { default as ChartTooltipIndicatorLine } from "@/registry/new-york/charts/chart-tooltip-indicator-line"
-export { default as ChartTooltipIndicatorNone } from "@/registry/new-york/charts/chart-tooltip-indicator-none"
-export { default as ChartTooltipLabelCustom } from "@/registry/new-york/charts/chart-tooltip-label-custom"
-export { default as ChartTooltipLabelFormatter } from "@/registry/new-york/charts/chart-tooltip-label-formatter"
-export { default as ChartTooltipLabelNone } from "@/registry/new-york/charts/chart-tooltip-label-none"
-export { default as ChartTooltipFormatter } from "@/registry/new-york/charts/chart-tooltip-formatter"
-export { default as ChartTooltipIcons } from "@/registry/new-york/charts/chart-tooltip-icons"
-export { default as ChartTooltipAdvanced } from "@/registry/new-york/charts/chart-tooltip-advanced"
diff --git a/deprecated/www/app/(app)/charts/layout.tsx b/deprecated/www/app/(app)/charts/layout.tsx
deleted file mode 100644
index 660367cde7..0000000000
--- a/deprecated/www/app/(app)/charts/layout.tsx
+++ /dev/null
@@ -1,78 +0,0 @@
-import { Metadata } from "next"
-import Link from "next/link"
-
-import { Announcement } from "@/components/announcement"
-import { ChartsNav } from "@/components/charts-nav"
-import {
- PageActions,
- PageHeader,
- PageHeaderDescription,
- PageHeaderHeading,
-} from "@/components/page-header"
-import { Button } from "@/registry/new-york/ui/button"
-
-const title = "Beautiful Charts"
-const description =
- "Built using Recharts. Copy and paste into your apps. Open Source."
-
-export const metadata: Metadata = {
- title,
- description,
- openGraph: {
- images: [
- {
- url: `/og?title=${encodeURIComponent(
- title
- )}&description=${encodeURIComponent(description)}`,
- },
- ],
- },
- twitter: {
- card: "summary_large_image",
- images: [
- {
- url: `/og?title=${encodeURIComponent(
- title
- )}&description=${encodeURIComponent(description)}`,
- },
- ],
- },
-}
-
-export default function ChartsLayout({
- children,
-}: {
- children: React.ReactNode
-}) {
- return (
- <>
-
-
- {title}
- {description}
-
-
- Browse Charts
-
-
- Documentation
-
-
-
-
-
- >
- )
-}
diff --git a/deprecated/www/app/(app)/charts/page.tsx b/deprecated/www/app/(app)/charts/page.tsx
deleted file mode 100644
index d1584b1532..0000000000
--- a/deprecated/www/app/(app)/charts/page.tsx
+++ /dev/null
@@ -1,298 +0,0 @@
-import { THEMES } from "@/lib/themes"
-import { ChartDisplay } from "@/components/chart-display"
-import { ThemesSwitcher } from "@/components/themes-selector"
-import { ThemesStyle } from "@/components/themes-styles"
-import { Separator } from "@/registry/new-york/ui/separator"
-import * as Charts from "@/app/(app)/charts/charts"
-
-export default function ChartsPage() {
- return (
-
-
-
-
-
-
Examples
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- )
-}
diff --git a/deprecated/www/app/(app)/colors/layout.tsx b/deprecated/www/app/(app)/colors/layout.tsx
deleted file mode 100644
index 76e37df4ec..0000000000
--- a/deprecated/www/app/(app)/colors/layout.tsx
+++ /dev/null
@@ -1,69 +0,0 @@
-import { Metadata } from "next"
-import Link from "next/link"
-
-import { Announcement } from "@/components/announcement"
-import {
- PageActions,
- PageHeader,
- PageHeaderDescription,
- PageHeaderHeading,
-} from "@/components/page-header"
-import { Button } from "@/registry/new-york/ui/button"
-
-const title = "Color Library"
-const description = "Tailwind CSS colors in HSL, RGB, HEX and OKLCH formats."
-
-export const metadata: Metadata = {
- title,
- description,
- openGraph: {
- images: [
- {
- url: `/og?title=${encodeURIComponent(
- title
- )}&description=${encodeURIComponent(description)}`,
- },
- ],
- },
- twitter: {
- card: "summary_large_image",
- images: [
- {
- url: `/og?title=${encodeURIComponent(
- title
- )}&description=${encodeURIComponent(description)}`,
- },
- ],
- },
-}
-
-export default function ColorsLayout({
- children,
-}: {
- children: React.ReactNode
-}) {
- return (
- <>
-
-
- {title}
- {description}
-
-
- Browse Colors
-
-
- Documentation
-
-
-
-
- >
- )
-}
diff --git a/deprecated/www/app/(app)/colors/page.tsx b/deprecated/www/app/(app)/colors/page.tsx
deleted file mode 100644
index 693a6fccaa..0000000000
--- a/deprecated/www/app/(app)/colors/page.tsx
+++ /dev/null
@@ -1,14 +0,0 @@
-import { getColors } from "@/lib/colors"
-import { ColorPalette } from "@/components/color-palette"
-
-export default function ColorsPage() {
- const colors = getColors()
-
- return (
-
- {colors.map((colorPalette) => (
-
- ))}
-
- )
-}
diff --git a/deprecated/www/app/(app)/docs/[[...slug]]/page.tsx b/deprecated/www/app/(app)/docs/[[...slug]]/page.tsx
deleted file mode 100644
index a724965a9d..0000000000
--- a/deprecated/www/app/(app)/docs/[[...slug]]/page.tsx
+++ /dev/null
@@ -1,154 +0,0 @@
-import { notFound } from "next/navigation"
-import { allDocs } from "contentlayer/generated"
-
-import "@/styles/mdx.css"
-import type { Metadata } from "next"
-import Link from "next/link"
-import { ChevronRight, ExternalLink } from "lucide-react"
-import Balancer from "react-wrap-balancer"
-
-import { getTableOfContents } from "@/lib/toc"
-import { absoluteUrl, cn } from "@/lib/utils"
-import { Mdx } from "@/components/mdx-components"
-import { OpenInV0Cta } from "@/components/open-in-v0-cta"
-import { DocsPager } from "@/components/pager"
-import { DashboardTableOfContents } from "@/components/toc"
-import { badgeVariants } from "@/registry/new-york/ui/badge"
-
-interface DocPageProps {
- params: {
- slug: string[]
- }
-}
-
-async function getDocFromParams({ params }: DocPageProps) {
- const slug = params.slug?.join("/") || ""
- const doc = allDocs.find((doc) => doc.slugAsParams === slug)
-
- if (!doc) {
- return null
- }
-
- return doc
-}
-
-export async function generateMetadata({
- params,
-}: DocPageProps): Promise {
- const doc = await getDocFromParams({ params })
-
- if (!doc) {
- return {}
- }
-
- return {
- title: doc.title,
- description: doc.description,
- openGraph: {
- title: doc.title,
- description: doc.description,
- type: "article",
- url: absoluteUrl(doc.slug),
- images: [
- {
- url: `/og?title=${encodeURIComponent(
- doc.title
- )}&description=${encodeURIComponent(doc.description)}`,
- },
- ],
- },
- twitter: {
- card: "summary_large_image",
- title: doc.title,
- description: doc.description,
- images: [
- {
- url: `/og?title=${encodeURIComponent(
- doc.title
- )}&description=${encodeURIComponent(doc.description)}`,
- },
- ],
- creator: "@shadcn",
- },
- }
-}
-
-export async function generateStaticParams(): Promise<
- DocPageProps["params"][]
-> {
- return allDocs.map((doc) => ({
- slug: doc.slugAsParams.split("/"),
- }))
-}
-
-export default async function DocPage({ params }: DocPageProps) {
- const doc = await getDocFromParams({ params })
-
- if (!doc) {
- notFound()
- }
-
- const toc = await getTableOfContents(doc.body.raw)
-
- return (
-
-
-
-
- Docs
-
-
-
{doc.title}
-
-
-
- {doc.title}
-
- {doc.description && (
-
- {doc.description}
-
- )}
-
- {doc.links ? (
-
- {doc.links?.doc && (
-
- Docs
-
-
- )}
- {doc.links?.api && (
-
- API Reference
-
-
- )}
-
- ) : null}
-
-
-
-
-
-
-
- )
-}
diff --git a/deprecated/www/app/(app)/docs/layout.tsx b/deprecated/www/app/(app)/docs/layout.tsx
deleted file mode 100644
index 148baa46ac..0000000000
--- a/deprecated/www/app/(app)/docs/layout.tsx
+++ /dev/null
@@ -1,21 +0,0 @@
-import { docsConfig } from "@/config/docs"
-import { DocsNav } from "@/components/docs-nav"
-
-export default function DocsLayout({
- children,
-}: {
- children: React.ReactNode
-}) {
- return (
-
- )
-}
diff --git a/deprecated/www/app/(app)/examples/authentication/components/user-auth-form.tsx b/deprecated/www/app/(app)/examples/authentication/components/user-auth-form.tsx
deleted file mode 100644
index 01571ae23d..0000000000
--- a/deprecated/www/app/(app)/examples/authentication/components/user-auth-form.tsx
+++ /dev/null
@@ -1,71 +0,0 @@
-"use client"
-
-import * as React from "react"
-
-import { cn } from "@/lib/utils"
-import { Icons } from "@/components/icons"
-import { Button } from "@/registry/new-york/ui/button"
-import { Input } from "@/registry/new-york/ui/input"
-import { Label } from "@/registry/new-york/ui/label"
-
-interface UserAuthFormProps extends React.HTMLAttributes {}
-
-export function UserAuthForm({ className, ...props }: UserAuthFormProps) {
- const [isLoading, setIsLoading] = React.useState(false)
-
- async function onSubmit(event: React.SyntheticEvent) {
- event.preventDefault()
- setIsLoading(true)
-
- setTimeout(() => {
- setIsLoading(false)
- }, 3000)
- }
-
- return (
-
-
-
-
-
-
-
-
- Or continue with
-
-
-
-
- {isLoading ? (
-
- ) : (
-
- )}{" "}
- GitHub
-
-
- )
-}
diff --git a/deprecated/www/app/(app)/examples/authentication/page.tsx b/deprecated/www/app/(app)/examples/authentication/page.tsx
deleted file mode 100644
index 5dfe156882..0000000000
--- a/deprecated/www/app/(app)/examples/authentication/page.tsx
+++ /dev/null
@@ -1,104 +0,0 @@
-import { Metadata } from "next"
-import Image from "next/image"
-import Link from "next/link"
-
-import { cn } from "@/lib/utils"
-import { buttonVariants } from "@/registry/new-york/ui/button"
-import { UserAuthForm } from "@/app/(app)/examples/authentication/components/user-auth-form"
-
-export const metadata: Metadata = {
- title: "Authentication",
- description: "Authentication forms built using the components.",
-}
-
-export default function AuthenticationPage() {
- return (
- <>
-
-
-
-
-
-
- Login
-
-
-
-
-
-
-
- “This library has saved me countless hours of work and
- helped me deliver stunning designs to my clients faster than
- ever before.”
-
-
-
-
-
-
-
-
-
- Create an account
-
-
- Enter your email below to create your account
-
-
-
-
- By clicking continue, you agree to our{" "}
-
- Terms of Service
- {" "}
- and{" "}
-
- Privacy Policy
-
- .
-
-
-
-
- >
- )
-}
diff --git a/deprecated/www/app/(app)/examples/cards/components/cookie-settings.tsx b/deprecated/www/app/(app)/examples/cards/components/cookie-settings.tsx
deleted file mode 100644
index e23dd8ba5c..0000000000
--- a/deprecated/www/app/(app)/examples/cards/components/cookie-settings.tsx
+++ /dev/null
@@ -1,60 +0,0 @@
-"use client"
-
-import { Button } from "@/registry/new-york/ui/button"
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import { Label } from "@/registry/new-york/ui/label"
-import { Switch } from "@/registry/new-york/ui/switch"
-
-export function DemoCookieSettings() {
- return (
-
-
- Cookie Settings
- Manage your cookie settings here.
-
-
-
-
- Strictly Necessary
-
- These cookies are essential in order to use the website and use
- its features.
-
-
-
-
-
-
- Functional Cookies
-
- These cookies allow the website to provide personalized
- functionality.
-
-
-
-
-
-
- Performance Cookies
-
- These cookies help to improve the performance of the website.
-
-
-
-
-
-
-
- Save preferences
-
-
-
- )
-}
diff --git a/deprecated/www/app/(app)/examples/cards/components/create-account.tsx b/deprecated/www/app/(app)/examples/cards/components/create-account.tsx
deleted file mode 100644
index 95c11c53fe..0000000000
--- a/deprecated/www/app/(app)/examples/cards/components/create-account.tsx
+++ /dev/null
@@ -1,60 +0,0 @@
-"use client"
-
-import { Icons } from "@/components/icons"
-import { Button } from "@/registry/new-york/ui/button"
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import { Input } from "@/registry/new-york/ui/input"
-import { Label } from "@/registry/new-york/ui/label"
-
-export function DemoCreateAccount() {
- return (
-
-
- Create an account
-
- Enter your email below to create your account
-
-
-
-
-
-
- Github
-
-
-
- Google
-
-
-
-
-
-
-
-
- Or continue with
-
-
-
-
- Email
-
-
-
- Password
-
-
-
-
- Create account
-
-
- )
-}
diff --git a/deprecated/www/app/(app)/examples/cards/components/date-picker.tsx b/deprecated/www/app/(app)/examples/cards/components/date-picker.tsx
deleted file mode 100644
index d14594d13e..0000000000
--- a/deprecated/www/app/(app)/examples/cards/components/date-picker.tsx
+++ /dev/null
@@ -1,18 +0,0 @@
-import DatePickerWithRange from "@/registry/default/examples/date-picker-with-range"
-import { Card, CardContent } from "@/registry/new-york/ui/card"
-import { Label } from "@/registry/new-york/ui/label"
-
-export function DemoDatePicker() {
- return (
-
-
-
-
- Pick a date
-
-
-
-
-
- )
-}
diff --git a/deprecated/www/app/(app)/examples/cards/components/github-card.tsx b/deprecated/www/app/(app)/examples/cards/components/github-card.tsx
deleted file mode 100644
index 9e4c039da4..0000000000
--- a/deprecated/www/app/(app)/examples/cards/components/github-card.tsx
+++ /dev/null
@@ -1,81 +0,0 @@
-import { ChevronDown, Circle, Plus, Star } from "lucide-react"
-
-import { Button } from "@/registry/new-york/ui/button"
-import {
- Card,
- CardContent,
- CardDescription,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- DropdownMenu,
- DropdownMenuCheckboxItem,
- DropdownMenuContent,
- DropdownMenuItem,
- DropdownMenuLabel,
- DropdownMenuSeparator,
- DropdownMenuTrigger,
-} from "@/registry/new-york/ui/dropdown-menu"
-import { Separator } from "@/registry/new-york/ui/separator"
-
-export function DemoGithub() {
- return (
-
-
-
- shadcn/ui
-
- Beautifully designed components that you can copy and paste into
- your apps. Accessible. Customizable. Open Source.
-
-
-
-
-
- Star
-
-
-
-
-
-
-
-
-
- Suggested Lists
-
-
- Future Ideas
-
- My Stack
- Inspiration
-
-
- Create List
-
-
-
-
-
-
-
-
-
- TypeScript
-
-
-
- 20k
-
-
Updated April 2023
-
-
-
- )
-}
diff --git a/deprecated/www/app/(app)/examples/cards/components/notifications.tsx b/deprecated/www/app/(app)/examples/cards/components/notifications.tsx
deleted file mode 100644
index 766e16584d..0000000000
--- a/deprecated/www/app/(app)/examples/cards/components/notifications.tsx
+++ /dev/null
@@ -1,51 +0,0 @@
-import { Bell, EyeOff, User } from "lucide-react"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-
-export function DemoNotifications() {
- return (
-
-
- Notifications
-
- Choose what you want to be notified about.
-
-
-
-
-
-
-
Everything
-
- Email digest, mentions & all activity.
-
-
-
-
-
-
-
Available
-
- Only mentions and comments.
-
-
-
-
-
-
-
Ignoring
-
- Turn off all notifications.
-
-
-
-
-
- )
-}
diff --git a/deprecated/www/app/(app)/examples/cards/components/payment-method.tsx b/deprecated/www/app/(app)/examples/cards/components/payment-method.tsx
deleted file mode 100644
index 0d7e2fffaa..0000000000
--- a/deprecated/www/app/(app)/examples/cards/components/payment-method.tsx
+++ /dev/null
@@ -1,137 +0,0 @@
-import { Icons } from "@/components/icons"
-import { Button } from "@/registry/new-york/ui/button"
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import { Input } from "@/registry/new-york/ui/input"
-import { Label } from "@/registry/new-york/ui/label"
-import { RadioGroup, RadioGroupItem } from "@/registry/new-york/ui/radio-group"
-import {
- Select,
- SelectContent,
- SelectItem,
- SelectTrigger,
- SelectValue,
-} from "@/registry/new-york/ui/select"
-
-export function DemoPaymentMethod() {
- return (
-
-
- Payment Method
-
- Add a new payment method to your account.
-
-
-
-
-
-
-
-
-
- Paypal
-
-
-
-
-
-
- Apple
-
-
-
-
- Name
-
-
-
- Card number
-
-
-
-
- Expires
-
-
-
-
-
- January
- February
- March
- April
- May
- June
- July
- August
- September
- October
- November
- December
-
-
-
-
- Year
-
-
-
-
-
- {Array.from({ length: 10 }, (_, i) => (
-
- {new Date().getFullYear() + i}
-
- ))}
-
-
-
-
- CVC
-
-
-
-
-
- Continue
-
-
- )
-}
diff --git a/deprecated/www/app/(app)/examples/cards/components/report-an-issue.tsx b/deprecated/www/app/(app)/examples/cards/components/report-an-issue.tsx
deleted file mode 100644
index 5358ac4eff..0000000000
--- a/deprecated/www/app/(app)/examples/cards/components/report-an-issue.tsx
+++ /dev/null
@@ -1,85 +0,0 @@
-"use client"
-
-import { Button } from "@/registry/new-york/ui/button"
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import { Input } from "@/registry/new-york/ui/input"
-import { Label } from "@/registry/new-york/ui/label"
-import {
- Select,
- SelectContent,
- SelectItem,
- SelectTrigger,
- SelectValue,
-} from "@/registry/new-york/ui/select"
-import { Textarea } from "@/registry/new-york/ui/textarea"
-
-export function DemoReportAnIssue() {
- return (
-
-
- Report an issue
-
- What area are you having problems with?
-
-
-
-
-
- Area
-
-
-
-
-
- Team
- Billing
- Account
- Deployments
- Support
-
-
-
-
- Security Level
-
-
-
-
-
- Severity 1 (Highest)
- Severity 2
- Severity 3
- Severity 4 (Lowest)
-
-
-
-
-
- Subject
-
-
-
- Description
-
-
-
-
- Cancel
- Submit
-
-
- )
-}
diff --git a/deprecated/www/app/(app)/examples/cards/components/share-document.tsx b/deprecated/www/app/(app)/examples/cards/components/share-document.tsx
deleted file mode 100644
index aea2607cc4..0000000000
--- a/deprecated/www/app/(app)/examples/cards/components/share-document.tsx
+++ /dev/null
@@ -1,120 +0,0 @@
-"use client"
-
-import {
- Avatar,
- AvatarFallback,
- AvatarImage,
-} from "@/registry/new-york/ui/avatar"
-import { Button } from "@/registry/new-york/ui/button"
-import {
- Card,
- CardContent,
- CardDescription,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import { Input } from "@/registry/new-york/ui/input"
-import {
- Select,
- SelectContent,
- SelectItem,
- SelectTrigger,
- SelectValue,
-} from "@/registry/new-york/ui/select"
-import { Separator } from "@/registry/new-york/ui/separator"
-
-export function DemoShareDocument() {
- return (
-
-
- Share this document
-
- Anyone with the link can view this document.
-
-
-
-
-
-
- Copy Link
-
-
-
-
-
People with access
-
-
-
-
-
- OM
-
-
-
- Olivia Martin
-
-
m@example.com
-
-
-
-
-
-
-
- Can edit
- Can view
-
-
-
-
-
-
-
- IN
-
-
-
- Isabella Nguyen
-
-
b@example.com
-
-
-
-
-
-
-
- Can edit
- Can view
-
-
-
-
-
-
-
- SD
-
-
-
- Sofia Davis
-
-
p@example.com
-
-
-
-
-
-
-
- Can edit
- Can view
-
-
-
-
-
-
-
- )
-}
diff --git a/deprecated/www/app/(app)/examples/cards/components/team-members.tsx b/deprecated/www/app/(app)/examples/cards/components/team-members.tsx
deleted file mode 100644
index 52e841535a..0000000000
--- a/deprecated/www/app/(app)/examples/cards/components/team-members.tsx
+++ /dev/null
@@ -1,149 +0,0 @@
-import { ChevronDown } from "lucide-react"
-
-import {
- Avatar,
- AvatarFallback,
- AvatarImage,
-} from "@/registry/new-york/ui/avatar"
-import { Button } from "@/registry/new-york/ui/button"
-import {
- Card,
- CardContent,
- CardDescription,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- Command,
- CommandEmpty,
- CommandGroup,
- CommandInput,
- CommandItem,
- CommandList,
-} from "@/registry/new-york/ui/command"
-import {
- Popover,
- PopoverContent,
- PopoverTrigger,
-} from "@/registry/new-york/ui/popover"
-
-export function DemoTeamMembers() {
- return (
-
-
- Team Members
-
- Invite your team members to collaborate.
-
-
-
-
-
-
-
- OM
-
-
-
Sofia Davis
-
m@example.com
-
-
-
-
-
- Owner
-
-
-
-
-
-
- No roles found.
-
-
- Viewer
-
- Can view and comment.
-
-
-
- Developer
-
- Can view, comment and edit.
-
-
-
- Billing
-
- Can view, comment and manage billing.
-
-
-
- Owner
-
- Admin-level access to all resources.
-
-
-
-
-
-
-
-
-
-
-
-
- JL
-
-
-
Jackson Lee
-
p@example.com
-
-
-
-
-
- Member
-
-
-
-
-
-
- No roles found.
-
-
- Viewer
-
- Can view and comment.
-
-
-
- Developer
-
- Can view, comment and edit.
-
-
-
- Billing
-
- Can view, comment and manage billing.
-
-
-
- Owner
-
- Admin-level access to all resources.
-
-
-
-
-
-
-
-
-
-
- )
-}
diff --git a/deprecated/www/app/(app)/examples/cards/page.tsx b/deprecated/www/app/(app)/examples/cards/page.tsx
deleted file mode 100644
index 2a5f91f64d..0000000000
--- a/deprecated/www/app/(app)/examples/cards/page.tsx
+++ /dev/null
@@ -1,92 +0,0 @@
-import { Metadata } from "next"
-import Image from "next/image"
-
-import { cn } from "@/lib/utils"
-
-import { DemoCookieSettings } from "./components/cookie-settings"
-import { DemoCreateAccount } from "./components/create-account"
-import { DemoDatePicker } from "./components/date-picker"
-import { DemoGithub } from "./components/github-card"
-import { DemoNotifications } from "./components/notifications"
-import { DemoPaymentMethod } from "./components/payment-method"
-import { DemoReportAnIssue } from "./components/report-an-issue"
-import { DemoShareDocument } from "./components/share-document"
-import { DemoTeamMembers } from "./components/team-members"
-
-export const metadata: Metadata = {
- title: "Cards",
- description: "Examples of cards built using the components.",
-}
-
-function DemoContainer({
- className,
- ...props
-}: React.HTMLAttributes) {
- return (
- div]:w-full",
- className
- )}
- {...props}
- />
- )
-}
-
-export default function CardsPage() {
- return (
- <>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- >
- )
-}
diff --git a/deprecated/www/app/(app)/examples/dashboard/components/date-range-picker.tsx b/deprecated/www/app/(app)/examples/dashboard/components/date-range-picker.tsx
deleted file mode 100644
index a4dd6ca2da..0000000000
--- a/deprecated/www/app/(app)/examples/dashboard/components/date-range-picker.tsx
+++ /dev/null
@@ -1,65 +0,0 @@
-"use client"
-
-import * as React from "react"
-import { addDays, format } from "date-fns"
-import { CalendarIcon } from "lucide-react"
-import { DateRange } from "react-day-picker"
-
-import { cn } from "@/lib/utils"
-import { Button } from "@/registry/new-york/ui/button"
-import { Calendar } from "@/registry/new-york/ui/calendar"
-import {
- Popover,
- PopoverContent,
- PopoverTrigger,
-} from "@/registry/new-york/ui/popover"
-
-export function CalendarDateRangePicker({
- className,
-}: React.HTMLAttributes
) {
- const [date, setDate] = React.useState({
- from: new Date(2023, 0, 20),
- to: addDays(new Date(2023, 0, 20), 20),
- })
-
- return (
-
-
-
-
-
- {date?.from ? (
- date.to ? (
- <>
- {format(date.from, "LLL dd, y")} -{" "}
- {format(date.to, "LLL dd, y")}
- >
- ) : (
- format(date.from, "LLL dd, y")
- )
- ) : (
- Pick a date
- )}
-
-
-
-
-
-
-
- )
-}
diff --git a/deprecated/www/app/(app)/examples/dashboard/components/main-nav.tsx b/deprecated/www/app/(app)/examples/dashboard/components/main-nav.tsx
deleted file mode 100644
index 6b49ac7745..0000000000
--- a/deprecated/www/app/(app)/examples/dashboard/components/main-nav.tsx
+++ /dev/null
@@ -1,40 +0,0 @@
-import Link from "next/link"
-
-import { cn } from "@/lib/utils"
-
-export function MainNav({
- className,
- ...props
-}: React.HTMLAttributes) {
- return (
-
-
- Overview
-
-
- Customers
-
-
- Products
-
-
- Settings
-
-
- )
-}
diff --git a/deprecated/www/app/(app)/examples/dashboard/components/overview.tsx b/deprecated/www/app/(app)/examples/dashboard/components/overview.tsx
deleted file mode 100644
index 80b085f0c6..0000000000
--- a/deprecated/www/app/(app)/examples/dashboard/components/overview.tsx
+++ /dev/null
@@ -1,83 +0,0 @@
-"use client"
-
-import { Bar, BarChart, ResponsiveContainer, XAxis, YAxis } from "recharts"
-
-const data = [
- {
- name: "Jan",
- total: Math.floor(Math.random() * 5000) + 1000,
- },
- {
- name: "Feb",
- total: Math.floor(Math.random() * 5000) + 1000,
- },
- {
- name: "Mar",
- total: Math.floor(Math.random() * 5000) + 1000,
- },
- {
- name: "Apr",
- total: Math.floor(Math.random() * 5000) + 1000,
- },
- {
- name: "May",
- total: Math.floor(Math.random() * 5000) + 1000,
- },
- {
- name: "Jun",
- total: Math.floor(Math.random() * 5000) + 1000,
- },
- {
- name: "Jul",
- total: Math.floor(Math.random() * 5000) + 1000,
- },
- {
- name: "Aug",
- total: Math.floor(Math.random() * 5000) + 1000,
- },
- {
- name: "Sep",
- total: Math.floor(Math.random() * 5000) + 1000,
- },
- {
- name: "Oct",
- total: Math.floor(Math.random() * 5000) + 1000,
- },
- {
- name: "Nov",
- total: Math.floor(Math.random() * 5000) + 1000,
- },
- {
- name: "Dec",
- total: Math.floor(Math.random() * 5000) + 1000,
- },
-]
-
-export function Overview() {
- return (
-
-
-
- `$${value}`}
- />
-
-
-
- )
-}
diff --git a/deprecated/www/app/(app)/examples/dashboard/components/recent-sales.tsx b/deprecated/www/app/(app)/examples/dashboard/components/recent-sales.tsx
deleted file mode 100644
index 0052b1535f..0000000000
--- a/deprecated/www/app/(app)/examples/dashboard/components/recent-sales.tsx
+++ /dev/null
@@ -1,71 +0,0 @@
-import {
- Avatar,
- AvatarFallback,
- AvatarImage,
-} from "@/registry/new-york/ui/avatar"
-
-export function RecentSales() {
- return (
-
-
-
-
- OM
-
-
-
Olivia Martin
-
- olivia.martin@email.com
-
-
-
+$1,999.00
-
-
-
-
- JL
-
-
-
Jackson Lee
-
jackson.lee@email.com
-
-
+$39.00
-
-
-
-
- IN
-
-
-
Isabella Nguyen
-
- isabella.nguyen@email.com
-
-
-
+$299.00
-
-
-
-
- WK
-
-
-
William Kim
-
will@email.com
-
-
+$99.00
-
-
-
-
- SD
-
-
-
Sofia Davis
-
sofia.davis@email.com
-
-
+$39.00
-
-
- )
-}
diff --git a/deprecated/www/app/(app)/examples/dashboard/components/search.tsx b/deprecated/www/app/(app)/examples/dashboard/components/search.tsx
deleted file mode 100644
index 3f9a41534b..0000000000
--- a/deprecated/www/app/(app)/examples/dashboard/components/search.tsx
+++ /dev/null
@@ -1,13 +0,0 @@
-import { Input } from "@/registry/new-york/ui/input"
-
-export function Search() {
- return (
-
-
-
- )
-}
diff --git a/deprecated/www/app/(app)/examples/dashboard/components/team-switcher.tsx b/deprecated/www/app/(app)/examples/dashboard/components/team-switcher.tsx
deleted file mode 100644
index 8171046e7c..0000000000
--- a/deprecated/www/app/(app)/examples/dashboard/components/team-switcher.tsx
+++ /dev/null
@@ -1,210 +0,0 @@
-"use client"
-
-import * as React from "react"
-import { Check, ChevronsUpDown, PlusCircle } from "lucide-react"
-
-import { cn } from "@/lib/utils"
-import {
- Avatar,
- AvatarFallback,
- AvatarImage,
-} from "@/registry/new-york/ui/avatar"
-import { Button } from "@/registry/new-york/ui/button"
-import {
- Command,
- CommandEmpty,
- CommandGroup,
- CommandInput,
- CommandItem,
- CommandList,
- CommandSeparator,
-} from "@/registry/new-york/ui/command"
-import {
- Dialog,
- DialogContent,
- DialogDescription,
- DialogFooter,
- DialogHeader,
- DialogTitle,
- DialogTrigger,
-} from "@/registry/new-york/ui/dialog"
-import { Input } from "@/registry/new-york/ui/input"
-import { Label } from "@/registry/new-york/ui/label"
-import {
- Popover,
- PopoverContent,
- PopoverTrigger,
-} from "@/registry/new-york/ui/popover"
-import {
- Select,
- SelectContent,
- SelectItem,
- SelectTrigger,
- SelectValue,
-} from "@/registry/new-york/ui/select"
-
-const groups = [
- {
- label: "Personal Account",
- teams: [
- {
- label: "Alicia Koch",
- value: "personal",
- },
- ],
- },
- {
- label: "Teams",
- teams: [
- {
- label: "Acme Inc.",
- value: "acme-inc",
- },
- {
- label: "Monsters Inc.",
- value: "monsters",
- },
- ],
- },
-]
-
-type Team = (typeof groups)[number]["teams"][number]
-
-type PopoverTriggerProps = React.ComponentPropsWithoutRef
-
-interface TeamSwitcherProps extends PopoverTriggerProps {}
-
-export default function TeamSwitcher({ className }: TeamSwitcherProps) {
- const [open, setOpen] = React.useState(false)
- const [showNewTeamDialog, setShowNewTeamDialog] = React.useState(false)
- const [selectedTeam, setSelectedTeam] = React.useState(
- groups[0].teams[0]
- )
-
- return (
-
-
-
-
-
-
- SC
-
- {selectedTeam.label}
-
-
-
-
-
-
-
- No team found.
- {groups.map((group) => (
-
- {group.teams.map((team) => (
- {
- setSelectedTeam(team)
- setOpen(false)
- }}
- className="text-sm"
- >
-
-
- SC
-
- {team.label}
-
-
- ))}
-
- ))}
-
-
-
-
-
- {
- setOpen(false)
- setShowNewTeamDialog(true)
- }}
- >
-
- Create Team
-
-
-
-
-
-
-
-
-
- Create team
-
- Add a new team to manage products and customers.
-
-
-
-
-
- Team name
-
-
-
- Subscription plan
-
-
-
-
-
-
- Free -{" "}
-
- Trial for two weeks
-
-
-
- Pro -{" "}
-
- $9/month per user
-
-
-
-
-
-
-
-
- setShowNewTeamDialog(false)}>
- Cancel
-
- Continue
-
-
-
- )
-}
diff --git a/deprecated/www/app/(app)/examples/dashboard/components/user-nav.tsx b/deprecated/www/app/(app)/examples/dashboard/components/user-nav.tsx
deleted file mode 100644
index e7a65d7f13..0000000000
--- a/deprecated/www/app/(app)/examples/dashboard/components/user-nav.tsx
+++ /dev/null
@@ -1,62 +0,0 @@
-import {
- Avatar,
- AvatarFallback,
- AvatarImage,
-} from "@/registry/new-york/ui/avatar"
-import { Button } from "@/registry/new-york/ui/button"
-import {
- DropdownMenu,
- DropdownMenuContent,
- DropdownMenuGroup,
- DropdownMenuItem,
- DropdownMenuLabel,
- DropdownMenuSeparator,
- DropdownMenuShortcut,
- DropdownMenuTrigger,
-} from "@/registry/new-york/ui/dropdown-menu"
-
-export function UserNav() {
- return (
-
-
-
-
-
- SC
-
-
-
-
-
-
-
shadcn
-
- m@example.com
-
-
-
-
-
-
- Profile
- ⇧⌘P
-
-
- Billing
- ⌘B
-
-
- Settings
- ⌘S
-
- New Team
-
-
-
- Log out
- ⇧⌘Q
-
-
-
- )
-}
diff --git a/deprecated/www/app/(app)/examples/dashboard/page.tsx b/deprecated/www/app/(app)/examples/dashboard/page.tsx
deleted file mode 100644
index 4bc9e301b6..0000000000
--- a/deprecated/www/app/(app)/examples/dashboard/page.tsx
+++ /dev/null
@@ -1,213 +0,0 @@
-import { Metadata } from "next"
-import Image from "next/image"
-
-import { Button } from "@/registry/new-york/ui/button"
-import {
- Card,
- CardContent,
- CardDescription,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- Tabs,
- TabsContent,
- TabsList,
- TabsTrigger,
-} from "@/registry/new-york/ui/tabs"
-import { CalendarDateRangePicker } from "@/app/(app)/examples/dashboard/components/date-range-picker"
-import { MainNav } from "@/app/(app)/examples/dashboard/components/main-nav"
-import { Overview } from "@/app/(app)/examples/dashboard/components/overview"
-import { RecentSales } from "@/app/(app)/examples/dashboard/components/recent-sales"
-import { Search } from "@/app/(app)/examples/dashboard/components/search"
-import TeamSwitcher from "@/app/(app)/examples/dashboard/components/team-switcher"
-import { UserNav } from "@/app/(app)/examples/dashboard/components/user-nav"
-
-export const metadata: Metadata = {
- title: "Dashboard",
- description: "Example dashboard app built using the components.",
-}
-
-export default function DashboardPage() {
- return (
- <>
-
-
-
-
-
-
-
-
-
Dashboard
-
-
- Download
-
-
-
-
- Overview
-
- Analytics
-
-
- Reports
-
-
- Notifications
-
-
-
-
-
-
-
- Total Revenue
-
-
-
-
-
-
- $45,231.89
-
- +20.1% from last month
-
-
-
-
-
-
- Subscriptions
-
-
-
-
-
-
-
-
- +2350
-
- +180.1% from last month
-
-
-
-
-
- Sales
-
-
-
-
-
-
- +12,234
-
- +19% from last month
-
-
-
-
-
-
- Active Now
-
-
-
-
-
-
- +573
-
- +201 since last hour
-
-
-
-
-
-
-
- Overview
-
-
-
-
-
-
-
- Recent Sales
-
- You made 265 sales this month.
-
-
-
-
-
-
-
-
-
-
-
- >
- )
-}
diff --git a/deprecated/www/app/(app)/examples/forms/account/account-form.tsx b/deprecated/www/app/(app)/examples/forms/account/account-form.tsx
deleted file mode 100644
index 0eed6c44eb..0000000000
--- a/deprecated/www/app/(app)/examples/forms/account/account-form.tsx
+++ /dev/null
@@ -1,222 +0,0 @@
-"use client"
-
-import { zodResolver } from "@hookform/resolvers/zod"
-import { format } from "date-fns"
-import { CalendarIcon, Check, ChevronsUpDown } from "lucide-react"
-import { useForm } from "react-hook-form"
-import { z } from "zod"
-
-import { cn } from "@/lib/utils"
-import { toast } from "@/registry/new-york/hooks/use-toast"
-import { Button } from "@/registry/new-york/ui/button"
-import { Calendar } from "@/registry/new-york/ui/calendar"
-import {
- Command,
- CommandEmpty,
- CommandGroup,
- CommandInput,
- CommandItem,
- CommandList,
-} from "@/registry/new-york/ui/command"
-import {
- Form,
- FormControl,
- FormDescription,
- FormField,
- FormItem,
- FormLabel,
- FormMessage,
-} from "@/registry/new-york/ui/form"
-import { Input } from "@/registry/new-york/ui/input"
-import {
- Popover,
- PopoverContent,
- PopoverTrigger,
-} from "@/registry/new-york/ui/popover"
-
-const languages = [
- { label: "English", value: "en" },
- { label: "French", value: "fr" },
- { label: "German", value: "de" },
- { label: "Spanish", value: "es" },
- { label: "Portuguese", value: "pt" },
- { label: "Russian", value: "ru" },
- { label: "Japanese", value: "ja" },
- { label: "Korean", value: "ko" },
- { label: "Chinese", value: "zh" },
-] as const
-
-const accountFormSchema = z.object({
- name: z
- .string()
- .min(2, {
- message: "Name must be at least 2 characters.",
- })
- .max(30, {
- message: "Name must not be longer than 30 characters.",
- }),
- dob: z.date({
- required_error: "A date of birth is required.",
- }),
- language: z.string({
- required_error: "Please select a language.",
- }),
-})
-
-type AccountFormValues = z.infer
-
-// This can come from your database or API.
-const defaultValues: Partial = {
- // name: "Your name",
- // dob: new Date("2023-01-23"),
-}
-
-export function AccountForm() {
- const form = useForm({
- resolver: zodResolver(accountFormSchema),
- defaultValues,
- })
-
- function onSubmit(data: AccountFormValues) {
- toast({
- title: "You submitted the following values:",
- description: (
-
- {JSON.stringify(data, null, 2)}
-
- ),
- })
- }
-
- return (
-
-
- )
-}
diff --git a/deprecated/www/app/(app)/examples/forms/account/page.tsx b/deprecated/www/app/(app)/examples/forms/account/page.tsx
deleted file mode 100644
index 32061ef2e5..0000000000
--- a/deprecated/www/app/(app)/examples/forms/account/page.tsx
+++ /dev/null
@@ -1,18 +0,0 @@
-import { Separator } from "@/registry/new-york/ui/separator"
-import { AccountForm } from "@/app/(app)/examples/forms/account/account-form"
-
-export default function SettingsAccountPage() {
- return (
-
-
-
Account
-
- Update your account settings. Set your preferred language and
- timezone.
-
-
-
-
-
- )
-}
diff --git a/deprecated/www/app/(app)/examples/forms/appearance/appearance-form.tsx b/deprecated/www/app/(app)/examples/forms/appearance/appearance-form.tsx
deleted file mode 100644
index b89dbfeea4..0000000000
--- a/deprecated/www/app/(app)/examples/forms/appearance/appearance-form.tsx
+++ /dev/null
@@ -1,164 +0,0 @@
-"use client"
-
-import { zodResolver } from "@hookform/resolvers/zod"
-import { ChevronDown } from "lucide-react"
-import { useForm } from "react-hook-form"
-import { z } from "zod"
-
-import { cn } from "@/lib/utils"
-import { toast } from "@/registry/new-york/hooks/use-toast"
-import { Button, buttonVariants } from "@/registry/new-york/ui/button"
-import {
- Form,
- FormControl,
- FormDescription,
- FormField,
- FormItem,
- FormLabel,
- FormMessage,
-} from "@/registry/new-york/ui/form"
-import { RadioGroup, RadioGroupItem } from "@/registry/new-york/ui/radio-group"
-
-const appearanceFormSchema = z.object({
- theme: z.enum(["light", "dark"], {
- required_error: "Please select a theme.",
- }),
- font: z.enum(["inter", "manrope", "system"], {
- invalid_type_error: "Select a font",
- required_error: "Please select a font.",
- }),
-})
-
-type AppearanceFormValues = z.infer
-
-// This can come from your database or API.
-const defaultValues: Partial = {
- theme: "light",
-}
-
-export function AppearanceForm() {
- const form = useForm({
- resolver: zodResolver(appearanceFormSchema),
- defaultValues,
- })
-
- function onSubmit(data: AppearanceFormValues) {
- toast({
- title: "You submitted the following values:",
- description: (
-
- {JSON.stringify(data, null, 2)}
-
- ),
- })
- }
-
- return (
-
-
- )
-}
diff --git a/deprecated/www/app/(app)/examples/forms/appearance/page.tsx b/deprecated/www/app/(app)/examples/forms/appearance/page.tsx
deleted file mode 100644
index 16dc0fb96d..0000000000
--- a/deprecated/www/app/(app)/examples/forms/appearance/page.tsx
+++ /dev/null
@@ -1,18 +0,0 @@
-import { Separator } from "@/registry/new-york/ui/separator"
-import { AppearanceForm } from "@/app/(app)/examples/forms/appearance/appearance-form"
-
-export default function SettingsAppearancePage() {
- return (
-
-
-
Appearance
-
- Customize the appearance of the app. Automatically switch between day
- and night themes.
-
-
-
-
-
- )
-}
diff --git a/deprecated/www/app/(app)/examples/forms/components/sidebar-nav.tsx b/deprecated/www/app/(app)/examples/forms/components/sidebar-nav.tsx
deleted file mode 100644
index 1fce3b3231..0000000000
--- a/deprecated/www/app/(app)/examples/forms/components/sidebar-nav.tsx
+++ /dev/null
@@ -1,44 +0,0 @@
-"use client"
-
-import Link from "next/link"
-import { usePathname } from "next/navigation"
-
-import { cn } from "@/lib/utils"
-import { buttonVariants } from "@/registry/new-york/ui/button"
-
-interface SidebarNavProps extends React.HTMLAttributes {
- items: {
- href: string
- title: string
- }[]
-}
-
-export function SidebarNav({ className, items, ...props }: SidebarNavProps) {
- const pathname = usePathname()
-
- return (
-
- {items.map((item) => (
-
- {item.title}
-
- ))}
-
- )
-}
diff --git a/deprecated/www/app/(app)/examples/forms/display/display-form.tsx b/deprecated/www/app/(app)/examples/forms/display/display-form.tsx
deleted file mode 100644
index b12f0c0d93..0000000000
--- a/deprecated/www/app/(app)/examples/forms/display/display-form.tsx
+++ /dev/null
@@ -1,132 +0,0 @@
-"use client"
-
-import { zodResolver } from "@hookform/resolvers/zod"
-import { useForm } from "react-hook-form"
-import { z } from "zod"
-
-import { toast } from "@/registry/new-york/hooks/use-toast"
-import { Button } from "@/registry/new-york/ui/button"
-import { Checkbox } from "@/registry/new-york/ui/checkbox"
-import {
- Form,
- FormControl,
- FormDescription,
- FormField,
- FormItem,
- FormLabel,
- FormMessage,
-} from "@/registry/new-york/ui/form"
-
-const items = [
- {
- id: "recents",
- label: "Recents",
- },
- {
- id: "home",
- label: "Home",
- },
- {
- id: "applications",
- label: "Applications",
- },
- {
- id: "desktop",
- label: "Desktop",
- },
- {
- id: "downloads",
- label: "Downloads",
- },
- {
- id: "documents",
- label: "Documents",
- },
-] as const
-
-const displayFormSchema = z.object({
- items: z.array(z.string()).refine((value) => value.some((item) => item), {
- message: "You have to select at least one item.",
- }),
-})
-
-type DisplayFormValues = z.infer
-
-// This can come from your database or API.
-const defaultValues: Partial = {
- items: ["recents", "home"],
-}
-
-export function DisplayForm() {
- const form = useForm({
- resolver: zodResolver(displayFormSchema),
- defaultValues,
- })
-
- function onSubmit(data: DisplayFormValues) {
- toast({
- title: "You submitted the following values:",
- description: (
-
- {JSON.stringify(data, null, 2)}
-
- ),
- })
- }
-
- return (
-
-
- )
-}
diff --git a/deprecated/www/app/(app)/examples/forms/display/page.tsx b/deprecated/www/app/(app)/examples/forms/display/page.tsx
deleted file mode 100644
index 5eeb650231..0000000000
--- a/deprecated/www/app/(app)/examples/forms/display/page.tsx
+++ /dev/null
@@ -1,17 +0,0 @@
-import { Separator } from "@/registry/new-york/ui/separator"
-import { DisplayForm } from "@/app/(app)/examples/forms/display/display-form"
-
-export default function SettingsDisplayPage() {
- return (
-
-
-
Display
-
- Turn items on or off to control what's displayed in the app.
-
-
-
-
-
- )
-}
diff --git a/deprecated/www/app/(app)/examples/forms/layout.tsx b/deprecated/www/app/(app)/examples/forms/layout.tsx
deleted file mode 100644
index b9baa04aea..0000000000
--- a/deprecated/www/app/(app)/examples/forms/layout.tsx
+++ /dev/null
@@ -1,75 +0,0 @@
-import { Metadata } from "next"
-import Image from "next/image"
-
-import { Separator } from "@/registry/new-york/ui/separator"
-import { SidebarNav } from "@/app/(app)/examples/forms/components/sidebar-nav"
-
-export const metadata: Metadata = {
- title: "Forms",
- description: "Advanced form example using react-hook-form and Zod.",
-}
-
-const sidebarNavItems = [
- {
- title: "Profile",
- href: "/examples/forms",
- },
- {
- title: "Account",
- href: "/examples/forms/account",
- },
- {
- title: "Appearance",
- href: "/examples/forms/appearance",
- },
- {
- title: "Notifications",
- href: "/examples/forms/notifications",
- },
- {
- title: "Display",
- href: "/examples/forms/display",
- },
-]
-
-interface SettingsLayoutProps {
- children: React.ReactNode
-}
-
-export default function SettingsLayout({ children }: SettingsLayoutProps) {
- return (
- <>
-
-
-
-
-
-
-
Settings
-
- Manage your account settings and set e-mail preferences.
-
-
-
-
-
- >
- )
-}
diff --git a/deprecated/www/app/(app)/examples/forms/notifications/notifications-form.tsx b/deprecated/www/app/(app)/examples/forms/notifications/notifications-form.tsx
deleted file mode 100644
index 29034ee445..0000000000
--- a/deprecated/www/app/(app)/examples/forms/notifications/notifications-form.tsx
+++ /dev/null
@@ -1,222 +0,0 @@
-"use client"
-
-import Link from "next/link"
-import { zodResolver } from "@hookform/resolvers/zod"
-import { useForm } from "react-hook-form"
-import { z } from "zod"
-
-import { toast } from "@/registry/new-york/hooks/use-toast"
-import { Button } from "@/registry/new-york/ui/button"
-import { Checkbox } from "@/registry/new-york/ui/checkbox"
-import {
- Form,
- FormControl,
- FormDescription,
- FormField,
- FormItem,
- FormLabel,
- FormMessage,
-} from "@/registry/new-york/ui/form"
-import { RadioGroup, RadioGroupItem } from "@/registry/new-york/ui/radio-group"
-import { Switch } from "@/registry/new-york/ui/switch"
-
-const notificationsFormSchema = z.object({
- type: z.enum(["all", "mentions", "none"], {
- required_error: "You need to select a notification type.",
- }),
- mobile: z.boolean().default(false).optional(),
- communication_emails: z.boolean().default(false).optional(),
- social_emails: z.boolean().default(false).optional(),
- marketing_emails: z.boolean().default(false).optional(),
- security_emails: z.boolean(),
-})
-
-type NotificationsFormValues = z.infer
-
-// This can come from your database or API.
-const defaultValues: Partial = {
- communication_emails: false,
- marketing_emails: false,
- social_emails: true,
- security_emails: true,
-}
-
-export function NotificationsForm() {
- const form = useForm({
- resolver: zodResolver(notificationsFormSchema),
- defaultValues,
- })
-
- function onSubmit(data: NotificationsFormValues) {
- toast({
- title: "You submitted the following values:",
- description: (
-
- {JSON.stringify(data, null, 2)}
-
- ),
- })
- }
-
- return (
-
-
- )
-}
diff --git a/deprecated/www/app/(app)/examples/forms/notifications/page.tsx b/deprecated/www/app/(app)/examples/forms/notifications/page.tsx
deleted file mode 100644
index 0c97e908c8..0000000000
--- a/deprecated/www/app/(app)/examples/forms/notifications/page.tsx
+++ /dev/null
@@ -1,17 +0,0 @@
-import { Separator } from "@/registry/new-york/ui/separator"
-import { NotificationsForm } from "@/app/(app)/examples/forms/notifications/notifications-form"
-
-export default function SettingsNotificationsPage() {
- return (
-
-
-
Notifications
-
- Configure how you receive notifications.
-
-
-
-
-
- )
-}
diff --git a/deprecated/www/app/(app)/examples/forms/page.tsx b/deprecated/www/app/(app)/examples/forms/page.tsx
deleted file mode 100644
index 8a5a2bb636..0000000000
--- a/deprecated/www/app/(app)/examples/forms/page.tsx
+++ /dev/null
@@ -1,17 +0,0 @@
-import { Separator } from "@/registry/new-york/ui/separator"
-import { ProfileForm } from "@/app/(app)/examples/forms/profile-form"
-
-export default function SettingsProfilePage() {
- return (
-
-
-
Profile
-
- This is how others will see you on the site.
-
-
-
-
-
- )
-}
diff --git a/deprecated/www/app/(app)/examples/forms/profile-form.tsx b/deprecated/www/app/(app)/examples/forms/profile-form.tsx
deleted file mode 100644
index 0e7c04f183..0000000000
--- a/deprecated/www/app/(app)/examples/forms/profile-form.tsx
+++ /dev/null
@@ -1,191 +0,0 @@
-"use client"
-
-import Link from "next/link"
-import { zodResolver } from "@hookform/resolvers/zod"
-import { useFieldArray, useForm } from "react-hook-form"
-import { z } from "zod"
-
-import { cn } from "@/lib/utils"
-import { toast } from "@/registry/new-york/hooks/use-toast"
-import { Button } from "@/registry/new-york/ui/button"
-import {
- Form,
- FormControl,
- FormDescription,
- FormField,
- FormItem,
- FormLabel,
- FormMessage,
-} from "@/registry/new-york/ui/form"
-import { Input } from "@/registry/new-york/ui/input"
-import {
- Select,
- SelectContent,
- SelectItem,
- SelectTrigger,
- SelectValue,
-} from "@/registry/new-york/ui/select"
-import { Textarea } from "@/registry/new-york/ui/textarea"
-
-const profileFormSchema = z.object({
- username: z
- .string()
- .min(2, {
- message: "Username must be at least 2 characters.",
- })
- .max(30, {
- message: "Username must not be longer than 30 characters.",
- }),
- email: z
- .string({
- required_error: "Please select an email to display.",
- })
- .email(),
- bio: z.string().max(160).min(4),
- urls: z
- .array(
- z.object({
- value: z.string().url({ message: "Please enter a valid URL." }),
- })
- )
- .optional(),
-})
-
-type ProfileFormValues = z.infer
-
-// This can come from your database or API.
-const defaultValues: Partial = {
- bio: "I own a computer.",
- urls: [
- { value: "https://shadcn.com" },
- { value: "http://twitter.com/shadcn" },
- ],
-}
-
-export function ProfileForm() {
- const form = useForm({
- resolver: zodResolver(profileFormSchema),
- defaultValues,
- mode: "onChange",
- })
-
- const { fields, append } = useFieldArray({
- name: "urls",
- control: form.control,
- })
-
- function onSubmit(data: ProfileFormValues) {
- toast({
- title: "You submitted the following values:",
- description: (
-
- {JSON.stringify(data, null, 2)}
-
- ),
- })
- }
-
- return (
-
-
- )
-}
diff --git a/deprecated/www/app/(app)/examples/layout.tsx b/deprecated/www/app/(app)/examples/layout.tsx
deleted file mode 100644
index ef2d8c7dae..0000000000
--- a/deprecated/www/app/(app)/examples/layout.tsx
+++ /dev/null
@@ -1,81 +0,0 @@
-import { Metadata } from "next"
-import Link from "next/link"
-
-import { Announcement } from "@/components/announcement"
-import { ExamplesNav } from "@/components/examples-nav"
-import {
- PageActions,
- PageHeader,
- PageHeaderDescription,
- PageHeaderHeading,
-} from "@/components/page-header"
-import { Button } from "@/registry/new-york/ui/button"
-
-const title = "Examples"
-const description = "Check out some examples app built using the components."
-
-export const metadata: Metadata = {
- title,
- description,
- openGraph: {
- images: [
- {
- url: `/og?title=${encodeURIComponent(
- title
- )}&description=${encodeURIComponent(description)}`,
- },
- ],
- },
- twitter: {
- card: "summary_large_image",
- images: [
- {
- url: `/og?title=${encodeURIComponent(
- title
- )}&description=${encodeURIComponent(description)}`,
- },
- ],
- },
-}
-
-export default function ExamplesLayout({
- children,
-}: {
- children: React.ReactNode
-}) {
- return (
- <>
-
-
- Build your component library
-
- A set of beautifully-designed, accessible components and a code
- distribution platform. Works with your favorite frameworks. Open
- Source. Open Code.
-
-
-
- Get Started
-
-
- Browse Blocks
-
-
-
-
-
- >
- )
-}
diff --git a/deprecated/www/app/(app)/examples/mail/components/account-switcher.tsx b/deprecated/www/app/(app)/examples/mail/components/account-switcher.tsx
deleted file mode 100644
index c82d316b67..0000000000
--- a/deprecated/www/app/(app)/examples/mail/components/account-switcher.tsx
+++ /dev/null
@@ -1,63 +0,0 @@
-"use client"
-
-import * as React from "react"
-
-import { cn } from "@/lib/utils"
-import {
- Select,
- SelectContent,
- SelectItem,
- SelectTrigger,
- SelectValue,
-} from "@/registry/new-york/ui/select"
-
-interface AccountSwitcherProps {
- isCollapsed: boolean
- accounts: {
- label: string
- email: string
- icon: React.ReactNode
- }[]
-}
-
-export function AccountSwitcher({
- isCollapsed,
- accounts,
-}: AccountSwitcherProps) {
- const [selectedAccount, setSelectedAccount] = React.useState(
- accounts[0].email
- )
-
- return (
-
- span]:line-clamp-1 [&>span]:flex [&>span]:w-full [&>span]:items-center [&>span]:gap-1 [&>span]:truncate [&_svg]:h-4 [&_svg]:w-4 [&_svg]:shrink-0",
- isCollapsed &&
- "flex h-9 w-9 shrink-0 items-center justify-center p-0 [&>span]:w-auto [&>svg]:hidden"
- )}
- aria-label="Select account"
- >
-
- {accounts.find((account) => account.email === selectedAccount)?.icon}
-
- {
- accounts.find((account) => account.email === selectedAccount)
- ?.label
- }
-
-
-
-
- {accounts.map((account) => (
-
-
- {account.icon}
- {account.email}
-
-
- ))}
-
-
- )
-}
diff --git a/deprecated/www/app/(app)/examples/mail/components/mail-display.tsx b/deprecated/www/app/(app)/examples/mail/components/mail-display.tsx
deleted file mode 100644
index 9a6cb5f84a..0000000000
--- a/deprecated/www/app/(app)/examples/mail/components/mail-display.tsx
+++ /dev/null
@@ -1,258 +0,0 @@
-import addDays from "date-fns/addDays"
-import addHours from "date-fns/addHours"
-import format from "date-fns/format"
-import nextSaturday from "date-fns/nextSaturday"
-import {
- Archive,
- ArchiveX,
- Clock,
- Forward,
- MoreVertical,
- Reply,
- ReplyAll,
- Trash2,
-} from "lucide-react"
-
-import {
- DropdownMenuContent,
- DropdownMenuItem,
-} from "@/registry/default/ui/dropdown-menu"
-import {
- Avatar,
- AvatarFallback,
- AvatarImage,
-} from "@/registry/new-york/ui/avatar"
-import { Button } from "@/registry/new-york/ui/button"
-import { Calendar } from "@/registry/new-york/ui/calendar"
-import {
- DropdownMenu,
- DropdownMenuTrigger,
-} from "@/registry/new-york/ui/dropdown-menu"
-import { Label } from "@/registry/new-york/ui/label"
-import {
- Popover,
- PopoverContent,
- PopoverTrigger,
-} from "@/registry/new-york/ui/popover"
-import { Separator } from "@/registry/new-york/ui/separator"
-import { Switch } from "@/registry/new-york/ui/switch"
-import { Textarea } from "@/registry/new-york/ui/textarea"
-import {
- Tooltip,
- TooltipContent,
- TooltipTrigger,
-} from "@/registry/new-york/ui/tooltip"
-import { Mail } from "@/app/(app)/examples/mail/data"
-
-interface MailDisplayProps {
- mail: Mail | null
-}
-
-export function MailDisplay({ mail }: MailDisplayProps) {
- const today = new Date()
-
- return (
-
-
-
-
-
-
-
- Archive
-
-
- Archive
-
-
-
-
-
- Move to junk
-
-
- Move to junk
-
-
-
-
-
- Move to trash
-
-
- Move to trash
-
-
-
-
-
-
-
-
- Snooze
-
-
-
-
-
-
Snooze until
-
-
- Later today{" "}
-
- {format(addHours(today, 4), "E, h:m b")}
-
-
-
- Tomorrow
-
- {format(addDays(today, 1), "E, h:m b")}
-
-
-
- This weekend
-
- {format(nextSaturday(today), "E, h:m b")}
-
-
-
- Next week
-
- {format(addDays(today, 7), "E, h:m b")}
-
-
-
-
-
-
-
-
-
- Snooze
-
-
-
-
-
-
-
- Reply
-
-
- Reply
-
-
-
-
-
- Reply all
-
-
- Reply all
-
-
-
-
-
- Forward
-
-
- Forward
-
-
-
-
-
-
-
- More
-
-
-
- Mark as unread
- Star thread
- Add label
- Mute thread
-
-
-
-
- {mail ? (
-
-
-
-
-
-
- {mail.name
- .split(" ")
- .map((chunk) => chunk[0])
- .join("")}
-
-
-
-
{mail.name}
-
{mail.subject}
-
- Reply-To: {mail.email}
-
-
-
- {mail.date && (
-
- {format(new Date(mail.date), "PPpp")}
-
- )}
-
-
-
- {mail.text}
-
-
-
-
-
-
-
-
- Mute this
- thread
-
- e.preventDefault()}
- size="sm"
- className="ml-auto"
- >
- Send
-
-
-
-
-
-
- ) : (
-
- No message selected
-
- )}
-
- )
-}
diff --git a/deprecated/www/app/(app)/examples/mail/components/mail-list.tsx b/deprecated/www/app/(app)/examples/mail/components/mail-list.tsx
deleted file mode 100644
index 7797b6a46b..0000000000
--- a/deprecated/www/app/(app)/examples/mail/components/mail-list.tsx
+++ /dev/null
@@ -1,89 +0,0 @@
-import { ComponentProps } from "react"
-import formatDistanceToNow from "date-fns/formatDistanceToNow"
-
-import { cn } from "@/lib/utils"
-import { Badge } from "@/registry/new-york/ui/badge"
-import { ScrollArea } from "@/registry/new-york/ui/scroll-area"
-import { Separator } from "@/registry/new-york/ui/separator"
-import { Mail } from "@/app/(app)/examples/mail/data"
-import { useMail } from "@/app/(app)/examples/mail/use-mail"
-
-interface MailListProps {
- items: Mail[]
-}
-
-export function MailList({ items }: MailListProps) {
- const [mail, setMail] = useMail()
-
- return (
-
-
- {items.map((item) => (
-
- setMail({
- ...mail,
- selected: item.id,
- })
- }
- >
-
-
-
-
{item.name}
- {!item.read && (
-
- )}
-
-
- {formatDistanceToNow(new Date(item.date), {
- addSuffix: true,
- })}
-
-
-
{item.subject}
-
-
- {item.text.substring(0, 300)}
-
- {item.labels.length ? (
-
- {item.labels.map((label) => (
-
- {label}
-
- ))}
-
- ) : null}
-
- ))}
-
-
- )
-}
-
-function getBadgeVariantFromLabel(
- label: string
-): ComponentProps["variant"] {
- if (["work"].includes(label.toLowerCase())) {
- return "default"
- }
-
- if (["personal"].includes(label.toLowerCase())) {
- return "outline"
- }
-
- return "secondary"
-}
diff --git a/deprecated/www/app/(app)/examples/mail/components/mail.tsx b/deprecated/www/app/(app)/examples/mail/components/mail.tsx
deleted file mode 100644
index 3850c36d3d..0000000000
--- a/deprecated/www/app/(app)/examples/mail/components/mail.tsx
+++ /dev/null
@@ -1,229 +0,0 @@
-"use client"
-
-import * as React from "react"
-import {
- AlertCircle,
- Archive,
- ArchiveX,
- File,
- Inbox,
- MessagesSquare,
- Search,
- Send,
- ShoppingCart,
- Trash2,
- Users2,
-} from "lucide-react"
-
-import { cn } from "@/lib/utils"
-import { Input } from "@/registry/new-york/ui/input"
-import {
- ResizableHandle,
- ResizablePanel,
- ResizablePanelGroup,
-} from "@/registry/new-york/ui/resizable"
-import { Separator } from "@/registry/new-york/ui/separator"
-import {
- Tabs,
- TabsContent,
- TabsList,
- TabsTrigger,
-} from "@/registry/new-york/ui/tabs"
-import { TooltipProvider } from "@/registry/new-york/ui/tooltip"
-import { AccountSwitcher } from "@/app/(app)/examples/mail/components/account-switcher"
-import { MailDisplay } from "@/app/(app)/examples/mail/components/mail-display"
-import { MailList } from "@/app/(app)/examples/mail/components/mail-list"
-import { Nav } from "@/app/(app)/examples/mail/components/nav"
-import { type Mail } from "@/app/(app)/examples/mail/data"
-import { useMail } from "@/app/(app)/examples/mail/use-mail"
-
-interface MailProps {
- accounts: {
- label: string
- email: string
- icon: React.ReactNode
- }[]
- mails: Mail[]
- defaultLayout: number[] | undefined
- defaultCollapsed?: boolean
- navCollapsedSize: number
-}
-
-export function Mail({
- accounts,
- mails,
- defaultLayout = [20, 32, 48],
- defaultCollapsed = false,
- navCollapsedSize,
-}: MailProps) {
- const [isCollapsed, setIsCollapsed] = React.useState(defaultCollapsed)
- const [mail] = useMail()
-
- return (
-
- {
- document.cookie = `react-resizable-panels:layout:mail=${JSON.stringify(
- sizes
- )}`
- }}
- className="h-full max-h-[800px] items-stretch"
- >
- {
- setIsCollapsed(true)
- document.cookie = `react-resizable-panels:collapsed=${JSON.stringify(
- true
- )}`
- }}
- onResize={() => {
- setIsCollapsed(false)
- document.cookie = `react-resizable-panels:collapsed=${JSON.stringify(
- false
- )}`
- }}
- className={cn(
- isCollapsed &&
- "min-w-[50px] transition-all duration-300 ease-in-out"
- )}
- >
-
-
-
-
-
-
-
-
-
-
-
Inbox
-
-
- All mail
-
-
- Unread
-
-
-
-
-
-
-
-
-
- !item.read)} />
-
-
-
-
-
- item.id === mail.selected) || null}
- />
-
-
-
- )
-}
diff --git a/deprecated/www/app/(app)/examples/mail/components/nav.tsx b/deprecated/www/app/(app)/examples/mail/components/nav.tsx
deleted file mode 100644
index b9e902819c..0000000000
--- a/deprecated/www/app/(app)/examples/mail/components/nav.tsx
+++ /dev/null
@@ -1,87 +0,0 @@
-"use client"
-
-import Link from "next/link"
-import { LucideIcon } from "lucide-react"
-
-import { cn } from "@/lib/utils"
-import { buttonVariants } from "@/registry/default/ui/button"
-import {
- Tooltip,
- TooltipContent,
- TooltipTrigger,
-} from "@/registry/new-york/ui/tooltip"
-
-interface NavProps {
- isCollapsed: boolean
- links: {
- title: string
- label?: string
- icon: LucideIcon
- variant: "default" | "ghost"
- }[]
-}
-
-export function Nav({ links, isCollapsed }: NavProps) {
- return (
-
-
- {links.map((link, index) =>
- isCollapsed ? (
-
-
-
-
- {link.title}
-
-
-
- {link.title}
- {link.label && (
-
- {link.label}
-
- )}
-
-
- ) : (
-
-
- {link.title}
- {link.label && (
-
- {link.label}
-
- )}
-
- )
- )}
-
-
- )
-}
diff --git a/deprecated/www/app/(app)/examples/mail/data.tsx b/deprecated/www/app/(app)/examples/mail/data.tsx
deleted file mode 100644
index 1c9699f252..0000000000
--- a/deprecated/www/app/(app)/examples/mail/data.tsx
+++ /dev/null
@@ -1,300 +0,0 @@
-export const mails = [
- {
- id: "6c84fb90-12c4-11e1-840d-7b25c5ee775a",
- name: "William Smith",
- email: "williamsmith@example.com",
- subject: "Meeting Tomorrow",
- text: "Hi, let's have a meeting tomorrow to discuss the project. I've been reviewing the project details and have some ideas I'd like to share. It's crucial that we align on our next steps to ensure the project's success.\n\nPlease come prepared with any questions or insights you may have. Looking forward to our meeting!\n\nBest regards, William",
- date: "2023-10-22T09:00:00",
- read: true,
- labels: ["meeting", "work", "important"],
- },
- {
- id: "110e8400-e29b-11d4-a716-446655440000",
- name: "Alice Smith",
- email: "alicesmith@example.com",
- subject: "Re: Project Update",
- text: "Thank you for the project update. It looks great! I've gone through the report, and the progress is impressive. The team has done a fantastic job, and I appreciate the hard work everyone has put in.\n\nI have a few minor suggestions that I'll include in the attached document.\n\nLet's discuss these during our next meeting. Keep up the excellent work!\n\nBest regards, Alice",
- date: "2023-10-22T10:30:00",
- read: true,
- labels: ["work", "important"],
- },
- {
- id: "3e7c3f6d-bdf5-46ae-8d90-171300f27ae2",
- name: "Bob Johnson",
- email: "bobjohnson@example.com",
- subject: "Weekend Plans",
- text: "Any plans for the weekend? I was thinking of going hiking in the nearby mountains. It's been a while since we had some outdoor fun.\n\nIf you're interested, let me know, and we can plan the details. It'll be a great way to unwind and enjoy nature.\n\nLooking forward to your response!\n\nBest, Bob",
- date: "2023-04-10T11:45:00",
- read: true,
- labels: ["personal"],
- },
- {
- id: "61c35085-72d7-42b4-8d62-738f700d4b92",
- name: "Emily Davis",
- email: "emilydavis@example.com",
- subject: "Re: Question about Budget",
- text: "I have a question about the budget for the upcoming project. It seems like there's a discrepancy in the allocation of resources.\n\nI've reviewed the budget report and identified a few areas where we might be able to optimize our spending without compromising the project's quality.\n\nI've attached a detailed analysis for your reference. Let's discuss this further in our next meeting.\n\nThanks, Emily",
- date: "2023-03-25T13:15:00",
- read: false,
- labels: ["work", "budget"],
- },
- {
- id: "8f7b5db9-d935-4e42-8e05-1f1d0a3dfb97",
- name: "Michael Wilson",
- email: "michaelwilson@example.com",
- subject: "Important Announcement",
- text: "I have an important announcement to make during our team meeting. It pertains to a strategic shift in our approach to the upcoming product launch. We've received valuable feedback from our beta testers, and I believe it's time to make some adjustments to better meet our customers' needs.\n\nThis change is crucial to our success, and I look forward to discussing it with the team. Please be prepared to share your insights during the meeting.\n\nRegards, Michael",
- date: "2023-03-10T15:00:00",
- read: false,
- labels: ["meeting", "work", "important"],
- },
- {
- id: "1f0f2c02-e299-40de-9b1d-86ef9e42126b",
- name: "Sarah Brown",
- email: "sarahbrown@example.com",
- subject: "Re: Feedback on Proposal",
- text: "Thank you for your feedback on the proposal. It looks great! I'm pleased to hear that you found it promising. The team worked diligently to address all the key points you raised, and I believe we now have a strong foundation for the project.\n\nI've attached the revised proposal for your review.\n\nPlease let me know if you have any further comments or suggestions. Looking forward to your response.\n\nBest regards, Sarah",
- date: "2023-02-15T16:30:00",
- read: true,
- labels: ["work"],
- },
- {
- id: "17c0a96d-4415-42b1-8b4f-764efab57f66",
- name: "David Lee",
- email: "davidlee@example.com",
- subject: "New Project Idea",
- text: "I have an exciting new project idea to discuss with you. It involves expanding our services to target a niche market that has shown considerable growth in recent months.\n\nI've prepared a detailed proposal outlining the potential benefits and the strategy for execution.\n\nThis project has the potential to significantly impact our business positively. Let's set up a meeting to dive into the details and determine if it aligns with our current goals.\n\nBest regards, David",
- date: "2023-01-28T17:45:00",
- read: false,
- labels: ["meeting", "work", "important"],
- },
- {
- id: "2f0130cb-39fc-44c4-bb3c-0a4337edaaab",
- name: "Olivia Wilson",
- email: "oliviawilson@example.com",
- subject: "Vacation Plans",
- text: "Let's plan our vacation for next month. What do you think? I've been thinking of visiting a tropical paradise, and I've put together some destination options.\n\nI believe it's time for us to unwind and recharge. Please take a look at the options and let me know your preferences.\n\nWe can start making arrangements to ensure a smooth and enjoyable trip.\n\nExcited to hear your thoughts! Olivia",
- date: "2022-12-20T18:30:00",
- read: true,
- labels: ["personal"],
- },
- {
- id: "de305d54-75b4-431b-adb2-eb6b9e546014",
- name: "James Martin",
- email: "jamesmartin@example.com",
- subject: "Re: Conference Registration",
- text: "I've completed the registration for the conference next month. The event promises to be a great networking opportunity, and I'm looking forward to attending the various sessions and connecting with industry experts.\n\nI've also attached the conference schedule for your reference.\n\nIf there are any specific topics or sessions you'd like me to explore, please let me know. It's an exciting event, and I'll make the most of it.\n\nBest regards, James",
- date: "2022-11-30T19:15:00",
- read: true,
- labels: ["work", "conference"],
- },
- {
- id: "7dd90c63-00f6-40f3-bd87-5060a24e8ee7",
- name: "Sophia White",
- email: "sophiawhite@example.com",
- subject: "Team Dinner",
- text: "Let's have a team dinner next week to celebrate our success. We've achieved some significant milestones, and it's time to acknowledge our hard work and dedication.\n\nI've made reservations at a lovely restaurant, and I'm sure it'll be an enjoyable evening.\n\nPlease confirm your availability and any dietary preferences. Looking forward to a fun and memorable dinner with the team!\n\nBest, Sophia",
- date: "2022-11-05T20:30:00",
- read: false,
- labels: ["meeting", "work"],
- },
- {
- id: "99a88f78-3eb4-4d87-87b7-7b15a49a0a05",
- name: "Daniel Johnson",
- email: "danieljohnson@example.com",
- subject: "Feedback Request",
- text: "I'd like your feedback on the latest project deliverables. We've made significant progress, and I value your input to ensure we're on the right track.\n\nI've attached the deliverables for your review, and I'm particularly interested in any areas where you think we can further enhance the quality or efficiency.\n\nYour feedback is invaluable, and I appreciate your time and expertise. Let's work together to make this project a success.\n\nRegards, Daniel",
- date: "2022-10-22T09:30:00",
- read: false,
- labels: ["work"],
- },
- {
- id: "f47ac10b-58cc-4372-a567-0e02b2c3d479",
- name: "Ava Taylor",
- email: "avataylor@example.com",
- subject: "Re: Meeting Agenda",
- text: "Here's the agenda for our meeting next week. I've included all the topics we need to cover, as well as time allocations for each.\n\nIf you have any additional items to discuss or any specific points to address, please let me know, and we can integrate them into the agenda.\n\nIt's essential that our meeting is productive and addresses all relevant matters.\n\nLooking forward to our meeting! Ava",
- date: "2022-10-10T10:45:00",
- read: true,
- labels: ["meeting", "work"],
- },
- {
- id: "c1a0ecb4-2540-49c5-86f8-21e5ce79e4e6",
- name: "William Anderson",
- email: "williamanderson@example.com",
- subject: "Product Launch Update",
- text: "The product launch is on track. I'll provide an update during our call. We've made substantial progress in the development and marketing of our new product.\n\nI'm excited to share the latest updates with you during our upcoming call. It's crucial that we coordinate our efforts to ensure a successful launch. Please come prepared with any questions or insights you may have.\n\nLet's make this product launch a resounding success!\n\nBest regards, William",
- date: "2022-09-20T12:00:00",
- read: false,
- labels: ["meeting", "work", "important"],
- },
- {
- id: "ba54eefd-4097-4949-99f2-2a9ae4d1a836",
- name: "Mia Harris",
- email: "miaharris@example.com",
- subject: "Re: Travel Itinerary",
- text: "I've received the travel itinerary. It looks great! Thank you for your prompt assistance in arranging the details. I've reviewed the schedule and the accommodations, and everything seems to be in order. I'm looking forward to the trip, and I'm confident it'll be a smooth and enjoyable experience.\n\nIf there are any specific activities or attractions you recommend at our destination, please feel free to share your suggestions.\n\nExcited for the trip! Mia",
- date: "2022-09-10T13:15:00",
- read: true,
- labels: ["personal", "travel"],
- },
- {
- id: "df09b6ed-28bd-4e0c-85a9-9320ec5179aa",
- name: "Ethan Clark",
- email: "ethanclark@example.com",
- subject: "Team Building Event",
- text: "Let's plan a team-building event for our department. Team cohesion and morale are vital to our success, and I believe a well-organized team-building event can be incredibly beneficial. I've done some research and have a few ideas for fun and engaging activities.\n\nPlease let me know your thoughts and availability. We want this event to be both enjoyable and productive.\n\nTogether, we'll strengthen our team and boost our performance.\n\nRegards, Ethan",
- date: "2022-08-25T15:30:00",
- read: false,
- labels: ["meeting", "work"],
- },
- {
- id: "d67c1842-7f8b-4b4b-9be1-1b3b1ab4611d",
- name: "Chloe Hall",
- email: "chloehall@example.com",
- subject: "Re: Budget Approval",
- text: "The budget has been approved. We can proceed with the project. I'm delighted to inform you that our budget proposal has received the green light from the finance department. This is a significant milestone, and it means we can move forward with the project as planned.\n\nI've attached the finalized budget for your reference. Let's ensure that we stay on track and deliver the project on time and within budget.\n\nIt's an exciting time for us! Chloe",
- date: "2022-08-10T16:45:00",
- read: true,
- labels: ["work", "budget"],
- },
- {
- id: "6c9a7f94-8329-4d70-95d3-51f68c186ae1",
- name: "Samuel Turner",
- email: "samuelturner@example.com",
- subject: "Weekend Hike",
- text: "Who's up for a weekend hike in the mountains? I've been craving some outdoor adventure, and a hike in the mountains sounds like the perfect escape. If you're up for the challenge, we can explore some scenic trails and enjoy the beauty of nature.\n\nI've done some research and have a few routes in mind.\n\nLet me know if you're interested, and we can plan the details.\n\nIt's sure to be a memorable experience! Samuel",
- date: "2022-07-28T17:30:00",
- read: false,
- labels: ["personal"],
- },
-]
-
-export type Mail = (typeof mails)[number]
-
-export const accounts = [
- {
- label: "Alicia Koch",
- email: "alicia@example.com",
- icon: (
-
- Vercel
-
-
- ),
- },
- {
- label: "Alicia Koch",
- email: "alicia@example.com",
- icon: (
-
- Gmail
-
-
- ),
- },
- {
- label: "Alicia Koch",
- email: "alicia@example.com",
- icon: (
-
- iCloud
-
-
- ),
- },
-]
-
-export type Account = (typeof accounts)[number]
-
-export const contacts = [
- {
- name: "Emma Johnson",
- email: "emma.johnson@example.com",
- },
- {
- name: "Liam Wilson",
- email: "liam.wilson@example.com",
- },
- {
- name: "Olivia Davis",
- email: "olivia.davis@example.com",
- },
- {
- name: "Noah Martinez",
- email: "noah.martinez@example.com",
- },
- {
- name: "Ava Taylor",
- email: "ava.taylor@example.com",
- },
- {
- name: "Lucas Brown",
- email: "lucas.brown@example.com",
- },
- {
- name: "Sophia Smith",
- email: "sophia.smith@example.com",
- },
- {
- name: "Ethan Wilson",
- email: "ethan.wilson@example.com",
- },
- {
- name: "Isabella Jackson",
- email: "isabella.jackson@example.com",
- },
- {
- name: "Mia Clark",
- email: "mia.clark@example.com",
- },
- {
- name: "Mason Lee",
- email: "mason.lee@example.com",
- },
- {
- name: "Layla Harris",
- email: "layla.harris@example.com",
- },
- {
- name: "William Anderson",
- email: "william.anderson@example.com",
- },
- {
- name: "Ella White",
- email: "ella.white@example.com",
- },
- {
- name: "James Thomas",
- email: "james.thomas@example.com",
- },
- {
- name: "Harper Lewis",
- email: "harper.lewis@example.com",
- },
- {
- name: "Benjamin Moore",
- email: "benjamin.moore@example.com",
- },
- {
- name: "Aria Hall",
- email: "aria.hall@example.com",
- },
- {
- name: "Henry Turner",
- email: "henry.turner@example.com",
- },
- {
- name: "Scarlett Adams",
- email: "scarlett.adams@example.com",
- },
-]
-
-export type Contact = (typeof contacts)[number]
diff --git a/deprecated/www/app/(app)/examples/mail/page.tsx b/deprecated/www/app/(app)/examples/mail/page.tsx
deleted file mode 100644
index d530539aa6..0000000000
--- a/deprecated/www/app/(app)/examples/mail/page.tsx
+++ /dev/null
@@ -1,43 +0,0 @@
-import { cookies } from "next/headers"
-import Image from "next/image"
-
-import { Mail } from "@/app/(app)/examples/mail/components/mail"
-import { accounts, mails } from "@/app/(app)/examples/mail/data"
-
-export default function MailPage() {
- const layout = cookies().get("react-resizable-panels:layout:mail")
- const collapsed = cookies().get("react-resizable-panels:collapsed")
-
- const defaultLayout = layout ? JSON.parse(layout.value) : undefined
- const defaultCollapsed = collapsed ? JSON.parse(collapsed.value) : undefined
-
- return (
- <>
-
-
-
-
-
-
-
- >
- )
-}
diff --git a/deprecated/www/app/(app)/examples/mail/use-mail.ts b/deprecated/www/app/(app)/examples/mail/use-mail.ts
deleted file mode 100644
index e803f8285c..0000000000
--- a/deprecated/www/app/(app)/examples/mail/use-mail.ts
+++ /dev/null
@@ -1,15 +0,0 @@
-import { atom, useAtom } from "jotai"
-
-import { Mail, mails } from "@/app/(app)/examples/mail/data"
-
-type Config = {
- selected: Mail["id"] | null
-}
-
-const configAtom = atom({
- selected: mails[0].id,
-})
-
-export function useMail() {
- return useAtom(configAtom)
-}
diff --git a/deprecated/www/app/(app)/examples/music/components/album-artwork.tsx b/deprecated/www/app/(app)/examples/music/components/album-artwork.tsx
deleted file mode 100644
index 8cdc5e2a26..0000000000
--- a/deprecated/www/app/(app)/examples/music/components/album-artwork.tsx
+++ /dev/null
@@ -1,95 +0,0 @@
-import Image from "next/image"
-import { PlusCircle } from "lucide-react"
-
-import { cn } from "@/lib/utils"
-import {
- ContextMenu,
- ContextMenuContent,
- ContextMenuItem,
- ContextMenuSeparator,
- ContextMenuSub,
- ContextMenuSubContent,
- ContextMenuSubTrigger,
- ContextMenuTrigger,
-} from "@/registry/new-york/ui/context-menu"
-
-import { Album } from "../data/albums"
-import { playlists } from "../data/playlists"
-
-interface AlbumArtworkProps extends React.HTMLAttributes {
- album: Album
- aspectRatio?: "portrait" | "square"
- width?: number
- height?: number
-}
-
-export function AlbumArtwork({
- album,
- aspectRatio = "portrait",
- width,
- height,
- className,
- ...props
-}: AlbumArtworkProps) {
- return (
-
-
-
-
-
-
-
-
- Add to Library
-
- Add to Playlist
-
-
-
- New Playlist
-
-
- {playlists.map((playlist) => (
-
-
-
-
- {playlist}
-
- ))}
-
-
-
- Play Next
- Play Later
- Create Station
-
- Like
- Share
-
-
-
-
{album.name}
-
{album.artist}
-
-
- )
-}
diff --git a/deprecated/www/app/(app)/examples/music/components/menu.tsx b/deprecated/www/app/(app)/examples/music/components/menu.tsx
deleted file mode 100644
index 50c147e363..0000000000
--- a/deprecated/www/app/(app)/examples/music/components/menu.tsx
+++ /dev/null
@@ -1,200 +0,0 @@
-import {
- Menubar,
- MenubarCheckboxItem,
- MenubarContent,
- MenubarItem,
- MenubarLabel,
- MenubarMenu,
- MenubarRadioGroup,
- MenubarRadioItem,
- MenubarSeparator,
- MenubarShortcut,
- MenubarSub,
- MenubarSubContent,
- MenubarSubTrigger,
- MenubarTrigger,
-} from "@/registry/new-york/ui/menubar"
-
-export function Menu() {
- return (
-
-
- Music
-
- About Music
-
-
- Preferences... ⌘,
-
-
-
- Hide Music... ⌘H
-
-
- Hide Others... ⇧⌘H
-
-
-
- Quit Music ⌘Q
-
-
-
-
- File
-
-
- New
-
-
- Playlist ⌘N
-
-
- Playlist from Selection ⇧⌘N
-
-
- Smart Playlist... ⌥⌘N
-
- Playlist Folder
- Genius Playlist
-
-
-
- Open Stream URL... ⌘U
-
-
- Close Window ⌘W
-
-
-
- Library
-
- Update Cloud Library
- Update Genius
-
- Organize Library...
- Export Library...
-
- Import Playlist...
- Export Playlist...
- Show Duplicate Items
-
- Get Album Artwork
- Get Track Names
-
-
-
- Import... ⌘O
-
- Burn Playlist to Disc...
-
-
- Show in Finder ⇧⌘R {" "}
-
- Convert
-
- Page Setup...
-
- Print... ⌘P
-
-
-
-
- Edit
-
-
- Undo ⌘Z
-
-
- Redo ⇧⌘Z
-
-
-
- Cut ⌘X
-
-
- Copy ⌘C
-
-
- Paste ⌘V
-
-
-
- Select All ⌘A
-
-
- Deselect All ⇧⌘A
-
-
-
- Smart Dictation...{" "}
-
-
-
-
-
-
-
-
- Emoji & Symbols{" "}
-
-
-
-
-
-
-
-
-
-
- View
-
- Show Playing Next
- Show Lyrics
-
-
- Show Status Bar
-
-
- Hide Sidebar
-
- Enter Full Screen
-
-
-
-
- Account
-
- Switch Account
-
-
- Andy
- Benoit
- Luis
-
-
- Manage Family...
-
- Add Account...
-
-
-
- )
-}
diff --git a/deprecated/www/app/(app)/examples/music/components/podcast-empty-placeholder.tsx b/deprecated/www/app/(app)/examples/music/components/podcast-empty-placeholder.tsx
deleted file mode 100644
index 7c85ece23b..0000000000
--- a/deprecated/www/app/(app)/examples/music/components/podcast-empty-placeholder.tsx
+++ /dev/null
@@ -1,64 +0,0 @@
-import { Button } from "@/registry/new-york/ui/button"
-import {
- Dialog,
- DialogContent,
- DialogDescription,
- DialogFooter,
- DialogHeader,
- DialogTitle,
- DialogTrigger,
-} from "@/registry/new-york/ui/dialog"
-import { Input } from "@/registry/new-york/ui/input"
-import { Label } from "@/registry/new-york/ui/label"
-
-export function PodcastEmptyPlaceholder() {
- return (
-
-
-
-
-
-
-
-
-
No episodes added
-
- You have not added any podcasts. Add one below.
-
-
-
-
- Add Podcast
-
-
-
-
- Add Podcast
-
- Copy and paste the podcast feed URL to import.
-
-
-
-
- Import Podcast
-
-
-
-
-
- )
-}
diff --git a/deprecated/www/app/(app)/examples/music/components/sidebar.tsx b/deprecated/www/app/(app)/examples/music/components/sidebar.tsx
deleted file mode 100644
index 9d197309b4..0000000000
--- a/deprecated/www/app/(app)/examples/music/components/sidebar.tsx
+++ /dev/null
@@ -1,204 +0,0 @@
-import { cn } from "@/lib/utils"
-import { Button } from "@/registry/new-york/ui/button"
-import { ScrollArea } from "@/registry/new-york/ui/scroll-area"
-
-import { Playlist } from "../data/playlists"
-
-interface SidebarProps extends React.HTMLAttributes {
- playlists: Playlist[]
-}
-
-export function Sidebar({ className, playlists }: SidebarProps) {
- return (
-
-
-
-
- Discover
-
-
-
-
-
-
-
- Listen Now
-
-
-
-
-
-
-
-
- Browse
-
-
-
-
-
-
-
-
-
- Radio
-
-
-
-
-
- Library
-
-
-
-
-
-
-
-
-
-
- Playlists
-
-
-
-
-
-
- Songs
-
-
-
-
-
-
- Made for You
-
-
-
-
-
-
- Artists
-
-
-
-
-
-
-
-
- Albums
-
-
-
-
-
- Playlists
-
-
-
- {playlists?.map((playlist, i) => (
-
-
-
-
-
-
-
-
- {playlist}
-
- ))}
-
-
-
-
-
- )
-}
diff --git a/deprecated/www/app/(app)/examples/music/data/albums.ts b/deprecated/www/app/(app)/examples/music/data/albums.ts
deleted file mode 100644
index 07bd95b2b0..0000000000
--- a/deprecated/www/app/(app)/examples/music/data/albums.ts
+++ /dev/null
@@ -1,71 +0,0 @@
-export interface Album {
- name: string
- artist: string
- cover: string
-}
-
-export const listenNowAlbums: Album[] = [
- {
- name: "React Rendezvous",
- artist: "Ethan Byte",
- cover:
- "https://images.unsplash.com/photo-1611348586804-61bf6c080437?w=300&dpr=2&q=80",
- },
- {
- name: "Async Awakenings",
- artist: "Nina Netcode",
- cover:
- "https://images.unsplash.com/photo-1468817814611-b7edf94b5d60?w=300&dpr=2&q=80",
- },
- {
- name: "The Art of Reusability",
- artist: "Lena Logic",
- cover:
- "https://images.unsplash.com/photo-1528143358888-6d3c7f67bd5d?w=300&dpr=2&q=80",
- },
- {
- name: "Stateful Symphony",
- artist: "Beth Binary",
- cover:
- "https://images.unsplash.com/photo-1490300472339-79e4adc6be4a?w=300&dpr=2&q=80",
- },
-]
-
-export const madeForYouAlbums: Album[] = [
- {
- name: "Thinking Components",
- artist: "Lena Logic",
- cover:
- "https://images.unsplash.com/photo-1615247001958-f4bc92fa6a4a?w=300&dpr=2&q=80",
- },
- {
- name: "Functional Fury",
- artist: "Beth Binary",
- cover:
- "https://images.unsplash.com/photo-1513745405825-efaf9a49315f?w=300&dpr=2&q=80",
- },
- {
- name: "React Rendezvous",
- artist: "Ethan Byte",
- cover:
- "https://images.unsplash.com/photo-1614113489855-66422ad300a4?w=300&dpr=2&q=80",
- },
- {
- name: "Stateful Symphony",
- artist: "Beth Binary",
- cover:
- "https://images.unsplash.com/photo-1446185250204-f94591f7d702?w=300&dpr=2&q=80",
- },
- {
- name: "Async Awakenings",
- artist: "Nina Netcode",
- cover:
- "https://images.unsplash.com/photo-1468817814611-b7edf94b5d60?w=300&dpr=2&q=80",
- },
- {
- name: "The Art of Reusability",
- artist: "Lena Logic",
- cover:
- "https://images.unsplash.com/photo-1490300472339-79e4adc6be4a?w=300&dpr=2&q=80",
- },
-]
diff --git a/deprecated/www/app/(app)/examples/music/data/playlists.ts b/deprecated/www/app/(app)/examples/music/data/playlists.ts
deleted file mode 100644
index 5c0ed5f76e..0000000000
--- a/deprecated/www/app/(app)/examples/music/data/playlists.ts
+++ /dev/null
@@ -1,16 +0,0 @@
-export type Playlist = (typeof playlists)[number]
-
-export const playlists = [
- "Recently Added",
- "Recently Played",
- "Top Songs",
- "Top Albums",
- "Top Artists",
- "Logic Discography",
- "Bedtime Beats",
- "Feeling Happy",
- "I miss Y2K Pop",
- "Runtober",
- "Mellow Days",
- "Eminem Essentials",
-]
diff --git a/deprecated/www/app/(app)/examples/music/page.tsx b/deprecated/www/app/(app)/examples/music/page.tsx
deleted file mode 100644
index 5321ccc41d..0000000000
--- a/deprecated/www/app/(app)/examples/music/page.tsx
+++ /dev/null
@@ -1,157 +0,0 @@
-import { Metadata } from "next"
-import Image from "next/image"
-import { PlusCircle } from "lucide-react"
-
-import { Button } from "@/registry/new-york/ui/button"
-import { ScrollArea, ScrollBar } from "@/registry/new-york/ui/scroll-area"
-import { Separator } from "@/registry/new-york/ui/separator"
-import {
- Tabs,
- TabsContent,
- TabsList,
- TabsTrigger,
-} from "@/registry/new-york/ui/tabs"
-
-import { AlbumArtwork } from "./components/album-artwork"
-import { Menu } from "./components/menu"
-import { PodcastEmptyPlaceholder } from "./components/podcast-empty-placeholder"
-import { Sidebar } from "./components/sidebar"
-import { listenNowAlbums, madeForYouAlbums } from "./data/albums"
-import { playlists } from "./data/playlists"
-
-export const metadata: Metadata = {
- title: "Music App",
- description: "Example music app using the components.",
-}
-
-export default function MusicPage() {
- return (
- <>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Music
-
- Podcasts
-
- Live
-
-
-
-
-
-
-
-
- Listen Now
-
-
- Top picks for you. Updated daily.
-
-
-
-
-
-
-
- {listenNowAlbums.map((album) => (
-
- ))}
-
-
-
-
-
-
- Made for You
-
-
- Your personal playlists. Updated daily.
-
-
-
-
-
-
- {madeForYouAlbums.map((album) => (
-
- ))}
-
-
-
-
-
-
-
-
-
- New Episodes
-
-
- Your favorite podcasts. Updated daily.
-
-
-
-
-
-
-
-
-
-
-
-
-
- >
- )
-}
diff --git a/deprecated/www/app/(app)/examples/playground/components/code-viewer.tsx b/deprecated/www/app/(app)/examples/playground/components/code-viewer.tsx
deleted file mode 100644
index e574d12e3e..0000000000
--- a/deprecated/www/app/(app)/examples/playground/components/code-viewer.tsx
+++ /dev/null
@@ -1,89 +0,0 @@
-import { Button } from "@/registry/new-york/ui/button"
-import {
- Dialog,
- DialogContent,
- DialogDescription,
- DialogHeader,
- DialogTitle,
- DialogTrigger,
-} from "@/registry/new-york/ui/dialog"
-
-export function CodeViewer() {
- return (
-
-
- View code
-
-
-
- View code
-
- You can use the following code to start integrating your current
- prompt and settings into your application.
-
-
-
-
-
-
-
- import os
-
-
- import openai
-
-
-
- openai.api_key = os.getenv(
-
- "OPENAI_API_KEY"
-
- )
-
-
- response = openai.Completion.create(
-
- {" "}
- model=
- "davinci" ,
-
-
- {" "}
- prompt="" ,
-
-
- {" "}
- temperature=0.9 ,
-
-
- {" "}
- max_tokens=5 ,
-
-
- {" "}
- top_p=1 ,
-
-
- {" "}
- frequency_penalty=0 ,
-
-
- {" "}
- presence_penalty=0 ,
-
- )
-
-
-
-
-
- Your API Key can be found here. You should use environment
- variables or a secret management tool to expose your key to your
- applications.
-
-
-
-
-
- )
-}
diff --git a/deprecated/www/app/(app)/examples/playground/components/maxlength-selector.tsx b/deprecated/www/app/(app)/examples/playground/components/maxlength-selector.tsx
deleted file mode 100644
index a933d732fb..0000000000
--- a/deprecated/www/app/(app)/examples/playground/components/maxlength-selector.tsx
+++ /dev/null
@@ -1,55 +0,0 @@
-"use client"
-
-import * as React from "react"
-import { SliderProps } from "@radix-ui/react-slider"
-
-import {
- HoverCard,
- HoverCardContent,
- HoverCardTrigger,
-} from "@/registry/new-york/ui/hover-card"
-import { Label } from "@/registry/new-york/ui/label"
-import { Slider } from "@/registry/new-york/ui/slider"
-
-interface MaxLengthSelectorProps {
- defaultValue: SliderProps["defaultValue"]
-}
-
-export function MaxLengthSelector({ defaultValue }: MaxLengthSelectorProps) {
- const [value, setValue] = React.useState(defaultValue)
-
- return (
-
-
-
-
-
- Maximum Length
-
- {value}
-
-
-
-
-
-
- The maximum number of tokens to generate. Requests can use up to 2,048
- or 4,000 tokens, shared between prompt and completion. The exact limit
- varies by model.
-
-
-
- )
-}
diff --git a/deprecated/www/app/(app)/examples/playground/components/model-selector.tsx b/deprecated/www/app/(app)/examples/playground/components/model-selector.tsx
deleted file mode 100644
index 1269069e65..0000000000
--- a/deprecated/www/app/(app)/examples/playground/components/model-selector.tsx
+++ /dev/null
@@ -1,162 +0,0 @@
-"use client"
-
-import * as React from "react"
-import { PopoverProps } from "@radix-ui/react-popover"
-import { Check, ChevronsUpDown } from "lucide-react"
-
-import { cn } from "@/lib/utils"
-import { useMutationObserver } from "@/hooks/use-mutation-observer"
-import { Button } from "@/registry/new-york/ui/button"
-import {
- Command,
- CommandEmpty,
- CommandGroup,
- CommandInput,
- CommandItem,
- CommandList,
-} from "@/registry/new-york/ui/command"
-import {
- HoverCard,
- HoverCardContent,
- HoverCardTrigger,
-} from "@/registry/new-york/ui/hover-card"
-import { Label } from "@/registry/new-york/ui/label"
-import {
- Popover,
- PopoverContent,
- PopoverTrigger,
-} from "@/registry/new-york/ui/popover"
-
-import { Model, ModelType } from "../data/models"
-
-interface ModelSelectorProps extends PopoverProps {
- types: readonly ModelType[]
- models: Model[]
-}
-
-export function ModelSelector({ models, types, ...props }: ModelSelectorProps) {
- const [open, setOpen] = React.useState(false)
- const [selectedModel, setSelectedModel] = React.useState(models[0])
- const [peekedModel, setPeekedModel] = React.useState(models[0])
-
- return (
-
-
-
- Model
-
-
- The model which will generate the completion. Some models are suitable
- for natural language tasks, others specialize in code. Learn more.
-
-
-
-
-
- {selectedModel ? selectedModel.name : "Select a model..."}
-
-
-
-
-
-
-
-
{peekedModel.name}
-
- {peekedModel.description}
-
- {peekedModel.strengths ? (
-
-
- Strengths
-
-
- {peekedModel.strengths}
-
-
- ) : null}
-
-
-
-
-
- No Models found.
-
- {types.map((type) => (
-
- {models
- .filter((model) => model.type === type)
- .map((model) => (
- setPeekedModel(model)}
- onSelect={() => {
- setSelectedModel(model)
- setOpen(false)
- }}
- />
- ))}
-
- ))}
-
-
-
-
-
-
- )
-}
-
-interface ModelItemProps {
- model: Model
- isSelected: boolean
- onSelect: () => void
- onPeek: (model: Model) => void
-}
-
-function ModelItem({ model, isSelected, onSelect, onPeek }: ModelItemProps) {
- const ref = React.useRef(null)
-
- useMutationObserver(ref, (mutations) => {
- mutations.forEach((mutation) => {
- if (
- mutation.type === "attributes" &&
- mutation.attributeName === "aria-selected" &&
- ref.current?.getAttribute("aria-selected") === "true"
- ) {
- onPeek(model)
- }
- })
- })
-
- return (
-
- {model.name}
-
-
- )
-}
diff --git a/deprecated/www/app/(app)/examples/playground/components/preset-actions.tsx b/deprecated/www/app/(app)/examples/playground/components/preset-actions.tsx
deleted file mode 100644
index 9b57241a04..0000000000
--- a/deprecated/www/app/(app)/examples/playground/components/preset-actions.tsx
+++ /dev/null
@@ -1,122 +0,0 @@
-"use client"
-
-import * as React from "react"
-import { Dialog } from "@radix-ui/react-dialog"
-import { MoreHorizontal } from "lucide-react"
-
-import { toast } from "@/registry/new-york/hooks/use-toast"
-import {
- AlertDialog,
- AlertDialogCancel,
- AlertDialogContent,
- AlertDialogDescription,
- AlertDialogFooter,
- AlertDialogHeader,
- AlertDialogTitle,
-} from "@/registry/new-york/ui/alert-dialog"
-import { Button } from "@/registry/new-york/ui/button"
-import {
- DialogContent,
- DialogDescription,
- DialogFooter,
- DialogHeader,
- DialogTitle,
-} from "@/registry/new-york/ui/dialog"
-import {
- DropdownMenu,
- DropdownMenuContent,
- DropdownMenuItem,
- DropdownMenuSeparator,
- DropdownMenuTrigger,
-} from "@/registry/new-york/ui/dropdown-menu"
-import { Label } from "@/registry/new-york/ui/label"
-import { Switch } from "@/registry/new-york/ui/switch"
-
-export function PresetActions() {
- const [open, setIsOpen] = React.useState(false)
- const [showDeleteDialog, setShowDeleteDialog] = React.useState(false)
-
- return (
- <>
-
-
-
- Actions
-
-
-
-
- setIsOpen(true)}>
- Content filter preferences
-
-
- setShowDeleteDialog(true)}
- className="text-red-600"
- >
- Delete preset
-
-
-
-
-
-
- Content filter preferences
-
- The content filter flags text that may violate our content policy.
- It's powered by our moderation endpoint which is free to use
- to moderate your OpenAI API traffic. Learn more.
-
-
-
-
- Playground Warnings
-
-
-
-
-
- Show a warning when content is flagged
-
-
- A warning will be shown when sexual, hateful, violent or
- self-harm content is detected.
-
-
-
-
-
- setIsOpen(false)}>
- Close
-
-
-
-
-
-
-
- Are you absolutely sure?
-
- This action cannot be undone. This preset will no longer be
- accessible by you or others you've shared it with.
-
-
-
- Cancel
- {
- setShowDeleteDialog(false)
- toast({
- description: "This preset has been deleted.",
- })
- }}
- >
- Delete
-
-
-
-
- >
- )
-}
diff --git a/deprecated/www/app/(app)/examples/playground/components/preset-save.tsx b/deprecated/www/app/(app)/examples/playground/components/preset-save.tsx
deleted file mode 100644
index 4412611877..0000000000
--- a/deprecated/www/app/(app)/examples/playground/components/preset-save.tsx
+++ /dev/null
@@ -1,44 +0,0 @@
-import { Button } from "@/registry/new-york/ui/button"
-import {
- Dialog,
- DialogContent,
- DialogDescription,
- DialogFooter,
- DialogHeader,
- DialogTitle,
- DialogTrigger,
-} from "@/registry/new-york/ui/dialog"
-import { Input } from "@/registry/new-york/ui/input"
-import { Label } from "@/registry/new-york/ui/label"
-
-export function PresetSave() {
- return (
-
-
- Save
-
-
-
- Save preset
-
- This will save the current playground state as a preset which you
- can access later or share with others.
-
-
-
-
- Save
-
-
-
- )
-}
diff --git a/deprecated/www/app/(app)/examples/playground/components/preset-selector.tsx b/deprecated/www/app/(app)/examples/playground/components/preset-selector.tsx
deleted file mode 100644
index f8a99beb95..0000000000
--- a/deprecated/www/app/(app)/examples/playground/components/preset-selector.tsx
+++ /dev/null
@@ -1,85 +0,0 @@
-"use client"
-
-import * as React from "react"
-import { useRouter } from "next/navigation"
-import { PopoverProps } from "@radix-ui/react-popover"
-import { Check, ChevronsUpDown } from "lucide-react"
-
-import { cn } from "@/lib/utils"
-import { Button } from "@/registry/new-york/ui/button"
-import {
- Command,
- CommandEmpty,
- CommandGroup,
- CommandInput,
- CommandItem,
- CommandList,
-} from "@/registry/new-york/ui/command"
-import {
- Popover,
- PopoverContent,
- PopoverTrigger,
-} from "@/registry/new-york/ui/popover"
-
-import { Preset } from "../data/presets"
-
-interface PresetSelectorProps extends PopoverProps {
- presets: Preset[]
-}
-
-export function PresetSelector({ presets, ...props }: PresetSelectorProps) {
- const [open, setOpen] = React.useState(false)
- const [selectedPreset, setSelectedPreset] = React.useState()
- const router = useRouter()
-
- return (
-
-
-
- {selectedPreset ? selectedPreset.name : "Load a preset..."}
-
-
-
-
-
-
-
- No presets found.
-
- {presets.map((preset) => (
- {
- setSelectedPreset(preset)
- setOpen(false)
- }}
- >
- {preset.name}
-
-
- ))}
-
-
- router.push("/examples")}>
- More examples
-
-
-
-
-
-
- )
-}
diff --git a/deprecated/www/app/(app)/examples/playground/components/preset-share.tsx b/deprecated/www/app/(app)/examples/playground/components/preset-share.tsx
deleted file mode 100644
index 2215d63db7..0000000000
--- a/deprecated/www/app/(app)/examples/playground/components/preset-share.tsx
+++ /dev/null
@@ -1,46 +0,0 @@
-import { Copy } from "lucide-react"
-
-import { Button } from "@/registry/new-york/ui/button"
-import { Input } from "@/registry/new-york/ui/input"
-import { Label } from "@/registry/new-york/ui/label"
-import {
- Popover,
- PopoverContent,
- PopoverTrigger,
-} from "@/registry/new-york/ui/popover"
-
-export function PresetShare() {
- return (
-
-
- Share
-
-
-
-
Share preset
-
- Anyone who has this link and an OpenAI account will be able to view
- this.
-
-
-
-
-
- Link
-
-
-
-
- Copy
-
-
-
-
-
- )
-}
diff --git a/deprecated/www/app/(app)/examples/playground/components/temperature-selector.tsx b/deprecated/www/app/(app)/examples/playground/components/temperature-selector.tsx
deleted file mode 100644
index a08ebc493e..0000000000
--- a/deprecated/www/app/(app)/examples/playground/components/temperature-selector.tsx
+++ /dev/null
@@ -1,57 +0,0 @@
-"use client"
-
-import * as React from "react"
-import { SliderProps } from "@radix-ui/react-slider"
-
-import {
- HoverCard,
- HoverCardContent,
- HoverCardTrigger,
-} from "@/registry/new-york/ui/hover-card"
-import { Label } from "@/registry/new-york/ui/label"
-import { Slider } from "@/registry/new-york/ui/slider"
-
-interface TemperatureSelectorProps {
- defaultValue: SliderProps["defaultValue"]
-}
-
-export function TemperatureSelector({
- defaultValue,
-}: TemperatureSelectorProps) {
- const [value, setValue] = React.useState(defaultValue)
-
- return (
-
-
-
-
-
- Temperature
-
- {value}
-
-
-
-
-
-
- Controls randomness: lowering results in less random completions. As
- the temperature approaches zero, the model will become deterministic
- and repetitive.
-
-
-
- )
-}
diff --git a/deprecated/www/app/(app)/examples/playground/components/top-p-selector.tsx b/deprecated/www/app/(app)/examples/playground/components/top-p-selector.tsx
deleted file mode 100644
index c7d98e436d..0000000000
--- a/deprecated/www/app/(app)/examples/playground/components/top-p-selector.tsx
+++ /dev/null
@@ -1,54 +0,0 @@
-"use client"
-
-import * as React from "react"
-import { SliderProps } from "@radix-ui/react-slider"
-
-import {
- HoverCard,
- HoverCardContent,
- HoverCardTrigger,
-} from "@/registry/new-york/ui/hover-card"
-import { Label } from "@/registry/new-york/ui/label"
-import { Slider } from "@/registry/new-york/ui/slider"
-
-interface TopPSelectorProps {
- defaultValue: SliderProps["defaultValue"]
-}
-
-export function TopPSelector({ defaultValue }: TopPSelectorProps) {
- const [value, setValue] = React.useState(defaultValue)
-
- return (
-
-
-
-
-
- Top P
-
- {value}
-
-
-
-
-
-
- Control diversity via nucleus sampling: 0.5 means half of all
- likelihood-weighted options are considered.
-
-
-
- )
-}
diff --git a/deprecated/www/app/(app)/examples/playground/data/models.ts b/deprecated/www/app/(app)/examples/playground/data/models.ts
deleted file mode 100644
index 1f21d967a4..0000000000
--- a/deprecated/www/app/(app)/examples/playground/data/models.ts
+++ /dev/null
@@ -1,62 +0,0 @@
-export const types = ["GPT-3", "Codex"] as const
-
-export type ModelType = (typeof types)[number]
-
-export interface Model {
- id: string
- name: string
- description: string
- strengths?: string
- type: Type
-}
-
-export const models: Model[] = [
- {
- id: "c305f976-8e38-42b1-9fb7-d21b2e34f0da",
- name: "text-davinci-003",
- description:
- "Most capable GPT-3 model. Can do any task the other models can do, often with higher quality, longer output and better instruction-following. Also supports inserting completions within text.",
- type: "GPT-3",
- strengths:
- "Complex intent, cause and effect, creative generation, search, summarization for audience",
- },
- {
- id: "464a47c3-7ab5-44d7-b669-f9cb5a9e8465",
- name: "text-curie-001",
- description: "Very capable, but faster and lower cost than Davinci.",
- type: "GPT-3",
- strengths:
- "Language translation, complex classification, sentiment, summarization",
- },
- {
- id: "ac0797b0-7e31-43b6-a494-da7e2ab43445",
- name: "text-babbage-001",
- description: "Capable of straightforward tasks, very fast, and lower cost.",
- type: "GPT-3",
- strengths: "Moderate classification, semantic search",
- },
- {
- id: "be638fb1-973b-4471-a49c-290325085802",
- name: "text-ada-001",
- description:
- "Capable of very simple tasks, usually the fastest model in the GPT-3 series, and lowest cost.",
- type: "GPT-3",
- strengths:
- "Parsing text, simple classification, address correction, keywords",
- },
- {
- id: "b43c0ea9-5ad4-456a-ae29-26cd77b6d0fb",
- name: "code-davinci-002",
- description:
- "Most capable Codex model. Particularly good at translating natural language to code. In addition to completing code, also supports inserting completions within code.",
- type: "Codex",
- },
- {
- id: "bbd57291-4622-4a21-9eed-dd6bd786fdd1",
- name: "code-cushman-001",
- description:
- "Almost as capable as Davinci Codex, but slightly faster. This speed advantage may make it preferable for real-time applications.",
- type: "Codex",
- strengths: "Real-time application where low-latency is preferable",
- },
-]
diff --git a/deprecated/www/app/(app)/examples/playground/data/presets.ts b/deprecated/www/app/(app)/examples/playground/data/presets.ts
deleted file mode 100644
index cf115208bf..0000000000
--- a/deprecated/www/app/(app)/examples/playground/data/presets.ts
+++ /dev/null
@@ -1,47 +0,0 @@
-export interface Preset {
- id: string
- name: string
-}
-
-export const presets: Preset[] = [
- {
- id: "9cb0e66a-9937-465d-a188-2c4c4ae2401f",
- name: "Grammatical Standard English",
- },
- {
- id: "61eb0e32-2391-4cd3-adc3-66efe09bc0b7",
- name: "Summarize for a 2nd grader",
- },
- {
- id: "a4e1fa51-f4ce-4e45-892c-224030a00bdd",
- name: "Text to command",
- },
- {
- id: "cc198b13-4933-43aa-977e-dcd95fa30770",
- name: "Q&A",
- },
- {
- id: "adfa95be-a575-45fd-a9ef-ea45386c64de",
- name: "English to other languages",
- },
- {
- id: "c569a06a-0bd6-43a7-adf9-bf68c09e7a79",
- name: "Parse unstructured data",
- },
- {
- id: "15ccc0d7-f37a-4f0a-8163-a37e162877dc",
- name: "Classification",
- },
- {
- id: "4641ef41-1c0f-421d-b4b2-70fe431081f3",
- name: "Natural language to Python",
- },
- {
- id: "48d34082-72f3-4a1b-a14d-f15aca4f57a0",
- name: "Explain code",
- },
- {
- id: "dfd42fd5-0394-4810-92c6-cc907d3bfd1a",
- name: "Chat",
- },
-]
diff --git a/deprecated/www/app/(app)/examples/playground/page.tsx b/deprecated/www/app/(app)/examples/playground/page.tsx
deleted file mode 100644
index 6d046508f3..0000000000
--- a/deprecated/www/app/(app)/examples/playground/page.tsx
+++ /dev/null
@@ -1,329 +0,0 @@
-import { Metadata } from "next"
-import Image from "next/image"
-import { RotateCcw } from "lucide-react"
-
-import { Button } from "@/registry/new-york/ui/button"
-import {
- HoverCard,
- HoverCardContent,
- HoverCardTrigger,
-} from "@/registry/new-york/ui/hover-card"
-import { Label } from "@/registry/new-york/ui/label"
-import { Separator } from "@/registry/new-york/ui/separator"
-import {
- Tabs,
- TabsContent,
- TabsList,
- TabsTrigger,
-} from "@/registry/new-york/ui/tabs"
-import { Textarea } from "@/registry/new-york/ui/textarea"
-
-import { CodeViewer } from "./components/code-viewer"
-import { MaxLengthSelector } from "./components/maxlength-selector"
-import { ModelSelector } from "./components/model-selector"
-import { PresetActions } from "./components/preset-actions"
-import { PresetSave } from "./components/preset-save"
-import { PresetSelector } from "./components/preset-selector"
-import { PresetShare } from "./components/preset-share"
-import { TemperatureSelector } from "./components/temperature-selector"
-import { TopPSelector } from "./components/top-p-selector"
-import { models, types } from "./data/models"
-import { presets } from "./data/presets"
-
-export const metadata: Metadata = {
- title: "Playground",
- description: "The OpenAI Playground built using the components.",
-}
-
-export default function PlaygroundPage() {
- return (
- <>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Mode
-
-
-
- Choose the interface that best suits your task. You can
- provide: a simple prompt to complete, starting and ending
- text to insert a completion within, or some text with
- instructions to edit it.
-
-
-
-
- Complete
-
-
-
-
-
-
-
-
-
-
-
- Insert
-
-
-
-
-
-
-
-
- Edit
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Submit
-
- Show history
-
-
-
-
-
-
-
-
-
- Submit
-
- Show history
-
-
-
-
-
-
-
-
-
-
- Input
-
-
-
- Instructions
-
-
-
-
-
-
- Submit
-
- Show history
-
-
-
-
-
-
-
-
-
-
- >
- )
-}
diff --git a/deprecated/www/app/(app)/examples/tasks/components/columns.tsx b/deprecated/www/app/(app)/examples/tasks/components/columns.tsx
deleted file mode 100644
index 8525e8f1a2..0000000000
--- a/deprecated/www/app/(app)/examples/tasks/components/columns.tsx
+++ /dev/null
@@ -1,123 +0,0 @@
-"use client"
-
-import { ColumnDef } from "@tanstack/react-table"
-
-import { Badge } from "@/registry/new-york/ui/badge"
-import { Checkbox } from "@/registry/new-york/ui/checkbox"
-
-import { labels, priorities, statuses } from "../data/data"
-import { Task } from "../data/schema"
-import { DataTableColumnHeader } from "./data-table-column-header"
-import { DataTableRowActions } from "./data-table-row-actions"
-
-export const columns: ColumnDef[] = [
- {
- id: "select",
- header: ({ table }) => (
- table.toggleAllPageRowsSelected(!!value)}
- aria-label="Select all"
- className="translate-y-[2px]"
- />
- ),
- cell: ({ row }) => (
- row.toggleSelected(!!value)}
- aria-label="Select row"
- className="translate-y-[2px]"
- />
- ),
- enableSorting: false,
- enableHiding: false,
- },
- {
- accessorKey: "id",
- header: ({ column }) => (
-
- ),
- cell: ({ row }) => {row.getValue("id")}
,
- enableSorting: false,
- enableHiding: false,
- },
- {
- accessorKey: "title",
- header: ({ column }) => (
-
- ),
- cell: ({ row }) => {
- const label = labels.find((label) => label.value === row.original.label)
-
- return (
-
- {label && {label.label} }
-
- {row.getValue("title")}
-
-
- )
- },
- },
- {
- accessorKey: "status",
- header: ({ column }) => (
-
- ),
- cell: ({ row }) => {
- const status = statuses.find(
- (status) => status.value === row.getValue("status")
- )
-
- if (!status) {
- return null
- }
-
- return (
-
- {status.icon && (
-
- )}
- {status.label}
-
- )
- },
- filterFn: (row, id, value) => {
- return value.includes(row.getValue(id))
- },
- },
- {
- accessorKey: "priority",
- header: ({ column }) => (
-
- ),
- cell: ({ row }) => {
- const priority = priorities.find(
- (priority) => priority.value === row.getValue("priority")
- )
-
- if (!priority) {
- return null
- }
-
- return (
-
- {priority.icon && (
-
- )}
-
{priority.label}
-
- )
- },
- filterFn: (row, id, value) => {
- return value.includes(row.getValue(id))
- },
- },
- {
- id: "actions",
- cell: ({ row }) => ,
- },
-]
diff --git a/deprecated/www/app/(app)/examples/tasks/components/data-table-column-header.tsx b/deprecated/www/app/(app)/examples/tasks/components/data-table-column-header.tsx
deleted file mode 100644
index 389c53c4ce..0000000000
--- a/deprecated/www/app/(app)/examples/tasks/components/data-table-column-header.tsx
+++ /dev/null
@@ -1,66 +0,0 @@
-import { Column } from "@tanstack/react-table"
-import { ArrowDown, ArrowUp, ChevronsUpDown, EyeOff } from "lucide-react"
-
-import { cn } from "@/lib/utils"
-import { Button } from "@/registry/new-york/ui/button"
-import {
- DropdownMenu,
- DropdownMenuContent,
- DropdownMenuItem,
- DropdownMenuSeparator,
- DropdownMenuTrigger,
-} from "@/registry/new-york/ui/dropdown-menu"
-
-interface DataTableColumnHeaderProps
- extends React.HTMLAttributes {
- column: Column
- title: string
-}
-
-export function DataTableColumnHeader({
- column,
- title,
- className,
-}: DataTableColumnHeaderProps) {
- if (!column.getCanSort()) {
- return {title}
- }
-
- return (
-
-
-
-
- {title}
- {column.getIsSorted() === "desc" ? (
-
- ) : column.getIsSorted() === "asc" ? (
-
- ) : (
-
- )}
-
-
-
- column.toggleSorting(false)}>
-
- Asc
-
- column.toggleSorting(true)}>
-
- Desc
-
-
- column.toggleVisibility(false)}>
-
- Hide
-
-
-
-
- )
-}
diff --git a/deprecated/www/app/(app)/examples/tasks/components/data-table-faceted-filter.tsx b/deprecated/www/app/(app)/examples/tasks/components/data-table-faceted-filter.tsx
deleted file mode 100644
index d39bd53ea6..0000000000
--- a/deprecated/www/app/(app)/examples/tasks/components/data-table-faceted-filter.tsx
+++ /dev/null
@@ -1,147 +0,0 @@
-import * as React from "react"
-import { Column } from "@tanstack/react-table"
-import { Check, PlusCircle } from "lucide-react"
-
-import { cn } from "@/lib/utils"
-import { Badge } from "@/registry/new-york/ui/badge"
-import { Button } from "@/registry/new-york/ui/button"
-import {
- Command,
- CommandEmpty,
- CommandGroup,
- CommandInput,
- CommandItem,
- CommandList,
- CommandSeparator,
-} from "@/registry/new-york/ui/command"
-import {
- Popover,
- PopoverContent,
- PopoverTrigger,
-} from "@/registry/new-york/ui/popover"
-import { Separator } from "@/registry/new-york/ui/separator"
-
-interface DataTableFacetedFilterProps {
- column?: Column
- title?: string
- options: {
- label: string
- value: string
- icon?: React.ComponentType<{ className?: string }>
- }[]
-}
-
-export function DataTableFacetedFilter({
- column,
- title,
- options,
-}: DataTableFacetedFilterProps) {
- const facets = column?.getFacetedUniqueValues()
- const selectedValues = new Set(column?.getFilterValue() as string[])
-
- return (
-
-
-
-
- {title}
- {selectedValues?.size > 0 && (
- <>
-
-
- {selectedValues.size}
-
-
- {selectedValues.size > 2 ? (
-
- {selectedValues.size} selected
-
- ) : (
- options
- .filter((option) => selectedValues.has(option.value))
- .map((option) => (
-
- {option.label}
-
- ))
- )}
-
- >
- )}
-
-
-
-
-
-
- No results found.
-
- {options.map((option) => {
- const isSelected = selectedValues.has(option.value)
- return (
- {
- if (isSelected) {
- selectedValues.delete(option.value)
- } else {
- selectedValues.add(option.value)
- }
- const filterValues = Array.from(selectedValues)
- column?.setFilterValue(
- filterValues.length ? filterValues : undefined
- )
- }}
- >
-
-
-
- {option.icon && (
-
- )}
- {option.label}
- {facets?.get(option.value) && (
-
- {facets.get(option.value)}
-
- )}
-
- )
- })}
-
- {selectedValues.size > 0 && (
- <>
-
-
- column?.setFilterValue(undefined)}
- className="justify-center text-center"
- >
- Clear filters
-
-
- >
- )}
-
-
-
-
- )
-}
diff --git a/deprecated/www/app/(app)/examples/tasks/components/data-table-pagination.tsx b/deprecated/www/app/(app)/examples/tasks/components/data-table-pagination.tsx
deleted file mode 100644
index 049b2e20c0..0000000000
--- a/deprecated/www/app/(app)/examples/tasks/components/data-table-pagination.tsx
+++ /dev/null
@@ -1,97 +0,0 @@
-import { Table } from "@tanstack/react-table"
-import {
- ChevronLeft,
- ChevronRight,
- ChevronsLeft,
- ChevronsRight,
-} from "lucide-react"
-
-import { Button } from "@/registry/new-york/ui/button"
-import {
- Select,
- SelectContent,
- SelectItem,
- SelectTrigger,
- SelectValue,
-} from "@/registry/new-york/ui/select"
-
-interface DataTablePaginationProps {
- table: Table
-}
-
-export function DataTablePagination({
- table,
-}: DataTablePaginationProps) {
- return (
-
-
- {table.getFilteredSelectedRowModel().rows.length} of{" "}
- {table.getFilteredRowModel().rows.length} row(s) selected.
-
-
-
-
Rows per page
-
{
- table.setPageSize(Number(value))
- }}
- >
-
-
-
-
- {[10, 20, 30, 40, 50].map((pageSize) => (
-
- {pageSize}
-
- ))}
-
-
-
-
- Page {table.getState().pagination.pageIndex + 1} of{" "}
- {table.getPageCount()}
-
-
- table.setPageIndex(0)}
- disabled={!table.getCanPreviousPage()}
- >
- Go to first page
-
-
- table.previousPage()}
- disabled={!table.getCanPreviousPage()}
- >
- Go to previous page
-
-
- table.nextPage()}
- disabled={!table.getCanNextPage()}
- >
- Go to next page
-
-
- table.setPageIndex(table.getPageCount() - 1)}
- disabled={!table.getCanNextPage()}
- >
- Go to last page
-
-
-
-
-
- )
-}
diff --git a/deprecated/www/app/(app)/examples/tasks/components/data-table-row-actions.tsx b/deprecated/www/app/(app)/examples/tasks/components/data-table-row-actions.tsx
deleted file mode 100644
index 8546b2a38a..0000000000
--- a/deprecated/www/app/(app)/examples/tasks/components/data-table-row-actions.tsx
+++ /dev/null
@@ -1,69 +0,0 @@
-"use client"
-
-import { Row } from "@tanstack/react-table"
-import { MoreHorizontal } from "lucide-react"
-
-import { Button } from "@/registry/new-york/ui/button"
-import {
- DropdownMenu,
- DropdownMenuContent,
- DropdownMenuItem,
- DropdownMenuRadioGroup,
- DropdownMenuRadioItem,
- DropdownMenuSeparator,
- DropdownMenuShortcut,
- DropdownMenuSub,
- DropdownMenuSubContent,
- DropdownMenuSubTrigger,
- DropdownMenuTrigger,
-} from "@/registry/new-york/ui/dropdown-menu"
-
-import { labels } from "../data/data"
-import { taskSchema } from "../data/schema"
-
-interface DataTableRowActionsProps {
- row: Row
-}
-
-export function DataTableRowActions({
- row,
-}: DataTableRowActionsProps) {
- const task = taskSchema.parse(row.original)
-
- return (
-
-
-
-
- Open menu
-
-
-
- Edit
- Make a copy
- Favorite
-
-
- Labels
-
-
- {labels.map((label) => (
-
- {label.label}
-
- ))}
-
-
-
-
-
- Delete
- ⌘⌫
-
-
-
- )
-}
diff --git a/deprecated/www/app/(app)/examples/tasks/components/data-table-toolbar.tsx b/deprecated/www/app/(app)/examples/tasks/components/data-table-toolbar.tsx
deleted file mode 100644
index a3a87b11c3..0000000000
--- a/deprecated/www/app/(app)/examples/tasks/components/data-table-toolbar.tsx
+++ /dev/null
@@ -1,61 +0,0 @@
-"use client"
-
-import { Table } from "@tanstack/react-table"
-import { X } from "lucide-react"
-
-import { Button } from "@/registry/new-york/ui/button"
-import { Input } from "@/registry/new-york/ui/input"
-import { DataTableViewOptions } from "@/app/(app)/examples/tasks/components/data-table-view-options"
-
-import { priorities, statuses } from "../data/data"
-import { DataTableFacetedFilter } from "./data-table-faceted-filter"
-
-interface DataTableToolbarProps {
- table: Table
-}
-
-export function DataTableToolbar({
- table,
-}: DataTableToolbarProps) {
- const isFiltered = table.getState().columnFilters.length > 0
-
- return (
-
-
-
- table.getColumn("title")?.setFilterValue(event.target.value)
- }
- className="h-8 w-[150px] lg:w-[250px]"
- />
- {table.getColumn("status") && (
-
- )}
- {table.getColumn("priority") && (
-
- )}
- {isFiltered && (
- table.resetColumnFilters()}
- className="h-8 px-2 lg:px-3"
- >
- Reset
-
-
- )}
-
-
-
- )
-}
diff --git a/deprecated/www/app/(app)/examples/tasks/components/data-table-view-options.tsx b/deprecated/www/app/(app)/examples/tasks/components/data-table-view-options.tsx
deleted file mode 100644
index d7fe877659..0000000000
--- a/deprecated/www/app/(app)/examples/tasks/components/data-table-view-options.tsx
+++ /dev/null
@@ -1,59 +0,0 @@
-"use client"
-
-import { DropdownMenuTrigger } from "@radix-ui/react-dropdown-menu"
-import { Table } from "@tanstack/react-table"
-import { Settings2 } from "lucide-react"
-
-import { Button } from "@/registry/new-york/ui/button"
-import {
- DropdownMenu,
- DropdownMenuCheckboxItem,
- DropdownMenuContent,
- DropdownMenuLabel,
- DropdownMenuSeparator,
-} from "@/registry/new-york/ui/dropdown-menu"
-
-interface DataTableViewOptionsProps {
- table: Table
-}
-
-export function DataTableViewOptions({
- table,
-}: DataTableViewOptionsProps) {
- return (
-
-
-
-
- View
-
-
-
- Toggle columns
-
- {table
- .getAllColumns()
- .filter(
- (column) =>
- typeof column.accessorFn !== "undefined" && column.getCanHide()
- )
- .map((column) => {
- return (
- column.toggleVisibility(!!value)}
- >
- {column.id}
-
- )
- })}
-
-
- )
-}
diff --git a/deprecated/www/app/(app)/examples/tasks/components/data-table.tsx b/deprecated/www/app/(app)/examples/tasks/components/data-table.tsx
deleted file mode 100644
index d763f5b84f..0000000000
--- a/deprecated/www/app/(app)/examples/tasks/components/data-table.tsx
+++ /dev/null
@@ -1,126 +0,0 @@
-"use client"
-
-import * as React from "react"
-import {
- ColumnDef,
- ColumnFiltersState,
- SortingState,
- VisibilityState,
- flexRender,
- getCoreRowModel,
- getFacetedRowModel,
- getFacetedUniqueValues,
- getFilteredRowModel,
- getPaginationRowModel,
- getSortedRowModel,
- useReactTable,
-} from "@tanstack/react-table"
-
-import {
- Table,
- TableBody,
- TableCell,
- TableHead,
- TableHeader,
- TableRow,
-} from "@/registry/new-york/ui/table"
-
-import { DataTablePagination } from "./data-table-pagination"
-import { DataTableToolbar } from "./data-table-toolbar"
-
-interface DataTableProps {
- columns: ColumnDef[]
- data: TData[]
-}
-
-export function DataTable({
- columns,
- data,
-}: DataTableProps) {
- const [rowSelection, setRowSelection] = React.useState({})
- const [columnVisibility, setColumnVisibility] =
- React.useState({})
- const [columnFilters, setColumnFilters] = React.useState(
- []
- )
- const [sorting, setSorting] = React.useState([])
-
- const table = useReactTable({
- data,
- columns,
- state: {
- sorting,
- columnVisibility,
- rowSelection,
- columnFilters,
- },
- enableRowSelection: true,
- onRowSelectionChange: setRowSelection,
- onSortingChange: setSorting,
- onColumnFiltersChange: setColumnFilters,
- onColumnVisibilityChange: setColumnVisibility,
- getCoreRowModel: getCoreRowModel(),
- getFilteredRowModel: getFilteredRowModel(),
- getPaginationRowModel: getPaginationRowModel(),
- getSortedRowModel: getSortedRowModel(),
- getFacetedRowModel: getFacetedRowModel(),
- getFacetedUniqueValues: getFacetedUniqueValues(),
- })
-
- return (
-
-
-
-
-
- {table.getHeaderGroups().map((headerGroup) => (
-
- {headerGroup.headers.map((header) => {
- return (
-
- {header.isPlaceholder
- ? null
- : flexRender(
- header.column.columnDef.header,
- header.getContext()
- )}
-
- )
- })}
-
- ))}
-
-
- {table.getRowModel().rows?.length ? (
- table.getRowModel().rows.map((row) => (
-
- {row.getVisibleCells().map((cell) => (
-
- {flexRender(
- cell.column.columnDef.cell,
- cell.getContext()
- )}
-
- ))}
-
- ))
- ) : (
-
-
- No results.
-
-
- )}
-
-
-
-
-
- )
-}
diff --git a/deprecated/www/app/(app)/examples/tasks/components/user-nav.tsx b/deprecated/www/app/(app)/examples/tasks/components/user-nav.tsx
deleted file mode 100644
index 3d64ca71e8..0000000000
--- a/deprecated/www/app/(app)/examples/tasks/components/user-nav.tsx
+++ /dev/null
@@ -1,62 +0,0 @@
-import {
- Avatar,
- AvatarFallback,
- AvatarImage,
-} from "@/registry/new-york/ui/avatar"
-import { Button } from "@/registry/new-york/ui/button"
-import {
- DropdownMenu,
- DropdownMenuContent,
- DropdownMenuGroup,
- DropdownMenuItem,
- DropdownMenuLabel,
- DropdownMenuSeparator,
- DropdownMenuShortcut,
- DropdownMenuTrigger,
-} from "@/registry/new-york/ui/dropdown-menu"
-
-export function UserNav() {
- return (
-
-
-
-
-
- SC
-
-
-
-
-
-
-
shadcn
-
- m@example.com
-
-
-
-
-
-
- Profile
- ⇧⌘P
-
-
- Billing
- ⌘B
-
-
- Settings
- ⌘S
-
- New Team
-
-
-
- Log out
- ⇧⌘Q
-
-
-
- )
-}
diff --git a/deprecated/www/app/(app)/examples/tasks/data/data.tsx b/deprecated/www/app/(app)/examples/tasks/data/data.tsx
deleted file mode 100644
index c4792ba82c..0000000000
--- a/deprecated/www/app/(app)/examples/tasks/data/data.tsx
+++ /dev/null
@@ -1,71 +0,0 @@
-import {
- ArrowDown,
- ArrowRight,
- ArrowUp,
- CheckCircle,
- Circle,
- CircleOff,
- HelpCircle,
- Timer,
-} from "lucide-react"
-
-export const labels = [
- {
- value: "bug",
- label: "Bug",
- },
- {
- value: "feature",
- label: "Feature",
- },
- {
- value: "documentation",
- label: "Documentation",
- },
-]
-
-export const statuses = [
- {
- value: "backlog",
- label: "Backlog",
- icon: HelpCircle,
- },
- {
- value: "todo",
- label: "Todo",
- icon: Circle,
- },
- {
- value: "in progress",
- label: "In Progress",
- icon: Timer,
- },
- {
- value: "done",
- label: "Done",
- icon: CheckCircle,
- },
- {
- value: "canceled",
- label: "Canceled",
- icon: CircleOff,
- },
-]
-
-export const priorities = [
- {
- label: "Low",
- value: "low",
- icon: ArrowDown,
- },
- {
- label: "Medium",
- value: "medium",
- icon: ArrowRight,
- },
- {
- label: "High",
- value: "high",
- icon: ArrowUp,
- },
-]
diff --git a/deprecated/www/app/(app)/examples/tasks/data/schema.ts b/deprecated/www/app/(app)/examples/tasks/data/schema.ts
deleted file mode 100644
index 72000c0ec9..0000000000
--- a/deprecated/www/app/(app)/examples/tasks/data/schema.ts
+++ /dev/null
@@ -1,13 +0,0 @@
-import { z } from "zod"
-
-// We're keeping a simple non-relational schema here.
-// IRL, you will have a schema for your data models.
-export const taskSchema = z.object({
- id: z.string(),
- title: z.string(),
- status: z.string(),
- label: z.string(),
- priority: z.string(),
-})
-
-export type Task = z.infer
diff --git a/deprecated/www/app/(app)/examples/tasks/data/seed.ts b/deprecated/www/app/(app)/examples/tasks/data/seed.ts
deleted file mode 100755
index f77630856e..0000000000
--- a/deprecated/www/app/(app)/examples/tasks/data/seed.ts
+++ /dev/null
@@ -1,20 +0,0 @@
-import fs from "fs"
-import path from "path"
-import { faker } from "@faker-js/faker"
-
-import { labels, priorities, statuses } from "./data"
-
-const tasks = Array.from({ length: 100 }, () => ({
- id: `TASK-${faker.number.int({ min: 1000, max: 9999 })}`,
- title: faker.hacker.phrase().replace(/^./, (letter) => letter.toUpperCase()),
- status: faker.helpers.arrayElement(statuses).value,
- label: faker.helpers.arrayElement(labels).value,
- priority: faker.helpers.arrayElement(priorities).value,
-}))
-
-fs.writeFileSync(
- path.join(__dirname, "tasks.json"),
- JSON.stringify(tasks, null, 2)
-)
-
-console.log("✅ Tasks data generated.")
diff --git a/deprecated/www/app/(app)/examples/tasks/data/tasks.json b/deprecated/www/app/(app)/examples/tasks/data/tasks.json
deleted file mode 100644
index 433e35373e..0000000000
--- a/deprecated/www/app/(app)/examples/tasks/data/tasks.json
+++ /dev/null
@@ -1,702 +0,0 @@
-[
- {
- "id": "TASK-8782",
- "title": "You can't compress the program without quantifying the open-source SSD pixel!",
- "status": "in progress",
- "label": "documentation",
- "priority": "medium"
- },
- {
- "id": "TASK-7878",
- "title": "Try to calculate the EXE feed, maybe it will index the multi-byte pixel!",
- "status": "backlog",
- "label": "documentation",
- "priority": "medium"
- },
- {
- "id": "TASK-7839",
- "title": "We need to bypass the neural TCP card!",
- "status": "todo",
- "label": "bug",
- "priority": "high"
- },
- {
- "id": "TASK-5562",
- "title": "The SAS interface is down, bypass the open-source pixel so we can back up the PNG bandwidth!",
- "status": "backlog",
- "label": "feature",
- "priority": "medium"
- },
- {
- "id": "TASK-8686",
- "title": "I'll parse the wireless SSL protocol, that should driver the API panel!",
- "status": "canceled",
- "label": "feature",
- "priority": "medium"
- },
- {
- "id": "TASK-1280",
- "title": "Use the digital TLS panel, then you can transmit the haptic system!",
- "status": "done",
- "label": "bug",
- "priority": "high"
- },
- {
- "id": "TASK-7262",
- "title": "The UTF8 application is down, parse the neural bandwidth so we can back up the PNG firewall!",
- "status": "done",
- "label": "feature",
- "priority": "high"
- },
- {
- "id": "TASK-1138",
- "title": "Generating the driver won't do anything, we need to quantify the 1080p SMTP bandwidth!",
- "status": "in progress",
- "label": "feature",
- "priority": "medium"
- },
- {
- "id": "TASK-7184",
- "title": "We need to program the back-end THX pixel!",
- "status": "todo",
- "label": "feature",
- "priority": "low"
- },
- {
- "id": "TASK-5160",
- "title": "Calculating the bus won't do anything, we need to navigate the back-end JSON protocol!",
- "status": "in progress",
- "label": "documentation",
- "priority": "high"
- },
- {
- "id": "TASK-5618",
- "title": "Generating the driver won't do anything, we need to index the online SSL application!",
- "status": "done",
- "label": "documentation",
- "priority": "medium"
- },
- {
- "id": "TASK-6699",
- "title": "I'll transmit the wireless JBOD capacitor, that should hard drive the SSD feed!",
- "status": "backlog",
- "label": "documentation",
- "priority": "medium"
- },
- {
- "id": "TASK-2858",
- "title": "We need to override the online UDP bus!",
- "status": "backlog",
- "label": "bug",
- "priority": "medium"
- },
- {
- "id": "TASK-9864",
- "title": "I'll reboot the 1080p FTP panel, that should matrix the HEX hard drive!",
- "status": "done",
- "label": "bug",
- "priority": "high"
- },
- {
- "id": "TASK-8404",
- "title": "We need to generate the virtual HEX alarm!",
- "status": "in progress",
- "label": "bug",
- "priority": "low"
- },
- {
- "id": "TASK-5365",
- "title": "Backing up the pixel won't do anything, we need to transmit the primary IB array!",
- "status": "in progress",
- "label": "documentation",
- "priority": "low"
- },
- {
- "id": "TASK-1780",
- "title": "The CSS feed is down, index the bluetooth transmitter so we can compress the CLI protocol!",
- "status": "todo",
- "label": "documentation",
- "priority": "high"
- },
- {
- "id": "TASK-6938",
- "title": "Use the redundant SCSI application, then you can hack the optical alarm!",
- "status": "todo",
- "label": "documentation",
- "priority": "high"
- },
- {
- "id": "TASK-9885",
- "title": "We need to compress the auxiliary VGA driver!",
- "status": "backlog",
- "label": "bug",
- "priority": "high"
- },
- {
- "id": "TASK-3216",
- "title": "Transmitting the transmitter won't do anything, we need to compress the virtual HDD sensor!",
- "status": "backlog",
- "label": "documentation",
- "priority": "medium"
- },
- {
- "id": "TASK-9285",
- "title": "The IP monitor is down, copy the haptic alarm so we can generate the HTTP transmitter!",
- "status": "todo",
- "label": "bug",
- "priority": "high"
- },
- {
- "id": "TASK-1024",
- "title": "Overriding the microchip won't do anything, we need to transmit the digital OCR transmitter!",
- "status": "in progress",
- "label": "documentation",
- "priority": "low"
- },
- {
- "id": "TASK-7068",
- "title": "You can't generate the capacitor without indexing the wireless HEX pixel!",
- "status": "canceled",
- "label": "bug",
- "priority": "low"
- },
- {
- "id": "TASK-6502",
- "title": "Navigating the microchip won't do anything, we need to bypass the back-end SQL bus!",
- "status": "todo",
- "label": "bug",
- "priority": "high"
- },
- {
- "id": "TASK-5326",
- "title": "We need to hack the redundant UTF8 transmitter!",
- "status": "todo",
- "label": "bug",
- "priority": "low"
- },
- {
- "id": "TASK-6274",
- "title": "Use the virtual PCI circuit, then you can parse the bluetooth alarm!",
- "status": "canceled",
- "label": "documentation",
- "priority": "low"
- },
- {
- "id": "TASK-1571",
- "title": "I'll input the neural DRAM circuit, that should protocol the SMTP interface!",
- "status": "in progress",
- "label": "feature",
- "priority": "medium"
- },
- {
- "id": "TASK-9518",
- "title": "Compressing the interface won't do anything, we need to compress the online SDD matrix!",
- "status": "canceled",
- "label": "documentation",
- "priority": "medium"
- },
- {
- "id": "TASK-5581",
- "title": "I'll synthesize the digital COM pixel, that should transmitter the UTF8 protocol!",
- "status": "backlog",
- "label": "documentation",
- "priority": "high"
- },
- {
- "id": "TASK-2197",
- "title": "Parsing the feed won't do anything, we need to copy the bluetooth DRAM bus!",
- "status": "todo",
- "label": "documentation",
- "priority": "low"
- },
- {
- "id": "TASK-8484",
- "title": "We need to parse the solid state UDP firewall!",
- "status": "in progress",
- "label": "bug",
- "priority": "low"
- },
- {
- "id": "TASK-9892",
- "title": "If we back up the application, we can get to the UDP application through the multi-byte THX capacitor!",
- "status": "done",
- "label": "documentation",
- "priority": "high"
- },
- {
- "id": "TASK-9616",
- "title": "We need to synthesize the cross-platform ASCII pixel!",
- "status": "in progress",
- "label": "feature",
- "priority": "medium"
- },
- {
- "id": "TASK-9744",
- "title": "Use the back-end IP card, then you can input the solid state hard drive!",
- "status": "done",
- "label": "documentation",
- "priority": "low"
- },
- {
- "id": "TASK-1376",
- "title": "Generating the alarm won't do anything, we need to generate the mobile IP capacitor!",
- "status": "backlog",
- "label": "documentation",
- "priority": "low"
- },
- {
- "id": "TASK-7382",
- "title": "If we back up the firewall, we can get to the RAM alarm through the primary UTF8 pixel!",
- "status": "todo",
- "label": "feature",
- "priority": "low"
- },
- {
- "id": "TASK-2290",
- "title": "I'll compress the virtual JSON panel, that should application the UTF8 bus!",
- "status": "canceled",
- "label": "documentation",
- "priority": "high"
- },
- {
- "id": "TASK-1533",
- "title": "You can't input the firewall without overriding the wireless TCP firewall!",
- "status": "done",
- "label": "bug",
- "priority": "high"
- },
- {
- "id": "TASK-4920",
- "title": "Bypassing the hard drive won't do anything, we need to input the bluetooth JSON program!",
- "status": "in progress",
- "label": "bug",
- "priority": "high"
- },
- {
- "id": "TASK-5168",
- "title": "If we synthesize the bus, we can get to the IP panel through the virtual TLS array!",
- "status": "in progress",
- "label": "feature",
- "priority": "low"
- },
- {
- "id": "TASK-7103",
- "title": "We need to parse the multi-byte EXE bandwidth!",
- "status": "canceled",
- "label": "feature",
- "priority": "low"
- },
- {
- "id": "TASK-4314",
- "title": "If we compress the program, we can get to the XML alarm through the multi-byte COM matrix!",
- "status": "in progress",
- "label": "bug",
- "priority": "high"
- },
- {
- "id": "TASK-3415",
- "title": "Use the cross-platform XML application, then you can quantify the solid state feed!",
- "status": "todo",
- "label": "feature",
- "priority": "high"
- },
- {
- "id": "TASK-8339",
- "title": "Try to calculate the DNS interface, maybe it will input the bluetooth capacitor!",
- "status": "in progress",
- "label": "feature",
- "priority": "low"
- },
- {
- "id": "TASK-6995",
- "title": "Try to hack the XSS bandwidth, maybe it will override the bluetooth matrix!",
- "status": "todo",
- "label": "feature",
- "priority": "high"
- },
- {
- "id": "TASK-8053",
- "title": "If we connect the program, we can get to the UTF8 matrix through the digital UDP protocol!",
- "status": "todo",
- "label": "feature",
- "priority": "medium"
- },
- {
- "id": "TASK-4336",
- "title": "If we synthesize the microchip, we can get to the SAS sensor through the optical UDP program!",
- "status": "todo",
- "label": "documentation",
- "priority": "low"
- },
- {
- "id": "TASK-8790",
- "title": "I'll back up the optical COM alarm, that should alarm the RSS capacitor!",
- "status": "done",
- "label": "bug",
- "priority": "medium"
- },
- {
- "id": "TASK-8980",
- "title": "Try to navigate the SQL transmitter, maybe it will back up the virtual firewall!",
- "status": "canceled",
- "label": "bug",
- "priority": "low"
- },
- {
- "id": "TASK-7342",
- "title": "Use the neural CLI card, then you can parse the online port!",
- "status": "backlog",
- "label": "documentation",
- "priority": "low"
- },
- {
- "id": "TASK-5608",
- "title": "I'll hack the haptic SSL program, that should bus the UDP transmitter!",
- "status": "canceled",
- "label": "documentation",
- "priority": "low"
- },
- {
- "id": "TASK-1606",
- "title": "I'll generate the bluetooth PNG firewall, that should pixel the SSL driver!",
- "status": "done",
- "label": "feature",
- "priority": "medium"
- },
- {
- "id": "TASK-7872",
- "title": "Transmitting the circuit won't do anything, we need to reboot the 1080p RSS monitor!",
- "status": "canceled",
- "label": "feature",
- "priority": "medium"
- },
- {
- "id": "TASK-4167",
- "title": "Use the cross-platform SMS circuit, then you can synthesize the optical feed!",
- "status": "canceled",
- "label": "bug",
- "priority": "medium"
- },
- {
- "id": "TASK-9581",
- "title": "You can't index the port without hacking the cross-platform XSS monitor!",
- "status": "backlog",
- "label": "documentation",
- "priority": "low"
- },
- {
- "id": "TASK-8806",
- "title": "We need to bypass the back-end SSL panel!",
- "status": "done",
- "label": "bug",
- "priority": "medium"
- },
- {
- "id": "TASK-6542",
- "title": "Try to quantify the RSS firewall, maybe it will quantify the open-source system!",
- "status": "done",
- "label": "feature",
- "priority": "low"
- },
- {
- "id": "TASK-6806",
- "title": "The VGA protocol is down, reboot the back-end matrix so we can parse the CSS panel!",
- "status": "canceled",
- "label": "documentation",
- "priority": "low"
- },
- {
- "id": "TASK-9549",
- "title": "You can't bypass the bus without connecting the neural JBOD bus!",
- "status": "todo",
- "label": "feature",
- "priority": "high"
- },
- {
- "id": "TASK-1075",
- "title": "Backing up the driver won't do anything, we need to parse the redundant RAM pixel!",
- "status": "done",
- "label": "feature",
- "priority": "medium"
- },
- {
- "id": "TASK-1427",
- "title": "Use the auxiliary PCI circuit, then you can calculate the cross-platform interface!",
- "status": "done",
- "label": "documentation",
- "priority": "high"
- },
- {
- "id": "TASK-1907",
- "title": "Hacking the circuit won't do anything, we need to back up the online DRAM system!",
- "status": "todo",
- "label": "documentation",
- "priority": "high"
- },
- {
- "id": "TASK-4309",
- "title": "If we generate the system, we can get to the TCP sensor through the optical GB pixel!",
- "status": "backlog",
- "label": "bug",
- "priority": "medium"
- },
- {
- "id": "TASK-3973",
- "title": "I'll parse the back-end ADP array, that should bandwidth the RSS bandwidth!",
- "status": "todo",
- "label": "feature",
- "priority": "medium"
- },
- {
- "id": "TASK-7962",
- "title": "Use the wireless RAM program, then you can hack the cross-platform feed!",
- "status": "canceled",
- "label": "bug",
- "priority": "low"
- },
- {
- "id": "TASK-3360",
- "title": "You can't quantify the program without synthesizing the neural OCR interface!",
- "status": "done",
- "label": "feature",
- "priority": "medium"
- },
- {
- "id": "TASK-9887",
- "title": "Use the auxiliary ASCII sensor, then you can connect the solid state port!",
- "status": "backlog",
- "label": "bug",
- "priority": "medium"
- },
- {
- "id": "TASK-3649",
- "title": "I'll input the virtual USB system, that should circuit the DNS monitor!",
- "status": "in progress",
- "label": "feature",
- "priority": "medium"
- },
- {
- "id": "TASK-3586",
- "title": "If we quantify the circuit, we can get to the CLI feed through the mobile SMS hard drive!",
- "status": "in progress",
- "label": "bug",
- "priority": "low"
- },
- {
- "id": "TASK-5150",
- "title": "I'll hack the wireless XSS port, that should transmitter the IP interface!",
- "status": "canceled",
- "label": "feature",
- "priority": "medium"
- },
- {
- "id": "TASK-3652",
- "title": "The SQL interface is down, override the optical bus so we can program the ASCII interface!",
- "status": "backlog",
- "label": "feature",
- "priority": "low"
- },
- {
- "id": "TASK-6884",
- "title": "Use the digital PCI circuit, then you can synthesize the multi-byte microchip!",
- "status": "canceled",
- "label": "feature",
- "priority": "high"
- },
- {
- "id": "TASK-1591",
- "title": "We need to connect the mobile XSS driver!",
- "status": "in progress",
- "label": "feature",
- "priority": "high"
- },
- {
- "id": "TASK-3802",
- "title": "Try to override the ASCII protocol, maybe it will parse the virtual matrix!",
- "status": "in progress",
- "label": "feature",
- "priority": "low"
- },
- {
- "id": "TASK-7253",
- "title": "Programming the capacitor won't do anything, we need to bypass the neural IB hard drive!",
- "status": "backlog",
- "label": "bug",
- "priority": "high"
- },
- {
- "id": "TASK-9739",
- "title": "We need to hack the multi-byte HDD bus!",
- "status": "done",
- "label": "documentation",
- "priority": "medium"
- },
- {
- "id": "TASK-4424",
- "title": "Try to hack the HEX alarm, maybe it will connect the optical pixel!",
- "status": "in progress",
- "label": "documentation",
- "priority": "medium"
- },
- {
- "id": "TASK-3922",
- "title": "You can't back up the capacitor without generating the wireless PCI program!",
- "status": "backlog",
- "label": "bug",
- "priority": "low"
- },
- {
- "id": "TASK-4921",
- "title": "I'll index the open-source IP feed, that should system the GB application!",
- "status": "canceled",
- "label": "bug",
- "priority": "low"
- },
- {
- "id": "TASK-5814",
- "title": "We need to calculate the 1080p AGP feed!",
- "status": "backlog",
- "label": "bug",
- "priority": "high"
- },
- {
- "id": "TASK-2645",
- "title": "Synthesizing the system won't do anything, we need to navigate the multi-byte HDD firewall!",
- "status": "todo",
- "label": "documentation",
- "priority": "medium"
- },
- {
- "id": "TASK-4535",
- "title": "Try to copy the JSON circuit, maybe it will connect the wireless feed!",
- "status": "in progress",
- "label": "feature",
- "priority": "low"
- },
- {
- "id": "TASK-4463",
- "title": "We need to copy the solid state AGP monitor!",
- "status": "done",
- "label": "documentation",
- "priority": "low"
- },
- {
- "id": "TASK-9745",
- "title": "If we connect the protocol, we can get to the GB system through the bluetooth PCI microchip!",
- "status": "canceled",
- "label": "feature",
- "priority": "high"
- },
- {
- "id": "TASK-2080",
- "title": "If we input the bus, we can get to the RAM matrix through the auxiliary RAM card!",
- "status": "todo",
- "label": "bug",
- "priority": "medium"
- },
- {
- "id": "TASK-3838",
- "title": "I'll bypass the online TCP application, that should panel the AGP system!",
- "status": "backlog",
- "label": "bug",
- "priority": "high"
- },
- {
- "id": "TASK-1340",
- "title": "We need to navigate the virtual PNG circuit!",
- "status": "todo",
- "label": "bug",
- "priority": "medium"
- },
- {
- "id": "TASK-6665",
- "title": "If we parse the monitor, we can get to the SSD hard drive through the cross-platform AGP alarm!",
- "status": "canceled",
- "label": "feature",
- "priority": "low"
- },
- {
- "id": "TASK-7585",
- "title": "If we calculate the hard drive, we can get to the SSL program through the multi-byte CSS microchip!",
- "status": "backlog",
- "label": "feature",
- "priority": "low"
- },
- {
- "id": "TASK-6319",
- "title": "We need to copy the multi-byte SCSI program!",
- "status": "backlog",
- "label": "bug",
- "priority": "high"
- },
- {
- "id": "TASK-4369",
- "title": "Try to input the SCSI bus, maybe it will generate the 1080p pixel!",
- "status": "backlog",
- "label": "bug",
- "priority": "high"
- },
- {
- "id": "TASK-9035",
- "title": "We need to override the solid state PNG array!",
- "status": "canceled",
- "label": "documentation",
- "priority": "low"
- },
- {
- "id": "TASK-3970",
- "title": "You can't index the transmitter without quantifying the haptic ASCII card!",
- "status": "todo",
- "label": "documentation",
- "priority": "medium"
- },
- {
- "id": "TASK-4473",
- "title": "You can't bypass the protocol without overriding the neural RSS program!",
- "status": "todo",
- "label": "documentation",
- "priority": "low"
- },
- {
- "id": "TASK-4136",
- "title": "You can't hack the hard drive without hacking the primary JSON program!",
- "status": "canceled",
- "label": "bug",
- "priority": "medium"
- },
- {
- "id": "TASK-3939",
- "title": "Use the back-end SQL firewall, then you can connect the neural hard drive!",
- "status": "done",
- "label": "feature",
- "priority": "low"
- },
- {
- "id": "TASK-2007",
- "title": "I'll input the back-end USB protocol, that should bandwidth the PCI system!",
- "status": "backlog",
- "label": "bug",
- "priority": "high"
- },
- {
- "id": "TASK-7516",
- "title": "Use the primary SQL program, then you can generate the auxiliary transmitter!",
- "status": "done",
- "label": "documentation",
- "priority": "medium"
- },
- {
- "id": "TASK-6906",
- "title": "Try to back up the DRAM system, maybe it will reboot the online transmitter!",
- "status": "done",
- "label": "feature",
- "priority": "high"
- },
- {
- "id": "TASK-5207",
- "title": "The SMS interface is down, copy the bluetooth bus so we can quantify the VGA card!",
- "status": "in progress",
- "label": "bug",
- "priority": "low"
- }
-]
\ No newline at end of file
diff --git a/deprecated/www/app/(app)/examples/tasks/page.tsx b/deprecated/www/app/(app)/examples/tasks/page.tsx
deleted file mode 100644
index b244498371..0000000000
--- a/deprecated/www/app/(app)/examples/tasks/page.tsx
+++ /dev/null
@@ -1,65 +0,0 @@
-import { promises as fs } from "fs"
-import path from "path"
-import { Metadata } from "next"
-import Image from "next/image"
-import { z } from "zod"
-
-import { columns } from "./components/columns"
-import { DataTable } from "./components/data-table"
-import { UserNav } from "./components/user-nav"
-import { taskSchema } from "./data/schema"
-
-export const metadata: Metadata = {
- title: "Tasks",
- description: "A task and issue tracker build using Tanstack Table.",
-}
-
-// Simulate a database read for tasks.
-async function getTasks() {
- const data = await fs.readFile(
- path.join(process.cwd(), "app/(app)/examples/tasks/data/tasks.json")
- )
-
- const tasks = JSON.parse(data.toString())
-
- return z.array(taskSchema).parse(tasks)
-}
-
-export default async function TaskPage() {
- const tasks = await getTasks()
-
- return (
- <>
-
-
-
-
-
-
-
-
Welcome back!
-
- Here's a list of your tasks for this month!
-
-
-
-
-
-
-
-
- >
- )
-}
diff --git a/deprecated/www/app/(app)/layout.tsx b/deprecated/www/app/(app)/layout.tsx
deleted file mode 100644
index 6838c20355..0000000000
--- a/deprecated/www/app/(app)/layout.tsx
+++ /dev/null
@@ -1,16 +0,0 @@
-import { SiteFooter } from "@/components/site-footer"
-import { SiteHeader } from "@/components/site-header"
-
-interface AppLayoutProps {
- children: React.ReactNode
-}
-
-export default function AppLayout({ children }: AppLayoutProps) {
- return (
-
-
- {children}
-
-
- )
-}
diff --git a/deprecated/www/app/(app)/og/geist-regular-otf.json b/deprecated/www/app/(app)/og/geist-regular-otf.json
deleted file mode 100644
index 718fb52199..0000000000
--- a/deprecated/www/app/(app)/og/geist-regular-otf.json
+++ /dev/null
@@ -1 +0,0 @@
-{"base64Font":"T1RUTwAMAIAAAwBAQ0ZGIN9uOmAAABXMAACeZkdERUZBTj+sAAC0NAAAAT5HUE9Ttn3F0QAAtXQAABvSR1NVQpIcrgQAANFIAAASlE9TLzJPyiLTAAAL3AAAAGBjbWFwrm6KhgAADtQAAAbWaGVhZCrsuiMAAADUAAAANmhoZWEM9AjIAAALuAAAACRobXR487+RWAAAAQwAAAqqbWF4cAKrUAAAAADMAAAABm5hbWU8hhcjAAAMPAAAApdwb3N0/58AMgAAFawAAAAgAABQAAKrAAAAAQAAAAEAg2zs2StfDzz1AAMD6AAAAADhcDrwAAAAAOFwOvD/0/8kCSIDuAAAAAcAAgAAAAAAAAGuAFAA+gAAAqAAFQKgABUCoAAVAqAAFQKgABUCoAAVAqAAFQKgABUCwwAVAqAAFQKgABUD0QAVAqkAXAK+ADECvgAxAr4AMQK+ADECvgAxAr4AMQK/AFwDFwAxAr8AXAMXADECXABcAlwAXAJcAFwCXABcAlwAXAJcAFwCXABcAlwAXAJcAFwCXABcAtIAMQJZADICWQAyAk8AXALFADECxQAxAsUAMQLFADECxQAxAsUAMQLFADEC8wAxAsAAXANkAFwCwABcARAAXAMSAFwBEABcARD//QEQABABEABbARAADgEQAAgBEAAwARD/4AJWAEMCVgBDAlYAQwKNAFwCjQBcAo0AXAJFAFwCRQBcAh4AXAJFAFwCaAAWA24AXALjAFwC4wBcAuMAXALjAFwC4wBcAuMAXALsADEC7AAxAuwAMQLsADEC7AAxAuwAMQLsADEC8QAxAuwAMQQ+ADECiwBcAm0AXALmADECoQBcAqEAXAKhAFwCoQBcAokAOwKJADsAvAAxAokAOwKJADsCiQA7AokAOwK2AFwCQgAZAkIAGQJCABkCQgAZAkIAGQKyAE0CsgBNArIATQKyAE0CsgBNArIATQKyAE0CsgBNArIATQKyAE0CsgBNAp4AFQOQABUDkAAVA5AAFQOQABUDkAAVAnUAGwJ3ABUCdwAVAncAFQJ3ABUCdwAVAncAFQIfABsCHwAbAh8AGwIfABsCRQBcAuMAXAKnAFwCpwBcAqcAXAKnAFwBtgAxAbYAMQG2ADEBtgAxAbYAMQG2ADEBtgAxAbYAMQG2ADECvgAxAr4AMQK+ADECvgAxAr4AMQK+ADECoAAVAr4AMQJcAFwCXABcAsUAMQEQAAEBEABTAuwAMQKyAE0DkAAVAncAFQIfABsBtgAxAbYAMQK+ADEEVgAVBGgATQJAAC8CQAAvAkAALwJAAC8CQAAvAkAALwJAAC8CQAAvAkAALwJAAC8CQAAvA6QALwJXAFACKQAvAikALwIpAC8CKQAvAikALwIpAC8CVwAvAlMALwL4AC8CjAAvAjgALwI4AC8COAAvAjgALwI4AC8COAAvAjgALwI4AC8COAAvAjgALwI4AC8CWQAyAlkAMgGPADwCVgAvAlYALwJWAC8CVgAvAlYALwJWAC8CVgAvAnoALwJGAFACPAAZAkb/8AD2AE4A9gBQAPYAUAD2//AA9gADAPYATgD2AAEB8QBOAPb/+wD2ACIA9v/TAQX/+wEF//sBBf/7AQX/+wJPAFACT//tAk8AUAEcAFABHABQAZoAUAEcAEYBegBQA24AUAJGAFACRgBQAkYAUAJGAFACRgBQAkYAUAJEAC8CRAAvAkQALwJEAC8CRAAvAkQALwJEAC8CNgAMAkQALwPEAC8CVwBQAlcAUAJXAC8BfwBQAX8AUAF/ADcBfwAbAhMALwITAC8AvAAxAhMALwITAC8CEwAvAhMALwJPAFABjQA3AY0ANwHGADcBjQA3AY0ANwJAAFACQABQAkAAUAJAAFACQABQAkAAUAJAAFACQABQAkAAUAJAAFACQABQAhoAFgM0ABYDNAAWAzQAFgM0ABYDNAAWAksALwIaABYCGgAWAhoAFgIaABYCGgAWAhoAFgImADkCJgA5AiYAOQImADkBHABGAkYAUAIyACoCMgAqAjIAKgIyACoCMgAqAjIAKgIyACoCMgAqAjIAKgIyACoCMgAqAlcALwJXAC8CVwAvAlcALwJXAC8CVwAvAlcALwJXAC8CVwAvAlcALwJXAC8BDgBcAQ4AXAGeAFABDgAnAXoAUAJAAC8CKQAvAjgALwI4AC8CVgAvAPYARgD2//QA9gBGAfEARgD2ACIBBf/7AkQALwJAAFADNAAWAhoAFgImADkCMgAqAlcALwKwADwCvQA3AoUAPAKXADwCQAAvAkQALwKgABUC5AAxAj0AFQKUADcCZQAyAqAANgGBACgCawA8AmUAMgJ8ADICcgA8AnAAPAJJACgCXAAoAnAAPANAAC8DQAAvA0AALwNAAC8DQAAvA0AALwNAAC8DQAAvA0AALwNAAC8DQAAvA0AALwNAAC8DQAAvA0AALwNAAC8DQAAvA0AALwNAAC8DQAAvAqAANgGzABkCWAAUAlgAfgJYADsCWAAqAlgAMAJYADkCWAA4AlgAOwJYABoCWAA4AlgADQPQADEDwgAxA7oAMQO9ADEDzQAxA7cAMQPAADED0AAxA8sAMQSwAKYCWACVAlgAsgJYAKACWACgAlgAhAJYAKUCWAClAlgApgJYAJ8CWACoAlgAlQJYALICWACgAlgAoAJYAIQCWAClAlgApQJYAKYCWACfAlgAqAD6AAABYgAvCWAAPgcIAD4EsAA+AMsALwDLAC8BJQBcASUAXAI9AC8A2QA2ANkANgI3AC8CNwAvAMsALwEpAC8BtAAvAXgALwHe//YB4wAoAd4AMgKCACgBtAAvA44ALwHeADIAywAvAMsALwEUADYB3v/2AwIALwDLAC8CNwAvAWQALwC4AC8AywAvAeMAKADSAC8BLABcAS0AXAJFAC8A0gAvANIALwI3AC8CNwAvANIALwI0AC8A0gAvARQALwDSAC8CNwAvANMALwGqAC8BsAAvAlYALwOSAC8CNAAvA1sALwLQAC8BOQAvATkALwGoAC8BqAAvAVEALwFRAC8BZwAvAWcALwFxAC8BcQAvAagALwGoAC8BjQAvAY0ALwIOAC8CDgAvAY8ALwGPAC8BjQAvAY0ALwFnAC8BZwAvAVEALwFRAC8BOQAvATkALwDPADEBdgAxAXYAMQF2ADEAzwAxAM8AMQIaAC8CGgAvAVAALwFQAC8BaAAxALwAMQIDADwCgQBcBLAAPgcIAD4JYAA+BwcAPgNAAC8DQAAvA5IAMQJuACgCUQAjAi4AOwNEADECWgAxAloAMQN6AFwBjAAvAPwALwF3AC8BCABcAQgAXAI7AFwCOwBcBEQAXAJYAE8DWQAxAlgANAIpAC8CSwAxAokAOwLgADsCogA7AtEALgKoAFwDBwBcAmgAOwJ3ABUCOgAvAjoALwHnAC8COgAvApQAXAI6AC8CKQAxAiUALwI6AC8COgAvAjoALwIaAC8CGgAvAeUALwGSAC8DSQAvAXsAAAKMABUCaAAZAhIAGwJjABYCVQAvAlIAWgMCAC8ESAAvAtAAMQJ2ADEDKAAxAnYAMQLQADECdgAxAygAMQJ2ADEEFgAx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Ai4CLwHIAjACJwGcAZ0BoAJdAlcCWQJbAl8CYAJeAlgCWgJcAlECPwJHAkYCMwIxAnoCfgJ7An8CfAKAAn0CgQJ5AncCeAG6AcoB+QH6AgECAgH/AgACBQIGAfsB/AIDAgQCBwIIAGEBDwHUAdkB1QHWAc4B2gILAgwBzwHTAfIB1wHcAdIB2wHYAdACCQHRAgoAAAADAAAAAAAA/5wAMgAAAAAAAAAAAAAAAAAAAAAAAAAAAQAEAgABAQEOR2Vpc3QtUmVndWxhcgABAQEp+BEA+eMB+eQC+BgE+xEMA177cBwJIvpMBRwrGg8cLhIRqR0AAI1CEgHKAgABAAcADgAVABwAIgAoADMAPQBDAEkATwBZAGAAZwBuAHUAfACDAIkAjwCaAKEAqwCyALkAvQDIAMoA1ADbAOIA6ADzAP4BBQEMARIBGAEfASUBKwEyATUBQgFJAU8BVQFcAWIBaQFxAXwBgwGKAY4BlAGbAaIBqAG1AbwBwwHIAc4B1AHfAegB7gH5Af8CBgIMAhYCJQI0AjoCRQJQAlwCYgJtAn0CiwKaAqUCsQK9AsgCzgLZAukC9QMEAxADHgMtAzsDSgNZA2cDdgOEA5IDoAOuA70D0APkA/gEAAQIBA4EFQQcBCMEKQQvBDoERARKBFAEVgRgBGcEbgR1BHwEgwSKBJAElgShBKgEsgS5BMAExATPBNgE2gThBOgE7gT1BQAFCwUSBRkFHwUlBSwFMgU4BT8FQgVPBVYFXAViBWkFbwV2BX4FiQWQBZQFmgWhBagFrgW7BcIFyQXOBdQF2gXlBe4F9AX/BgUGDAYSBhwGKwY6BkAGSwZWBmIGcgaABosGlwajBq0GuAa+BskG1AbgBvAG/gcJBxUHIQcrBzYHPAdHB1IHXgdpB3cHhgeUB6MHsge4B8YH1AfbB+cH7Qf7CAkIFwglCDQIRwhaCGIIaghxCHgIfgiFCIsIjQiUCJsIogipCLAItwi+CMUIzAjTCNoI4QjoCO8I9gj9CQQJCwkSCRkJIAkpCTEJOAk+CUQJTAlTCVoJYAloCXAJdwl+CYUJjAmTCZoJoQmoCa8Jtgm9CcQJywnSCdkJ4AnnCe4J9Qn8CgMKCgoRChgKHwomCkcKYQp0CnsKggqJCpAKlwqeCqUKrAqzCroKwQrICs8K1grdCuQK7wr5CwcLFAsfCy4LOwtMC18LZgtyC34LiguWC6ILqQuwC7cLvgvFC8wL0wvaC+EL6AvvC/YL/QwEDAsMEgwZDCAMJwwuDDUMPAxDDEoMWgxxDI8MpwyuDLcMvgzEDMoM0QzYDN8M5gzqDPEM+Az/DQYNDg0aDSMNLg02DT4NRQ1MDVUNXA1nDW4NdQ18DYYNjQ2WDZ0Npg2tDbYNvw3GDc0N1A3bDeIN6Q3wDfcN/g4MDhMOHw4rDjoORg5UDmAObg56DogOlg6dDqMOqg6xDrgOvw7GDs0O1A7bDuIO6Q7wDvcPAA8JDxAPGw8iDykPMA83D0APRw9OD1UPXA9jD2oPeQ+FD5EPng+sD7MPug/BD8sP1w/pD/oQB0FicmV2ZXVuaTAxQ0RBbWFjcm9uQW9nb25la0NhY3V0ZUNjYXJvbkNjaXJjdW1mbGV4Q2RvdGFjY2VudERjYXJvbkRjcm9hdEVjYXJvbkVkb3RhY2NlbnRFbWFjcm9uRW9nb25la3VuaTFFQkN1bmkwMThGdW5pMDFCN3VuaTAxRUVHYnJldmVHY2Fyb25HY2lyY3VtZmxleHVuaTAxMjJHZG90YWNjZW50dW5pMUUyMHVuaTAxRTRIYmFySGNpcmN1bWZsZXhJSklkb3RhY2NlbnRJbWFjcm9uSW9nb25la0l0aWxkZXVuaTAwNEEwMzAxSmNpcmN1bWZsZXh1bmkwMUU4dW5pMDEzNkxhY3V0ZUxjYXJvbnVuaTAxM0JOYWN1dGVOY2Fyb251bmkwMTQ1RW5nT2h1bmdhcnVtbGF1dE9tYWNyb25SYWN1dGVSY2Fyb251bmkwMTU2U2FjdXRldW5pQTc4QlNjZWRpbGxhU2NpcmN1bWZsZXh1bmkwMjE4dW5pMUU5RVRiYXJUY2Fyb251bmkwMTYydW5pMDIxQVVicmV2ZVVodW5nYXJ1bWxhdXRVbWFjcm9uVW9nb25la1VyaW5nVXRpbGRlV2FjdXRlV2NpcmN1bWZsZXhXZGllcmVzaXNXZ3JhdmVZY2lyY3VtZmxleFlncmF2ZXVuaTFFRjhaYWN1dGVaZG90YWNjZW50dW5pMDEzQi5sb2NsTUFIdW5pMDE0NS5sb2NsTUFIUi5zczA0UmFjdXRlLnNzMDRSY2Fyb24uc3MwNHVuaTAxNTYuc3MwNEkuc3MwNUlhY3V0ZS5zczA1SWNpcmN1bWZsZXguc3MwNUlkaWVyZXNpcy5zczA1SWRvdGFjY2VudC5zczA1SWdyYXZlLnNzMDVJbWFjcm9uLnNzMDVJb2dvbmVrLnNzMDVJdGlsZGUuc3MwNUcuc3MwNkdicmV2ZS5zczA2R2NpcmN1bWZsZXguc3MwNnVuaTAxMjIuc3MwNkdkb3RhY2NlbnQuc3MwNnVuaTFFMjAuc3MwNkFkaWVyZXNpcy5zczA4Q2RvdGFjY2VudC5zczA4RWRpZXJlc2lzLnNzMDhFZG90YWNjZW50LnNzMDhHZG90YWNjZW50LnNzMDhJZGllcmVzaXMuc3MwOElkb3RhY2NlbnQuc3MwOE9kaWVyZXNpcy5zczA4VWRpZXJlc2lzLnNzMDhXZGllcmVzaXMuc3MwOFlkaWVyZXNpcy5zczA4WmRvdGFjY2VudC5zczA4SWRpZXJlc2lzLnNzMDUuc3MwOElkb3RhY2NlbnQuc3MwNS5zczA4R2RvdGFjY2VudC5zczA2LnNzMDhBX0kuZGxpZ1VfSS5kbGlnYWJyZXZldW5pMDFDRWFtYWNyb25hb2dvbmVrY2FjdXRlY2Nhcm9uY2NpcmN1bWZsZXhjZG90YWNjZW50ZGNhcm9uZGNyb2F0ZWNhcm9uZWRvdGFjY2VudGVtYWNyb25lb2dvbmVrdW5pMUVCRHVuaTAyNTl1bmkwMjkydW5pMDFFRmdicmV2ZWdjYXJvbmdjaXJjdW1mbGV4dW5pMDEyM2dkb3RhY2NlbnR1bmkxRTIxdW5pMDFFNWhiYXJoY2lyY3VtZmxleGkubG9jbFRSS2lqaW1hY3JvbmlvZ29uZWtpdGlsZGV1bmkwMjM3dW5pMDA2QTAzMDFqY2lyY3VtZmxleHVuaTAxRTl1bmkwMTM3bGFjdXRlbGNhcm9udW5pMDEzQ25hY3V0ZW5jYXJvbnVuaTAxNDZlbmdvaHVuZ2FydW1sYXV0b21hY3JvbnJhY3V0ZXJjYXJvbnVuaTAxNTdzYWN1dGV1bmlBNzhDc2NlZGlsbGFzY2lyY3VtZmxleHVuaTAyMTl0YmFydGNhcm9udW5pMDE2M3VuaTAyMUJ1YnJldmV1aHVuZ2FydW1sYXV0dW1hY3JvbnVvZ29uZWt1cmluZ3V0aWxkZXdhY3V0ZXdjaXJjdW1mbGV4d2RpZXJlc2lzd2dyYXZleWNpcmN1bWZsZXh5Z3JhdmV1bmkxRUY5emFjdXRlemRvdGFjY2VudHVuaTAxM0MubG9jbE1BSHVuaTAxNDYubG9jbE1BSGEuc3MwMWFhY3V0ZS5zczAxYWJyZXZlLnNzMDF1bmkwMUNFLnNzMDFhY2lyY3VtZmxleC5zczAxYWRpZXJlc2lzLnNzMDFhZ3JhdmUuc3MwMWFtYWNyb24uc3MwMWFvZ29uZWsuc3MwMWFyaW5nLnNzMDFhdGlsZGUuc3MwMWEuc3MwMmFhY3V0ZS5zczAyYWJyZXZlLnNzMDJ1bmkwMUNFLnNzMDJhY2lyY3VtZmxleC5zczAyYWRpZXJlc2lzLnNzMDJhZ3JhdmUuc3MwMmFtYWNyb24uc3MwMmFvZ29uZWsuc3MwMmFyaW5nLnNzMDJhdGlsZGUuc3MwMmwuc3MwM2xhY3V0ZS5zczAzbGNhcm9uLnNzMDN1bmkwMTNDLnNzMDNsc2xhc2guc3MwM2FkaWVyZXNpcy5zczA4Y2RvdGFjY2VudC5zczA4ZWRpZXJlc2lzLnNzMDhlZG90YWNjZW50LnNzMDhnZG90YWNjZW50LnNzMDhpLnNzMDhpZGllcmVzaXMuc3MwOGkubG9jbFRSSy5zczA4aWouc3MwOGlvZ29uZWsuc3MwOGouc3MwOG9kaWVyZXNpcy5zczA4dWRpZXJlc2lzLnNzMDh3ZGllcmVzaXMuc3MwOHlkaWVyZXNpcy5zczA4emRvdGFjY2VudC5zczA4YWRpZXJlc2lzLnNzMDEuc3MwOGFkaWVyZXNpcy5zczAyLnNzMDhmX2YubGlnYXRfdC5saWdhZmkubGlnYWZsLmxpZ2FMYW1iZGF1bmkwM0E5bGFtYmRhcGl1bmkyMTA3dW5pMjRGRnVuaTI3NzZ1bmkyNzc3dW5pMjc3OHVuaTI3Nzl1bmkyNzdBdW5pMjc3QnVuaTI3N0N1bmkyNzdEdW5pMjc3RXVuaTI0RUF1bmkyNDYwdW5pMjQ2MXVuaTI0NjJ1bmkyNDYzdW5pMjQ2NHVuaTI0NjV1bmkyNDY2dW5pMjQ2N3VuaTI0Njh6ZXJvLnNzMDlvbmUuc3MwOXplcm8udGZvbmUudGZ0d28udGZ0aHJlZS50ZmZvdXIudGZmaXZlLnRmc2l4LnRmc2V2ZW4udGZlaWdodC50Zm5pbmUudGZ1bmkyMTUzdW5pMjE1NHVuaTIxNTV1bmkyMDgwdW5pMjA4MXVuaTIwODJ1bmkyMDgzdW5pMjA4NHVuaTIwODV1bmkyMDg2dW5pMjA4N3VuaTIwODh1bmkyMDg5dW5pMjA3MHVuaTAwQjl1bmkwMEIydW5pMDBCM3VuaTIwNzR1bmkyMDc1dW5pMjA3NnVuaTIwNzd1bmkyMDc4dW5pMjA3OXVuaTAwQTB1bmkzMDAyaHlwaGVuX2h5cGhlbl9oeXBoZW5fZ3JlYXRlci5saWdhaHlwaGVuX2h5cGhlbl9ncmVhdGVyLmxpZ2FoeXBoZW5fZ3JlYXRlci5saWdhdW5pMzAwM3VuaUZGMDZ1bmlGRjBBdW5pRkYyMHVuaUZGM0N1bmlGRjFBdW5pRkYwQ3VuaUZGMDF1bmlGRjAzdW5pRkYwNXVuaUZGMEV1bmlGRjFGdW5pRkYwMnVuaUZGMDd1bmlGRjFCdW5pRkYwRnBlcmlvZC5zczA4Y29sb24uc3MwOHNlbWljb2xvbi5zczA4ZWxsaXBzaXMuc3MwOGV4Y2xhbS5zczA4ZXhjbGFtZG93bi5zczA4cXVlc3Rpb24uc3MwOHF1ZXN0aW9uZG93bi5zczA4cGVyaW9kY2VudGVyZWQuc3MwOHVuaUZGM0Z1bmlGRjFBLnNzMDh1bmlGRjAxLnNzMDh1bmlGRjBFLnNzMDh1bmlGRjFGLnNzMDh1bmlGRjFCLnNzMDh1bmkwMEFEdW5pMzAxQ3VuaUZGMER1bmkzMDA4dW5pMzAwOXVuaTMwMTB1bmkzMDExdW5pRkY1QnVuaUZGNUR1bmkzMDBDdW5pMzAwRHVuaTMwMEF1bmkzMDBCdW5pMzAxNHVuaTMwMTV1bmkzMDBFdW5pMzAwRnVuaTMwMTZ1bmkzMDE3dW5pRkYzQnVuaUZGM0R1bmlGRjA4dW5pRkYwOXVuaTBFM0ZsZXNzX2h5cGhlbi5saWdhbGVzc19oeXBoZW5faHlwaGVuLmxpZ2FsZXNzX2h5cGhlbl9oeXBoZW5faHlwaGVuLmxpZ2FsZXNzX2h5cGhlbl9ncmVhdGVyLmxpZ2F1bmkyNjM5c21pbGVmYWNldW5pMjExN21pbnV0ZXNlY29uZHVuaTIxMTZ1bmkyNDBDdW5pMjNDRXVuaTI0MEJFdXJvdW5pMjBCNHVuaTIwQkR1bmkyMEI5dW5pMjBBQW5vdGVxdWFsZ3JlYXRlcmVxdWFsbGVzc2VxdWFsYXBwcm94ZXF1YWxpbmZpbml0eWludGVncmFsdW5pMjIwNnByb2R1Y3RzdW1tYXRpb25yYWRpY2FscGFydGlhbGRpZmZ1bmkwMEI1YXJyb3d1cHVuaTIxOTdhcnJvd3JpZ2h0dW5pMjE5OGFycm93ZG93bnVuaTIxOTlhcnJvd2xlZnR1bmkyMTk2YXJyb3dib3RoYXJyb3d1cGRudW5pMjE5RHVuaTIxRTR1bmkyMUU1dW5pMjFBOXVuaTIxQUF1bmkyMUIwdW5pMjFCMXVuaTIxQjN1bmkyMUI0Y2FycmlhZ2VyZXR1cm51bmkyMUU3YXJyb3d1cC5zczA3dW5pMjE5Ny5zczA3YXJyb3dyaWdodC5zczA3dW5pMjE5OC5zczA3YXJyb3dkb3duLnNzMDd1bmkyMTk5LnNzMDdhcnJvd2xlZnQuc3MwN3VuaTIxOTYuc3MwN2Fycm93Ym90aC5zczA3YXJyb3d1cGRuLnNzMDd1bmkyNUNGY2lyY2xldW5pMjVDQ2xvemVuZ2V0cmlhZ3VwdW5pMjVCNnRyaWFnZG51bmkyNUMwdW5pMjVCM3VuaTI1Qjd1bmkyNUJEdW5pMjVDMXVuaTAzMDh1bmkwMzA3Z3JhdmVjb21iYWN1dGVjb21idW5pMDMwQnVuaTAzMEMuYWx0dW5pMDMwMnVuaTAzMEN1bmkwMzA2dW5pMDMwQXRpbGRlY29tYnVuaTAzMDR1bmkwMzEydW5pMDMyNnVuaTAzMjd1bmkwMzI4dW5pMDMzNXVuaTAzMjYubG9jbE1BSHVuaTAzMDguc3MwOHVuaTAzMDcuc3MwOGRpZXJlc2lzLnNzMDhkb3RhY2NlbnQuc3MwOHVuaTAyQkN1bmkwMkI5dW5pMDJDOE51ZXZvR2xpZm9ibGFja0NpcmNsZWRibGFja0NpcmNsZWRTdHJva2Vjb3B5cmlnaHQgbWlzc2luZ0dlaXN0IFJlZ3VsYXIBAQIAAQAFABAAFgAcACIAKAA2AD4ARABrAHUAfgCHAJ8AogCvALoAwQDJANEA1gDkAO8A+wECAVABZQF7AYUBjgGTAZoBpgGwAbMBwwHLAdUB3QHkAeoCBAIQAisCRAJWAmUCcAJ4AoECjwKWAp8CpwKtArICwwLOAtsC6wLwAwYD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AAAAAAAAAAD/9gAAAAD/7AAA/+IAAP/2AAAAAP/YAAAAAP/x/+L/7AAA/9j/5//s/+z/7AAAAAAAAAAAAAAAAP+wAAAAAAAAAAD/5wAA/+cAAAAAAAD/9gAA/7oAAAAAAAAAAAAA//YAAAAAAAAAAAAAAAD/8QAA//H/9gAA/+IAAAAA//EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP9+/+wAFAAAABn/2P/s/7oAAAAAAAD/0//2AAAAAP/sAAAAAP+c//b/nP/i/+IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//YAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/8f+w/+IAAAAAAAr/7AAA/84AAAAAAAAAAAAA/7oAAAAAAAAAAP+wAAD/sP/nAAAAAAAAAAD/7AAA/9gAAAAAAAD/9gAA/84AAAAAAAAAAP/iAAAAAAAAAAAAAAAA/+wAAAAAAAAAAAAAAAAAAAAA/+wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAA//EAAAAAAAAAAAAAAAAAAP/YAAD/7AAAAAD/9gAAAAD/4gAA//EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/7AAA/+IAAAAAAAAAAAAA/9j/2AAAAAAAAAAAAAAAAAAAAAD/7AAAAAAAAAAAAAAAAAAAAAAAAAAA//b/7P/OAAD/9v/nAAAAAAAAAAAAAAAA//gAFAAAAAAAAAAAAAAAAAAAAAD/2AAA/+wAAP/x//EAAP/nAAD/8f/sAAAAAP/2//YAAAAA/+wAAAAAAAD/8QAAAAAAAAAAAAD/ugAA/84ABf/sAAD/2P/iAAD/9v/n//b/9v/OAAD/7AAA//sAAAAAAAAAAP/xAAAAAAAAAAAAAAAAAAD/7P/2/+IAAP/xAAAAAAAA/+L/7AAAAAAAAP/E/+L/xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/sAAAAAP/sAAAAAAAA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AAEBugABAAQAAQCOAB8ABAAAAAEACAABCo4ADAADCqgAmgACABcAAgAMAAAADwAiAAsAJAAlAB8AJwAtACEALwAvACgAMQBGACkASABMAD8ATgBWAEQAWgBgAE0AYgBlAFQAZwB2AFgAeAB8AGgAfgCrAG0ArgC5AJsAuwDAAKcAxQDRAK0A0wEFALoBCQEOAO0BEAETAPMBFQEkAPcBJgEqAQcBLAFkAQwBaQFqAUUBRwqECooAAAqECooAAAqECooAAAqECooAAAqECooAAAqECooAAAqECooAAAqECooAAAqECooAAAqECooAAAqECooAAAAACJwIogAACJwIogAACJwIogAACJwIogAACJwIogAACJwIogAAB6wHsgAAB7gHvgAAB6wHsgAAB7gHvgg2CDwIQgg2CDwIQgg2CDwIQgg2CDwIQgg2CDwIQgg2CDwIQgg2CDwIQgg2CDwIQgg2CDwIQgg2CDwIQgAAB8QAAAAAB8QAAAAACJwIogAACJwIogAACJwIogAACJwIogAACJwIogAACJwIogAACJwIogAAB8oAAAAAB8oAAAhICE4IVAhIB9AIVAhICE4IVAhICE4IVAhICE4IVAhICE4IVAhICE4IVAhICE4IVAhICE4IVAhICE4IVAAAB9YAAAAAB9YAAAAAB9YAAAAAB9wH6AAAB9wH6AAAB9wH6AAACE4IGAAACE4IGAAACE4IGAAACE4IGAAAB+IH6AAACB4IJAAACB4IJAAACB4IJAAACB4IJAAACB4IJAAACFoIYAAACFoIYAAACFoIYAAACFoIYAAACFoIYAAACFoIYAAACFoIYAAAB+4H9AAACFoIYAAACJwIogAAB/oIAAAAB/oIAAAAB/oIAAAAB/oIAAAACAYIMAAACAYIMAAACAYIMAAACAYIMAAACAYIMAAACAYIMAAACAwIEgAACAwIEgAACAwIEgAACAwIEgAACAwIEgqwCrYKvAqwCrYKvAqwCrYKvAqwCrYKvAqwCrYKvAqwCrYKvAqwCrYKvAqwCrYKvAqwCrYKvAqwCrYKvAqwCrYKvAAACGYIbAAACGYIbAAACGYIbAAACGYIbAAACGYIbAAACHIIeAAACHIIeAAACHIIeAAACHIIeAAACHIIeAAACHIIeAAACH4IhAAACH4IhAAACH4IhAAACH4IhAAACE4IGAAACB4IJAAACCoIMAAACCoIMAAACCoIMAAACCoIMAiKCJAIlgiKCJAIlgiKCJAIlgiKCJAIlgiKCJAIlgiKCJAIlgiKCJAIlgiKCJAIlgiKCJAIlgAACJwIogAACJwIogAACJwIogAACJwIogAACJwIogAACJwIogqECooAAAAACJwIogg2CDwIQgg2CDwIQgAACJwIoghICE4IVAhICE4IVAAACFoIYAqwCrYKvAAACGYIbAAACHIIeAAACH4IhAiKCJAIlgiKCJAIlgAACJwIognCCcgJzgnCCcgJzgnCCcgJzgnCCcgJzgnCCcgJzgnCCcgJzgnCCcgJzgnCCcgJzgnCCcgJzgnCCcgJzgnCCcgJzgioCK4ItAAACdQJ2gAACdQJ2gAACdQJ2gAACdQJ2gAACdQJ2gAACdQJ2glECUoJ2glECUoJ2glECUoJ2glECUoJ2glECUoJ2glECUoJ2glECUoJ2glECUoJ2glECUoJ2glECUoJ2gi6CMAIxgAACMwAAAAACMwAAAAACVAAAAAACVAAAAAACVAAAAAACVAAAAAACVAAAAAACVAAAAAACVAAAAAACVAAAAAACSAAAAAACSAAAAAACSAAAAlcCWIAAAlcCWIAAAlcCWIAAAlcCWIAAAlcCWIAAAlcCWIAAAlcCWIAAAlcCVYAAAlcCWIAAAlcCWIAAAlcCWIAAAAACWgAAAAACWgAAAAACWgAAAAACWgAAAAACSAI0gAACSAI0gAACSAI0gAACQ4JXAAACQ4JXAAACQ4JXAAACQ4JXAAACTgI2AAACN4I5AAACRQJGgAACRQJGgAACRQJGgAACRQJGgAACRQJGgAACRQJGgAACdQJ2gAACdQJ2gAACdQJ2gAACdQJ2gAACdQJ2gAACdQJ2gAACdQJ2gAACdQJ2gAACdQJ2gjqCPAI9gAACPwJJgAACPwJJgAACPwJJgAACPwJJgAACQIJCAAACQIJCAAACQIJCAAACQIJCAAACQIJCAAACQIJCAAAAAAK4gAAAAAK4gAAAAAK4gAAAAAK4gAAAAAK4gluCXQJegluCXQJegluCXQJegluCXQJegluCXQJegluCXQJegluCXQJegluCXQJegluCXQJegluCXQJegluCXQJegAACYAJhgAACYAJhgAACYAJhgAACYAJhgAACYAJhgAACYwAAAAACYwAAAAACYwAAAAACYwAAAAACYwAAAAACYwAAAAACZIJmAAACZIJmAAACZIJmAAACZIJmAAACQ4JXAAACRQJGgmeCaQJqgmeCaQJqgmeCaQJqgmeCaQJqgmeCaQJqgmeCaQJqgmeCaQJqgmeCaQJqgmeCaQJqgmeCaQJqgmeCaQJqgmwCbYJvAmwCbYJvAmwCbYJvAmwCbYJvAmwCbYJvAmwCbYJvAmwCbYJvAmwCbYJvAmwCbYJvAmwCbYJvAmwCbYJvAAACSwJMgAACSwJMgAACSAJJgAACSwJMgAACTgJPgnCCcgJzgAACdQJ2glECUoJ2glECUoJ2gAACVAAAAlcCWIAAAlcCWIAAAlcCWIAAAlcCVYAAAlcCWIAAAAACWgAAAAACdQJ2gluCXQJegAACYAJhgAACYwAAAAACZIJmAmeCaQJqgmwCbYJvAnCCcgJzgAACdQJ2gABAUICxgABAUgAAAABAZoCxgABAaAAAAABAScCxgABAWACxgABApoCxgABAd4CxgABAUgCxgABAKsCxgABAVwAAAABAXsCxgABAXsAAAABAVECxgABAV8AAAABAUsCxgABASECxgABASEAAAABATkAAAABAXICxgABAXEAAAABAUwCxgABAUwAAAABAiMAAAABAT0CxwABAT8AAAABALQAAAABAIgCxgABAIgAAAABAXYCxgABAXYAAAABAcgCxgABAcgAAAABATwCxgABATwAAAABARcCxgABARcAAAABAYUAAAABANsCxgABANsAAAABAXMCxgABAXMAAAABAtoAAAABAo4CEAABAo4AAAABAMoCEgABARYCEgABARYAAgABAScCEgABASoAAAABAPQAAAABAbcCEgABAbcAAAABAvoAAAABAq4CEAABAq4AAAABAMUCEgABAQkCEgABAQwAAAABAHoCxgABASMCEgABASMAAAABAHsCxgABAHsAAAABAIcCxgABAIcAAAABAMgCxgABAMgAAAABAW4AAAABASICEAABAR4CEgABAXYCEgABAKYAAAABAHsCEgABAIoCEgABAfAAAAABARwCEgABARwAAAABAZsCEgABAZsAAAABAQ0CEgABARQCEgABARQAAAABAeIAAAABAQwCEgABAQoAAAABAgcAAAABASECEgABAR4AAAABAh0AAwABARoCEgABARkAAAABASICEgABASIAAAAFAAAAAQAIAAEADAAcAAMAJgCGAAIAAgKCApEAAAKTApUAEAABAAMArACtAWYAEwABAUoAAQFQAAEBVgABAVwAAQFiAAEBaAABAW4AAQF0AAEBdAABAXoAAQGAAAEBhgABAYwAAgBaAAIATgAAAFQAAgBaAAEBkgABAZgAAQCrAAAAAQCzAAAAAQCPAAAAAwAIADQAZgACAA4AFAAAABoAIAAmAAECiwAAAAEBUALGAAEEJQAAAAEDewLGAAEDewAAAAIADgAUABoAIAAmACwAAQG9AAAAAQFZAsYAAQFZAAAAAQQ3AAAAAQONAsYAAQONAAAAAgAAAAAADgAAAAAAFAABAOoAAAABAhoAAAAGABAAAQAKAAAAAQAMABwAAQAiALQAAgACAoICjgAAApQClQANAAEAAQKlAA8AAAA+AAAARAAAAEoAAABQAAAAVgAAAFwAAABiAAAAaAAAAGgAAABuAAAAdAAAAHoAAACAAAAAhgAAAIwAAQCnAhIAAQBcAhIAAQCpAhIAAQBTAhIAAQCJAhIAAQBBAhIAAQC6AhIAAQC9AhIAAQCNAhIAAQDXAhIAAQCvAhIAAQBeAhIAAQC2AhIAAQBkAhIAAQAEAAEAbQISAAAAAQAAAAoCsAmaAAJERkxUAA5sYXRuAHoACgABTUFIIAA6AAD//wAVAAAADAAYACQAMAA8AFIAXgBqAHYAggCOAJoApgCyAL4AygDWAOIA7gD6AAD//wAWAAEADQAZACUAMQA9AEgAUwBfAGsAdwCDAI8AmwCnALMAvwDLANcA4wDvAPsAOgAJQVpFIABqQ1JUIACcS0FaIADOTUFIIAEATU9MIAEyTkxEIAFkUk9NIAGWVEFUIAHIVFJLIAH6AAD//wAVAAIADgAaACYAMgA+AFQAYABsAHgAhACQAJwAqAC0AMAAzADYAOQA8AD8AAD//wAWAAMADwAbACcAMwA/AEkAVQBhAG0AeQCFAJEAnQCpALUAwQDNANkA5QDxAP0AAP//ABYABAAQABwAKAA0AEAASgBWAGIAbgB6AIYAkgCeAKoAtgDCAM4A2gDmAPIA/gAA//8AFgAFABEAHQApADUAQQBLAFcAYwBvAHsAhwCTAJ8AqwC3AMMAzwDbAOcA8wD/AAD//wAWAAYAEgAeACoANgBCAEwAWABkAHAAfACIAJQAoACsALgAxADQANwA6AD0AQAAAP//ABYABwATAB8AKwA3AEMATQBZAGUAcQB9AIkAlQChAK0AuQDFANEA3QDpAPUBAQAA//8AFgAIABQAIAAsADgARABOAFoAZgByAH4AigCWAKIArgC6AMYA0gDeAOoA9gECAAD//wAWAAkAFQAhAC0AOQBFAE8AWwBnAHMAfwCLAJcAowCvALsAxwDTAN8A6wD3AQMAAP//ABYACgAWACIALgA6AEYAUABcAGgAdACAAIwAmACkALAAvADIANQA4ADsAPgBBAAA//8AFgALABcAIwAvADsARwBRAF0AaQB1AIEAjQCZAKUAsQC9AMkA1QDhAO0A+QEFAQZhYWx0BiZhYWx0BiZhYWx0BiZhYWx0BiZhYWx0BiZhYWx0BiZhYWx0BiZhYWx0BiZhYWx0BiZhYWx0BiZhYWx0BiZhYWx0BiZjY21wBi5jY21wBi5jY21wBi5jY21wBi5jY21wBi5jY21wBi5jY21wBi5jY21wBi5jY21wBi5jY21wBi5jY21wBi5jY21wBi5kbGlnBjRkbGlnBjRkbGlnBjRkbGlnBjRkbGlnBjRkbGlnBjRkbGlnBjRkbGlnBjRkbGlnBjRkbGlnBjRkbGlnBjRkbGlnBjRmcmFjBjpmcmFjBjpmcmFjBjpmcmFjBjpmcmFjBjpmcmFjBjpmcmFjBjpmcmFjBjpmcmFjBjpmcmFjBjpmcmFjBjpmcmFjBjpmd2lkBkBmd2lkBkBmd2lkBkBmd2lkBkBmd2lkBkBmd2lkBkBmd2lkBkBmd2lkBkBmd2lkBkBmd2lkBkBmd2lkBkBmd2lkBkBsaWdhBkZsaWdhBkZsaWdhBkZsaWdhBkZsaWdhBkZsaWdhBkZsaWdhBkZsaWdhBkZsaWdhBkZsaWdhBkZsaWdhBkZsaWdhBkZsb2NsBkxsb2NsBmRsb2NsBmRsb2NsBmRsb2NsBlJsb2NsBl5sb2NsBlhsb2NsBl5sb2NsBmRsb2NsBmRvcmRuBmpvcmRuBmpvcmRuBmpvcmRuBmpvcmRuBmpvcmRuBmpvcmRuBmpvcmRuBmpvcmRuBmpvcmRuBmpvcmRuBmpvcmRuBmpwbnVtBnJwbnVtBnJwbnVtBnJwbnVtBnJwbnVtBnJwbnVtBnJwbnVtBnJwbnVtBnJwbnVtBnJwbnVtBnJwbnVtBnJwbnVtBnJzaW5mBnhzaW5mBnhzaW5mBnhzaW5mBnhzaW5mBnhzaW5mBnhzaW5mBnhzaW5mBnhzaW5mBnhzaW5mBnhzaW5mBnhzaW5mBnhzczAxBn5zczAxBn5zczAxBn5zczAxBn5zczAxBn5zczAxBn5zczAxBn5zczAxBn5zczAxBn5zczAxBn5zczAxBn5zczAxBn5zczAyBohzczAyBohzczAyBohzczAyBohzczAyBohzczAyBohzczAyBohzczAyBohzczAyBohzczAyBohzczAyBohzczAyBohzczAzBpJzczAzBpJzczAzBpJzczAzBpJzczAzBpJzczAzBpJzczAzBpJzczAzBpJzczAzBpJzczAzBpJzczAzBpJzczAzBpJzczA0BpxzczA0BpxzczA0BpxzczA0BpxzczA0BpxzczA0BpxzczA0BpxzczA0BpxzczA0BpxzczA0BpxzczA0BpxzczA0BpxzczA1BqZzczA1BqZzczA1BqZzczA1BqZzczA1BqZzczA1BqZzczA1BqZzczA1BqZzczA1BqZzczA1BqZzczA1BqZzczA1BqZzczA2BrBzczA2BrBzczA2BrBzczA2BrBzczA2BrBzczA2BrBzczA2BrBzczA2BrBzczA2BrBzczA2BrBzczA2BrBzczA2BrBzczA3BrpzczA3BrpzczA3BrpzczA3BrpzczA3BrpzczA3BrpzczA3BrpzczA3BrpzczA3BrpzczA3BrpzczA3BrpzczA3BrpzczA4BsRzczA4BsRzczA4BsRzczA4BsRzczA4BsRzczA4BsRzczA4BsRzczA4BsRzczA4BsRzczA4BsRzczA4BsRzczA4BsRzczA5Bs5zczA5Bs5zczA5Bs5zczA5Bs5zczA5Bs5zczA5Bs5zczA5Bs5zczA5Bs5zczA5Bs5zczA5Bs5zczA5Bs5zczA5Bs5zdWJzBthzdWJzBthzdWJzBthzdWJzBthzdWJzBthzdWJzBthzdWJzBthzdWJzBthzdWJzBthzdWJzBthzdWJzBthzdWJzBthzdXBzBt5zdXBzBt5zdXBzBt5zdXBzBt5zdXBzBt5zdXBzBt5zdXBzBt5zdXBzBt5zdXBzBt5zdXBzBt5zdXBzBt5zdXBzBt50bnVtBuR0bnVtBuR0bnVtBuR0bnVtBuR0bnVtBuR0bnVt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"}
\ No newline at end of file
diff --git a/deprecated/www/app/(app)/og/geist-semibold-otf.json b/deprecated/www/app/(app)/og/geist-semibold-otf.json
deleted file mode 100644
index 677ef4444d..0000000000
--- a/deprecated/www/app/(app)/og/geist-semibold-otf.json
+++ /dev/null
@@ -1 +0,0 @@
-{"base64Font":"T1RUTwAMAIAAAwBAQ0ZGIHIR/08AABlsAAC8I0dERUZznnHMAADVkAAAAdZHUE9TY4mY0QAA12gAACqMR1NVQsbFMjAAAQH0AAANHE9TLzI+rl/YAAANbAAAAGBjbWFwVC6iugAAEUQAAAgGaGVhZCxmteIAAADUAAAANmhoZWENAAmoAAANSAAAACRobXR4MmWPlAAAAQwAAAw8bWF4cAMPUAAAAADMAAAABm5hbWVgE49UAAANzAAAA3Zwb3N0/58AMgAAGUwAAAAgAABQAAMPAAAAAQAAAAEzMy4X/pdfDzz1AAMD6AAAAADiJx99AAAAAOInH33/3/8ZCSIDuAAAAAcAAgAAAAAAAAHbAFgA7AAAAs4AFwLOABcCzgAXAs4AFwLOABcCzgAXAs4AFwLOABcCzgAXAs4AFwLOABcEAAAXArcAUALVACsC1QArAtUAKwLVACsC1QArAtUAKwLJAFACyQBQAxkAKwMZACsCZwBQAmcAUAJnAFACZwBQAmcAUAJnAFACZwBQAmcAUAJnAFACZwBQAugAKwJYAFAC1gArAtYAKwLWACsC1gArAtYAKwLWACsC1gArAwEAKwLOAFADBwAeAs4AUAEiAFADiwBQASIAUAEi//MBIv/uASIATgEiAAwBIgAAASIAKgEi/+kCaQA3AmkANwJpADcCrwBQAq8AUAKvAFACSgBQAkoAUAJKAFACSgBQAmwABQOGAFAC7ABQAuwAUALsAFAC7ABQAuwAUALpAFAC/AArAvwAKwL8ACsC/AArAvwAKwL8ACsC/AArAv8ALQL8ACsEUAArApgAUAJ6AFAC9gArArEAUAKxAFACsQBQArEAUAKcADUCnAA1ApwANQKcADUCnAA1ApwANQLVAFACZgAbAmYAGwJmABsCZgAbAmYAGwK7AEECuwBBArsAQQK7AEECuwBBArsAQQK7AEECuwBBArsAQQK7AEECuwBBAs0AFwPEABcDxAAXA8QAFwPEABcDxAAXArIAHAKhABcCoQAXAqEAFwKhABcCoQAXAqEAFwJCABwCQwAcAkIAHAJCABwAwAArAkoAUALsAFACugBQAroAUAK6AFACugBQAcoAKwHKACsBygArAcoAKwHKACsBygArAcoAKwHKACsBygArAs4AKwLOACsCzgArAs4AKwLOACsCzgArAs4AFwLVACsCZwBQAmcAUALWACsBIv/xASIATgL8ACsCuwBBA8QAFwKhABcCQgAcAcoAKwHKACsCzgArBJcAFwSEAEECVgApAlYAKQJWACkCVgApAlYAKQJWACkCVgApAlYAKQJWACkCVgApAlYAKQO6ACkCbwBGAkkAKQJJACkCSQApAkkAKQJJACkCSQApAm8AKQKLACkCpgApAl8AKQJTACkCUwApAlMAKQJTACkCUwApAlMAKQJTACkCUwApAlMAKQJTACkCUwApAbAAMgJvACkCbwApAm8AKQJvACkCbwApAm8AKQJvACkCkQApAlkARgJ1ADICWf/oAQ0ARAENAEYBDQBGAQ3/6AEN/+MBDQBEAQ0AAgEN//YBDQAfAQ3/3wI3AEQBNP/9ATT//QE0//0BNP/9AnQARgJ0/+gCdABGAToARgE6AEYBQABGAToARgFAAAADfABGAlkARgJZAEYCWQBGAlkARgJZAEYCWQBGAl8AKQJfACkCXwApAl8AKQJfACkCXwApAl8AKQJQABoCXwApA+AAKQJvAEYCaABGAm8AKQGcAEYBnABGAZwAPQGcAEECMAApAjAAKQIwACkCMAApAjAAKQIwACkCewBGAa0ALQGtAC0BrQAtAa0ALQGtAC0CVQBGAlUARgJVAEYCVQBGAlUARgJVAEYCVQBGAlUARgJVAEYCVQBGAlUARgJJABYDRwAWA0cAFgNHABYDRwAWA0cAFgJ1AC8COgAWAjoAFgI6ABYCOgAWAjoAFgI6ABYCRAA5AkQAOQJEADkCRAA5AMEAKwE6AEYCWQBGAkoAJAJKACQCSgAkAkoAJAJKACQCSgAkAkoAJAJKACQCSgAkAkoAJAJKACQCbwApAm8AKQJvACkCbwApAm8AKQJvACkCbwApAm8AKQJvACkCbwApAm8AKQEgAFABIABQATcATgEgAEoBlQBGAlYAKQJJACkCUwApAlMAKQJvACkBDQBEAQ3/5wENAEQBDQAfAioARAE0//0CXwApAlUARgNHABYCOgAWAkQAOQJKACQCbwApAwAAMgK9ADIC2AAyAwoALQGuACsBrgArAs4AFwKiAFACtwBQAmUAUAJlAFACMwBQApoAPANHADICZwBQAmcAUAJnAFAEAAAcAqUALwLpAE0C6QBNAq0AUAKtAFADCAA3A4YAUALJAFAC/AArAskAUAKYAFACzwArAmYAGwJUABcCVAAXA1kAKwKxABwCmQAlAx0AUAO4AFAECgBQAskAUAKiAFADhwBQAu4APASIADcESQBQApwANQLyACwC8gArASIAUAEi/+8CaQA3AxoAGwQIAFACugA1Ax0AGwLrADIC8gAcAvwAKwL8ABcEHwAcAtYAUAMIAFACoQAXAqIAFwLgABwC2QAlApkAUAEiAFAC6AArAukATQL8ACsCVAAXAlwAKQJxACsCYgBGAfAARgHwAEYBxwBGAh8AMgLUACUCVAApAlQAKQJUACkDtAAvAioAHgJMAEYCTABGAkwARgJ4AEYCeABGAqcAMgLjAEYCUgBGAl8AKQJbAEYCbwBGAkkAKQJDACkCOgAWAjoAFgK8ACkCdQAvAnkARgK0AEYDRgBGA5gARgJbAEYCWgBGA00ARgKaADID9AAyA58ARgIwACkCVwApAlcAKQENAEQBDf/lATT//QJ1ADIDRwBGAmUARgKAADICswAyAuMALwJfACkCbwAWA8EALwKOAEYCqQBGAkkAFgJJABYCmwAvAr4ARgJZAEYBIABQAlMAKQJMAEYCXwApAjoAFgLIABcC9AArAnAAFwKbAC0CVQAlArAAMAGrACYCggA7An8ALwKZAC8CkAA5AogAOQJQACUChgAlAosAOQM1ACkDNQApAzUAKQM1ACkDNQApAzUAKQM1ACkDNQApAzUAKQM1ACkDSQApA0kAKQNJACkDSQApA0kAKQNJACkDSQApA0kAKQNJACkDSQApArAAMAHoABsCdQAWAnUAcQJ1AEACdQArAnUAKwJ1ADkCdQA7AnUAQAJ1ABMCdQA5AlgADANFACsDLQArA2gAKwMNACsDOgArA2AAKwM3ACsDagArA1kAKwM0ACsBkwAtAQ4AHgFqAC0BfAAtAX8AKwFtAC0BawAtAUsAHgF/AC0BcAAtAZMALQEOAB4BagAtAXwALQF/ACsBbQAtAWsALQFLAB4BfwAtAXAALQDsAAAJYAA+BwgAPgSwAD4A5QApAOUAKQEyAFABMgBQApIAKQDzADAA8wAwAkkAKQJJACkA5QApAUIAKQGtACkBhwApAij//wH8ACIB+gArAOMAKQEwAFABNwBQAn4AKQDnAC4A5wAuAkkAKQJJACkA4wApAaYAKQJWACkDkgApAjQAKQNgACkBQgAsAUIAHAGhACsBoQAcAYcAUAGHABwBfwApAX8AKgFrACoBawApAYQAKQGEACkCVgApAlYAKgGKACoBigApAYIAKQGCACoBcwApAXMAKQDnACoBsAArAbAAKwGvACsA6QArAOcAKgJoACoCaAApAXQAKgF0ACkBdwArAMIAKwIMADIClgBQBLAAPgcIAD4JYAA+BwcAPgNJACkDSQApAlgACAOxACsCqAAlAnkAIwJLADUDOQArAk8AKwJPACsDdgBQAZgAKQEBACkBtAAqARwAUAEcAFACQABQAkMAUAROAFACWABMA3YAKwJYADECSQApAkMAKwKcADUC4QA1Ar0ANQLWACoCuwBQA0YAUAJ8ADUCoQAXAi8AKQIvACkB8AAqAi8AKQJ8AFACLwApAiEAKwIdACkCLwApAi8AKgJAACkCDgApAg4AKQHaACkBnQApA1gAKQGrAAkCkwAXAqkAGwIkABwCmgAWAmQAKQJoAFMDMAApBHwAKQLFACsCeQArAx0AKwJ6ACwCxQArAnoAKwMdACwCeQAsBCwAKwLFACwCiQArApwAKwKcACsCkwArApMAKwKWACsClgArApYAKwKYACsClgArA14AFwHOACsCYQAsAvsAKwJhACwBzgArAmEAKwL7ACsCYQAsA1wAKwHOACwDSQArA0kAKwNJACsCPgArA2IAFwMuAFADYgAXAy4AFwNiABcDLgBQA2IAFwMuABcAAAApAAAAKQAAACkAAAApAAAAKQAAACkAAAA3AAAAKQAAACkAAAApAAAAKQAAACkAAAApAAAAKQAAACkAAAApAAAAKQAAACkAAABsAAAAKQAAACkBmQApANgAKQEQACkBEAApAbIAKQGOACkBjgApAYEAKQEZACkBoAApAXQAKQFJACkBHgApAY4AKQDXACkA5gA3AQEAKQC+ACkDNQApA0kAKQABAAADmP8kAGQJYP/f/hQJIgABAAAAAAAAAAAAAAAAAAADDwAEAmoCWAAFAAgCigJYAAAASwKKAlgAAAFeADIBCQAAAAAAAAAAAAAAAKEAAv9AAeX7AAAAAAAAAABWUkNMAMAAIPsCA5j/JABkA9ABBiAAAJcAAAAAAhYCxgAAACAABAAAABUBAgADAAEECQABABwAAAADAAEECQACAA4AHAADAAEECQADADIAKgADAAEECQAEABwAAAADAAEECQAFAD4AXAAD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AAAAAAAAAAAD6AAAAAAAAAAAAAAD4AAAA+AAAAAAAAAD3APeA+AD4gPkAAAAAAAAAAAD4APyAAAD9gAAAAAAAAABAkMCegJLApoCuQKGAnsCXAJdAkkCogI/AlcCPgJMAkACQQKpAqYCqAJFAoUAAgAOAA8AFQAZACQAJQAtADAAOgA9AEAARQBGAEwAVgBYAFkAXQBkAGkAdAB1AHoAewCBAmACTQJhArACWgL9AKwAuAC5AL8AwwDOAM8A1wDaAOUA6QDsAPEA8gD4AQIBBAEFAQkBEAEVASABIQEmAScBLQJeApACXwKuAjoCRAKYAqACmQKhApECiAL7AokBZQJ2Aq8CigMFAo0CrAIyAjMC/gK4AocCRwMGAjEBZgJ3Ah8CHAIgAkYACAADAAYADAAHAAsADQASAB8AGgAcAB0ANgAyADMANAAYAEoAUABNAE4AVABPAqQAUwBuAGoAbABtAHwAVwEPALIArQCwALYAsQC1ALcAvADJAMQAxgDHAOAA3ADdAN4AwgD2APwA+QD6AQAA+wKlAP8BGgEWARgBGQEoAQMBKgAJALMABACuAAoAtAAQALoAEwC9ABQAvgARALsAFgDAABcAwQAgAMoAHgDIACEAywAbAMUAKADSACYA0AAqANQAKQDTAC8A2QAuANgAOQDjADcA4QA4AOIANQDbADEA5AA8AOgAPwDrAEEA7QBDAO8AQgDuAEQA8ABHAPMASQD1AEgA9ABLAPcAUgD+AFEA/QBVAQEAWgEGAFwBCABbAQcAXgEKAGEBDQBgAQwAXwELAGcBEwBmARIAZQERAHMBHwBwARwAawEXAHIBHgBvARsAcQEdAHcBIwB9ASkAfgCCAS4AhAEwAIMBLwAFAK8ALADWACcA0QA+AOoAYgEOAGgBFAMAAwEDDAMCAvwDAwMHAwQC/wLpAuoC7QLxAvIC7wLoAucC8ALrAu4BcAFxAZcBawGPAY4BkQGSAZMBjAGNAZQBdwGBAYgBZwFoAWkBagFuAW8BcgFzAXQBdQF2AYIBgwGFAYQBhgGHAYsBigGJAZABlQGWAbABsQG5AcUBxgHIAccByQHKAc4BzQHMAdMB2AHZAbIBswHaAa0B0gHRAdQB1QHWAc8B0AHXAboBuAHEAcsBmAHbAZkB3AGaAd0BmwHeAWwBrgFtAa8BnAHfAZ0B4AGeAeEBnwHi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aHVuZ2FydW1sYXV0VW1hY3JvblVvZ29uZWtVcmluZ1V0aWxkZVdhY3V0ZVdjaXJjdW1mbGV4V2RpZXJlc2lzV2dyYXZlWWNpcmN1bWZsZXhZZ3JhdmV1bmkxRUY4WmFjdXRlWmRvdGFjY2VudHVuaUE3OEJ1bmkwMTNCLmxvY2xNQUh1bmkwMTQ1LmxvY2xNQUhSLnNzMDRSYWN1dGUuc3MwNFJjYXJvbi5zczA0dW5pMDE1Ni5zczA0SS5zczA1SWFjdXRlLnNzMDVJY2lyY3VtZmxleC5zczA1SWRpZXJlc2lzLnNzMDVJZG90YWNjZW50LnNzMDVJZ3JhdmUuc3MwNUltYWNyb24uc3MwNUlvZ29uZWsuc3MwNUl0aWxkZS5zczA1Ry5zczA2R2JyZXZlLnNzMDZHY2lyY3VtZmxleC5zczA2dW5pMDEyMi5zczA2R2RvdGFjY2VudC5zczA2dW5pMUUyMC5zczA2QWRpZXJlc2lzLnNzMDhDZG90YWNjZW50LnNzMDhFZGllcmVzaXMuc3MwOEVkb3RhY2NlbnQuc3MwOEdkb3RhY2NlbnQuc3MwOElkaWVyZXNpcy5zczA4SWRvdGFjY2VudC5zczA4T2RpZXJlc2lzLnNzMDhVZGllcmVzaXMuc3MwOFdkaWVyZXNpcy5zczA4WWRpZXJlc2lzLnNzMDhaZG90YWNjZW50LnNzMDhJZGllcmVzaXMuc3MwNS5zczA4SWRvdGFjY2VudC5zczA1LnNzMDhHZG90YWNjZW50LnNzMDYuc3MwOEFfSS5kbGlnVV9JLmRsaWdhYnJldmV1bmkwMUNFYW1hY3JvbmFvZ29uZWtjYWN1dGVjY2Fyb25jY2lyY3VtZmxleGNkb3RhY2NlbnRkY2Fyb25kY3JvYXRlY2Fyb25lZG90YWNjZW50ZW1hY3JvbmVvZ29uZWt1bmkxRUJEdW5pMDI1OWdicmV2ZWdjYXJvbmdjaXJjdW1mbGV4dW5pMDEyM2dkb3RhY2NlbnR1bmkxRTIxdW5pMDFFNWhiYXJoY2lyY3VtZmxleGkubG9jbFRSS2ltYWNyb25pb2dvbmVraXRpbGRlaWp1bmkwMjM3dW5pMDA2QTAzMDFqY2lyY3VtZmxleHVuaTAxRTl1bmkwMTM3bGFjdXRlbGNhcm9udW5pMDEzQ25hY3V0ZW5jYXJvbnVuaTAxNDZlbmdvaHVuZ2FydW1sYXV0b21hY3JvbnJhY3V0ZXJjYXJvbnVuaTAxNTdzYWN1dGVzY2VkaWxsYXNjaXJjdW1mbGV4dW5pMDIxOXRiYXJ0Y2Fyb251bmkwMTYzdW5pMDIxQnVicmV2ZXVodW5nYXJ1bWxhdXR1bWFjcm9udW9nb25la3VyaW5ndXRpbGRld2FjdXRld2NpcmN1bWZsZXh3ZGllcmVzaXN3Z3JhdmV5Y2lyY3VtZmxleHlncmF2ZXVuaTFFRjl6YWN1dGV6ZG90YWNjZW50dW5pQTc4Q3VuaTAxM0MubG9jbE1BSHVuaTAxNDYubG9jbE1BSGEuc3MwMWFhY3V0ZS5zczAxYWJyZXZlLnNzMDF1bmkwMUNFLnNzMDFhY2lyY3VtZmxleC5zczAxYWRpZXJlc2lzLnNzMDFhZ3JhdmUuc3MwMWFtYWNyb24uc3MwMWFvZ29uZWsuc3MwMWFyaW5nLnNzMDFhdGlsZGUuc3MwMWEuc3MwMmFhY3V0ZS5zczAyYWJyZXZlLnNzMDJ1bmkwMUNFLnNzMDJhY2lyY3VtZmxleC5zczAyYWRpZXJlc2lzLnNzMDJhZ3JhdmUuc3MwMmFtYWNyb24uc3MwMmFvZ29uZWsuc3MwMmFyaW5nLnNzMDJhdGlsZGUuc3MwMmwuc3MwM2xhY3V0ZS5zczAzbGNhcm9uLnNzMDN1bmkwMTNDLnNzMDNsc2xhc2guc3MwM2FkaWVyZXNpcy5zczA4Y2RvdGFjY2VudC5zczA4ZWRpZXJlc2lzLnNzMDhlZG90YWNjZW50LnNzMDhnZG90YWNjZW50LnNzMDhpLnNzMDhpZGllcmVzaXMuc3MwOGkubG9jbFRSSy5zczA4aW9nb25lay5zczA4aWouc3MwOGouc3MwOG9kaWVyZXNpcy5zczA4dWRpZXJlc2lzLnNzMDh3ZGllcmVzaXMuc3MwOHlkaWVyZXNpcy5zczA4emRvdGFjY2VudC5zczA4YWRpZXJlc2lzLnNzMDEuc3MwOGFkaWVyZXNpcy5zczAyLnNzMDhmX2YubGlnYXRfdC5saWdhdW5pMDQxMHVuaTA0MTF1bmkwNDEydW5pMDQxM3VuaTA0MDN1bmkwNDkwdW5pMDQ5MnVuaTA0MTR1bmkwNDE1dW5pMDQwMHVuaTA0MDF1bmkwNDE2dW5pMDQxN3VuaTA0MTh1bmkwNDE5dW5pMDQxQXVuaTA0MEN1bmkwNDFCdW5pMDQxQ3VuaTA0MUR1bmkwNDFFdW5pMDQxRnVuaTA0MjB1bmkwNDIxdW5pMDQyMnVuaTA0MjN1bmkwNDBFdW5pMDQyNHVuaTA0MjV1bmkwNDI3dW5pMDQyNnVuaTA0Mjh1bmkwNDI5dW5pMDQwRnVuaTA0MkN1bmkwNDJCdW5pMDQyQXVuaTA0MDl1bmkwNDBBdW5pMDQwNXVuaTA0MDR1bmkwNDJEdW5pMDQwNnVuaTA0MDd1bmkwNDA4dW5pMDQwQnVuaTA0MkV1bmkwNDJGdW5pMDQwMnVuaTA0NjJ1bmkwNDZBdW5pMDQ3MnVuaTA0NzR1bmkwNDk2dW5pMDQ5QXVuaTA0QTJ1bmkwNEFFdW5pMDRCMHVuaTA0QjJ1bmkwNEI2dW5pMDRCQXVuaTA0QzB1bmkwNEQ4dW5pMDRFMnVuaTA0RTh1bmkwNEVFdW5pMDQzMHVuaTA0MzF1bmkwNDMydW5pMDQzM3VuaTA0NTN1bmkwNDkxdW5pMDQ5M3VuaTA0MzR1bmkwNDM1dW5pMDQ1MHVuaTA0NTF1bmkwNDM2dW5pMDQzN3VuaTA0Mzh1bmkwNDM5dW5pMDQ1RHVuaTA0M0F1bmkwNDVDdW5pMDQzQnVuaTA0M0N1bmkwNDNEdW5pMDQzRXVuaTA0M0Z1bmkwNDQwdW5pMDQ0MXVuaTA0NDJ1bmkwNDQzdW5pMDQ1RXVuaTA0NDR1bmkwNDQ1dW5pMDQ0N3VuaTA0NDZ1bmkwNDQ4dW5pMDQ0OXVuaTA0NUZ1bmkwNDRDdW5pMDQ0QnVuaTA0NEF1bmkwNDU5dW5pMDQ1QXVuaTA0NTV1bmkwNDU0dW5pMDQ0RHVuaTA0NTZ1bmkwNDU3dW5pMDQ1OHVuaTA0NUJ1bmkwNDRFdW5pMDQ0RnVuaTA0NTJ1bmkwNDYzdW5pMDQ2QnVuaTA0NzN1bmkwNDc1dW5pMDQ5N3VuaTA0OUJ1bmkwNEEzdW5pMDRBRnVuaTA0QjF1bmkwNEIzdW5pMDRCN3VuaTA0QkJ1bmkwNENGdW5pMDREOXVuaTA0RTN1bmkwNEU5dW5pMDRFRkxhbWJkYXVuaTAzQTlsYW1iZGFwaXVuaTIxMDd1bmkyNEZGdW5pMjc3NnVuaTI3Nzd1bmkyNzc4dW5pMjc3OXVuaTI3N0F1bmkyNzdCdW5pMjc3Q3VuaTI3N0R1bmkyNzdFdW5pMjRFQXVuaTI0NjB1bmkyNDYxdW5pMjQ2MnVuaTI0NjN1bmkyNDY0dW5pMjQ2NXVuaTI0NjZ1bmkyNDY3dW5pMjQ2OHplcm8uc3MwOW9uZS5zczA5emVyby50Zm9uZS50ZnR3by50ZnRocmVlLnRmZm91ci50ZmZpdmUudGZzaXgudGZzZXZlbi50ZmVpZ2h0LnRmbmluZS50ZnVuaTIxNTN1bmkyMTU0dW5pMjE1NXVuaTIwODB1bmkyMDgxdW5pMjA4MnVuaTIwODN1bmkyMDg0dW5pMjA4NXVuaTIwODZ1bmkyMDg3dW5pMjA4OHVuaTIwODl1bmkyMDcwdW5pMDBCOXVuaTAwQjJ1bmkwMEIzdW5pMjA3NHVuaTIwNzV1bmkyMDc2dW5pMjA3N3VuaTIwNzh1bmkyMDc5dW5pMDBBMGh5cGhlbl9oeXBoZW5faHlwaGVuX2dyZWF0ZXIubGlnYWh5cGhlbl9oeXBoZW5fZ3JlYXRlci5saWdhaHlwaGVuX2dyZWF0ZXIubGlnYXVuaTMwMDNwZXJpb2Quc3MwOGNvbG9uLnNzMDhzZW1pY29sb24uc3MwOGVsbGlwc2lzLnNzMDhleGNsYW0uc3MwOGV4Y2xhbWRvd24uc3MwOHF1ZXN0aW9uLnNzMDhxdWVzdGlvbmRvd24uc3MwOHBlcmlvZGNlbnRlcmVkLnNzMDh1bmkzMDFDdW5pMzAwOHVuaTMwMDl1bmkzMDEwdW5pMzAxMXVuaTMwMEN1bmkzMDBEdW5pMzAwQXVuaTMwMEJ1bmkzMDE0dW5pMzAxNXVuaTMwMEV1bmkzMDBGdW5pMzAxNnVuaTMwMTd1bmkwRTNGbGVzc19oeXBoZW4ubGlnYWxlc3NfaHlwaGVuX2h5cGhlbi5saWdhbGVzc19oeXBoZW5faHlwaGVuX2h5cGhlbi5saWdhbGVzc19oeXBoZW5fZ3JlYXRlci5saWdhdW5pMjYzOXNtaWxlZmFjZXVuaUY4RkZ1bmkyMTE3bWludXRlc2Vjb25kdW5pMjExNnVuaTI0MEN1bmkyM0NFdW5pMjQwQkV1cm91bmkyMEI0dW5pMjBCRHVuaTIwQjl1bmkyMEFBbm90ZXF1YWxncmVhdGVyZXF1YWxsZXNzZXF1YWxhcHByb3hlcXVhbGluZmluaXR5aW50ZWdyYWx1bmkyMjA2cHJvZHVjdHN1bW1hdGlvbnJhZGljYWxwYXJ0aWFsZGlmZnVuaTAwQjVhcnJvd3VwdW5pMjE5N2Fycm93cmlnaHR1bmkyMTk4YXJyb3dkb3dudW5pMjE5OWFycm93bGVmdHVuaTIxOTZhcnJvd2JvdGhhcnJvd3VwZG51bmkyMTlEdW5pMjFFNHVuaTIxRTV1bmkyMUE5dW5pMjFBQXVuaTIxQjB1bmkyMUIxdW5pMjFCM3VuaTIxQjRjYXJyaWFnZXJldHVybnVuaTIxRTdhcnJvd3VwLnNzMDd1bmkyMTk3LnNzMDdhcnJvd3JpZ2h0LnNzMDd1bmkyMTk4LnNzMDdhcnJvd2Rvd24uc3MwN3VuaTIxOTkuc3MwN2Fycm93bGVmdC5zczA3dW5pMjE5Ni5zczA3YXJyb3dib3RoLnNzMDdhcnJvd3VwZG4uc3MwN3VuaTI1Q0ZjaXJjbGV1bmkyNUNDbG96ZW5nZXRyaWFndXB1bmkyNUI2dHJpYWdkbnVuaTI1QzB1bmkyNUIzdW5pMjVCN3VuaTI1QkR1bmkyNUMxdW5pMDMwNi5jeXVuaTAzMDh1bmkwMzA3Z3JhdmVjb21iYWN1dGVjb21idW5pMDMwQnVuaTAzMEMuYWx0dW5pMDMwMnVuaTAzMEN1bmkwMzA2dW5pMDMwQXRpbGRlY29tYnVuaTAzMDR1bmkwMzEydW5pMDMyNnVuaTAzMjYubG9jbE1BSHVuaTAzMjd1bmkwMzI4dW5pMDMzNXVuaTAzMDguc3MwOHVuaTAzMDcuc3MwOGRpZXJlc2lzLnNzMDhkb3RhY2NlbnQuc3MwOHVuaTAyQkN1bmkwMkI5dW5pMDJDOGJsYWNrQ2lyY2xlZGJsYWNrQ2lyY2xlZFN0cm9rZTAwMS4yMDBjb3B5cmlnaHQgbWlzc2luZ0dlaXN0IFNlbWlCb2xkU2VtaUJvbGQA6QIAAQAMABEAFgAcADEAPABEAEgATgB1AH4AgQCHAIwAkQCUAJkAngC0ALgAwwEMARMBGwEgASgBMAFcAWABdQGCAYoBkQGYAaIBqwH2AhUCLwJFAk8CVAJbAmECkAKpAsAC0QLcAuYC7QL0AwADBgMlAysDLwNBA04D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AAUBlwGXAAUBmgGaAAQBpQGlAAQBpwGnAAQB7AHsAAMB7gHuAAMB8AHwAAIB8QHxAAQB8wHzAAkB9AH0AAgB9QH1AAYB9gH2AAoB9wH3AAQB+AH4AAUB+QH5AAICDwIPAAQCTAJMAAMCVwJXAAcCXQJdAAECiQKJAAQCzwLPAAMAAgAIAAIACgXUAAEAWgAEAAAAKAOsAK4DrAOsA6wDrAOsA6wDrAOsA6wDrAC4A6wA0gHQAdAB0AHQAdAB1gOsA6wDsgSwBbIFsgWyBbgFvgW+Bb4FvgW+BcQFxAXEBcQFxAXEAAEAKAANAA4AGQAaABsAHAAdAB4AHwAgACEAIgAkAFUAWQBkAGUAZgBnAGgAewCdAJ4A6QEFAQYBBwEIAYkBrAGtAa4BrwHCAcMBxAHeAeIB4wHrAAIAGf/zARD/7AAGAM7/9gDl/+wA5//sAOj/7AFh//YCfP/2AD8Auf/uALr/7gC7/+4AvP/uAL3/7gC+/+4Av//uAMD/7gDB/+4Awv/uAMP/7gDE/+4Axf/uAMb/7gDH/+4AyP/uAMn/7gDK/+4Ay//uAMz/7gDN/+4Az//uAND/7gDR/+4A0v/uANP/7gDU/+4A1f/uANb/7gD4/+4A+f/uAPr/7gD7/+4A/P/uAP3/7gD+/+4A///uAQD/7gEB/+4BBP/uAQn/7gEK/+4BC//uAQz/7gEN/+4BDv/uAT//7gFA/+4BQf/uAUL/7gFD/+4BRP/uAUX/7gFG/+4BR//uAUj/7gFJ/+4BUP/uAVH/7gFS/+4BU//uAVr/7gFg/+4AAQAC/6AAdQCs/7kArf+5AK7/uQCv/7kAsP+5ALH/uQCy/7kAs/+5ALT/uQC1/7kAtv+5ALf/uQC5/64Auv+uALv/rgC8/64Avf+uAL7/rgC//64AwP+uAMH/rgDC/64Aw/+uAMT/rgDF/64Axv+uAMf/rgDI/64Ayf+uAMr/rgDL/64AzP+uAM3/rgDP/64A0P+uANH/rgDS/64A0/+uANT/rgDV/64A1v+uAOn/6ADq/+gA6//oAPH/6ADy/+gA8//oAPT/6AD1/+gA9v/oAPf/6AD4/64A+f+uAPr/rgD7/64A/P+uAP3/rgD+/64A//+uAQD/rgEB/64BAv/oAQP/6AEE/64BBf/oAQb/6AEH/+gBCP/oAQn/rgEK/64BC/+uAQz/rgEN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AO0AzwDvAQ4A1gEQATAA9gEyAUsBFwFNAWEBMQFkAWQBRgFnAWoBRwFsAXYBSwF4AYQBVgGGAYYBYwGJAZIBZAGVAZ0BbgGfAZ8BdwGhAaEBeAGkAacBeQGpAbkBfQG7AcoBjgHNAc0BngHRAdoBnwHcAekBqQHrAewBtwHuAe4BuQHwAfIBugH6AfoBvQIPAg8BvgJMAk0BvwJ8AnwBwQKGAoYBwgKJAokBwwKhAqEBxALPAs8BxQACAKcADQANAAMADgAOAAEADwAUAAIAFQAVAAcAGQAiAAMAIwAjAAcAJAAkAAQAJQAsAAUALQAwAA8AMQAxAAsAMgA5AA8AOgA8AAsAPQA/AA0AQABEAAYARQBLAA8ATABUAAcAVQBVAAMAVgBWAAgAWABYAAcAWQBcAAkAXQBiAAcAZABoAAoAaQBzAAsAdAB5AAwAegB6AA0AewCAAAwAgQCEAA4AhgCGAAYAhwCHAA8AiACLAAkAlQCaAAUAnACcAAIAnQCeAAMAnwCfAAUAoAChAA8AogCiAAcAowCjAAsApAClAAwApgCmAA4AqQCpAAUArAC2ABIAtwC+ABQAvwC/AA8AwgDNABQAzgDOABEAzwDWABcA1wDZABMA2gDlAA8A5wDoAA8A6QDrABkA7ADtABIA7wDwABIA8QD3ABMA+AEDABQBBAEEABcBBQEIABUBCQEOABQBEAEUABYBFQEfABcBIAElABgBJgEmABkBJwEsABgBLQEwABoBMgEyABIBMwE+ABMBPwFJABcBSgFLAA8BTQFOAA8BTwFPABIBUAFSABQBUwFTABcBVAFZAA8BWgFaABQBWwFbABcBXAFdABgBXgFeABoBXwFfABMBYAFgABcBYQFhABEBZAFkABYBaAFpAAEBagFqAAoBbAFtAAoBbwFxAAMBcgFyAA0BcwFzAAEBdAF1AA8BdgF2AA0BeAF6AA8BewF7AAcBfAF8AA8BfQF9AAgBfgF+AAIBfwF/AAoBgAGBAAwBggGCAAcBgwGDAA0BhAGEABsBhgGGAA8BiQGJAAEBigGKABsBiwGNAAEBjgGOAAcBjwGPAAIBkAGQAAcBkQGSABsBlQGVAAcBlgGWABsBlwGYAAEBmQGZAA0BmgGaAAcBmwGbAAwBnAGdAA0BnwGfAAwBoQGhAA0BpAGkABsBpQGlAAcBpgGmAA8BpwGnAAcBqQGpABIBqgGrABQBrAGvABUBsAGzABQBtAG0ABkBtQG1ABQBtgG4ABcBuQG5ABkBuwG9ABcBvgG+ABQBvwG/ABMBwAHBABQBwgHCABUBwwHEABgBxQHFABQBxgHGABkBxwHKABcBzQHNABcB0QHTABQB1AHVABcB1gHWAA8B1wHXABMB2AHYABQB2QHZABcB2gHaABMB3AHcABkB3QHdABQB3gHeABgB3wHgABkB4QHhAA8B4gHjABgB5AHkABkB5QHlABcB5gHmABMB5wHnAA8B6AHoABQB6QHpABcB6wHrABgB8AHwAAIB8QHxAAcB8gHyABsB+gH6AAcCDwIPAAcCTAJMAAwCfAJ8ABEChgKGABACiQKJAAcCoQKhABsAAgCxAAIADQATAA4ADgAYAA8AFAADABUAFgAYABcAGAADABkAIgAYACMAIwADACQAJAABACUALAADAC0AOQAYADoAPAACAD0AQgABAEMAQwAYAEQARAAWAEUASwAYAEwAVQADAFYAVwAYAFgAWAADAFkAXAAYAF0AYgADAGQAaAAEAGkAcwAFAHQAeQAHAHoAegAXAHsAgAAHAIYAiwAYAJUAmgADAJsAmwATAJwAnAADAJ0AngAYAJ8AnwADAKAAoQAYAKIAogADAKMAowAFAKQApQAHAKkAqQADAKoAqgATAKsAqwAFAKwAtwAIALgAuAAYALkAzQANAM4AzgAKAM8A1gANANcA5AAYAOUA5QAUAOcA6AAUAOkA6wAMAOwA8AALAPEA9wAMAPgBAQANAQIBAwAMAQQBBAANAQUBCAAMAQkBDgANARABFAAPARUBHwARASABJQASASYBJgAVAScBLAASAS0BMAAgATIBMgALATMBMwAMATQBPgAIAT8BSQANAUoBSwAYAU0BTgAYAU8BTwAIAVABUwANAVQBWQAYAVoBWgANAVsBWwARAVwBXQASAV4BXgAgAV8BXwAIAWABYAANAWEBYQAKAWQBZAAPAWUBZgAJAWcBZwATAWgBawAYAWwBbQABAW4BbgATAW8BcQAYAXIBcgAXAXMBcwAQAXQBdwAYAXgBeAAfAXkBegAYAXsBewADAXwBfQAYAX4BfgADAX8BfwAEAYABgQAGAYIBggADAYMBgwAXAYUBigAYAYwBjAACAY0BjQABAY4BkAADAZEBkgABAZQBlAAE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BawFsgWsBWQF9AX6BfQF+gX0BfoF9AX6BfQF+gX0BfoF9AX6BWoFcAX0BfoGMAY2BYgFdgWIBXYFiAV2BYgFfAWIBYIFiAWCBYgFggWIBYIFiAWCBYgFjgWaBZQFmgWUBZoFlAWaBZQFmgWgC3wLggt8C4ILfAuCC3wLggt8C4ILfAuCC3wLggt8C4ILfAuCC3wLggt8C4IGAAYGBgAGBgYABgYGAAYGBgAGBgYMBhIGDAYSBgwGEgYMBhIGDAYSBgwGEgYYBh4GGAYeBhgGHgYYBh4F6AWmBawFsgW+BbgFvgW4Bb4FuAW+BcQGJAYqBiQGKgYkBioGJAYqBiQGKgYkBioGJAYqBiQGKgYkBioGMAY2BjAGNgYwBjYGMAXKBjAGNgYwBjYLYAAABdAGNgXWBdwF1gXcBjAF4gXoBe4F6AXuBfQF+gt8C4IGAAYGBgwGEgYYBh4GJAYqBiQGKgYwBjYHXAcUB1wHFAdcBxQHXAcUB1wHFAdcBxQHXAcUB1wHFAdcBxQHXAcUB1wHFAY8BkIHOAc+BzgHPgc4Bz4HOAc+BzgHPgc4Bz4GSAZOBkgGTgZIBk4HGgc+BxoHPgcaBz4HGgc+BxoHPgcaBz4HGgc+BxoHPgcaBz4HGgc+BlQGWgcgAAAHIAAAByAAAAcgAAAHIAAAByAAAAcgAAAHIAAABnIAAAZgAAAGcgAAByYAAAcmAAAHJgAAByYAAAcmAAAHJgAAByYAAAcmAAAHJgAAByYAAAZmAAAHMgAABzIAAAcyAAAHMgAABnIGbAZyBmwGcgZ4BtIMxgbSDMYG0gzGBtIG2AZ+BoQGigaQBt4GlgbeBpYG3gaWBt4G5AbeBpYG3gaWBzgHPgc4Bz4HOAc+BzgHPgc4Bz4HOAc+BzgHPgc4Bz4HOAc+BpwGogauBqgGrgaoBq4GqAauBrQGwAa6BsAGugbABroGwAa6BsAGugbABsYLngukC54LpAueC6QLngukC54GzAdEB0oHRAdKB0QHSgdEB0oHRAdKB0QHSgdEB0oHRAdKB0QHSgdEB0oHRAdKB1AHgAdQB4AHUAeAB1AHgAdQB4AHVgAAB1YAAAdWAAAHVgAAB1YAAAdWAAAHXAd0B1wHdAdcB3QHXAd0BtIG2AbeBuQHYgdoB2IHaAdiB2gHYgdoB2IHaAdiB2gHYgdoB2IHaAdiB2gHYgdoB2IHaAduB3QHbgd0B24HdAduB3QHbgd0B24HdAduB3QHbgd0B24HdAduB3QHbgd0BvwG6gb8BuoG8Ab2BvwHAgcIBw4HXAcUBzgHPgcaBz4HGgc+ByAAAAcmAAAHJgAAByYAAAcmAAAHLAAABzIAAAc4Bz4HRAdKB1AHgAdWAAAHXAd0B2IHaAduB3QHegeAAAEBRQLGAAEBSwAAAAEBlQLGAAEBmwAAAAEBev8ZAAEDCgLGAAEB6ALGAAEBYgAAAAEBVALGAAEBYv8ZAAEBOQAAAAEAswLGAAEBXAAAAAEBdQAAAAEBgALGAAEBgAAAAAEBZQAAAAEBZf8ZAAEBVgAAAAEBVgLGAAEBV/8ZAAEBMwAAAAEBMwLGAAEBM/8ZAAEBOv8ZAAEBfwLGAAEBdf8ZAAEBUwAAAAEBUwLGAAEBU/8ZAAEBe/8ZAAEBeALGAAEBQALHAAEBQQAAAAEBegAAAAEAkQLGAAEAkQAAAAEBfgLGAAEBfgAAAAEB4gLGAAEB4gAAAAEBUQLGAAEBUQAAAAEBKgLGAAEBKgAAAAEA5QLGAAEA5QAAAAEBewLGAAEBewAAAAEClwIUAAEClwAAAAEBOAIWAAEBOAAAAAEBIwIWAAEBIwACAAEArQLLAAEBsAIWAAEBNwAAAAEAhgLLAAEBOP8ZAAEAiQLGAAEAtAAAAAEBvgIWAAEBvgAAAAEBLQAAAAECvQIUAAECvQAAAAEAhgAAAAEA3AIWAAEAh/8ZAAEBHQAAAAEBGwISAAEBHv8ZAAEA/f8ZAAEAhgLGAAEAsv8ZAAEBLQIWAAEBLf8ZAAEAkAAAAAEAjgLGAAEAjgAAAAEAkALGAAEAkP8ZAAEA2wLGAAEA2wAAAAEBHgAAAAEBMAIUAAEBLwIWAAEAhgIWAAEBowIWAAEArQIWAAEBMAIWAAEBMAAAAAEBKAIWAAEBKAAAAAEBpAIWAAEBHgIWAAEBJQIWAAEBGgIWAAEBGQAAAAEBLgIWAAEBJQAAAAEBpALGAAEBpAAAAAQAAAABAAgAAQQ8AAwAAQRCAC4AAgAFAGQAaAAAAL8AwQAFARABFAAIAUoBTgANAtwC3AASABMAKAAoACgAKAAoAC4ALgAuBCoEKgQqBCoEKgA6ADoANAA6AEAARgABATMBTgABATgBCwABAI4BCQABAJABCQABANsBCQABAaQBdQAEAAAAAQAIAAED9gAMAAEEBACOAAIAFQACAAwAAAAZACIACwAwADkAFQBpAHMAHwCMAJQAKgCbAJsAMwCdAJ4ANACgAKEANgCjAKMAOACnAKgAOQCsALcAOwDDAM0ARwDaAOQAUgEBAQEAXQEVAR8AXgE0AUkAaQFPAU8AfwFRAVIAgAFUAVgAggFbAVsAhwFfAWAAiACKA4gDiAOIA4gDiAOIA4gDiAOIA4gDiAEWARYBFgEWARYBFgEWARYBFgEWARwBHAEcARwBHAEcARwBHAEcARwDmgOaA5oDmgOaA5oDmgOaA5oDmgOaASIBIgEiASIBIgEiASIBIgEiA4gBFgEWARwBHAOaASIBIgE6AToBOgE6AToBOgE6AToBOgE6AToBKAFAAUABQAFAAUABQAFAAUABQAFAAS4BRgFGAUYBRgFGAUYBRgFGAUYBRgFGATQBTAFMAUwBTAFMAUwBTAFMAUwBTAFMAVIBUgFSAVIBUgFSAVIBUgFSAVIBUgFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBOgFAAUABRgFGAUYBRgFGAUwBUgFYAAECNgAAAAEA0gAAAAEBngAAAAEDMAAeAAEAiwH4AAEDVQAeAAECNwAAAAEByAAeAAEAxgAAAAECDgAAAAECAwAAAAECKQAAAAQAAAABAAgAAQJUAAwAAQJgAC4AAgAFAL8AwQAAAOwA8AADARABFAAIATIBMgANAUoBTgAOABMAKAAoACgANAA0ADQANAAuAkgCSAJIAkgCSAA0AEAAQAA6AEAARgABAj8CFgABAN8CEgABAN0CEgABAOQCEgABAOYCEgABATECEgAFAAAAAQAIAAEADAAiAAIALADIAAIAAwLmAusAAALtAvcABgL5AvoAEQABAAMAqgCrAWQAEwAAAE4AAABUAAAAlgAAAFoAAABgAAAAZgAAAGwAAABsAAAAcgAAAHgAAAB+AAAAhAAAAIoAAQIOAAECDgABAhQAAQIaAAAAkAAAAJYAAQDBAhYAAQDMAhIAAQCuAhIAAQBjAhIAAQCrAhIAAQDHAhIAAQDBAhIAAQCNAhIAAQDRAhIAAQC6AhIAAQBmAhIAAQDJAhIAAQBsAhIAAwAIACQARgACAAoAAAAQABYAAQFnAsYAAQOzAsYAAQOzAAAAAgAKABAAFgAcAAEBXQLGAAEBXQAAAAEDoALGAAEDoAAAAAIACgAQABYAHAABANcCFgABAPwAAAABAjQCFgABAlkAAAAFAAAAAQAIAAEADACgAAEAEgAeAAEAAQL4AAEAAAAGAAEBLQFOAAEABAACAAYADAABANcBCwABAjQBCwAFAAAAAQAIAAEADAASAAEAGgAgAAEAAQL3AAEAAgCqAKsAAQAAALgAAgAGABgAAgAGAAwAAQK2AAAAAQRsAAAAAgAGAAwAAQHEAAAAAQRZAAAABQAAAAEACAABAAwAEgABABgAJAABAAEC7AABAAEBZAABAAAABgABACMCEgABAAQAAgAGAAwAAQELAoEAAQJnAoEABgAQAAEACgABAAEADAAWAAEAHgBCAAIAAQL0AvcAAAABAAIC9AL1AAQAAAASAAAAEgAAABgAAAAeAAEAbwAAAAEAsgAAAAEA0QAAAAIABgAGAAEAb/8ZAAEAAAAKAmID0AACREZMVAAObGF0bgBAAAQAAAAA//8AFAAAAAEAAwAEAAUADwAQABEAEgATABQAFQAWABcAGAAZABoAGwAcAB0AOgAJQVpFIABoQ1JUIACYS0FaIADITUFIIAD4TU9MIAEoTkxEIAFYUk9NIAGIVEFUIAG4VFJLIAHoAAD//wAUAAAAAgADAAQABQAPABAAEQASABMAFAAVABYAFwAYABkAGgAbABwAHQAA//8AFQAAAAEAAwAEAAUABgAPABAAEQASABMAFAAVABYAFwAYABkAGgAbABwAHQAA//8AFQAAAAEAAwAEAAUABwAPABAAEQASABMAFAAVABYAFwAYABkAGgAbABwAHQAA//8AFQAAAAEAAwAEAAUACAAPABAAEQASABMAFAAVABYAFwAYABkAGgAbABwAHQAA//8AFQAAAAEAAwAEAAUADQAPABAAEQASABMAFAAVABYAFwAYABkAGgAbABwAHQAA//8AFQAAAAEAAwAEAAUADAAPABAAEQASABMAFAAVABYAFwAYABkAGgAbABwAHQAA//8AFQAAAAEAAwAEAAUADgAPABAAEQASABMAFAAVABYAFwAYABkAGgAbABwAHQAA//8AFQAAAAEAAwAEAAUACwAPABAAEQASABMAFAAVABYAFwAYABkAGgAbABwAHQAA//8AFQAAAAEAAwAEAAUACQAPABAAEQASABMAFAAVABYAFwAYABkAGgAbABwAHQAA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"}
\ No newline at end of file
diff --git a/deprecated/www/app/(app)/og/geistmono-regular-otf.json b/deprecated/www/app/(app)/og/geistmono-regular-otf.json
deleted file mode 100644
index e5285e5fde..0000000000
--- a/deprecated/www/app/(app)/og/geistmono-regular-otf.json
+++ /dev/null
@@ -1 +0,0 @@
-{"base64Font":"T1RUTwAMAIAAAwBAQ0ZGINMvNaQAABocAADLSkdERUaOgIu5AADlaAAAAgJHUE9TaW4+HAAA52wAABCMR1NVQtVEIxcAAPf4AAANhE9TLzIF4h4/AAAN8AAAAGBjbWFwOpoBDgAAEcAAAAg6aGVhZC6pukoAAADUAAAANmhoZWEPQwwPAAANzAAAACRobXR4VrH9cAAAAQwAAAy+bWF4cAM5UAAAAADMAAAABm5hbWVaa41VAAAOUAAAA3Bwb3N0/58AMgAAGfwAAAAgAABQAAM5AAAAAQAAAAEzM2trAy5fDzz1AAMD6AAAAADiJyGbAAAAAOInIZv/yv8JC3oD9AAAAAcAAgAAAAAAAAHbAFgCWAAAAlgAGgJYABoCWAAaAlgAGgJYABoCWAAaAlgAGgJYABoCWAAaAlgAGgJYABoCWAAKAlgAWgJYACYCWAAmAlgAJgJYACYCWAAmAlgAJgJYAFoCWABaAlj/9gJY//YCWABaAlgAWgJYAFoCWABaAlgAWgJYAFoCWABaAlgAWgJYAFoCWABaAlgAHAJYAGQCWAAmAlgAJgJYACYCWAAmAlgAJgJYACYCWAAmAlgAFAJYAEQCWAAYAlgARAJYAFACWABQAlgAUAJYAFACWABQAlgAUAJYAFACWABQAlgAUAJYACgCWAAoAlgAKAJYADwCWAA8AlgAPAJYAGQCWABkAlgAZAJYAGQCWP/mAlgAPAJYAEYCWABGAlgARgJYAEYCWABGAlgARgJYACYCWAAmAlgAJgJYACYCWAAmAlgAJgJYACYCWAAmAlgAJgJYAAcCWABaAlgAWgJYACYCWABGAlgARgJYAEYCWABGAlgALAJYACwCWAAsAlgALAJYACwCWAAsAlgAJAJYACgCWAAoAlgAKAJYACgCWAAoAlgAPAJYADwCWAA8AlgAPAJYADwCWAA8AlgAPAJYADwCWAA8AlgAPAJYADwCWAAYAlgAKAJYACgCWAAoAlgAKAJYACgCWAAyAlgALAJYACwCWAAsAlgALAJYACwCWAAsAlgAMgJYADICWAAyAlgAMgJYAQACWABkAlgARgJYAEcCWABHAlgARwJYAEcCWAAUAlgAFAJYABQCWAAUAlgAFAJYABQCWAAaAlgAJgJYAFoCWABaAlgAJgJYAFACWABQAlgAJgJYADwCWAAoAlgALAJYADICWAAUAlgANgJYADYCWAA2AlgANgJYADYCWAA2AlgANgJYADYCWAA2AlgANgJYADYCWAANAlgAUAJYAEYCWABGAlgARgJYAEYCWABGAlgARgJYADICWAAyAlgAMgJYADoCWABCAlgAQgJYAEICWABCAlgAQgJYAEICWABCAlgAQgJYAEICWABCAlgAPAJYAEYCWAA8AlgAPAJYADwCWAA8AlgAPAJYADwCWAA8AlgAPAJYAGQCWAAZAlgAAgJYAFACWABQAlgAUAJYAFACWABQAlgAUAJYAFACWABQAlgAUAJYAFACWABuAlgAbgJYAG4CWABuAlgAWgJY//kCWABaAlgAUAJYAFACWABQAlgAUAJYAGQCWAAoAlgAYAJYAGACWABgAlgAYAJYAGACWABgAlgAOgJYADoCWAA6AlgAOgJYADoCWAA6AlgAOgJYACMCWAA6AlgACgJYAFACWABQAlgAMgJYAFoCWABaAlgAWgJYAFoCWABQAlgAUAJYAFACWABQAlgAUAJYAFACWABMAlgAMgJYADICWAAyAlgAMgJYADICWABaAlgAWgJYAFoCWABaAlgAWgJYAFoCWABaAlgAWgJYAFoCWABaAlgAWgJYADYCWAAUAlgAFAJYABQCWAAUAlgAFAJYADYCWAA2AlgANgJYADYCWAA2AlgANgJYADYCWABSAlgAUgJYAFICWABSAlgBAAJYAFACWABgAlgATgJYAE4CWABOAlgATgJYAE4CWABOAlgATgJYAE4CWABOAlgATgJYAE4CWAA2AlgANgJYADYCWAA2AlgANgJYADYCWAA2AlgANgJYADYCWAA2AlgANgJYAFACWABQAlgAUAJYAFACWABPAlgANgJYAEYCWABCAlgAQgJYADwCWABQAlgAUAJYAFACWABQAlgAbgJYADoCWABaAlgAFAJYADYCWABSAlgATgJYADYCWACPAlgAkQJYABoCWABQAlgAWgJYAGQCWABkAlgAZAJYABMCWAAMAlgAWgJYAFoCWABaAlgABwJYACECWABGAlgARgJYADoCWAA6AlgAFAJYADwCWABEAlgAJgJYAEYCWABaAlgAJgJYACgCWAA0AlgANAJYABkCWAAyAlgAMgJYADwCWAA3AlgAIwJYAEYCWABaAlgAIwJYAB4CWAAFAlgAFAJYACwCWAAmAlgALQJYAFACWABQAlgAKAJYAAUCWAAUAlgALgJYAAUCWAAPAlgAAQJYACYCWAAOAlgABwJYADACWAA1AlgALAJYACsCWAAyAlgAIwJYAEYCWABQAlgAHAJYAEYCWAAmAlgANAJYADYCWAA6AlgAWgJYAJUCWACVAlgAlQJYACkCWAAUAlgAQgJYAEICWABCAlgACwJYAFACWABeAlgAXgJYAF4CWABbAlgAWwJYABkCWAAkAlgAWwJYADoCWABaAlgAUAJYAEYCWABDAlgANgJYADYCWAAXAlgANgJYAEUCWABaAlgAOAJYADgCWABaAlgAUQJYACMCWAAKAlgABQJYABQCWABQAlgAPQJYAD4CWABQAlgAUAJYAG4CWAAZAlgAFAJYAFECWAAZAlgACgJYAA4CWAA6AlgAJQJYAAsCWABaAlgAWwJYADYCWAA2AlgANgJYAEUCWABkAlgAUAJYADwCWABeAlgAOgJYADYCWAAaAlgACQJYADsCWAAQAlgAMwJYADICWAA8AlgAMgJYADICWAAoAlgAPAJYADICWAA8AlgAMgJYADICWAAPAlgADwJYAA8CWAAPAlgADwJYAA8CWAAPAlgADwJYAA8CWAAPAlgADwJYAA8CWAAPAlgADwJYAA8CWAAPAlgADwJYAA8CWAAPAlgADwJYADACWAANAlgAKAJYACgCWAAUAlgAKAJYABECWAAoAlgAKAJYABQCWAARAlgAKAJYAJUCWACzAlgAoAJYAKACWACEAlgApQJYAKUCWACmAlgAnwJYAKgCWACVAlgAswJYAKACWACgAlgAhAJYAKUCWAClAlgApgJYAJ8CWACoAlgAAASwAHwHCACHCWAAPgcIAD4EsAA+BwgAPgSwAD4HCAA+BLAAzQSwAIwHCAGLBwgBAgSwAKIEsADXBLABDgSwAD4HCAA+BLAAaAcIAHwHCADWBLAAKgcIATQEsABsBwgAbAJYAPACWADwAlgA8AJYAPACWAA3AlgA8AJYAPACWABDAlgAQwJYAPACWADDAlgAggJYAKECWAA2AlgAbAJYAGwCWADwAlgA8AJYAPACWAA3AlgA8AJYAPACWABAAlj//wJYAPACWACWAlgAZAJYACgCWABQAlgABgJYAL0CWACXAlgAXwJYAGoCWACpAlgAjgJYAKsCWACmAlgAuQJYAI0CWACqAlgAfwJYAFQCWABWAlgAsAJYAHkCWACqAlgAfwJYALkCWACWAlgA9gJYAJ4CWACcAlgAngJYAOkCWAD2AlgATwJYAE8CWADHAlgAoQJYAKsCWAEAAlgAMgJYAFoHCAAcBLABJQlgATcHCAGDBwgBNQSwATQEsACzBLAAoQcIAD4HCAA+BLAAPgcIAD4HCAA+BwgAPgSwAD4HCAAlBLABBAcIAD4HCAA+BwgAPgSwAD4HCAA+BwgAPgcIAB4JYAA+C7gAPgSwAKAHCADlCWAA5gcIADwEsAD7BwgAPglgAD4HCAA+BwgAPgSwAJEHCAA+BwgAPgSwAIYHCACvBwgAwQcIAOoEsADPBLAAhASwAH0EsACGBLAA2gcIAMEEsAAjAlgACAJYABYCWAAeAlgAKgJYAFACWAAEAlgAMAJYADACWAARAlgAlgJYAN4CWACOAlgBAwJYAQUCWABrAlgAawJYAAUCWAAmAlgATwJYAA4CWAAEAlgACAJYAAQCWAA0AlgARgJYADgCWAAvAlgACgJYABYCWAAhAlgAJQJYABQCWAAvAlgALAJYAD4CWAA+AlgAfgJYAD4CWABQAlgAUAJYAEkCWABIAlgAPgJYAD4CWAA+AlgATwJYAE4CWABaAlgAcwJYAAcCWABuAlgADwJYABECWABGAlgAEQJYACcCWABfAlgADQJYAAQCWAAdAlgAGAJYABECWAAlAlgAHQJYADkCWAAHAlgARgJYAAICWACAAlgAEgJYABQCWAAUAlgAEQJYABECWAASAlgAHgJYAB4CWAAOAlgAEgJYAAICWACLAlgAJgJYABECWAAlAlgAiwJYADkCWAAKAlgAOAJYAAgCWACLAlgAEAJYABACWAACAlgATwJYAAgCWP/KAlgACAJYAJUCWAAIAlgALAJYAAgCWAAzAlgBAQJY/9gCWAEBAlgBAQJYAQEAAACgAAAAoAAAAQAAAADcAAAA3AAAAJYAAAD0AAAAoAAAAKAAAACgAAAA0AAAAI4AAACmAAAA8AAAAPAAAADwAAAAwQAAANQAAABkAAAAnAAAAPYCWACgAQAA3ADcAJYAoACgAKAA0ACOAKYAwQDUAJwA9gDxANwBAAAPAA8AAAABAAADmP8kAGQLuP/K/gwLegABAAAAAAAAAAAAAAAAAAADJgAEArMBkAAFAAgCigJYAAAASwKKAlgAAAFeADIBCQAAAAAAAAAAAAAAAKEAAv8AAa37AAAAAAAAAABWUkNMAMAAIPj/A5j/JABkA/QBAiAAAJcAAAAAAhICxgAAACAABQAAABQA9gADAAEECQABABQAAAADAAEECQACAA4AFAADAAEECQADADgAIgADAAEECQAEACQAWgADAAEECQAFAD4AfgADAAEECQAGACIAvAADAAEECQAIAJAA3gADAAEECQAJAGABbgADAAEECQALADABzgADAAEECQAMADABzgADAAEECQAQABQAAAADAAEECQARAA4AFAADAAEECQEAABIB/gADAAEECQEBAAoCEAADAAEECQECAAoCGgADAAEECQEDAAoCJAADAAEECQEEAAoCLgADAAEECQEFABQCOAADAAEECQEGABYCTAADAAEECQEHABgCYgBHAGUAaQBzAHQAIABNAG8AbgBvAFIAZQBnAHUAbABhAHIAMQAuADIAMAAwADsAVgBSAEMATAA7AEcAZQBpAHMAdABNAG8AbgBvAC0AUgBlAGcAdQBsAGEAcgBHAGUAaQBzAHQAIABNAG8AbgBvACAAUgBlAGcAdQBsAGEAcgBWAGUAcgBzAGkAbwBuACAAMQAuADIAMAAwADsARwBsAHkAcABoAHMAIAAzAC4AMgAgACgAMwAyADQAOQApAEcAZQBpAHMAdABNAG8AbgBvAC0AUgBlAGcAdQBsAGEAcgBCAGEAcwBlAG0AZQBuAHQALgBzAHQAdQBkAGkAbwAsACAAVgBlAHIAYwBlAGwALAAgAEEAbgBkAHIA6QBzACAAQgByAGkAZwBhAG4AdABpACwAIABHAHUAaQBkAG8AIABGAGUAcgByAGUAeQByAGEALAAgAE0AYQB0AGUAbwAgAFoAYQByAGEAZwBvAHoAYQBCAGEAcwBlAG0AZQBuAHQALgBzAHQAdQBkAGkAbwAsACAAQQBuAGQAcgDpAHMAIABCAHIAaQBnAGEAbgB0AGkALAAgAE0AYQB0AGUAbwAgAFoAYQByAGEAZwBvAHoAYQBoAHQAdABwAHMAOgAvAC8AYgBhAHMAZQBtAGUAbgB0AC4AcwB0AHUAZABpAG8ALwBOAG8AIAB0AGEAaQBsACAAYQBBAGwAdAAgAGEAQQBsAHQAIABsAEEAbAB0ACAAUgBBAGwAdAAgAEcAQQBsAHQAIABhAHIAcgBvAHcAcwBSAG8AdQBuAGQAZQBkACAAZABvAHQAUwBsAGEAcwBoAGUAZAAgAHoAZQByAG8AAAACAAAAAwAAABQAAwABAAAAFAAECCYAAAEIAQAABwAIAC8AOQB+AKwBEwErATEBNwE+AUgBTQF+AY8BkgHOAekCGwI3AlkCuQK8AsgC3QMEAwgDDAMSAyYDKAM1A5sDqQO7A8AEDAQaBCMELwQzBDUEOQQ6BEMEXwRjBGsEdQSTBJcEmwSjBLMEtwS7BMAEzwTZBOME6QTvDj8eIR6FHp4evR7zHvkgFCAaIB4gIiAmIDAgMyA6IEQgcCB5IIkgqiCsILQguSC9IQchFyEiIVUhXiGZIZ0hqiGxIbUh5SHnIgIiBiIPIhIiGiIeIisiSCJgImUjJyMrI84kDCQjJGgk6iUAJQIlDCUUJRwlsyW3Jb0lwSXMJc8nfjADMBEwFzAcp4z4////AAAAIAAwADoAoACuARYBLgE0ATkBQQFKAVABjwGSAc0B5AIYAjcCWQK5ArwCxgLYAwADBgMKAxIDJgMnAzUDmwOpA7sDwAQABA4EGwQkBDAENAQ2BDoEOwREBGIEagRyBJAElgSaBKIErgS2BLoEwATPBNgE4gToBO4OPx4gHoAenh68HvIe+CATIBggHCAgICYgMCAyIDkgRCBwIHQggCCqIKwgtCC5IL0hByEWISIhUyFbIZAhnSGpIbAhsyHkIeciAiIGIg8iESIaIh4iKyJIImAiZCMmIysjziQLJCMkYCTqJP8lAiUMJRQlHCWyJbYlvCXAJcolzyd2MAMwCDAUMByni/j///8AAAGtAAAAAAAAAAAAAAAAAAAAAAAAAAD+lADgAAAAAAAA/qD+ZgB8AHgAAAAAAAAAAAAAAAv/+P/5/+3+Pf4w/h/+GwAAAAD9SQAA/WUAAP1qAAD9bAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD80P0EAAAAAAAAAAD0NAAAAADhxAAAAAAAAOI7AAAAAAAA4hLir+J94jXhuOGh4aHhh+Ia4hTiDeIK4gXg1QAA4YsAAOCoAADhTeFE4T/hPuEH4Q3g2uDS4MoAAODB4LjgrOCK4GwAAAAA347e7QAA3pPdkt0HAADeDN3/3fnd8wAAAAAAAAAAAADdMNpy0j0AAAAA0jUAAAmmAAEBCAAAASQBrAHEAo4CuAK+AsQCzgLcAuIAAAAAAzoDPANGAAAAAAAAAAADRANIA1IDWgNeAAAAAAAAAAAAAAAAAAAAAANSA2oAAAOAAAADlAAAA5QAAAOSA8gDygPMA9ID2APaA9wD3gPoA+oAAAAAA+gD6gPsA+4AAAPuA/AAAAP4A/oD/AAAA/wEAAQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPsAAAD7AAAA+4AAAAAAAAAAAAAAAAAAAAAAAAD7gAAAAAAAAAAAAAD5gPoAAAAAAPmAAAAAAAAA+IAAAAAAAAAAAPcA94D4APiA+QAAAAAAAAD4gP0AAAD+AAAAAAAAQI5AnACQQK/At4CpwJxAlICUwI/AscCNQJNAjQCQgI2AjcCzgLLAs0COwKmAAIADgAPABUAGQAkACUALQAwADkAPAA/AEQARQBLAFUAVwBYAFwAYwBoAHMAdAB5AHoAgAJWAkMCVwLVAlADJwCeAKoAqwCxALUAwADBAMkAzADWANoA3QDiAOMA6QDzAPUA9gD6AQEBBgERARIBFwEYAR4CVAKxAlUC0wIbAjoCvQLFAr4CxgKyAqkDJQKqAVECbALUAqsDLwKuAtECEwIUAygC3QKoAj0DMAISAVICbQIAAf0CAQI8AAgAAwAGAAwABwALAA0AEgAfABoAHAAdADUAMQAyADMAGABJAE8ATABNAFMATgLJAFIAbQBpAGsAbAB7AFYBAACkAJ8AogCoAKMApwCpAK4AuwC2ALgAuQDSAM4AzwDQALQA5wDtAOoA6wDxAOwCygDwAQsBBwEJAQoBGQD0ARsACQClAAQAoAAKAKYAEACsABMArwAUALAAEQCtABYAsgAXALMAIAC8AB4AugAhAL0AGwC3ACgAxAAmAMIAKgDGACkAxQAvAMsALgDKADgA1QA2ANMANwDUADQAzQA7ANkAPgDcAEAA3gBCAOAAQQDfAEMA4QBGAOQASADmAEcA5QBKAOgAUQDvAFAA7gBUAPIAWQD3AFsA+QBaAPgAXQD7AGAA/gBfAP0AXgD8AGYBBABlAQMAZAECAHIBEABvAQ0AagEIAHEBDwBuAQwAcAEOAHYBFAB8ARoAfQCBAR8AgwEhAIIBIAAFAKEALADIACcAwwA9ANsAYQD/AGcBBQMqAysDNgMsAyYDLQMxAy4DKQMTAxQDFwMbAxwDGQMSAxEDGgMVAxgBXAFdAYMBVwF7AXoBfQF+AX8BeAF5AYABYwFtAXQBUwFUAVUBVgFaAVsBXgFfAWABYQFiAW4BbwFxAXABcgFzAXcBdgF1AXwBgQGCAZwBnQGlAbEBsgG0AbMBtQG2AboBuQG4Ab8BxAHFAZ4BnwHGAZkBvgG9AcABwQHCAbsBvAHDAaYBpAGwAbcBhAHHAYUByAGGAckBhwHKAVgBmgFZAZsBiAHLAYkBzAGKAc0BiwHOAYwBzwGNAdABjgHRAY8B0gGRAdQBkgHVAZMB1gGUAdcAKwDHAHgBFgB1ARMAdwEVACIAvgB+ARwAfwEdAmoCawJmAmgCaQJnArMCtAI+ArUCrAH+Af8CAgLmAuAC4gLkAugC6QLnAuEC4wLlAtoCyALQAs8CugK4ArwCtwHnAwwDAwMHAwQDCAMFAwkDBgMKAwIDAAMBAlgCWQJeAl8CXAJdAmICYwJaAlsCYAJhAmQCZQCEASIAAAADAAAAAAAA/5wAMgAAAAAAAAAAAAAAAAAAAAAAAAAAAQAEAgABAQESR2Vpc3RNb25vLVJlZ3VsYXIAAQEBKfpxAPpyAfpzAvgYBPsRDANV+4scC3r6iAUcMrkPHDWrEbYdAAC9ExICWQIAAQAHAA4AFQAcACIAKAAzAD0AQwBJAE8AWQBgAGcAbgB1AHsAgQCMAJMAnQCkAKsArwC6AMQAywDSANgA4wDuAPUA/AECAQgBDwEVARsBIgElATIBOQE/AUUBTAFSAVoBZQFsAXMBdwF9AYQBiwGRAZ4BpQGsAbEBtwG9AcgB0QHXAeIB6AHvAfUB/wIGAhUCJAIqAjUCQAJMAlICXQJtAnkCiAKUAqICsQK/As4C3QLrAvoDCAMWAyQDMgNBA1UDWwNiA2kDcAN2A3wDhwORA5cDnQOjA60DtAO7A8IDyQPPA9UD4APnA/ED+AP/BAMEDgQXBB4EJQQrBDIEPQRIBE8EVgRcBGIEaQRvBHUEfAR/BIwEkwSZBJ8EpgSsBLQEvwTGBMoE0ATXBN4E5ATxBPgE/wUEBQoFEAUbBSQFKgU1BTsFQgVIBVIFWQVoBXcFfQWIBZMFnwWvBb0FyAXUBeAF6gX1BfsGBgYRBh0GLQY7BkYGUgZeBmgGcwZ5BoQGjwabBqYGtAbDBtEG4AbvBvUHAwcRBx0HIwcxBz8HTQdbB2oHfQeQB5cHngelB6wHswe6B8EHyAfPB9YH3QfkB+sH8gf5CAAIBwgOCBUIHAgjCCoIMQg4CD8IRghNCFQIWwhiCGkIcAh3CH4IhQiMCJMImgihCKgIrwi2CL0IxAjLCNII2QjgCOcI7gj1CPwJAwkKCREJGAkfCSYJLQk0CTsJQglJCVAJVwleCWUJbAlzCXoJgQmICY8JlgmdCaQJqwmyCbkJwAnHCc4J1QncCeMJ6gnxCfgJ/woGCg0KFAobCiIKKQowCjcKPgpFCkwKUwpaCmEKaApvCnYKfQqECosKkgqZCqAKpwquCrUKvArDCsoK0QrYCt8K5grtCvQK+wsCCwkLEAsXCx4LJQssCzMLOQtAC0YLSAtPC1YLXQtkC2sLcgt5C4ALhwuOC5ULnAujC6oLsQu4C78LxgvNC9QL2wvkC+sL8gv5DAAMBwwODBUMHAwjDCoMMQw4DD8MRgxNDFQMWwxiDGkMcAx3DH4MhQyMDJ4MtwzYDPINBQ0gDTANRQ1bDW0Nhg2eDa8Nvw3TDeQN+w4RDjAOVQ5vDpMOow65DsAOyw7VDuMO8A77DwoPFw8oDzsPQg9JD1APVw9eD2UPbA9zD3oPgQ+ID48Plg+dD6QPqw/CD9UP7Q//EBMQIRAxEEEQVxBvEIEQmxCvEMUQ2BDzEQURHxE6EVQRZBF7EZMRqBHGEesR+BIJEh4SMxJCElcSdBKLEp8SsBLFEtkS7RMJEygTPxNVE2cTfBOTE60TzxPjE+oT8RP3E/0UBBQLFBIUGRQgFCcULhQ1FDkUQBRHFE4UVRRdFGkUchR9FIUUjRSUFJsUpBSrFLYUvRTEFMsU1RTcFOUU7BT1FPwVBRUOFRUVHBUjFSoVMRU4FT8VRhVNFVsVYhVuFXoViRWVFaMVrxW9FckV1xXlFewV8hX5FgAWBxYOFhUWHBYjFioWMRY4Fj8WRhZNFlQWWxZlFmwWcxZ8FoUWjBaXFp4WpRasFrMWvBbDFsoW0RbgFucW7hb1FwEXDRcaFygXLxc2Fz0XSRdbF2IXcxeFQWJyZXZldW5pMDFDREFtYWNyb25Bb2dvbmVrQ2FjdXRlQ2Nhcm9uQ2NpcmN1bWZsZXhDZG90YWNjZW50RGNhcm9uRGNyb2F0RWNhcm9uRWRvdGFjY2VudEVtYWNyb25Fb2dvbmVrdW5pMUVCQ3VuaTAxOEZHYnJldmVHY2Fyb25HY2lyY3VtZmxleHVuaTAxMjJHZG90YWNjZW50dW5pMUUyMHVuaTAxRTRIYmFySGNpcmN1bWZsZXhJZG90YWNjZW50SW1hY3JvbklvZ29uZWtJdGlsZGV1bmkwMDRBMDMwMUpjaXJjdW1mbGV4dW5pMDFFOHVuaTAxMzZMYWN1dGVMY2Fyb251bmkwMTNCTmFjdXRlTmNhcm9udW5pMDE0NUVuZ09odW5nYXJ1bWxhdXRPbWFjcm9uUmFjdXRlUmNhcm9udW5pMDE1NlNhY3V0ZVNjZWRpbGxhU2NpcmN1bWZsZXh1bmkwMjE4dW5pMUU5RVRiYXJUY2Fyb251bmkwMTYydW5pMDIxQVVicmV2ZVVodW5nYXJ1bWxhdXRVbWFjcm9uVW9nb25la1VyaW5nVXRpbGRlV2FjdXRlV2NpcmN1bWZsZXhXZGllcmVzaXNXZ3JhdmVZY2lyY3VtZmxleFlncmF2ZXVuaTFFRjhaYWN1dGVaZG90YWNjZW50dW5pQTc4QnVuaTAxM0IubG9jbE1BSHVuaTAxNDUubG9jbE1BSFIuc3MwNFJhY3V0ZS5zczA0UmNhcm9uLnNzMDR1bmkwMTU2LnNzMDRHLnNzMDZHYnJldmUuc3MwNkdjaXJjdW1mbGV4LnNzMDZ1bmkwMTIyLnNzMDZHZG90YWNjZW50LnNzMDZ1bmkxRTIwLnNzMDZBZGllcmVzaXMuc3MwOENkb3RhY2NlbnQuc3MwOEVkaWVyZXNpcy5zczA4RWRvdGFjY2VudC5zczA4R2RvdGFjY2VudC5zczA4SWRpZXJlc2lzLnNzMDhJZG90YWNjZW50LnNzMDhPZGllcmVzaXMuc3MwOFVkaWVyZXNpcy5zczA4V2RpZXJlc2lzLnNzMDhZZGllcmVzaXMuc3MwOFpkb3RhY2NlbnQuc3MwOEdkb3RhY2NlbnQuc3MwNi5zczA4YWJyZXZldW5pMDFDRWFtYWNyb25hb2dvbmVrY2FjdXRlY2Nhcm9uY2NpcmN1bWZsZXhjZG90YWNjZW50ZGNhcm9uZGNyb2F0ZWNhcm9uZWRvdGFjY2VudGVtYWNyb25lb2dvbmVrdW5pMUVCRHVuaTAyNTlnYnJldmVnY2Fyb25nY2lyY3VtZmxleHVuaTAxMjNnZG90YWNjZW50dW5pMUUyMXVuaTAxRTVoYmFyaGNpcmN1bWZsZXhpLmxvY2xUUktpbWFjcm9uaW9nb25la2l0aWxkZXVuaTAyMzd1bmkwMDZBMDMwMWpjaXJjdW1mbGV4dW5pMDFFOXVuaTAxMzdsYWN1dGVsY2Fyb251bmkwMTNDbmFjdXRlbmNhcm9udW5pMDE0NmVuZ29odW5nYXJ1bWxhdXRvbWFjcm9ucmFjdXRlcmNhcm9udW5pMDE1N3NhY3V0ZXNjZWRpbGxhc2NpcmN1bWZsZXh1bmkwMjE5dGJhcnRjYXJvbnVuaTAxNjN1bmkwMjFCdWJyZXZldWh1bmdhcnVtbGF1dHVtYWNyb251b2dvbmVrdXJpbmd1dGlsZGV3YWN1dGV3Y2lyY3VtZmxleHdkaWVyZXNpc3dncmF2ZXljaXJjdW1mbGV4eWdyYXZldW5pMUVGOXphY3V0ZXpkb3RhY2NlbnR1bmlBNzhDdW5pMDEzQy5sb2NsTUFIdW5pMDE0Ni5sb2NsTUFIYS5zczAxYWFjdXRlLnNzMDFhYnJldmUuc3MwMXVuaTAxQ0Uuc3MwMWFjaXJjdW1mbGV4LnNzMDFhZGllcmVzaXMuc3MwMWFncmF2ZS5zczAxYW1hY3Jvbi5zczAxYW9nb25lay5zczAxYXJpbmcuc3MwMWF0aWxkZS5zczAxYS5zczAyYWFjdXRlLnNzMDJhYnJldmUuc3MwMnVuaTAxQ0Uuc3MwMmFjaXJjdW1mbGV4LnNzMDJhZGllcmVzaXMuc3MwMmFncmF2ZS5zczAyYW1hY3Jvbi5zczAyYW9nb25lay5zczAyYXJpbmcuc3MwMmF0aWxkZS5zczAybC5zczAzbGFjdXRlLnNzMDNsY2Fyb24uc3MwM3VuaTAxM0Muc3MwM2xzbGFzaC5zczAzYWRpZXJlc2lzLnNzMDhjZG90YWNjZW50LnNzMDhlZGllcmVzaXMuc3MwOGVkb3RhY2NlbnQuc3MwOGdkb3RhY2NlbnQuc3MwOGkuc3MwOGlkaWVyZXNpcy5zczA4aS5sb2NsVFJLLnNzMDhpb2dvbmVrLnNzMDhqLnNzMDhvZGllcmVzaXMuc3MwOHVkaWVyZXNpcy5zczA4d2RpZXJlc2lzLnNzMDh5ZGllcmVzaXMuc3MwOHpkb3RhY2NlbnQuc3MwOGFkaWVyZXNpcy5zczAxLnNzMDhhZGllcmVzaXMuc3MwMi5zczA4dW5pMDQxMHVuaTA0MTF1bmkwNDEydW5pMDQxM3VuaTA0MDN1bmkwNDkwdW5pMDQ5MnVuaTA0MTR1bmkwNDE1dW5pMDQwMHVuaTA0MDF1bmkwNDE2dW5pMDQxN3VuaTA0MTh1bmkwNDE5dW5pMDQxQXVuaTA0MEN1bmkwNDFCdW5pMDQxQ3VuaTA0MUR1bmkwNDFFdW5pMDQxRnVuaTA0MjB1bmkwNDIxdW5pMDQyMnVuaTA0MjN1bmkwNDBFdW5pMDQyNHVuaTA0MjV1bmkwNDI3dW5pMDQyNnVuaTA0Mjh1bmkwNDI5dW5pMDQwRnVuaTA0MkN1bmkwNDJCdW5pMDQyQXVuaTA0MDl1bmkwNDBBdW5pMDQwNXVuaTA0MDR1bmkwNDJEdW5pMDQwNnVuaTA0MDd1bmkwNDA4dW5pMDQwQnVuaTA0MkV1bmkwNDJGdW5pMDQwMnVuaTA0NjJ1bmkwNDZBdW5pMDQ3MnVuaTA0NzR1bmkwNDk2dW5pMDQ5QXVuaTA0QTJ1bmkwNEFFdW5pMDRCMHVuaTA0QjJ1bmkwNEI2dW5pMDRCQXVuaTA0QzB1bmkwNEQ4dW5pMDRFMnVuaTA0RTh1bmkwNEVFdW5pMDQzMHVuaTA0MzF1bmkwNDMydW5pMDQzM3VuaTA0NTN1bmkwNDkxdW5pMDQ5M3VuaTA0MzR1bmkwNDM1dW5pMDQ1MHVuaTA0NTF1bmkwNDM2dW5pMDQzN3VuaTA0Mzh1bmkwNDM5dW5pMDQ1RHVuaTA0M0F1bmkwNDVDdW5pMDQzQnVuaTA0M0N1bmkwNDNEdW5pMDQzRXVuaTA0M0Z1bmkwNDQwdW5pMDQ0MXVuaTA0NDJ1bmkwNDQzdW5pMDQ1RXVuaTA0NDR1bmkwNDQ1dW5pMDQ0N3VuaTA0NDZ1bmkwNDQ4dW5pMDQ0OXVuaTA0NUZ1bmkwNDRDdW5pMDQ0QnVuaTA0NEF1bmkwNDU5dW5pMDQ1QXVuaTA0NTV1bmkwNDU0dW5pMDQ0RHVuaTA0NTZ1bmkwNDU3dW5pMDQ1OHVuaTA0NUJ1bmkwNDRFdW5pMDQ0RnVuaTA0NTJ1bmkwNDYzdW5pMDQ2QnVuaTA0NzN1bmkwNDc1dW5pMDQ5N3VuaTA0OUJ1bmkwNEEzdW5pMDRBRnVuaTA0QjF1bmkwNEIzdW5pMDRCN3VuaTA0QkJ1bmkwNENGdW5pMDREOXVuaTA0RTN1bmkwNEU5dW5pMDRFRkxhbWJkYXVuaTAzQTlsYW1iZGFwaXVuaTIxMDd1bmkyNEZGdW5pMjc3NnVuaTI3Nzd1bmkyNzc4dW5pMjc3OXVuaTI3N0F1bmkyNzdCdW5pMjc3Q3VuaTI3N0R1bmkyNzdFdW5pMjRFQXVuaTI0NjB1bmkyNDYxdW5pMjQ2MnVuaTI0NjN1bmkyNDY0dW5pMjQ2NXVuaTI0NjZ1bmkyNDY3dW5pMjQ2OHplcm8uc3MwOXVuaTIxNTN1bmkyMTU0dW5pMjE1NXVuaTIwODB1bmkyMDgxdW5pMjA4MnVuaTIwODN1bmkyMDg0dW5pMjA4NXVuaTIwODZ1bmkyMDg3dW5pMjA4OHVuaTIwODl1bmkyMDcwdW5pMDBCOXVuaTAwQjJ1bmkwMEIzdW5pMjA3NHVuaTIwNzV1bmkyMDc2dW5pMjA3N3VuaTIwNzh1bmkyMDc5dW5pMDBBMGh5cGhlbl9oeXBoZW4ubGlnYWh5cGhlbl9oeXBoZW5faHlwaGVuLmxpZ2FoeXBoZW5faHlwaGVuX2h5cGhlbl9ncmVhdGVyLmxpZ2FoeXBoZW5faHlwaGVuX2dyZWF0ZXIubGlnYWh5cGhlbl9ncmVhdGVyLmxpZ2FoeXBoZW5fZ3JlYXRlcl9ncmVhdGVyLmxpZ2FoeXBoZW5fbGVzcy5saWdhaHlwaGVuX2xlc3NfbGVzcy5saWdhaHlwaGVuX2FzY2lpdGlsZGUubGlnYWJyYWNlbGVmdF9iYXIubGlnYXBlcmlvZF9wZXJpb2RfcGVyaW9kLmxpZ2FwZXJpb2RfcGVyaW9kX2VxdWFsLmxpZ2FwZXJpb2RfZXF1YWwubGlnYWNvbG9uX2VxdWFsLmxpZ2FleGNsYW1fcXVlc3Rpb24ubGlnYWV4Y2xhbV9lcXVhbC5saWdhZXhjbGFtX2VxdWFsX2VxdWFsLmxpZ2FxdWVzdGlvbl9xdWVzdGlvbi5saWdhcXVlc3Rpb25fcXVlc3Rpb25fcXVlc3Rpb24ubGlnYW51bWJlcnNpZ25fbnVtYmVyc2lnbl9udW1iZXJzaWduLmxpZ2FudW1iZXJzaWduX3VuZGVyc2NvcmUubGlnYW51bWJlcnNpZ25fdW5kZXJzY29yZV9wYXJlbmxlZnQubGlnYXNsYXNoX2VxdWFsLmxpZ2FzbGFzaF9lcXVhbF9lcXVhbC5saWdhdW5pMzAwM3BlcmlvZC5zczA4Y29sb24uc3MwOHNlbWljb2xvbi5zczA4ZWxsaXBzaXMuc3MwOGV4Y2xhbS5zczA4ZXhjbGFtZG93bi5zczA4cXVlc3Rpb24uc3MwOHF1ZXN0aW9uZG93bi5zczA4cGVyaW9kY2VudGVyZWQuc3MwOHVuaTMwMUN1bmkzMDA4dW5pMzAwOXVuaTMwMTB1bmkzMDExdW5pMzAwQ3VuaTMwMER1bmkzMDBBdW5pMzAwQnVuaTMwMTR1bmkzMDE1dW5pMzAwRXVuaTMwMEZ1bmkzMDE2dW5pMzAxN3VuaTBFM0ZiYXJfaHlwaGVuX2dyZWF0ZXIubGlnYWJhcl9icmFjZXJpZ2h0LmxpZ2FiYXJfYmFyX2Jhcl9ncmVhdGVyLmxpZ2FiYXJfYmFyX2VxdWFsLmxpZ2FiYXJfYmFyX2dyZWF0ZXIubGlnYWJhcl9lcXVhbC5saWdhYmFyX2dyZWF0ZXIubGlnYWVxdWFsX2VxdWFsLmxpZ2FlcXVhbF9lcXVhbF9lcXVhbC5saWdhZXF1YWxfZXF1YWxfZ3JlYXRlci5saWdhZXF1YWxfZ3JlYXRlci5saWdhZXF1YWxfZ3JlYXRlcl9ncmVhdGVyLmxpZ2FlcXVhbF9sZXNzX2xlc3MubGlnYWVxdWFsX3NsYXNoX2VxdWFsLmxpZ2FncmVhdGVyX2h5cGhlbi5saWdhZ3JlYXRlcl9oeXBoZW5fZ3JlYXRlci5saWdhZ3JlYXRlcl9lcXVhbC5saWdhZ3JlYXRlcl9lcXVhbF9ncmVhdGVyLmxpZ2FncmVhdGVyX2dyZWF0ZXJfaHlwaGVuLmxpZ2FncmVhdGVyX2dyZWF0ZXJfZXF1YWwubGlnYWxlc3NfaHlwaGVuLmxpZ2FsZXNzX2h5cGhlbl9oeXBoZW4ubGlnYWxlc3NfaHlwaGVuX2dyZWF0ZXIubGlnYWxlc3NfaHlwaGVuX2xlc3MubGlnYWxlc3NfZXhjbGFtX2h5cGhlbl9oeXBoZW4ubGlnYWxlc3NfZXhjbGFtX2h5cGhlbl9oeXBoZW5faHlwaGVuLmxpZ2FsZXNzX2Jhci5saWdhbGVzc19iYXJfYmFyLmxpZ2FsZXNzX2Jhcl9iYXJfYmFyLmxpZ2FsZXNzX2Jhcl9ncmVhdGVyLmxpZ2FsZXNzX2VxdWFsLmxpZ2FsZXNzX2VxdWFsX2VxdWFsLmxpZ2FsZXNzX2VxdWFsX2VxdWFsX2dyZWF0ZXIubGlnYWxlc3NfZXF1YWxfZ3JlYXRlci5saWdhbGVzc19lcXVhbF9sZXNzLmxpZ2FsZXNzX2dyZWF0ZXIubGlnYWxlc3NfbGVzc19oeXBoZW4ubGlnYWxlc3NfbGVzc19lcXVhbC5saWdhbGVzc19hc2NpaXRpbGRlLmxpZ2FsZXNzX2FzY2lpdGlsZGVfZ3JlYXRlci5saWdhbGVzc19hc2NpaXRpbGRlX2FzY2lpdGlsZGUubGlnYWxlc3Nfc2xhc2hfZ3JlYXRlci5saWdhYXNjaWl0aWxkZV9oeXBoZW4ubGlnYWFzY2lpdGlsZGVfYXQubGlnYWFzY2lpdGlsZGVfZXF1YWwubGlnYWFzY2lpdGlsZGVfZ3JlYXRlci5saWdhYXNjaWl0aWxkZV9hc2NpaXRpbGRlLmxpZ2Fhc2NpaXRpbGRlX2FzY2lpdGlsZGVfZ3JlYXRlci5saWdhcGVyY2VudF9wZXJjZW50LmxpZ2F1bmlGOEZGdW5pMjExN21pbnV0ZXNlY29uZHVuaTIxMTZ1bmkyNDIzdW5pMjQwQ3VuaTIzMjd1bmkyMzJCdW5pMjMyNnVuaTIzQ0V1bmkyNDBCRXVyb3VuaTIwQjR1bmkyMEJEdW5pMjBCOXVuaTIwQUFub3RlcXVhbGdyZWF0ZXJlcXVhbGxlc3NlcXVhbGFwcHJveGVxdWFsaW5maW5pdHlpbnRlZ3JhbHVuaTIyMDZwcm9kdWN0c3VtbWF0aW9ucmFkaWNhbHBhcnRpYWxkaWZmdW5pMDBCNWFycm93dXB1bmkyMTk3YXJyb3dyaWdodHVuaTIxOThhcnJvd2Rvd251bmkyMTk5YXJyb3dsZWZ0dW5pMjE5NmFycm93Ym90aGFycm93dXBkbnVuaTIxOUR1bmkyMUU0dW5pMjFFNXVuaTIxQTl1bmkyMUFBdW5pMjFCMHVuaTIxQjF1bmkyMUIzdW5pMjFCNGNhcnJpYWdlcmV0dXJudW5pMjFFN2Fycm93dXAuc3MwN3VuaTIxOTcuc3MwN2Fycm93cmlnaHQuc3MwN3VuaTIxOTguc3MwN2Fycm93ZG93bi5zczA3dW5pMjE5OS5zczA3YXJyb3dsZWZ0LnNzMDd1bmkyMTk2LnNzMDdhcnJvd2JvdGguc3MwN2Fycm93dXBkbi5zczA3dW5pMjVDRmNpcmNsZXVuaTI1Q0Nsb3plbmdldHJpYWd1cHVuaTI1QjZ0cmlhZ2RudW5pMjVDMHVuaTI1QjN1bmkyNUI3dW5pMjVCRHVuaTI1QzF1bmkyNTBDdW5pMjUwMHVuaTI1MTR1bmkyNTAydW5pMjUxQ3VuaTAzMDYuY3l1bmkwMzA4dW5pMDMwN2dyYXZlY29tYmFjdXRlY29tYnVuaTAzMEJ1bmkwMzBDLmFsdHVuaTAzMDJ1bmkwMzBDdW5pMDMwNnVuaTAzMEF0aWxkZWNvbWJ1bmkwMzA0dW5pMDMxMnVuaTAzMjZ1bmkwMzI2LmxvY2xNQUh1bmkwMzI3dW5pMDMyOHVuaTAzMzV1bmkwMzA4LnNzMDh1bmkwMzA3LnNzMDhkaWVyZXNpcy5zczA4ZG90YWNjZW50LnNzMDh1bmkwMkJDdW5pMDJCOXVuaTAyQzhibGFja0NpcmNsZWRibGFja0NpcmNsZWRTdHJva2UwMDEuMjAwY29weXJpZ2h0IG1pc3NpbmdHZWlzdCBNb25vIFJlZ3VsYXIA8wIAAQAEAAwAEgAZAB8AJQAqADQANwBCAEsAUQBZAF8ApADQANgA4AEeAVcBdgF7AYgBnwGmAdYB4QH3AgwCFgIdAiQCNgJlAm8CeAKAAoYCogKmArsC2gLrAvYC/wMGAxIDGQMfAyYDMAM0A0MDUQNjA28DeQOAA4kDkAOfA6YD9AP+BBwENwRMBFEEYARxBHwEhwSRBJ4EpwSyBLoEwwTKBNEE3QTlBO0E9QVNBY0FzgYRBjAGNwZJBmQGeAaUBsAGxAbrBvEHAwcWBycHNwc+B0wHWgdfB3YHegd/B4QHkAeiB7MHwwfNB9YH3wfoB/EH/QgFCA0IFQggCC8IgAiTCN4JIQl9CdYKIApsCrcK/AsECwcLTwuVC7gLwgviC/wMMAw6DHQMlQywDNMM1w0PDSENUw1eDW4Ngw2xDdoN+g4kDjMONw5VDn4Opg7ODtoPAA8lDzYPWw+AD5EPow+sD88P7xABECEQQRBgEH4QnBC6ENcQ9BELESYRQBFYEWYRfRGUEasRuhHQEdsR6BH9EgkSHhIqEj4SUhJkEnIS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+0j7swgLi/cOPdnW0fdB0fdcdwv3cMT3OLbct8fEAbvDC3fr9wQB9y8tCgMLFVMGSy0FNe/laQcOnnR2mGsbVWNjPokfC9X4ENdB1RL3eNRC3wsDyfezFfhw2fxwBgsGY/wKBVyGd3JqGwvvCuUL+Qj3bd38nDn3bQYLFc0G5ffeBS4GDvsm0fsX9y4L9zzp9xn3gQv7Kvd0QdX4XHcSC535OAH3mdkD+M8L0xXRBkn3FAUtBgv3DAH3hPcMA/fAC/ju9xQB93D3NAML6/cA9z33PSv3AAt38u0B9zTj8+MDCwAAAAEAAgAOAAAAAAAAAcIAAgBIAAIADAABAA8AIgABACUAKwABAC0ALQABAC8AQwABAEUAUwABAFcAYQABAGMAcgABAHQAeAABAHoAgwABAIUAqQABAKsAswABALUAvwABAMEA8QABAPYA/wABAQEBEAABARIBFgABARgBIQABASMBUAABAVMBUwABAVYBWQABAVsBXQABAWABYwABAWYBZwABAWoBbQABAXoBfwABAYIBggABAYYBhgABAYkBjAABAZABkAABAZIBlQABAZgBmwABAZ0BnwABAaIBpgABAaoBqgABAa0BrQABAa8BsAABAb0BvQABAcABwwABAcUBxQABAckByQABAcwBzAABAdIB1wABAd4B4gAEAeQB5QAEAf0CBgACAhwCMwACAjQCNAAEAjYCNgAEAjkCOQAEAjsCOwAEAkECQgAEAkUCTAABAk0CTQAEAlACUAAEAlICUgAEAlQCVQAEAmYCawABAnQCpAACAqYCpgAEAq0CrgABArECsQAEArUCtQACAr0CwAABAsYCxgABAsoCygABAssCywAEAs0CzgAEAtMC0wAEAt4C3gAEAwEDAQABAxADJAADAAEAAwAAABAAAAAgAAAAKgACAAIDEQMVAAADFwMdAAUAAgABAx4DIQAAAAIAAwMQAxUAAAMXAx0ABgMjAyQADQAAAAEAAAAKAGoAmgACREZMVAAObGF0bgASAEgAAAA6AAlBWkUgAERDUlQgAERLQVogAERNQUggAERNT0wgAEROTEQgAERST00gAERUQVQgAERUUksgAEQAAP//AAIAAQACAAD//wACAAAAAgADbWFyawAUbWFyawAUbWttawAoAAAACAAAAAEAAgADAAQABQAGAAcAAAACAAgACQAKABYBEgMAAx4DdAuMDFwOLA7kDzgABAAAAAEACAABA2oADAACA/wANAACAAYCRQJMAAACZgJrAAgCrQKuAA4CvQLAABACxgLGABQCygLKABUAFg94AAAPeAAAD3gAAA9yAAAAWgBgAGYAAABsAHIPeAAAAHgAAAB+AAAAAACEAIoAAACQAJYAnAAAAKIAAA94AAAK4ArmAKgAAAmuCkQArgC0CsIOygC6AAAAAQBiAhIAAQEtABIAAQEiAhIAAQC5AhIAAQD0ACIAAQEd/6kAAQEr/6kAAQEtAnwAAQErAfwAAQEaAhIAAQE6AnwAAQEkAhIAAQF9AhIAAQEdAhIAAQE4AsYAAQFFAAAAAQBTAhIABAAAAAEACAABAm4ADAACAwAAkgABAEEBUwFWAVcBWAFZAVsBXAFdAWABYQFiAWMBZgFnAWoBawFsAW0BegF7AXwBfQF+AX8BggGGAYkBigGLAYwBkAGSAZMBlAGVAZgBmQGaAZsBnQGeAZ8BogGjAaQBpQGmAaoBrQGvAbABvQHAAcEBwgHDAcUByQHMAdIB0wHUAdUB1gHXAEEJaAAAAQwAAAEGAAABDAAAAQwAAAhgCGYHvghmCGAIZgloDXAJaA1wARIAAAEYAAAJaAAACWgNcAhUCFoJaA1wATYAAAE2AAAJbg1wCWgNcAloDXAJaA1wCWgNcAfWAAABHgEkCWgNcAEqAAABMAAACWgNcAluCXQJaA1wCWgNcAloDXABNgAACXoJgAFCAAABPAAAAUIAAAFCAAAJkgmYCJYJmAmSCZgOGAAADhgAAAlEAAAOGAAACUQAAA4eDXAJhgmMCbwAAAm8AAAJIAkaCLoAAAmqAAAIwAAACK4AAAFIAU4OHg1wDh4AAAiuAAAJaA1wCJwIog4YAAAOHg1wCbwAAAABAUYDjgABAUYCxgABASYCxgABASYDjgABATYCxgABATYAAAABARwCxgABAR0CxgABATACxgABAU8C2gABAU8CEgABAVACEgABATgAAAAEAAAAAQAIAAEImAAMAAEI2AASAAEAAQFrAAEJGAAEAAAAAQAIAAEJSgAMAAEJwAAuAAEADwFTAVsBXAFdAX0BfgGQAZUBnQGeAZ8BwAHBAdMB1AAPCpAKlgqWCpYKnAqcCpwKtAq6CroKugrACsAKnAquAAQAAAABAAgAAQAMACIAAgCeAOwAAgADAxADFQAAAxcDIQAGAyMDJAARAAIAFAACAAwAAAAPACIACwAlACsAHwAtAC0AJgAvAEMAJwBFAFMAPABXAGEASwBjAHIAVgB0AHgAZgB6AIMAawCFAKkAdQCrALMAmgC1AL8AowDBAPEArgD2AP8A3wEBARAA6QESARYA+QEYASEA/gEjAVABCAMBAwEBNgATAAALsAAAC7AAAAuqAAALkgAAC5gAAAueAAALqgAAC7AAAAuwAAALsAAAC7AAAAuqAAALpAABCwIAAQsCAAELCAABCw4AAAuqAAALsAE3BqwAAAamAAAGrAAABqwAAAasAAAGrAAABqYAAAasAAAGrAAABqwAAAasAAAFmAWeBN4FngWYBZ4FmAWeBZgFngTkBZ4FsATqBbAE6gTwBPYE8AT2BaQFqgUCBaoFpAWqBaQFqgWkBaoE/AWqBQIFqgWkBaoFpAWqBaQFqgayBrgGsga4BrIGuAayBrgGsgUIBQ4GuAayBrgGrAAABqwAAAasCrQGpgq0BqwKtAasCrQFaAq0BqYKtAasCrQGrAq0BqwKtAUaAAAFFAAABRoAAAUmBSAFJgUgBSYFLAXyBW4FMgVuBfIFbgXyBTgFPgVEBqwKtAamCrQGrAq0BqwKygasCrQGrAq0BqwKtAamCrQGrAq0BqwKtAamCrQGpgq0BqwKtAasCrQGrAq0BqwKtAVWBVAFSgVQBVYFUAVWBVwGsgq0BWIKtAayCrQGsgq0BrIKtAayCsoGrAq0BqwKtAasCrQGrAq0BqwKygasCrQGpgq0BqwKtAasCrQGrAq0BqYKtAamCrQGrAq0BqwKtAasCrQGrAq0BqwKtAamCrQGrAq0BqwKtAamCrQGrAq0BqYKtAasCrQGrAq0BqYKtAasCrQGrAq0BqYKtAasCrQFaAq0BfIFbgasCrQFgAV6BXQFegWABXoFgAWGBbAHBgWwBwYFsAcGBbAFjAWSBwYFsAcGBqwAAAWYBZ4FpAWqBaQFqgayBrgGrAq0BqwKtAasCrQGrAq0BqwKtAasCrQGrAq0BbAHBga+BsQFtgbEBr4GxAa+BsQGvgbEBr4GxAW2BsQGvgbEBr4GxAa+BsQGvgbEBbwFwgbKBtAFyAbQBsoG0AbKBtAGygbQBc4G0AtiCrQLYgq0C2IKtAbWBtwF2gbcBtYG3AbWBtwG1gbc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ABgAAQIwAAAAAQH4AAAAAQIEAAAAAQIMAAAABAAAAAEACAABAAwAEgABAEAATAABAAEDFgACAAcAPwBDAAAAhQCFAAUAsQCzAAYA3QDhAAkBAQEFAA4BIwEjABMBOwE/ABQAAQAAAAYAAQDgAhIAGQA6ADoAOgA6ADQAOgBAAEAAQABSAFIAUgBSAEYATABMAEwATABMAFIAWABYAFgAWABeAAEBJQISAAEBGAISAAECCAISAAEBpAISAAEBWgJoAAEBkAISAAEBmgISAAEBmQISAAYAEAABAAoAAQABAAwAFgABABwAQAACAAEDHgMhAAAAAQABAx4ABAAAABIAAAASAAAAGAAAAB4AAQEsAAAAAQE9AAAAAQFiAAAAAQAEAAEBLP8iAAYAEAABAAoAAgABAAwAIgABACwAjgACAAMDEAMVAAADFwMdAAYDIwMkAA0AAgABAxIDFQAAAA8AAABcAAAAXAAAAFYAAAA+AAAARAAAAEoAAABWAAAAXAAAAFwAAABcAAAAXAAAAFYAAABQAAAAVgAAAFwAAQFUAhIAAQECAhIAAQEEAhIAAQEfAhIAAQEtAhIAAQEsAhIABAAKABAAFgAcAAEBLALHAAEBVALaAAEBAgLaAAEBBALaAAEAAAAKAeQDGAACREZMVAAObGF0bgASAD4AAAA6AAlBWkUgAGBDUlQgAIhLQVogALBNQUggANhNT0wgAQBOTEQgAShST00gAVBUQVQgAXhUUksgAaAAAP//ABAAAAABAAIAAwANAA4ADwAQABEAEgATABQAFQAWABcAGAAA//8AEQAAAAEAAgADAAQADQAOAA8AEAARABIAEwAUABUAFgAXABgAAP//ABEAAAABAAIAAwAFAA0ADgAPABAAEQASABMAFAAVABYAFwAYAAD//wARAAAAAQACAAMABgANAA4ADwAQABEAEgATABQAFQAWABcAGAAA//8AEQAAAAEAAgADAAsADQAOAA8AEAARABIAEwAUABUAFgAXABgAAP//ABEAAAABAAIAAwAKAA0ADgAPABAAEQASABMAFAAVABYAFwAYAAD//wARAAAAAQACAAMADAANAA4ADwAQABEAEgATABQAFQAWABcAGAAA//8AEQAAAAEAAgADAAkADQAOAA8AEAARABIAEwAUABUAFgAXABgAAP//ABEAAAABAAIAAwAH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"}
\ No newline at end of file
diff --git a/deprecated/www/app/(app)/og/route.tsx b/deprecated/www/app/(app)/og/route.tsx
deleted file mode 100644
index 1710b3212c..0000000000
--- a/deprecated/www/app/(app)/og/route.tsx
+++ /dev/null
@@ -1,117 +0,0 @@
-import { ImageResponse } from "next/og"
-
-async function loadAssets(): Promise<
- { name: string; data: Buffer; weight: 400 | 600; style: "normal" }[]
-> {
- const [
- { base64Font: normal },
- { base64Font: mono },
- { base64Font: semibold },
- ] = await Promise.all([
- import("./geist-regular-otf.json").then((mod) => mod.default || mod),
- import("./geistmono-regular-otf.json").then((mod) => mod.default || mod),
- import("./geist-semibold-otf.json").then((mod) => mod.default || mod),
- ])
-
- return [
- {
- name: "Geist",
- data: Buffer.from(normal, "base64"),
- weight: 400 as const,
- style: "normal" as const,
- },
- {
- name: "Geist Mono",
- data: Buffer.from(mono, "base64"),
- weight: 400 as const,
- style: "normal" as const,
- },
- {
- name: "Geist",
- data: Buffer.from(semibold, "base64"),
- weight: 600 as const,
- style: "normal" as const,
- },
- ]
-}
-
-export async function GET(request: Request) {
- const { searchParams } = new URL(request.url)
- const title = searchParams.get("title")
- const description = searchParams.get("description")
-
- const [fonts] = await Promise.all([loadAssets()])
-
- return new ImageResponse(
- (
-
-
-
-
-
-
-
-
-
-
-
-
-
-
20 ? 64 : 80,
- letterSpacing: "-0.04em",
- }}
- >
- {title}
-
-
- {description}
-
-
-
- ),
- {
- width: 1200,
- height: 628,
- fonts,
- }
- )
-}
diff --git a/deprecated/www/app/(app)/page.tsx b/deprecated/www/app/(app)/page.tsx
deleted file mode 100644
index 278d0a11b7..0000000000
--- a/deprecated/www/app/(app)/page.tsx
+++ /dev/null
@@ -1,99 +0,0 @@
-import { Metadata } from "next"
-import Image from "next/image"
-import Link from "next/link"
-
-import { Announcement } from "@/components/announcement"
-import { CardsDemo } from "@/components/cards"
-import { ExamplesNav } from "@/components/examples-nav"
-import {
- PageActions,
- PageHeader,
- PageHeaderDescription,
- PageHeaderHeading,
-} from "@/components/page-header"
-import { Button } from "@/registry/new-york/ui/button"
-
-const title = "Build your component library"
-const description =
- "A set of beautifully-designed, accessible components and a code distribution platform. Works with your favorite frameworks. Open Source. Open Code."
-
-export const metadata: Metadata = {
- title,
- description,
- openGraph: {
- images: [
- {
- url: `/og?title=${encodeURIComponent(
- title
- )}&description=${encodeURIComponent(description)}`,
- },
- ],
- },
- twitter: {
- card: "summary_large_image",
- images: [
- {
- url: `/og?title=${encodeURIComponent(
- title
- )}&description=${encodeURIComponent(description)}`,
- },
- ],
- },
-}
-
-export default function IndexPage() {
- return (
- <>
-
-
- {title}
- {description}
-
-
- Get Started
-
-
- Browse Blocks
-
-
-
-
-
- >
- )
-}
diff --git a/deprecated/www/app/(app)/themes/layout.tsx b/deprecated/www/app/(app)/themes/layout.tsx
deleted file mode 100644
index e2763d3385..0000000000
--- a/deprecated/www/app/(app)/themes/layout.tsx
+++ /dev/null
@@ -1,72 +0,0 @@
-import { Metadata } from "next"
-
-import { Announcement } from "@/components/announcement"
-import {
- PageActions,
- PageHeader,
- PageHeaderDescription,
- PageHeaderHeading,
-} from "@/components/page-header"
-import { Customizer } from "@/components/theme-customizer"
-import { Button } from "@/registry/new-york/ui/button"
-
-const title = "Add colors. Make it yours."
-const description =
- "Hand-picked themes that you can copy and paste into your apps."
-
-export const metadata: Metadata = {
- title,
- description,
- openGraph: {
- images: [
- {
- url: `/og?title=${encodeURIComponent(
- title
- )}&description=${encodeURIComponent(description)}`,
- },
- ],
- },
- twitter: {
- card: "summary_large_image",
- images: [
- {
- url: `/og?title=${encodeURIComponent(
- title
- )}&description=${encodeURIComponent(description)}`,
- },
- ],
- },
-}
-
-export default function ThemesLayout({
- children,
-}: {
- children: React.ReactNode
-}) {
- return (
- <>
-
-
- {title}
- {description}
-
- New Theme Editor coming soon
-
-
-
-
- >
- )
-}
diff --git a/deprecated/www/app/(app)/themes/page.tsx b/deprecated/www/app/(app)/themes/page.tsx
deleted file mode 100644
index ff5bd3944e..0000000000
--- a/deprecated/www/app/(app)/themes/page.tsx
+++ /dev/null
@@ -1,12 +0,0 @@
-import { CardsDemo } from "@/components/cards"
-import { ThemeWrapper } from "@/components/theme-wrapper"
-
-import "public/registry/themes.css"
-
-export default function ThemesPage() {
- return (
-
-
-
- )
-}
diff --git a/deprecated/www/app/(internal)/icons/layout.tsx b/deprecated/www/app/(internal)/icons/layout.tsx
deleted file mode 100644
index e8fc4e3286..0000000000
--- a/deprecated/www/app/(internal)/icons/layout.tsx
+++ /dev/null
@@ -1,34 +0,0 @@
-import { Metadata } from "next"
-
-import { Announcement } from "@/components/announcement"
-import {
- PageHeader,
- PageHeaderDescription,
- PageHeaderHeading,
-} from "@/components/page-header"
-
-export const metadata: Metadata = {
- title: "Icons",
- description: "All icons in all libraries.",
-}
-
-export default function IconsLayout({
- children,
-}: {
- children: React.ReactNode
-}) {
- return (
-
-
-
- Icons
-
- All icons in all libraries.
-
-
-
-
- )
-}
diff --git a/deprecated/www/app/(internal)/icons/page.tsx b/deprecated/www/app/(internal)/icons/page.tsx
deleted file mode 100644
index 635426d32c..0000000000
--- a/deprecated/www/app/(internal)/icons/page.tsx
+++ /dev/null
@@ -1,52 +0,0 @@
-"use client"
-
-import * as React from "react"
-import { Icons } from "@/__registry__/icons"
-
-import {
- Table,
- TableBody,
- TableCell,
- TableHead,
- TableHeader,
- TableRow,
-} from "@/registry/new-york/ui/table"
-import { iconLibraries } from "@/registry/registry-icons"
-
-export default function IconsPage() {
- return (
-
-
-
-
-
- name
-
- {Object.keys(iconLibraries).map((library) => (
- {library}
- ))}
-
-
-
- {Object.entries(Icons).map(([name, icon]) => (
-
-
- {name}
-
- {Object.entries(iconLibraries).map(([library, name]) => {
- const IconComponent = icon[library as keyof typeof icon]
- return (
-
- Loading...}>
- {IconComponent && }
-
-
- )
- })}
-
- ))}
-
-
-
- )
-}
diff --git a/deprecated/www/app/(internal)/sink/page.tsx b/deprecated/www/app/(internal)/sink/page.tsx
deleted file mode 100644
index ca0e0e6c25..0000000000
--- a/deprecated/www/app/(internal)/sink/page.tsx
+++ /dev/null
@@ -1,3 +0,0 @@
-import SinkPage from "@/registry/new-york/internal/sink/page"
-
-export default SinkPage
diff --git a/deprecated/www/app/(view)/view/styles/[style]/[name]/page.tsx b/deprecated/www/app/(view)/view/styles/[style]/[name]/page.tsx
deleted file mode 100644
index c3c2866c3d..0000000000
--- a/deprecated/www/app/(view)/view/styles/[style]/[name]/page.tsx
+++ /dev/null
@@ -1,101 +0,0 @@
-import * as React from "react"
-import { Metadata } from "next"
-import { notFound } from "next/navigation"
-
-import { siteConfig } from "@/config/site"
-import { getAllBlockIds } from "@/lib/blocks"
-import { absoluteUrl, cn } from "@/lib/utils"
-import { Style, styles } from "@/registry/registry-styles"
-
-import "@/styles/mdx.css"
-import { getRegistryComponent, getRegistryItem } from "@/lib/registry"
-
-const getCachedRegistryItem = React.cache(
- async (name: string, style: Style["name"]) => {
- return await getRegistryItem(name, style)
- }
-)
-
-export const dynamicParams = false
-
-export async function generateMetadata({
- params,
-}: {
- params: {
- style: Style["name"]
- name: string
- }
-}): Promise {
- const { name, style } = params
- const item = await getCachedRegistryItem(name, style)
-
- if (!item) {
- return {}
- }
-
- const title = item.name
- const description = item.description
-
- return {
- title: `${item.name}${item.description ? ` - ${item.description}` : ""}`,
- description,
- openGraph: {
- title,
- description,
- type: "article",
- url: absoluteUrl(`/blocks/${style}/${item.name}`),
- images: [
- {
- url: siteConfig.ogImage,
- width: 1200,
- height: 630,
- alt: siteConfig.name,
- },
- ],
- },
- twitter: {
- card: "summary_large_image",
- title,
- description,
- images: [siteConfig.ogImage],
- creator: "@shadcn",
- },
- }
-}
-
-export async function generateStaticParams() {
- const blockIds = await getAllBlockIds()
- return styles
- .map((style) =>
- blockIds.map((name) => ({
- style: style.name,
- name,
- }))
- )
- .flat()
-}
-
-export default async function BlockPage({
- params,
-}: {
- params: {
- style: Style["name"]
- name: string
- }
-}) {
- const { name, style } = params
- const item = await getCachedRegistryItem(name, style)
- const Component = getRegistryComponent(name, style)
-
- if (!item || !Component) {
- return notFound()
- }
-
- return (
- <>
-
-
-
- >
- )
-}
diff --git a/deprecated/www/app/layout.tsx b/deprecated/www/app/layout.tsx
deleted file mode 100644
index c3e043f453..0000000000
--- a/deprecated/www/app/layout.tsx
+++ /dev/null
@@ -1,122 +0,0 @@
-import "@/styles/globals.css"
-import { Metadata, Viewport } from "next"
-
-import { META_THEME_COLORS, siteConfig } from "@/config/site"
-import { fontMono, fontSans } from "@/lib/fonts"
-import { cn } from "@/lib/utils"
-import { Analytics } from "@/components/analytics"
-import { ThemeProvider } from "@/components/providers"
-import { TailwindIndicator } from "@/components/tailwind-indicator"
-import { ThemeSwitcher } from "@/components/theme-switcher"
-import { Toaster as DefaultToaster } from "@/registry/default/ui/toaster"
-import { Toaster as NewYorkSonner } from "@/registry/new-york/ui/sonner"
-import { Toaster as NewYorkToaster } from "@/registry/new-york/ui/toaster"
-
-export const metadata: Metadata = {
- title: {
- default: siteConfig.name,
- template: `%s - ${siteConfig.name}`,
- },
- metadataBase: new URL(siteConfig.url),
- description: siteConfig.description,
- keywords: [
- "Next.js",
- "React",
- "Tailwind CSS",
- "Server Components",
- "Radix UI",
- ],
- authors: [
- {
- name: "shadcn",
- url: "https://shadcn.com",
- },
- ],
- creator: "shadcn",
- openGraph: {
- type: "website",
- locale: "en_US",
- url: siteConfig.url,
- title: siteConfig.name,
- description: siteConfig.description,
- siteName: siteConfig.name,
- images: [
- {
- url: siteConfig.ogImage,
- width: 1200,
- height: 630,
- alt: siteConfig.name,
- },
- ],
- },
- twitter: {
- card: "summary_large_image",
- title: siteConfig.name,
- description: siteConfig.description,
- images: [siteConfig.ogImage],
- creator: "@shadcn",
- },
- icons: {
- icon: "/favicon.ico",
- shortcut: "/favicon-16x16.png",
- apple: "/apple-touch-icon.png",
- },
- manifest: `${siteConfig.url}/site.webmanifest`,
-}
-
-export const viewport: Viewport = {
- themeColor: META_THEME_COLORS.light,
-}
-
-interface RootLayoutProps {
- children: React.ReactNode
-}
-
-export default function RootLayout({ children }: RootLayoutProps) {
- return (
- <>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- >
- )
-}
diff --git a/deprecated/www/assets/fonts/Inter-Bold.ttf b/deprecated/www/assets/fonts/Inter-Bold.ttf
deleted file mode 100644
index 8e82c70d10..0000000000
Binary files a/deprecated/www/assets/fonts/Inter-Bold.ttf and /dev/null differ
diff --git a/deprecated/www/assets/fonts/Inter-Regular.ttf b/deprecated/www/assets/fonts/Inter-Regular.ttf
deleted file mode 100644
index 8d4eebf206..0000000000
Binary files a/deprecated/www/assets/fonts/Inter-Regular.ttf and /dev/null differ
diff --git a/deprecated/www/components/analytics.tsx b/deprecated/www/components/analytics.tsx
deleted file mode 100644
index 164e9b7904..0000000000
--- a/deprecated/www/components/analytics.tsx
+++ /dev/null
@@ -1,7 +0,0 @@
-"use client"
-
-import { Analytics as VercelAnalytics } from "@vercel/analytics/react"
-
-export function Analytics() {
- return
-}
diff --git a/deprecated/www/components/announcement.tsx b/deprecated/www/components/announcement.tsx
deleted file mode 100644
index abc656c144..0000000000
--- a/deprecated/www/components/announcement.tsx
+++ /dev/null
@@ -1,25 +0,0 @@
-import Link from "next/link"
-import { ArrowRight } from "lucide-react"
-
-export function Announcement() {
- return (
-
-
- Tailwind CSS
-
-
-
- Get Started with Tailwind v4
-
-
-
- )
-}
diff --git a/deprecated/www/components/block-display.tsx b/deprecated/www/components/block-display.tsx
deleted file mode 100644
index c1f4362c1e..0000000000
--- a/deprecated/www/components/block-display.tsx
+++ /dev/null
@@ -1,52 +0,0 @@
-import * as React from "react"
-import { registryItemFileSchema } from "shadcn/schema"
-import { z } from "zod"
-
-import { highlightCode } from "@/lib/highlight-code"
-import {
- createFileTreeForRegistryItemFiles,
- getRegistryItem,
-} from "@/lib/registry"
-import { BlockViewer } from "@/components/block-viewer"
-
-export async function BlockDisplay({ name }: { name: string }) {
- const item = await getCachedRegistryItem(name)
-
- if (!item?.files) {
- return null
- }
-
- const [tree, highlightedFiles] = await Promise.all([
- getCachedFileTree(item.files),
- getCachedHighlightedFiles(item.files),
- ])
-
- return (
-
- )
-}
-
-const getCachedRegistryItem = React.cache(async (name: string) => {
- return await getRegistryItem(name)
-})
-
-const getCachedFileTree = React.cache(
- async (files: Array<{ path: string; target?: string }>) => {
- if (!files) {
- return null
- }
-
- return await createFileTreeForRegistryItemFiles(files)
- }
-)
-
-const getCachedHighlightedFiles = React.cache(
- async (files: z.infer[]) => {
- return await Promise.all(
- files.map(async (file) => ({
- ...file,
- highlightedContent: await highlightCode(file.content ?? ""),
- }))
- )
- }
-)
diff --git a/deprecated/www/components/block-image.tsx b/deprecated/www/components/block-image.tsx
deleted file mode 100644
index 336a6e8a90..0000000000
--- a/deprecated/www/components/block-image.tsx
+++ /dev/null
@@ -1,36 +0,0 @@
-import Image from "next/image"
-
-import { cn } from "@/lib/utils"
-
-export function BlockImage({
- name,
- width = 1440,
- height = 900,
- className,
-}: Omit, "src" | "alt"> & { name: string }) {
- return (
-
-
-
-
- )
-}
diff --git a/deprecated/www/components/block-viewer.tsx b/deprecated/www/components/block-viewer.tsx
deleted file mode 100644
index 710aacd401..0000000000
--- a/deprecated/www/components/block-viewer.tsx
+++ /dev/null
@@ -1,454 +0,0 @@
-"use client"
-
-import * as React from "react"
-import Image from "next/image"
-import Link from "next/link"
-import {
- Check,
- ChevronRight,
- Clipboard,
- File,
- Folder,
- Fullscreen,
- Monitor,
- Smartphone,
- Tablet,
- Terminal,
-} from "lucide-react"
-import { ImperativePanelHandle } from "react-resizable-panels"
-import { registryItemFileSchema, registryItemSchema } from "shadcn/schema"
-import { z } from "zod"
-
-import { trackEvent } from "@/lib/events"
-import { FileTree, createFileTreeForRegistryItemFiles } from "@/lib/registry"
-import { useCopyToClipboard } from "@/hooks/use-copy-to-clipboard"
-import { V0Button } from "@/components/v0-button"
-import { Button } from "@/registry/new-york/ui/button"
-import {
- Collapsible,
- CollapsibleContent,
- CollapsibleTrigger,
-} from "@/registry/new-york/ui/collapsible"
-import {
- ResizableHandle,
- ResizablePanel,
- ResizablePanelGroup,
-} from "@/registry/new-york/ui/resizable"
-import { Separator } from "@/registry/new-york/ui/separator"
-import {
- Sidebar,
- SidebarGroup,
- SidebarGroupContent,
- SidebarGroupLabel,
- SidebarMenu,
- SidebarMenuButton,
- SidebarMenuItem,
- SidebarMenuSub,
- SidebarProvider,
-} from "@/registry/new-york/ui/sidebar"
-import { Tabs, TabsList, TabsTrigger } from "@/registry/new-york/ui/tabs"
-import {
- ToggleGroup,
- ToggleGroupItem,
-} from "@/registry/new-york/ui/toggle-group"
-import { Style } from "@/registry/registry-styles"
-
-type BlockViewerContext = {
- item: z.infer
- view: "code" | "preview"
- setView: (view: "code" | "preview") => void
- style?: Style["name"]
- setStyle: (style: Style["name"]) => void
- activeFile: string | null
- setActiveFile: (file: string) => void
- resizablePanelRef: React.RefObject | null
- tree: ReturnType | null
- highlightedFiles:
- | (z.infer & {
- highlightedContent: string
- })[]
- | null
-}
-
-const BlockViewerContext = React.createContext(null)
-
-function useBlockViewer() {
- const context = React.useContext(BlockViewerContext)
- if (!context) {
- throw new Error("useBlockViewer must be used within a BlockViewerProvider.")
- }
- return context
-}
-
-function BlockViewerProvider({
- item,
- tree,
- highlightedFiles,
- children,
-}: Pick & {
- children: React.ReactNode
-}) {
- const [view, setView] = React.useState("preview")
- const [style, setStyle] =
- React.useState("new-york")
- const [activeFile, setActiveFile] = React.useState<
- BlockViewerContext["activeFile"]
- >(highlightedFiles?.[0].target ?? null)
- const resizablePanelRef = React.useRef(null)
-
- return (
-
-
- {children}
-
-
- )
-}
-
-function BlockViewerToolbar() {
- const { setView, item, resizablePanelRef, style } = useBlockViewer()
- const { copyToClipboard, isCopied } = useCopyToClipboard()
-
- return (
-
-
setView(value as "preview" | "code")}
- className="hidden lg:flex"
- >
-
-
- Preview
-
-
- Code
-
-
-
-
-
- {item.description}
-
-
-
-
{
- if (resizablePanelRef?.current) {
- resizablePanelRef.current.resize(parseInt(value))
- }
- }}
- >
-
-
-
-
-
-
-
-
-
-
-
-
- Open in New Tab
-
-
-
-
-
-
-
- {
- copyToClipboard(`npx shadcn@latest add ${item.name}`)
- }}
- >
- {isCopied ? : }
- npx shadcn add {item.name}
-
-
-
-
-
-
- )
-}
-
-function BlockViewerView() {
- const { item, style, resizablePanelRef } = useBlockViewer()
-
- return (
-
- )
-}
-
-function BlockViewerCode() {
- const { activeFile, highlightedFiles } = useBlockViewer()
-
- const file = React.useMemo(() => {
- return highlightedFiles?.find((file) => file.target === activeFile)
- }, [highlightedFiles, activeFile])
-
- if (!file) {
- return null
- }
-
- return (
-
-
-
-
-
-
-
- {file.target}
-
-
-
-
-
-
-
- )
-}
-
-export function BlockViewerFileTree() {
- const { tree } = useBlockViewer()
-
- if (!tree) {
- return null
- }
-
- return (
-
-
-
- Files
-
-
-
-
- {tree.map((file, index) => (
-
- ))}
-
-
-
-
-
- )
-}
-
-function Tree({ item, index }: { item: FileTree; index: number }) {
- const { activeFile, setActiveFile } = useBlockViewer()
-
- if (!item.children) {
- return (
-
- item.path && setActiveFile(item.path)}
- className="whitespace-nowrap rounded-none pl-[--index] hover:bg-zinc-700 hover:text-white focus:bg-zinc-700 focus:text-white focus-visible:bg-zinc-700 focus-visible:text-white active:bg-zinc-700 active:text-white data-[active=true]:bg-zinc-700 data-[active=true]:text-white"
- data-index={index}
- style={
- {
- "--index": `${index * (index === 2 ? 1.2 : 1.3)}rem`,
- } as React.CSSProperties
- }
- >
-
-
- {item.name}
-
-
- )
- }
-
- return (
-
-
-
-
-
-
- {item.name}
-
-
-
-
- {item.children.map((subItem, key) => (
-
- ))}
-
-
-
-
- )
-}
-
-function BlockCopyCodeButton() {
- const { activeFile, item } = useBlockViewer()
- const { copyToClipboard, isCopied } = useCopyToClipboard()
-
- const file = React.useMemo(() => {
- return item.files?.find((file) => file.target === activeFile)
- }, [activeFile, item.files])
-
- const content = file?.content
-
- if (!content) {
- return null
- }
-
- return (
- {
- copyToClipboard(content)
- trackEvent({
- name: "copy_block_code",
- properties: {
- name: item.name,
- file: file.path,
- },
- })
- }}
- className="h-7 w-7 shrink-0 rounded-lg p-0 hover:bg-zinc-700 hover:text-white focus:bg-zinc-700 focus:text-white focus-visible:bg-zinc-700 focus-visible:text-white active:bg-zinc-700 active:text-white data-[active=true]:bg-zinc-700 data-[active=true]:text-white [&>svg]:size-3"
- variant="ghost"
- >
- {isCopied ? : }
-
- )
-}
-
-function BlockViewer({
- item,
- tree,
- highlightedFiles,
- ...props
-}: Pick) {
- return (
-
-
-
-
-
- )
-}
-
-export { BlockViewer }
diff --git a/deprecated/www/components/blocks-nav.tsx b/deprecated/www/components/blocks-nav.tsx
deleted file mode 100644
index 4248667fd3..0000000000
--- a/deprecated/www/components/blocks-nav.tsx
+++ /dev/null
@@ -1,55 +0,0 @@
-"use client"
-
-import Link from "next/link"
-import { usePathname } from "next/navigation"
-
-import { ScrollArea, ScrollBar } from "@/registry/new-york/ui/scroll-area"
-import { registryCategories } from "@/registry/registry-categories"
-
-export function BlocksNav() {
- const pathname = usePathname()
-
- return (
-
-
-
-
- {registryCategories.map((category) => (
-
- ))}
-
-
-
-
- )
-}
-
-function BlocksNavLink({
- category,
- isActive,
-}: {
- category: (typeof registryCategories)[number]
- isActive: boolean
-}) {
- if (category.hidden) {
- return null
- }
-
- return (
-
- {category.name}
-
- )
-}
diff --git a/deprecated/www/components/callout.tsx b/deprecated/www/components/callout.tsx
deleted file mode 100644
index 34a9f23e72..0000000000
--- a/deprecated/www/components/callout.tsx
+++ /dev/null
@@ -1,22 +0,0 @@
-import { cn } from "@/lib/utils"
-import {
- Alert,
- AlertDescription,
- AlertTitle,
-} from "@/registry/new-york/ui/alert"
-
-export function Callout({
- title,
- children,
- icon,
- className,
- ...props
-}: React.ComponentProps & { icon?: string }) {
- return (
-
- {icon && {icon} }
- {title && {title} }
- {children}
-
- )
-}
diff --git a/deprecated/www/components/cards/activity-goal.tsx b/deprecated/www/components/cards/activity-goal.tsx
deleted file mode 100644
index 8f01a6bc95..0000000000
--- a/deprecated/www/components/cards/activity-goal.tsx
+++ /dev/null
@@ -1,125 +0,0 @@
-"use client"
-
-import * as React from "react"
-import { Minus, Plus } from "lucide-react"
-import { Bar, BarChart } from "recharts"
-
-import { Button } from "@/registry/new-york/ui/button"
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import { ChartConfig, ChartContainer } from "@/registry/new-york/ui/chart"
-
-const data = [
- {
- goal: 400,
- },
- {
- goal: 300,
- },
- {
- goal: 200,
- },
- {
- goal: 300,
- },
- {
- goal: 200,
- },
- {
- goal: 278,
- },
- {
- goal: 189,
- },
- {
- goal: 239,
- },
- {
- goal: 300,
- },
- {
- goal: 200,
- },
- {
- goal: 278,
- },
- {
- goal: 189,
- },
- {
- goal: 349,
- },
-]
-
-const chartConfig = {
- goal: {
- label: "Goal",
- color: "hsl(var(--primary))",
- },
-} satisfies ChartConfig
-
-export function CardsActivityGoal() {
- const [goal, setGoal] = React.useState(350)
-
- function onClick(adjustment: number) {
- setGoal(Math.max(200, Math.min(400, goal + adjustment)))
- }
-
- return (
-
-
- Move Goal
- Set your daily activity goal.
-
-
-
-
onClick(-10)}
- disabled={goal <= 200}
- >
-
- Decrease
-
-
-
{goal}
-
- Calories/day
-
-
-
onClick(10)}
- disabled={goal >= 400}
- >
-
- Increase
-
-
-
-
-
-
-
-
-
-
-
- Set Goal
-
-
- )
-}
diff --git a/deprecated/www/components/cards/calendar.tsx b/deprecated/www/components/cards/calendar.tsx
deleted file mode 100644
index 4496a355e2..0000000000
--- a/deprecated/www/components/cards/calendar.tsx
+++ /dev/null
@@ -1,26 +0,0 @@
-"use client"
-
-import { addDays } from "date-fns"
-
-import { Calendar } from "@/registry/new-york/ui/calendar"
-import { Card, CardContent } from "@/registry/new-york/ui/card"
-
-const start = new Date(2023, 5, 5)
-
-export function CardsCalendar() {
- return (
-
-
-
-
-
- )
-}
diff --git a/deprecated/www/components/cards/chat.tsx b/deprecated/www/components/cards/chat.tsx
deleted file mode 100644
index 61bb2517c8..0000000000
--- a/deprecated/www/components/cards/chat.tsx
+++ /dev/null
@@ -1,262 +0,0 @@
-"use client"
-
-import * as React from "react"
-import { Check, Plus, Send } from "lucide-react"
-
-import { cn } from "@/lib/utils"
-import {
- Avatar,
- AvatarFallback,
- AvatarImage,
-} from "@/registry/new-york/ui/avatar"
-import { Button } from "@/registry/new-york/ui/button"
-import {
- Card,
- CardContent,
- CardFooter,
- CardHeader,
-} from "@/registry/new-york/ui/card"
-import {
- Command,
- CommandEmpty,
- CommandGroup,
- CommandInput,
- CommandItem,
- CommandList,
-} from "@/registry/new-york/ui/command"
-import {
- Dialog,
- DialogContent,
- DialogDescription,
- DialogFooter,
- DialogHeader,
- DialogTitle,
-} from "@/registry/new-york/ui/dialog"
-import { Input } from "@/registry/new-york/ui/input"
-import {
- Tooltip,
- TooltipContent,
- TooltipProvider,
- TooltipTrigger,
-} from "@/registry/new-york/ui/tooltip"
-
-const users = [
- {
- name: "Olivia Martin",
- email: "m@example.com",
- avatar: "/avatars/01.png",
- },
- {
- name: "Isabella Nguyen",
- email: "isabella.nguyen@email.com",
- avatar: "/avatars/03.png",
- },
- {
- name: "Emma Wilson",
- email: "emma@example.com",
- avatar: "/avatars/05.png",
- },
- {
- name: "Jackson Lee",
- email: "lee@example.com",
- avatar: "/avatars/02.png",
- },
- {
- name: "William Kim",
- email: "will@email.com",
- avatar: "/avatars/04.png",
- },
-] as const
-
-type User = (typeof users)[number]
-
-export function CardsChat() {
- const [open, setOpen] = React.useState(false)
- const [selectedUsers, setSelectedUsers] = React.useState([])
-
- const [messages, setMessages] = React.useState([
- {
- role: "agent",
- content: "Hi, how can I help you today?",
- },
- {
- role: "user",
- content: "Hey, I'm having trouble with my account.",
- },
- {
- role: "agent",
- content: "What seems to be the problem?",
- },
- {
- role: "user",
- content: "I can't log in.",
- },
- ])
- const [input, setInput] = React.useState("")
- const inputLength = input.trim().length
-
- return (
- <>
-
-
-
-
-
- OM
-
-
-
Sofia Davis
-
m@example.com
-
-
-
-
-
- setOpen(true)}
- >
-
- New message
-
-
- New message
-
-
-
-
-
- {messages.map((message, index) => (
-
- {message.content}
-
- ))}
-
-
-
- {
- event.preventDefault()
- if (inputLength === 0) return
- setMessages([
- ...messages,
- {
- role: "user",
- content: input,
- },
- ])
- setInput("")
- }}
- className="flex w-full items-center space-x-2"
- >
- setInput(event.target.value)}
- />
-
-
- Send
-
-
-
-
-
-
-
- New message
-
- Invite a user to this thread. This will create a new group
- message.
-
-
-
-
-
- No users found.
-
- {users.map((user) => (
- {
- if (selectedUsers.includes(user)) {
- return setSelectedUsers(
- selectedUsers.filter(
- (selectedUser) => selectedUser !== user
- )
- )
- }
-
- return setSelectedUsers(
- [...users].filter((u) =>
- [...selectedUsers, user].includes(u)
- )
- )
- }}
- >
-
-
- {user.name[0]}
-
-
-
- {user.name}
-
-
- {user.email}
-
-
- {selectedUsers.includes(user) ? (
-
- ) : null}
-
- ))}
-
-
-
-
- {selectedUsers.length > 0 ? (
-
- {selectedUsers.map((user) => (
-
-
- {user.name[0]}
-
- ))}
-
- ) : (
-
- Select users to add to this thread.
-
- )}
- {
- setOpen(false)
- }}
- >
- Continue
-
-
-
-
- >
- )
-}
diff --git a/deprecated/www/components/cards/cookie-settings.tsx b/deprecated/www/components/cards/cookie-settings.tsx
deleted file mode 100644
index 8144803748..0000000000
--- a/deprecated/www/components/cards/cookie-settings.tsx
+++ /dev/null
@@ -1,60 +0,0 @@
-"use client"
-
-import { Button } from "@/registry/new-york/ui/button"
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import { Label } from "@/registry/new-york/ui/label"
-import { Switch } from "@/registry/new-york/ui/switch"
-
-export function CardsCookieSettings() {
- return (
-
-
- Cookie Settings
- Manage your cookie settings here.
-
-
-
-
- Strictly Necessary
-
- These cookies are essential in order to use the website and use
- its features.
-
-
-
-
-
-
- Functional Cookies
-
- These cookies allow the website to provide personalized
- functionality.
-
-
-
-
-
-
- Performance Cookies
-
- These cookies help to improve the performance of the website.
-
-
-
-
-
-
-
- Save preferences
-
-
-
- )
-}
diff --git a/deprecated/www/components/cards/create-account.tsx b/deprecated/www/components/cards/create-account.tsx
deleted file mode 100644
index 566f9b4624..0000000000
--- a/deprecated/www/components/cards/create-account.tsx
+++ /dev/null
@@ -1,60 +0,0 @@
-"use client"
-
-import { Icons } from "@/components/icons"
-import { Button } from "@/registry/new-york/ui/button"
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import { Input } from "@/registry/new-york/ui/input"
-import { Label } from "@/registry/new-york/ui/label"
-
-export function CardsCreateAccount() {
- return (
-
-
- Create an account
-
- Enter your email below to create your account
-
-
-
-
-
-
- GitHub
-
-
-
- Google
-
-
-
-
-
-
-
-
- Or continue with
-
-
-
-
- Email
-
-
-
- Password
-
-
-
-
- Create account
-
-
- )
-}
diff --git a/deprecated/www/components/cards/data-table.tsx b/deprecated/www/components/cards/data-table.tsx
deleted file mode 100644
index d712100d8e..0000000000
--- a/deprecated/www/components/cards/data-table.tsx
+++ /dev/null
@@ -1,325 +0,0 @@
-"use client"
-
-import * as React from "react"
-import {
- ColumnDef,
- ColumnFiltersState,
- SortingState,
- VisibilityState,
- flexRender,
- getCoreRowModel,
- getFilteredRowModel,
- getPaginationRowModel,
- getSortedRowModel,
- useReactTable,
-} from "@tanstack/react-table"
-import { ArrowUpDown, ChevronDown, MoreHorizontal } from "lucide-react"
-
-import { Button } from "@/registry/new-york/ui/button"
-import {
- Card,
- CardContent,
- CardDescription,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import { Checkbox } from "@/registry/new-york/ui/checkbox"
-import {
- DropdownMenu,
- DropdownMenuCheckboxItem,
- DropdownMenuContent,
- DropdownMenuItem,
- DropdownMenuLabel,
- DropdownMenuSeparator,
- DropdownMenuTrigger,
-} from "@/registry/new-york/ui/dropdown-menu"
-import { Input } from "@/registry/new-york/ui/input"
-import {
- Table,
- TableBody,
- TableCell,
- TableHead,
- TableHeader,
- TableRow,
-} from "@/registry/new-york/ui/table"
-
-const data: Payment[] = [
- {
- id: "m5gr84i9",
- amount: 316,
- status: "success",
- email: "ken99@example.com",
- },
- {
- id: "3u1reuv4",
- amount: 242,
- status: "success",
- email: "Abe45@example.com",
- },
- {
- id: "derv1ws0",
- amount: 837,
- status: "processing",
- email: "Monserrat44@example.com",
- },
- {
- id: "bhqecj4p",
- amount: 721,
- status: "failed",
- email: "carmella@example.com",
- },
-]
-
-export type Payment = {
- id: string
- amount: number
- status: "pending" | "processing" | "success" | "failed"
- email: string
-}
-
-export const columns: ColumnDef[] = [
- {
- id: "select",
- header: ({ table }) => (
- table.toggleAllPageRowsSelected(!!value)}
- aria-label="Select all"
- />
- ),
- cell: ({ row }) => (
- row.toggleSelected(!!value)}
- aria-label="Select row"
- />
- ),
- enableSorting: false,
- enableHiding: false,
- },
- {
- accessorKey: "status",
- header: "Status",
- cell: ({ row }) => (
- {row.getValue("status")}
- ),
- },
- {
- accessorKey: "email",
- header: ({ column }) => {
- return (
- column.toggleSorting(column.getIsSorted() === "asc")}
- >
- Email
-
-
- )
- },
- cell: ({ row }) => {row.getValue("email")}
,
- },
- {
- accessorKey: "amount",
- header: () => Amount
,
- cell: ({ row }) => {
- const amount = parseFloat(row.getValue("amount"))
-
- // Format the amount as a dollar amount
- const formatted = new Intl.NumberFormat("en-US", {
- style: "currency",
- currency: "USD",
- }).format(amount)
-
- return {formatted}
- },
- },
- {
- id: "actions",
- enableHiding: false,
- cell: ({ row }) => {
- const payment = row.original
-
- return (
-
-
-
- Open menu
-
-
-
-
- Actions
- navigator.clipboard.writeText(payment.id)}
- >
- Copy payment ID
-
-
- View customer
- View payment details
-
-
- )
- },
- },
-]
-
-export function CardsDataTable() {
- const [sorting, setSorting] = React.useState([])
- const [columnFilters, setColumnFilters] = React.useState(
- []
- )
- const [columnVisibility, setColumnVisibility] =
- React.useState({})
- const [rowSelection, setRowSelection] = React.useState({})
-
- const table = useReactTable({
- data,
- columns,
- onSortingChange: setSorting,
- onColumnFiltersChange: setColumnFilters,
- getCoreRowModel: getCoreRowModel(),
- getPaginationRowModel: getPaginationRowModel(),
- getSortedRowModel: getSortedRowModel(),
- getFilteredRowModel: getFilteredRowModel(),
- onColumnVisibilityChange: setColumnVisibility,
- onRowSelectionChange: setRowSelection,
- state: {
- sorting,
- columnFilters,
- columnVisibility,
- rowSelection,
- },
- })
-
- return (
-
-
- Payments
- Manage your payments.
-
-
-
-
- table.getColumn("email")?.setFilterValue(event.target.value)
- }
- className="max-w-sm"
- />
-
-
-
- Columns
-
-
-
- {table
- .getAllColumns()
- .filter((column) => column.getCanHide())
- .map((column) => {
- return (
-
- column.toggleVisibility(!!value)
- }
- >
- {column.id}
-
- )
- })}
-
-
-
-
-
-
- {table.getHeaderGroups().map((headerGroup) => (
-
- {headerGroup.headers.map((header) => {
- return (
-
- {header.isPlaceholder
- ? null
- : flexRender(
- header.column.columnDef.header,
- header.getContext()
- )}
-
- )
- })}
-
- ))}
-
-
- {table.getRowModel().rows?.length ? (
- table.getRowModel().rows.map((row) => (
-
- {row.getVisibleCells().map((cell) => (
-
- {flexRender(
- cell.column.columnDef.cell,
- cell.getContext()
- )}
-
- ))}
-
- ))
- ) : (
-
-
- No results.
-
-
- )}
-
-
-
-
-
- {table.getFilteredSelectedRowModel().rows.length} of{" "}
- {table.getFilteredRowModel().rows.length} row(s) selected.
-
-
- table.previousPage()}
- disabled={!table.getCanPreviousPage()}
- >
- Previous
-
- table.nextPage()}
- disabled={!table.getCanNextPage()}
- >
- Next
-
-
-
-
-
- )
-}
diff --git a/deprecated/www/components/cards/index.tsx b/deprecated/www/components/cards/index.tsx
deleted file mode 100644
index b3df1daf6f..0000000000
--- a/deprecated/www/components/cards/index.tsx
+++ /dev/null
@@ -1,63 +0,0 @@
-import { CardsActivityGoal } from "@/components/cards/activity-goal"
-import { CardsCalendar } from "@/components/cards/calendar"
-import { CardsChat } from "@/components/cards/chat"
-import { CardsCookieSettings } from "@/components/cards/cookie-settings"
-import { CardsCreateAccount } from "@/components/cards/create-account"
-import { CardsDataTable } from "@/components/cards/data-table"
-import { CardsMetric } from "@/components/cards/metric"
-import { CardsPaymentMethod } from "@/components/cards/payment-method"
-import { CardsReportIssue } from "@/components/cards/report-issue"
-import { CardsShare } from "@/components/cards/share"
-import { CardsStats } from "@/components/cards/stats"
-import { CardsTeamMembers } from "@/components/cards/team-members"
-
-export function CardsDemo() {
- return (
-
- )
-}
diff --git a/deprecated/www/components/cards/metric.tsx b/deprecated/www/components/cards/metric.tsx
deleted file mode 100644
index e25f005c71..0000000000
--- a/deprecated/www/components/cards/metric.tsx
+++ /dev/null
@@ -1,108 +0,0 @@
-"use client"
-
-import { Line, LineChart } from "recharts"
-
-import {
- Card,
- CardContent,
- CardDescription,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- ChartConfig,
- ChartContainer,
- ChartTooltip,
- ChartTooltipContent,
-} from "@/registry/new-york/ui/chart"
-
-const data = [
- {
- average: 400,
- today: 240,
- },
- {
- average: 300,
- today: 139,
- },
- {
- average: 200,
- today: 980,
- },
- {
- average: 278,
- today: 390,
- },
- {
- average: 189,
- today: 480,
- },
- {
- average: 239,
- today: 380,
- },
- {
- average: 349,
- today: 430,
- },
-]
-
-const chartConfig = {
- today: {
- label: "Today",
- color: "hsl(var(--primary))",
- },
- average: {
- label: "Average",
- color: "hsl(var(--primary))",
- },
-} satisfies ChartConfig
-
-export function CardsMetric() {
- return (
-
-
- Exercise Minutes
-
- Your exercise minutes are ahead of where you normally are.
-
-
-
-
-
-
-
- } />
-
-
-
-
- )
-}
diff --git a/deprecated/www/components/cards/payment-method.tsx b/deprecated/www/components/cards/payment-method.tsx
deleted file mode 100644
index d5f69dfd54..0000000000
--- a/deprecated/www/components/cards/payment-method.tsx
+++ /dev/null
@@ -1,154 +0,0 @@
-"use client"
-
-import { Icons } from "@/components/icons"
-import { Button } from "@/registry/new-york/ui/button"
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import { Input } from "@/registry/new-york/ui/input"
-import { Label } from "@/registry/new-york/ui/label"
-import { RadioGroup, RadioGroupItem } from "@/registry/new-york/ui/radio-group"
-import {
- Select,
- SelectContent,
- SelectItem,
- SelectTrigger,
- SelectValue,
-} from "@/registry/new-york/ui/select"
-
-export function CardsPaymentMethod() {
- return (
-
-
- Payment Method
-
- Add a new payment method to your account.
-
-
-
-
-
-
-
-
-
- Paypal
-
-
-
-
-
-
- Apple
-
-
-
-
- Name
-
-
-
- City
-
-
-
- Card number
-
-
-
-
- Expires
-
-
-
-
-
- January
- February
- March
- April
- May
- June
- July
- August
- September
- October
- November
- December
-
-
-
-
- Year
-
-
-
-
-
- {Array.from({ length: 10 }, (_, i) => (
-
- {new Date().getFullYear() + i}
-
- ))}
-
-
-
-
- CVC
-
-
-
-
-
- Continue
-
-
- )
-}
diff --git a/deprecated/www/components/cards/report-issue.tsx b/deprecated/www/components/cards/report-issue.tsx
deleted file mode 100644
index 4a58245e55..0000000000
--- a/deprecated/www/components/cards/report-issue.tsx
+++ /dev/null
@@ -1,92 +0,0 @@
-"use client"
-
-import * as React from "react"
-
-import { Button } from "@/registry/new-york/ui/button"
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import { Input } from "@/registry/new-york/ui/input"
-import { Label } from "@/registry/new-york/ui/label"
-import {
- Select,
- SelectContent,
- SelectItem,
- SelectTrigger,
- SelectValue,
-} from "@/registry/new-york/ui/select"
-import { Textarea } from "@/registry/new-york/ui/textarea"
-
-export function CardsReportIssue() {
- const id = React.useId()
-
- return (
-
-
- Report an issue
-
- What area are you having problems with?
-
-
-
-
-
- Area
-
-
-
-
-
- Team
- Billing
- Account
- Deployments
- Support
-
-
-
-
- Security Level
-
-
-
-
-
- Severity 1 (Highest)
- Severity 2
- Severity 3
- Severity 4 (Lowest)
-
-
-
-
-
- Subject
-
-
-
- Description
-
-
-
-
-
- Cancel
-
- Submit
-
-
- )
-}
diff --git a/deprecated/www/components/cards/share.tsx b/deprecated/www/components/cards/share.tsx
deleted file mode 100644
index 2410401c90..0000000000
--- a/deprecated/www/components/cards/share.tsx
+++ /dev/null
@@ -1,126 +0,0 @@
-"use client"
-
-import {
- Avatar,
- AvatarFallback,
- AvatarImage,
-} from "@/registry/new-york/ui/avatar"
-import { Button } from "@/registry/new-york/ui/button"
-import {
- Card,
- CardContent,
- CardDescription,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import { Input } from "@/registry/new-york/ui/input"
-import { Label } from "@/registry/new-york/ui/label"
-import {
- Select,
- SelectContent,
- SelectItem,
- SelectTrigger,
- SelectValue,
-} from "@/registry/new-york/ui/select"
-import { Separator } from "@/registry/new-york/ui/separator"
-
-export function CardsShare() {
- return (
-
-
- Share this document
-
- Anyone with the link can view this document.
-
-
-
-
-
- Link
-
-
- Copy Link
-
-
-
-
People with access
-
-
-
-
-
- OM
-
-
-
- Olivia Martin
-
-
m@example.com
-
-
-
-
-
-
-
- Can edit
- Can view
-
-
-
-
-
-
-
- IN
-
-
-
- Isabella Nguyen
-
-
b@example.com
-
-
-
-
-
-
-
- Can edit
- Can view
-
-
-
-
-
-
-
- SD
-
-
-
- Sofia Davis
-
-
p@example.com
-
-
-
-
-
-
-
- Can edit
- Can view
-
-
-
-
-
-
-
- )
-}
diff --git a/deprecated/www/components/cards/stats.tsx b/deprecated/www/components/cards/stats.tsx
deleted file mode 100644
index d50ad2d24c..0000000000
--- a/deprecated/www/components/cards/stats.tsx
+++ /dev/null
@@ -1,116 +0,0 @@
-"use client"
-
-import { Bar, BarChart, Line, LineChart } from "recharts"
-
-import {
- Card,
- CardContent,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import { ChartConfig, ChartContainer } from "@/registry/new-york/ui/chart"
-
-const data = [
- {
- revenue: 10400,
- subscription: 240,
- },
- {
- revenue: 14405,
- subscription: 300,
- },
- {
- revenue: 9400,
- subscription: 200,
- },
- {
- revenue: 8200,
- subscription: 278,
- },
- {
- revenue: 7000,
- subscription: 189,
- },
- {
- revenue: 9600,
- subscription: 239,
- },
- {
- revenue: 11244,
- subscription: 278,
- },
- {
- revenue: 26475,
- subscription: 189,
- },
-]
-
-const chartConfig = {
- revenue: {
- label: "Revenue",
- color: "hsl(var(--primary))",
- },
- subscription: {
- label: "Subscriptions",
- color: "hsl(var(--primary))",
- },
-} satisfies ChartConfig
-
-export function CardsStats() {
- return (
-
-
-
- Total Revenue
-
-
- $15,231.89
-
- +20.1% from last month
-
-
-
-
-
-
-
-
-
-
- Subscriptions
-
-
- +2350
-
- +180.1% from last month
-
-
-
-
-
-
-
-
-
- )
-}
diff --git a/deprecated/www/components/cards/team-members.tsx b/deprecated/www/components/cards/team-members.tsx
deleted file mode 100644
index fc834a2104..0000000000
--- a/deprecated/www/components/cards/team-members.tsx
+++ /dev/null
@@ -1,206 +0,0 @@
-"use client"
-
-import { ChevronDown } from "lucide-react"
-
-import {
- Avatar,
- AvatarFallback,
- AvatarImage,
-} from "@/registry/new-york/ui/avatar"
-import { Button } from "@/registry/new-york/ui/button"
-import {
- Card,
- CardContent,
- CardDescription,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york/ui/card"
-import {
- Command,
- CommandEmpty,
- CommandGroup,
- CommandInput,
- CommandItem,
- CommandList,
-} from "@/registry/new-york/ui/command"
-import {
- Popover,
- PopoverContent,
- PopoverTrigger,
-} from "@/registry/new-york/ui/popover"
-
-export function CardsTeamMembers() {
- return (
-
-
- Team Members
-
- Invite your team members to collaborate.
-
-
-
-
-
-
-
- OM
-
-
-
Sofia Davis
-
m@example.com
-
-
-
-
-
- Owner
-
-
-
-
-
-
- No roles found.
-
-
- Viewer
-
- Can view and comment.
-
-
-
- Developer
-
- Can view, comment and edit.
-
-
-
- Billing
-
- Can view, comment and manage billing.
-
-
-
- Owner
-
- Admin-level access to all resources.
-
-
-
-
-
-
-
-
-
-
-
-
- JL
-
-
-
Jackson Lee
-
p@example.com
-
-
-
-
-
- Member
-
-
-
-
-
-
- No roles found.
-
-
- Viewer
-
- Can view and comment.
-
-
-
- Developer
-
- Can view, comment and edit.
-
-
-
- Billing
-
- Can view, comment and manage billing.
-
-
-
- Owner
-
- Admin-level access to all resources.
-
-
-
-
-
-
-
-
-
-
-
-
- IN
-
-
-
- Isabella Nguyen
-
-
i@example.com
-
-
-
-
-
- Member
-
-
-
-
-
-
- No roles found.
-
-
- Viewer
-
- Can view and comment.
-
-
-
- Developer
-
- Can view, comment and edit.
-
-
-
- Billing
-
- Can view, comment and manage billing.
-
-
-
- Owner
-
- Admin-level access to all resources.
-
-
-
-
-
-
-
-
-
-
- )
-}
diff --git a/deprecated/www/components/chart-code-viewer.tsx b/deprecated/www/components/chart-code-viewer.tsx
deleted file mode 100644
index 1d6a3a06c7..0000000000
--- a/deprecated/www/components/chart-code-viewer.tsx
+++ /dev/null
@@ -1,179 +0,0 @@
-import * as React from "react"
-
-import { cn } from "@/lib/utils"
-import { useMediaQuery } from "@/hooks/use-media-query"
-import { useThemesConfig } from "@/hooks/use-themes-config"
-import { ChartCopyButton } from "@/components/chart-copy-button"
-import { Chart } from "@/components/chart-display"
-import { V0Button } from "@/components/v0-button"
-import { Button } from "@/registry/new-york/ui/button"
-import {
- Drawer,
- DrawerContent,
- DrawerTrigger,
-} from "@/registry/new-york/ui/drawer"
-import { Sheet, SheetContent, SheetTrigger } from "@/registry/new-york/ui/sheet"
-import {
- Tabs,
- TabsContent,
- TabsList,
- TabsTrigger,
-} from "@/registry/new-york/ui/tabs"
-
-export function ChartCodeViewer({
- chart,
- className,
- children,
-}: {
- chart: Chart
-} & React.ComponentProps<"div">) {
- const [tab, setTab] = React.useState("code")
- const { themesConfig } = useThemesConfig()
- const isDesktop = useMediaQuery("(min-width: 768px)")
-
- const themeCode = React.useMemo(() => {
- return `\
-@layer base {
- :root {
-${Object.entries(themesConfig?.activeTheme.cssVars.light || {})
- .map(([key, value]) => ` ${key}: ${value};`)
- .join("\n")}
- }
-
- .dark {
-${Object.entries(themesConfig?.activeTheme.cssVars.dark || {})
- .map(([key, value]) => ` ${key}: ${value};`)
- .join("\n")}
- }
-}
-`
- }, [themesConfig])
-
- const button = (
-
- View Code
-
- )
-
- const content = (
- <>
-
- {children}
-
-
-
-
-
- Code
-
-
- Theme
-
-
- {tab === "code" && (
-
-
-
-
- )}
- {tab === "theme" && (
-
- )}
-
-
-
-
-
-
-
-
- {`/* ${themesConfig?.activeTheme.name} */`}
- {themeCode.split("\n").map((line, index) => (
-
- {line}
-
- ))}
-
-
-
-
-
- >
- )
-
- if (!isDesktop) {
- return (
-
- {button}
- div.bg-muted]:shrink-0",
- className
- )}
- >
- {content}
-
-
- )
- }
-
- return (
-
- {button}
-
- {content}
-
-
- )
-}
diff --git a/deprecated/www/components/chart-copy-button.tsx b/deprecated/www/components/chart-copy-button.tsx
deleted file mode 100644
index 7bca49aaa3..0000000000
--- a/deprecated/www/components/chart-copy-button.tsx
+++ /dev/null
@@ -1,63 +0,0 @@
-"use client"
-
-import * as React from "react"
-import { CheckIcon, ClipboardIcon } from "lucide-react"
-
-import { Event, trackEvent } from "@/lib/events"
-import { cn } from "@/lib/utils"
-import { Button, ButtonProps } from "@/registry/new-york/ui/button"
-import {
- Tooltip,
- TooltipContent,
- TooltipTrigger,
-} from "@/registry/new-york/ui/tooltip"
-
-export function ChartCopyButton({
- event,
- name,
- code,
- className,
- ...props
-}: {
- event: Event["name"]
- name: string
- code: string
-} & ButtonProps) {
- const [hasCopied, setHasCopied] = React.useState(false)
-
- React.useEffect(() => {
- setTimeout(() => {
- setHasCopied(false)
- }, 2000)
- }, [hasCopied])
-
- return (
-
-
- {
- navigator.clipboard.writeText(code)
- trackEvent({
- name: event,
- properties: {
- name,
- },
- })
- setHasCopied(true)
- }}
- {...props}
- >
- Copy
- {hasCopied ? : }
-
-
- Copy code
-
- )
-}
diff --git a/deprecated/www/components/chart-display.tsx b/deprecated/www/components/chart-display.tsx
deleted file mode 100644
index 6bfb9e820f..0000000000
--- a/deprecated/www/components/chart-display.tsx
+++ /dev/null
@@ -1,54 +0,0 @@
-import * as React from "react"
-import { registryItemSchema } from "shadcn/schema"
-import { z } from "zod"
-
-import { highlightCode } from "@/lib/highlight-code"
-import { getRegistryItem } from "@/lib/registry"
-import { cn } from "@/lib/utils"
-import { ChartToolbar } from "@/components/chart-toolbar"
-
-export type Chart = z.infer & {
- highlightedCode: string
-}
-
-export async function ChartDisplay({
- name,
- children,
- className,
-}: { name: string } & React.ComponentProps<"div">) {
- const chart = await getCachedRegistryItem(name)
- const highlightedCode = await getChartHighlightedCode(
- chart?.files?.[0]?.content ?? ""
- )
-
- if (!chart || !highlightedCode) {
- return null
- }
-
- return (
-
-
- {children}
-
-
- {children}
-
-
- )
-}
-
-const getCachedRegistryItem = React.cache(async (name: string) => {
- return await getRegistryItem(name)
-})
-
-const getChartHighlightedCode = React.cache(async (content: string) => {
- return await highlightCode(content)
-})
diff --git a/deprecated/www/components/chart-toolbar.tsx b/deprecated/www/components/chart-toolbar.tsx
deleted file mode 100644
index 34fe566f7e..0000000000
--- a/deprecated/www/components/chart-toolbar.tsx
+++ /dev/null
@@ -1,112 +0,0 @@
-"use client"
-
-import { cn } from "@/lib/utils"
-import { ChartCodeViewer } from "@/components/chart-code-viewer"
-import { Separator } from "@/registry/new-york/ui/separator"
-
-import "@/styles/mdx.css"
-import {
- AreaChart,
- BarChartBig,
- Hexagon,
- LineChart,
- MousePointer2,
- PieChart,
- Radar,
-} from "lucide-react"
-
-import { ChartCopyButton } from "@/components/chart-copy-button"
-import { Chart } from "@/components/chart-display"
-
-export function ChartToolbar({
- chart,
- className,
- children,
-}: {
- chart: Chart
-} & React.ComponentProps<"div">) {
- return (
-
-
-
-
-
-
-
- {children}
-
-
- )
-}
-
-function ChartTitle({ chart }: { chart: Chart }) {
- const { categories } = chart
-
- if (!categories?.length) {
- return null
- }
-
- if (categories.includes("charts-line")) {
- return (
- <>
- Chart
- >
- )
- }
-
- if (categories.includes("charts-bar")) {
- return (
- <>
- Chart
- >
- )
- }
-
- if (categories.includes("charts-pie")) {
- return (
- <>
- Chart
- >
- )
- }
-
- if (categories.includes("charts-area")) {
- return (
- <>
- Chart
- >
- )
- }
-
- if (categories.includes("charts-radar")) {
- return (
- <>
- Chart
- >
- )
- }
-
- if (categories.includes("charts-radial")) {
- return (
- <>
- Chart
- >
- )
- }
-
- if (categories.includes("charts-tooltip")) {
- return (
- <>
-
- Tooltip
- >
- )
- }
-
- return categories[0]
-}
diff --git a/deprecated/www/components/charts-nav.tsx b/deprecated/www/components/charts-nav.tsx
deleted file mode 100644
index 5e3c43de89..0000000000
--- a/deprecated/www/components/charts-nav.tsx
+++ /dev/null
@@ -1,72 +0,0 @@
-"use client"
-
-import Link from "next/link"
-import { usePathname } from "next/navigation"
-
-import { cn } from "@/lib/utils"
-import { ScrollArea, ScrollBar } from "@/registry/new-york/ui/scroll-area"
-
-const links = [
- {
- name: "All Charts",
- href: "/charts",
- },
- {
- name: "Area Chart",
- href: "/charts#area-chart",
- },
- {
- name: "Bar Chart",
- href: "/charts#bar-chart",
- },
- {
- name: "Line Chart",
- href: "/charts#line-chart",
- },
- {
- name: "Pie Chart",
- href: "/charts#pie-chart",
- },
- {
- name: "Radar Chart",
- href: "/charts#radar-chart",
- },
- {
- name: "Radial Chart",
- href: "/charts#radial-chart",
- },
- {
- name: "Tooltip",
- href: "/charts#tooltip",
- },
-]
-
-export function ChartsNav({
- className,
- ...props
-}: React.ComponentProps<"div">) {
- const pathname = usePathname()
-
- return (
-
-
- {links.map((example, index) => (
-
- {example.name}
-
- ))}
-
-
-
- )
-}
diff --git a/deprecated/www/components/code-block-command.tsx b/deprecated/www/components/code-block-command.tsx
deleted file mode 100644
index 854aa22095..0000000000
--- a/deprecated/www/components/code-block-command.tsx
+++ /dev/null
@@ -1,110 +0,0 @@
-"use client"
-
-import * as React from "react"
-import { CheckIcon, ClipboardIcon } from "lucide-react"
-
-import { NpmCommands } from "@/types/unist"
-import { useConfig } from "@/hooks/use-config"
-import { copyToClipboardWithMeta } from "@/components/copy-button"
-import { Tabs } from "@/registry/default/ui/tabs"
-import { Button } from "@/registry/new-york/ui/button"
-import { TabsContent, TabsList, TabsTrigger } from "@/registry/new-york/ui/tabs"
-
-export function CodeBlockCommand({
- __npmCommand__,
- __yarnCommand__,
- __pnpmCommand__,
- __bunCommand__,
-}: React.ComponentProps<"pre"> & NpmCommands) {
- const [config, setConfig] = useConfig()
- const [hasCopied, setHasCopied] = React.useState(false)
-
- React.useEffect(() => {
- if (hasCopied) {
- const timer = setTimeout(() => setHasCopied(false), 2000)
- return () => clearTimeout(timer)
- }
- }, [hasCopied])
-
- const packageManager = config.packageManager || "pnpm"
- const tabs = React.useMemo(() => {
- return {
- pnpm: __pnpmCommand__,
- npm: __npmCommand__,
- yarn: __yarnCommand__,
- bun: __bunCommand__,
- }
- }, [__npmCommand__, __pnpmCommand__, __yarnCommand__, __bunCommand__])
-
- const copyCommand = React.useCallback(() => {
- const command = tabs[packageManager]
-
- if (!command) {
- return
- }
-
- copyToClipboardWithMeta(command, {
- name: "copy_npm_command",
- properties: {
- command,
- pm: packageManager,
- },
- })
- setHasCopied(true)
- }, [packageManager, tabs])
-
- return (
-
-
{
- setConfig({
- ...config,
- packageManager: value as "pnpm" | "npm" | "yarn" | "bun",
- })
- }}
- >
-
-
- {Object.entries(tabs).map(([key, value]) => {
- return (
-
- {key}
-
- )
- })}
-
-
-
- {Object.entries(tabs).map(([key, value]) => {
- return (
-
-
-
- {value}
-
-
-
- )
- })}
-
-
-
- Copy
- {hasCopied ? : }
-
-
- )
-}
diff --git a/deprecated/www/components/code-block-wrapper.tsx b/deprecated/www/components/code-block-wrapper.tsx
deleted file mode 100644
index 1f961adf3c..0000000000
--- a/deprecated/www/components/code-block-wrapper.tsx
+++ /dev/null
@@ -1,56 +0,0 @@
-"use client"
-
-import * as React from "react"
-
-import { cn } from "@/lib/utils"
-import { Button } from "@/registry/new-york/ui/button"
-import {
- Collapsible,
- CollapsibleContent,
- CollapsibleTrigger,
-} from "@/registry/new-york/ui/collapsible"
-
-interface CodeBlockProps extends React.HTMLAttributes {
- expandButtonTitle?: string
-}
-
-export function CodeBlockWrapper({
- expandButtonTitle = "View Code",
- className,
- children,
- ...props
-}: CodeBlockProps) {
- const [isOpened, setIsOpened] = React.useState(false)
-
- return (
-
-
-
-
- {children}
-
-
-
-
-
- {isOpened ? "Collapse" : expandButtonTitle}
-
-
-
-
-
- )
-}
diff --git a/deprecated/www/components/code-tabs.tsx b/deprecated/www/components/code-tabs.tsx
deleted file mode 100644
index 79655cf519..0000000000
--- a/deprecated/www/components/code-tabs.tsx
+++ /dev/null
@@ -1,26 +0,0 @@
-"use client"
-
-import * as React from "react"
-
-import { useConfig } from "@/hooks/use-config"
-import { Tabs } from "@/registry/default/ui/tabs"
-
-export function CodeTabs({ children }: React.ComponentProps) {
- const [config, setConfig] = useConfig()
-
- const installationType = React.useMemo(() => {
- return config.installationType || "cli"
- }, [config])
-
- return (
-
- setConfig({ ...config, installationType: value as "cli" | "manual" })
- }
- className="relative mt-6 w-full"
- >
- {children}
-
- )
-}
diff --git a/deprecated/www/components/color-format-selector.tsx b/deprecated/www/components/color-format-selector.tsx
deleted file mode 100644
index 488259876c..0000000000
--- a/deprecated/www/components/color-format-selector.tsx
+++ /dev/null
@@ -1,70 +0,0 @@
-"use client"
-
-import * as React from "react"
-
-import { getColorFormat, type Color } from "@/lib/colors"
-import { cn } from "@/lib/utils"
-import { useColors } from "@/hooks/use-colors"
-import {
- Select,
- SelectContent,
- SelectItem,
- SelectTrigger,
- SelectValue,
-} from "@/registry/new-york/ui/select"
-import { Skeleton } from "@/registry/new-york/ui/skeleton"
-
-export function ColorFormatSelector({
- color,
- className,
- ...props
-}: Omit, "color"> & {
- color: Color
-}) {
- const { format, setFormat, isLoading } = useColors()
- const formats = React.useMemo(() => getColorFormat(color), [color])
-
- if (isLoading) {
- return
- }
-
- return (
-
-
- Format:
-
- {format}
-
-
-
- {Object.entries(formats).map(([format, value]) => (
-
- {format}
-
- {value}
-
-
- ))}
-
-
- )
-}
-
-export function ColorFormatSelectorSkeleton({
- className,
- ...props
-}: React.ComponentProps) {
- return (
-
- )
-}
diff --git a/deprecated/www/components/color-palette.tsx b/deprecated/www/components/color-palette.tsx
deleted file mode 100644
index 294c7f58de..0000000000
--- a/deprecated/www/components/color-palette.tsx
+++ /dev/null
@@ -1,34 +0,0 @@
-import * as React from "react"
-
-import { type ColorPalette } from "@/lib/colors"
-import { Color } from "@/components/color"
-import {
- ColorFormatSelector,
- ColorFormatSelectorSkeleton,
-} from "@/components/color-format-selector"
-
-export function ColorPalette({ colorPalette }: { colorPalette: ColorPalette }) {
- return (
-
-
-
-
{colorPalette.name}
-
-
}>
-
-
-
-
- {colorPalette.colors.map((color) => (
-
- ))}
-
-
- )
-}
diff --git a/deprecated/www/components/color.tsx b/deprecated/www/components/color.tsx
deleted file mode 100644
index fffca62c60..0000000000
--- a/deprecated/www/components/color.tsx
+++ /dev/null
@@ -1,54 +0,0 @@
-"use client"
-
-import { Check, Clipboard } from "lucide-react"
-import { toast } from "sonner"
-
-import { type Color } from "@/lib/colors"
-import { trackEvent } from "@/lib/events"
-import { useColors } from "@/hooks/use-colors"
-import { useCopyToClipboard } from "@/hooks/use-copy-to-clipboard"
-
-export function Color({ color }: { color: Color }) {
- const { format } = useColors()
- const { isCopied, copyToClipboard } = useCopyToClipboard()
-
- return (
- {
- copyToClipboard(color[format])
- trackEvent({
- name: "copy_color",
- properties: {
- color: color.id,
- value: color[format],
- format,
- },
- })
- toast.success(`Copied ${color[format]} to clipboard.`)
- }}
- >
- {isCopied ? (
-
- ) : (
-
- )}
-
-
-
- {color.className}
-
-
- {color.scale}
-
-
-
- )
-}
diff --git a/deprecated/www/components/command-menu.tsx b/deprecated/www/components/command-menu.tsx
deleted file mode 100644
index bbcddc9e8c..0000000000
--- a/deprecated/www/components/command-menu.tsx
+++ /dev/null
@@ -1,126 +0,0 @@
-"use client"
-
-import * as React from "react"
-import { useRouter } from "next/navigation"
-import { type DialogProps } from "@radix-ui/react-dialog"
-import { Circle, File, Laptop, Moon, Sun } from "lucide-react"
-import { useTheme } from "next-themes"
-
-import { docsConfig } from "@/config/docs"
-import { cn } from "@/lib/utils"
-import { Button } from "@/registry/new-york/ui/button"
-import {
- CommandDialog,
- CommandEmpty,
- CommandGroup,
- CommandInput,
- CommandItem,
- CommandList,
- CommandSeparator,
-} from "@/registry/new-york/ui/command"
-
-export function CommandMenu({ ...props }: DialogProps) {
- const router = useRouter()
- const [open, setOpen] = React.useState(false)
- const { setTheme } = useTheme()
-
- React.useEffect(() => {
- const down = (e: KeyboardEvent) => {
- if ((e.key === "k" && (e.metaKey || e.ctrlKey)) || e.key === "/") {
- if (
- (e.target instanceof HTMLElement && e.target.isContentEditable) ||
- e.target instanceof HTMLInputElement ||
- e.target instanceof HTMLTextAreaElement ||
- e.target instanceof HTMLSelectElement
- ) {
- return
- }
-
- e.preventDefault()
- setOpen((open) => !open)
- }
- }
-
- document.addEventListener("keydown", down)
- return () => document.removeEventListener("keydown", down)
- }, [])
-
- const runCommand = React.useCallback((command: () => unknown) => {
- setOpen(false)
- command()
- }, [])
-
- return (
- <>
- setOpen(true)}
- {...props}
- >
- Search documentation...
- Search...
-
- ⌘ K
-
-
-
-
-
- No results found.
-
- {docsConfig.mainNav
- .filter((navitem) => !navitem.external)
- .map((navItem) => (
- {
- runCommand(() => router.push(navItem.href as string))
- }}
- >
-
- {navItem.title}
-
- ))}
-
- {docsConfig.sidebarNav.map((group) => (
-
- {group.items.map((navItem) => (
- {
- runCommand(() => router.push(navItem.href as string))
- }}
- >
-
-
-
- {navItem.title}
-
- ))}
-
- ))}
-
-
- runCommand(() => setTheme("light"))}>
-
- Light
-
- runCommand(() => setTheme("dark"))}>
-
- Dark
-
- runCommand(() => setTheme("system"))}>
-
- System
-
-
-
-
- >
- )
-}
diff --git a/deprecated/www/components/component-card.tsx b/deprecated/www/components/component-card.tsx
deleted file mode 100644
index d4ec2acef3..0000000000
--- a/deprecated/www/components/component-card.tsx
+++ /dev/null
@@ -1,21 +0,0 @@
-import React from "react"
-
-import { cn } from "@/lib/utils"
-import { AspectRatio } from "@/registry/new-york/ui/aspect-ratio"
-
-export function ComponentCard({
- className,
- ...props
-}: React.HTMLAttributes) {
- return (
-
-
-
- )
-}
diff --git a/deprecated/www/components/component-example.tsx b/deprecated/www/components/component-example.tsx
deleted file mode 100644
index 433b3ba1a6..0000000000
--- a/deprecated/www/components/component-example.tsx
+++ /dev/null
@@ -1,107 +0,0 @@
-"use client"
-
-import * as React from "react"
-
-import { cn } from "@/lib/utils"
-import { CopyButton, CopyWithClassNames } from "@/components/copy-button"
-import {
- Tabs,
- TabsContent,
- TabsList,
- TabsTrigger,
-} from "@/registry/new-york/ui/tabs"
-
-interface ComponentExampleProps extends React.HTMLAttributes {
- extractClassname?: boolean
- extractedClassNames?: string
- align?: "center" | "start" | "end"
- src?: string
-}
-
-export function ComponentExample({
- children,
- className,
- extractClassname,
- extractedClassNames,
- align = "center",
- src: _,
- ...props
-}: ComponentExampleProps) {
- const [Example, Code, ...Children] = React.Children.toArray(
- children
- ) as React.ReactElement[]
-
- const codeString = React.useMemo(() => {
- if (
- typeof Code?.props["data-rehype-pretty-code-fragment"] !== "undefined"
- ) {
- const [, Button] = React.Children.toArray(
- Code.props.children
- ) as React.ReactElement[]
- return Button?.props?.value || Button?.props?.__rawString__ || null
- }
- }, [Code])
-
- return (
-
-
-
-
-
- Preview
-
-
- Code
-
-
- {extractedClassNames ? (
-
- ) : (
- codeString && (
-
- )
- )}
-
-
-
- {Example}
-
-
-
-
-
- {Code}
-
- {Children?.length ? (
-
- {Children}
-
- ) : null}
-
-
-
-
- )
-}
diff --git a/deprecated/www/components/component-preview.tsx b/deprecated/www/components/component-preview.tsx
deleted file mode 100644
index b0e8105e72..0000000000
--- a/deprecated/www/components/component-preview.tsx
+++ /dev/null
@@ -1,176 +0,0 @@
-"use client"
-
-import * as React from "react"
-import Image from "next/image"
-import { Index } from "@/__registry__"
-
-import { cn } from "@/lib/utils"
-import { useConfig } from "@/hooks/use-config"
-import { CopyButton } from "@/components/copy-button"
-import { Icons } from "@/components/icons"
-import { StyleSwitcher } from "@/components/style-switcher"
-import { ThemeWrapper } from "@/components/theme-wrapper"
-import { V0Button } from "@/components/v0-button"
-import {
- Tabs,
- TabsContent,
- TabsList,
- TabsTrigger,
-} from "@/registry/new-york/ui/tabs"
-import { styles } from "@/registry/registry-styles"
-
-interface ComponentPreviewProps extends React.HTMLAttributes {
- name: string
- extractClassname?: boolean
- extractedClassNames?: string
- align?: "center" | "start" | "end"
- description?: string
- hideCode?: boolean
- type?: "block" | "component" | "example"
-}
-
-export function ComponentPreview({
- name,
- type,
- children,
- className,
- extractClassname,
- extractedClassNames,
- align = "center",
- description,
- hideCode = false,
- ...props
-}: ComponentPreviewProps) {
- const [config] = useConfig()
- const index = styles.findIndex((style) => style.name === config.style)
-
- const Codes = React.Children.toArray(children) as React.ReactElement[]
- const Code = Codes[index]
-
- const Preview = React.useMemo(() => {
- const Component = Index[config.style][name]?.component
-
- if (!Component) {
- return (
-
- Component{" "}
-
- {name}
- {" "}
- not found in registry.
-
- )
- }
-
- return
- }, [name, config.style])
-
- const codeString = React.useMemo(() => {
- if (
- typeof Code?.props["data-rehype-pretty-code-fragment"] !== "undefined"
- ) {
- const [Button] = React.Children.toArray(
- Code.props.children
- ) as React.ReactElement[]
- return Button?.props?.value || Button?.props?.__rawString__ || null
- }
- }, [Code])
-
- if (type === "block") {
- return (
-
- )
- }
-
- return (
-
-
-
- {!hideCode && (
-
-
- Preview
-
-
- Code
-
-
- )}
-
-
-
-
-
- {description ? : null}
-
-
-
-
-
-
-
- Loading...
-
- }
- >
- {Preview}
-
-
-
-
-
-
-
-
-
- )
-}
diff --git a/deprecated/www/components/component-source.tsx b/deprecated/www/components/component-source.tsx
deleted file mode 100644
index 31150384c0..0000000000
--- a/deprecated/www/components/component-source.tsx
+++ /dev/null
@@ -1,25 +0,0 @@
-"use client"
-
-import * as React from "react"
-
-import { cn } from "@/lib/utils"
-import { CodeBlockWrapper } from "@/components/code-block-wrapper"
-
-interface ComponentSourceProps extends React.HTMLAttributes {
- src: string
-}
-
-export function ComponentSource({
- children,
- className,
- ...props
-}: ComponentSourceProps) {
- return (
-
- {children}
-
- )
-}
diff --git a/deprecated/www/components/copy-button.tsx b/deprecated/www/components/copy-button.tsx
deleted file mode 100644
index d599602d3f..0000000000
--- a/deprecated/www/components/copy-button.tsx
+++ /dev/null
@@ -1,207 +0,0 @@
-"use client"
-
-import * as React from "react"
-import { DropdownMenuTriggerProps } from "@radix-ui/react-dropdown-menu"
-import { CheckIcon, ClipboardIcon } from "lucide-react"
-import { NpmCommands } from "types/unist"
-
-import { Event, trackEvent } from "@/lib/events"
-import { cn } from "@/lib/utils"
-import { Button, ButtonProps } from "@/registry/new-york/ui/button"
-import {
- DropdownMenu,
- DropdownMenuContent,
- DropdownMenuItem,
- DropdownMenuTrigger,
-} from "@/registry/new-york/ui/dropdown-menu"
-
-interface CopyButtonProps extends ButtonProps {
- value: string
- src?: string
- event?: Event["name"]
-}
-
-export async function copyToClipboardWithMeta(value: string, event?: Event) {
- navigator.clipboard.writeText(value)
- if (event) {
- trackEvent(event)
- }
-}
-
-export function CopyButton({
- value,
- className,
- src,
- variant = "ghost",
- event,
- ...props
-}: CopyButtonProps) {
- const [hasCopied, setHasCopied] = React.useState(false)
-
- React.useEffect(() => {
- setTimeout(() => {
- setHasCopied(false)
- }, 2000)
- }, [hasCopied])
-
- return (
- {
- copyToClipboardWithMeta(
- value,
- event
- ? {
- name: event,
- properties: {
- code: value,
- },
- }
- : undefined
- )
- setHasCopied(true)
- }}
- {...props}
- >
- Copy
- {hasCopied ? : }
-
- )
-}
-
-interface CopyWithClassNamesProps extends DropdownMenuTriggerProps {
- value: string
- classNames: string
- className?: string
-}
-
-export function CopyWithClassNames({
- value,
- classNames,
- className,
- ...props
-}: CopyWithClassNamesProps) {
- const [hasCopied, setHasCopied] = React.useState(false)
-
- React.useEffect(() => {
- setTimeout(() => {
- setHasCopied(false)
- }, 2000)
- }, [hasCopied])
-
- const copyToClipboard = React.useCallback((value: string) => {
- copyToClipboardWithMeta(value)
- setHasCopied(true)
- }, [])
-
- return (
-
-
-
- {hasCopied ? (
-
- ) : (
-
- )}
- Copy
-
-
-
- copyToClipboard(value)}>
- Component
-
- copyToClipboard(classNames)}>
- Classname
-
-
-
- )
-}
-
-interface CopyNpmCommandButtonProps extends DropdownMenuTriggerProps {
- commands: Required
-}
-
-export function CopyNpmCommandButton({
- commands,
- className,
- ...props
-}: CopyNpmCommandButtonProps) {
- const [hasCopied, setHasCopied] = React.useState(false)
-
- React.useEffect(() => {
- setTimeout(() => {
- setHasCopied(false)
- }, 2000)
- }, [hasCopied])
-
- const copyCommand = React.useCallback(
- (value: string, pm: "npm" | "pnpm" | "yarn" | "bun") => {
- copyToClipboardWithMeta(value, {
- name: "copy_npm_command",
- properties: {
- command: value,
- pm,
- },
- })
- setHasCopied(true)
- },
- []
- )
-
- return (
-
-
-
- {hasCopied ? (
-
- ) : (
-
- )}
- Copy
-
-
-
- copyCommand(commands.__npmCommand__, "npm")}
- >
- npm
-
- copyCommand(commands.__yarnCommand__, "yarn")}
- >
- yarn
-
- copyCommand(commands.__pnpmCommand__, "pnpm")}
- >
- pnpm
-
- copyCommand(commands.__bunCommand__, "bun")}
- >
- bun
-
-
-
- )
-}
diff --git a/deprecated/www/components/docs-nav.tsx b/deprecated/www/components/docs-nav.tsx
deleted file mode 100644
index b6ff7a4c5f..0000000000
--- a/deprecated/www/components/docs-nav.tsx
+++ /dev/null
@@ -1,86 +0,0 @@
-"use client"
-
-import Link from "next/link"
-import { usePathname } from "next/navigation"
-import { SidebarNavItem } from "types/nav"
-
-import { type DocsConfig } from "@/config/docs"
-import { cn } from "@/lib/utils"
-
-export function DocsNav({ config }: { config: DocsConfig }) {
- const pathname = usePathname()
-
- const items = config.sidebarNav
-
- return items.length ? (
-
- {items.map((item, index) => (
-
-
- {item.title}{" "}
- {item.label && (
-
- {item.label}
-
- )}
-
- {item?.items?.length && (
-
- )}
-
- ))}
-
- ) : null
-}
-
-function DocsNavItems({
- items,
- pathname,
-}: {
- items: SidebarNavItem[]
- pathname: string | null
-}) {
- return items?.length ? (
-
- {items.map((item, index) =>
- item.href && !item.disabled ? (
-
- {item.title}
- {item.label && (
-
- {item.label}
-
- )}
-
- ) : (
-
- {item.title}
- {item.label && (
-
- {item.label}
-
- )}
-
- )
- )}
-
- ) : null
-}
diff --git a/deprecated/www/components/drawer.tsx b/deprecated/www/components/drawer.tsx
deleted file mode 100644
index 9b5b074cc1..0000000000
--- a/deprecated/www/components/drawer.tsx
+++ /dev/null
@@ -1,31 +0,0 @@
-"use client"
-
-import { forwardRef } from "react"
-import { Drawer as DrawerPrimitive } from "vaul"
-
-import { cn } from "@/lib/utils"
-
-const DrawerTrigger = DrawerPrimitive.Trigger
-
-const DrawerContent = forwardRef<
- React.ElementRef,
- React.ComponentPropsWithoutRef
->(({ className, children, ...props }, ref) => (
-
-
-
-
- {children}
-
-
-))
-DrawerContent.displayName = "DrawerContent"
-
-export { DrawerTrigger, DrawerContent }
diff --git a/deprecated/www/components/examples-nav.tsx b/deprecated/www/components/examples-nav.tsx
deleted file mode 100644
index aad5337e9c..0000000000
--- a/deprecated/www/components/examples-nav.tsx
+++ /dev/null
@@ -1,102 +0,0 @@
-"use client"
-
-import Link from "next/link"
-import { usePathname } from "next/navigation"
-
-import { cn } from "@/lib/utils"
-import { ScrollArea, ScrollBar } from "@/registry/new-york/ui/scroll-area"
-
-const examples = [
- {
- name: "Mail",
- href: "/examples/mail",
- code: "https://github.com/shadcn/ui/tree/main/apps/www/app/(app)/examples/mail",
- hidden: false,
- },
- {
- name: "Dashboard",
- href: "/examples/dashboard",
- code: "https://github.com/shadcn/ui/tree/main/apps/www/app/(app)/examples/dashboard",
- hidden: false,
- },
- {
- name: "Tasks",
- href: "/examples/tasks",
- code: "https://github.com/shadcn/ui/tree/main/apps/www/app/(app)/examples/tasks",
- hidden: false,
- },
- {
- name: "Playground",
- href: "/examples/playground",
- code: "https://github.com/shadcn/ui/tree/main/apps/www/app/(app)/examples/playground",
- hidden: false,
- },
- {
- name: "Forms",
- href: "/examples/forms",
- code: "https://github.com/shadcn/ui/tree/main/apps/www/app/(app)/examples/forms",
- hidden: false,
- },
- {
- name: "Music",
- href: "/examples/music",
- code: "https://github.com/shadcn/ui/tree/main/apps/www/app/(app)/examples/music",
- hidden: false,
- },
- {
- name: "Authentication",
- href: "/examples/authentication",
- code: "https://github.com/shadcn/ui/tree/main/apps/www/app/(app)/examples/authentication",
- hidden: false,
- },
-]
-
-interface ExamplesNavProps extends React.HTMLAttributes {}
-
-export function ExamplesNav({ className, ...props }: ExamplesNavProps) {
- const pathname = usePathname()
-
- return (
-
-
-
-
- {examples.map((example) => (
-
- ))}
-
-
-
-
- )
-}
-
-function ExampleLink({
- example,
- isActive,
-}: {
- example: (typeof examples)[number]
- isActive: boolean
-}) {
- if (example.hidden) {
- return null
- }
-
- return (
-
- {example.name}
-
- )
-}
diff --git a/deprecated/www/components/framework-docs.tsx b/deprecated/www/components/framework-docs.tsx
deleted file mode 100644
index 2bebd69616..0000000000
--- a/deprecated/www/components/framework-docs.tsx
+++ /dev/null
@@ -1,22 +0,0 @@
-"use client"
-
-import * as React from "react"
-import { allDocs } from "contentlayer/generated"
-
-import { Mdx } from "./mdx-components"
-
-interface FrameworkDocsProps extends React.HTMLAttributes {
- data: string
-}
-
-export function FrameworkDocs({ ...props }: FrameworkDocsProps) {
- const frameworkDoc = allDocs.find(
- (doc) => doc.slug === `/docs/installation/${props.data}`
- )
-
- if (!frameworkDoc) {
- return null
- }
-
- return
-}
diff --git a/deprecated/www/components/icons.tsx b/deprecated/www/components/icons.tsx
deleted file mode 100644
index ae29ba451c..0000000000
--- a/deprecated/www/components/icons.tsx
+++ /dev/null
@@ -1,148 +0,0 @@
-type IconProps = React.HTMLAttributes
-
-export const Icons = {
- logo: (props: IconProps) => (
-
-
-
-
-
- ),
- twitter: (props: IconProps) => (
-
-
-
- ),
- gitHub: (props: IconProps) => (
-
-
-
- ),
- radix: (props: IconProps) => (
-
-
-
-
-
- ),
- aria: (props: IconProps) => (
-
-
-
- ),
- npm: (props: IconProps) => (
-
-
-
- ),
- yarn: (props: IconProps) => (
-
-
-
- ),
- pnpm: (props: IconProps) => (
-
-
-
- ),
- react: (props: IconProps) => (
-
-
-
- ),
- tailwind: (props: IconProps) => (
-
-
-
- ),
- google: (props: IconProps) => (
-
-
-
- ),
- apple: (props: IconProps) => (
-
-
-
- ),
- paypal: (props: IconProps) => (
-
-
-
- ),
- spinner: (props: IconProps) => (
-
-
-
- ),
-}
diff --git a/deprecated/www/components/main-nav.tsx b/deprecated/www/components/main-nav.tsx
deleted file mode 100644
index 2332c9e901..0000000000
--- a/deprecated/www/components/main-nav.tsx
+++ /dev/null
@@ -1,93 +0,0 @@
-"use client"
-
-import Link from "next/link"
-import { usePathname } from "next/navigation"
-
-import { siteConfig } from "@/config/site"
-import { cn } from "@/lib/utils"
-import { Icons } from "@/components/icons"
-
-export function MainNav() {
- const pathname = usePathname()
-
- return (
-
-
-
-
- {siteConfig.name}
-
-
-
-
- Docs
-
-
- Components
-
-
- Blocks
-
-
- Charts
-
-
- Themes
-
-
- Colors
-
-
-
- )
-}
diff --git a/deprecated/www/components/mdx-components.tsx b/deprecated/www/components/mdx-components.tsx
deleted file mode 100644
index f56f99d817..0000000000
--- a/deprecated/www/components/mdx-components.tsx
+++ /dev/null
@@ -1,347 +0,0 @@
-// @ts-nocheck
-"use client"
-
-import * as React from "react"
-import Image from "next/image"
-import Link from "next/link"
-import { useMDXComponent } from "next-contentlayer2/hooks"
-import { NpmCommands } from "types/unist"
-
-import { Event } from "@/lib/events"
-import { cn } from "@/lib/utils"
-import { useConfig } from "@/hooks/use-config"
-import { Callout } from "@/components/callout"
-import { CodeBlockCommand } from "@/components/code-block-command"
-import { CodeBlockWrapper } from "@/components/code-block-wrapper"
-import { CodeTabs } from "@/components/code-tabs"
-import { ComponentExample } from "@/components/component-example"
-import { ComponentPreview } from "@/components/component-preview"
-import { ComponentSource } from "@/components/component-source"
-import { CopyButton, CopyNpmCommandButton } from "@/components/copy-button"
-import { FrameworkDocs } from "@/components/framework-docs"
-import { StyleWrapper } from "@/components/style-wrapper"
-import {
- Accordion,
- AccordionContent,
- AccordionItem,
- AccordionTrigger,
-} from "@/registry/new-york/ui/accordion"
-import {
- Alert,
- AlertDescription,
- AlertTitle,
-} from "@/registry/new-york/ui/alert"
-import { AspectRatio } from "@/registry/new-york/ui/aspect-ratio"
-import { Button } from "@/registry/new-york/ui/button"
-import {
- Tabs,
- TabsContent,
- TabsList,
- TabsTrigger,
-} from "@/registry/new-york/ui/tabs"
-import { Style } from "@/registry/registry-styles"
-
-const components = {
- Accordion,
- AccordionContent,
- AccordionItem,
- AccordionTrigger,
- Alert,
- AlertTitle,
- AlertDescription,
- Button,
- h1: ({ className, ...props }: React.HTMLAttributes) => (
-
- ),
- h2: ({ className, ...props }: React.HTMLAttributes) => (
-
- ),
- h3: ({ className, ...props }: React.HTMLAttributes) => (
-
- ),
- h4: ({ className, ...props }: React.HTMLAttributes) => (
-
- ),
- h5: ({ className, ...props }: React.HTMLAttributes) => (
-
- ),
- h6: ({ className, ...props }: React.HTMLAttributes) => (
-
- ),
- a: ({ className, ...props }: React.HTMLAttributes) => (
-
- ),
- p: ({ className, ...props }: React.HTMLAttributes) => (
-
- ),
- strong: ({ className, ...props }: React.HTMLAttributes) => (
-
- ),
- ul: ({ className, ...props }: React.HTMLAttributes) => (
-
- ),
- ol: ({ className, ...props }: React.HTMLAttributes) => (
-
- ),
- li: ({ className, ...props }: React.HTMLAttributes) => (
-
- ),
- blockquote: ({ className, ...props }: React.HTMLAttributes) => (
-
- ),
- img: ({
- className,
- alt,
- ...props
- }: React.ImgHTMLAttributes) => (
- // eslint-disable-next-line @next/next/no-img-element
-
- ),
- hr: ({ ...props }: React.HTMLAttributes) => (
-
- ),
- table: ({ className, ...props }: React.HTMLAttributes) => (
-
- ),
- tr: ({ className, ...props }: React.HTMLAttributes) => (
-
- ),
- th: ({ className, ...props }: React.HTMLAttributes) => (
-
- ),
- td: ({ className, ...props }: React.HTMLAttributes) => (
-
- ),
- pre: ({
- className,
- __rawString__,
- __npmCommand__,
- __yarnCommand__,
- __pnpmCommand__,
- __bunCommand__,
- __withMeta__,
- __src__,
- __event__,
- __style__,
- ...props
- }: React.HTMLAttributes & {
- __style__?: Style["name"]
- __rawString__?: string
- __withMeta__?: boolean
- __src__?: string
- __event__?: Event["name"]
- } & NpmCommands) => {
- const isNpmCommand =
- __npmCommand__ && __yarnCommand__ && __pnpmCommand__ && __bunCommand__
-
- if (isNpmCommand) {
- return (
-
- )
- }
-
- return (
-
-
- {__rawString__ && (
-
- )}
-
- )
- },
- code: ({ className, ...props }: React.HTMLAttributes) => (
-
- ),
- Image,
- Callout,
- ComponentPreview,
- ComponentExample,
- ComponentSource,
- AspectRatio,
- CodeBlockWrapper: ({ ...props }) => (
-
- ),
- CodeTabs,
- Step: ({ className, ...props }: React.ComponentProps<"h3">) => (
-
- ),
- Steps: ({ ...props }) => (
-
- ),
- Tabs: ({ className, ...props }: React.ComponentProps) => (
-
- ),
- TabsList: ({
- className,
- ...props
- }: React.ComponentProps) => (
-
- ),
- TabsTrigger: ({
- className,
- ...props
- }: React.ComponentProps) => (
-
- ),
- TabsContent: ({
- className,
- ...props
- }: React.ComponentProps) => (
-
- ),
- FrameworkDocs: ({
- className,
- ...props
- }: React.ComponentProps) => (
-
- ),
- Link: ({ className, ...props }: React.ComponentProps) => (
-
- ),
- LinkedCard: ({ className, ...props }: React.ComponentProps) => (
-
- ),
-}
-
-interface MdxProps {
- code: string
-}
-
-export function Mdx({ code }: MdxProps) {
- const [config] = useConfig()
- const Component = useMDXComponent(code, {
- style: config.style,
- })
-
- return (
-
-
-
- )
-}
diff --git a/deprecated/www/components/mobile-nav.tsx b/deprecated/www/components/mobile-nav.tsx
deleted file mode 100644
index 6801e0d17c..0000000000
--- a/deprecated/www/components/mobile-nav.tsx
+++ /dev/null
@@ -1,134 +0,0 @@
-"use client"
-
-import * as React from "react"
-import Link, { LinkProps } from "next/link"
-import { useRouter } from "next/navigation"
-
-import { docsConfig } from "@/config/docs"
-import { cn } from "@/lib/utils"
-import { useMetaColor } from "@/hooks/use-meta-color"
-import { Button } from "@/registry/new-york/ui/button"
-import {
- Drawer,
- DrawerContent,
- DrawerTrigger,
-} from "@/registry/new-york/ui/drawer"
-
-export function MobileNav() {
- const [open, setOpen] = React.useState(false)
- const { setMetaColor, metaColor } = useMetaColor()
-
- const onOpenChange = React.useCallback(
- (open: boolean) => {
- setOpen(open)
- setMetaColor(open ? "#09090b" : metaColor)
- },
- [setMetaColor, metaColor]
- )
-
- return (
-
-
-
-
-
-
- Toggle Menu
-
- Search documentation...
-
-
-
-
-
-
- {docsConfig.mainNav?.map(
- (item) =>
- item.href && (
-
- {item.title}
-
- )
- )}
-
-
- {docsConfig.sidebarNav.map((item, index) => (
-
-
{item.title}
- {item?.items?.length &&
- item.items.map((item) => (
-
- {!item.disabled &&
- (item.href ? (
-
- {item.title}
- {item.label && (
-
- {item.label}
-
- )}
-
- ) : (
- item.title
- ))}
-
- ))}
-
- ))}
-
-
-
-
- )
-}
-
-interface MobileLinkProps extends LinkProps {
- onOpenChange?: (open: boolean) => void
- children: React.ReactNode
- className?: string
-}
-
-function MobileLink({
- href,
- onOpenChange,
- className,
- children,
- ...props
-}: MobileLinkProps) {
- const router = useRouter()
- return (
- {
- router.push(href.toString())
- onOpenChange?.(false)
- }}
- className={cn("text-[1.15rem]", className)}
- {...props}
- >
- {children}
-
- )
-}
diff --git a/deprecated/www/components/mode-switcher.tsx b/deprecated/www/components/mode-switcher.tsx
deleted file mode 100644
index 151676d0fc..0000000000
--- a/deprecated/www/components/mode-switcher.tsx
+++ /dev/null
@@ -1,35 +0,0 @@
-"use client"
-
-import * as React from "react"
-import { MoonIcon, SunIcon } from "lucide-react"
-import { useTheme } from "next-themes"
-
-import { META_THEME_COLORS } from "@/config/site"
-import { useMetaColor } from "@/hooks/use-meta-color"
-import { Button } from "@/registry/new-york/ui/button"
-
-export function ModeSwitcher() {
- const { setTheme, resolvedTheme } = useTheme()
- const { setMetaColor } = useMetaColor()
-
- const toggleTheme = React.useCallback(() => {
- setTheme(resolvedTheme === "dark" ? "light" : "dark")
- setMetaColor(
- resolvedTheme === "dark"
- ? META_THEME_COLORS.light
- : META_THEME_COLORS.dark
- )
- }, [resolvedTheme, setTheme, setMetaColor])
-
- return (
-
-
-
- Toggle theme
-
- )
-}
diff --git a/deprecated/www/components/mode-toggle.tsx b/deprecated/www/components/mode-toggle.tsx
deleted file mode 100644
index 04beb8748f..0000000000
--- a/deprecated/www/components/mode-toggle.tsx
+++ /dev/null
@@ -1,40 +0,0 @@
-"use client"
-
-import * as React from "react"
-import { MoonIcon, SunIcon } from "lucide-react"
-import { useTheme } from "next-themes"
-
-import { Button } from "@/registry/new-york/ui/button"
-import {
- DropdownMenu,
- DropdownMenuContent,
- DropdownMenuItem,
- DropdownMenuTrigger,
-} from "@/registry/new-york/ui/dropdown-menu"
-
-export function ModeToggle() {
- const { setTheme } = useTheme()
-
- return (
-
-
-
-
-
- Toggle theme
-
-
-
- setTheme("light")}>
- Light
-
- setTheme("dark")}>
- Dark
-
- setTheme("system")}>
- System
-
-
-
- )
-}
diff --git a/deprecated/www/components/open-in-v0-cta.tsx b/deprecated/www/components/open-in-v0-cta.tsx
deleted file mode 100644
index d064f238ef..0000000000
--- a/deprecated/www/components/open-in-v0-cta.tsx
+++ /dev/null
@@ -1,35 +0,0 @@
-import Link from "next/link"
-
-import { cn } from "@/lib/utils"
-import { Button } from "@/registry/new-york/ui/button"
-
-export function OpenInV0Cta({ className }: React.ComponentProps<"div">) {
- return (
-
-
- Deploy your shadcn/ui app on Vercel
-
-
Trusted by OpenAI, Sonos, Chick-fil-A, and more.
-
- Vercel provides tools and infrastructure to deploy apps and features at
- scale.
-
-
- Deploy Now
-
-
-
Deploy to Vercel
-
-
- )
-}
diff --git a/deprecated/www/components/page-header.tsx b/deprecated/www/components/page-header.tsx
deleted file mode 100644
index 40f94c5794..0000000000
--- a/deprecated/www/components/page-header.tsx
+++ /dev/null
@@ -1,64 +0,0 @@
-import { cn } from "@/lib/utils"
-
-function PageHeader({
- className,
- children,
- ...props
-}: React.HTMLAttributes) {
- return (
-
- )
-}
-
-function PageHeaderHeading({
- className,
- ...props
-}: React.HTMLAttributes) {
- return (
-
- )
-}
-
-function PageHeaderDescription({
- className,
- ...props
-}: React.HTMLAttributes) {
- return (
-
- )
-}
-
-function PageActions({
- className,
- ...props
-}: React.HTMLAttributes) {
- return (
-
- )
-}
-
-export { PageActions, PageHeader, PageHeaderDescription, PageHeaderHeading }
diff --git a/deprecated/www/components/pager.tsx b/deprecated/www/components/pager.tsx
deleted file mode 100644
index bb30412035..0000000000
--- a/deprecated/www/components/pager.tsx
+++ /dev/null
@@ -1,67 +0,0 @@
-import Link from "next/link"
-import { Doc } from "contentlayer/generated"
-import { ChevronLeft, ChevronRight } from "lucide-react"
-import { NavItem, NavItemWithChildren } from "types/nav"
-
-import { docsConfig } from "@/config/docs"
-import { Button } from "@/registry/new-york/ui/button"
-
-interface DocsPagerProps {
- doc: Doc
-}
-
-export function DocsPager({ doc }: DocsPagerProps) {
- const pager = getPagerForDoc(doc)
-
- if (!pager) {
- return null
- }
-
- return (
-
- {pager?.prev?.href && (
-
-
-
- {pager.prev.title}
-
-
- )}
- {pager?.next?.href && (
-
-
- {pager.next.title}
-
-
-
- )}
-
- )
-}
-
-export function getPagerForDoc(doc: Doc) {
- const nav = doc.slug.startsWith("/docs/charts")
- ? docsConfig.chartsNav
- : docsConfig.sidebarNav
- const flattenedLinks = [null, ...flatten(nav), null]
- const activeIndex = flattenedLinks.findIndex(
- (link) => doc.slug === link?.href
- )
- const prev = activeIndex !== 0 ? flattenedLinks[activeIndex - 1] : null
- const next =
- activeIndex !== flattenedLinks.length - 1
- ? flattenedLinks[activeIndex + 1]
- : null
- return {
- prev,
- next,
- }
-}
-
-export function flatten(links: NavItemWithChildren[]): NavItem[] {
- return links
- .reduce((flat, link) => {
- return flat.concat(link.items?.length ? flatten(link.items) : link)
- }, [])
- .filter((link) => !link?.disabled)
-}
diff --git a/deprecated/www/components/project-add-button.tsx b/deprecated/www/components/project-add-button.tsx
deleted file mode 100644
index 6fb4933d58..0000000000
--- a/deprecated/www/components/project-add-button.tsx
+++ /dev/null
@@ -1,38 +0,0 @@
-"use client"
-
-import { Check, PlusCircle } from "lucide-react"
-
-import { cn } from "@/lib/utils"
-import { useProject } from "@/hooks/use-project"
-import { Button } from "@/registry/new-york/ui/button"
-import {
- Tooltip,
- TooltipContent,
- TooltipTrigger,
-} from "@/registry/new-york/ui/tooltip"
-
-export function ProjectAddButton({
- name,
- className,
- ...props
-}: React.ComponentProps & { name: string }) {
- const { addBlock, isAdded } = useProject()
- return (
-
-
- {
- addBlock(name)
- }}
- {...props}
- >
- {isAdded ? : }
-
-
- Add to Project
-
- )
-}
diff --git a/deprecated/www/components/promo-video.tsx b/deprecated/www/components/promo-video.tsx
deleted file mode 100644
index b35f37412c..0000000000
--- a/deprecated/www/components/promo-video.tsx
+++ /dev/null
@@ -1,19 +0,0 @@
-"use client"
-
-import { AspectRatio } from "@/registry/new-york/ui/aspect-ratio"
-
-export function PromoVideo() {
- return (
-
-
-
-
-
- )
-}
diff --git a/deprecated/www/components/providers.tsx b/deprecated/www/components/providers.tsx
deleted file mode 100644
index fa680e71d7..0000000000
--- a/deprecated/www/components/providers.tsx
+++ /dev/null
@@ -1,20 +0,0 @@
-"use client"
-
-import * as React from "react"
-import { Provider as JotaiProvider } from "jotai"
-import { ThemeProvider as NextThemesProvider } from "next-themes"
-
-import { TooltipProvider } from "@/registry/new-york/ui/tooltip"
-
-export function ThemeProvider({
- children,
- ...props
-}: React.ComponentProps) {
- return (
-
-
- {children}
-
-
- )
-}
diff --git a/deprecated/www/components/site-footer.tsx b/deprecated/www/components/site-footer.tsx
deleted file mode 100644
index 697640a4d0..0000000000
--- a/deprecated/www/components/site-footer.tsx
+++ /dev/null
@@ -1,33 +0,0 @@
-import { siteConfig } from "@/config/site"
-
-export function SiteFooter() {
- return (
-
- )
-}
diff --git a/deprecated/www/components/site-header.tsx b/deprecated/www/components/site-header.tsx
deleted file mode 100644
index de92e792cd..0000000000
--- a/deprecated/www/components/site-header.tsx
+++ /dev/null
@@ -1,45 +0,0 @@
-import Link from "next/link"
-
-import { siteConfig } from "@/config/site"
-import { CommandMenu } from "@/components/command-menu"
-import { Icons } from "@/components/icons"
-import { MainNav } from "@/components/main-nav"
-import { MobileNav } from "@/components/mobile-nav"
-import { ModeSwitcher } from "@/components/mode-switcher"
-import { Button } from "@/registry/new-york/ui/button"
-
-export function SiteHeader() {
- return (
-
-
-
-
-
-
-
-
-
-
-
-
-
- GitHub
-
-
-
-
-
-
-
-
- )
-}
diff --git a/deprecated/www/components/style-switcher.tsx b/deprecated/www/components/style-switcher.tsx
deleted file mode 100644
index 752503bac3..0000000000
--- a/deprecated/www/components/style-switcher.tsx
+++ /dev/null
@@ -1,49 +0,0 @@
-"use client"
-
-import * as React from "react"
-import { type SelectTriggerProps } from "@radix-ui/react-select"
-
-import { cn } from "@/lib/utils"
-import { useConfig } from "@/hooks/use-config"
-import {
- Select,
- SelectContent,
- SelectItem,
- SelectTrigger,
- SelectValue,
-} from "@/registry/new-york/ui/select"
-import { Style, styles } from "@/registry/registry-styles"
-
-export function StyleSwitcher({ className, ...props }: SelectTriggerProps) {
- const [config, setConfig] = useConfig()
-
- return (
-
- setConfig({
- ...config,
- style: value,
- })
- }
- >
-
- Style:
-
-
-
- {styles.map((style) => (
-
- {style.label}
-
- ))}
-
-
- )
-}
diff --git a/deprecated/www/components/style-wrapper.tsx b/deprecated/www/components/style-wrapper.tsx
deleted file mode 100644
index ecd34854bd..0000000000
--- a/deprecated/www/components/style-wrapper.tsx
+++ /dev/null
@@ -1,20 +0,0 @@
-"use client"
-
-import * as React from "react"
-
-import { useConfig } from "@/hooks/use-config"
-import { Style } from "@/registry/registry-styles"
-
-interface StyleWrapperProps extends React.HTMLAttributes {
- styleName?: Style["name"]
-}
-
-export function StyleWrapper({ styleName, children }: StyleWrapperProps) {
- const [config] = useConfig()
-
- if (!styleName || config.style === styleName) {
- return <>{children}>
- }
-
- return null
-}
diff --git a/deprecated/www/components/tailwind-indicator.tsx b/deprecated/www/components/tailwind-indicator.tsx
deleted file mode 100644
index d63dcf7687..0000000000
--- a/deprecated/www/components/tailwind-indicator.tsx
+++ /dev/null
@@ -1,17 +0,0 @@
-export function TailwindIndicator() {
- if (process.env.NODE_ENV === "production") return null
-
- return (
-
-
xs
-
sm
-
md
-
lg
-
xl
-
2xl
-
- )
-}
diff --git a/deprecated/www/components/theme-component.tsx b/deprecated/www/components/theme-component.tsx
deleted file mode 100644
index 3d56c3825d..0000000000
--- a/deprecated/www/components/theme-component.tsx
+++ /dev/null
@@ -1,52 +0,0 @@
-"use client"
-
-import * as React from "react"
-import { Index } from "@/__registry__"
-
-import { cn } from "@/lib/utils"
-import { useConfig } from "@/hooks/use-config"
-import { Icons } from "@/components/icons"
-
-interface ThemeComponentProps extends React.HTMLAttributes {
- name: string
- extractClassname?: boolean
- extractedClassNames?: string
- align?: "center" | "start" | "end"
-}
-
-export function ThemeComponent({ name, ...props }: ThemeComponentProps) {
- const [config] = useConfig()
-
- const Preview = React.useMemo(() => {
- const Component = Index[config.style][name]?.component
-
- if (!Component) {
- return (
-
- Component{" "}
-
- {name}
- {" "}
- not found in registry.
-
- )
- }
-
- return
- }, [name, config.style])
-
- return (
-
-
-
- Loading...
-
- }
- >
- {Preview}
-
-
- )
-}
diff --git a/deprecated/www/components/theme-customizer.tsx b/deprecated/www/components/theme-customizer.tsx
deleted file mode 100644
index a454fb81b4..0000000000
--- a/deprecated/www/components/theme-customizer.tsx
+++ /dev/null
@@ -1,579 +0,0 @@
-"use client"
-
-import * as React from "react"
-import template from "lodash/template"
-import { Check, ClipboardIcon, Copy } from "lucide-react"
-import { useTheme } from "next-themes"
-
-import { cn } from "@/lib/utils"
-import { useConfig } from "@/hooks/use-config"
-import { copyToClipboardWithMeta } from "@/components/copy-button"
-import { ThemeWrapper } from "@/components/theme-wrapper"
-import { Button } from "@/registry/new-york/ui/button"
-import {
- Dialog,
- DialogContent,
- DialogDescription,
- DialogHeader,
- DialogTitle,
- DialogTrigger,
-} from "@/registry/new-york/ui/dialog"
-import {
- Drawer,
- DrawerContent,
- DrawerDescription,
- DrawerHeader,
- DrawerTitle,
- DrawerTrigger,
-} from "@/registry/new-york/ui/drawer"
-import { Label } from "@/registry/new-york/ui/label"
-import {
- Popover,
- PopoverContent,
- PopoverTrigger,
-} from "@/registry/new-york/ui/popover"
-import { Separator } from "@/registry/new-york/ui/separator"
-import { Skeleton } from "@/registry/new-york/ui/skeleton"
-import {
- BaseColor,
- baseColors,
- baseColorsOKLCH,
-} from "@/registry/registry-base-colors"
-
-import "@/styles/mdx.css"
-import { toast } from "sonner"
-
-import {
- Tabs,
- TabsContent,
- TabsList,
- TabsTrigger,
-} from "@/registry/new-york/ui/tabs"
-
-interface BaseColorOKLCH {
- light: Record
- dark: Record
-}
-
-export function ThemeCustomizer() {
- const [config, setConfig] = useConfig()
- const { resolvedTheme: mode } = useTheme()
- const [mounted, setMounted] = React.useState(false)
-
- React.useEffect(() => {
- setMounted(true)
- }, [])
-
- return (
-
-
-
-
- Customize
-
-
-
-
-
-
-
-
-
- Customize
-
-
-
-
-
-
-
-
- )
-}
-
-export function Customizer() {
- const [mounted, setMounted] = React.useState(false)
- const { resolvedTheme: mode } = useTheme()
- const [config, setConfig] = useConfig()
-
- React.useEffect(() => {
- setMounted(true)
- }, [])
-
- return (
-
-
-
-
Color
-
- {baseColors
- .filter(
- (theme) =>
- !["slate", "stone", "gray", "neutral"].includes(theme.name)
- )
- .map((theme) => {
- const isActive = config.theme === theme.name
-
- return mounted ? (
- {
- setConfig({
- ...config,
- theme: theme.name,
- })
- }}
- className={cn(
- "w-[32px] rounded-lg lg:px-2.5 xl:w-[86px]",
- isActive && "border-primary/50 ring-[2px] ring-primary/30"
- )}
- style={
- {
- "--theme-primary": `hsl(${
- theme?.activeColor[mode === "dark" ? "dark" : "light"]
- })`,
- } as React.CSSProperties
- }
- >
-
- {isActive && }
-
-
- {theme.label === "Zinc" ? "Default" : theme.label}
-
-
- ) : (
-
- )
- })}
-
-
-
-
-
Radius
-
- {["0", "0.3", "0.5", "0.75", "1.0"].map((value) => {
- return (
- {
- setConfig({
- ...config,
- radius: parseFloat(value),
- })
- }}
- className={cn(
- "w-[40px] rounded-lg",
- config.radius === parseFloat(value) &&
- "border-primary/50 ring-[2px] ring-primary/30"
- )}
- >
- {value}
-
- )
- })}
-
-
-
-
-
-
-
- )
-}
-
-export function CopyCodeButton({
- className,
- ...props
-}: React.ComponentProps) {
- return (
- <>
-
-
-
- Copy
-
-
-
-
- Theme
-
- Copy and paste the following code into your CSS file.
-
-
-
-
-
-
-
-
-
-
- Copy code
-
-
-
-
- Theme
-
- Copy and paste the following code into your CSS file.
-
-
-
-
-
-
-
- >
- )
-}
-
-function CustomizerCode() {
- const [config] = useConfig()
- const [hasCopied, setHasCopied] = React.useState(false)
- const [themeVersion, setThemeVersion] = React.useState("v4")
- const activeTheme = React.useMemo(
- () => baseColors.find((theme) => theme.name === config.theme),
- [config.theme]
- )
- const activeThemeOKLCH = React.useMemo(
- () => baseColorsOKLCH[config.theme as keyof typeof baseColorsOKLCH],
- [config.theme]
- )
-
- React.useEffect(() => {
- if (hasCopied) {
- setTimeout(() => {
- setHasCopied(false)
- }, 2000)
- }
- }, [hasCopied])
-
- return (
-
-
-
-
- Tailwind v4
- v3
-
- {
- copyToClipboardWithMeta(
- themeVersion === "v3"
- ? getThemeCode(activeTheme, config.radius)
- : getThemeCodeOKLCH(activeThemeOKLCH, config.radius),
- {
- name: "copy_theme_code",
- properties: {
- theme: config.theme,
- radius: config.radius,
- },
- }
- )
- setHasCopied(true)
- }}
- className="absolute right-0 top-0 shadow-none"
- >
- {hasCopied ? : }
- Copy
-
-
-
-
-
-
- :root {
-
- --radius: {config.radius}rem;
-
- {Object.entries(activeThemeOKLCH?.light).map(([key, value]) => (
-
- --{key}: {value};
-
- ))}
- }
-
- .dark {
- {Object.entries(activeThemeOKLCH?.dark).map(([key, value]) => (
-
- --{key}: {value};
-
- ))}
- }
-
-
-
-
-
-
-
-
- @layer base {
-
- :root {
-
-
- --background:{" "}
- {activeTheme?.cssVars.light["background"]};
-
-
- --foreground:{" "}
- {activeTheme?.cssVars.light["foreground"]};
-
- {[
- "card",
- "popover",
- "primary",
- "secondary",
- "muted",
- "accent",
- "destructive",
- ].map((prefix) => (
- <>
-
- --{prefix}:{" "}
- {
- activeTheme?.cssVars.light[
- prefix as keyof typeof activeTheme.cssVars.light
- ]
- }
- ;
-
-
- --{prefix}-foreground:{" "}
- {
- activeTheme?.cssVars.light[
- `${prefix}-foreground` as keyof typeof activeTheme.cssVars.light
- ]
- }
- ;
-
- >
- ))}
-
- --border:{" "}
- {activeTheme?.cssVars.light["border"]};
-
-
- --input:{" "}
- {activeTheme?.cssVars.light["input"]};
-
-
- --ring:{" "}
- {activeTheme?.cssVars.light["ring"]};
-
-
- --radius: {config.radius}rem;
-
- {["chart-1", "chart-2", "chart-3", "chart-4", "chart-5"].map(
- (prefix) => (
- <>
-
- --{prefix}:{" "}
- {
- activeTheme?.cssVars.light[
- prefix as keyof typeof activeTheme.cssVars.light
- ]
- }
- ;
-
- >
- )
- )}
- }
-
-
- .dark {
-
-
- --background:{" "}
- {activeTheme?.cssVars.dark["background"]};
-
-
- --foreground:{" "}
- {activeTheme?.cssVars.dark["foreground"]};
-
- {[
- "card",
- "popover",
- "primary",
- "secondary",
- "muted",
- "accent",
- "destructive",
- ].map((prefix) => (
- <>
-
- --{prefix}:{" "}
- {
- activeTheme?.cssVars.dark[
- prefix as keyof typeof activeTheme.cssVars.dark
- ]
- }
- ;
-
-
- --{prefix}-foreground:{" "}
- {
- activeTheme?.cssVars.dark[
- `${prefix}-foreground` as keyof typeof activeTheme.cssVars.dark
- ]
- }
- ;
-
- >
- ))}
-
- --border:{" "}
- {activeTheme?.cssVars.dark["border"]};
-
-
- --input:{" "}
- {activeTheme?.cssVars.dark["input"]};
-
-
- --ring:{" "}
- {activeTheme?.cssVars.dark["ring"]};
-
- {["chart-1", "chart-2", "chart-3", "chart-4", "chart-5"].map(
- (prefix) => (
- <>
-
- --{prefix}:{" "}
- {
- activeTheme?.cssVars.dark[
- prefix as keyof typeof activeTheme.cssVars.dark
- ]
- }
- ;
-
- >
- )
- )}
- }
- }
-
-
-
-
-
-
- )
-}
-
-function getThemeCodeOKLCH(theme: BaseColorOKLCH | undefined, radius: number) {
- if (!theme) {
- return ""
- }
-
- const rootSection =
- ":root {\n --radius: " +
- radius +
- "rem;\n" +
- Object.entries(theme.light)
- .map((entry) => " --" + entry[0] + ": " + entry[1] + ";")
- .join("\n") +
- "\n}\n\n.dark {\n" +
- Object.entries(theme.dark)
- .map((entry) => " --" + entry[0] + ": " + entry[1] + ";")
- .join("\n") +
- "\n}\n"
-
- return rootSection
-}
-
-function getThemeCode(theme: BaseColor | undefined, radius: number) {
- if (!theme) {
- return ""
- }
-
- return template(BASE_STYLES_WITH_VARIABLES)({
- colors: theme.cssVars,
- radius: radius.toString(),
- })
-}
-
-const BASE_STYLES_WITH_VARIABLES = `
-@layer base {
- :root {
- --background: <%- colors.light["background"] %>;
- --foreground: <%- colors.light["foreground"] %>;
- --card: <%- colors.light["card"] %>;
- --card-foreground: <%- colors.light["card-foreground"] %>;
- --popover: <%- colors.light["popover"] %>;
- --popover-foreground: <%- colors.light["popover-foreground"] %>;
- --primary: <%- colors.light["primary"] %>;
- --primary-foreground: <%- colors.light["primary-foreground"] %>;
- --secondary: <%- colors.light["secondary"] %>;
- --secondary-foreground: <%- colors.light["secondary-foreground"] %>;
- --muted: <%- colors.light["muted"] %>;
- --muted-foreground: <%- colors.light["muted-foreground"] %>;
- --accent: <%- colors.light["accent"] %>;
- --accent-foreground: <%- colors.light["accent-foreground"] %>;
- --destructive: <%- colors.light["destructive"] %>;
- --destructive-foreground: <%- colors.light["destructive-foreground"] %>;
- --border: <%- colors.light["border"] %>;
- --input: <%- colors.light["input"] %>;
- --ring: <%- colors.light["ring"] %>;
- --radius: <%- radius %>rem;
- --chart-1: <%- colors.light["chart-1"] %>;
- --chart-2: <%- colors.light["chart-2"] %>;
- --chart-3: <%- colors.light["chart-3"] %>;
- --chart-4: <%- colors.light["chart-4"] %>;
- --chart-5: <%- colors.light["chart-5"] %>;
- }
-
- .dark {
- --background: <%- colors.dark["background"] %>;
- --foreground: <%- colors.dark["foreground"] %>;
- --card: <%- colors.dark["card"] %>;
- --card-foreground: <%- colors.dark["card-foreground"] %>;
- --popover: <%- colors.dark["popover"] %>;
- --popover-foreground: <%- colors.dark["popover-foreground"] %>;
- --primary: <%- colors.dark["primary"] %>;
- --primary-foreground: <%- colors.dark["primary-foreground"] %>;
- --secondary: <%- colors.dark["secondary"] %>;
- --secondary-foreground: <%- colors.dark["secondary-foreground"] %>;
- --muted: <%- colors.dark["muted"] %>;
- --muted-foreground: <%- colors.dark["muted-foreground"] %>;
- --accent: <%- colors.dark["accent"] %>;
- --accent-foreground: <%- colors.dark["accent-foreground"] %>;
- --destructive: <%- colors.dark["destructive"] %>;
- --destructive-foreground: <%- colors.dark["destructive-foreground"] %>;
- --border: <%- colors.dark["border"] %>;
- --input: <%- colors.dark["input"] %>;
- --ring: <%- colors.dark["ring"] %>;
- --chart-1: <%- colors.dark["chart-1"] %>;
- --chart-2: <%- colors.dark["chart-2"] %>;
- --chart-3: <%- colors.dark["chart-3"] %>;
- --chart-4: <%- colors.dark["chart-4"] %>;
- --chart-5: <%- colors.dark["chart-5"] %>;
- }
-}
-`
diff --git a/deprecated/www/components/theme-switcher.tsx b/deprecated/www/components/theme-switcher.tsx
deleted file mode 100644
index ed5951f24e..0000000000
--- a/deprecated/www/components/theme-switcher.tsx
+++ /dev/null
@@ -1,26 +0,0 @@
-"use client"
-
-import * as React from "react"
-import { useSelectedLayoutSegment } from "next/navigation"
-
-import { useConfig } from "@/hooks/use-config"
-
-export function ThemeSwitcher() {
- const [config] = useConfig()
- const segment = useSelectedLayoutSegment()
-
- React.useEffect(() => {
- document.body.classList.forEach((className) => {
- if (className.match(/^theme.*/)) {
- document.body.classList.remove(className)
- }
- })
-
- const theme = segment === "themes" ? config.theme : null
- if (theme) {
- return document.body.classList.add(`theme-${theme}`)
- }
- }, [segment, config])
-
- return null
-}
diff --git a/deprecated/www/components/theme-wrapper.tsx b/deprecated/www/components/theme-wrapper.tsx
deleted file mode 100644
index d4ac140af4..0000000000
--- a/deprecated/www/components/theme-wrapper.tsx
+++ /dev/null
@@ -1,33 +0,0 @@
-"use client"
-
-import { cn } from "@/lib/utils"
-import { useConfig } from "@/hooks/use-config"
-
-interface ThemeWrapperProps extends React.ComponentProps<"div"> {
- defaultTheme?: string
-}
-
-export function ThemeWrapper({
- defaultTheme,
- children,
- className,
-}: ThemeWrapperProps) {
- const [config] = useConfig()
-
- return (
-
- {children}
-
- )
-}
diff --git a/deprecated/www/components/themes-selector.tsx b/deprecated/www/components/themes-selector.tsx
deleted file mode 100644
index dd08eb27e7..0000000000
--- a/deprecated/www/components/themes-selector.tsx
+++ /dev/null
@@ -1,124 +0,0 @@
-"use client"
-
-import * as React from "react"
-import { useTheme } from "next-themes"
-
-import { THEMES, Theme } from "@/lib/themes"
-import { cn } from "@/lib/utils"
-import { useMediaQuery } from "@/hooks/use-media-query"
-import { useThemesConfig } from "@/hooks/use-themes-config"
-import { Skeleton } from "@/registry/new-york/ui/skeleton"
-import {
- ToggleGroup,
- ToggleGroupItem,
-} from "@/registry/new-york/ui/toggle-group"
-import {
- Tooltip,
- TooltipContent,
- TooltipTrigger,
-} from "@/registry/new-york/ui/tooltip"
-
-export function ThemesSwitcher({
- themes = THEMES,
- className,
-}: React.ComponentProps<"div"> & { themes?: Theme[] }) {
- const { theme: mode } = useTheme()
- const [mounted, setMounted] = React.useState(false)
- const { themesConfig, setThemesConfig } = useThemesConfig()
- const activeTheme = themesConfig.activeTheme
- const isDesktop = useMediaQuery("(min-width: 1024px)")
-
- React.useEffect(() => {
- setMounted(true)
- }, [])
-
- if (!mounted) {
- return (
-
- {themes.map((theme) => (
-
-
-
- ))}
-
- )
- }
-
- return (
- {
- const theme = themes.find((theme) => theme.name === value)
- if (!theme) {
- return
- }
-
- setThemesConfig({ ...themesConfig, activeTheme: theme })
- }}
- className={cn(
- "flex items-center justify-center gap-0.5 py-4 lg:flex-col lg:justify-start lg:gap-1",
- className
- )}
- >
- {themes.map((theme) => {
- const isActive = theme.name === activeTheme.name
- const isDarkTheme = ["Midnight"].includes(theme.name)
- const cssVars =
- mounted && mode === "dark" ? theme.cssVars.dark : theme.cssVars.light
-
- return (
-
-
-
-
-
-
-
-
-
- {theme.name}
-
-
-
-
-
- {theme.name}
-
-
- )
- })}
-
- )
-}
diff --git a/deprecated/www/components/themes-styles.tsx b/deprecated/www/components/themes-styles.tsx
deleted file mode 100644
index 890f454776..0000000000
--- a/deprecated/www/components/themes-styles.tsx
+++ /dev/null
@@ -1,31 +0,0 @@
-"use client"
-
-import { useThemesConfig } from "@/hooks/use-themes-config"
-
-export function ThemesStyle() {
- const { themesConfig } = useThemesConfig()
-
- if (!themesConfig.activeTheme) {
- return null
- }
-
- return (
-
- )
-}
diff --git a/deprecated/www/components/toc.tsx b/deprecated/www/components/toc.tsx
deleted file mode 100644
index ffbd5b2f77..0000000000
--- a/deprecated/www/components/toc.tsx
+++ /dev/null
@@ -1,107 +0,0 @@
-// @ts-nocheck
-"use client"
-
-import * as React from "react"
-
-import { TableOfContents } from "@/lib/toc"
-import { cn } from "@/lib/utils"
-import { useMounted } from "@/hooks/use-mounted"
-
-interface TocProps {
- toc: TableOfContents
-}
-
-export function DashboardTableOfContents({ toc }: TocProps) {
- const itemIds = React.useMemo(
- () =>
- toc.items
- ? toc.items
- .flatMap((item) => [item.url, item?.items?.map((item) => item.url)])
- .flat()
- .filter(Boolean)
- .map((id) => id?.split("#")[1])
- : [],
- [toc]
- )
- const activeHeading = useActiveItem(itemIds)
- const mounted = useMounted()
-
- if (!toc?.items?.length) {
- return null
- }
-
- return (
-
- )
-}
-
-function useActiveItem(itemIds: string[]) {
- const [activeId, setActiveId] = React.useState(null)
-
- React.useEffect(() => {
- const observer = new IntersectionObserver(
- (entries) => {
- entries.forEach((entry) => {
- if (entry.isIntersecting) {
- setActiveId(entry.target.id)
- }
- })
- },
- { rootMargin: `0% 0% -80% 0%` }
- )
-
- itemIds?.forEach((id) => {
- const element = document.getElementById(id)
- if (element) {
- observer.observe(element)
- }
- })
-
- return () => {
- itemIds?.forEach((id) => {
- const element = document.getElementById(id)
- if (element) {
- observer.unobserve(element)
- }
- })
- }
- }, [itemIds])
-
- return activeId
-}
-
-interface TreeProps {
- tree: TableOfContents
- level?: number
- activeItem?: string
-}
-
-function Tree({ tree, level = 1, activeItem }: TreeProps) {
- return tree?.items?.length && level < 3 ? (
-
- {tree.items.map((item, index) => {
- return (
-
-
- {item.title}
-
- {item.items?.length ? (
-
- ) : null}
-
- )
- })}
-
- ) : null
-}
diff --git a/deprecated/www/components/v0-button.tsx b/deprecated/www/components/v0-button.tsx
deleted file mode 100644
index d101b4848f..0000000000
--- a/deprecated/www/components/v0-button.tsx
+++ /dev/null
@@ -1,158 +0,0 @@
-"use client"
-
-import * as React from "react"
-import { editInV0 } from "@/actions/edit-in-v0"
-import { Loader2 } from "lucide-react"
-import { useFormStatus } from "react-dom"
-import { toast } from "sonner"
-
-import { cn } from "@/lib/utils"
-import { Button, ButtonProps } from "@/registry/new-york/ui/button"
-import {
- Tooltip,
- TooltipContent,
- TooltipTrigger,
-} from "@/registry/new-york/ui/tooltip"
-import { Style } from "@/registry/registry-styles"
-
-type Size = "default" | "icon"
-
-function V0Tooltip({
- size,
- style = "default",
- children,
-}: React.PropsWithChildren<{ size: Size; style?: Style["name"] }>) {
- if (size === "default") {
- return <>{children}>
- }
-
- return (
-
-
- {style === "new-york" ? (
- {children}
- ) : (
- <>{children}>
- )}
-
-
- {style === "new-york" ? (
- <>Not available in New York>
- ) : (
- <>Open in v0>
- )}
-
-
- )
-}
-
-export function V0Button({
- name,
- size = "default",
- disabled,
- className,
- ...props
-}: {
- name: string
- size?: Size
-} & ButtonProps) {
- const [url, setUrl] = React.useState("https://ui.shadcn.com")
-
- React.useEffect(() => {
- setUrl(window.location.href)
- }, [])
-
- return (
- {
- try {
- const result = await editInV0({
- name,
- url,
- })
-
- if (result?.error) {
- throw new Error(result.error)
- }
-
- if (result?.url) {
- const popupOpened = window.open(result.url, "_blank")
- if (!popupOpened) {
- toast.warning("Pop-up window blocked.", {
- description:
- "Click the pop-up button in your browser to continue.",
- duration: 5000,
- })
- }
- }
- } catch (error) {
- if (error instanceof Error) {
- toast.error(error.message)
- }
- }
- }}
- >
-
-
- )
-}
-
-function Form({
- disabled,
- size = "default",
- className,
- ...props
-}: Omit, "name">) {
- const { pending } = useFormStatus()
-
- return (
-
-
- {size === "icon" ? (
- <>
- {pending ? (
-
- ) : (
-
- )}
- >
- ) : (
- <>
- {pending && }
- Open in
- >
- )}
-
-
- )
-}
-
-export function V0Logo({ className, ...props }: React.ComponentProps<"svg">) {
- return (
-
-
-
-
- )
-}
diff --git a/deprecated/www/config/docs.ts b/deprecated/www/config/docs.ts
deleted file mode 100644
index 761660718a..0000000000
--- a/deprecated/www/config/docs.ts
+++ /dev/null
@@ -1,531 +0,0 @@
-import { MainNavItem, SidebarNavItem } from "types/nav"
-
-export interface DocsConfig {
- mainNav: MainNavItem[]
- sidebarNav: SidebarNavItem[]
- chartsNav: SidebarNavItem[]
-}
-
-export const docsConfig: DocsConfig = {
- mainNav: [
- {
- title: "Home",
- href: "/",
- },
- {
- title: "Documentation",
- href: "/docs",
- },
- {
- title: "Components",
- href: "/docs/components/accordion",
- },
- {
- title: "Blocks",
- href: "/blocks",
- },
- {
- title: "Charts",
- href: "/charts",
- },
- {
- title: "Themes",
- href: "/themes",
- },
- {
- title: "Colors",
- href: "/colors",
- },
- ],
- sidebarNav: [
- {
- title: "Getting Started",
- items: [
- {
- title: "Introduction",
- href: "/docs",
- items: [],
- },
- {
- title: "Installation",
- href: "/docs/installation",
- items: [],
- },
- {
- title: "components.json",
- href: "/docs/components-json",
- items: [],
- },
- {
- title: "Theming",
- href: "/docs/theming",
- items: [],
- },
- {
- title: "Dark mode",
- href: "/docs/dark-mode",
- items: [],
- },
- {
- title: "CLI",
- href: "/docs/cli",
- items: [],
- },
- {
- title: "Monorepo",
- href: "/docs/monorepo",
- items: [],
- },
- {
- title: "Tailwind v4",
- href: "/docs/tailwind-v4",
- items: [],
- label: "New",
- },
- {
- title: "Next.js 15 + React 19",
- href: "/docs/react-19",
- items: [],
- },
- {
- title: "Typography",
- href: "/docs/components/typography",
- items: [],
- },
- {
- title: "Open in v0",
- href: "/docs/v0",
- items: [],
- },
- {
- title: "Blocks",
- href: "/docs/blocks",
- items: [],
- },
- {
- title: "Figma",
- href: "/docs/figma",
- items: [],
- },
- {
- title: "Changelog",
- href: "/docs/changelog",
- items: [],
- },
- ],
- },
- {
- title: "Installation",
- items: [
- {
- title: "Next.js",
- href: "/docs/installation/next",
- items: [],
- },
- {
- title: "Vite",
- href: "/docs/installation/vite",
- items: [],
- },
- {
- title: "Laravel",
- href: "/docs/installation/laravel",
- items: [],
- },
- {
- title: "React Router",
- href: "/docs/installation/react-router",
- items: [],
- },
- {
- title: "Astro",
- href: "/docs/installation/astro",
- items: [],
- },
- {
- title: "Tanstack Start",
- href: "/docs/installation/tanstack",
- items: [],
- },
- {
- title: "Tanstack Router",
- href: "/docs/installation/tanstack-router",
- items: [],
- },
- {
- title: "Manual",
- href: "/docs/installation/manual",
- items: [],
- },
- ],
- },
- {
- title: "Components",
- items: [
- {
- title: "Accordion",
- href: "/docs/components/accordion",
- items: [],
- },
- {
- title: "Alert",
- href: "/docs/components/alert",
- items: [],
- },
- {
- title: "Alert Dialog",
- href: "/docs/components/alert-dialog",
- items: [],
- },
- {
- title: "Aspect Ratio",
- href: "/docs/components/aspect-ratio",
- items: [],
- },
- {
- title: "Avatar",
- href: "/docs/components/avatar",
- items: [],
- },
- {
- title: "Badge",
- href: "/docs/components/badge",
- items: [],
- },
- {
- title: "Breadcrumb",
- href: "/docs/components/breadcrumb",
- items: [],
- },
- {
- title: "Button",
- href: "/docs/components/button",
- items: [],
- },
- {
- title: "Calendar",
- href: "/docs/components/calendar",
- items: [],
- },
- {
- title: "Card",
- href: "/docs/components/card",
- items: [],
- },
- {
- title: "Carousel",
- href: "/docs/components/carousel",
- items: [],
- },
- {
- title: "Chart",
- href: "/docs/components/chart",
- items: [],
- },
- {
- title: "Checkbox",
- href: "/docs/components/checkbox",
- items: [],
- },
- {
- title: "Collapsible",
- href: "/docs/components/collapsible",
- items: [],
- },
- {
- title: "Combobox",
- href: "/docs/components/combobox",
- items: [],
- },
- {
- title: "Command",
- href: "/docs/components/command",
- items: [],
- },
- {
- title: "Context Menu",
- href: "/docs/components/context-menu",
- items: [],
- },
- {
- title: "Data Table",
- href: "/docs/components/data-table",
- items: [],
- },
- {
- title: "Date Picker",
- href: "/docs/components/date-picker",
- items: [],
- },
- {
- title: "Dialog",
- href: "/docs/components/dialog",
- items: [],
- },
- {
- title: "Drawer",
- href: "/docs/components/drawer",
- items: [],
- },
- {
- title: "Dropdown Menu",
- href: "/docs/components/dropdown-menu",
- items: [],
- },
- {
- title: "Form",
- href: "/docs/components/form",
- items: [],
- },
- {
- title: "Hover Card",
- href: "/docs/components/hover-card",
- items: [],
- },
- {
- title: "Input",
- href: "/docs/components/input",
- items: [],
- },
- {
- title: "Input OTP",
- href: "/docs/components/input-otp",
- items: [],
- },
- {
- title: "Label",
- href: "/docs/components/label",
- items: [],
- },
- {
- title: "Menubar",
- href: "/docs/components/menubar",
- items: [],
- },
- {
- title: "Navigation Menu",
- href: "/docs/components/navigation-menu",
- items: [],
- },
- {
- title: "Pagination",
- href: "/docs/components/pagination",
- items: [],
- },
- {
- title: "Popover",
- href: "/docs/components/popover",
- items: [],
- },
- {
- title: "Progress",
- href: "/docs/components/progress",
- items: [],
- },
- {
- title: "Radio Group",
- href: "/docs/components/radio-group",
- items: [],
- },
- {
- title: "Resizable",
- href: "/docs/components/resizable",
- items: [],
- },
- {
- title: "Scroll Area",
- href: "/docs/components/scroll-area",
- items: [],
- },
- {
- title: "Select",
- href: "/docs/components/select",
- items: [],
- },
- {
- title: "Separator",
- href: "/docs/components/separator",
- items: [],
- },
- {
- title: "Sheet",
- href: "/docs/components/sheet",
- items: [],
- },
- {
- title: "Sidebar",
- href: "/docs/components/sidebar",
- items: [],
- },
- {
- title: "Skeleton",
- href: "/docs/components/skeleton",
- items: [],
- },
- {
- title: "Slider",
- href: "/docs/components/slider",
- items: [],
- },
- {
- title: "Sonner",
- href: "/docs/components/sonner",
- items: [],
- },
- {
- title: "Switch",
- href: "/docs/components/switch",
- items: [],
- },
- {
- title: "Table",
- href: "/docs/components/table",
- items: [],
- },
- {
- title: "Tabs",
- href: "/docs/components/tabs",
- items: [],
- },
- {
- title: "Textarea",
- href: "/docs/components/textarea",
- items: [],
- },
- {
- title: "Toast",
- href: "/docs/components/toast",
- items: [],
- },
- {
- title: "Toggle",
- href: "/docs/components/toggle",
- items: [],
- },
- {
- title: "Toggle Group",
- href: "/docs/components/toggle-group",
- items: [],
- },
- {
- title: "Tooltip",
- href: "/docs/components/tooltip",
- items: [],
- },
- ],
- },
- {
- title: "Registry",
- label: "New",
- items: [
- {
- title: "Introduction",
- href: "/docs/registry",
- items: [],
- },
- {
- title: "Getting Started",
- href: "/docs/registry/getting-started",
- items: [],
- },
- {
- title: "Examples",
- href: "/docs/registry/examples",
- items: [],
- },
- {
- title: "Open in v0",
- href: "/docs/registry/open-in-v0",
- items: [],
- },
- {
- title: "FAQ",
- href: "/docs/registry/faq",
- items: [],
- },
- {
- title: "registry.json",
- href: "/docs/registry/registry-json",
- items: [],
- },
- {
- title: "registry-item.json",
- href: "/docs/registry/registry-item-json",
- items: [],
- },
- ],
- },
- ],
- chartsNav: [
- {
- title: "Getting Started",
- items: [
- {
- title: "Introduction",
- href: "/docs/charts",
- items: [],
- },
- {
- title: "Installation",
- href: "/docs/charts/installation",
- items: [],
- },
- {
- title: "Theming",
- href: "/docs/charts/theming",
- items: [],
- },
- ],
- },
- {
- title: "Charts",
- items: [
- {
- title: "Area Chart",
- href: "/docs/charts/area",
- items: [],
- },
- {
- title: "Bar Chart",
- href: "/docs/charts/bar",
- items: [],
- },
- {
- title: "Line Chart",
- href: "/docs/charts/line",
- items: [],
- },
- {
- title: "Pie Chart",
- href: "/docs/charts/pie",
- items: [],
- },
- {
- title: "Radar Chart",
- href: "/docs/charts/radar",
- items: [],
- },
- {
- title: "Radial Chart",
- href: "/docs/charts/radial",
- items: [],
- },
- ],
- },
- {
- title: "Components",
- items: [
- {
- title: "Tooltip",
- href: "/docs/charts/tooltip",
- items: [],
- },
- {
- title: "Legend",
- href: "/docs/charts/legend",
- items: [],
- },
- ],
- },
- ],
-}
diff --git a/deprecated/www/config/site.ts b/deprecated/www/config/site.ts
deleted file mode 100644
index fe6e43eef6..0000000000
--- a/deprecated/www/config/site.ts
+++ /dev/null
@@ -1,18 +0,0 @@
-export const siteConfig = {
- name: "shadcn/ui",
- url: "https://ui.shadcn.com",
- ogImage: "https://ui.shadcn.com/og.jpg",
- description:
- "A set of beautifully-designed, accessible components and a code distribution platform. Works with your favorite frameworks. Open Source. Open Code.",
- links: {
- twitter: "https://twitter.com/shadcn",
- github: "https://github.com/shadcn-ui/ui",
- },
-}
-
-export type SiteConfig = typeof siteConfig
-
-export const META_THEME_COLORS = {
- light: "#ffffff",
- dark: "#09090b",
-}
diff --git a/deprecated/www/content/docs/about.mdx b/deprecated/www/content/docs/about.mdx
deleted file mode 100644
index ab523185c5..0000000000
--- a/deprecated/www/content/docs/about.mdx
+++ /dev/null
@@ -1,20 +0,0 @@
----
-title: About
-description: Powered by amazing open source projects.
----
-
-## About
-
-[ui.shadcn.com](https://ui.shadcn.com) is a project by [shadcn](https://shadcn.com).
-
-## Credits
-
-- [Radix UI](https://radix-ui.com) - For the primitives.
-- [Vercel](https://vercel.com) - Where I host all my projects.
-- [Shu Ding](https://shud.in) - The typography style is adapted from his work on Nextra.
-- [Cal](https://cal.com) - Where I copied the styles for the first component: the `Button`.
-- [cmdk](https://cmdk.paco.me) - For the ` ` component.
-
-## License
-
-MIT © [shadcn](https://shadcn.com)
diff --git a/deprecated/www/content/docs/blocks.mdx b/deprecated/www/content/docs/blocks.mdx
deleted file mode 100644
index 84c27009ac..0000000000
--- a/deprecated/www/content/docs/blocks.mdx
+++ /dev/null
@@ -1,238 +0,0 @@
----
-title: Add a block
-description: Contribute components to the blocks library.
----
-
-We are inviting the community to contribute to the [blocks library](/blocks). Share your components and blocks with other developers and help build a library of high-quality, reusable components.
-
-We'd love to see all types of blocks: applications, marketing, products, and more.
-
-## Setup your workspace
-
-
-
-### Fork the repository
-
-```bash
-git clone https://github.com/shadcn-ui/ui.git
-```
-
-### Create a new branch
-
-```bash
-git checkout -b username/my-new-block
-```
-
-### Install dependencies
-
-```bash
-pnpm install
-```
-
-### Start the dev server
-
-```bash
-pnpm www:dev
-```
-
-
-
-## Add a block
-
-A block can be a single component (eg. a variation of a ui component) or a complex component (eg. a dashboard) with multiple components, hooks, and utils.
-
-
-
-### Create a new block
-
-Create a new folder in the `apps/www/registry/new-york/blocks` directory. Make sure the folder is named in kebab-case and under `new-york`.
-
-```txt
-apps
-└── www
- └── registry
- └── new-york
- └── blocks
- └── dashboard-01
-```
-
-
-
-**Note:** The build script will take care of building the block for the `default` style.
-
-
-
-### Add your block files
-
-Add your files to the block folder. Here is an example of a block with a page, components, hooks, and utils.
-
-```txt
-dashboard-01
-└── page.tsx
-└── components
- └── hello-world.tsx
- └── example-card.tsx
-└── hooks
- └── use-hello-world.ts
-└── lib
- └── format-date.ts
-```
-
-
-
-**Note:** You can start with one file and add more files later.
-
-
-
-
-
-## Add your block to the registry
-
-
-
-### Add your block definition to `registry-blocks.tsx`
-
-To add your block to the registry, you need to add your block definition to `registry-blocks.ts`.
-
-This follows the registry schema at [https://ui.shadcn.com/schema/registry-item.json](https://ui.shadcn.com/schema/registry-item.json).
-
-```tsx title="apps/www/registry/registry-blocks.tsx"
-export const blocks = [
- // ...
- {
- name: "dashboard-01",
- author: "shadcn (https://ui.shadcn.com)",
- title: "Dashboard",
- description: "A simple dashboard with a hello world component.",
- type: "registry:block",
- registryDependencies: ["input", "button", "card"],
- dependencies: ["zod"],
- files: [
- {
- path: "blocks/dashboard-01/page.tsx",
- type: "registry:page",
- target: "app/dashboard/page.tsx",
- },
- {
- path: "blocks/dashboard-01/components/hello-world.tsx",
- type: "registry:component",
- },
- {
- path: "blocks/dashboard-01/components/example-card.tsx",
- type: "registry:component",
- },
- {
- path: "blocks/dashboard-01/hooks/use-hello-world.ts",
- type: "registry:hook",
- },
- {
- path: "blocks/dashboard-01/lib/format-date.ts",
- type: "registry:lib",
- },
- ],
- categories: ["dashboard"],
- },
-]
-```
-
-Make sure you add a name, description, type, registryDependencies, dependencies, files, and categories. We'll go over each of these in more detail in the schema docs (coming soon).
-
-### Run the build script
-
-```bash
-pnpm registry:build
-```
-
-
-
-**Note:** you do not need to run this script for every change. You only need to run it when you update the block definition.
-
-
-
-### View your block
-
-Once the build script is finished, you can view your block at `http://localhost:3333/blocks/[CATEGORY]` or a full screen preview at `http://localhost:3333/view/styles/new-york/dashboard-01`.
-
-
-
-
-### Build your block
-
-You can now build your block by editing the files in the block folder and viewing the changes in the browser.
-
-If you add more files, make sure to add them to the `files` array in the block definition.
-
-
-
-## Publish your block
-
-Once you're ready to publish your block, you can submit a pull request to the main repository.
-
-
-
-### Run the build script
-
-```bash
-pnpm registry:build
-```
-
-### Capture a screenshot
-
-```bash
-pnpm registry:capture
-```
-
-
-
-**Note:** If you've run the capture script before, you might need to delete the existing screenshots (both light and dark) at `apps/www/public/r/styles/new-york` and run the script again.
-
-
-
-### Submit a pull request
-
-Commit your changes and submit a pull request to the main repository.
-
-Your block will be reviewed and merged. Once merged it will be published to the website and available to be installed via the CLI.
-
-
-
-## Categories
-
-The `categories` property is used to organize your block in the registry.
-
-### Add a category
-
-If you need to add a new category, you can do so by adding it to the `registryCategories` array in `apps/www/registry/registry-categories.ts`.
-
-```tsx title="apps/www/registry/registry-categories.ts"
-export const registryCategories = [
- // ...
- {
- name: "Input",
- slug: "input",
- hidden: false,
- },
-]
-```
-
-## Guidelines
-
-Here are some guidelines to follow when contributing to the blocks library.
-
-- The following properties are required for the block definition: `name`, `description`, `type`, `files`, and `categories`.
-- Make sure to list all registry dependencies in `registryDependencies`. A registry dependency is the name of the component in the registry eg. `input`, `button`, `card`, etc.
-- Make sure to list all dependencies in `dependencies`. A dependency is the name of the package in the registry eg. `zod`, `sonner`, etc.
-- If your block has a page (optional), it should be the first entry in the `files` array and it should have a `target` property. This helps the CLI place the page in the correct location for file-based routing.
-- **Imports should always use the `@/registry` path.** eg. `import { Input } from "@/registry/new-york/input"`
diff --git a/deprecated/www/content/docs/changelog.mdx b/deprecated/www/content/docs/changelog.mdx
deleted file mode 100644
index 622be8300f..0000000000
--- a/deprecated/www/content/docs/changelog.mdx
+++ /dev/null
@@ -1,775 +0,0 @@
----
-title: Changelog
-description: Latest updates and announcements.
-toc: false
----
-
-## August 2024 - npx shadcn init
-
-The new CLI is now available. It's a complete rewrite with a lot of new features and improvements. You can now install components, themes, hooks, utils and more using `npx shadcn add`.
-
-This is a major step towards distributing code that you and your LLMs can access and use.
-
-1. First up, the cli now has support for all major React framework out of the box. Next.js, Remix, Vite and Laravel. And when you init into a new app, we update your existing Tailwind files instead of overriding.
-2. A component now ship its own dependencies. Take the accordion for example, it can define its Tailwind keyframes. When you add it to your project, we’ll update your tailwind.config.ts file accordingly.
-3. You can also install remote components using url. `npx shadcn add https://acme.com/registry/navbar.json`.
-4. We have also improve the init command. It does framework detection and can even init a brand new Next.js app in one command. `npx shadcn init`.
-5. We have created a new schema that you can use to ship your own component registry. And since it has support for urls, you can even use it to distribute private components.
-6. And a few more updates like better error handling and monorepo support.
-
-You can try the new cli today.
-
-```bash
-npx shadcn init sidebar-01 login-01
-```
-
-### Update Your Project
-
-To update an existing project to use the new CLI, update your `components.json` file to include import aliases for your **components**, **utils**, **ui**, **lib** and **hooks**.
-
-```json showLineNumbers {7-13} title="components.json"
-{
- "$schema": "https://ui.shadcn.com/schema.json",
- "style": "new-york",
- "tailwind": {
- // ...
- },
- "aliases": {
- "components": "@/components",
- "utils": "@/lib/utils",
- "ui": "@/components/ui",
- "lib": "@/lib",
- "hooks": "@/hooks"
- }
-}
-```
-
-If you're using a different import alias prefix eg `~`, replace `@` with your prefix.
-
-## April 2024 - Introducing Lift Mode
-
-We're introducing a new mode for [Blocks](/blocks) called **Lift Mode**.
-
-Enable Lift Mode to automatically "lift" smaller components from a block template for copy and paste.
-
-
-
-
- View the blocks library
-
-
-With Lift Mode, you'll be able to copy the smaller components that make up a block template, like cards, buttons, and forms, and paste them directly into your project.
-
-Visit the [Blocks](/blocks) page to try it out.
-
-## March 2024 - Introducing Blocks
-
-One of the most requested features since launch has been layouts: admin dashboards with sidebar, marketing page sections, cards and more.
-
-**Today, we're launching [**Blocks**](/blocks)**.
-
-
-
-
- View the blocks library
-
-
-Blocks are ready-made components that you can use to build your apps. They are fully responsive, accessible, and composable, meaning they are built using the same principles as the rest of the components in shadcn/ui.
-
-We're starting with dashboard layouts and authentication pages, with plans to add more blocks in the coming weeks.
-
-### Open Source
-
-Blocks are open source. You can find the source on GitHub. Use them in your projects, customize them and contribute back.
-
-
-
-
- View the blocks library
-
-
-### Request a Block
-
-We're also introducing a "Request a Block" feature. If there's a specific block you'd like to see, simply create a request on GitHub and the community can upvote and build it.
-
-
-
-
- View the blocks library
-
-
-### v0
-
-If you have a [v0](https://v0.dev) account, you can use the **Edit in v0** feature to open the code on v0 for prompting and further generation.
-
-
-
-That's it. _Looking forward to seeing what you build with Blocks_.
-
-## March 2024 - Breadcrumb and Input OTP
-
-We've added a new Breadcrumb component and an Input OTP component.
-
-### Breadcrumb
-
-An accessible and flexible breadcrumb component. It has support for collapsed items, custom separators, bring-your-own routing ` ` and composable with other shadcn/ui components.
-
-
-
-[See more examples](/docs/components/breadcrumb)
-
-### Input OTP
-
-A fully featured input OTP component. It has support for numeric and alphanumeric codes, custom length, copy-paste and accessible. Input OTP is built on top of [input-otp](https://github.com/guilhermerodz/input-otp) by [@guilherme_rodz](https://twitter.com/guilherme_rodz).
-
-
-
-[Read the docs](/docs/components/input-otp)
-
-If you have a [v0](https://v0.dev), the new components are available for generation.
-
-## December 2023 - New components, CLI and more
-
-We've added new components to shadcn/ui and made a lot of improvements to the CLI.
-
-Here's a quick overview of what's new:
-
-- [**Carousel**](#carousel) - A carousel component with motion, swipe gestures and keyboard support.
-- [**Drawer**](#drawer) - A drawer component that looks amazing on mobile.
-- [**Pagination**](#pagination) - A pagination component with page navigation, previous and next buttons.
-- [**Resizable**](#resizable) - A resizable component for building resizable panel groups and layouts.
-- [**Sonner**](#sonner) - The last toast component you'll ever need.
-- [**CLI updates**](#cli-updates) - Support for custom **Tailwind prefix** and `tailwind.config.ts`.
-
-### Carousel
-
-We've added a fully featured carousel component with motion, swipe gestures and keyboard support. Built on top of [Embla Carousel](https://www.embla-carousel.com).
-
-It has support for infinite looping, autoplay, vertical orientation, and more.
-
-
-
-### Drawer
-
-Oh the drawer component 😍. Built on top of [Vaul](https://github.com/emilkowalski/vaul) by [emilkowalski\_](https://twitter.com/emilkowalski_).
-
-Try opening the following drawer on mobile. It looks amazing!
-
-
-
-### Pagination
-
-We've added a pagination component with page navigation, previous and next buttons. Simple, flexible and works with your framework's ` ` component.
-
-
-
-### Resizable
-
-Build resizable panel groups and layouts with this ` ` component.
-
-
-
-` ` is built using [react-resizable-panels](https://github.com/bvaughn/react-resizable-panels) by [bvaughn](https://github.com/bvaughn). It has support for mouse, touch and keyboard.
-
-### Sonner
-
-Another one by [emilkowalski\_](https://twitter.com/emilkowalski_). The last toast component you'll ever need. Sonner is now availabe in shadcn/ui.
-
-
-
-### CLI updates
-
-This has been one of the most requested features. You can now configure a custom Tailwind prefix and the cli will automatically prefix your utility classes when adding components.
-
-This means you can now easily add shadcn/ui components to existing projects like Docusaurus, Nextra...etc. A drop-in for your existing design system with no conflict. 🔥
-
-```tsx /tw-/
-
-```
-
-It works with `cn`, `cva` and CSS variables.
-
-The cli can now also detect `tailwind.config.ts` and add the TypeScript version of the config for you.
-
-That's it. Happy Holidays.
-
-## July 2023 - JavaScript
-
-This project and the components are written in TypeScript. **We recommend using TypeScript for your project as well**.
-
-However we provide a JavaScript version of the components, available via the [cli](/docs/cli).
-
-```txt
-Would you like to use TypeScript (recommended)? no
-```
-
-To opt-out of TypeScript, you can use the `tsx` flag in your `components.json` file.
-
-```json {10} title="components.json"
-{
- "style": "default",
- "tailwind": {
- "config": "tailwind.config.js",
- "css": "src/app/globals.css",
- "baseColor": "zinc",
- "cssVariables": true
- },
- "rsc": false,
- "tsx": false,
- "aliases": {
- "utils": "~/lib/utils",
- "components": "~/components"
- }
-}
-```
-
-To configure import aliases, you can use the following `jsconfig.json`:
-
-```json {4} title="jsconfig.json"
-{
- "compilerOptions": {
- "paths": {
- "@/*": ["./*"]
- }
- }
-}
-```
-
-## June 2023 - New CLI, Styles and more
-
-I have a lot of updates to share with you today:
-
-- [**New CLI**](#new-cli) - Rewrote the CLI from scratch. You can now add components, dependencies and configure import paths.
-- [**Theming**](#theming-with-css-variables-or-tailwind-colors) - Choose between using CSS variables or Tailwind CSS utility classes for theming.
-- [**Base color**](#base-color) - Configure the base color for your project. This will be used to generate the default color palette for your components.
-- [**React Server Components**](#react-server-components) - Opt out of using React Server Components. The CLI will automatically append or remove the `use client` directive.
-- [**Styles**](#styles) - Introducing a new concept called _Style_. A style comes with its own set of components, animations, icons and more.
-- [**Exit animations**](#exit-animations) - Added exit animations to all components.
-- [**Other updates**](#other-updates) - New `icon` button size, updated `sheet` component and more.
-- [**Updating your project**](#updating-your-project) - How to update your project to get the latest changes.
-
----
-
-### New CLI
-
-I've been working on a new CLI for the past few weeks. It's a complete rewrite. It comes with a lot of new features and improvements.
-
-### `init`
-
-```bash
-npx shadcn@latest init
-```
-
-When you run the `init` command, you will be asked a few questions to configure `components.json`:
-
-```txt showLineNumbers
-Which style would you like to use? › Default
-Which color would you like to use as base color? › Slate
-Where is your global CSS file? › › app/globals.css
-Do you want to use CSS variables for colors? › no / yes
-Where is your tailwind.config.js located? › tailwind.config.js
-Configure the import alias for components: › @/components
-Configure the import alias for utils: › @/lib/utils
-Are you using React Server Components? › no / yes
-```
-
-This file contains all the information about your components: where to install them, the import paths, how they are styled...etc.
-
-You can use this file to change the import path of a component, set a baseColor or change the styling method.
-
-```json title="components.json"
-{
- "style": "default",
- "tailwind": {
- "config": "tailwind.config.ts",
- "css": "src/app/globals.css",
- "baseColor": "zinc",
- "cssVariables": true
- },
- "rsc": false,
- "aliases": {
- "utils": "~/lib/utils",
- "components": "~/components"
- }
-}
-```
-
-This means you can now use the CLI with any directory structure including `src` and `app` directories.
-
-### `add`
-
-```bash
-npx shadcn@latest add
-```
-
-The `add` command is now much more capable. You can now add UI components but also import more complex components (coming soon).
-
-The CLI will automatically resolve all components and dependencies, format them based on your custom config and add them to your project.
-
-### `diff` (experimental)
-
-```bash
-npx shadcn diff
-```
-
-We're also introducing a new `diff` command to help you keep track of upstream updates.
-
-You can use this command to see what has changed in the upstream repository and update your project accordingly.
-
-Run the `diff` command to get a list of components that have updates available:
-
-```bash
-npx shadcn diff
-```
-
-```txt
-The following components have updates available:
-- button
- - /path/to/my-app/components/ui/button.tsx
-- toast
- - /path/to/my-app/components/ui/use-toast.ts
- - /path/to/my-app/components/ui/toaster.tsx
-```
-
-Then run `diff [component]` to see the changes:
-
-```bash
-npx shadcn diff alert
-```
-
-```diff /pl-12/
-const alertVariants = cva(
-- "relative w-full rounded-lg border",
-+ "relative w-full pl-12 rounded-lg border"
-)
-```
-
----
-
-### Theming with CSS Variables or Tailwind Colors
-
-You can choose between using CSS variables or Tailwind CSS utility classes for theming.
-
-When you add new components, the CLI will automatically use the correct theming methods based on your `components.json` configuration.
-
-#### Utility classes
-
-```tsx /bg-zinc-950/ /text-zinc-50/ /dark:bg-white/ /dark:text-zinc-950/
-
-```
-
-To use utility classes for theming set `tailwind.cssVariables` to `false` in your `components.json` file.
-
-```json {6} title="components.json"
-{
- "tailwind": {
- "config": "tailwind.config.js",
- "css": "app/globals.css",
- "baseColor": "slate",
- "cssVariables": false
- }
-}
-```
-
-#### CSS Variables
-
-```tsx /bg-background/ /text-foreground/
-
-```
-
-To use CSS variables classes for theming set `tailwind.cssVariables` to `true` in your `components.json` file.
-
-```json {6} title="components.json"
-{
- "tailwind": {
- "config": "tailwind.config.js",
- "css": "app/globals.css",
- "baseColor": "slate",
- "cssVariables": true
- }
-}
-```
-
----
-
-### Base color
-
-You can now configure the base color for your project. This will be used to generate the default color palette for your components.
-
-```json {5} title="components.json"
-{
- "tailwind": {
- "config": "tailwind.config.js",
- "css": "app/globals.css",
- "baseColor": "zinc",
- "cssVariables": false
- }
-}
-```
-
-Choose between `gray`, `neutral`, `slate`, `stone` or `zinc`.
-
-If you have `cssVariables` set to `true`, we will set the base colors as CSS variables in your `globals.css` file. If you have `cssVariables` set to `false`, we will inline the Tailwind CSS utility classes in your components.
-
----
-
-### React Server Components
-
-If you're using a framework that does not support React Server Components, you can now opt out by setting `rsc` to `false`. We will automatically append or remove the `use client` directive when adding components.
-
-```json title="components.json"
-{
- "rsc": false
-}
-```
-
----
-
-### Styles
-
-We are introducing a new concept called _Style_.
-
-_You can think of style as the visual foundation: shapes, icons, animations & typography._ A style comes with its own set of components, animations, icons and more.
-
-We are shipping two styles: `default` and `new-york` (with more coming soon).
-
-
-
-The `default` style is the one you are used to. It's the one we've been using since the beginning of this project. It uses `lucide-react` for icons and `tailwindcss-animate` for animations.
-
-The `new-york` style is a new style. It ships with smaller buttons, cards with shadows and a new set of icons from [Radix Icons](https://icons.radix-ui.com).
-
-When you run the `init` command, you will be asked which style you would like to use. This is saved in your `components.json` file.
-
-```json title="components.json"
-{
- "style": "new-york"
-}
-```
-
-### Theming
-
-Start with a style as the base then theme using CSS variables or Tailwind CSS utility classes to completely change the look of your components.
-
-
-
----
-
-### Exit animations
-
-I added exit animations to all components. Click on the combobox below to see the subtle exit animation.
-
-
-
-The animations can be customized using utility classes.
-
----
-
-### Other updates
-
-### Button
-
-- Added a new button size `icon`:
-
-
-
-### Sheet
-
-- Renamed `position` to `side` to match the other elements.
-
-
-
-- Removed the `size` props. Use `className="w-[200px] md:w-[450px]"` for responsive sizing.
-
----
-
-### Updating your project
-
-Since we follow a copy and paste approach, you will need to manually update your project to get the latest changes.
-
-
- Note: we are working on a [`diff`](#diff-experimental) command to help you
- keep track of upstream updates.
-
-
-
-
-### Add `components.json`
-
-Creating a `components.json` file at the root:
-
-```json title="components.json"
-{
- "style": "default",
- "rsc": true,
- "tailwind": {
- "config": "tailwind.config.js",
- "css": "app/globals.css",
- "baseColor": "slate",
- "cssVariables": true
- },
- "aliases": {
- "components": "@/components",
- "utils": "@/lib/utils"
- }
-}
-```
-
-Update the values for `tailwind.css` and `aliases` to match your project structure.
-
-### Button
-
-Add the `icon` size to the `buttonVariants`:
-
-```tsx {7} title="components/ui/button.tsx"
-const buttonVariants = cva({
- variants: {
- size: {
- default: "h-10 px-4 py-2",
- sm: "h-9 rounded-md px-3",
- lg: "h-11 rounded-md px-8",
- icon: "h-10 w-10",
- },
- },
-})
-```
-
-### Sheet
-
-1. Replace the content of `sheet.tsx` with the following:
-
-```tsx title="components/ui/sheet.tsx"
-"use client"
-
-import * as React from "react"
-import * as SheetPrimitive from "@radix-ui/react-dialog"
-import { cva, type VariantProps } from "class-variance-authority"
-import { X } from "lucide-react"
-
-import { cn } from "@/lib/utils"
-
-const Sheet = SheetPrimitive.Root
-
-const SheetTrigger = SheetPrimitive.Trigger
-
-const SheetClose = SheetPrimitive.Close
-
-const SheetPortal = ({
- className,
- ...props
-}: SheetPrimitive.DialogPortalProps) => (
-
-)
-SheetPortal.displayName = SheetPrimitive.Portal.displayName
-
-const SheetOverlay = React.forwardRef<
- React.ElementRef,
- React.ComponentPropsWithoutRef
->(({ className, ...props }, ref) => (
-
-))
-SheetOverlay.displayName = SheetPrimitive.Overlay.displayName
-
-const sheetVariants = cva(
- "fixed z-50 gap-4 bg-background p-6 shadow-lg transition ease-in-out data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:duration-300 data-[state=open]:duration-500",
- {
- variants: {
- side: {
- top: "inset-x-0 top-0 border-b data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top",
- bottom:
- "inset-x-0 bottom-0 border-t data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom",
- left: "inset-y-0 left-0 h-full w-3/4 border-r data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left sm:max-w-sm",
- right:
- "inset-y-0 right-0 h-full w-3/4 border-l data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right sm:max-w-sm",
- },
- },
- defaultVariants: {
- side: "right",
- },
- }
-)
-
-interface SheetContentProps
- extends React.ComponentPropsWithoutRef,
- VariantProps {}
-
-const SheetContent = React.forwardRef<
- React.ElementRef,
- SheetContentProps
->(({ side = "right", className, children, ...props }, ref) => (
-
-
-
- {children}
-
-
- Close
-
-
-
-))
-SheetContent.displayName = SheetPrimitive.Content.displayName
-
-const SheetHeader = ({
- className,
- ...props
-}: React.HTMLAttributes) => (
-
-)
-SheetHeader.displayName = "SheetHeader"
-
-const SheetFooter = ({
- className,
- ...props
-}: React.HTMLAttributes) => (
-
-)
-SheetFooter.displayName = "SheetFooter"
-
-const SheetTitle = React.forwardRef<
- React.ElementRef,
- React.ComponentPropsWithoutRef
->(({ className, ...props }, ref) => (
-
-))
-SheetTitle.displayName = SheetPrimitive.Title.displayName
-
-const SheetDescription = React.forwardRef<
- React.ElementRef,
- React.ComponentPropsWithoutRef
->(({ className, ...props }, ref) => (
-
-))
-SheetDescription.displayName = SheetPrimitive.Description.displayName
-
-export {
- Sheet,
- SheetTrigger,
- SheetClose,
- SheetContent,
- SheetHeader,
- SheetFooter,
- SheetTitle,
- SheetDescription,
-}
-```
-
-2. Rename `position` to `side`
-
-```diff /position/ /side/
--
-+
-```
-
-
-
-### Thank you
-
-I'd like to thank everyone who has been using this project, providing feedback and contributing to it. I really appreciate it. Thank you 🙏
diff --git a/deprecated/www/content/docs/cli.mdx b/deprecated/www/content/docs/cli.mdx
deleted file mode 100644
index c28f830ca1..0000000000
--- a/deprecated/www/content/docs/cli.mdx
+++ /dev/null
@@ -1,102 +0,0 @@
----
-title: shadcn
-description: Use the shadcn CLI to add components to your project.
----
-
-## init
-
-Use the `init` command to initialize configuration and dependencies for a new project.
-
-The `init` command installs dependencies, adds the `cn` util and configures CSS variables for the project.
-
-```bash
-npx shadcn@latest init
-```
-
-### Options
-
-```txt
-Usage: shadcn init [options] [components...]
-
-initialize your project and install dependencies
-
-Arguments:
- components the components to add or a url to the component.
-
-Options:
- -y, --yes skip confirmation prompt. (default: true)
- -d, --defaults, use default configuration. (default: false)
- -f, --force force overwrite of existing configuration. (default: false)
- -c, --cwd the working directory. defaults to the current directory. (default: "/Users/shadcn/Desktop")
- -s, --silent mute output. (default: false)
- --src-dir use the src directory when creating a new project. (default: false)
- --no-src-dir do not use the src directory when creating a new project.
- --css-variables use css variables for theming. (default: true)
- --no-css-variables do not use css variables for theming.
- -h, --help display help for command
-```
-
-## add
-
-Use the `add` command to add components and dependencies to your project.
-
-```bash
-npx shadcn@latest add [component]
-```
-
-### Options
-
-```txt
-Usage: shadcn add [options] [components...]
-
-add a component to your project
-
-Arguments:
- components the components to add or a url to the component.
-
-Options:
- -y, --yes skip confirmation prompt. (default: false)
- -o, --overwrite overwrite existing files. (default: false)
- -c, --cwd the working directory. defaults to the current directory. (default: "/Users/shadcn/Desktop")
- -a, --all add all available components (default: false)
- -p, --path the path to add the component to.
- -s, --silent mute output. (default: false)
- --src-dir use the src directory when creating a new project. (default: false)
- --no-src-dir do not use the src directory when creating a new project.
- --css-variables use css variables for theming. (default: true)
- --no-css-variables do not use css variables for theming.
- -h, --help display help for command
-```
-
-## build
-
-Use the `build` command to generate the registry JSON files.
-
-```bash
-npx shadcn@latest build
-```
-
-This command reads the `registry.json` file and generates the registry JSON files in the `public/r` directory.
-
-### Options
-
-```txt
-Usage: shadcn build [options] [registry]
-
-build components for a shadcn registry
-
-Arguments:
- registry path to registry.json file (default: "./registry.json")
-
-Options:
- -o, --output destination directory for json files (default: "./public/r")
- -c, --cwd the working directory. defaults to the current directory. (default:
- "/Users/shadcn/Code/shadcn/ui/packages/shadcn")
- -h, --help display help for command
-```
-
-To customize the output directory, use the `--output` option.
-
-```bash
-npx shadcn@latest build --output ./public/registry
-```
diff --git a/deprecated/www/content/docs/components-json.mdx b/deprecated/www/content/docs/components-json.mdx
deleted file mode 100644
index 1cd3fbce23..0000000000
--- a/deprecated/www/content/docs/components-json.mdx
+++ /dev/null
@@ -1,213 +0,0 @@
----
-title: components.json
-description: Configuration for your project.
----
-
-The `components.json` file holds configuration for your project.
-
-We use it to understand how your project is set up and how to generate components customized for your project.
-
-
- Note: The `components.json` file is optional and **only required if you're
- using the CLI** to add components to your project. If you're using the copy
- and paste method, you don't need this file.
-
-
-You can create a `components.json` file in your project by running the following command:
-
-```bash
-npx shadcn@latest init
-```
-
-See the CLI section for more information.
-
-## $schema
-
-You can see the JSON Schema for `components.json` [here](https://ui.shadcn.com/schema.json).
-
-```json title="components.json"
-{
- "$schema": "https://ui.shadcn.com/schema.json"
-}
-```
-
-## style
-
-The style for your components. **This cannot be changed after initialization.**
-
-```json title="components.json"
-{
- "style": "new-york"
-}
-```
-
-The `default` style has been deprecated. Use the `new-york` style instead.
-
-## tailwind
-
-Configuration to help the CLI understand how Tailwind CSS is set up in your project.
-
-See the installation section for how to set up Tailwind CSS.
-
-### tailwind.config
-
-Path to where your `tailwind.config.js` file is located. **For Tailwind CSS v4, leave this blank.**
-
-```json title="components.json"
-{
- "tailwind": {
- "config": "tailwind.config.js" | "tailwind.config.ts"
- }
-}
-```
-
-### tailwind.css
-
-Path to the CSS file that imports Tailwind CSS into your project.
-
-```json title="components.json"
-{
- "tailwind": {
- "css": "styles/global.css"
- }
-}
-```
-
-### tailwind.baseColor
-
-This is used to generate the default color palette for your components. **This cannot be changed after initialization.**
-
-```json title="components.json"
-{
- "tailwind": {
- "baseColor": "gray" | "neutral" | "slate" | "stone" | "zinc"
- }
-}
-```
-
-### tailwind.cssVariables
-
-You can choose between using CSS variables or Tailwind CSS utility classes for theming.
-
-To use utility classes for theming set `tailwind.cssVariables` to `false`. For CSS variables, set `tailwind.cssVariables` to `true`.
-
-```json title="components.json"
-{
- "tailwind": {
- "cssVariables": `true` | `false`
- }
-}
-```
-
-For more information, see the theming docs.
-
-**This cannot be changed after initialization.** To switch between CSS variables and utility classes, you'll have to delete and re-install your components.
-
-### tailwind.prefix
-
-The prefix to use for your Tailwind CSS utility classes. Components will be added with this prefix.
-
-```json title="components.json"
-{
- "tailwind": {
- "prefix": "tw-"
- }
-}
-```
-
-## rsc
-
-Whether or not to enable support for React Server Components.
-
-The CLI automatically adds a `use client` directive to client components when set to `true`.
-
-```json title="components.json"
-{
- "rsc": `true` | `false`
-}
-```
-
-## tsx
-
-Choose between TypeScript or JavaScript components.
-
-Setting this option to `false` allows components to be added as JavaScript with the `.jsx` file extension.
-
-```json title="components.json"
-{
- "tsx": `true` | `false`
-}
-```
-
-## aliases
-
-The CLI uses these values and the `paths` config from your `tsconfig.json` or `jsconfig.json` file to place generated components in the correct location.
-
-Path aliases have to be set up in your `tsconfig.json` or `jsconfig.json` file.
-
-
- **Important:** If you're using the `src` directory, make sure it is included
- under `paths` in your `tsconfig.json` or `jsconfig.json` file.
-
-
-### aliases.utils
-
-Import alias for your utility functions.
-
-```json title="components.json"
-{
- "aliases": {
- "utils": "@/lib/utils"
- }
-}
-```
-
-### aliases.components
-
-Import alias for your components.
-
-```json title="components.json"
-{
- "aliases": {
- "components": "@/components"
- }
-}
-```
-
-### aliases.ui
-
-Import alias for `ui` components.
-
-The CLI will use the `aliases.ui` value to determine where to place your `ui` components. Use this config if you want to customize the installation directory for your `ui` components.
-
-```json title="components.json"
-{
- "aliases": {
- "ui": "@/app/ui"
- }
-}
-```
-
-### aliases.lib
-
-Import alias for `lib` functions such as `format-date` or `generate-id`.
-
-```json title="components.json"
-{
- "aliases": {
- "lib": "@/lib"
- }
-}
-```
-
-### aliases.hooks
-
-Import alias for `hooks` such as `use-media-query` or `use-toast`.
-
-```json title="components.json"
-{
- "aliases": {
- "hooks": "@/hooks"
- }
-}
-```
diff --git a/deprecated/www/content/docs/components/accordion.mdx b/deprecated/www/content/docs/components/accordion.mdx
deleted file mode 100644
index 311456e4e4..0000000000
--- a/deprecated/www/content/docs/components/accordion.mdx
+++ /dev/null
@@ -1,103 +0,0 @@
----
-title: Accordion
-description: A vertically stacked set of interactive headings that each reveal a section of content.
-component: true
-links:
- doc: https://www.radix-ui.com/docs/primitives/components/accordion
- api: https://www.radix-ui.com/docs/primitives/components/accordion#api-reference
----
-
-
-
-## Installation
-
-
-
-
- CLI
- Manual
-
-
-
-
-```bash
-npx shadcn@latest add accordion
-```
-
-
-
-
-
-
-
-Install the following dependencies:
-
-```bash
-npm install @radix-ui/react-accordion
-```
-
-Copy and paste the following code into your project.
-
-
-
-Update the import paths to match your project setup.
-
-Update `tailwind.config.js`
-
-Add the following animations to your `tailwind.config.js` file:
-
-```js title="tailwind.config.js" {5-18}
-/** @type {import('tailwindcss').Config} */
-module.exports = {
- theme: {
- extend: {
- keyframes: {
- "accordion-down": {
- from: { height: "0" },
- to: { height: "var(--radix-accordion-content-height)" },
- },
- "accordion-up": {
- from: { height: "var(--radix-accordion-content-height)" },
- to: { height: "0" },
- },
- },
- animation: {
- "accordion-down": "accordion-down 0.2s ease-out",
- "accordion-up": "accordion-up 0.2s ease-out",
- },
- },
- },
-}
-```
-
-
-
-
-
-
-
-## Usage
-
-```tsx
-import {
- Accordion,
- AccordionContent,
- AccordionItem,
- AccordionTrigger,
-} from "@/components/ui/accordion"
-```
-
-```tsx
-
-
- Is it accessible?
-
- Yes. It adheres to the WAI-ARIA design pattern.
-
-
-
-```
diff --git a/deprecated/www/content/docs/components/alert-dialog.mdx b/deprecated/www/content/docs/components/alert-dialog.mdx
deleted file mode 100644
index 187528f0b3..0000000000
--- a/deprecated/www/content/docs/components/alert-dialog.mdx
+++ /dev/null
@@ -1,88 +0,0 @@
----
-title: Alert Dialog
-description: A modal dialog that interrupts the user with important content and expects a response.
-featured: true
-component: true
-links:
- doc: https://www.radix-ui.com/docs/primitives/components/alert-dialog
- api: https://www.radix-ui.com/docs/primitives/components/alert-dialog#api-reference
----
-
-
-
-## Installation
-
-
-
-
- CLI
- Manual
-
-
-
-```bash
-npx shadcn@latest add alert-dialog
-```
-
-
-
-
-
-
-
-Install the following dependencies:
-
-```bash
-npm install @radix-ui/react-alert-dialog
-```
-
-Copy and paste the following code into your project.
-
-
-
-Update the import paths to match your project setup.
-
-
-
-
-
-
-
-## Usage
-
-```tsx
-import {
- AlertDialog,
- AlertDialogAction,
- AlertDialogCancel,
- AlertDialogContent,
- AlertDialogDescription,
- AlertDialogFooter,
- AlertDialogHeader,
- AlertDialogTitle,
- AlertDialogTrigger,
-} from "@/components/ui/alert-dialog"
-```
-
-```tsx
-
- Open
-
-
- Are you absolutely sure?
-
- This action cannot be undone. This will permanently delete your account
- and remove your data from our servers.
-
-
-
- Cancel
- Continue
-
-
-
-```
diff --git a/deprecated/www/content/docs/components/alert.mdx b/deprecated/www/content/docs/components/alert.mdx
deleted file mode 100644
index ad40fa8de1..0000000000
--- a/deprecated/www/content/docs/components/alert.mdx
+++ /dev/null
@@ -1,77 +0,0 @@
----
-title: Alert
-description: Displays a callout for user attention.
-component: true
----
-
-
-
-## Installation
-
-
-
-
- CLI
- Manual
-
-
-
-```bash
-npx shadcn@latest add alert
-```
-
-
-
-
-
-
-
-Copy and paste the following code into your project.
-
-
-
-Update the import paths to match your project setup.
-
-
-
-
-
-
-
-## Usage
-
-```tsx
-import { Alert, AlertDescription, AlertTitle } from "@/components/ui/alert"
-```
-
-```tsx
-
-
- Heads up!
-
- You can add components and dependencies to your app using the cli.
-
-
-```
-
-## Examples
-
-### Default
-
-
-
-### Destructive
-
-
diff --git a/deprecated/www/content/docs/components/aspect-ratio.mdx b/deprecated/www/content/docs/components/aspect-ratio.mdx
deleted file mode 100644
index 7698a1f070..0000000000
--- a/deprecated/www/content/docs/components/aspect-ratio.mdx
+++ /dev/null
@@ -1,68 +0,0 @@
----
-title: Aspect Ratio
-description: Displays content within a desired ratio.
-component: true
-links:
- doc: https://www.radix-ui.com/docs/primitives/components/aspect-ratio
- api: https://www.radix-ui.com/docs/primitives/components/aspect-ratio#api-reference
----
-
-
-
-## Installation
-
-
-
-
- CLI
- Manual
-
-
-
-```bash
-npx shadcn@latest add aspect-ratio
-```
-
-
-
-
-
-
-
-Install the following dependencies:
-
-```bash
-npm install @radix-ui/react-aspect-ratio
-```
-
-Copy and paste the following code into your project.
-
-
-
-Update the import paths to match your project setup.
-
-
-
-
-
-
-
-## Usage
-
-```tsx
-import Image from "next/image"
-
-import { AspectRatio } from "@/components/ui/aspect-ratio"
-```
-
-```tsx
-
-```
diff --git a/deprecated/www/content/docs/components/avatar.mdx b/deprecated/www/content/docs/components/avatar.mdx
deleted file mode 100644
index 7e801e97a2..0000000000
--- a/deprecated/www/content/docs/components/avatar.mdx
+++ /dev/null
@@ -1,65 +0,0 @@
----
-title: Avatar
-description: An image element with a fallback for representing the user.
-component: true
-links:
- doc: https://www.radix-ui.com/docs/primitives/components/avatar
- api: https://www.radix-ui.com/docs/primitives/components/avatar#api-reference
----
-
-
-
-## Installation
-
-
-
-
- CLI
- Manual
-
-
-
-```bash
-npx shadcn@latest add avatar
-```
-
-
-
-
-
-
-
-Install the following dependencies:
-
-```bash
-npm install @radix-ui/react-avatar
-```
-
-Copy and paste the following code into your project.
-
-
-
-Update the import paths to match your project setup.
-
-
-
-
-
-
-
-## Usage
-
-```tsx
-import { Avatar, AvatarFallback, AvatarImage } from "@/components/ui/avatar"
-```
-
-```tsx
-
-
- CN
-
-```
diff --git a/deprecated/www/content/docs/components/badge.mdx b/deprecated/www/content/docs/components/badge.mdx
deleted file mode 100644
index a8f7be69d6..0000000000
--- a/deprecated/www/content/docs/components/badge.mdx
+++ /dev/null
@@ -1,101 +0,0 @@
----
-title: Badge
-description: Displays a badge or a component that looks like a badge.
-component: true
----
-
-
-
-## Installation
-
-
-
-
- CLI
- Manual
-
-
-
-```bash
-npx shadcn@latest add badge
-```
-
-
-
-
-
-
-
-Copy and paste the following code into your project.
-
-
-
-Update the import paths to match your project setup.
-
-
-
-
-
-
-
-## Usage
-
-```tsx
-import { Badge } from "@/components/ui/badge"
-```
-
-```tsx
-Badge
-```
-
-### Link
-
-You can use the `badgeVariants` helper to create a link that looks like a badge.
-
-```tsx
-import { badgeVariants } from "@/components/ui/badge"
-```
-
-```tsx
- Badge
-```
-
-## Examples
-
-### Default
-
-
-
----
-
-### Secondary
-
-
-
----
-
-### Outline
-
-
-
----
-
-### Destructive
-
-
diff --git a/deprecated/www/content/docs/components/breadcrumb.mdx b/deprecated/www/content/docs/components/breadcrumb.mdx
deleted file mode 100644
index 22fa23c7f2..0000000000
--- a/deprecated/www/content/docs/components/breadcrumb.mdx
+++ /dev/null
@@ -1,212 +0,0 @@
----
-title: Breadcrumb
-description: Displays the path to the current resource using a hierarchy of links.
-component: true
----
-
-
-
-## Installation
-
-
-
-
- CLI
- Manual
-
-
-
-```bash
-npx shadcn@latest add breadcrumb
-```
-
-
-
-
-
-
-
-Copy and paste the following code into your project.
-
-
-
-Update the import paths to match your project setup.
-
-
-
-
-
-
-
-## Usage
-
-```tsx
-import {
- Breadcrumb,
- BreadcrumbItem,
- BreadcrumbLink,
- BreadcrumbList,
- BreadcrumbPage,
- BreadcrumbSeparator,
-} from "@/components/ui/breadcrumb"
-```
-
-```tsx
-
-
-
- Home
-
-
-
- Components
-
-
-
- Breadcrumb
-
-
-
-```
-
-## Examples
-
-### Custom separator
-
-Use a custom component as `children` for ` ` to create a custom separator.
-
-
-
-```tsx showLineNumbers {1,10-12}
-import { Slash } from "lucide-react"
-
-...
-
-
-
-
- Home
-
-
-
-
-
- Components
-
-
-
-```
-
----
-
-### Dropdown
-
-You can compose ` ` with a ` ` to create a dropdown in the breadcrumb.
-
-
-
-```tsx showLineNumbers {1-6,11-21}
-import {
- DropdownMenu,
- DropdownMenuContent,
- DropdownMenuItem,
- DropdownMenuTrigger,
-} from "@/components/ui/dropdown-menu"
-
-...
-
-
-
-
- Components
-
-
-
- Documentation
- Themes
- GitHub
-
-
-
-```
-
----
-
-### Collapsed
-
-We provide a ` ` component to show a collapsed state when the breadcrumb is too long.
-
-
-
-```tsx showLineNumbers {1,9}
-import { BreadcrumbEllipsis } from "@/components/ui/breadcrumb"
-
-...
-
-
-
- {/* ... */}
-
-
-
- {/* ... */}
-
-
-```
-
----
-
-### Link component
-
-To use a custom link component from your routing library, you can use the `asChild` prop on ` `.
-
-
-
-```tsx showLineNumbers {1,8-10}
-import Link from "next/link"
-
-...
-
-
-
-
-
- Home
-
-
- {/* ... */}
-
-
-```
-
----
-
-### Responsive
-
-Here's an example of a responsive breadcrumb that composes ` ` with ` `, ` `, and ` `.
-
-It displays a dropdown on desktop and a drawer on mobile.
-
-
diff --git a/deprecated/www/content/docs/components/button.mdx b/deprecated/www/content/docs/components/button.mdx
deleted file mode 100644
index 4d3b617406..0000000000
--- a/deprecated/www/content/docs/components/button.mdx
+++ /dev/null
@@ -1,150 +0,0 @@
----
-title: Button
-description: Displays a button or a component that looks like a button.
-featured: true
-component: true
----
-
-
-
-## Installation
-
-
-
-
- CLI
- Manual
-
-
-
-```bash
-npx shadcn@latest add button
-```
-
-
-
-
-
-
-
-Install the following dependencies:
-
-```bash
-npm install @radix-ui/react-slot
-```
-
-Copy and paste the following code into your project.
-
-
-
-Update the import paths to match your project setup.
-
-
-
-
-
-
-
-## Usage
-
-```tsx
-import { Button } from "@/components/ui/button"
-```
-
-```tsx
-Button
-```
-
-## Link
-
-You can use the `buttonVariants` helper to create a link that looks like a button.
-
-```tsx
-import { buttonVariants } from "@/components/ui/button"
-```
-
-```tsx
- Click here
-```
-
-Alternatively, you can set the `asChild` parameter and nest the link component.
-
-```tsx
-
- Login
-
-```
-
-## Examples
-
-### Primary
-
-
-
-### Secondary
-
-
-
-### Destructive
-
-
-
-### Outline
-
-
-
-### Ghost
-
-
-
-### Link
-
-
-
-### Icon
-
-
-
-### With Icon
-
-
-
-### Loading
-
-
-
-### As Child
-
-
-
-## Changelog
-
-### 2024-10-16 Classes for icons
-
-Added `gap-2 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0` to the button to automatically style icon inside the button.
-
-Add the following classes to the `cva` call in your `button.tsx` file.
-
-```diff showLineNumbers title="button.tsx"
-const buttonVariants = cva(
- "inline-flex ... gap-2 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0"
-)
-```
diff --git a/deprecated/www/content/docs/components/calendar.mdx b/deprecated/www/content/docs/components/calendar.mdx
deleted file mode 100644
index 49a1157ec3..0000000000
--- a/deprecated/www/content/docs/components/calendar.mdx
+++ /dev/null
@@ -1,101 +0,0 @@
----
-title: Calendar
-description: A date field component that allows users to enter and edit date.
-component: true
-links:
- doc: https://react-day-picker.js.org
----
-
-
-
-## About
-
-The `Calendar` component is built on top of [React DayPicker](https://react-day-picker.js.org).
-
-## Installation
-
-
-
-
- CLI
- Manual
-
-
-
-```bash
-npx shadcn@latest add calendar
-```
-
-
-
-
-
-
-
-Install the following dependencies:
-
-```bash
-npm install react-day-picker date-fns
-```
-
-Add the `Button` component to your project.
-
-The `Calendar` component uses the `Button` component. Make sure you have it installed in your project.
-
-Copy and paste the following code into your project.
-
-
-
-Update the import paths to match your project setup.
-
-
-
-
-
-
-
-## Usage
-
-```tsx
-import { Calendar } from "@/components/ui/calendar"
-```
-
-```tsx
-const [date, setDate] = React.useState(new Date())
-
-return (
-
-)
-```
-
-See the [React DayPicker](https://react-day-picker.js.org) documentation for more information.
-
-## Date Picker
-
-You can use the `` component to build a date picker. See the [Date Picker](/docs/components/date-picker) page for more information.
-
-## Examples
-
-### Form
-
-
-
-## Changelog
-
-### 11-03-2024 day_outside color
-
-- Changed the color of the `day_outside` class to the following to improve contrast:
-
- ```tsx showLineNumbers title="calendar.tsx"
- "day_outside:
- "day-outside text-muted-foreground aria-selected:bg-accent/50 aria-selected:text-muted-foreground",
- ```
diff --git a/deprecated/www/content/docs/components/card.mdx b/deprecated/www/content/docs/components/card.mdx
deleted file mode 100644
index fa1d7b85cd..0000000000
--- a/deprecated/www/content/docs/components/card.mdx
+++ /dev/null
@@ -1,106 +0,0 @@
----
-title: Card
-description: Displays a card with header, content, and footer.
-component: true
----
-
-
-
-## Installation
-
-
-
-
- CLI
- Manual
-
-
-
-```bash
-npx shadcn@latest add card
-```
-
-
-
-
-
-
-
-Copy and paste the following code into your project.
-
-
-
-Update the import paths to match your project setup.
-
-
-
-
-
-
-
-## Usage
-
-```tsx
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/components/ui/card"
-```
-
-```tsx
-
-
- Card Title
- Card Description
-
-
- Card Content
-
-
- Card Footer
-
-
-```
-
-## Examples
-
-
-
-## Changelog
-
-### 11-03-2024 a11y for title and description
-
-- Changed the `CardTitle` and `CardDescription` components to use `div` instead of `h3` and `p` to improve accessibility.
-
-```tsx showLineNumbers title="card.tsx"
-const CardTitle = React.forwardRef<
- HTMLDivElement,
- React.HTMLAttributes
->(({ className, ...props }, ref) => (
-
-))
-CardTitle.displayName = "CardTitle"
-
-const CardDescription = React.forwardRef<
- HTMLDivElement,
- React.HTMLAttributes
->(({ className, ...props }, ref) => (
-
-))
-CardDescription.displayName = "CardDescription"
-```
diff --git a/deprecated/www/content/docs/components/carousel.mdx b/deprecated/www/content/docs/components/carousel.mdx
deleted file mode 100644
index f2ca47d253..0000000000
--- a/deprecated/www/content/docs/components/carousel.mdx
+++ /dev/null
@@ -1,301 +0,0 @@
----
-title: Carousel
-description: A carousel with motion and swipe built using Embla.
-component: true
-links:
- doc: https://www.embla-carousel.com/get-started/react
- api: https://www.embla-carousel.com/api
----
-
-
-
-## About
-
-The carousel component is built using the [Embla Carousel](https://www.embla-carousel.com/) library.
-
-## Installation
-
-
-
-
- CLI
- Manual
-
-
-
-
-```bash
-npx shadcn@latest add carousel
-```
-
-
-
-
-
-
-
-Install the following dependencies:
-
-```bash
-npm install embla-carousel-react
-```
-
-Copy and paste the following code into your project.
-
-
-
-Update the import paths to match your project setup.
-
-
-
-
-
-
-
-## Usage
-
-```tsx
-import {
- Carousel,
- CarouselContent,
- CarouselItem,
- CarouselNext,
- CarouselPrevious,
-} from "@/components/ui/carousel"
-```
-
-```tsx
-
-
- ...
- ...
- ...
-
-
-
-
-```
-
-## Examples
-
-### Sizes
-
-To set the size of the items, you can use the `basis` utility class on the ` `.
-
-
-
-```tsx title="Example" showLineNumbers {4-6}
-// 33% of the carousel width.
-
-
- ...
- ...
- ...
-
-
-```
-
-```tsx title="Responsive" showLineNumbers {4-6}
-// 50% on small screens and 33% on larger screens.
-
-
- ...
- ...
- ...
-
-
-```
-
-### Spacing
-
-To set the spacing between the items, we use a `pl-[VALUE]` utility on the ` ` and a negative `-ml-[VALUE]` on the ` `.
-
-
- **Why:** I tried to use the `gap` property or a `grid` layout on the `
- ` but it required a lot of math and mental effort to get the
- spacing right. I found `pl-[VALUE]` and `-ml-[VALUE]` utilities much easier to
- use.
-
-You can always adjust this in your own project if you need to.
-
-
-
-
-
-```tsx title="Example" showLineNumbers /-ml-4/ /pl-4/
-
-
- ...
- ...
- ...
-
-
-```
-
-```tsx title="Responsive" showLineNumbers /-ml-2/ /pl-2/ /md:-ml-4/ /md:pl-4/
-
-
- ...
- ...
- ...
-
-
-```
-
-### Orientation
-
-Use the `orientation` prop to set the orientation of the carousel.
-
-
-
-```tsx showLineNumbers /vertical | horizontal/
-
-
- ...
- ...
- ...
-
-
-```
-
-## Options
-
-You can pass options to the carousel using the `opts` prop. See the [Embla Carousel docs](https://www.embla-carousel.com/api/options/) for more information.
-
-```tsx showLineNumbers {2-5}
-
-
- ...
- ...
- ...
-
-
-```
-
-## API
-
-Use a state and the `setApi` props to get an instance of the carousel API.
-
-
-
-```tsx showLineNumbers {1,4,22}
-import { type CarouselApi } from "@/components/ui/carousel"
-
-export function Example() {
- const [api, setApi] = React.useState()
- const [current, setCurrent] = React.useState(0)
- const [count, setCount] = React.useState(0)
-
- React.useEffect(() => {
- if (!api) {
- return
- }
-
- setCount(api.scrollSnapList().length)
- setCurrent(api.selectedScrollSnap() + 1)
-
- api.on("select", () => {
- setCurrent(api.selectedScrollSnap() + 1)
- })
- }, [api])
-
- return (
-
-
- ...
- ...
- ...
-
-
- )
-}
-```
-
-## Events
-
-You can listen to events using the api instance from `setApi`.
-
-```tsx showLineNumbers {1,4-14,16}
-import { type CarouselApi } from "@/components/ui/carousel"
-
-export function Example() {
- const [api, setApi] = React.useState()
-
- React.useEffect(() => {
- if (!api) {
- return
- }
-
- api.on("select", () => {
- // Do something on select.
- })
- }, [api])
-
- return (
-
-
- ...
- ...
- ...
-
-
- )
-}
-```
-
-See the [Embla Carousel docs](https://www.embla-carousel.com/api/events/) for more information on using events.
-
-## Plugins
-
-You can use the `plugins` prop to add plugins to the carousel.
-
-```ts showLineNumbers {1,6-10}
-import Autoplay from "embla-carousel-autoplay"
-
-export function Example() {
- return (
-
- // ...
-
- )
-}
-```
-
-
-
-See the [Embla Carousel docs](https://www.embla-carousel.com/api/plugins/) for more information on using plugins.
diff --git a/deprecated/www/content/docs/components/chart.mdx b/deprecated/www/content/docs/components/chart.mdx
deleted file mode 100644
index 2a228e7467..0000000000
--- a/deprecated/www/content/docs/components/chart.mdx
+++ /dev/null
@@ -1,621 +0,0 @@
----
-title: Chart
-description: Beautiful charts. Built using Recharts. Copy and paste into your apps.
-component: true
----
-
-
-
-**Note:** If you are using charts with **React 19** or the **Next.js 15**, see the note [here](/docs/react-19#recharts).
-
-
-
-
-
-Introducing **Charts**. A collection of chart components that you can copy and paste into your apps.
-
-Charts are designed to look great out of the box. They work well with the other components and are fully customizable to fit your project.
-
-[Browse the Charts Library](/charts).
-
-## Component
-
-We use [Recharts](https://recharts.org/) under the hood.
-
-We designed the `chart` component with composition in mind. **You build your charts using Recharts components and only bring in custom components, such as `ChartTooltip`, when and where you need it**.
-
-```tsx showLineNumbers /ChartContainer/ /ChartTooltipContent/
-import { Bar, BarChart } from "recharts"
-
-import { ChartContainer, ChartTooltipContent } from "@/components/ui/charts"
-
-export function MyChart() {
- return (
-
-
-
- } />
-
-
- )
-}
-```
-
-We do not wrap Recharts. This means you're not locked into an abstraction. When a new Recharts version is released, you can follow the official upgrade path to upgrade your charts.
-
-**The components are yours**.
-
-## Installation
-
-
-
-**Note:** If you are using charts with **React 19** or the **Next.js 15**, see the note [here](/docs/react-19#recharts).
-
-
-
-
-
-
- CLI
- Manual
-
-
-
-
-
-Run the following command to install `chart.tsx`
-
-```bash
-npx shadcn@latest add chart
-```
-
-Add the following colors to your CSS file
-
-```css
-@layer base {
- :root {
- --chart-1: 12 76% 61%;
- --chart-2: 173 58% 39%;
- --chart-3: 197 37% 24%;
- --chart-4: 43 74% 66%;
- --chart-5: 27 87% 67%;
- }
-
- .dark {
- --chart-1: 220 70% 50%;
- --chart-2: 160 60% 45%;
- --chart-3: 30 80% 55%;
- --chart-4: 280 65% 60%;
- --chart-5: 340 75% 55%;
- }
-}
-```
-
-
-
-
-
-
-
-
-
-Install the following dependencies:
-
-```bash
-npm install recharts
-```
-
-Copy and paste the following code into `components/ui/chart.tsx`.
-
-
-
-Add the following colors to your CSS file
-
-```css
-@layer base {
- :root {
- --chart-1: 12 76% 61%;
- --chart-2: 173 58% 39%;
- --chart-3: 197 37% 24%;
- --chart-4: 43 74% 66%;
- --chart-5: 27 87% 67%;
- }
-
- .dark {
- --chart-1: 220 70% 50%;
- --chart-2: 160 60% 45%;
- --chart-3: 30 80% 55%;
- --chart-4: 280 65% 60%;
- --chart-5: 340 75% 55%;
- }
-}
-```
-
-
-
-
-
-
-
-## Your First Chart
-
-Let's build your first chart. We'll build a bar chart, add a grid, axis, tooltip and legend.
-
-
-
-Start by defining your data
-
-The following data represents the number of desktop and mobile users for each month.
-
-
-
-**Note:** Your data can be in any shape. You are not limited to the shape of the data below. Use the `dataKey` prop to map your data to the chart.
-
-
-
-```tsx
-const chartData = [
- { month: "January", desktop: 186, mobile: 80 },
- { month: "February", desktop: 305, mobile: 200 },
- { month: "March", desktop: 237, mobile: 120 },
- { month: "April", desktop: 73, mobile: 190 },
- { month: "May", desktop: 209, mobile: 130 },
- { month: "June", desktop: 214, mobile: 140 },
-]
-```
-
-Define your chart config
-
-The chart config holds configuration for the chart. This is where you place human-readable strings, such as labels, icons and color tokens for theming.
-
-```tsx
-import { type ChartConfig } from "@/components/ui/chart"
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "#2563eb",
- },
- mobile: {
- label: "Mobile",
- color: "#60a5fa",
- },
-} satisfies ChartConfig
-```
-
-Build your chart
-
-You can now build your chart using Recharts components.
-
-
-
-**Important:** Remember to set a `min-h-[VALUE]` on the `ChartContainer` component. This is required for the chart be responsive.
-
-
-
-
-
-
-
-
-
-### Add a Grid
-
-Let's add a grid to the chart.
-
-
-
-Import the `CartesianGrid` component.
-
-```tsx /CartesianGrid/
-import { Bar, BarChart, CartesianGrid } from "recharts"
-```
-
-Add the `CartesianGrid` component to your chart.
-
-```tsx showLineNumbers {3}
-
-
-
-
-
-
-
-```
-
-
-
-
-
-### Add an Axis
-
-To add an x-axis to the chart, we'll use the `XAxis` component.
-
-
-
-Import the `XAxis` component.
-
-```tsx /XAxis/
-import { Bar, BarChart, CartesianGrid, XAxis } from "recharts"
-```
-
-Add the `XAxis` component to your chart.
-
-```tsx showLineNumbers {4-10}
-
-
-
- value.slice(0, 3)}
- />
-
-
-
-
-```
-
-
-
-
-
-### Add Tooltip
-
-So far we've only used components from Recharts. They look great out of the box thanks to some customization in the `chart` component.
-
-To add a tooltip, we'll use the custom `ChartTooltip` and `ChartTooltipContent` components from `chart`.
-
-
-
-Import the `ChartTooltip` and `ChartTooltipContent` components.
-
-```tsx
-import { ChartTooltip, ChartTooltipContent } from "@/components/ui/chart"
-```
-
-Add the components to your chart.
-
-```tsx showLineNumbers {11}
-
-
-
- value.slice(0, 3)}
- />
- } />
-
-
-
-
-```
-
-
-
-Hover to see the tooltips. Easy, right? Two components, and we've got a beautiful tooltip.
-
-
-
-### Add Legend
-
-We'll do the same for the legend. We'll use the `ChartLegend` and `ChartLegendContent` components from `chart`.
-
-
-
-Import the `ChartLegend` and `ChartLegendContent` components.
-
-```tsx
-import { ChartLegend, ChartLegendContent } from "@/components/ui/chart"
-```
-
-Add the components to your chart.
-
-```tsx showLineNumbers {12}
-
-
-
- value.slice(0, 3)}
- />
- } />
- } />
-
-
-
-
-```
-
-
-
-
-
-Done. You've built your first chart! What's next?
-
-- [Themes and Colors](/docs/components/chart#theming)
-- [Tooltip](/docs/components/chart#tooltip)
-- [Legend](/docs/components/chart#legend)
-
-## Chart Config
-
-The chart config is where you define the labels, icons and colors for a chart.
-
-It is intentionally decoupled from chart data.
-
-This allows you to share config and color tokens between charts. It can also works independently for cases where your data or color tokens live remotely or in a different format.
-
-```tsx /ChartConfig/
-import { Monitor } from "lucide-react"
-
-import { type ChartConfig } from "@/components/ui/chart"
-
-const chartConfig = {
- desktop: {
- label: "Desktop",
- icon: Monitor,
- // A color like 'hsl(220, 98%, 61%)' or 'var(--color-name)'
- color: "#2563eb",
- // OR a theme object with 'light' and 'dark' keys
- theme: {
- light: "#2563eb",
- dark: "#dc2626",
- },
- },
-} satisfies ChartConfig
-```
-
-## Theming
-
-Charts has built-in support for theming. You can use css variables (recommended) or color values in any color format, such as hex, hsl or oklch.
-
-### CSS Variables
-
-
-
-Define your colors in your css file
-
-```css {6-7,14-15} title="globals.css"
-@layer base {
- :root {
- --background: 0 0% 100%;
- --foreground: 240 10% 3.9%;
- // ...
- --chart-1: 12 76% 61%;
- --chart-2: 173 58% 39%;
- }
-
- .dark: {
- --background: 240 10% 3.9%;
- --foreground: 0 0% 100%;
- // ...
- --chart-1: 220 70% 50%;
- --chart-2: 160 60% 45%;
- }
-}
-```
-
-Add the color to your `chartConfig`
-
-```tsx {4,8}
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "hsl(var(--chart-1))",
- },
- mobile: {
- label: "Mobile",
- color: "hsl(var(--chart-2))",
- },
-} satisfies ChartConfig
-```
-
-
-
-We're wrapping the value in `hsl()` here because we define the colors without color space function.
-
-This is not required. You can use full color values, such as hex, hsl or oklch.
-
-```css
---chart-1: oklch(70% 0.227 154.59);
-```
-
-```tsx
-color: "var(--chart-1)",
-```
-
-
-
-
-
-### hex, hsl or oklch
-
-You can also define your colors directly in the chart config. Use the color format you prefer.
-
-```tsx
-const chartConfig = {
- desktop: {
- label: "Desktop",
- color: "#2563eb",
- },
-} satisfies ChartConfig
-```
-
-### Using Colors
-
-To use the theme colors in your chart, reference the colors using the format `var(--color-KEY)`.
-
-#### Components
-
-```tsx
-
-```
-
-#### Chart Data
-
-```tsx
-const chartData = [
- { browser: "chrome", visitors: 275, fill: "var(--color-chrome)" },
- { browser: "safari", visitors: 200, fill: "var(--color-safari)" },
-]
-```
-
-#### Tailwind
-
-```tsx
-
-```
-
-## Tooltip
-
-A chart tooltip contains a label, name, indicator and value. You can use a combination of these to customize your tooltip.
-
-
-
-You can turn on/off any of these using the `hideLabel`, `hideIndicator` props and customize the indicator style using the `indicator` prop.
-
-Use `labelKey` and `nameKey` to use a custom key for the tooltip label and name.
-
-Chart comes with the `` and `` components. You can use these two components to add custom tooltips to your chart.
-
-```tsx
-import { ChartTooltip, ChartTooltipContent } from "@/components/ui/chart"
-```
-
-```tsx
- } />
-```
-
-### Props
-
-Use the following props to customize the tooltip.
-
-| Prop | Type | Description |
-| :-------------- | :----------------------- | :------------------------------------------- |
-| `labelKey` | string | The config or data key to use for the label. |
-| `nameKey` | string | The config or data key to use for the name. |
-| `indicator` | `dot` `line` or `dashed` | The indicator style for the tooltip. |
-| `hideLabel` | boolean | Whether to hide the label. |
-| `hideIndicator` | boolean | Whether to hide the indicator. |
-
-### Colors
-
-Colors are automatically referenced from the chart config.
-
-### Custom
-
-To use a custom key for tooltip label and names, use the `labelKey` and `nameKey` props.
-
-```tsx /browser/
-const chartData = [
- { browser: "chrome", visitors: 187, fill: "var(--color-chrome)" },
- { browser: "safari", visitors: 200, fill: "var(--color-safari)" },
-]
-
-const chartConfig = {
- visitors: {
- label: "Total Visitors",
- },
- chrome: {
- label: "Chrome",
- color: "hsl(var(--chart-1))",
- },
- safari: {
- label: "Safari",
- color: "hsl(var(--chart-2))",
- },
-} satisfies ChartConfig
-```
-
-```tsx
- }
-/>
-```
-
-This will use `Total Visitors` for label and `Chrome` and `Safari` for the tooltip names.
-
-## Legend
-
-You can use the custom `` and `` components to add a legend to your chart.
-
-```tsx
-import { ChartLegend, ChartLegendContent } from "@/components/ui/chart"
-```
-
-```tsx
- } />
-```
-
-### Colors
-
-Colors are automatically referenced from the chart config.
-
-### Custom
-
-To use a custom key for legend names, use the `nameKey` prop.
-
-```tsx /browser/
-const chartData = [
- { browser: "chrome", visitors: 187, fill: "var(--color-chrome)" },
- { browser: "safari", visitors: 200, fill: "var(--color-safari)" },
-]
-
-const chartConfig = {
- chrome: {
- label: "Chrome",
- color: "hsl(var(--chart-1))",
- },
- safari: {
- label: "Safari",
- color: "hsl(var(--chart-2))",
- },
-} satisfies ChartConfig
-```
-
-```tsx
- } />
-```
-
-This will use `Chrome` and `Safari` for the legend names.
-
-## Accessibility
-
-You can turn on the `accessibilityLayer` prop to add an accessible layer to your chart.
-
-This prop adds keyboard access and screen reader support to your charts.
-
-```tsx
-
-```
diff --git a/deprecated/www/content/docs/components/checkbox.mdx b/deprecated/www/content/docs/components/checkbox.mdx
deleted file mode 100644
index 77c3882fbc..0000000000
--- a/deprecated/www/content/docs/components/checkbox.mdx
+++ /dev/null
@@ -1,77 +0,0 @@
----
-title: Checkbox
-description: A control that allows the user to toggle between checked and not checked.
-component: true
-links:
- doc: https://www.radix-ui.com/docs/primitives/components/checkbox
- api: https://www.radix-ui.com/docs/primitives/components/checkbox#api-reference
----
-
-
-
-## Installation
-
-
-
-
- CLI
- Manual
-
-
-
-```bash
-npx shadcn@latest add checkbox
-```
-
-
-
-
-
-
-
-Install the following dependencies:
-
-```bash
-npm install @radix-ui/react-checkbox
-```
-
-Copy and paste the following code into your project.
-
-
-
-Update the import paths to match your project setup.
-
-
-
-
-
-
-
-## Usage
-
-```tsx
-import { Checkbox } from "@/components/ui/checkbox"
-```
-
-```tsx
-
-```
-
-## Examples
-
-### With text
-
-
-
-### Disabled
-
-
-
-### Form
-
-
-
-
diff --git a/deprecated/www/content/docs/components/collapsible.mdx b/deprecated/www/content/docs/components/collapsible.mdx
deleted file mode 100644
index 5e43081661..0000000000
--- a/deprecated/www/content/docs/components/collapsible.mdx
+++ /dev/null
@@ -1,72 +0,0 @@
----
-title: Collapsible
-description: An interactive component which expands/collapses a panel.
-component: true
-featured: true
-links:
- doc: https://www.radix-ui.com/docs/primitives/components/collapsible
- api: https://www.radix-ui.com/docs/primitives/components/collapsible#api-reference
----
-
-
-
-## Installation
-
-
-
-
- CLI
- Manual
-
-
-
-```bash
-npx shadcn@latest add collapsible
-```
-
-
-
-
-
-
-
-Install the following dependencies:
-
-```bash
-npm install @radix-ui/react-collapsible
-```
-
-Copy and paste the following code into your project.
-
-
-
-Update the import paths to match your project setup.
-
-
-
-
-
-
-
-## Usage
-
-```tsx
-import {
- Collapsible,
- CollapsibleContent,
- CollapsibleTrigger,
-} from "@/components/ui/collapsible"
-```
-
-```tsx
-
- Can I use this in my project?
-
- Yes. Free to use for personal and commercial projects. No attribution
- required.
-
-
-```
diff --git a/deprecated/www/content/docs/components/combobox.mdx b/deprecated/www/content/docs/components/combobox.mdx
deleted file mode 100644
index 167ff77f3a..0000000000
--- a/deprecated/www/content/docs/components/combobox.mdx
+++ /dev/null
@@ -1,145 +0,0 @@
----
-title: Combobox
-description: Autocomplete input and command palette with a list of suggestions.
-component: true
----
-
-
-
-## Installation
-
-The Combobox is built using a composition of the ` ` and the ` ` components.
-
-See installation instructions for the [Popover](/docs/components/popover#installation) and the [Command](/docs/components/command#installation) components.
-
-## Usage
-
-```tsx
-"use client"
-
-import * as React from "react"
-import { Check, ChevronsUpDown } from "lucide-react"
-
-import { cn } from "@/lib/utils"
-import { Button } from "@/components/ui/button"
-import {
- Command,
- CommandEmpty,
- CommandGroup,
- CommandInput,
- CommandItem,
- CommandList,
-} from "@/components/ui/command"
-import {
- Popover,
- PopoverContent,
- PopoverTrigger,
-} from "@/components/ui/popover"
-
-const frameworks = [
- {
- value: "next.js",
- label: "Next.js",
- },
- {
- value: "sveltekit",
- label: "SvelteKit",
- },
- {
- value: "nuxt.js",
- label: "Nuxt.js",
- },
- {
- value: "remix",
- label: "Remix",
- },
- {
- value: "astro",
- label: "Astro",
- },
-]
-
-export function ComboboxDemo() {
- const [open, setOpen] = React.useState(false)
- const [value, setValue] = React.useState("")
-
- return (
-
-
-
- {value
- ? frameworks.find((framework) => framework.value === value)?.label
- : "Select framework..."}
-
-
-
-
-
-
-
- No framework found.
-
- {frameworks.map((framework) => (
- {
- setValue(currentValue === value ? "" : currentValue)
- setOpen(false)
- }}
- >
-
- {framework.label}
-
- ))}
-
-
-
-
-
- )
-}
-```
-
-## Examples
-
-### Combobox
-
-
-
-### Popover
-
-
-
-### Dropdown menu
-
-
-
-### Responsive
-
-You can create a responsive combobox by using the ` ` on desktop and the ` ` components on mobile.
-
-
-
-### Form
-
-
diff --git a/deprecated/www/content/docs/components/command.mdx b/deprecated/www/content/docs/components/command.mdx
deleted file mode 100644
index ec38d6005d..0000000000
--- a/deprecated/www/content/docs/components/command.mdx
+++ /dev/null
@@ -1,162 +0,0 @@
----
-title: Command
-description: Fast, composable, unstyled command menu for React.
-component: true
-links:
- doc: https://cmdk.paco.me
----
-
-
-
-## About
-
-The ` ` component uses the [`cmdk`](https://cmdk.paco.me) component by [pacocoursey](https://twitter.com/pacocoursey).
-
-## Installation
-
-
-
-
- CLI
- Manual
-
-
-
-```bash
-npx shadcn@latest add command
-```
-
-
-
-
-
-
-
-Install the following dependencies:
-
-```bash
-npm install cmdk
-```
-
-Copy and paste the following code into your project.
-
-
-
-Update the import paths to match your project setup.
-
-
-
-
-
-
-
-## Usage
-
-```tsx
-import {
- Command,
- CommandDialog,
- CommandEmpty,
- CommandGroup,
- CommandInput,
- CommandItem,
- CommandList,
- CommandSeparator,
- CommandShortcut,
-} from "@/components/ui/command"
-```
-
-```tsx
-
-
-
- No results found.
-
- Calendar
- Search Emoji
- Calculator
-
-
-
- Profile
- Billing
- Settings
-
-
-
-```
-
-## Examples
-
-### Dialog
-
-
-
-To show the command menu in a dialog, use the ` ` component.
-
-```tsx
-export function CommandMenu() {
- const [open, setOpen] = React.useState(false)
-
- React.useEffect(() => {
- const down = (e: KeyboardEvent) => {
- if (e.key === "k" && (e.metaKey || e.ctrlKey)) {
- e.preventDefault()
- setOpen((open) => !open)
- }
- }
- document.addEventListener("keydown", down)
- return () => document.removeEventListener("keydown", down)
- }, [])
-
- return (
-
-
-
- No results found.
-
- Calendar
- Search Emoji
- Calculator
-
-
-
- )
-}
-```
-
-### Combobox
-
-You can use the ` ` component as a combobox. See the [Combobox](/docs/components/combobox) page for more information.
-
-## Changelog
-
-### 2024-10-25 Classes for icons
-
-Added `gap-2 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0` to the ` ` to automatically style icon inside.
-
-Add the following classes to the `cva` call in your `command.tsx` file.
-
-```tsx showLineNumbers title="command.tsx"
-const CommandItem = React.forwardRef<
- React.ElementRef,
- React.ComponentPropsWithoutRef
->(({ className, ...props }, ref) => (
-
-))
-```
diff --git a/deprecated/www/content/docs/components/context-menu.mdx b/deprecated/www/content/docs/components/context-menu.mdx
deleted file mode 100644
index ed720a383b..0000000000
--- a/deprecated/www/content/docs/components/context-menu.mdx
+++ /dev/null
@@ -1,74 +0,0 @@
----
-title: Context Menu
-description: Displays a menu to the user — such as a set of actions or functions — triggered by a button.
-component: true
-links:
- doc: https://www.radix-ui.com/docs/primitives/components/context-menu
- api: https://www.radix-ui.com/docs/primitives/components/context-menu#api-reference
----
-
-
-
-## Installation
-
-
-
-
- CLI
- Manual
-
-
-
-```bash
-npx shadcn@latest add context-menu
-```
-
-
-
-
-
-
-
-Install the following dependencies:
-
-```bash
-npm install @radix-ui/react-context-menu
-```
-
-Copy and paste the following code into your project.
-
-
-
-Update the import paths to match your project setup.
-
-
-
-
-
-
-
-## Usage
-
-```tsx
-import {
- ContextMenu,
- ContextMenuContent,
- ContextMenuItem,
- ContextMenuTrigger,
-} from "@/components/ui/context-menu"
-```
-
-```tsx
-
- Right click
-
- Profile
- Billing
- Team
- Subscription
-
-
-```
diff --git a/deprecated/www/content/docs/components/data-table.mdx b/deprecated/www/content/docs/components/data-table.mdx
deleted file mode 100644
index 965f5feceb..0000000000
--- a/deprecated/www/content/docs/components/data-table.mdx
+++ /dev/null
@@ -1,870 +0,0 @@
----
-title: Data Table
-description: Powerful table and datagrids built using TanStack Table.
-component: true
-links:
- doc: https://tanstack.com/table/v8/docs/introduction
----
-
-
-
-## Introduction
-
-Every data table or datagrid I've created has been unique. They all behave differently, have specific sorting and filtering requirements, and work with different data sources.
-
-It doesn't make sense to combine all of these variations into a single component. If we do that, we'll lose the flexibility that [headless UI](https://tanstack.com/table/v8/docs/introduction#what-is-headless-ui) provides.
-
-So instead of a data-table component, I thought it would be more helpful to provide a guide on how to build your own.
-
-We'll start with the basic `` component and build a complex data table from scratch.
-
-
-
-**Tip:** If you find yourself using the same table in multiple places in your app, you can always extract it into a reusable component.
-
-
-
-## Table of Contents
-
-This guide will show you how to use [TanStack Table](https://tanstack.com/table) and the `` component to build your own custom data table. We'll cover the following topics:
-
-- [Basic Table](#basic-table)
-- [Row Actions](#row-actions)
-- [Pagination](#pagination)
-- [Sorting](#sorting)
-- [Filtering](#filtering)
-- [Visibility](#visibility)
-- [Row Selection](#row-selection)
-- [Reusable Components](#reusable-components)
-
-## Installation
-
-1. Add the `` component to your project:
-
-```bash
-npx shadcn@latest add table
-```
-
-2. Add `tanstack/react-table` dependency:
-
-```bash
-npm install @tanstack/react-table
-```
-
-## Prerequisites
-
-We are going to build a table to show recent payments. Here's what our data looks like:
-
-```tsx showLineNumbers
-type Payment = {
- id: string
- amount: number
- status: "pending" | "processing" | "success" | "failed"
- email: string
-}
-
-export const payments: Payment[] = [
- {
- id: "728ed52f",
- amount: 100,
- status: "pending",
- email: "m@example.com",
- },
- {
- id: "489e1d42",
- amount: 125,
- status: "processing",
- email: "example@gmail.com",
- },
- // ...
-]
-```
-
-## Project Structure
-
-Start by creating the following file structure:
-
-```txt
-app
-└── payments
- ├── columns.tsx
- ├── data-table.tsx
- └── page.tsx
-```
-
-I'm using a Next.js example here but this works for any other React framework.
-
-- `columns.tsx` (client component) will contain our column definitions.
-- `data-table.tsx` (client component) will contain our ` ` component.
-- `page.tsx` (server component) is where we'll fetch data and render our table.
-
-## Basic Table
-
-Let's start by building a basic table.
-
-
-
-### Column Definitions
-
-First, we'll define our columns.
-
-```tsx showLineNumbers title="app/payments/columns.tsx" {3,14-27}
-"use client"
-
-import { ColumnDef } from "@tanstack/react-table"
-
-// This type is used to define the shape of our data.
-// You can use a Zod schema here if you want.
-export type Payment = {
- id: string
- amount: number
- status: "pending" | "processing" | "success" | "failed"
- email: string
-}
-
-export const columns: ColumnDef[] = [
- {
- accessorKey: "status",
- header: "Status",
- },
- {
- accessorKey: "email",
- header: "Email",
- },
- {
- accessorKey: "amount",
- header: "Amount",
- },
-]
-```
-
-
-
-**Note:** Columns are where you define the core of what your table
-will look like. They define the data that will be displayed, how it will be
-formatted, sorted and filtered.
-
-
-
-### ` ` component
-
-Next, we'll create a ` ` component to render our table.
-
-```tsx showLineNumbers title="app/payments/data-table.tsx"
-"use client"
-
-import {
- ColumnDef,
- flexRender,
- getCoreRowModel,
- useReactTable,
-} from "@tanstack/react-table"
-
-import {
- Table,
- TableBody,
- TableCell,
- TableHead,
- TableHeader,
- TableRow,
-} from "@/components/ui/table"
-
-interface DataTableProps {
- columns: ColumnDef[]
- data: TData[]
-}
-
-export function DataTable({
- columns,
- data,
-}: DataTableProps) {
- const table = useReactTable({
- data,
- columns,
- getCoreRowModel: getCoreRowModel(),
- })
-
- return (
-
-
-
- {table.getHeaderGroups().map((headerGroup) => (
-
- {headerGroup.headers.map((header) => {
- return (
-
- {header.isPlaceholder
- ? null
- : flexRender(
- header.column.columnDef.header,
- header.getContext()
- )}
-
- )
- })}
-
- ))}
-
-
- {table.getRowModel().rows?.length ? (
- table.getRowModel().rows.map((row) => (
-
- {row.getVisibleCells().map((cell) => (
-
- {flexRender(cell.column.columnDef.cell, cell.getContext())}
-
- ))}
-
- ))
- ) : (
-
-
- No results.
-
-
- )}
-
-
-
- )
-}
-```
-
-
-
-**Tip**: If you find yourself using ` ` in multiple places, this is the component you could make reusable by extracting it to `components/ui/data-table.tsx`.
-
-` `
-
-
-
-### Render the table
-
-Finally, we'll render our table in our page component.
-
-```tsx showLineNumbers title="app/payments/page.tsx" {22}
-import { Payment, columns } from "./columns"
-import { DataTable } from "./data-table"
-
-async function getData(): Promise {
- // Fetch data from your API here.
- return [
- {
- id: "728ed52f",
- amount: 100,
- status: "pending",
- email: "m@example.com",
- },
- // ...
- ]
-}
-
-export default async function DemoPage() {
- const data = await getData()
-
- return (
-
-
-
- )
-}
-```
-
-
-
-## Cell Formatting
-
-Let's format the amount cell to display the dollar amount. We'll also align the cell to the right.
-
-
-
-### Update columns definition
-
-Update the `header` and `cell` definitions for amount as follows:
-
-```tsx showLineNumbers title="app/payments/columns.tsx" {4-15}
-export const columns: ColumnDef[] = [
- {
- accessorKey: "amount",
- header: () => Amount
,
- cell: ({ row }) => {
- const amount = parseFloat(row.getValue("amount"))
- const formatted = new Intl.NumberFormat("en-US", {
- style: "currency",
- currency: "USD",
- }).format(amount)
-
- return {formatted}
- },
- },
-]
-```
-
-You can use the same approach to format other cells and headers.
-
-
-
-## Row Actions
-
-Let's add row actions to our table. We'll use a ` ` component for this.
-
-
-
-### Update columns definition
-
-Update our columns definition to add a new `actions` column. The `actions` cell returns a ` ` component.
-
-```tsx showLineNumbers title="app/payments/columns.tsx" {4,6-14,18-45}
-"use client"
-
-import { ColumnDef } from "@tanstack/react-table"
-import { MoreHorizontal } from "lucide-react"
-
-import { Button } from "@/components/ui/button"
-import {
- DropdownMenu,
- DropdownMenuContent,
- DropdownMenuItem,
- DropdownMenuLabel,
- DropdownMenuSeparator,
- DropdownMenuTrigger,
-} from "@/components/ui/dropdown-menu"
-
-export const columns: ColumnDef[] = [
- // ...
- {
- id: "actions",
- cell: ({ row }) => {
- const payment = row.original
-
- return (
-
-
-
- Open menu
-
-
-
-
- Actions
- navigator.clipboard.writeText(payment.id)}
- >
- Copy payment ID
-
-
- View customer
- View payment details
-
-
- )
- },
- },
- // ...
-]
-```
-
-You can access the row data using `row.original` in the `cell` function. Use this to handle actions for your row eg. use the `id` to make a DELETE call to your API.
-
-
-
-## Pagination
-
-Next, we'll add pagination to our table.
-
-
-
-### Update ``
-
-```tsx showLineNumbers title="app/payments/data-table.tsx" {5,17}
-import {
- ColumnDef,
- flexRender,
- getCoreRowModel,
- getPaginationRowModel,
- useReactTable,
-} from "@tanstack/react-table"
-
-export function DataTable({
- columns,
- data,
-}: DataTableProps) {
- const table = useReactTable({
- data,
- columns,
- getCoreRowModel: getCoreRowModel(),
- getPaginationRowModel: getPaginationRowModel(),
- })
-
- // ...
-}
-```
-
-This will automatically paginate your rows into pages of 10. See the [pagination docs](https://tanstack.com/table/v8/docs/api/features/pagination) for more information on customizing page size and implementing manual pagination.
-
-### Add pagination controls
-
-We can add pagination controls to our table using the ` ` component and the `table.previousPage()`, `table.nextPage()` API methods.
-
-```tsx showLineNumbers title="app/payments/data-table.tsx" {1,15,21-39}
-import { Button } from "@/components/ui/button"
-
-export function DataTable({
- columns,
- data,
-}: DataTableProps) {
- const table = useReactTable({
- data,
- columns,
- getCoreRowModel: getCoreRowModel(),
- getPaginationRowModel: getPaginationRowModel(),
- })
-
- return (
-
-
-
- table.previousPage()}
- disabled={!table.getCanPreviousPage()}
- >
- Previous
-
- table.nextPage()}
- disabled={!table.getCanNextPage()}
- >
- Next
-
-
-
- )
-}
-```
-
-See [Reusable Components](#reusable-components) section for a more advanced pagination component.
-
-
-
-## Sorting
-
-Let's make the email column sortable.
-
-
-
-### Update ``
-
-```tsx showLineNumbers title="app/payments/data-table.tsx" showLineNumbers {3,6,10,18,25-28}
-"use client"
-
-import * as React from "react"
-import {
- ColumnDef,
- SortingState,
- flexRender,
- getCoreRowModel,
- getPaginationRowModel,
- getSortedRowModel,
- useReactTable,
-} from "@tanstack/react-table"
-
-export function DataTable({
- columns,
- data,
-}: DataTableProps) {
- const [sorting, setSorting] = React.useState([])
-
- const table = useReactTable({
- data,
- columns,
- getCoreRowModel: getCoreRowModel(),
- getPaginationRowModel: getPaginationRowModel(),
- onSortingChange: setSorting,
- getSortedRowModel: getSortedRowModel(),
- state: {
- sorting,
- },
- })
-
- return (
-
- )
-}
-```
-
-### Make header cell sortable
-
-We can now update the `email` header cell to add sorting controls.
-
-```tsx showLineNumbers title="app/payments/columns.tsx" {4,9-19}
-"use client"
-
-import { ColumnDef } from "@tanstack/react-table"
-import { ArrowUpDown } from "lucide-react"
-
-export const columns: ColumnDef[] = [
- {
- accessorKey: "email",
- header: ({ column }) => {
- return (
- column.toggleSorting(column.getIsSorted() === "asc")}
- >
- Email
-
-
- )
- },
- },
-]
-```
-
-This will automatically sort the table (asc and desc) when the user toggles on the header cell.
-
-
-
-## Filtering
-
-Let's add a search input to filter emails in our table.
-
-
-
-### Update ``
-
-```tsx showLineNumbers title="app/payments/data-table.tsx" {6,10,17,24-26,35-36,39,45-54}
-"use client"
-
-import * as React from "react"
-import {
- ColumnDef,
- ColumnFiltersState,
- SortingState,
- flexRender,
- getCoreRowModel,
- getFilteredRowModel,
- getPaginationRowModel,
- getSortedRowModel,
- useReactTable,
-} from "@tanstack/react-table"
-
-import { Button } from "@/components/ui/button"
-import { Input } from "@/components/ui/input"
-
-export function DataTable({
- columns,
- data,
-}: DataTableProps) {
- const [sorting, setSorting] = React.useState([])
- const [columnFilters, setColumnFilters] = React.useState(
- []
- )
-
- const table = useReactTable({
- data,
- columns,
- onSortingChange: setSorting,
- getCoreRowModel: getCoreRowModel(),
- getPaginationRowModel: getPaginationRowModel(),
- getSortedRowModel: getSortedRowModel(),
- onColumnFiltersChange: setColumnFilters,
- getFilteredRowModel: getFilteredRowModel(),
- state: {
- sorting,
- columnFilters,
- },
- })
-
- return (
-
-
-
- table.getColumn("email")?.setFilterValue(event.target.value)
- }
- className="max-w-sm"
- />
-
-
-
- )
-}
-```
-
-Filtering is now enabled for the `email` column. You can add filters to other columns as well. See the [filtering docs](https://tanstack.com/table/v8/docs/guide/filters) for more information on customizing filters.
-
-
-
-## Visibility
-
-Adding column visibility is fairly simple using `@tanstack/react-table` visibility API.
-
-
-
-### Update ``
-
-```tsx showLineNumbers title="app/payments/data-table.tsx" {8,18-23,33-34,45,49,64-91}
-"use client"
-
-import * as React from "react"
-import {
- ColumnDef,
- ColumnFiltersState,
- SortingState,
- VisibilityState,
- flexRender,
- getCoreRowModel,
- getFilteredRowModel,
- getPaginationRowModel,
- getSortedRowModel,
- useReactTable,
-} from "@tanstack/react-table"
-
-import { Button } from "@/components/ui/button"
-import {
- DropdownMenu,
- DropdownMenuCheckboxItem,
- DropdownMenuContent,
- DropdownMenuTrigger,
-} from "@/components/ui/dropdown-menu"
-
-export function DataTable({
- columns,
- data,
-}: DataTableProps) {
- const [sorting, setSorting] = React.useState([])
- const [columnFilters, setColumnFilters] = React.useState(
- []
- )
- const [columnVisibility, setColumnVisibility] =
- React.useState({})
-
- const table = useReactTable({
- data,
- columns,
- onSortingChange: setSorting,
- onColumnFiltersChange: setColumnFilters,
- getCoreRowModel: getCoreRowModel(),
- getPaginationRowModel: getPaginationRowModel(),
- getSortedRowModel: getSortedRowModel(),
- getFilteredRowModel: getFilteredRowModel(),
- onColumnVisibilityChange: setColumnVisibility,
- state: {
- sorting,
- columnFilters,
- columnVisibility,
- },
- })
-
- return (
-
-
-
- table.getColumn("email")?.setFilterValue(event.target.value)
- }
- className="max-w-sm"
- />
-
-
-
- Columns
-
-
-
- {table
- .getAllColumns()
- .filter(
- (column) => column.getCanHide()
- )
- .map((column) => {
- return (
-
- column.toggleVisibility(!!value)
- }
- >
- {column.id}
-
- )
- })}
-
-
-
-
-
- )
-}
-```
-
-This adds a dropdown menu that you can use to toggle column visibility.
-
-
-
-## Row Selection
-
-Next, we're going to add row selection to our table.
-
-
-
-### Update column definitions
-
-```tsx showLineNumbers title="app/payments/columns.tsx" {6,9-27}
-"use client"
-
-import { ColumnDef } from "@tanstack/react-table"
-
-import { Badge } from "@/components/ui/badge"
-import { Checkbox } from "@/components/ui/checkbox"
-
-export const columns: ColumnDef[] = [
- {
- id: "select",
- header: ({ table }) => (
- table.toggleAllPageRowsSelected(!!value)}
- aria-label="Select all"
- />
- ),
- cell: ({ row }) => (
- row.toggleSelected(!!value)}
- aria-label="Select row"
- />
- ),
- enableSorting: false,
- enableHiding: false,
- },
-]
-```
-
-### Update ``
-
-```tsx showLineNumbers title="app/payments/data-table.tsx" {11,23,28}
-export function DataTable({
- columns,
- data,
-}: DataTableProps) {
- const [sorting, setSorting] = React.useState([])
- const [columnFilters, setColumnFilters] = React.useState(
- []
- )
- const [columnVisibility, setColumnVisibility] =
- React.useState({})
- const [rowSelection, setRowSelection] = React.useState({})
-
- const table = useReactTable({
- data,
- columns,
- onSortingChange: setSorting,
- onColumnFiltersChange: setColumnFilters,
- getCoreRowModel: getCoreRowModel(),
- getPaginationRowModel: getPaginationRowModel(),
- getSortedRowModel: getSortedRowModel(),
- getFilteredRowModel: getFilteredRowModel(),
- onColumnVisibilityChange: setColumnVisibility,
- onRowSelectionChange: setRowSelection,
- state: {
- sorting,
- columnFilters,
- columnVisibility,
- rowSelection,
- },
- })
-
- return (
-
- )
-}
-```
-
-This adds a checkbox to each row and a checkbox in the header to select all rows.
-
-### Show selected rows
-
-You can show the number of selected rows using the `table.getFilteredSelectedRowModel()` API.
-
-```tsx
-
- {table.getFilteredSelectedRowModel().rows.length} of{" "}
- {table.getFilteredRowModel().rows.length} row(s) selected.
-
-```
-
-
-
-## Reusable Components
-
-Here are some components you can use to build your data tables. This is from the [Tasks](/examples/tasks) demo.
-
-### Column header
-
-Make any column header sortable and hideable.
-
-
-
-```tsx {5}
-export const columns = [
- {
- accessorKey: "email",
- header: ({ column }) => (
-
- ),
- },
-]
-```
-
-### Pagination
-
-Add pagination controls to your table including page size and selection count.
-
-
-
-```tsx
-
-```
-
-### Column toggle
-
-A component to toggle column visibility.
-
-
-
-```tsx
-
-```
diff --git a/deprecated/www/content/docs/components/date-picker.mdx b/deprecated/www/content/docs/components/date-picker.mdx
deleted file mode 100644
index 3e92b5baa5..0000000000
--- a/deprecated/www/content/docs/components/date-picker.mdx
+++ /dev/null
@@ -1,93 +0,0 @@
----
-title: Date Picker
-description: A date picker component with range and presets.
-component: true
----
-
-
-
-## Installation
-
-The Date Picker is built using a composition of the ` ` and the ` ` components.
-
-See installation instructions for the [Popover](/docs/components/popover#installation) and the [Calendar](/docs/components/calendar#installation) components.
-
-## Usage
-
-```tsx
-"use client"
-
-import * as React from "react"
-import { format } from "date-fns"
-import { Calendar as CalendarIcon } from "lucide-react"
-
-import { cn } from "@/lib/utils"
-import { Button } from "@/components/ui/button"
-import { Calendar } from "@/components/ui/calendar"
-import {
- Popover,
- PopoverContent,
- PopoverTrigger,
-} from "@/components/ui/popover"
-
-export function DatePickerDemo() {
- const [date, setDate] = React.useState()
-
- return (
-
-
-
-
- {date ? format(date, "PPP") : Pick a date }
-
-
-
-
-
-
- )
-}
-```
-
-See the [React DayPicker](https://react-day-picker.js.org) documentation for more information.
-
-## Examples
-
-### Date Picker
-
-
-
-### Date Range Picker
-
-
-
-### With Presets
-
-
-
-### Form
-
-
diff --git a/deprecated/www/content/docs/components/dialog.mdx b/deprecated/www/content/docs/components/dialog.mdx
deleted file mode 100644
index f3fd2522cf..0000000000
--- a/deprecated/www/content/docs/components/dialog.mdx
+++ /dev/null
@@ -1,120 +0,0 @@
----
-title: Dialog
-description: A window overlaid on either the primary window or another dialog window, rendering the content underneath inert.
-featured: true
-component: true
-links:
- doc: https://www.radix-ui.com/docs/primitives/components/dialog
- api: https://www.radix-ui.com/docs/primitives/components/dialog#api-reference
----
-
-
-
-## Installation
-
-
-
-
- CLI
- Manual
-
-
-
-```bash
-npx shadcn@latest add dialog
-```
-
-
-
-
-
-
-
-Install the following dependencies:
-
-```bash
-npm install @radix-ui/react-dialog
-```
-
-Copy and paste the following code into your project.
-
-
-
-Update the import paths to match your project setup.
-
-
-
-
-
-
-
-## Usage
-
-```tsx
-import {
- Dialog,
- DialogContent,
- DialogDescription,
- DialogHeader,
- DialogTitle,
- DialogTrigger,
-} from "@/components/ui/dialog"
-```
-
-```tsx
-
- Open
-
-
- Are you absolutely sure?
-
- This action cannot be undone. This will permanently delete your account
- and remove your data from our servers.
-
-
-
-
-```
-
-## Examples
-
-### Custom close button
-
-
-
-## Notes
-
-To activate the `Dialog` component from within a `Context Menu` or `Dropdown Menu`, you must encase the `Context Menu` or
-`Dropdown Menu` component in the `Dialog` component. For more information, refer to the linked issue [here](https://github.com/radix-ui/primitives/issues/1836).
-
-```tsx {14-25}
-
-
- Right click
-
- Open
- Download
-
-
- Delete
-
-
-
-
-
-
- Are you absolutely sure?
-
- This action cannot be undone. Are you sure you want to permanently
- delete this file from our servers?
-
-
-
- Confirm
-
-
-
-```
diff --git a/deprecated/www/content/docs/components/drawer.mdx b/deprecated/www/content/docs/components/drawer.mdx
deleted file mode 100644
index d9456eae26..0000000000
--- a/deprecated/www/content/docs/components/drawer.mdx
+++ /dev/null
@@ -1,92 +0,0 @@
----
-title: Drawer
-description: A drawer component for React.
-component: true
-links:
- doc: https://vaul.emilkowal.ski/getting-started
----
-
-
-
-## About
-
-Drawer is built on top of [Vaul](https://github.com/emilkowalski/vaul) by [emilkowalski\_](https://twitter.com/emilkowalski_).
-
-## Installation
-
-
-
-
- CLI
- Manual
-
-
-
-```bash
-npx shadcn@latest add drawer
-```
-
-
-
-
-
-
-
-Install the following dependencies:
-
-```bash
-npm install vaul
-```
-
-Copy and paste the following code into your project.
-
-
-
-Update the import paths to match your project setup.
-
-
-
-
-
-
-
-## Usage
-
-```tsx showLineNumbers
-import {
- Drawer,
- DrawerClose,
- DrawerContent,
- DrawerDescription,
- DrawerFooter,
- DrawerHeader,
- DrawerTitle,
- DrawerTrigger,
-} from "@/components/ui/drawer"
-```
-
-```tsx showLineNumbers
-
- Open
-
-
- Are you absolutely sure?
- This action cannot be undone.
-
-
- Submit
-
- Cancel
-
-
-
-
-```
-
-## Examples
-
-### Responsive Dialog
-
-You can combine the `Dialog` and `Drawer` components to create a responsive dialog. This renders a `Dialog` component on desktop and a `Drawer` on mobile.
-
-
diff --git a/deprecated/www/content/docs/components/dropdown-menu.mdx b/deprecated/www/content/docs/components/dropdown-menu.mdx
deleted file mode 100644
index a6e19622d9..0000000000
--- a/deprecated/www/content/docs/components/dropdown-menu.mdx
+++ /dev/null
@@ -1,142 +0,0 @@
----
-title: Dropdown Menu
-description: Displays a menu to the user — such as a set of actions or functions — triggered by a button.
-featured: true
-component: true
-links:
- doc: https://www.radix-ui.com/docs/primitives/components/dropdown-menu
- api: https://www.radix-ui.com/docs/primitives/components/dropdown-menu#api-reference
----
-
-
-
-## Installation
-
-
-
-
- CLI
- Manual
-
-
-
-```bash
-npx shadcn@latest add dropdown-menu
-```
-
-
-
-
-
-
-
-Install the following dependencies:
-
-```bash
-npm install @radix-ui/react-dropdown-menu
-```
-
-Copy and paste the following code into your project.
-
-
-
-Update the import paths to match your project setup.
-
-
-
-
-
-
-
-## Usage
-
-```tsx
-import {
- DropdownMenu,
- DropdownMenuContent,
- DropdownMenuItem,
- DropdownMenuLabel,
- DropdownMenuSeparator,
- DropdownMenuTrigger,
-} from "@/components/ui/dropdown-menu"
-```
-
-```tsx
-
- Open
-
- My Account
-
- Profile
- Billing
- Team
- Subscription
-
-
-```
-
-## Examples
-
-### Checkboxes
-
-
-
-### Radio Group
-
-
-
-## Changelog
-
-### 2024-10-16 Classes for icons
-
-Added `gap-2 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0` to the `DropdownMenuItem` to automatically style icon inside the dropdown menu item.
-
-Add the following classes to the `DropdownMenuItem` in your `dropdown-menu.tsx` file.
-
-```diff showLineNumbers title="dropdown-menu.tsx"
-const DropdownMenuItem = React.forwardRef<
- React.ElementRef,
- React.ComponentPropsWithoutRef & {
- inset?: boolean
- }
->(({ className, inset, ...props }, ref) => (
-
-))
-```
-
-### 2024-10-25 Classes for ` `
-
-Added `gap-2 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0` to the ` ` to automatically style icon inside.
-
-Add the following classes to the `cva` call in your `dropdown-menu.tsx` file.
-
-```tsx title="dropdown-menu.tsx"
-
- {/* ... */}
-
-```
diff --git a/deprecated/www/content/docs/components/form.mdx b/deprecated/www/content/docs/components/form.mdx
deleted file mode 100644
index 87756d55a4..0000000000
--- a/deprecated/www/content/docs/components/form.mdx
+++ /dev/null
@@ -1,255 +0,0 @@
----
-title: React Hook Form
-description: Building forms with React Hook Form and Zod.
-links:
- doc: https://react-hook-form.com
----
-
-Forms are tricky. They are one of the most common things you'll build in a web application, but also one of the most complex.
-
-Well-designed HTML forms are:
-
-- Well-structured and semantically correct.
-- Easy to use and navigate (keyboard).
-- Accessible with ARIA attributes and proper labels.
-- Has support for client and server side validation.
-- Well-styled and consistent with the rest of the application.
-
-In this guide, we will take a look at building forms with [`react-hook-form`](https://react-hook-form.com/) and [`zod`](https://zod.dev). We're going to use a `` component to compose accessible forms using Radix UI components.
-
-## Features
-
-The ` ` component is a wrapper around the `react-hook-form` library. It provides a few things:
-
-- Composable components for building forms.
-- A ` ` component for building controlled form fields.
-- Form validation using `zod`.
-- Handles accessibility and error messages.
-- Uses `React.useId()` for generating unique IDs.
-- Applies the correct `aria` attributes to form fields based on states.
-- Built to work with all Radix UI components.
-- Bring your own schema library. We use `zod` but you can use anything you want.
-- **You have full control over the markup and styling.**
-
-## Anatomy
-
-```tsx
-
- (
-
-
-
- { /* Your form field */}
-
-
-
-
- )}
- />
-
-```
-
-## Example
-
-```tsx
-const form = useForm()
-
- (
-
- Username
-
-
-
- This is your public display name.
-
-
- )}
-/>
-```
-
-## Installation
-
-
-
-
- CLI
- Manual
-
-
-
-
-
-### Command
-
-```bash
-npx shadcn@latest add form
-```
-
-
-
-
-
-
-
-
-
-Install the following dependencies:
-
-```bash
-npm install @radix-ui/react-label @radix-ui/react-slot react-hook-form @hookform/resolvers zod
-```
-
-Copy and paste the following code into your project.
-
-
-
-Update the import paths to match your project setup.
-
-
-
-
-
-
-
-## Usage
-
-
-
-### Create a form schema
-
-Define the shape of your form using a Zod schema. You can read more about using Zod in the [Zod documentation](https://zod.dev).
-
-```tsx showLineNumbers {3,5-7}
-"use client"
-
-import { z } from "zod"
-
-const formSchema = z.object({
- username: z.string().min(2).max(50),
-})
-```
-
-### Define a form
-
-Use the `useForm` hook from `react-hook-form` to create a form.
-
-```tsx showLineNumbers {3-4,14-20,22-27}
-"use client"
-
-import { zodResolver } from "@hookform/resolvers/zod"
-import { useForm } from "react-hook-form"
-import { z } from "zod"
-
-const formSchema = z.object({
- username: z.string().min(2, {
- message: "Username must be at least 2 characters.",
- }),
-})
-
-export function ProfileForm() {
- // 1. Define your form.
- const form = useForm>({
- resolver: zodResolver(formSchema),
- defaultValues: {
- username: "",
- },
- })
-
- // 2. Define a submit handler.
- function onSubmit(values: z.infer) {
- // Do something with the form values.
- // ✅ This will be type-safe and validated.
- console.log(values)
- }
-}
-```
-
-Since `FormField` is using a controlled component, you need to provide a default value for the field. See the [React Hook Form docs](https://react-hook-form.com/docs/usecontroller) to learn more about controlled components.
-
-### Build your form
-
-We can now use the ` ` components to build our form.
-
-```tsx showLineNumbers {7-17,28-50}
-"use client"
-
-import { zodResolver } from "@hookform/resolvers/zod"
-import { useForm } from "react-hook-form"
-import { z } from "zod"
-
-import { Button } from "@/components/ui/button"
-import {
- Form,
- FormControl,
- FormDescription,
- FormField,
- FormItem,
- FormLabel,
- FormMessage,
-} from "@/components/ui/form"
-import { Input } from "@/components/ui/input"
-
-const formSchema = z.object({
- username: z.string().min(2, {
- message: "Username must be at least 2 characters.",
- }),
-})
-
-export function ProfileForm() {
- // ...
-
- return (
-
-
- (
-
- Username
-
-
-
-
- This is your public display name.
-
-
-
- )}
- />
- Submit
-
-
- )
-}
-```
-
-### Done
-
-That's it. You now have a fully accessible form that is type-safe with client-side validation.
-
-
-
-
-
-## Examples
-
-See the following links for more examples on how to use the ` ` component with other components:
-
-- [Checkbox](/docs/components/checkbox#form)
-- [Date Picker](/docs/components/date-picker#form)
-- [Input](/docs/components/input#form)
-- [Radio Group](/docs/components/radio-group#form)
-- [Select](/docs/components/select#form)
-- [Switch](/docs/components/switch#form)
-- [Textarea](/docs/components/textarea#form)
-- [Combobox](/docs/components/combobox#form)
diff --git a/deprecated/www/content/docs/components/hover-card.mdx b/deprecated/www/content/docs/components/hover-card.mdx
deleted file mode 100644
index b87b5cc164..0000000000
--- a/deprecated/www/content/docs/components/hover-card.mdx
+++ /dev/null
@@ -1,67 +0,0 @@
----
-title: Hover Card
-description: For sighted users to preview content available behind a link.
-component: true
-links:
- doc: https://www.radix-ui.com/docs/primitives/components/hover-card
- api: https://www.radix-ui.com/docs/primitives/components/hover-card#api-reference
----
-
-
-
-## Installation
-
-
-
-
- CLI
- Manual
-
-
-
-```bash
-npx shadcn@latest add hover-card
-```
-
-
-
-
-
-Install the following dependencies:
-
-```bash
-npm install @radix-ui/react-hover-card
-```
-
-
-
-Copy and paste the following code into your project.
-
-
-
-Update the import paths to match your project setup.
-
-
-
-
-
-
-
-## Usage
-
-```tsx
-import {
- HoverCard,
- HoverCardContent,
- HoverCardTrigger,
-} from "@/components/ui/hover-card"
-```
-
-```tsx
-
- Hover
-
- The React Framework – created and maintained by @vercel.
-
-
-```
diff --git a/deprecated/www/content/docs/components/input-otp.mdx b/deprecated/www/content/docs/components/input-otp.mdx
deleted file mode 100644
index 99f147c187..0000000000
--- a/deprecated/www/content/docs/components/input-otp.mdx
+++ /dev/null
@@ -1,276 +0,0 @@
----
-title: Input OTP
-description: Accessible one-time password component with copy paste functionality.
-component: true
-links:
- doc: https://input-otp.rodz.dev
----
-
-
-
-## About
-
-Input OTP is built on top of [input-otp](https://github.com/guilhermerodz/input-otp) by [@guilherme_rodz](https://twitter.com/guilherme_rodz).
-
-## Installation
-
-
-
-
- CLI
- Manual
-
-
-
-
-
-Run the following command:
-
-```bash
-npx shadcn@latest add input-otp
-```
-
-Update `tailwind.config.js`
-
-Add the following animations to your `tailwind.config.js` file:
-
-```js showLineNumbers title="tailwind.config.js" {6-9,12}
-/** @type {import('tailwindcss').Config} */
-module.exports = {
- theme: {
- extend: {
- keyframes: {
- "caret-blink": {
- "0%,70%,100%": { opacity: "1" },
- "20%,50%": { opacity: "0" },
- },
- },
- animation: {
- "caret-blink": "caret-blink 1.25s ease-out infinite",
- },
- },
- },
-}
-```
-
-
-
-
-
-
-
-
-
-Install the following dependencies:
-
-```bash
-npm install input-otp
-```
-
-Copy and paste the following code into your project.
-
-
-
-Update the import paths to match your project setup.
-
-Update `tailwind.config.js`
-
-Add the following animations to your `tailwind.config.js` file:
-
-```js showLineNumbers title="tailwind.config.js" {6-9,12}
-/** @type {import('tailwindcss').Config} */
-module.exports = {
- theme: {
- extend: {
- keyframes: {
- "caret-blink": {
- "0%,70%,100%": { opacity: "1" },
- "20%,50%": { opacity: "0" },
- },
- },
- animation: {
- "caret-blink": "caret-blink 1.25s ease-out infinite",
- },
- },
- },
-}
-```
-
-
-
-
-
-
-
-## Usage
-
-```tsx
-import {
- InputOTP,
- InputOTPGroup,
- InputOTPSeparator,
- InputOTPSlot,
-} from "@/components/ui/input-otp"
-```
-
-```tsx
-
-
-
-
-
-
-
-
-
-
-
-
-
-```
-
-## Examples
-
-### Pattern
-
-Use the `pattern` prop to define a custom pattern for the OTP input.
-
-
-
-```tsx showLineNumbers {1,7}
-import { REGEXP_ONLY_DIGITS_AND_CHARS } from "input-otp"
-
-...
-
-
-
-
- {/* ... */}
-
-
-```
-
-### Separator
-
-You can use the ` ` component to add a separator between the input groups.
-
-
-
-```tsx showLineNumbers {4,15}
-import {
- InputOTP,
- InputOTPGroup,
- InputOTPSeparator,
- InputOTPSlot,
-} from "@/components/ui/input-otp"
-
-...
-
-
-
-
-
-
-
-
-
-
-
-
-```
-
-### Controlled
-
-You can use the `value` and `onChange` props to control the input value.
-
-
-
-### Form
-
-
-
-## Changelog
-
-### 2024-03-19 Composition
-
-We've made some updates and replaced the render props pattern with composition. Here's how to update your code if you prefer the composition pattern.
-
-
- **Note:** You are not required to update your code if you are using the
- `render` prop. It is still supported.
-
-
-
-
-Update to the latest version of `input-otp`.
-
-```bash
-npm install input-otp@latest
-```
-
-Update `input-otp.tsx`
-
-```diff showLineNumbers title="input-otp.tsx" {2,8-11}
-- import { OTPInput, SlotProps } from "input-otp"
-+ import { OTPInput, OTPInputContext } from "input-otp"
-
- const InputOTPSlot = React.forwardRef<
- React.ElementRef<"div">,
-- SlotProps & React.ComponentPropsWithoutRef<"div">
-- >(({ char, hasFakeCaret, isActive, className, ...props }, ref) => {
-+ React.ComponentPropsWithoutRef<"div"> & { index: number }
-+ >(({ index, className, ...props }, ref) => {
-+ const inputOTPContext = React.useContext(OTPInputContext)
-+ const { char, hasFakeCaret, isActive } = inputOTPContext.slots[index]
-```
-
-Then replace the `render` prop in your code.
-
-```diff showLineNumbers {2-12}
-
-
-
-
-
-
-
-
-
-
-
-
-
-```
-
-
-
-### 2024-03-19 Disabled
-
-To add a disabled state to the input, update ` ` as follows:
-
-```tsx showLineNumbers title="input-otp.tsx" {4,7-11}
-const InputOTP = React.forwardRef<
- React.ElementRef,
- React.ComponentPropsWithoutRef
->(({ className, containerClassName, ...props }, ref) => (
-
-))
-InputOTP.displayName = "InputOTP"
-```
diff --git a/deprecated/www/content/docs/components/input.mdx b/deprecated/www/content/docs/components/input.mdx
deleted file mode 100644
index 70eef4b352..0000000000
--- a/deprecated/www/content/docs/components/input.mdx
+++ /dev/null
@@ -1,99 +0,0 @@
----
-title: Input
-description: Displays a form input field or a component that looks like an input field.
-component: true
----
-
-
-
-## Installation
-
-
-
-
- CLI
- Manual
-
-
-
-```bash
-npx shadcn@latest add input
-```
-
-
-
-
-
-
-
-Copy and paste the following code into your project.
-
-
-
-Update the import paths to match your project setup.
-
-
-
-
-
-
-
-## Usage
-
-```tsx
-import { Input } from "@/components/ui/input"
-```
-
-```tsx
-
-```
-
-## Examples
-
-### Default
-
-
-
-### File
-
-
-
-### Disabled
-
-
-
-### With Label
-
-
-
-### With Button
-
-
-
-### Form
-
-
diff --git a/deprecated/www/content/docs/components/label.mdx b/deprecated/www/content/docs/components/label.mdx
deleted file mode 100644
index 6b53c2a359..0000000000
--- a/deprecated/www/content/docs/components/label.mdx
+++ /dev/null
@@ -1,58 +0,0 @@
----
-title: Label
-description: Renders an accessible label associated with controls.
-component: true
-links:
- doc: https://www.radix-ui.com/docs/primitives/components/label
- api: https://www.radix-ui.com/docs/primitives/components/label#api-reference
----
-
-
-
-## Installation
-
-
-
-
- CLI
- Manual
-
-
-
-```bash
-npx shadcn@latest add label
-```
-
-
-
-
-
-
-
-Install the following dependencies:
-
-```bash
-npm install @radix-ui/react-label
-```
-
-Copy and paste the following code into your project.
-
-
-
-Update the import paths to match your project setup.
-
-
-
-
-
-
-
-## Usage
-
-```tsx
-import { Label } from "@/components/ui/label"
-```
-
-```tsx
-Your email address
-```
diff --git a/deprecated/www/content/docs/components/menubar.mdx b/deprecated/www/content/docs/components/menubar.mdx
deleted file mode 100644
index 1590ccfe4c..0000000000
--- a/deprecated/www/content/docs/components/menubar.mdx
+++ /dev/null
@@ -1,80 +0,0 @@
----
-title: Menubar
-description: A visually persistent menu common in desktop applications that provides quick access to a consistent set of commands.
-component: true
-links:
- doc: https://www.radix-ui.com/docs/primitives/components/menubar
- api: https://www.radix-ui.com/docs/primitives/components/menubar#api-reference
----
-
-
-
-## Installation
-
-
-
-
- CLI
- Manual
-
-
-
-```bash
-npx shadcn@latest add menubar
-```
-
-
-
-
-
-
-
-Install the following dependencies:
-
-```bash
-npm install @radix-ui/react-menubar
-```
-
-Copy and paste the following code into your project.
-
-
-
-Update the import paths to match your project setup.
-
-
-
-
-
-
-
-## Usage
-
-```tsx
-import {
- Menubar,
- MenubarContent,
- MenubarItem,
- MenubarMenu,
- MenubarSeparator,
- MenubarShortcut,
- MenubarTrigger,
-} from "@/components/ui/menubar"
-```
-
-```tsx
-
-
- File
-
-
- New Tab ⌘T
-
- New Window
-
- Share
-
- Print
-
-
-
-```
diff --git a/deprecated/www/content/docs/components/navigation-menu.mdx b/deprecated/www/content/docs/components/navigation-menu.mdx
deleted file mode 100644
index 25345dc1a3..0000000000
--- a/deprecated/www/content/docs/components/navigation-menu.mdx
+++ /dev/null
@@ -1,98 +0,0 @@
----
-title: Navigation Menu
-description: A collection of links for navigating websites.
-component: true
-links:
- doc: https://www.radix-ui.com/docs/primitives/components/navigation-menu
- api: https://www.radix-ui.com/docs/primitives/components/navigation-menu#api-reference
----
-
-
-
-## Installation
-
-
-
-
- CLI
- Manual
-
-
-
-```bash
-npx shadcn@latest add navigation-menu
-```
-
-
-
-
-
-
-
-Install the following dependencies:
-
-```bash
-npm install @radix-ui/react-navigation-menu
-```
-
-Copy and paste the following code into your project.
-
-
-
-Update the import paths to match your project setup.
-
-
-
-
-
-
-
-## Usage
-
-```tsx
-import {
- NavigationMenu,
- NavigationMenuContent,
- NavigationMenuIndicator,
- NavigationMenuItem,
- NavigationMenuLink,
- NavigationMenuList,
- NavigationMenuTrigger,
- NavigationMenuViewport,
-} from "@/components/ui/navigation-menu"
-```
-
-```tsx
-
-
-
- Item One
-
- Link
-
-
-
-
-```
-
-## Examples
-
-### Link Component
-
-When using the Next.js ` ` component, you can use `navigationMenuTriggerStyle()` to apply the correct styles to the trigger.
-
-```tsx
-import { navigationMenuTriggerStyle } from "@/components/ui/navigation-menu"
-```
-
-```tsx {3-5}
-
-
-
- Documentation
-
-
-
-```
-
-See also the [Radix UI documentation](https://www.radix-ui.com/docs/primitives/components/navigation-menu#with-client-side-routing) for handling client side routing.
diff --git a/deprecated/www/content/docs/components/pagination.mdx b/deprecated/www/content/docs/components/pagination.mdx
deleted file mode 100644
index 9e564d7ae6..0000000000
--- a/deprecated/www/content/docs/components/pagination.mdx
+++ /dev/null
@@ -1,105 +0,0 @@
----
-title: Pagination
-description: Pagination with page navigation, next and previous links.
-component: true
----
-
-
-
-## Installation
-
-
-
-
- CLI
- Manual
-
-
-
-```bash
-npx shadcn@latest add pagination
-```
-
-
-
-
-
-
-
-Copy and paste the following code into your project.
-
-
-
-Update the import paths to match your project setup.
-
-
-
-
-
-
-
-## Usage
-
-```tsx
-import {
- Pagination,
- PaginationContent,
- PaginationEllipsis,
- PaginationItem,
- PaginationLink,
- PaginationNext,
- PaginationPrevious,
-} from "@/components/ui/pagination"
-```
-
-```tsx
-
-
-
-
-
-
- 1
-
-
-
-
-
-
-
-
-
-```
-
-### Next.js
-
-By default the ` ` component will render an ` ` tag.
-
-To use the Next.js ` ` component, make the following updates to `pagination.tsx`.
-
-```diff showLineNumbers /typeof Link/ {1}
-+ import Link from "next/link"
-
-- type PaginationLinkProps = ... & React.ComponentProps<"a">
-+ type PaginationLinkProps = ... & React.ComponentProps
-
-const PaginationLink = ({...props }: ) => (
-
--
-+
- // ...
--
-+
-
-)
-
-```
-
-
-
-**Note:** We are making updates to the cli to automatically do this for you.
-
-
diff --git a/deprecated/www/content/docs/components/popover.mdx b/deprecated/www/content/docs/components/popover.mdx
deleted file mode 100644
index ee7604d2db..0000000000
--- a/deprecated/www/content/docs/components/popover.mdx
+++ /dev/null
@@ -1,68 +0,0 @@
----
-title: Popover
-description: Displays rich content in a portal, triggered by a button.
-component: true
-links:
- doc: https://www.radix-ui.com/docs/primitives/components/popover
- api: https://www.radix-ui.com/docs/primitives/components/popover#api-reference
----
-
-
-
-## Installation
-
-
-
-
- CLI
- Manual
-
-
-
-```bash
-npx shadcn@latest add popover
-```
-
-
-
-
-
-
-
-Install the following dependencies:
-
-```bash
-npm install @radix-ui/react-popover
-```
-
-Copy and paste the following code into your project.
-
-
-
-Update the import paths to match your project setup.
-
-
-
-
-
-
-
-## Usage
-
-```tsx
-import {
- Popover,
- PopoverContent,
- PopoverTrigger,
-} from "@/components/ui/popover"
-```
-
-```tsx
-
- Open
- Place content for the popover here.
-
-```
diff --git a/deprecated/www/content/docs/components/progress.mdx b/deprecated/www/content/docs/components/progress.mdx
deleted file mode 100644
index 28dc665771..0000000000
--- a/deprecated/www/content/docs/components/progress.mdx
+++ /dev/null
@@ -1,61 +0,0 @@
----
-title: Progress
-description: Displays an indicator showing the completion progress of a task, typically displayed as a progress bar.
-component: true
-links:
- doc: https://www.radix-ui.com/docs/primitives/components/progress
- api: https://www.radix-ui.com/docs/primitives/components/progress#api-reference
----
-
-
-
-## Installation
-
-
-
-
- CLI
- Manual
-
-
-
-```bash
-npx shadcn@latest add progress
-```
-
-
-
-
-
-
-
-Install the following dependencies:
-
-```bash
-npm install @radix-ui/react-progress
-```
-
-Copy and paste the following code into your project.
-
-
-
-Update the import paths to match your project setup.
-
-
-
-
-
-
-
-## Usage
-
-```tsx
-import { Progress } from "@/components/ui/progress"
-```
-
-```tsx
-
-```
diff --git a/deprecated/www/content/docs/components/radio-group.mdx b/deprecated/www/content/docs/components/radio-group.mdx
deleted file mode 100644
index edcef2f91e..0000000000
--- a/deprecated/www/content/docs/components/radio-group.mdx
+++ /dev/null
@@ -1,77 +0,0 @@
----
-title: Radio Group
-description: A set of checkable buttons—known as radio buttons—where no more than one of the buttons can be checked at a time.
-component: true
-links:
- doc: https://www.radix-ui.com/docs/primitives/components/radio-group
- api: https://www.radix-ui.com/docs/primitives/components/radio-group#api-reference
----
-
-
-
-## Installation
-
-
-
-
- CLI
- Manual
-
-
-
-```bash
-npx shadcn@latest add radio-group
-```
-
-
-
-
-
-
-
-Install the following dependencies:
-
-```bash
-npm install @radix-ui/react-radio-group
-```
-
-Copy and paste the following code into your project.
-
-
-
-Update the import paths to match your project setup.
-
-
-
-
-
-
-
-## Usage
-
-```tsx
-import { Label } from "@/components/ui/label"
-import { RadioGroup, RadioGroupItem } from "@/components/ui/radio-group"
-```
-
-```tsx
-
-
-
- Option One
-
-
-
- Option Two
-
-
-```
-
-## Examples
-
-### Form
-
-
diff --git a/deprecated/www/content/docs/components/resizable.mdx b/deprecated/www/content/docs/components/resizable.mdx
deleted file mode 100644
index 63d4a730c4..0000000000
--- a/deprecated/www/content/docs/components/resizable.mdx
+++ /dev/null
@@ -1,129 +0,0 @@
----
-title: Resizable
-description: Accessible resizable panel groups and layouts with keyboard support.
-component: true
-links:
- doc: https://github.com/bvaughn/react-resizable-panels
- api: https://github.com/bvaughn/react-resizable-panels/tree/main/packages/react-resizable-panels
----
-
-
-
-## About
-
-The `Resizable` component is built on top of [react-resizable-panels](https://github.com/bvaughn/react-resizable-panels) by [bvaughn](https://github.com/bvaughn).
-
-## Installation
-
-
-
-
- CLI
- Manual
-
-
-
-```bash
-npx shadcn@latest add resizable
-```
-
-
-
-
-
-
-
-Install the following dependencies:
-
-```bash
-npm install react-resizable-panels
-```
-
-Copy and paste the following code into your project.
-
-
-
-Update the import paths to match your project setup.
-
-
-
-
-
-
-
-## Usage
-
-```tsx
-import {
- ResizableHandle,
- ResizablePanel,
- ResizablePanelGroup,
-} from "@/components/ui/resizable"
-```
-
-```tsx
-
- One
-
- Two
-
-```
-
-## Examples
-
-### Vertical
-
-Use the `direction` prop to set the direction of the resizable panels.
-
-
-
-```tsx showLineNumbers {9}
-import {
- ResizableHandle,
- ResizablePanel,
- ResizablePanelGroup,
-} from "@/components/ui/resizable"
-
-export default function Example() {
- return (
-
- One
-
- Two
-
- )
-}
-```
-
-### Handle
-
-You can set or hide the handle by using the `withHandle` prop on the `ResizableHandle` component.
-
-
-
-```tsx showLineNumbers {11}
-import {
- ResizableHandle,
- ResizablePanel,
- ResizablePanelGroup,
-} from "@/components/ui/resizable"
-
-export default function Example() {
- return (
-
- One
-
- Two
-
- )
-}
-```
diff --git a/deprecated/www/content/docs/components/scroll-area.mdx b/deprecated/www/content/docs/components/scroll-area.mdx
deleted file mode 100644
index 8484b4b6c9..0000000000
--- a/deprecated/www/content/docs/components/scroll-area.mdx
+++ /dev/null
@@ -1,74 +0,0 @@
----
-title: Scroll-area
-description: Augments native scroll functionality for custom, cross-browser styling.
-component: true
-links:
- doc: https://www.radix-ui.com/docs/primitives/components/scroll-area
- api: https://www.radix-ui.com/docs/primitives/components/scroll-area#api-reference
----
-
-
-
-## Installation
-
-
-
-
- CLI
- Manual
-
-
-
-```bash
-npx shadcn@latest add scroll-area
-```
-
-
-
-
-
-
-
-Install the following dependencies:
-
-```bash
-npm install @radix-ui/react-scroll-area
-```
-
-Copy and paste the following code into your project.
-
-
-
-Update the import paths to match your project setup.
-
-
-
-
-
-
-
-## Usage
-
-```tsx
-import { ScrollArea } from "@/components/ui/scroll-area"
-```
-
-```tsx
-
- Jokester began sneaking into the castle in the middle of the night and leaving
- jokes all over the place: under the king's pillow, in his soup, even in the
- royal toilet. The king was furious, but he couldn't seem to stop Jokester. And
- then, one day, the people of the kingdom discovered that the jokes left by
- Jokester were so funny that they couldn't help but laugh. And once they
- started laughing, they couldn't stop.
-
-```
-
-## Examples
-
-### Horizontal Scrolling
-
-
diff --git a/deprecated/www/content/docs/components/select.mdx b/deprecated/www/content/docs/components/select.mdx
deleted file mode 100644
index d81504a7df..0000000000
--- a/deprecated/www/content/docs/components/select.mdx
+++ /dev/null
@@ -1,90 +0,0 @@
----
-title: Select
-description: Displays a list of options for the user to pick from—triggered by a button.
-component: true
-featured: true
-links:
- doc: https://www.radix-ui.com/docs/primitives/components/select
- api: https://www.radix-ui.com/docs/primitives/components/select#api-reference
----
-
-
-
-## Installation
-
-
-
-
- CLI
- Manual
-
-
-
-```bash
-npx shadcn@latest add select
-```
-
-
-
-
-
-
-
-Install the following dependencies:
-
-```bash
-npm install @radix-ui/react-select
-```
-
-Copy and paste the following code into your project.
-
-
-
-Update the import paths to match your project setup.
-
-
-
-
-
-
-
-## Usage
-
-```tsx
-import {
- Select,
- SelectContent,
- SelectItem,
- SelectTrigger,
- SelectValue,
-} from "@/components/ui/select"
-```
-
-```tsx
-
-
-
-
-
- Light
- Dark
- System
-
-
-```
-
-## Examples
-
-### Scrollable
-
-
-
-### Form
-
-
diff --git a/deprecated/www/content/docs/components/separator.mdx b/deprecated/www/content/docs/components/separator.mdx
deleted file mode 100644
index 92a3f5bd0b..0000000000
--- a/deprecated/www/content/docs/components/separator.mdx
+++ /dev/null
@@ -1,57 +0,0 @@
----
-title: Separator
-description: Visually or semantically separates content.
-component: true
-links:
- doc: https://www.radix-ui.com/docs/primitives/components/separator
- api: https://www.radix-ui.com/docs/primitives/components/separator#api-reference
----
-
-
-
-## Installation
-
-
-
-
- CLI
- Manual
-
-
-
-```bash
-npx shadcn@latest add separator
-```
-
-
-
-
-
-
-Install the following dependencies:
-
-```bash
-npm install @radix-ui/react-separator
-```
-
-Copy and paste the following code into your project.
-
-
-
-Update the import paths to match your project setup.
-
-
-
-
-
-
-
-## Usage
-
-```tsx
-import { Separator } from "@/components/ui/separator"
-```
-
-```tsx
-
-```
diff --git a/deprecated/www/content/docs/components/sheet.mdx b/deprecated/www/content/docs/components/sheet.mdx
deleted file mode 100644
index dee6570262..0000000000
--- a/deprecated/www/content/docs/components/sheet.mdx
+++ /dev/null
@@ -1,103 +0,0 @@
----
-title: Sheet
-description: Extends the Dialog component to display content that complements the main content of the screen.
-component: true
-links:
- doc: https://www.radix-ui.com/docs/primitives/components/dialog
- api: https://www.radix-ui.com/docs/primitives/components/dialog#api-reference
----
-
-
-
-## Installation
-
-
-
-
- CLI
- Manual
-
-
-
-```bash
-npx shadcn@latest add sheet
-```
-
-
-
-
-
-
-
-Install the following dependencies:
-
-```bash
-npm install @radix-ui/react-dialog
-```
-
-Copy and paste the following code into your project.
-
-
-
-Update the import paths to match your project setup.
-
-
-
-
-
-
-
-### Usage
-
-```tsx
-import {
- Sheet,
- SheetContent,
- SheetDescription,
- SheetHeader,
- SheetTitle,
- SheetTrigger,
-} from "@/components/ui/sheet"
-```
-
-```tsx
-
- Open
-
-
- Are you absolutely sure?
-
- This action cannot be undone. This will permanently delete your account
- and remove your data from our servers.
-
-
-
-
-```
-
-## Examples
-
-### Side
-
-Use the `side` property to ` ` to indicate the edge of the screen where the component will appear. The values can be `top`, `right`, `bottom` or `left`.
-
-
-
-### Size
-
-You can adjust the size of the sheet using CSS classes:
-
-```tsx {3}
-
- Open
-
-
- Are you absolutely sure?
-
- This action cannot be undone. This will permanently delete your account
- and remove your data from our servers.
-
-
-
-
-```
diff --git a/deprecated/www/content/docs/components/sidebar.mdx b/deprecated/www/content/docs/components/sidebar.mdx
deleted file mode 100644
index ed021118e9..0000000000
--- a/deprecated/www/content/docs/components/sidebar.mdx
+++ /dev/null
@@ -1,1394 +0,0 @@
----
-title: Sidebar
-description: A composable, themeable and customizable sidebar component.
-component: true
----
-
-
-
-
- A sidebar that collapses to icons.
-
-
-
-Sidebars are one of the most complex components to build. They are central
-to any application and often contain a lot of moving parts.
-
-I don't like building sidebars. So I built 30+ of them. All kinds of
-configurations. Then I extracted the core components into `sidebar.tsx`.
-
-We now have a solid foundation to build on top of. Composable. Themeable.
-Customizable.
-
-[Browse the Blocks Library](/blocks).
-
-## Installation
-
-
-
-
- CLI
- Manual
-
-
-
-
-
-Run the following command to install `sidebar.tsx`
-
-```bash
-npx shadcn@latest add sidebar
-```
-
-Add the following colors to your CSS file
-
-The command above should install the colors for you. If not, copy and paste the following in your CSS file.
-
-We'll go over the colors later in the [theming section](/docs/components/sidebar#theming).
-
-```css title="app/globals.css"
-@layer base {
- :root {
- --sidebar-background: 0 0% 98%;
- --sidebar-foreground: 240 5.3% 26.1%;
- --sidebar-primary: 240 5.9% 10%;
- --sidebar-primary-foreground: 0 0% 98%;
- --sidebar-accent: 240 4.8% 95.9%;
- --sidebar-accent-foreground: 240 5.9% 10%;
- --sidebar-border: 220 13% 91%;
- --sidebar-ring: 217.2 91.2% 59.8%;
- }
-
- .dark {
- --sidebar-background: 240 5.9% 10%;
- --sidebar-foreground: 240 4.8% 95.9%;
- --sidebar-primary: 224.3 76.3% 48%;
- --sidebar-primary-foreground: 0 0% 100%;
- --sidebar-accent: 240 3.7% 15.9%;
- --sidebar-accent-foreground: 240 4.8% 95.9%;
- --sidebar-border: 240 3.7% 15.9%;
- --sidebar-ring: 217.2 91.2% 59.8%;
- }
-}
-```
-
-
-
-
-
-
-
-
-
-Copy and paste the following code into your project.
-
-
-
-Update the import paths to match your project setup.
-
-Add the following colors to your CSS file
-
-We'll go over the colors later in the [theming section](/docs/components/sidebar#theming).
-
-```css title="app/globals.css"
-@layer base {
- :root {
- --sidebar-background: 0 0% 98%;
- --sidebar-foreground: 240 5.3% 26.1%;
- --sidebar-primary: 240 5.9% 10%;
- --sidebar-primary-foreground: 0 0% 98%;
- --sidebar-accent: 240 4.8% 95.9%;
- --sidebar-accent-foreground: 240 5.9% 10%;
- --sidebar-border: 220 13% 91%;
- --sidebar-ring: 217.2 91.2% 59.8%;
- }
-
- .dark {
- --sidebar-background: 240 5.9% 10%;
- --sidebar-foreground: 240 4.8% 95.9%;
- --sidebar-primary: 224.3 76.3% 48%;
- --sidebar-primary-foreground: 0 0% 100%;
- --sidebar-accent: 240 3.7% 15.9%;
- --sidebar-accent-foreground: 240 4.8% 95.9%;
- --sidebar-border: 240 3.7% 15.9%;
- --sidebar-ring: 217.2 91.2% 59.8%;
- }
-}
-```
-
-Add the Sidebar tailwind config into `tailwind.config.js`
-
-Add the following object in the `theme.extend.colors` section of your `tailwind.config.js` file
-this config enable sidebar related style utilities like bg-sidebar
-
-```javascript title="tailwind.config.js"
-// ...
-sidebar: {
- DEFAULT: 'hsl(var(--sidebar-background))',
- foreground: 'hsl(var(--sidebar-foreground))',
- primary: 'hsl(var(--sidebar-primary))',
- 'primary-foreground': 'hsl(var(--sidebar-primary-foreground))',
- accent: 'hsl(var(--sidebar-accent))',
- 'accent-foreground': 'hsl(var(--sidebar-accent-foreground))',
- border: 'hsl(var(--sidebar-border))',
- ring: 'hsl(var(--sidebar-ring))',
-},
-// ...
-```
-
-
-
-
-
-
-
-## Structure
-
-A `Sidebar` component is composed of the following parts:
-
-- `SidebarProvider` - Handles collapsible state.
-- `Sidebar` - The sidebar container.
-- `SidebarHeader` and `SidebarFooter` - Sticky at the top and bottom of the sidebar.
-- `SidebarContent` - Scrollable content.
-- `SidebarGroup` - Section within the `SidebarContent`.
-- `SidebarTrigger` - Trigger for the `Sidebar`.
-
-
-
-
-## Usage
-
-```tsx showLineNumbers title="app/layout.tsx"
-import { SidebarProvider, SidebarTrigger } from "@/components/ui/sidebar"
-import { AppSidebar } from "@/components/app-sidebar"
-
-export default function Layout({ children }: { children: React.ReactNode }) {
- return (
-
-
-
-
- {children}
-
-
- )
-}
-```
-
-```tsx showLineNumbers title="components/app-sidebar.tsx"
-import {
- Sidebar,
- SidebarContent,
- SidebarFooter,
- SidebarGroup,
- SidebarHeader,
-} from "@/components/ui/sidebar"
-
-export function AppSidebar() {
- return (
-
-
-
-
-
-
-
-
- )
-}
-```
-
-## Your First Sidebar
-
-Let's start with the most basic sidebar. A collapsible sidebar with a menu.
-
-
-
-
- Add a `SidebarProvider` and `SidebarTrigger` at the root of your application.
-
-
-```tsx showLineNumbers title="app/layout.tsx"
-import { SidebarProvider, SidebarTrigger } from "@/components/ui/sidebar"
-import { AppSidebar } from "@/components/app-sidebar"
-
-export default function Layout({ children }: { children: React.ReactNode }) {
- return (
-
-
-
-
- {children}
-
-
- )
-}
-```
-
-Create a new sidebar component at `components/app-sidebar.tsx`.
-
-```tsx showLineNumbers title="components/app-sidebar.tsx"
-import { Sidebar, SidebarContent } from "@/components/ui/sidebar"
-
-export function AppSidebar() {
- return (
-
-
-
- )
-}
-```
-
-Now, let's add a `SidebarMenu` to the sidebar.
-
-We'll use the `SidebarMenu` component in a `SidebarGroup`.
-
-```tsx showLineNumbers title="components/app-sidebar.tsx"
-import { Calendar, Home, Inbox, Search, Settings } from "lucide-react"
-
-import {
- Sidebar,
- SidebarContent,
- SidebarGroup,
- SidebarGroupContent,
- SidebarGroupLabel,
- SidebarMenu,
- SidebarMenuButton,
- SidebarMenuItem,
-} from "@/components/ui/sidebar"
-
-// Menu items.
-const items = [
- {
- title: "Home",
- url: "#",
- icon: Home,
- },
- {
- title: "Inbox",
- url: "#",
- icon: Inbox,
- },
- {
- title: "Calendar",
- url: "#",
- icon: Calendar,
- },
- {
- title: "Search",
- url: "#",
- icon: Search,
- },
- {
- title: "Settings",
- url: "#",
- icon: Settings,
- },
-]
-
-export function AppSidebar() {
- return (
-
-
-
- Application
-
-
- {items.map((item) => (
-
-
-
-
- {item.title}
-
-
-
- ))}
-
-
-
-
-
- )
-}
-```
-
-You've created your first sidebar.
-
-
-
-
- Your first sidebar.
-
-
-
-
-
-## Components
-
-The components in `sidebar.tsx` are built to be composable i.e you build your sidebar by putting the provided components together. They also compose well with other shadcn/ui components such as `DropdownMenu`, `Collapsible` or `Dialog` etc.
-
-**If you need to change the code in `sidebar.tsx`, you are encouraged to do so. The code is yours. Use `sidebar.tsx` as a starting point and build your own.**
-
-In the next sections, we'll go over each component and how to use them.
-
-## SidebarProvider
-
-The `SidebarProvider` component is used to provide the sidebar context to the `Sidebar` component. You should always wrap your application in a `SidebarProvider` component.
-
-### Props
-
-| Name | Type | Description |
-| -------------- | ------------------------- | -------------------------------------------- |
-| `defaultOpen` | `boolean` | Default open state of the sidebar. |
-| `open` | `boolean` | Open state of the sidebar (controlled). |
-| `onOpenChange` | `(open: boolean) => void` | Sets open state of the sidebar (controlled). |
-
-### Width
-
-If you have a single sidebar in your application, you can use the `SIDEBAR_WIDTH` and `SIDEBAR_WIDTH_MOBILE` variables in `sidebar.tsx` to set the width of the sidebar.
-
-```tsx showLineNumbers title="components/ui/sidebar.tsx"
-const SIDEBAR_WIDTH = "16rem"
-const SIDEBAR_WIDTH_MOBILE = "18rem"
-```
-
-For multiple sidebars in your application, you can use the `style` prop to set the width of the sidebar.
-
-To set the width of the sidebar, you can use the `--sidebar-width` and `--sidebar-width-mobile` CSS variables in the `style` prop.
-
-```tsx showLineNumbers title="components/ui/sidebar.tsx"
-
-
-
-```
-
-This will handle the width of the sidebar but also the layout spacing.
-
-### Keyboard Shortcut
-
-The `SIDEBAR_KEYBOARD_SHORTCUT` variable is used to set the keyboard shortcut used to open and close the sidebar.
-
-To trigger the sidebar, you use the `cmd+b` keyboard shortcut on Mac and `ctrl+b` on Windows.
-
-You can change the keyboard shortcut by updating the `SIDEBAR_KEYBOARD_SHORTCUT` variable.
-
-```tsx showLineNumbers title="components/ui/sidebar.tsx"
-const SIDEBAR_KEYBOARD_SHORTCUT = "b"
-```
-
-### Persisted State
-
-The `SidebarProvider` supports persisting the sidebar state across page reloads and server-side rendering. It uses cookies to store the current state of the sidebar. When the sidebar state changes, a default cookie named `sidebar_state` is set with the current open/closed state. This cookie is then read on subsequent page loads to restore the sidebar state.
-
-To persist sidebar state in Next.js, set up your `SidebarProvider` in `app/layout.tsx` like this:
-
-```tsx showLineNumbers title="app/layout.tsx"
-import { cookies } from "next/headers"
-
-import { SidebarProvider, SidebarTrigger } from "@/components/ui/sidebar"
-import { AppSidebar } from "@/components/app-sidebar"
-
-export async function Layout({ children }: { children: React.ReactNode }) {
- const cookieStore = await cookies()
- const defaultOpen = cookieStore.get("sidebar_state")?.value === "true"
-
- return (
-
-
-
-
- {children}
-
-
- )
-}
-```
-
-You can change the name of the cookie by updating the `SIDEBAR_COOKIE_NAME` variable in `sidebar.tsx`.
-
-```tsx showLineNumbers title="components/ui/sidebar.tsx"
-const SIDEBAR_COOKIE_NAME = "sidebar_state"
-```
-
-## Sidebar
-
-The main `Sidebar` component used to render a collapsible sidebar.
-
-```tsx showLineNumbers
-import { Sidebar } from "@/components/ui/sidebar"
-
-export function AppSidebar() {
- return
-}
-```
-
-### Props
-
-| Property | Type | Description |
-| ------------- | --------------------------------- | --------------------------------- |
-| `side` | `left` or `right` | The side of the sidebar. |
-| `variant` | `sidebar`, `floating`, or `inset` | The variant of the sidebar. |
-| `collapsible` | `offcanvas`, `icon`, or `none` | Collapsible state of the sidebar. |
-
-### side
-
-Use the `side` prop to change the side of the sidebar.
-
-Available options are `left` and `right`.
-
-```tsx showLineNumbers
-import { Sidebar } from "@/components/ui/sidebar"
-
-export function AppSidebar() {
- return
-}
-```
-
-### variant
-
-Use the `variant` prop to change the variant of the sidebar.
-
-Available options are `sidebar`, `floating` and `inset`.
-
-```tsx showLineNumbers
-import { Sidebar } from "@/components/ui/sidebar"
-
-export function AppSidebar() {
- return
-}
-```
-
-
- **Note:** If you use the `inset` variant, remember to wrap your main content
- in a `SidebarInset` component.
-
-
-```tsx showLineNumbers
-
-
-
- {children}
-
-
-```
-
-### collapsible
-
-Use the `collapsible` prop to make the sidebar collapsible.
-
-Available options are `offcanvas`, `icon` and `none`.
-
-```tsx showLineNumbers
-import { Sidebar } from "@/components/ui/sidebar"
-
-export function AppSidebar() {
- return
-}
-```
-
-| Prop | Description |
-| ----------- | ------------------------------------------------------------ |
-| `offcanvas` | A collapsible sidebar that slides in from the left or right. |
-| `icon` | A sidebar that collapses to icons. |
-| `none` | A non-collapsible sidebar. |
-
-## useSidebar
-
-The `useSidebar` hook is used to control the sidebar.
-
-```tsx showLineNumbers
-import { useSidebar } from "@/components/ui/sidebar"
-
-export function AppSidebar() {
- const {
- state,
- open,
- setOpen,
- openMobile,
- setOpenMobile,
- isMobile,
- toggleSidebar,
- } = useSidebar()
-}
-```
-
-| Property | Type | Description |
-| --------------- | ------------------------- | --------------------------------------------- |
-| `state` | `expanded` or `collapsed` | The current state of the sidebar. |
-| `open` | `boolean` | Whether the sidebar is open. |
-| `setOpen` | `(open: boolean) => void` | Sets the open state of the sidebar. |
-| `openMobile` | `boolean` | Whether the sidebar is open on mobile. |
-| `setOpenMobile` | `(open: boolean) => void` | Sets the open state of the sidebar on mobile. |
-| `isMobile` | `boolean` | Whether the sidebar is on mobile. |
-| `toggleSidebar` | `() => void` | Toggles the sidebar. Desktop and mobile. |
-
-## SidebarHeader
-
-Use the `SidebarHeader` component to add a sticky header to the sidebar.
-
-The following example adds a `` to the `SidebarHeader`.
-
-
-
-
- A sidebar header with a dropdown menu.
-
-
-
-```tsx showLineNumbers title="components/app-sidebar.tsx"
-
-
-
-
-
-
-
- Select Workspace
-
-
-
-
-
- Acme Inc
-
-
- Acme Corp.
-
-
-
-
-
-
-
-```
-
-## SidebarFooter
-
-Use the `SidebarFooter` component to add a sticky footer to the sidebar.
-
-The following example adds a `` to the `SidebarFooter`.
-
-
-
-
- A sidebar footer with a dropdown menu.
-
-
-
-```tsx showLineNumbers title="components/app-sidebar.tsx"
-export function AppSidebar() {
- return (
-
-
-
-
-
-
-
-
-
-
- Username
-
-
-
-
-
- Account
-
-
- Billing
-
-
- Sign out
-
-
-
-
-
-
-
-
- )
-}
-```
-
-## SidebarContent
-
-The `SidebarContent` component is used to wrap the content of the sidebar. This is where you add your `SidebarGroup` components. It is scrollable.
-
-```tsx showLineNumbers
-import { Sidebar, SidebarContent } from "@/components/ui/sidebar"
-
-export function AppSidebar() {
- return (
-
-
-
-
-
-
- )
-}
-```
-
-## SidebarGroup
-
-Use the `SidebarGroup` component to create a section within the sidebar.
-
-A `SidebarGroup` has a `SidebarGroupLabel`, a `SidebarGroupContent` and an optional `SidebarGroupAction`.
-
-
-
-
- A sidebar group.
-
-
-
-```tsx showLineNumbers
-import { Sidebar, SidebarContent, SidebarGroup } from "@/components/ui/sidebar"
-
-export function AppSidebar() {
- return (
-
-
-
- Application
-
- Add Project
-
-
-
-
-
- )
-}
-```
-
-## Collapsible SidebarGroup
-
-To make a `SidebarGroup` collapsible, wrap it in a `Collapsible`.
-
-
-
-
- A collapsible sidebar group.
-
-
-
-```tsx showLineNumbers
-export function AppSidebar() {
- return (
-
-
-
-
- Help
-
-
-
-
-
-
-
-
- )
-}
-```
-
-
- **Note:** We wrap the `CollapsibleTrigger` in a `SidebarGroupLabel` to render
- a button.
-
-
-## SidebarGroupAction
-
-Use the `SidebarGroupAction` component to add an action button to the `SidebarGroup`.
-
-```tsx showLineNumbers {5-7}
-export function AppSidebar() {
- return (
-
- Projects
-
- Add Project
-
-
-
- )
-}
-```
-
-
-
-
- A sidebar group with an action button.
-
-
-
-## SidebarMenu
-
-The `SidebarMenu` component is used for building a menu within a `SidebarGroup`.
-
-A `SidebarMenu` component is composed of `SidebarMenuItem`, `SidebarMenuButton`, ` ` and ` ` components.
-
-
-
-
-Here's an example of a `SidebarMenu` component rendering a list of projects.
-
-
-
-
- A sidebar menu with a list of projects.
-
-
-
-```tsx showLineNumbers
-
-
-
- Projects
-
-
- {projects.map((project) => (
-
-
-
-
- {project.name}
-
-
-
- ))}
-
-
-
-
-
-```
-
-## SidebarMenuButton
-
-The `SidebarMenuButton` component is used to render a menu button within a `SidebarMenuItem`.
-
-### Link or Anchor
-
-By default, the `SidebarMenuButton` renders a button but you can use the `asChild` prop to render a different component such as a `Link` or an `a` tag.
-
-```tsx showLineNumbers
-
- Home
-
-```
-
-### Icon and Label
-
-You can render an icon and a truncated label inside the button. Remember to wrap the label in a ``.
-
-```tsx showLineNumbers
-
-
-
- Home
-
-
-```
-
-### isActive
-
-Use the `isActive` prop to mark a menu item as active.
-
-```tsx showLineNumbers
-
- Home
-
-```
-
-## SidebarMenuAction
-
-The `SidebarMenuAction` component is used to render a menu action within a `SidebarMenuItem`.
-
-This button works independently of the `SidebarMenuButton` i.e you can have the ` ` as a clickable link and the ` ` as a button.
-
-```tsx showLineNumbers
-
-
-
-
- Home
-
-
-
- Add Project
-
-
-```
-
-### DropdownMenu
-
-Here's an example of a `SidebarMenuAction` component rendering a `DropdownMenu`.
-
-
-
-
- A sidebar menu action with a dropdown menu.
-
-
-
-```tsx showLineNumbers
-
-
-
-
- Home
-
-
-
-
-
-
-
-
-
-
- Edit Project
-
-
- Delete Project
-
-
-
-
-```
-
-## SidebarMenuSub
-
-The `SidebarMenuSub` component is used to render a submenu within a `SidebarMenu`.
-
-Use ` ` and ` ` to render a submenu item.
-
-
-
-
- A sidebar menu with a submenu.
-
-
-
-```tsx showLineNumbers
-
-
-
-
-
-
-
-
-
-
-
-```
-
-## Collapsible SidebarMenu
-
-To make a `SidebarMenu` component collapsible, wrap it and the `SidebarMenuSub` components in a `Collapsible`.
-
-
-
-
- A collapsible sidebar menu.
-
-
-
-```tsx showLineNumbers
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-```
-
-## SidebarMenuBadge
-
-The `SidebarMenuBadge` component is used to render a badge within a `SidebarMenuItem`.
-
-
-
-
- A sidebar menu with a badge.
-
-
-
-```tsx showLineNumbers
-
-
- 24
-
-```
-
-## SidebarMenuSkeleton
-
-The `SidebarMenuSkeleton` component is used to render a skeleton for a `SidebarMenu`. You can use this to show a loading state when using React Server Components, SWR or react-query.
-
-```tsx showLineNumbers
-function NavProjectsSkeleton() {
- return (
-
- {Array.from({ length: 5 }).map((_, index) => (
-
-
-
- ))}
-
- )
-}
-```
-
-## SidebarSeparator
-
-The `SidebarSeparator` component is used to render a separator within a `Sidebar`.
-
-```tsx showLineNumbers
-
-
-
-
-
-
-
-
-
-```
-
-## SidebarTrigger
-
-Use the `SidebarTrigger` component to render a button that toggles the sidebar.
-
-The `SidebarTrigger` component must be used within a `SidebarProvider`.
-
-```tsx showLineNumbers
-
-
-
-
-
-
-```
-
-### Custom Trigger
-
-To create a custom trigger, you can use the `useSidebar` hook.
-
-```tsx showLineNumbers
-import { useSidebar } from "@/components/ui/sidebar"
-
-export function CustomTrigger() {
- const { toggleSidebar } = useSidebar()
-
- return Toggle Sidebar
-}
-```
-
-## SidebarRail
-
-The `SidebarRail` component is used to render a rail within a `Sidebar`. This rail can be used to toggle the sidebar.
-
-```tsx showLineNumbers
-
-
-
-
-
-
-
-
-```
-
-## Data Fetching
-
-### React Server Components
-
-Here's an example of a `SidebarMenu` component rendering a list of projects using React Server Components.
-
-
-
-
- A sidebar menu using React Server Components.
-
-
-
-```tsx showLineNumbers {6} title="Skeleton to show loading state."
-function NavProjectsSkeleton() {
- return (
-
- {Array.from({ length: 5 }).map((_, index) => (
-
-
-
- ))}
-
- )
-}
-```
-
-```tsx showLineNumbers {2} title="Server component fetching data."
-async function NavProjects() {
- const projects = await fetchProjects()
-
- return (
-
- {projects.map((project) => (
-
-
-
-
- {project.name}
-
-
-
- ))}
-
- )
-}
-```
-
-```tsx showLineNumbers {8-10} title="Usage with React Suspense."
-function AppSidebar() {
- return (
-
-
-
- Projects
-
- }>
-
-
-
-
-
-
- )
-}
-```
-
-### SWR and React Query
-
-You can use the same approach with [SWR](https://swr.vercel.app/) or [react-query](https://tanstack.com/query/latest/docs/framework/react/overview).
-
-```tsx showLineNumbers title="SWR"
-function NavProjects() {
- const { data, isLoading } = useSWR("/api/projects", fetcher)
-
- if (isLoading) {
- return (
-
- {Array.from({ length: 5 }).map((_, index) => (
-
-
-
- ))}
-
- )
- }
-
- if (!data) {
- return ...
- }
-
- return (
-
- {data.map((project) => (
-
-
-
-
- {project.name}
-
-
-
- ))}
-
- )
-}
-```
-
-```tsx showLineNumbers title="React Query"
-function NavProjects() {
- const { data, isLoading } = useQuery()
-
- if (isLoading) {
- return (
-
- {Array.from({ length: 5 }).map((_, index) => (
-
-
-
- ))}
-
- )
- }
-
- if (!data) {
- return ...
- }
-
- return (
-
- {data.map((project) => (
-
-
-
-
- {project.name}
-
-
-
- ))}
-
- )
-}
-```
-
-## Controlled Sidebar
-
-Use the `open` and `onOpenChange` props to control the sidebar.
-
-
-
-
- A controlled sidebar.
-
-
-
-```tsx showLineNumbers
-export function AppSidebar() {
- const [open, setOpen] = React.useState(false)
-
- return (
-
-
-
- )
-}
-```
-
-## Theming
-
-We use the following CSS variables to theme the sidebar.
-
-```css
-@layer base {
- :root {
- --sidebar-background: 0 0% 98%;
- --sidebar-foreground: 240 5.3% 26.1%;
- --sidebar-primary: 240 5.9% 10%;
- --sidebar-primary-foreground: 0 0% 98%;
- --sidebar-accent: 240 4.8% 95.9%;
- --sidebar-accent-foreground: 240 5.9% 10%;
- --sidebar-border: 220 13% 91%;
- --sidebar-ring: 217.2 91.2% 59.8%;
- }
-
- .dark {
- --sidebar-background: 240 5.9% 10%;
- --sidebar-foreground: 240 4.8% 95.9%;
- --sidebar-primary: 0 0% 98%;
- --sidebar-primary-foreground: 240 5.9% 10%;
- --sidebar-accent: 240 3.7% 15.9%;
- --sidebar-accent-foreground: 240 4.8% 95.9%;
- --sidebar-border: 240 3.7% 15.9%;
- --sidebar-ring: 217.2 91.2% 59.8%;
- }
-}
-```
-
-**We intentionally use different variables for the sidebar and the rest of the application** to make it easy to have a sidebar that is styled differently from the rest of the application. Think a sidebar with a darker shade from the main application.
-
-## Styling
-
-Here are some tips for styling the sidebar based on different states.
-
-- **Styling an element based on the sidebar collapsible state.** The following will hide the `SidebarGroup` when the sidebar is in `icon` mode.
-
-```tsx
-
-
-
-
-
-```
-
-- **Styling a menu action based on the menu button active state.** The following will force the menu action to be visible when the menu button is active.
-
-```tsx
-
-
-
-
-```
-
-You can find more tips on using states for styling in this [Twitter thread](https://x.com/shadcn/status/1842329158879420864).
-
-## Changelog
-
-### 2024-10-30 Cookie handling in setOpen
-
-- [#5593](https://github.com/shadcn-ui/ui/pull/5593) - Improved setOpen callback logic in ``.
-
-Update the `setOpen` callback in `` as follows:
-
-```tsx showLineNumbers
-const setOpen = React.useCallback(
- (value: boolean | ((value: boolean) => boolean)) => {
- const openState = typeof value === "function" ? value(open) : value
- if (setOpenProp) {
- setOpenProp(openState)
- } else {
- _setOpen(openState)
- }
-
- // This sets the cookie to keep the sidebar state.
- document.cookie = `${SIDEBAR_COOKIE_NAME}=${openState}; path=/; max-age=${SIDEBAR_COOKIE_MAX_AGE}`
- },
- [setOpenProp, open]
-)
-```
-
-### 2024-10-21 Fixed `text-sidebar-foreground`
-
-- [#5491](https://github.com/shadcn-ui/ui/pull/5491) - Moved `text-sidebar-foreground` from `` to `` component.
-
-### 2024-10-20 Typo in `useSidebar` hook.
-
-Fixed typo in `useSidebar` hook.
-
-```diff showLineNumbers title="sidebar.tsx"
-- throw new Error("useSidebar must be used within a Sidebar.")
-+ throw new Error("useSidebar must be used within a SidebarProvider.")
-```
diff --git a/deprecated/www/content/docs/components/skeleton.mdx b/deprecated/www/content/docs/components/skeleton.mdx
deleted file mode 100644
index 42429f581a..0000000000
--- a/deprecated/www/content/docs/components/skeleton.mdx
+++ /dev/null
@@ -1,58 +0,0 @@
----
-title: Skeleton
-description: Use to show a placeholder while content is loading.
-component: true
----
-
-
-
-## Installation
-
-
-
-
- CLI
- Manual
-
-
-
-```bash
-npx shadcn@latest add skeleton
-```
-
-
-
-
-
-
-
-Copy and paste the following code into your project.
-
-
-
-Update the import paths to match your project setup.
-
-
-
-
-
-
-
-## Usage
-
-```tsx
-import { Skeleton } from "@/components/ui/skeleton"
-```
-
-```tsx
-
-```
-
-## Examples
-
-### Card
-
-
diff --git a/deprecated/www/content/docs/components/slider.mdx b/deprecated/www/content/docs/components/slider.mdx
deleted file mode 100644
index f68c7239db..0000000000
--- a/deprecated/www/content/docs/components/slider.mdx
+++ /dev/null
@@ -1,58 +0,0 @@
----
-title: Slider
-description: An input where the user selects a value from within a given range.
-component: true
-links:
- doc: https://www.radix-ui.com/docs/primitives/components/slider
- api: https://www.radix-ui.com/docs/primitives/components/slider#api-reference
----
-
-
-
-## Installation
-
-
-
-
- CLI
- Manual
-
-
-
-```bash
-npx shadcn@latest add slider
-```
-
-
-
-
-
-
-
-Install the following dependencies:
-
-```bash
-npm install @radix-ui/react-slider
-```
-
-Copy and paste the following code into your project.
-
-
-
-Update the import paths to match your project setup.
-
-
-
-
-
-
-
-## Usage
-
-```tsx
-import { Slider } from "@/components/ui/slider"
-```
-
-```tsx
-
-```
diff --git a/deprecated/www/content/docs/components/sonner.mdx b/deprecated/www/content/docs/components/sonner.mdx
deleted file mode 100644
index c06f63a11c..0000000000
--- a/deprecated/www/content/docs/components/sonner.mdx
+++ /dev/null
@@ -1,101 +0,0 @@
----
-title: Sonner
-description: An opinionated toast component for React.
-component: true
-links:
- doc: https://sonner.emilkowal.ski
----
-
-
-
-## About
-
-Sonner is built and maintained by [emilkowalski\_](https://twitter.com/emilkowalski_).
-
-## Installation
-
-
-
-
- CLI
- Manual
-
-
-
-
-
-Run the following command:
-
-```bash
-npx shadcn@latest add sonner
-```
-
-Add the Toaster component
-
-```tsx title="app/layout.tsx" {1,9}
-import { Toaster } from "@/components/ui/sonner"
-
-export default function RootLayout({ children }) {
- return (
-
-
-
-
- {children}
-
-
- )
-}
-```
-
-
-
-
-
-
-
-
-
-Install the following dependencies:
-
-```bash
-npm install sonner next-themes
-```
-
-Copy and paste the following code into your project.
-
-
-
-Add the Toaster component
-
-```tsx title="app/layout.tsx" {1,9}
-import { Toaster } from "@/components/ui/sonner"
-
-export default function RootLayout({ children }) {
- return (
-
-
-
-
- {children}
-
-
- )
-}
-```
-
-
-
-
-
-
-
-## Usage
-
-```tsx
-import { toast } from "sonner"
-```
-
-```tsx
-toast("Event has been created.")
-```
diff --git a/deprecated/www/content/docs/components/switch.mdx b/deprecated/www/content/docs/components/switch.mdx
deleted file mode 100644
index 9a751576c0..0000000000
--- a/deprecated/www/content/docs/components/switch.mdx
+++ /dev/null
@@ -1,64 +0,0 @@
----
-title: Switch
-description: A control that allows the user to toggle between checked and not checked.
-component: true
-links:
- doc: https://www.radix-ui.com/docs/primitives/components/switch
- api: https://www.radix-ui.com/docs/primitives/components/switch#api-reference
----
-
-
-
-## Installation
-
-
-
-
- CLI
- Manual
-
-
-
-```bash
-npx shadcn@latest add switch
-```
-
-
-
-
-
-
-
-Install the following dependencies:
-
-```bash
-npm install @radix-ui/react-switch
-```
-
-Copy and paste the following code into your project.
-
-
-
-Update the import paths to match your project setup.
-
-
-
-
-
-
-
-## Usage
-
-```tsx
-import { Switch } from "@/components/ui/switch"
-```
-
-```tsx
-
-```
-
-## Examples
-
-### Form
-
-
diff --git a/deprecated/www/content/docs/components/table.mdx b/deprecated/www/content/docs/components/table.mdx
deleted file mode 100644
index 0c281351e9..0000000000
--- a/deprecated/www/content/docs/components/table.mdx
+++ /dev/null
@@ -1,83 +0,0 @@
----
-title: Table
-description: A responsive table component.
-component: true
----
-
-
-
-## Installation
-
-
-
-
- CLI
- Manual
-
-
-
-```bash
-npx shadcn@latest add table
-```
-
-
-
-
-
-
-
-Copy and paste the following code into your project.
-
-
-
-Update the import paths to match your project setup.
-
-
-
-
-
-
-
-## Usage
-
-```tsx
-import {
- Table,
- TableBody,
- TableCaption,
- TableCell,
- TableHead,
- TableHeader,
- TableRow,
-} from "@/components/ui/table"
-```
-
-```tsx
-
- A list of your recent invoices.
-
-
- Invoice
- Status
- Method
- Amount
-
-
-
-
- INV001
- Paid
- Credit Card
- $250.00
-
-
-
-```
-
-## Data Table
-
-You can use the `` component to build more complex data tables. Combine it with [@tanstack/react-table](https://tanstack.com/table/v8) to create tables with sorting, filtering and pagination.
-
-See the [Data Table](/docs/components/data-table) documentation for more information.
-
-You can also see an example of a data table in the [Tasks](/examples/tasks) demo.
diff --git a/deprecated/www/content/docs/components/tabs.mdx b/deprecated/www/content/docs/components/tabs.mdx
deleted file mode 100644
index 83807abefb..0000000000
--- a/deprecated/www/content/docs/components/tabs.mdx
+++ /dev/null
@@ -1,68 +0,0 @@
----
-title: Tabs
-description: A set of layered sections of content—known as tab panels—that are displayed one at a time.
-component: true
-links:
- doc: https://www.radix-ui.com/docs/primitives/components/tabs
- api: https://www.radix-ui.com/docs/primitives/components/tabs#api-reference
----
-
-
-
-## Installation
-
-
-
-
- CLI
- Manual
-
-
-
-```bash
-npx shadcn@latest add tabs
-```
-
-
-
-
-
-
-
-Install the following dependencies:
-
-```bash
-npm install @radix-ui/react-tabs
-```
-
-Copy and paste the following code into your project.
-
-
-
-Update the import paths to match your project setup.
-
-
-
-
-
-
-
-## Usage
-
-```tsx
-import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs"
-```
-
-```tsx
-
-
- Account
- Password
-
- Make changes to your account here.
- Change your password here.
-
-```
diff --git a/deprecated/www/content/docs/components/textarea.mdx b/deprecated/www/content/docs/components/textarea.mdx
deleted file mode 100644
index 58b0ebfb39..0000000000
--- a/deprecated/www/content/docs/components/textarea.mdx
+++ /dev/null
@@ -1,85 +0,0 @@
----
-title: Textarea
-description: Displays a form textarea or a component that looks like a textarea.
-component: true
----
-
-
-
-## Installation
-
-
-
-
- CLI
- Manual
-
-
-
-```bash
-npx shadcn@latest add textarea
-```
-
-
-
-
-
-
-
-Copy and paste the following code into your project.
-
-
-
-Update the import paths to match your project setup.
-
-
-
-
-
-
-
-## Usage
-
-```tsx
-import { Textarea } from "@/components/ui/textarea"
-```
-
-```tsx
-
-```
-
-## Examples
-
-### Default
-
-
-
-### Disabled
-
-
-
-### With Label
-
-
-
-### With Text
-
-
-
-### With Button
-
-
-
-### Form
-
-
diff --git a/deprecated/www/content/docs/components/toast.mdx b/deprecated/www/content/docs/components/toast.mdx
deleted file mode 100644
index 7d8fada05a..0000000000
--- a/deprecated/www/content/docs/components/toast.mdx
+++ /dev/null
@@ -1,160 +0,0 @@
----
-title: Toast
-description: A succinct message that is displayed temporarily.
-component: true
-links:
- doc: https://www.radix-ui.com/docs/primitives/components/toast
- api: https://www.radix-ui.com/docs/primitives/components/toast#api-reference
----
-
-
-
-We're deprecating the `toast` component in favor of `sonner` in projects using Tailwind v4 and React 19.
-[Read more](https://ui.shadcn.com/docs/tailwind-v4#whats-new)
-
-
-
-
-
-## Installation
-
-
-
-
- CLI
- Manual
-
-
-
-
-
-Run the following command:
-
-```bash
-npx shadcn@latest add toast
-```
-
-Add the Toaster component
-
-```tsx title="app/layout.tsx" {1,9}
-import { Toaster } from "@/components/ui/toaster"
-
-export default function RootLayout({ children }) {
- return (
-
-
-
- {children}
-
-
-
- )
-}
-```
-
-
-
-
-
-
-
-
-
-Install the following dependencies:
-
-```bash
-npm install @radix-ui/react-toast
-```
-
-Copy and paste the following code into your project.
-
-`toast.tsx`
-
-
-
-`toaster.tsx`
-
-
-
-`use-toast.tsx`
-
-
-
-Update the import paths to match your project setup.
-
-Add the Toaster component
-
-```tsx title="app/layout.tsx" {1,9}
-import { Toaster } from "@/components/ui/toaster"
-
-export default function RootLayout({ children }) {
- return (
-
-
-
- {children}
-
-
-
- )
-}
-```
-
-
-
-
-
-
-
-## Usage
-
-The `useToast` hook returns a `toast` function that you can use to display a toast.
-
-```tsx
-import { useToast } from "@/hooks/use-toast"
-```
-
-```tsx {2,7-10}
-export const ToastDemo = () => {
- const { toast } = useToast()
-
- return (
- {
- toast({
- title: "Scheduled: Catch up",
- description: "Friday, February 10, 2023 at 5:57 PM",
- })
- }}
- >
- Show Toast
-
- )
-}
-```
-
-
-
-To display multiple toasts at the same time, you can update the `TOAST_LIMIT` in `use-toast.tsx`.
-
-
-
-## Examples
-
-### Simple
-
-
-
-### With title
-
-
-
-### With Action
-
-
-
-### Destructive
-
-Use `toast({ variant: "destructive" })` to display a destructive toast.
-
-
diff --git a/deprecated/www/content/docs/components/toggle-group.mdx b/deprecated/www/content/docs/components/toggle-group.mdx
deleted file mode 100644
index 53734afa85..0000000000
--- a/deprecated/www/content/docs/components/toggle-group.mdx
+++ /dev/null
@@ -1,109 +0,0 @@
----
-title: Toggle Group
-description: A set of two-state buttons that can be toggled on or off.
-component: true
-links:
- doc: https://www.radix-ui.com/docs/primitives/components/toggle-group
- api: https://www.radix-ui.com/docs/primitives/components/toggle-group#api-reference
----
-
-
-
-## Installation
-
-
-
-
- CLI
- Manual
-
-
-
-```bash
-npx shadcn@latest add toggle-group
-```
-
-
-
-
-
-
-
-Install the following dependencies:
-
-```bash
-npm install @radix-ui/react-toggle-group
-```
-
-Copy and paste the following code into your project.
-
-
-
-Update the import paths to match your project setup.
-
-
-
-
-
-
-
-## Usage
-
-```tsx
-import { ToggleGroup, ToggleGroupItem } from "@/components/ui/toggle-group"
-```
-
-```tsx
-
- A
- B
- C
-
-```
-
-## Examples
-
-### Default
-
-
-
-### Outline
-
-
-
-### Single
-
-
-
-### Small
-
-
-
-### Large
-
-
-
-### Disabled
-
-
diff --git a/deprecated/www/content/docs/components/toggle.mdx b/deprecated/www/content/docs/components/toggle.mdx
deleted file mode 100644
index 56696b0fe8..0000000000
--- a/deprecated/www/content/docs/components/toggle.mdx
+++ /dev/null
@@ -1,93 +0,0 @@
----
-title: Toggle
-description: A two-state button that can be either on or off.
-component: true
-links:
- doc: https://www.radix-ui.com/docs/primitives/components/toggle
- api: https://www.radix-ui.com/docs/primitives/components/toggle#api-reference
----
-
-
-
-## Installation
-
-
-
-
- CLI
- Manual
-
-
-
-```bash
-npx shadcn@latest add toggle
-```
-
-
-
-
-
-
-
-Install the following dependencies:
-
-```bash
-npm install @radix-ui/react-toggle
-```
-
-Copy and paste the following code into your project.
-
-
-
-Update the import paths to match your project setup.
-
-
-
-
-
-
-
-## Usage
-
-```tsx
-import { Toggle } from "@/components/ui/toggle"
-```
-
-```tsx
-Toggle
-```
-
-## Examples
-
-### Default
-
-
-
-### Outline
-
-
-
-### With Text
-
-
-
-### Small
-
-
-
-### Large
-
-
-
-### Disabled
-
-
diff --git a/deprecated/www/content/docs/components/tooltip.mdx b/deprecated/www/content/docs/components/tooltip.mdx
deleted file mode 100644
index bce711b8c2..0000000000
--- a/deprecated/www/content/docs/components/tooltip.mdx
+++ /dev/null
@@ -1,70 +0,0 @@
----
-title: Tooltip
-description: A popup that displays information related to an element when the element receives keyboard focus or the mouse hovers over it.
-component: true
-links:
- doc: https://www.radix-ui.com/docs/primitives/components/tooltip
- api: https://www.radix-ui.com/docs/primitives/components/tooltip#api-reference
----
-
-
-
-## Installation
-
-
-
-
- CLI
- Manual
-
-
-
-```bash
-npx shadcn@latest add tooltip
-```
-
-
-
-
-
-
-
-Install the following dependencies:
-
-```bash
-npm install @radix-ui/react-tooltip
-```
-
-Copy and paste the following code into your project.
-
-
-
-Update the import paths to match your project setup.
-
-
-
-
-
-
-
-## Usage
-
-```tsx
-import {
- Tooltip,
- TooltipContent,
- TooltipProvider,
- TooltipTrigger,
-} from "@/components/ui/tooltip"
-```
-
-```tsx
-
-
- Hover
-
- Add to library
-
-
-
-```
diff --git a/deprecated/www/content/docs/components/typography.mdx b/deprecated/www/content/docs/components/typography.mdx
deleted file mode 100644
index 419d20cfd5..0000000000
--- a/deprecated/www/content/docs/components/typography.mdx
+++ /dev/null
@@ -1,63 +0,0 @@
----
-title: Typography
-description: Styles for headings, paragraphs, lists...etc
-component: true
----
-
-
-
-## h1
-
-
-
-## h2
-
-
-
-## h3
-
-
-
-## h4
-
-
-
-## p
-
-
-
-## blockquote
-
-
-
-## table
-
-
-
-## list
-
-
-
-## Inline code
-
-
-
-## Lead
-
-
-
-## Large
-
-
-
-## Small
-
-
-
-## Muted
-
-
diff --git a/deprecated/www/content/docs/dark-mode/astro.mdx b/deprecated/www/content/docs/dark-mode/astro.mdx
deleted file mode 100644
index b1579f0faf..0000000000
--- a/deprecated/www/content/docs/dark-mode/astro.mdx
+++ /dev/null
@@ -1,120 +0,0 @@
----
-title: Astro
-description: Adding dark mode to your astro app.
----
-
-## Dark mode
-
-
-
-### Create an inline theme script
-
-```astro title="src/pages/index.astro"
----
-import '../styles/globals.css'
----
-
-
-
-
-
- Astro
-
-
-```
-
-### Add a mode toggle
-
-```tsx title="src/components/ModeToggle.tsx"
-import * as React from "react"
-import { Moon, Sun } from "lucide-react"
-
-import { Button } from "@/components/ui/button"
-import {
- DropdownMenu,
- DropdownMenuContent,
- DropdownMenuItem,
- DropdownMenuTrigger,
-} from "@/components/ui/dropdown-menu"
-
-export function ModeToggle() {
- const [theme, setThemeState] = React.useState<
- "theme-light" | "dark" | "system"
- >("theme-light")
-
- React.useEffect(() => {
- const isDarkMode = document.documentElement.classList.contains("dark")
- setThemeState(isDarkMode ? "dark" : "theme-light")
- }, [])
-
- React.useEffect(() => {
- const isDark =
- theme === "dark" ||
- (theme === "system" &&
- window.matchMedia("(prefers-color-scheme: dark)").matches)
- document.documentElement.classList[isDark ? "add" : "remove"]("dark")
- }, [theme])
-
- return (
-
-
-
-
-
- Toggle theme
-
-
-
- setThemeState("theme-light")}>
- Light
-
- setThemeState("dark")}>
- Dark
-
- setThemeState("system")}>
- System
-
-
-
- )
-}
-```
-
-### Display the mode toggle
-
-Place a mode toggle on your site to toggle between light and dark mode.
-
-```astro title="src/pages/index.astro"
----
-import '../styles/globals.css'
-import { ModeToggle } from '@/components/ModeToggle';
----
-
-
-
-
-
- Astro
-
-
-
-```
-
-
diff --git a/deprecated/www/content/docs/dark-mode/index.mdx b/deprecated/www/content/docs/dark-mode/index.mdx
deleted file mode 100644
index 73c528e800..0000000000
--- a/deprecated/www/content/docs/dark-mode/index.mdx
+++ /dev/null
@@ -1,59 +0,0 @@
----
-title: Dark Mode
-description: Adding dark mode to your site.
----
-
-
-
-
- Next.js
-
-
- Next.js
-
-
-
- Vite
-
-
- Vite
-
-
-
-
-
-
- Astro
-
-
-
- Remix
-
-
- Remix
-
-
diff --git a/deprecated/www/content/docs/dark-mode/next.mdx b/deprecated/www/content/docs/dark-mode/next.mdx
deleted file mode 100644
index 0b8180f4f3..0000000000
--- a/deprecated/www/content/docs/dark-mode/next.mdx
+++ /dev/null
@@ -1,68 +0,0 @@
----
-title: Next.js
-description: Adding dark mode to your next app.
----
-
-## Dark mode
-
-
-
-### Install next-themes
-
-Start by installing `next-themes`:
-
-```bash
-npm install next-themes
-```
-
-### Create a theme provider
-
-```tsx title="components/theme-provider.tsx"
-"use client"
-
-import * as React from "react"
-import { ThemeProvider as NextThemesProvider } from "next-themes"
-
-export function ThemeProvider({
- children,
- ...props
-}: React.ComponentProps) {
- return {children}
-}
-```
-
-### Wrap your root layout
-
-Add the `ThemeProvider` to your root layout and add the `suppressHydrationWarning` prop to the `html` tag.
-
-```tsx {1,6,9-14,16} title="app/layout.tsx"
-import { ThemeProvider } from "@/components/theme-provider"
-
-export default function RootLayout({ children }: RootLayoutProps) {
- return (
- <>
-
-
-
-
- {children}
-
-
-
- >
- )
-}
-```
-
-### Add a mode toggle
-
-Place a mode toggle on your site to toggle between light and dark mode.
-
-
-
-
diff --git a/deprecated/www/content/docs/dark-mode/remix.mdx b/deprecated/www/content/docs/dark-mode/remix.mdx
deleted file mode 100644
index 2b523c5d42..0000000000
--- a/deprecated/www/content/docs/dark-mode/remix.mdx
+++ /dev/null
@@ -1,159 +0,0 @@
----
-title: Remix
-description: Adding dark mode to your remix app.
----
-
-## Dark mode
-
-
-
-### Modify your tailwind.css file
-
-Add `:root[class~="dark"]` to your tailwind.css file. This will allow you to use the `dark` class on your html element to apply dark mode styles.
-
-```css {2} title="app/tailwind.css"
-.dark,
-:root[class~="dark"] {
- ...;
-}
-```
-
-### Install remix-themes
-
-Start by installing `remix-themes`:
-
-```bash
-npm install remix-themes
-```
-
-### Create a session storage and theme session resolver
-
-```tsx title="app/sessions.server.tsx"
-import { createThemeSessionResolver } from "remix-themes"
-
-// You can default to 'development' if process.env.NODE_ENV is not set
-const isProduction = process.env.NODE_ENV === "production"
-
-const sessionStorage = createCookieSessionStorage({
- cookie: {
- name: "theme",
- path: "/",
- httpOnly: true,
- sameSite: "lax",
- secrets: ["s3cr3t"],
- // Set domain and secure only if in production
- ...(isProduction
- ? { domain: "your-production-domain.com", secure: true }
- : {}),
- },
-})
-
-export const themeSessionResolver = createThemeSessionResolver(sessionStorage)
-```
-
-### Set up Remix Themes
-
-Add the `ThemeProvider` to your root layout.
-
-```tsx {1-3,6-11,15-22,25-26,28,33} title="app/root.tsx"
-import clsx from "clsx"
-import { PreventFlashOnWrongTheme, ThemeProvider, useTheme } from "remix-themes"
-
-import { themeSessionResolver } from "./sessions.server"
-
-// Return the theme from the session storage using the loader
-export async function loader({ request }: LoaderFunctionArgs) {
- const { getTheme } = await themeSessionResolver(request)
- return {
- theme: getTheme(),
- }
-}
-// Wrap your app with ThemeProvider.
-// `specifiedTheme` is the stored theme in the session storage.
-// `themeAction` is the action name that's used to change the theme in the session storage.
-export default function AppWithProviders() {
- const data = useLoaderData()
- return (
-
-
-
- )
-}
-
-export function App() {
- const data = useLoaderData()
- const [theme] = useTheme()
- return (
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- )
-}
-```
-
-### Add an action route
-
-Create a file in `/routes/action.set-theme.ts`. Ensure that you pass the filename to the ThemeProvider component. This route it's used to store the preferred theme in the session storage when the user changes it.
-
-```tsx title="app/routes/action.set-theme.ts"
-import { createThemeAction } from "remix-themes"
-
-import { themeSessionResolver } from "./sessions.server"
-
-export const action = createThemeAction(themeSessionResolver)
-```
-
-### Add a mode toggle
-
-Place a mode toggle on your site to toggle between light and dark mode.
-
-```tsx title="components/mode-toggle.tsx"
-import { Moon, Sun } from "lucide-react"
-import { Theme, useTheme } from "remix-themes"
-
-import { Button } from "./ui/button"
-import {
- DropdownMenu,
- DropdownMenuContent,
- DropdownMenuItem,
- DropdownMenuTrigger,
-} from "./ui/dropdown-menu"
-
-export function ModeToggle() {
- const [, setTheme] = useTheme()
-
- return (
-
-
-
-
-
- Toggle theme
-
-
-
- setTheme(Theme.LIGHT)}>
- Light
-
- setTheme(Theme.DARK)}>
- Dark
-
-
-
- )
-}
-```
-
-
diff --git a/deprecated/www/content/docs/dark-mode/vite.mdx b/deprecated/www/content/docs/dark-mode/vite.mdx
deleted file mode 100644
index 4617f4295e..0000000000
--- a/deprecated/www/content/docs/dark-mode/vite.mdx
+++ /dev/null
@@ -1,150 +0,0 @@
----
-title: Vite
-description: Adding dark mode to your vite app.
----
-
-## Dark mode
-
-
-
-### Create a theme provider
-
-```tsx title="components/theme-provider.tsx"
-import { createContext, useContext, useEffect, useState } from "react"
-
-type Theme = "dark" | "light" | "system"
-
-type ThemeProviderProps = {
- children: React.ReactNode
- defaultTheme?: Theme
- storageKey?: string
-}
-
-type ThemeProviderState = {
- theme: Theme
- setTheme: (theme: Theme) => void
-}
-
-const initialState: ThemeProviderState = {
- theme: "system",
- setTheme: () => null,
-}
-
-const ThemeProviderContext = createContext(initialState)
-
-export function ThemeProvider({
- children,
- defaultTheme = "system",
- storageKey = "vite-ui-theme",
- ...props
-}: ThemeProviderProps) {
- const [theme, setTheme] = useState(
- () => (localStorage.getItem(storageKey) as Theme) || defaultTheme
- )
-
- useEffect(() => {
- const root = window.document.documentElement
-
- root.classList.remove("light", "dark")
-
- if (theme === "system") {
- const systemTheme = window.matchMedia("(prefers-color-scheme: dark)")
- .matches
- ? "dark"
- : "light"
-
- root.classList.add(systemTheme)
- return
- }
-
- root.classList.add(theme)
- }, [theme])
-
- const value = {
- theme,
- setTheme: (theme: Theme) => {
- localStorage.setItem(storageKey, theme)
- setTheme(theme)
- },
- }
-
- return (
-
- {children}
-
- )
-}
-
-export const useTheme = () => {
- const context = useContext(ThemeProviderContext)
-
- if (context === undefined)
- throw new Error("useTheme must be used within a ThemeProvider")
-
- return context
-}
-```
-
-### Wrap your root layout
-
-Add the `ThemeProvider` to your root layout.
-
-```tsx {1,5-7} title="App.tsx"
-import { ThemeProvider } from "@/components/theme-provider"
-
-function App() {
- return (
-
- {children}
-
- )
-}
-
-export default App
-```
-
-### Add a mode toggle
-
-Place a mode toggle on your site to toggle between light and dark mode.
-
-```tsx title="components/mode-toggle.tsx"
-import { Moon, Sun } from "lucide-react"
-
-import { Button } from "@/components/ui/button"
-import {
- DropdownMenu,
- DropdownMenuContent,
- DropdownMenuItem,
- DropdownMenuTrigger,
-} from "@/components/ui/dropdown-menu"
-import { useTheme } from "@/components/theme-provider"
-
-export function ModeToggle() {
- const { setTheme } = useTheme()
-
- return (
-
-
-
-
-
- Toggle theme
-
-
-
- setTheme("light")}>
- Light
-
- setTheme("dark")}>
- Dark
-
- setTheme("system")}>
- System
-
-
-
- )
-}
-```
-
-
diff --git a/deprecated/www/content/docs/figma.mdx b/deprecated/www/content/docs/figma.mdx
deleted file mode 100644
index 6e7539975d..0000000000
--- a/deprecated/www/content/docs/figma.mdx
+++ /dev/null
@@ -1,14 +0,0 @@
----
-title: Figma
-description: Every component recreated in Figma. With customizable props, typography and icons.
----
-
-## Paid
-
-- [shadcn/ui kit](https://shadcndesign.com) by [ Matt Wierzbicki](https://x.com/matsugfx) - A premium, always up-to-date UI kit for Figma - shadcn/ui compatible and optimized for smooth design-to-dev handoff.
-- [Shadcraft UI Kit](https://shadcraft.com) - The most advanced shadcn-compatible kit with instant theming via [tweakcn](https://tweakcn.com), a pro library of components and templates, and complete coverage of shadcn components and blocks.
-
-## Free
-
-- [shadcn/ui design system](https://www.figma.com/community/file/1203061493325953101) by [Pietro Schirano](https://twitter.com/skirano) - A design companion for shadcn/ui. Each component was painstakingly crafted to perfectly match the code implementation.
-- [Obra shadcn/ui](https://www.figma.com/community/file/1514746685758799870/obra-shadcn-ui) by [Obra Studio](https://https://obra.studio/) - Carefully crafted kit designed in the philosophy of shadcn, tracks v4, MIT licensed
diff --git a/deprecated/www/content/docs/index.mdx b/deprecated/www/content/docs/index.mdx
deleted file mode 100644
index b35634805e..0000000000
--- a/deprecated/www/content/docs/index.mdx
+++ /dev/null
@@ -1,77 +0,0 @@
----
-title: Introduction
-description: shadcn/ui is a set of beautifully-designed, accessible components and a code distribution platform. Works with your favorite frameworks and AI models. Open Source. Open Code.
----
-
-**This is not a component library. It is how you build your component library.**
-
-You know how most traditional component libraries work: you install a package from NPM, import the components, and use them in your app.
-
-This approach works well until you need to customize a component to fit your design system or require one that isn’t included in the library. **Often, you end up wrapping library components, writing workarounds to override styles, or mixing components from different libraries with incompatible APIs.**
-
-This is what shadcn/ui aims to solve. It is built around the following principles:
-
-- **Open Code:** The top layer of your component code is open for modification.
-- **Composition:** Every component uses a common, composable interface, making them predictable.
-- **Distribution:** A flat-file schema and command-line tool make it easy to distribute components.
-- **Beautiful Defaults:** Carefully chosen default styles, so you get great design out-of-the-box.
-- **AI-Ready:** Open code for LLMs to read, understand, and improve.
-
-## Open Code
-
-shadcn/ui hands you the actual component code. You have full control to customize and extend the components to your needs. This means:
-
-- **Full Transparency:** You see exactly how each component is built.
-- **Easy Customization:** Modify any part of a component to fit your design and functionality requirements.
-- **AI Integration:** Access to the code makes it straightforward for LLMs to read, understand, and even improve your components.
-
-_In a typical library, if you need to change a button’s behavior, you have to override styles or wrap the component. With shadcn/ui, you simply edit the button code directly._
-
-
-
-
- How do I pull upstream updates in an Open Code approach?
-
-
-
- shadcn/ui follows a headless component architecture. This means the core
- of your app can receive fixes by updating your dependencies, for
- instance, radix-ui or input-otp.
-
-
- The topmost layer, i.e., the one closest to your design system, is not
- coupled with the implementation of the library. It stays open for
- modification.
-
-
-
-
-
-## Composition
-
-Every component in shadcn/ui shares a common, composable interface. **If a component does not exist, we bring it in, make it composable, and adjust its style to match and work with the rest of the design system.**
-
-_A shared, composable interface means it's predictable for both your team and LLMs. You are not learning different APIs for every new component. Even for third-party ones._
-
-## Distribution
-
-shadcn/ui is also a code distribution system. It defines a schema for components and a CLI to distribute them.
-
-- **Schema:** A flat-file structure that defines the components, their dependencies, and properties.
-- **CLI:** A command-line tool to distribute and install components across projects with cross-framework support.
-
-_You can use the schema to distribute your components to other projects or have AI generate completely new components based on existing schema._
-
-## Beautiful Defaults
-
-shadcn/ui comes with a large collection of components that have carefully chosen default styles. They are designed to look good on their own and to work well together as a consistent system:
-
-- **Good Out-of-the-Box:** Your UI has a clean and minimal look without extra work.
-- **Unified Design:** Components naturally fit with one another. Each component is built to match the others, keeping your UI consistent.
-- **Easily Customizable:** If you want to change something, it's simple to override and extend the defaults.
-
-## AI-Ready
-
-The design of shadcn/ui makes it easy for AI tools to work with your code. Its open code and consistent API allow AI models to read, understand, and even generate new components.
-
-_An AI model can learn how your components work and suggest improvements or even create new components that integrate with your existing design._
diff --git a/deprecated/www/content/docs/installation/astro.mdx b/deprecated/www/content/docs/installation/astro.mdx
deleted file mode 100644
index 6ab9f22780..0000000000
--- a/deprecated/www/content/docs/installation/astro.mdx
+++ /dev/null
@@ -1,80 +0,0 @@
----
-title: Astro
-description: Install and configure shadcn/ui for Astro
----
-
-
- **Note:** The following guide is for Tailwind v4. If you are using Tailwind
- v3, use `shadcn@2.3.0`.
-
-
-
-
-### Create project
-
-Start by creating a new Astro project:
-
-```bash
-npx create-astro@latest astro-app --template with-tailwindcss --install --add react --git
-```
-
-### Edit tsconfig.json file
-
-Add the following code to the `tsconfig.json` file to resolve paths:
-
-```ts title="tsconfig.json" {4-9} showLineNumbers
-{
- "compilerOptions": {
- // ...
- "baseUrl": ".",
- "paths": {
- "@/*": [
- "./src/*"
- ]
- }
- // ...
- }
-}
-```
-
-### Run the CLI
-
-Run the `shadcn` init command to setup your project:
-
-```bash
-npx shadcn@latest init
-```
-
-### Add Components
-
-You can now start adding components to your project.
-
-```bash
-npx shadcn@latest add button
-```
-
-The command above will add the `Button` component to your project. You can then import it like this:
-
-```astro title="src/pages/index.astro" {2,16} showLineNumbers
----
-import { Button } from "@/components/ui/button"
----
-
-
-
-
-
-
-
- Astro + TailwindCSS
-
-
-
-
- Button
-
-
-
-```
-
-
diff --git a/deprecated/www/content/docs/installation/gatsby.mdx b/deprecated/www/content/docs/installation/gatsby.mdx
deleted file mode 100644
index 9b6dbf9ff2..0000000000
--- a/deprecated/www/content/docs/installation/gatsby.mdx
+++ /dev/null
@@ -1,126 +0,0 @@
----
-title: Gatsby
-description: Install and configure Gatsby.
----
-
-
- **Update:** We have added full support for React 19 and Tailwind v4 in the
- `canary` release. See the docs for [Tailwind v4](/docs/tailwind-v4) for more
- information.
-
-
-
-
-### Create project
-
-Start by creating a new Gatsby project using `create-gatsby`:
-
-```bash
-npm init gatsby
-```
-
-### Configure your Gatsby project to use TypeScript and Tailwind CSS
-
-You will be asked a few questions to configure your project:
-
-```txt showLineNumbers
-✔ What would you like to call your site?
-· your-app-name
-✔ What would you like to name the folder where your site will be created?
-· your-app-name
-✔ Will you be using JavaScript or TypeScript?
-· TypeScript
-✔ Will you be using a CMS?
-· Choose whatever you want
-✔ Would you like to install a styling system?
-· Tailwind CSS
-✔ Would you like to install additional features with other plugins?
-· Choose whatever you want
-✔ Shall we do this? (Y/n) · Yes
-```
-
-### Edit tsconfig.json file
-
-Add the following code to the `tsconfig.json` file to resolve paths:
-
-```ts {4-9} showLineNumbers
-{
- "compilerOptions": {
- // ...
- "baseUrl": ".",
- "paths": {
- "@/*": [
- "./src/*"
- ]
- }
- // ...
- }
-}
-```
-
-### Create gatsby-node.ts file
-
-Create a `gatsby-node.ts` file at the root of your project if it doesn’t already exist, and add the code below to the `gatsby-node` file so your app can resolve paths:
-
-```ts
-import * as path from "path"
-
-export const onCreateWebpackConfig = ({ actions }) => {
- actions.setWebpackConfig({
- resolve: {
- alias: {
- "@/components": path.resolve(__dirname, "src/components"),
- "@/lib/utils": path.resolve(__dirname, "src/lib/utils"),
- },
- },
- })
-}
-```
-
-### Run the CLI
-
-Run the `shadcn` init command to setup your project:
-
-```bash
-npx shadcn@latest init
-```
-
-### Configure components.json
-
-You will be asked a few questions to configure `components.json`:
-
-```txt showLineNumbers
-Would you like to use TypeScript (recommended)? no / yes
-Which style would you like to use? › Default
-Which color would you like to use as base color? › Slate
-Where is your global CSS file? › › ./src/styles/globals.css
-Do you want to use CSS variables for colors? › no / yes
-Where is your tailwind.config.js located? › tailwind.config.js
-Configure the import alias for components: › @/components
-Configure the import alias for utils: › @/lib/utils
-Are you using React Server Components? › no
-```
-
-### That's it
-
-You can now start adding components to your project.
-
-```bash
-npx shadcn@latest add button
-```
-
-The command above will add the `Button` component to your project. You can then import it like this:
-
-```tsx {1,6} showLineNumbers
-import { Button } from "@/components/ui/button"
-
-export default function Home() {
- return (
-
- Click me
-
- )
-}
-```
-
-
diff --git a/deprecated/www/content/docs/installation/index.mdx b/deprecated/www/content/docs/installation/index.mdx
deleted file mode 100644
index dcb34583d5..0000000000
--- a/deprecated/www/content/docs/installation/index.mdx
+++ /dev/null
@@ -1,164 +0,0 @@
----
-title: Installation
-description: How to install dependencies and structure your app.
----
-
-## Frameworks
-
-
-
-
- Next.js
-
-
- Next.js
-
-
-
- Vite
-
-
- Vite
-
-
-
-
-
- Laravel
-
-
-
-
-
- React Router
-
-
-
- Astro
-
-
- Astro
-
-
-
- Laravel
-
-
- TanStack Start
-
-
-
- TanStack Start
-
-
- TanStack Router
-
-
-
- Gatsby
-
-
- Gatsby
-
-
-
- React
-
-
- Manual
-
-
-
-## TypeScript
-
-This project and the components are written in TypeScript. We recommend using TypeScript for your project as well.
-
-However we provide a JavaScript version of the components as well. The JavaScript version is available via the [cli](/docs/cli).
-
-To opt-out of TypeScript, you can use the `tsx` flag in your `components.json` file.
-
-```json {10} title="components.json"
-{
- "style": "default",
- "tailwind": {
- "config": "tailwind.config.js",
- "css": "src/app/globals.css",
- "baseColor": "zinc",
- "cssVariables": true
- },
- "rsc": false,
- "tsx": false,
- "aliases": {
- "utils": "~/lib/utils",
- "components": "~/components"
- }
-}
-```
-
-To configure import aliases, you can use the following `jsconfig.json`:
-
-```json {4} title="jsconfig.json"
-{
- "compilerOptions": {
- "paths": {
- "@/*": ["./*"]
- }
- }
-}
-```
diff --git a/deprecated/www/content/docs/installation/laravel.mdx b/deprecated/www/content/docs/installation/laravel.mdx
deleted file mode 100644
index 612f0ee809..0000000000
--- a/deprecated/www/content/docs/installation/laravel.mdx
+++ /dev/null
@@ -1,45 +0,0 @@
----
-title: Laravel
-description: Install and configure shadcn/ui for Laravel
----
-
-
- **Note:** The following guide is for Tailwind v4. If you are using Tailwind
- v3, use `shadcn@2.3.0`.
-
-
-
-
-### Create project
-
-Start by creating a new Laravel project with Inertia and React using the laravel installer `laravel new my-app`:
-
-```bash
-laravel new my-app --react
-```
-
-### Add Components
-
-You can now start adding components to your project.
-
-```bash
-npx shadcn@latest add switch
-```
-
-The command above will add the `Switch` component to `resources/js/components/ui/switch.tsx`. You can then import it like this:
-
-```tsx {1,6} showLineNumbers
-import { Switch } from "@/components/ui/switch"
-
-const MyPage = () => {
- return (
-
-
-
- )
-}
-
-export default MyPage
-```
-
-
diff --git a/deprecated/www/content/docs/installation/manual.mdx b/deprecated/www/content/docs/installation/manual.mdx
deleted file mode 100644
index ad775bdb82..0000000000
--- a/deprecated/www/content/docs/installation/manual.mdx
+++ /dev/null
@@ -1,212 +0,0 @@
----
-title: Manual Installation
-description: Add dependencies to your project manually.
----
-
-
-
-### Add Tailwind CSS
-
-Components are styled using Tailwind CSS. You need to install Tailwind CSS in your project.
-
-[Follow the Tailwind CSS installation instructions to get started.](https://tailwindcss.com/docs/installation)
-
-### Add dependencies
-
-Add the following dependencies to your project:
-
-```bash
-npm install class-variance-authority clsx tailwind-merge lucide-react tw-animate-css
-```
-
-### Configure path aliases
-
-Configure the path aliases in your `tsconfig.json` file.
-
-```json {3-6} title="tsconfig.json" showLineNumbers
-{
- "compilerOptions": {
- "baseUrl": ".",
- "paths": {
- "@/*": ["./*"]
- }
- }
-}
-```
-
-The `@` alias is a preference. You can use other aliases if you want.
-
-### Configure styles
-
-Add the following to your styles/globals.css file. You can learn more about using CSS variables for theming in the [theming section](/docs/theming).
-
-```css showLineNumbers title="src/styles/globals.css"
-@import "tailwindcss";
-@import "tw-animate-css";
-
-@custom-variant dark (&:is(.dark *));
-
-:root {
- --background: oklch(1 0 0);
- --foreground: oklch(0.145 0 0);
- --card: oklch(1 0 0);
- --card-foreground: oklch(0.145 0 0);
- --popover: oklch(1 0 0);
- --popover-foreground: oklch(0.145 0 0);
- --primary: oklch(0.205 0 0);
- --primary-foreground: oklch(0.985 0 0);
- --secondary: oklch(0.97 0 0);
- --secondary-foreground: oklch(0.205 0 0);
- --muted: oklch(0.97 0 0);
- --muted-foreground: oklch(0.556 0 0);
- --accent: oklch(0.97 0 0);
- --accent-foreground: oklch(0.205 0 0);
- --destructive: oklch(0.577 0.245 27.325);
- --destructive-foreground: oklch(0.577 0.245 27.325);
- --border: oklch(0.922 0 0);
- --input: oklch(0.922 0 0);
- --ring: oklch(0.708 0 0);
- --chart-1: oklch(0.646 0.222 41.116);
- --chart-2: oklch(0.6 0.118 184.704);
- --chart-3: oklch(0.398 0.07 227.392);
- --chart-4: oklch(0.828 0.189 84.429);
- --chart-5: oklch(0.769 0.188 70.08);
- --radius: 0.625rem;
- --sidebar: oklch(0.985 0 0);
- --sidebar-foreground: oklch(0.145 0 0);
- --sidebar-primary: oklch(0.205 0 0);
- --sidebar-primary-foreground: oklch(0.985 0 0);
- --sidebar-accent: oklch(0.97 0 0);
- --sidebar-accent-foreground: oklch(0.205 0 0);
- --sidebar-border: oklch(0.922 0 0);
- --sidebar-ring: oklch(0.708 0 0);
-}
-
-.dark {
- --background: oklch(0.145 0 0);
- --foreground: oklch(0.985 0 0);
- --card: oklch(0.145 0 0);
- --card-foreground: oklch(0.985 0 0);
- --popover: oklch(0.145 0 0);
- --popover-foreground: oklch(0.985 0 0);
- --primary: oklch(0.985 0 0);
- --primary-foreground: oklch(0.205 0 0);
- --secondary: oklch(0.269 0 0);
- --secondary-foreground: oklch(0.985 0 0);
- --muted: oklch(0.269 0 0);
- --muted-foreground: oklch(0.708 0 0);
- --accent: oklch(0.269 0 0);
- --accent-foreground: oklch(0.985 0 0);
- --destructive: oklch(0.396 0.141 25.723);
- --destructive-foreground: oklch(0.637 0.237 25.331);
- --border: oklch(0.269 0 0);
- --input: oklch(0.269 0 0);
- --ring: oklch(0.439 0 0);
- --chart-1: oklch(0.488 0.243 264.376);
- --chart-2: oklch(0.696 0.17 162.48);
- --chart-3: oklch(0.769 0.188 70.08);
- --chart-4: oklch(0.627 0.265 303.9);
- --chart-5: oklch(0.645 0.246 16.439);
- --sidebar: oklch(0.205 0 0);
- --sidebar-foreground: oklch(0.985 0 0);
- --sidebar-primary: oklch(0.488 0.243 264.376);
- --sidebar-primary-foreground: oklch(0.985 0 0);
- --sidebar-accent: oklch(0.269 0 0);
- --sidebar-accent-foreground: oklch(0.985 0 0);
- --sidebar-border: oklch(0.269 0 0);
- --sidebar-ring: oklch(0.439 0 0);
-}
-
-@theme inline {
- --color-background: var(--background);
- --color-foreground: var(--foreground);
- --color-card: var(--card);
- --color-card-foreground: var(--card-foreground);
- --color-popover: var(--popover);
- --color-popover-foreground: var(--popover-foreground);
- --color-primary: var(--primary);
- --color-primary-foreground: var(--primary-foreground);
- --color-secondary: var(--secondary);
- --color-secondary-foreground: var(--secondary-foreground);
- --color-muted: var(--muted);
- --color-muted-foreground: var(--muted-foreground);
- --color-accent: var(--accent);
- --color-accent-foreground: var(--accent-foreground);
- --color-destructive: var(--destructive);
- --color-destructive-foreground: var(--destructive-foreground);
- --color-border: var(--border);
- --color-input: var(--input);
- --color-ring: var(--ring);
- --color-chart-1: var(--chart-1);
- --color-chart-2: var(--chart-2);
- --color-chart-3: var(--chart-3);
- --color-chart-4: var(--chart-4);
- --color-chart-5: var(--chart-5);
- --radius-sm: calc(var(--radius) - 4px);
- --radius-md: calc(var(--radius) - 2px);
- --radius-lg: var(--radius);
- --radius-xl: calc(var(--radius) + 4px);
- --color-sidebar: var(--sidebar);
- --color-sidebar-foreground: var(--sidebar-foreground);
- --color-sidebar-primary: var(--sidebar-primary);
- --color-sidebar-primary-foreground: var(--sidebar-primary-foreground);
- --color-sidebar-accent: var(--sidebar-accent);
- --color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
- --color-sidebar-border: var(--sidebar-border);
- --color-sidebar-ring: var(--sidebar-ring);
-}
-
-@layer base {
- * {
- @apply border-border outline-ring/50;
- }
- body {
- @apply bg-background text-foreground;
- }
-}
-```
-
-### Add a cn helper
-
-```ts showLineNumbers title="lib/utils.ts"
-import { clsx, type ClassValue } from "clsx"
-import { twMerge } from "tailwind-merge"
-
-export function cn(...inputs: ClassValue[]) {
- return twMerge(clsx(inputs))
-}
-```
-
-### Create a `components.json` file
-
-Create a `components.json` file in the root of your project.
-
-```json title="components.json" showLineNumbers
-{
- "$schema": "https://ui.shadcn.com/schema.json",
- "style": "new-york",
- "rsc": false,
- "tsx": true,
- "tailwind": {
- "config": "",
- "css": "src/styles/globals.css",
- "baseColor": "neutral",
- "cssVariables": true,
- "prefix": ""
- },
- "aliases": {
- "components": "@/components",
- "utils": "@/lib/utils",
- "ui": "@/components/ui",
- "lib": "@/lib",
- "hooks": "@/hooks"
- },
- "iconLibrary": "lucide"
-}
-```
-
-### That's it
-
-You can now start adding components to your project.
-
-
diff --git a/deprecated/www/content/docs/installation/next.mdx b/deprecated/www/content/docs/installation/next.mdx
deleted file mode 100644
index e5d4a2b38d..0000000000
--- a/deprecated/www/content/docs/installation/next.mdx
+++ /dev/null
@@ -1,45 +0,0 @@
----
-title: Next.js
-description: Install and configure shadcn/ui for Next.js.
----
-
-
- **Note:** The following guide is for Tailwind v4. If you are using Tailwind
- v3, use `shadcn@2.3.0`.
-
-
-
-
-### Create project
-
-Run the `init` command to create a new Next.js project or to setup an existing one:
-
-```bash
-npx shadcn@latest init
-```
-
-Choose between a Next.js project or a Monorepo.
-
-### Add Components
-
-You can now start adding components to your project.
-
-```bash
-npx shadcn@latest add button
-```
-
-The command above will add the `Button` component to your project. You can then import it like this:
-
-```tsx {1,6} showLineNumbers
-import { Button } from "@/components/ui/button"
-
-export default function Home() {
- return (
-
- Click me
-
- )
-}
-```
-
-
diff --git a/deprecated/www/content/docs/installation/react-router.mdx b/deprecated/www/content/docs/installation/react-router.mdx
deleted file mode 100644
index 4f8c07a281..0000000000
--- a/deprecated/www/content/docs/installation/react-router.mdx
+++ /dev/null
@@ -1,59 +0,0 @@
----
-title: React Router
-description: Install and configure shadcn/ui for React Router.
----
-
-
-
-**Note:** This guide is for React Router. For Remix, see the [Remix](/docs/installation/remix) guide.
-
-
-
-
-
-### Create project
-
-```bash
-npx create-react-router@latest my-app
-```
-
-### Run the CLI
-
-Run the `shadcn` init command to setup your project:
-
-```bash
-npx shadcn@latest init
-```
-
-### Add Components
-
-You can now start adding components to your project.
-
-```bash
-npx shadcn@latest add button
-```
-
-The command above will add the `Button` component to your project. You can then import it like this:
-
-```tsx showLineNumbers title="app/routes/home.tsx"
-import { Button } from "~/components/ui/button"
-
-import type { Route } from "./+types/home"
-
-export function meta({}: Route.MetaArgs) {
- return [
- { title: "New React Router App" },
- { name: "description", content: "Welcome to React Router!" },
- ]
-}
-
-export default function Home() {
- return (
-
- Click me
-
- )
-}
-```
-
-
diff --git a/deprecated/www/content/docs/installation/remix.mdx b/deprecated/www/content/docs/installation/remix.mdx
deleted file mode 100644
index dc60d2581a..0000000000
--- a/deprecated/www/content/docs/installation/remix.mdx
+++ /dev/null
@@ -1,122 +0,0 @@
----
-title: Remix
-description: Install and configure shadcn/ui for Remix.
----
-
-
- **Note:** The following guide is for Tailwind v4. If you are using Tailwind
- v3, use `shadcn@2.3.0`.
-
-
-
-
-**Note:** This guide is for Remix. For React Router, see the [React Router](/docs/installation/react-router) guide.
-
-
-
-
-
-### Create project
-
-Start by creating a new Remix project using `create-remix`:
-
-```bash
-npx create-remix@latest my-app
-```
-
-### Run the CLI
-
-Run the `shadcn` init command to setup your project:
-
-```bash
-npx shadcn@latest init
-```
-
-### Configure components.json
-
-You will be asked a few questions to configure `components.json`:
-
-```txt showLineNumbers
-Which style would you like to use? › New York
-Which color would you like to use as base color? › Zinc
-Do you want to use CSS variables for colors? › no / yes
-```
-
-### App structure
-
-
-
-**Note**: This app structure is only a suggestion. You can place the files wherever you want.
-
-
-
-- Place the UI components in the `app/components/ui` folder.
-- Your own components can be placed in the `app/components` folder.
-- The `app/lib` folder contains all the utility functions. We have a `utils.ts` where we define the `cn` helper.
-- The `app/tailwind.css` file contains the global CSS.
-
-### Install Tailwind CSS
-
-```bash
-npm install -D tailwindcss@latest autoprefixer@latest
-```
-
-Then we create a `postcss.config.js` file:
-
-```js
-export default {
- plugins: {
- tailwindcss: {},
- autoprefixer: {},
- },
-}
-```
-
-And finally we add the following to our `remix.config.js` file:
-
-```js {4-5}
-/** @type {import('@remix-run/dev').AppConfig} */
-export default {
- ...
- tailwind: true,
- postcss: true,
- ...
-};
-```
-
-### Add `tailwind.css` to your app
-
-In your `app/root.tsx` file, import the `tailwind.css` file:
-
-```js {1, 4}
-import styles from "./tailwind.css?url"
-
-export const links: LinksFunction = () => [
- { rel: "stylesheet", href: styles },
- ...(cssBundleHref ? [{ rel: "stylesheet", href: cssBundleHref }] : []),
-]
-```
-
-### That's it
-
-You can now start adding components to your project.
-
-```bash
-npx shadcn@latest add button
-```
-
-The command above will add the `Button` component to your project. You can then import it like this:
-
-```tsx {1,6} showLineNumbers
-import { Button } from "~/components/ui/button"
-
-export default function Home() {
- return (
-
- Click me
-
- )
-}
-```
-
-
diff --git a/deprecated/www/content/docs/installation/tanstack-router.mdx b/deprecated/www/content/docs/installation/tanstack-router.mdx
deleted file mode 100644
index 7bca31659c..0000000000
--- a/deprecated/www/content/docs/installation/tanstack-router.mdx
+++ /dev/null
@@ -1,44 +0,0 @@
----
-title: TanStack Router
-description: Install and configure shadcn/ui for TanStack Router.
----
-
-
-
-### Create project
-
-Start by creating a new TanStack Router project:
-
-```bash
-npx create-tsrouter-app@latest my-app --template file-router --tailwind --add-ons shadcn
-```
-
-### Add Components
-
-You can now start adding components to your project.
-
-```bash
-npx shadcn@canary add button
-```
-
-The command above will add the `Button` component to your project. You can then import it like this:
-
-```tsx title="src/routes/index.tsx" showLineNumbers {3,12}
-import { createFileRoute } from "@tanstack/react-router"
-
-import { Button } from "@/components/ui/button"
-
-export const Route = createFileRoute("/")({
- component: App,
-})
-
-function App() {
- return (
-
- Click me
-
- )
-}
-```
-
-
diff --git a/deprecated/www/content/docs/installation/tanstack.mdx b/deprecated/www/content/docs/installation/tanstack.mdx
deleted file mode 100644
index b91e056e75..0000000000
--- a/deprecated/www/content/docs/installation/tanstack.mdx
+++ /dev/null
@@ -1,132 +0,0 @@
----
-title: TanStack Start
-description: Install and configure shadcn/ui for TanStack Start.
----
-
-
-
-### Create project
-
-Start by creating a new TanStack Start project by following the [Build a Project from Scratch](https://tanstack.com/start/latest/docs/framework/react/build-from-scratch) guide on the TanStack Start website.
-
-**Do not add Tailwind yet. We'll install Tailwind v4 in the next step.**
-
-### Add Tailwind
-
-Install `tailwindcss` and its dependencies.
-
-```bash
-npm install tailwindcss @tailwindcss/postcss postcss
-```
-
-### Create postcss.config.ts
-
-Create a `postcss.config.ts` file at the root of your project.
-
-```ts title="postcss.config.ts" showLineNumbers
-export default {
- plugins: {
- "@tailwindcss/postcss": {},
- },
-}
-```
-
-### Create `app/styles/app.css`
-
-Create an `app.css` file in the `app/styles` directory and import `tailwindcss`
-
-```css title="app/styles/app.css"
-@import "tailwindcss" source("../");
-```
-
-### Import `app.css`
-
-```tsx title="app/routes/__root.tsx" showLineNumbers {5,21-26} showLineNumbers
-import type { ReactNode } from "react"
-import { Outlet, createRootRoute } from "@tanstack/react-router"
-import { Meta, Scripts } from "@tanstack/start"
-
-import appCss from "@/styles/app.css?url"
-
-export const Route = createRootRoute({
- head: () => ({
- meta: [
- {
- charSet: "utf-8",
- },
- {
- name: "viewport",
- content: "width=device-width, initial-scale=1",
- },
- {
- title: "TanStack Start Starter",
- },
- ],
- links: [
- {
- rel: "stylesheet",
- href: appCss,
- },
- ],
- }),
- component: RootComponent,
-})
-```
-
-### Edit tsconfig.json file
-
-Add the following code to the `tsconfig.json` file to resolve paths.
-
-```ts title="tsconfig.json" showLineNumbers {9-12}
-{
- "compilerOptions": {
- "jsx": "react-jsx",
- "moduleResolution": "Bundler",
- "module": "ESNext",
- "target": "ES2022",
- "skipLibCheck": true,
- "strictNullChecks": true,
- "baseUrl": ".",
- "paths": {
- "@/*": ["./app/*"]
- }
- }
-}
-```
-
-### Run the CLI
-
-Run the `shadcn` init command to setup your project:
-
-```bash
-npx shadcn@canary init
-```
-
-This will create a `components.json` file in the root of your project and configure CSS variables inside `app/styles/app.css`.
-
-### That's it
-
-You can now start adding components to your project.
-
-```bash
-npx shadcn@canary add button
-```
-
-The command above will add the `Button` component to your project. You can then import it like this:
-
-```tsx title="app/routes/index.tsx" showLineNumbers {1,6}
-import { Button } from "@/components/ui/button"
-
-function Home() {
- const router = useRouter()
- const state = Route.useLoaderData()
-
- return (
-
- Click me
-
- )
-}
-```
-
-
diff --git a/deprecated/www/content/docs/installation/vite.mdx b/deprecated/www/content/docs/installation/vite.mdx
deleted file mode 100644
index 3d8bc3cd02..0000000000
--- a/deprecated/www/content/docs/installation/vite.mdx
+++ /dev/null
@@ -1,141 +0,0 @@
----
-title: Vite
-description: Install and configure shadcn/ui for Vite.
----
-
-
- **Note:** The following guide is for Tailwind v4. If you are using Tailwind
- v3, use `shadcn@2.3.0`.
-
-
-
-
-### Create project
-
-Start by creating a new React project using `vite`. Select the **React + TypeScript** template:
-
-```bash
-npm create vite@latest
-```
-
-### Add Tailwind CSS
-
-```bash
-npm install tailwindcss @tailwindcss/vite
-```
-
-Replace everything in `src/index.css` with the following:
-
-```css title="src/index.css"
-@import "tailwindcss";
-```
-
-### Edit tsconfig.json file
-
-The current version of Vite splits TypeScript configuration into three files, two of which need to be edited.
-Add the `baseUrl` and `paths` properties to the `compilerOptions` section of the `tsconfig.json` and
-`tsconfig.app.json` files:
-
-```ts {11-16} showLineNumbers
-{
- "files": [],
- "references": [
- {
- "path": "./tsconfig.app.json"
- },
- {
- "path": "./tsconfig.node.json"
- }
- ],
- "compilerOptions": {
- "baseUrl": ".",
- "paths": {
- "@/*": ["./src/*"]
- }
- }
-}
-```
-
-### Edit tsconfig.app.json file
-
-Add the following code to the `tsconfig.app.json` file to resolve paths, for your IDE:
-
-```ts {4-9} showLineNumbers
-{
- "compilerOptions": {
- // ...
- "baseUrl": ".",
- "paths": {
- "@/*": [
- "./src/*"
- ]
- }
- // ...
- }
-}
-```
-
-### Update vite.config.ts
-
-Add the following code to the vite.config.ts so your app can resolve paths without error:
-
-```bash
-npm install -D @types/node
-```
-
-```typescript title="vite.config.ts" showLineNumbers {1,2,8-13}
-import path from "path"
-import tailwindcss from "@tailwindcss/vite"
-import react from "@vitejs/plugin-react"
-import { defineConfig } from "vite"
-
-// https://vite.dev/config/
-export default defineConfig({
- plugins: [react(), tailwindcss()],
- resolve: {
- alias: {
- "@": path.resolve(__dirname, "./src"),
- },
- },
-})
-```
-
-### Run the CLI
-
-Run the `shadcn` init command to setup your project:
-
-```bash
-npx shadcn@latest init
-```
-
-You will be asked a few questions to configure `components.json`.
-
-```txt
-Which color would you like to use as base color? › Neutral
-```
-
-### Add Components
-
-You can now start adding components to your project.
-
-```bash
-npx shadcn@latest add button
-```
-
-The command above will add the `Button` component to your project. You can then import it like this:
-
-```tsx showLineNumbers title="src/App.tsx"
-import { Button } from "@/components/ui/button"
-
-function App() {
- return (
-
- Click me
-
- )
-}
-
-export default App
-```
-
-
diff --git a/deprecated/www/content/docs/monorepo.mdx b/deprecated/www/content/docs/monorepo.mdx
deleted file mode 100644
index 7186473340..0000000000
--- a/deprecated/www/content/docs/monorepo.mdx
+++ /dev/null
@@ -1,229 +0,0 @@
----
-title: Monorepo
-description: Using shadcn/ui components and CLI in a monorepo.
----
-
-Until now, using shadcn/ui in a monorepo was a bit of a pain. You could add
-components using the CLI, but you had to manage where the components
-were installed and manually fix import paths.
-
-With the new monorepo support in the CLI, we've made it a lot easier to use
-shadcn/ui in a monorepo.
-
-The CLI now understands the monorepo structure and will install the components,
-dependencies and registry dependencies to the correct paths and handle imports
-for you.
-
-## Getting started
-
-
-
-### Create a new monorepo project
-
-To create a new monorepo project, run the `init` command. You will be prompted
-to select the type of project you are creating.
-
-```bash
-npx shadcn@canary init
-```
-
-Select the `Next.js (Monorepo)` option.
-
-```bash
-? Would you like to start a new project?
- Next.js
-❯ Next.js (Monorepo)
-```
-
-This will create a new monorepo project with two workspaces: `web` and `ui`,
-and [Turborepo](https://turbo.build/repo/docs) as the build system.
-
-Everything is set up for you, so you can start adding components to your project.
-
-Note: The monorepo uses React 19 and Tailwind CSS v4.
-
-### Add components to your project
-
-To add components to your project, run the `add` command **in the path of your app**.
-
-```bash
-cd apps/web
-```
-
-```bash
-npx shadcn@canary add [COMPONENT]
-```
-
-The CLI will figure out what type of component you are adding and install the
-correct files to the correct path.
-
-For example, if you run `npx shadcn@canary add button`, the CLI will install the button component under `packages/ui` and update the import path for components in `apps/web`.
-
-If you run `npx shadcn@canary add login-01`, the CLI will install the `button`, `label`, `input` and `card` components under `packages/ui` and the `login-form` component under `apps/web/components`.
-
-### Importing components
-
-You can import components from the `@workspace/ui` package as follows:
-
-```tsx
-import { Button } from "@workspace/ui/components/button"
-```
-
-You can also import hooks and utilities from the `@workspace/ui` package.
-
-```tsx
-import { useTheme } from "@workspace/ui/hooks/use-theme"
-import { cn } from "@workspace/ui/lib/utils"
-```
-
-
-
-## File Structure
-
-When you create a new monorepo project, the CLI will create the following file structure:
-
-```txt
-apps
-└── web # Your app goes here.
- ├── app
- │ └── page.tsx
- ├── components
- │ └── login-form.tsx
- ├── components.json
- └── package.json
-packages
-└── ui # Your components and dependencies are installed here.
- ├── src
- │ ├── components
- │ │ └── button.tsx
- │ ├── hooks
- │ ├── lib
- │ │ └── utils.ts
- │ └── styles
- │ └── globals.css
- ├── components.json
- └── package.json
-package.json
-turbo.json
-```
-
-## Requirements
-
-1. Every workspace must have a `components.json` file. A `package.json` file tells npm how to install the dependencies. A `components.json` file tells the CLI how and where to install components.
-
-2. The `components.json` file must properly define aliases for the workspace. This tells the CLI how to import components, hooks, utilities, etc.
-
-
-
-
- Tailwind CSS v4
- Tailwind CSS v3
-
-
-
-
-```json showLineNumbers title="apps/web/components.json"
-{
- "$schema": "https://ui.shadcn.com/schema.json",
- "style": "new-york",
- "rsc": true,
- "tsx": true,
- "tailwind": {
- "config": "",
- "css": "../../packages/ui/src/styles/globals.css",
- "baseColor": "zinc",
- "cssVariables": true
- },
- "iconLibrary": "lucide",
- "aliases": {
- "components": "@/components",
- "hooks": "@/hooks",
- "lib": "@/lib",
- "utils": "@workspace/ui/lib/utils",
- "ui": "@workspace/ui/components"
- }
-}
-```
-
-```json showLineNumbers title="packages/ui/components.json"
-{
- "$schema": "https://ui.shadcn.com/schema.json",
- "style": "new-york",
- "rsc": true,
- "tsx": true,
- "tailwind": {
- "config": "",
- "css": "src/styles/globals.css",
- "baseColor": "zinc",
- "cssVariables": true
- },
- "iconLibrary": "lucide",
- "aliases": {
- "components": "@workspace/ui/components",
- "utils": "@workspace/ui/lib/utils",
- "hooks": "@workspace/ui/hooks",
- "lib": "@workspace/ui/lib",
- "ui": "@workspace/ui/components"
- }
-}
-```
-
-
-
-
-
-```json showLineNumbers title="apps/web/components.json"
-{
- "$schema": "https://ui.shadcn.com/schema.json",
- "style": "new-york",
- "rsc": true,
- "tsx": true,
- "tailwind": {
- "config": "../../packages/ui/tailwind.config.ts",
- "css": "../../packages/ui/src/styles/globals.css",
- "baseColor": "zinc",
- "cssVariables": true
- },
- "iconLibrary": "lucide",
- "aliases": {
- "components": "@/components",
- "hooks": "@/hooks",
- "lib": "@/lib",
- "utils": "@workspace/ui/lib/utils",
- "ui": "@workspace/ui/components"
- }
-}
-```
-
-```json showLineNumbers title="packages/ui/components.json"
-{
- "$schema": "https://ui.shadcn.com/schema.json",
- "style": "new-york",
- "rsc": true,
- "tsx": true,
- "tailwind": {
- "config": "tailwind.config.ts",
- "css": "src/styles/globals.css",
- "baseColor": "zinc",
- "cssVariables": true
- },
- "iconLibrary": "lucide",
- "aliases": {
- "components": "@workspace/ui/components",
- "utils": "@workspace/ui/lib/utils",
- "hooks": "@workspace/ui/hooks",
- "lib": "@workspace/ui/lib",
- "ui": "@workspace/ui/components"
- }
-}
-```
-
-
-
-
-
-3. Ensure you have the same `style`, `iconLibrary` and `baseColor` in both `components.json` files.
-
-4. **For Tailwind CSS v4, leave the `tailwind` config empty in the `components.json` file.**
-
-By following these requirements, the CLI will be able to install ui components, blocks, libs and hooks to the correct paths and handle imports for you.
diff --git a/deprecated/www/content/docs/react-19.mdx b/deprecated/www/content/docs/react-19.mdx
deleted file mode 100644
index 76177caaf3..0000000000
--- a/deprecated/www/content/docs/react-19.mdx
+++ /dev/null
@@ -1,174 +0,0 @@
----
-title: Next.js 15 + React 19
-description: Using shadcn/ui with Next.js 15 and React 19.
----
-
-
- **Update:** We have added full support for React 19 and Tailwind v4 in the
- `canary` release. See the docs for [Tailwind v4](/docs/tailwind-v4) for more
- information.
-
-
-
- **The following guide applies to any framework that supports React 19**. I
- titled this page "Next.js 15 + React 19" to help people upgrading to Next.js
- 15 find it. We are working with package maintainers to help upgrade to React
- 19.
-
-
-## TL;DR
-
-If you're using `npm`, you can install shadcn/ui dependencies with a flag. The `shadcn` CLI will prompt you to select a flag when you run it. No flags required for pnpm, bun, or yarn.
-
-See [Upgrade Status](#upgrade-status) for the status of React 19 support for each package.
-
-## What's happening?
-
-React 19 is now [rc](https://www.npmjs.com/package/react?activeTab=versions) and is [tested and supported in the latest Next.js 15 release](https://nextjs.org/blog/next-15#react-19).
-
-To support React 19, package maintainers will need to test and update their packages to include React 19 as a peer dependency. This is [already](https://github.com/radix-ui/primitives/pull/2952) [in](https://github.com/pacocoursey/cmdk/pull/318) [progress](https://github.com/emilkowalski/vaul/pull/498).
-
-```diff /^19.0/
-"peerDependencies": {
-- "react": "^16.8 || ^17.0 || ^18.0",
-+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0",
-- "react-dom": "^16.8 || ^17.0 || ^18.0"
-+ "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0"
-},
-```
-
-
- You can check if a package lists React 19 as a peer dependency by running
- `npm info peerDependencies`.
-
-
-In the meantime, if you are installing a package that **does not** list React 19 as a peer dependency, you will see an error message like this:
-
-```bash
-npm error code ERESOLVE
-npm error ERESOLVE unable to resolve dependency tree
-npm error
-npm error While resolving: my-app@0.1.0
-npm error Found: react@19.0.0-rc-69d4b800-20241021
-npm error node_modules/react
-npm error react@"19.0.0-rc-69d4b800-20241021" from the root project
-```
-
-
- **Note:** This is npm only. PNPM and Bun will only show a silent warning.
-
-
-## How to fix this
-
-### Solution 1: `--force` or `--legacy-peer-deps`
-
-You can force install a package with the `--force` or the `--legacy-peer-deps` flag.
-
-```bash
-npm i --force
-
-npm i --legacy-peer-deps
-```
-
-This will install the package and ignore the peer dependency warnings.
-
-
-
-
- What do the `--force` and `--legacy-peer-deps` flag do?
-
-
-
- - `--force`: Ignores and overrides any dependency conflicts, forcing the
- installation of packages.
- - `--legacy-peer-deps`: Skips strict peer dependency checks, allowing
- installation of packages with unmet peer dependencies to avoid errors.
-
-
-
-
-
-
-### Solution 2: Use React 18
-
-You can downgrade `react` and `react-dom` to version 18, which is compatible with the package you are installing and upgrade when the dependency is updated.
-
-```bash
-npm i react@18 react-dom@18
-```
-
-Whichever solution you choose, make sure you test your app thoroughly to ensure
-there are no regressions.
-
-## Using shadcn/ui on Next.js 15
-
-### Using pnpm, bun, or yarn
-
-Follow the instructions in the [installation guide](/docs/installation/next) to install shadcn/ui. No flags are needed.
-
-### Using npm
-
-When you run `npx shadcn@latest init -d`, you will be prompted to select an option to resolve the peer dependency issues.
-
-```bash
-It looks like you are using React 19.
-Some packages may fail to install due to peer dependency issues (see https://ui.shadcn.com/react-19).
-
-? How would you like to proceed? › - Use arrow-keys. Return to submit.
-❯ Use --force
- Use --legacy-peer-deps
-```
-
-You can then run the command with the flag you choose.
-
-## Adding components
-
-The process for adding components is the same as above. Select a flag to resolve the peer dependency issues.
-
-**Remember to always test your app after installing new dependencies.**
-
-## Upgrade Status
-
-To make it easy for you track the progress of the upgrade, I've created a table below with React 19 support status for the shadcn/ui dependencies.
-
-- ✅ - Works with React 19 using npm, pnpm, and bun.
-- 🚧 - Works with React 19 using pnpm and bun. Requires flag for npm. PR is in progress.
-
-| Package | Status | Note |
-| ---------------------------------------------------------------------------------- | ------ | ----------------------------------------------------------- |
-| [radix-ui](https://www.npmjs.com/package/@radix-ui/react-icons) | ✅ | |
-| [lucide-react](https://www.npmjs.com/package/lucide-react) | ✅ | |
-| [class-variance-authority](https://www.npmjs.com/package/class-variance-authority) | ✅ | Does not list React 19 as a peer dependency. |
-| [tailwindcss-animate](https://www.npmjs.com/package/tailwindcss-animate) | ✅ | Does not list React 19 as a peer dependency. |
-| [embla-carousel-react](https://www.npmjs.com/package/embla-carousel-react) | ✅ | |
-| [recharts](https://www.npmjs.com/package/recharts) | ✅ | See note [below](#recharts) |
-| [react-hook-form](https://www.npmjs.com/package/react-hook-form) | ✅ | |
-| [react-resizable-panels](https://www.npmjs.com/package/react-resizable-panels) | ✅ | |
-| [sonner](https://www.npmjs.com/package/sonner) | ✅ | |
-| [react-day-picker](https://www.npmjs.com/package/react-day-picker) | ✅ | Works with flag for npm. Work to upgrade to v9 in progress. |
-| [input-otp](https://www.npmjs.com/package/input-otp) | ✅ | |
-| [vaul](https://www.npmjs.com/package/vaul) | ✅ | |
-| [@radix-ui/react-icons](https://www.npmjs.com/package/@radix-ui/react-icons) | 🚧 | See [PR #194](https://github.com/radix-ui/icons/pull/194) |
-| [cmdk](https://www.npmjs.com/package/cmdk) | ✅ | |
-
-If you have any questions, please [open an issue](https://github.com/shadcn/ui/issues) on GitHub.
-
-## Recharts
-
-To use recharts with React 19, you will need to override the `react-is` dependency.
-
-
-
-Add the following to your `package.json`
-
-```json title="package.json"
-"overrides": {
- "react-is": "^19.0.0-rc-69d4b800-20241021"
-}
-```
-
-Note: the `react-is` version needs to match the version of React 19 you are using. The above is an example.
-
-Run `npm install --legacy-peer-deps`
-
-
diff --git a/deprecated/www/content/docs/registry/examples.mdx b/deprecated/www/content/docs/registry/examples.mdx
deleted file mode 100644
index 248fb55530..0000000000
--- a/deprecated/www/content/docs/registry/examples.mdx
+++ /dev/null
@@ -1,356 +0,0 @@
----
-title: Examples
-description: "Examples of registry items: styles, components, css vars, etc."
----
-
-## registry:style
-
-### Custom style that extends shadcn/ui
-
-The following registry item is a custom style that extends shadcn/ui. On `npx shadcn init`, it will:
-
-- Install `@tabler/icons-react` as a dependency.
-- Add the `login-01` block and `calendar` component to the project.
-- Add the `editor` from a remote registry.
-- Set the `font-sans` variable to `Inter, sans-serif`.
-- Install a `brand` color in light and dark mode.
-
-```json title="example-style.json" showLineNumbers
-{
- "$schema": "https://ui.shadcn.com/schema/registry-item.json",
- "name": "example-style",
- "type": "registry:style",
- "dependencies": ["@tabler/icons-react"],
- "registryDependencies": [
- "login-01",
- "calendar",
- "https://example.com/r/editor.json"
- ],
- "cssVars": {
- "theme": {
- "font-sans": "Inter, sans-serif"
- },
- "light": {
- "brand": "20 14.3% 4.1%"
- },
- "dark": {
- "brand": "20 14.3% 4.1%"
- }
- }
-}
-```
-
-### Custom style from scratch
-
-The following registry item is a custom style that doesn't extend shadcn/ui. See the `extends: none` field.
-
-It can be used to create a new style from scratch i.e custom components, css vars, dependencies, etc.
-
-On `npx shadcn add`, the following will:
-
-- Install `tailwind-merge` and `clsx` as dependencies.
-- Add the `utils` registry item from the shadcn/ui registry.
-- Add the `button`, `input`, `label`, and `select` components from a remote registry.
-- Install new css vars: `main`, `bg`, `border`, `text`, `ring`.
-
-```json title="example-style.json" showLineNumbers
-{
- "$schema": "https://ui.shadcn.com/schema/registry-item.json",
- "extends": "none",
- "name": "new-style",
- "type": "registry:style",
- "dependencies": ["tailwind-merge", "clsx"],
- "registryDependencies": [
- "utils",
- "https://example.com/r/button.json",
- "https://example.com/r/input.json",
- "https://example.com/r/label.json",
- "https://example.com/r/select.json"
- ],
- "cssVars": {
- "theme": {
- "font-sans": "Inter, sans-serif",
- }
- "light": {
- "main": "#88aaee",
- "bg": "#dfe5f2",
- "border": "#000",
- "text": "#000",
- "ring": "#000",
- },
- "dark": {
- "main": "#88aaee",
- "bg": "#272933",
- "border": "#000",
- "text": "#e6e6e6",
- "ring": "#fff",
- }
- }
-}
-```
-
-## registry:theme
-
-### Custom theme
-
-```json title="example-theme.json" showLineNumbers
-{
- "$schema": "https://ui.shadcn.com/schema/registry-item.json",
- "name": "custom-theme",
- "type": "registry:theme",
- "cssVars": {
- "light": {
- "background": "oklch(1 0 0)",
- "foreground": "oklch(0.141 0.005 285.823)",
- "primary": "oklch(0.546 0.245 262.881)",
- "primary-foreground": "oklch(0.97 0.014 254.604)",
- "ring": "oklch(0.746 0.16 232.661)",
- "sidebar-primary": "oklch(0.546 0.245 262.881)",
- "sidebar-primary-foreground": "oklch(0.97 0.014 254.604)",
- "sidebar-ring": "oklch(0.746 0.16 232.661)"
- },
- "dark": {
- "background": "oklch(1 0 0)",
- "foreground": "oklch(0.141 0.005 285.823)",
- "primary": "oklch(0.707 0.165 254.624)",
- "primary-foreground": "oklch(0.97 0.014 254.604)",
- "ring": "oklch(0.707 0.165 254.624)",
- "sidebar-primary": "oklch(0.707 0.165 254.624)",
- "sidebar-primary-foreground": "oklch(0.97 0.014 254.604)",
- "sidebar-ring": "oklch(0.707 0.165 254.624)"
- }
- }
-}
-```
-
-### Custom colors
-
-The following style will init using shadcn/ui defaults and then add a custom `brand` color.
-
-```json title="example-style.json" showLineNumbers
-{
- "$schema": "https://ui.shadcn.com/schema/registry-item.json",
- "name": "custom-style",
- "type": "registry:style",
- "cssVars": {
- "light": {
- "brand": "oklch(0.99 0.00 0)"
- },
- "dark": {
- "brand": "oklch(0.14 0.00 286)"
- }
- }
-}
-```
-
-## registry:block
-
-### Custom block
-
-This blocks installs the `login-01` block from the shadcn/ui registry.
-
-```json title="login-01.json" showLineNumbers
-{
- "$schema": "https://ui.shadcn.com/schema/registry-item.json",
- "name": "login-01",
- "type": "registry:block",
- "description": "A simple login form.",
- "registryDependencies": ["button", "card", "input", "label"],
- "files": [
- {
- "path": "blocks/login-01/page.tsx",
- "content": "import { LoginForm } ...",
- "type": "registry:page",
- "target": "app/login/page.tsx"
- },
- {
- "path": "blocks/login-01/components/login-form.tsx",
- "content": "...",
- "type": "registry:component"
- }
- ]
-}
-```
-
-### Install a block and override primitives
-
-You can install a block fromt the shadcn/ui registry and override the primitives using your custom ones.
-
-On `npx shadcn add`, the following will:
-
-- Add the `login-01` block from the shadcn/ui registry.
-- Override the `button`, `input`, and `label` primitives with the ones from the remote registry.
-
-```json title="example-style.json" showLineNumbers
-{
- "$schema": "https://ui.shadcn.com/schema/registry-item.json",
- "name": "custom-login",
- "type": "registry:block",
- "registryDependencies": [
- "login-01",
- "https://example.com/r/button.json",
- "https://example.com/r/input.json",
- "https://example.com/r/label.json"
- ]
-}
-```
-
-## CSS Variables
-
-### Custom Theme Variables
-
-Add custom theme variables to the `theme` object.
-
-```json title="example-theme.json" showLineNumbers
-{
- "$schema": "https://ui.shadcn.com/schema/registry-item.json",
- "name": "custom-theme",
- "type": "registry:theme",
- "cssVars": {
- "theme": {
- "font-heading": "Inter, sans-serif",
- "shadow-card": "0 0 0 1px rgba(0, 0, 0, 0.1)"
- }
- }
-}
-```
-
-### Override Tailwind CSS variables
-
-```json title="example-theme.json" showLineNumbers
-{
- "$schema": "https://ui.shadcn.com/schema/registry-item.json",
- "name": "custom-theme",
- "type": "registry:theme",
- "cssVars": {
- "theme": {
- "spacing": "0.2rem",
- "breakpoint-sm": "640px",
- "breakpoint-md": "768px",
- "breakpoint-lg": "1024px",
- "breakpoint-xl": "1280px",
- "breakpoint-2xl": "1536px"
- }
- }
-}
-```
-
-## Add custom CSS
-
-### Base styles
-
-```json title="example-base.json" showLineNumbers
-{
- "$schema": "https://ui.shadcn.com/schema/registry-item.json",
- "name": "custom-style",
- "type": "registry:style",
- "css": {
- "@layer base": {
- "h1": {
- "font-size": "var(--text-2xl)"
- },
- "h2": {
- "font-size": "var(--text-xl)"
- }
- }
- }
-}
-```
-
-### Components
-
-```json title="example-card.json" showLineNumbers
-{
- "$schema": "https://ui.shadcn.com/schema/registry-item.json",
- "name": "custom-card",
- "type": "registry:component",
- "css": {
- "@layer components": {
- "card": {
- "background-color": "var(--color-white)",
- "border-radius": "var(--rounded-lg)",
- "padding": "var(--spacing-6)",
- "box-shadow": "var(--shadow-xl)"
- }
- }
- }
-}
-```
-
-## Add custom utilities
-
-### Simple utility
-
-```json title="example-component.json" showLineNumbers
-{
- "$schema": "https://ui.shadcn.com/schema/registry-item.json",
- "name": "custom-component",
- "type": "registry:component",
- "css": {
- "@utility content-auto": {
- "content-visibility": "auto"
- }
- }
-}
-```
-
-### Complex utility
-
-```json title="example-utility.json" showLineNumbers
-{
- "$schema": "https://ui.shadcn.com/schema/registry-item.json",
- "name": "custom-component",
- "type": "registry:component",
- "css": {
- "@utility scrollbar-hidden": {
- "scrollbar-hidden": {
- "&::-webkit-scrollbar": {
- "display": "none"
- }
- }
- }
- }
-}
-```
-
-### Functional utilities
-
-```json title="example-functional.json" showLineNumbers
-{
- "$schema": "https://ui.shadcn.com/schema/registry-item.json",
- "name": "custom-component",
- "type": "registry:component",
- "css": {
- "@utility tab-*": {
- "tab-size": "var(--tab-size-*)"
- }
- }
-}
-```
-
-## Add custom animations
-
-Note: you need to define both `@keyframes` in css and `theme` in cssVars to use animations.
-
-```json title="example-component.json" showLineNumbers
-{
- "$schema": "https://ui.shadcn.com/schema/registry-item.json",
- "name": "custom-component",
- "type": "registry:component",
- "cssVars": {
- "theme": {
- "--animate-wiggle": "wiggle 1s ease-in-out infinite"
- }
- },
- "css": {
- "@keyframes wiggle": {
- "0%, 100%": {
- "transform": "rotate(-3deg)"
- },
- "50%": {
- "transform": "rotate(3deg)"
- }
- }
- }
-}
-```
diff --git a/deprecated/www/content/docs/registry/faq.mdx b/deprecated/www/content/docs/registry/faq.mdx
deleted file mode 100644
index 0e51058fbf..0000000000
--- a/deprecated/www/content/docs/registry/faq.mdx
+++ /dev/null
@@ -1,200 +0,0 @@
----
-title: FAQ
-description: Frequently asked questions about running a registry.
----
-
-## Frequently asked questions
-
-### What does a complex component look like?
-
-Here's an example of a complex component that installs a page, two components, a hook, a format-date utils and a config file.
-
-```json showLineNumbers
-{
- "$schema": "https://ui.shadcn.com/schema/registry-item.json",
- "name": "hello-world",
- "title": "Hello World",
- "type": "registry:block",
- "description": "A complex hello world component",
- "files": [
- {
- "path": "registry/new-york/hello-world/page.tsx",
- "type": "registry:page",
- "target": "app/hello/page.tsx"
- },
- {
- "path": "registry/new-york/hello-world/components/hello-world.tsx",
- "type": "registry:component"
- },
- {
- "path": "registry/new-york/hello-world/components/formatted-message.tsx",
- "type": "registry:component"
- },
- {
- "path": "registry/new-york/hello-world/hooks/use-hello.ts",
- "type": "registry:hook"
- },
- {
- "path": "registry/new-york/hello-world/lib/format-date.ts",
- "type": "registry:utils"
- },
- {
- "path": "registry/new-york/hello-world/hello.config.ts",
- "type": "registry:file",
- "target": "~/hello.config.ts"
- }
- ]
-}
-```
-
-### How do I add a new Tailwind color?
-
-
-
-
- Tailwind CSS v4
- Tailwind CSS v3
-
-
-
-
-To add a new color you need to add it to `cssVars` under `light` and `dark` keys.
-
-```json showLineNumbers {10-18}
-{
- "$schema": "https://ui.shadcn.com/schema/registry-item.json",
- "name": "hello-world",
- "title": "Hello World",
- "type": "registry:block",
- "description": "A complex hello world component",
- "files": [
- // ...
- ],
- "cssVars": {
- "light": {
- "brand-background": "20 14.3% 4.1%",
- "brand-accent": "20 14.3% 4.1%"
- },
- "dark": {
- "brand-background": "20 14.3% 4.1%",
- "brand-accent": "20 14.3% 4.1%"
- }
- }
-}
-```
-
-The CLI will update the project CSS file. Once updated, the new colors will be available to be used as utility classes: `bg-brand` and `text-brand-accent`.
-
-
-
-
-
-To add a new color you need to add it to `cssVars` and `tailwind.config.theme.extend.colors`.
-
-```json showLineNumbers {10-19} {24-29}
-{
- "$schema": "https://ui.shadcn.com/schema/registry-item.json",
- "name": "hello-world",
- "title": "Hello World",
- "type": "registry:block",
- "description": "A complex hello world component",
- "files": [
- // ...
- ],
- "cssVars": {
- "light": {
- "brand-background": "20 14.3% 4.1%",
- "brand-accent": "20 14.3% 4.1%"
- },
- "dark": {
- "brand-background": "20 14.3% 4.1%",
- "brand-accent": "20 14.3% 4.1%"
- }
- },
- "tailwind": {
- "config": {
- "theme": {
- "extend": {
- "colors": {
- "brand": {
- "DEFAULT": "hsl(var(--brand-background))",
- "accent": "hsl(var(--brand-accent))"
- }
- }
- }
- }
- }
- }
-}
-```
-
-The CLI will update the project CSS file and tailwind.config.js file. Once updated, the new colors will be available to be used as utility classes: `bg-brand` and `text-brand-accent`.
-
-
-
-
-### How do I add or override a Tailwind theme variable?
-
-
-
-
- Tailwind CSS v4
- Tailwind CSS v3
-
-
-
-
-To add or override a theme variable you add it to `cssVars.theme` under the key you want to add or override.
-
-```json showLineNumbers {10-15}
-{
- "$schema": "https://ui.shadcn.com/schema/registry-item.json",
- "name": "hello-world",
- "title": "Hello World",
- "type": "registry:block",
- "description": "A complex hello world component",
- "files": [
- // ...
- ],
- "cssVars": {
- "theme": {
- "text-base": "3rem",
- "ease-in-out": "cubic-bezier(0.4, 0, 0.2, 1)",
- "font-heading": "Poppins, sans-serif"
- }
- }
-}
-```
-
-
-
-
-
-To override a theme variable you add it to `tailwind.config.theme.extend` under the key you want to override.
-
-```json showLineNumbers {14-22}
-{
- "$schema": "https://ui.shadcn.com/schema/registry-item.json",
- "name": "hello-world",
- "title": "Hello World",
- "type": "registry:block",
- "description": "A complex hello world component",
- "files": [
- // ...
- ],
- "tailwind": {
- "config": {
- "theme": {
- "extend": {
- "text": {
- "base": "3rem"
- }
- }
- }
- }
- }
-}
-```
-
-
-
diff --git a/deprecated/www/content/docs/registry/getting-started.mdx b/deprecated/www/content/docs/registry/getting-started.mdx
deleted file mode 100644
index 3834390fc8..0000000000
--- a/deprecated/www/content/docs/registry/getting-started.mdx
+++ /dev/null
@@ -1,201 +0,0 @@
----
-title: Getting Started
-description: Learn how to get setup and run your own component registry.
----
-
-This guide will walk you through the process of setting up your own component registry.
-
-It assumes you already have a project with components and would like to turn it into a registry.
-
-If you're starting a new registry project, you can use the [registry template](https://github.com/shadcn-ui/registry-template) as a starting point. We have already configured it for you.
-
-## registry.json
-
-The `registry.json` file is only required if you're using the `shadcn` CLI to build your registry.
-
-If you're using a different build system, you can skip this step as long as your build system produces valid JSON files that conform to the [registry-item schema specification](/docs/registry/registry-item-json).
-
-
-
-### Add a registry.json file
-
-Create a `registry.json` file in the root of your project. Your project can be a Next.js, Remix, Vite, or any other project that supports React.
-
-```json title="registry.json" showLineNumbers
-{
- "$schema": "https://ui.shadcn.com/schema/registry.json",
- "name": "acme",
- "homepage": "https://acme.com",
- "items": [
- // ...
- ]
-}
-```
-
-This `registry.json` file must conform to the [registry schema specification](/docs/registry/registry-json).
-
-
-
-## Add a registry item
-
-
-
-### Create your component
-
-Add your first component. Here's an example of a simple ` ` component:
-
-```tsx title="registry/new-york/hello-world/hello-world.tsx" showLineNumbers
-import { Button } from "@/components/ui/button"
-
-export function HelloWorld() {
- return Hello World
-}
-```
-
-
- **Note:** This example places the component in the `registry/new-york`
- directory. You can place it anywhere in your project as long as you set the
- correct path in the `registry.json` file and you follow the `registry/[NAME]`
- directory structure.
-
-
-```txt
-registry
-└── new-york
- └── hello-world
- └── hello-world.tsx
-```
-
-
- **Important:** If you're placing your component in a custom directory, make
- sure it is configured in your `tailwind.config.ts` file.
-
-```ts showLineNumbers
-// tailwind.config.ts
-export default {
- content: ["./registry/**/*.{js,ts,jsx,tsx}"],
-}
-```
-
-
-
-### Add your component to the registry
-
-To add your component to the registry, you need to add your component definition to `registry.json`.
-
-```json title="registry.json" showLineNumbers {6-17}
-{
- "$schema": "https://ui.shadcn.com/schema/registry.json",
- "name": "acme",
- "homepage": "https://acme.com",
- "items": [
- {
- "name": "hello-world",
- "type": "registry:block",
- "title": "Hello World",
- "description": "A simple hello world component.",
- "files": [
- {
- "path": "registry/new-york/hello-world/hello-world.tsx",
- "type": "registry:component"
- }
- ]
- }
- ]
-}
-```
-
-You define your registry item by adding a `name`, `type`, `title`, `description` and `files`.
-
-For every file you add, you must specify the `path` and `type` of the file. The `path` is the relative path to the file from the root of your project. The `type` is the type of the file.
-
-You can read more about the registry item schema and file types in the [registry item schema docs](/docs/registry/registry-item-json).
-
-
-
-## Build your registry
-
-
-
-### Install the shadcn CLI
-
-Note: the `build` command is currently only available in the `shadcn@canary` version of the CLI.
-
-```bash
-npm install shadcn@canary
-```
-
-### Add a build script
-
-Add a `registry:build` script to your `package.json` file.
-
-```json title="package.json" showLineNumbers
-{
- "scripts": {
- "registry:build": "shadcn build"
- }
-}
-```
-
-### Run the build script
-
-Run the build script to generate the registry JSON files.
-
-```bash
-npm run registry:build
-```
-
-
- **Note:** By default, the build script will generate the registry JSON files
- in `public/r` e.g `public/r/hello-world.json`.
-
-You can change the output directory by passing the `--output` option. See the [shadcn build command](/docs/cli#build) for more information.
-
-
-
-
-
-## Serve your registry
-
-If you're running your registry on Next.js, you can now serve your registry by running the `next` server. The command might differ for other frameworks.
-
-```bash
-npm run dev
-```
-
-Your files will now be served at `http://localhost:3000/r/[NAME].json` eg. `http://localhost:3000/r/hello-world.json`.
-
-## Publish your registry
-
-To make your registry available to other developers, you can publish it by deploying your project to a public URL.
-
-## Adding Auth
-
-The `shadcn` CLI does not offer a built-in way to add auth to your registry. We recommend handling authorization on your registry server.
-
-A common simple approach is to use a `token` query parameter to authenticate requests to your registry. e.g. `http://localhost:3000/r/hello-world.json?token=[SECURE_TOKEN_HERE]`.
-
-Use the secure token to authenticate requests and return a 401 Unauthorized response if the token is invalid. Both the `shadcn` CLI and `Open in v0` will handle the 401 response and display a message to the user.
-
-
- **Note:** Make sure to encrypt and expire tokens.
-
-
-## Guidelines
-
-Here are some guidelines to follow when building components for a registry.
-
-- Place your registry item in the `registry/[STYLE]/[NAME]` directory. I'm using `new-york` as an example. It can be anything you want as long as it's nested under the `registry` directory.
-- The following properties are required for the block definition: `name`, `description`, `type` and `files`.
-- Make sure to list all registry dependencies in `registryDependencies`. A registry dependency is the name of the component in the registry eg. `input`, `button`, `card`, etc or a URL to a registry item eg. `http://localhost:3000/r/editor.json`.
-- Make sure to list all dependencies in `dependencies`. A dependency is the name of the package in the registry eg. `zod`, `sonner`, etc. To set a version, you can use the `name@version` format eg. `zod@^3.20.0`.
-- **Imports should always use the `@/registry` path.** eg. `import { HelloWorld } from "@/registry/new-york/hello-world/hello-world"`
-- Ideally, place your files within a registry item in `components`, `hooks`, `lib` directories.
-
-## Install using the CLI
-
-To install a registry item using the `shadcn` CLI, use the `add` command followed by the URL of the registry item.
-
-```bash
-npx shadcn@latest add http://localhost:3000/r/hello-world.json
-```
diff --git a/deprecated/www/content/docs/registry/index.mdx b/deprecated/www/content/docs/registry/index.mdx
deleted file mode 100644
index 7a681499c8..0000000000
--- a/deprecated/www/content/docs/registry/index.mdx
+++ /dev/null
@@ -1,40 +0,0 @@
----
-title: Registry
-description: Run your own component registry.
----
-
-
- **Note:** This feature is currently experimental. Help us improve it by
- testing it out and sending feedback. If you have any questions, please [reach
- out to us](https://github.com/shadcn-ui/ui/discussions).
-
-
-You can use the `shadcn` CLI to run your own component registry. Running your own registry allows you to distribute your custom components, hooks, pages, and other files to any React project.
-
-
-
-
-
- Distribute code to any React project.
-
-
-
-Registry items are automatically compatible with the `shadcn` CLI and `Open in v0`.
-
-## Requirements
-
-You are free to design and host your custom registry as you see fit. The only requirement is that your registry items must be valid JSON files that conform to the [registry-item schema specification](/docs/registry/registry-item-json).
-
-If you'd like to see an example of a registry, we have a [template project](https://github.com/shadcn-ui/registry-template) for you to use as a starting point.
diff --git a/deprecated/www/content/docs/registry/open-in-v0.mdx b/deprecated/www/content/docs/registry/open-in-v0.mdx
deleted file mode 100644
index 3feda2ee71..0000000000
--- a/deprecated/www/content/docs/registry/open-in-v0.mdx
+++ /dev/null
@@ -1,64 +0,0 @@
----
-title: Open in v0
-description: Integrate your registry with Open in v0.
----
-
-If your registry is hosted and publicly accessible via a URL, you can open a registry item in v0 by using the `https://v0.dev/chat/api/open?url=[URL]` endpoint.
-
-eg. [https://v0.dev/chat/api/open?url=https://ui.shadcn.com/r/styles/new-york/login-01.json](https://v0.dev/chat/api/open?url=https://ui.shadcn.com/r/styles/new-york/login-01.json)
-
-
- **Note:** The `Open in v0` button does not support `cssVars` and `tailwind`
- properties.
-
-
-## Button
-
-See [Build your Open in v0 button](https://v0.dev/chat/button) for more information on how to build your own `Open in v0` button.
-
-Here's a simple example of how to add a `Open in v0` button to your site.
-
-```jsx
-import { Button } from "@/components/ui/button"
-
-export function OpenInV0Button({ url }: { url: string }) {
- return (
-
-
- Open in{" "}
-
-
-
-
-
-
- )
-}
-```
-
-```jsx
-
-```
-
-## Authentication
-
-See the [Adding Auth](/docs/registry/getting-started#adding-auth) section for more information on how to authenticate requests to your registry and Open in v0.
diff --git a/deprecated/www/content/docs/registry/registry-item-json.mdx b/deprecated/www/content/docs/registry/registry-item-json.mdx
deleted file mode 100644
index b8bf5acdec..0000000000
--- a/deprecated/www/content/docs/registry/registry-item-json.mdx
+++ /dev/null
@@ -1,324 +0,0 @@
----
-title: registry-item.json
-description: Specification for registry items.
----
-
-The `registry-item.json` schema is used to define your custom registry items.
-
-```json title="registry-item.json" showLineNumbers
-{
- "$schema": "https://ui.shadcn.com/schema/registry-item.json",
- "name": "hello-world",
- "type": "registry:block",
- "title": "Hello World",
- "description": "A simple hello world component.",
- "files": [
- {
- "path": "registry/new-york/hello-world/hello-world.tsx",
- "type": "registry:component"
- },
- {
- "path": "registry/new-york/hello-world/use-hello-world.ts",
- "type": "registry:hook"
- }
- ],
- "cssVars": {
- "theme": {
- "font-heading": "Poppins, sans-serif"
- },
- "light": {
- "brand": "20 14.3% 4.1%"
- },
- "dark": {
- "brand": "20 14.3% 4.1%"
- }
- }
-}
-```
-
-
- See more examples
-
-
-## Definitions
-
-You can see the JSON Schema for `registry-item.json` [here](https://ui.shadcn.com/schema/registry-item.json).
-
-### $schema
-
-The `$schema` property is used to specify the schema for the `registry-item.json` file.
-
-```json title="registry-item.json" showLineNumbers
-{
- "$schema": "https://ui.shadcn.com/schema/registry-item.json"
-}
-```
-
-### name
-
-The name of the item. This is used to identify the item in the registry. It should be unique for your registry.
-
-```json title="registry-item.json" showLineNumbers
-{
- "name": "hello-world"
-}
-```
-
-### title
-
-A human-readable title for your registry item. Keep it short and descriptive.
-
-```json title="registry-item.json" showLineNumbers
-{
- "title": "Hello World"
-}
-```
-
-### description
-
-A description of your registry item. This can be longer and more detailed than the `title`.
-
-```json title="registry-item.json" showLineNumbers
-{
- "description": "A simple hello world component."
-}
-```
-
-### type
-
-The `type` property is used to specify the type of your registry item. This is used to determine the type and target path of the item when resolved for a project.
-
-```json title="registry-item.json" showLineNumbers
-{
- "type": "registry:block"
-}
-```
-
-The following types are supported:
-
-| Type | Description |
-| -------------------- | ------------------------------------------------ |
-| `registry:block` | Use for complex components with multiple files. |
-| `registry:component` | Use for simple components. |
-| `registry:lib` | Use for lib and utils. |
-| `registry:hook` | Use for hooks. |
-| `registry:ui` | Use for UI components and single-file primitives |
-| `registry:page` | Use for page or file-based routes. |
-| `registry:file` | Use for miscellaneous files. |
-| `registry:style` | Use for registry styles. eg. `new-york` |
-| `registry:theme` | Use for themes. |
-
-### author
-
-The `author` property is used to specify the author of the registry item.
-
-It can be unique to the registry item or the same as the author of the registry.
-
-```json title="registry-item.json" showLineNumbers
-{
- "author": "John Doe "
-}
-```
-
-### dependencies
-
-The `dependencies` property is used to specify the dependencies of your registry item. This is for `npm` packages.
-
-Use `@version` to specify the version of your registry item.
-
-```json title="registry-item.json" showLineNumbers
-{
- "dependencies": [
- "@radix-ui/react-accordion",
- "zod",
- "lucide-react",
- "name@1.0.2"
- ]
-}
-```
-
-### registryDependencies
-
-Used for registry dependencies. Can be names or URLs. Use the name of the item to reference shadcn/ui components and urls to reference other registries.
-
-- For `shadcn/ui` registry items such as `button`, `input`, `select`, etc use the name eg. `['button', 'input', 'select']`.
-- For custom registry items use the URL of the registry item eg. `['https://example.com/r/hello-world.json']`.
-
-```json title="registry-item.json" showLineNumbers
-{
- "registryDependencies": [
- "button",
- "input",
- "select",
- "https://example.com/r/editor.json"
- ]
-}
-```
-
-Note: The CLI will automatically resolve remote registry dependencies.
-
-### files
-
-The `files` property is used to specify the files of your registry item. Each file has a `path`, `type` and `target` (optional) property.
-
-**The `target` property is required for `registry:page` and `registry:file` types.**
-
-```json title="registry-item.json" showLineNumbers
-{
- "files": [
- {
- "path": "registry/new-york/hello-world/page.tsx",
- "type": "registry:page",
- "target": "app/hello/page.tsx"
- },
- {
- "path": "registry/new-york/hello-world/hello-world.tsx",
- "type": "registry:component"
- },
- {
- "path": "registry/new-york/hello-world/use-hello-world.ts",
- "type": "registry:hook"
- },
- {
- "path": "registry/new-york/hello-world/.env",
- "type": "registry:file",
- "target": "~/.env"
- }
- ]
-}
-```
-
-#### path
-
-The `path` property is used to specify the path to the file in your registry. This path is used by the build script to parse, transform and build the registry JSON payload.
-
-#### type
-
-The `type` property is used to specify the type of the file. See the [type](#type) section for more information.
-
-#### target
-
-The `target` property is used to indicate where the file should be placed in a project. This is optional and only required for `registry:page` and `registry:file` types.
-
-By default, the `shadcn` cli will read a project's `components.json` file to determine the target path. For some files, such as routes or config you can specify the target path manually.
-
-Use `~` to refer to the root of the project e.g `~/foo.config.js`.
-
-### tailwind
-
-**DEPRECATED:** Use `cssVars.theme` instead for Tailwind v4 projects.
-
-The `tailwind` property is used for tailwind configuration such as `theme`, `plugins` and `content`.
-
-You can use the `tailwind.config` property to add colors, animations and plugins to your registry item.
-
-```json title="registry-item.json" showLineNumbers
-{
- "tailwind": {
- "config": {
- "theme": {
- "extend": {
- "colors": {
- "brand": "hsl(var(--brand))"
- },
- "keyframes": {
- "wiggle": {
- "0%, 100%": { "transform": "rotate(-3deg)" },
- "50%": { "transform": "rotate(3deg)" }
- }
- },
- "animation": {
- "wiggle": "wiggle 1s ease-in-out infinite"
- }
- }
- }
- }
- }
-}
-```
-
-### cssVars
-
-Use to define CSS variables for your registry item.
-
-```json title="registry-item.json" showLineNumbers
-{
- "cssVars": {
- "theme": {
- "font-heading": "Poppins, sans-serif"
- },
- "light": {
- "brand": "20 14.3% 4.1%",
- "radius": "0.5rem"
- },
- "dark": {
- "brand": "20 14.3% 4.1%"
- }
- }
-}
-```
-
-### css
-
-Use `css` to add new rules to the project's CSS file eg. `@layer base`, `@layer components`, `@utility`, `@keyframes`, etc.
-
-```json title="registry-item.json" showLineNumbers
-{
- "css": {
- "@layer base": {
- "body": {
- "font-size": "var(--text-base)",
- "line-height": "1.5"
- }
- },
- "@layer components": {
- "button": {
- "background-color": "var(--color-primary)",
- "color": "var(--color-white)"
- }
- },
- "@utility text-magic": {
- "font-size": "var(--text-base)",
- "line-height": "1.5"
- },
- "@keyframes wiggle": {
- "0%, 100%": {
- "transform": "rotate(-3deg)"
- },
- "50%": {
- "transform": "rotate(3deg)"
- }
- }
- }
-}
-```
-
-### docs
-
-Use `docs` to show custom documentation or message when installing your registry item via the CLI.
-
-```json title="registry-item.json" showLineNumbers
-{
- "docs": "Remember to add the FOO_BAR environment variable to your .env file."
-}
-```
-
-### categories
-
-Use `categories` to organize your registry item.
-
-```json title="registry-item.json" showLineNumbers
-{
- "categories": ["sidebar", "dashboard"]
-}
-```
-
-### meta
-
-Use `meta` to add additional metadata to your registry item. You can add any key/value pair that you want to be available to the registry item.
-
-```json title="registry-item.json" showLineNumbers
-{
- "meta": { "foo": "bar" }
-}
-```
diff --git a/deprecated/www/content/docs/registry/registry-json.mdx b/deprecated/www/content/docs/registry/registry-json.mdx
deleted file mode 100644
index 055eb0236b..0000000000
--- a/deprecated/www/content/docs/registry/registry-json.mdx
+++ /dev/null
@@ -1,87 +0,0 @@
----
-title: registry.json
-description: Schema for running your own component registry.
----
-
-The `registry.json` schema is used to define your custom component registry.
-
-```json title="registry.json" showLineNumbers
-{
- "$schema": "https://ui.shadcn.com/schema/registry.json",
- "name": "shadcn",
- "homepage": "https://ui.shadcn.com",
- "items": [
- {
- "name": "hello-world",
- "type": "registry:block",
- "title": "Hello World",
- "description": "A simple hello world component.",
- "files": [
- {
- "path": "registry/new-york/hello-world/hello-world.tsx",
- "type": "registry:component"
- }
- ]
- }
- ]
-}
-```
-
-## Definitions
-
-You can see the JSON Schema for `registry.json` [here](https://ui.shadcn.com/schema/registry.json).
-
-### $schema
-
-The `$schema` property is used to specify the schema for the `registry.json` file.
-
-```json title="registry.json" showLineNumbers
-{
- "$schema": "https://ui.shadcn.com/schema/registry.json"
-}
-```
-
-### name
-
-The `name` property is used to specify the name of your registry. This is used for data attributes and other metadata.
-
-```json title="registry.json" showLineNumbers
-{
- "name": "acme"
-}
-```
-
-### homepage
-
-The homepage of your registry. This is used for data attributes and other metadata.
-
-```json title="registry.json" showLineNumbers
-{
- "homepage": "https://acme.com"
-}
-```
-
-### items
-
-The `items` in your registry. Each item must implement the [registry-item schema specification](https://ui.shadcn.com/schema/registry-item.json).
-
-```json title="registry.json" showLineNumbers
-{
- "items": [
- {
- "name": "hello-world",
- "type": "registry:block",
- "title": "Hello World",
- "description": "A simple hello world component.",
- "files": [
- {
- "path": "registry/new-york/hello-world/hello-world.tsx",
- "type": "registry:component"
- }
- ]
- }
- ]
-}
-```
-
-See the [registry-item schema documentation](/docs/registry/registry-item-json) for more information.
diff --git a/deprecated/www/content/docs/tailwind-v4.mdx b/deprecated/www/content/docs/tailwind-v4.mdx
deleted file mode 100644
index 307bd97331..0000000000
--- a/deprecated/www/content/docs/tailwind-v4.mdx
+++ /dev/null
@@ -1,349 +0,0 @@
----
-title: Tailwind v4
-description: How to use shadcn/ui with Tailwind v4 and React 19.
----
-
-It’s here! Tailwind v4 and React 19. Ready for you to try out. You can start using it today.
-
-
-
-## What's New
-
-- The CLI can now initialize projects with Tailwind v4.
-- Full support for the new `@theme` directive and `@theme inline` option.
-- All components are updated for Tailwind v4 and React 19.
-- We’ve removed the forwardRefs and adjusted the types.
-- Every primitive now has a `data-slot` attribute for styling.
-- We've fixed and cleaned up the style of the components.
-- We're deprecating the `toast` component in favor of `sonner`.
-- Buttons now use the default cursor.
-- We're deprecating the `default` style. New projects will use `new-york`.
-- HSL colors are now converted to OKLCH.
-
-**Note: this is non-breaking. Your existing apps with Tailwind v3 and React 18 will still work. When you add new components, they'll still be in v3 and React 18 until you upgrade. Only new projects start with Tailwind v4 and React 19.**
-
-## See it Live
-
-I put together a demo with all the updated components here: https://v4.shadcn.com
-
-Take a look and test the components. If you find any bugs, please let me know on [GitHub](https://github.com/shadcn-ui/ui).
-
-## Try It Out
-
-You can test Tailwind v4 + React 19 today using the `canary` release of the CLI. See the framework specific guides below for how to get started.
-
-
-
-
- Next.js
-
-
- Next.js
-
-
-
- Vite
-
-
- Vite
-
-
-
-
-
- Laravel
-
-
-
-
-
- React Router
-
-
-
- Astro
-
-
- Astro
-
-
-
-
-
- TanStack Start
-
-
-
- Gatsby
-
-
- Gatsby
-
-
-
- React
-
-
- Manual
-
-
-
-## Upgrade Your Project
-
-
- **Important:** Before upgrading, please read the [Tailwind v4 Compatibility
- Docs](https://tailwindcss.com/docs/compatibility) and make sure your project
- is ready for the upgrade. Tailwind v4 uses bleeding-edge browser features and
- is designed for modern browsers.
-
-
-One of the major advantages of using `shadcn/ui` is that the code you end up with is exactly what you'd write yourself. There are no hidden abstractions.
-
-This means when a dependency has a new release, you can just follow the official upgrade paths.
-
-Here's how to upgrade your existing projects (full docs are on the way):
-
-### 1. Follow the Tailwind v4 Upgrade Guide
-
-- Upgrade to Tailwind v4 by following the official upgrade guide: https://tailwindcss.com/docs/upgrade-guide
-- Use the `@tailwindcss/upgrade@next` codemod to remove deprecated utility classes and update tailwind config.
-
-### 2. Update your CSS variables
-
-The codemod will migrate your CSS variables as references under the `@theme` directive.
-
-```css showLineNumbers
-@layer base {
- :root {
- --background: 0 0% 100%;
- --foreground: 0 0% 3.9%;
- }
-}
-
-@theme {
- --color-background: hsl(var(--background));
- --color-foreground: hsl(var(--foreground));
-}
-```
-
-This works. But to make it easier to work with colors and other variables, we'll need to move the `hsl` wrappers and use `@theme inline`.
-
-Here's how you do it:
-
-1. Move `:root` and `.dark` out of the `@layer` base.
-2. Wrap the color values in `hsl()`
-3. Add the `inline` option to `@theme` i.e `@theme inline`
-4. Remove the `hsl()` wrappers from `@theme`
-
-```css showLineNumbers
-:root {
- --background: hsl(0 0% 100%); // <-- Wrap in hsl
- --foreground: hsl(0 0% 3.9%);
-}
-
-.dark {
- --background: hsl(0 0% 3.9%); // <-- Wrap in hsl
- --foreground: hsl(0 0% 98%);
-}
-
-@theme inline {
- --color-background: var(--background); // <-- Remove hsl
- --color-foreground: var(--foreground);
-}
-```
-
-This change makes it much simpler to access your theme variables in both utility classes and outside of CSS for eg. using color values in JavaScript.
-
-### 3. Update colors for charts
-
-Now that the theme colors come with `hsl()`, you can remove the wrapper in your `chartConfig`:
-
-```diff
-const chartConfig = {
- desktop: {
- label: "Desktop",
-- color: "hsl(var(--chart-1))",
-+ color: "var(--chart-1)",
- },
- mobile: {
- label: "Mobile",
-- color: "hsl(var(--chart-2))",
-+ color: "var(--chart-2)",
- },
-} satisfies ChartConfig
-```
-
-### 4. Use new `size-*` utility
-
-The new `size-*` utility (added in Tailwind v3.4), is now fully supported by `tailwind-merge`. You can replace `w-* h-*` with the new `size-*` utility:
-
-```diff
-- w-4 h-4
-+ size-4
-```
-
-### 5. Update your dependencies
-
-```bash
-pnpm up "@radix-ui/*" cmdk lucide-react recharts tailwind-merge clsx --latest
-```
-
-### 6. Remove forwardRef
-
-You can use the `remove-forward-ref` codemod to migrate your `forwardRef` to props or manually update the primitives.
-
-For the codemod, see https://github.com/reactjs/react-codemod#remove-forward-ref.
-
-If you want to do it manually, here's how to do it step by step:
-
-1. Replace `React.forwardRef<...>` with `React.ComponentProps<...>`
-2. Remove `ref={ref}` from the component.
-3. Add a `data-slot` attribute. This will come in handy for styling with Tailwind.
-4. You can optionally convert to a named function and remove the `displayName`.
-
-#### Before
-
-```tsx showLineNumbers
-const AccordionItem = React.forwardRef<
- React.ElementRef,
- React.ComponentPropsWithoutRef
->(({ className, ...props }, ref) => (
-
-))
-AccordionItem.displayName = "AccordionItem"
-```
-
-#### After
-
-```tsx showLineNumbers
-function AccordionItem({
- className,
- ...props
-}: React.ComponentProps) {
- return (
-
- )
-}
-```
-
-## Changelog
-
-### March 19, 2025 - Deprecate `tailwindcss-animate`
-
-We've deprecated `tailwindcss-animate` in favor of `tw-animate-css`.
-
-New project will have `tw-animate-css` installed by default.
-
-For existing projects, follow the steps below to migrate.
-
-1. Remove `tailwindcss-animate` from your dependencies.
-2. Remove the `@plugin 'tailwindcss-animate'` from your globals.css file.
-3. Install `tw-animate-css` as a dev dependency.
-4. Add the `@import "tw-animate-css"` to your globals.css file.
-
-```diff showLineNumbers
-- @plugin 'tailwindcss-animate';
-+ @import "tw-animate-css";
-```
-
-### March 12, 2025 - New Dark Mode Colors
-
-We've revisted the dark mode colors and updated them to be more accessible.
-
-If you're running an existing Tailwind v4 project (**not an upgraded one**[^1]), you can update your components to use the new dark mode colors by re-adding your components using the CLI[^2].
-
-
-
-Commit any changes
-
-**The CLI will overwrite your existing components.** We recommend committing any changes you've made to your components before running the CLI.
-
-```bash
-git add .
-git commit -m "..."
-```
-
-Update components
-
-```bash
-npx shadcn@latest add --all --overwrite
-```
-
-Update colors
-
-Update the dark mode colors in your `globals.css` file to new OKLCH colors. See the [Base Colors](/docs/theming#base-colors) reference for a list of colors.
-
-Review changes
-
-Review and re-apply any changes you made to your components.
-
-
-
-[^1]: Upgraded projects are not affected by this change. You can continue using the old dark mode colors.
-[^2]: Updating your components will overwrite your existing components.
diff --git a/deprecated/www/content/docs/theming.mdx b/deprecated/www/content/docs/theming.mdx
deleted file mode 100644
index ef260ff8b8..0000000000
--- a/deprecated/www/content/docs/theming.mdx
+++ /dev/null
@@ -1,562 +0,0 @@
----
-title: Theming
-description: Using CSS Variables and color utilities for theming.
----
-
-You can choose between using CSS variables (recommended) or utility classes for theming.
-
-## CSS Variables
-
-```tsx /bg-background/ /text-foreground/
-
-```
-
-To use CSS variables for theming set `tailwind.cssVariables` to `true` in your `components.json` file.
-
-```json {8} title="components.json"
-{
- "style": "default",
- "rsc": true,
- "tailwind": {
- "config": "",
- "css": "app/globals.css",
- "baseColor": "neutral",
- "cssVariables": true
- },
- "aliases": {
- "components": "@/components",
- "utils": "@/lib/utils",
- "ui": "@/registry/new-york-v4/ui",
- "lib": "@/lib",
- "hooks": "@/hooks"
- },
- "iconLibrary": "lucide"
-}
-```
-
-## Utility classes
-
-```tsx /bg-zinc-950/ /text-zinc-50/ /dark:bg-white/ /dark:text-zinc-950/
-
-```
-
-To use utility classes for theming set `tailwind.cssVariables` to `false` in your `components.json` file.
-
-```json {8} title="components.json"
-{
- "style": "default",
- "rsc": true,
- "tailwind": {
- "config": "",
- "css": "app/globals.css",
- "baseColor": "slate",
- "cssVariables": false
- },
- "aliases": {
- "components": "@/components",
- "utils": "@/lib/utils",
- "ui": "@/registry/new-york-v4/ui",
- "lib": "@/lib",
- "hooks": "@/hooks"
- },
- "iconLibrary": "lucide"
-}
-```
-
-## Convention
-
-We use a simple `background` and `foreground` convention for colors. The `background` variable is used for the background color of the component and the `foreground` variable is used for the text color.
-
-
-
-The `background` suffix is omitted when the variable is used for the background color of the component.
-
-
-
-Given the following CSS variables:
-
-```css
---primary: oklch(0.205 0 0);
---primary-foreground: oklch(0.985 0 0);
-```
-
-The `background` color of the following component will be `var(--primary)` and the `foreground` color will be `var(--primary-foreground)`.
-
-```tsx
-Hello
-```
-
-## List of variables
-
-Here's the list of variables available for customization:
-
-```css title="app/globals.css"
-:root {
- --radius: 0.625rem;
- --background: oklch(1 0 0);
- --foreground: oklch(0.145 0 0);
- --card: oklch(1 0 0);
- --card-foreground: oklch(0.145 0 0);
- --popover: oklch(1 0 0);
- --popover-foreground: oklch(0.145 0 0);
- --primary: oklch(0.205 0 0);
- --primary-foreground: oklch(0.985 0 0);
- --secondary: oklch(0.97 0 0);
- --secondary-foreground: oklch(0.205 0 0);
- --muted: oklch(0.97 0 0);
- --muted-foreground: oklch(0.556 0 0);
- --accent: oklch(0.97 0 0);
- --accent-foreground: oklch(0.205 0 0);
- --destructive: oklch(0.577 0.245 27.325);
- --border: oklch(0.922 0 0);
- --input: oklch(0.922 0 0);
- --ring: oklch(0.708 0 0);
- --chart-1: oklch(0.646 0.222 41.116);
- --chart-2: oklch(0.6 0.118 184.704);
- --chart-3: oklch(0.398 0.07 227.392);
- --chart-4: oklch(0.828 0.189 84.429);
- --chart-5: oklch(0.769 0.188 70.08);
- --sidebar: oklch(0.985 0 0);
- --sidebar-foreground: oklch(0.145 0 0);
- --sidebar-primary: oklch(0.205 0 0);
- --sidebar-primary-foreground: oklch(0.985 0 0);
- --sidebar-accent: oklch(0.97 0 0);
- --sidebar-accent-foreground: oklch(0.205 0 0);
- --sidebar-border: oklch(0.922 0 0);
- --sidebar-ring: oklch(0.708 0 0);
-}
-
-.dark {
- --background: oklch(0.145 0 0);
- --foreground: oklch(0.985 0 0);
- --card: oklch(0.205 0 0);
- --card-foreground: oklch(0.985 0 0);
- --popover: oklch(0.269 0 0);
- --popover-foreground: oklch(0.985 0 0);
- --primary: oklch(0.922 0 0);
- --primary-foreground: oklch(0.205 0 0);
- --secondary: oklch(0.269 0 0);
- --secondary-foreground: oklch(0.985 0 0);
- --muted: oklch(0.269 0 0);
- --muted-foreground: oklch(0.708 0 0);
- --accent: oklch(0.371 0 0);
- --accent-foreground: oklch(0.985 0 0);
- --destructive: oklch(0.704 0.191 22.216);
- --border: oklch(1 0 0 / 10%);
- --input: oklch(1 0 0 / 15%);
- --ring: oklch(0.556 0 0);
- --chart-1: oklch(0.488 0.243 264.376);
- --chart-2: oklch(0.696 0.17 162.48);
- --chart-3: oklch(0.769 0.188 70.08);
- --chart-4: oklch(0.627 0.265 303.9);
- --chart-5: oklch(0.645 0.246 16.439);
- --sidebar: oklch(0.205 0 0);
- --sidebar-foreground: oklch(0.985 0 0);
- --sidebar-primary: oklch(0.488 0.243 264.376);
- --sidebar-primary-foreground: oklch(0.985 0 0);
- --sidebar-accent: oklch(0.269 0 0);
- --sidebar-accent-foreground: oklch(0.985 0 0);
- --sidebar-border: oklch(1 0 0 / 10%);
- --sidebar-ring: oklch(0.439 0 0);
-}
-```
-
-## Adding new colors
-
-To add new colors, you need to add them to your CSS file and to your `tailwind.config.js` file.
-
-```css title="app/globals.css"
-:root {
- --warning: oklch(0.84 0.16 84);
- --warning-foreground: oklch(0.28 0.07 46);
-}
-
-.dark {
- --warning: oklch(0.41 0.11 46);
- --warning-foreground: oklch(0.99 0.02 95);
-}
-
-@theme inline {
- --color-warning: var(--warning);
- --color-warning-foreground: var(--warning-foreground);
-}
-```
-
-You can now use the `warning` utility class in your components.
-
-```tsx /bg-warning/ /text-warning-foreground/
-
-```
-
-## Other color formats
-
-See the [Tailwind CSS documentation](https://tailwindcss.com/docs/colors) for more information on using colors in Tailwind CSS.
-
-## Base Colors
-
-For reference, here's a list of the base colors that are available.
-
-### Stone
-
-```css title="app/globals.css"
-:root {
- --radius: 0.625rem;
- --background: oklch(1 0 0);
- --foreground: oklch(0.147 0.004 49.25);
- --card: oklch(1 0 0);
- --card-foreground: oklch(0.147 0.004 49.25);
- --popover: oklch(1 0 0);
- --popover-foreground: oklch(0.147 0.004 49.25);
- --primary: oklch(0.216 0.006 56.043);
- --primary-foreground: oklch(0.985 0.001 106.423);
- --secondary: oklch(0.97 0.001 106.424);
- --secondary-foreground: oklch(0.216 0.006 56.043);
- --muted: oklch(0.97 0.001 106.424);
- --muted-foreground: oklch(0.553 0.013 58.071);
- --accent: oklch(0.97 0.001 106.424);
- --accent-foreground: oklch(0.216 0.006 56.043);
- --destructive: oklch(0.577 0.245 27.325);
- --border: oklch(0.923 0.003 48.717);
- --input: oklch(0.923 0.003 48.717);
- --ring: oklch(0.709 0.01 56.259);
- --chart-1: oklch(0.646 0.222 41.116);
- --chart-2: oklch(0.6 0.118 184.704);
- --chart-3: oklch(0.398 0.07 227.392);
- --chart-4: oklch(0.828 0.189 84.429);
- --chart-5: oklch(0.769 0.188 70.08);
- --sidebar: oklch(0.985 0.001 106.423);
- --sidebar-foreground: oklch(0.147 0.004 49.25);
- --sidebar-primary: oklch(0.216 0.006 56.043);
- --sidebar-primary-foreground: oklch(0.985 0.001 106.423);
- --sidebar-accent: oklch(0.97 0.001 106.424);
- --sidebar-accent-foreground: oklch(0.216 0.006 56.043);
- --sidebar-border: oklch(0.923 0.003 48.717);
- --sidebar-ring: oklch(0.709 0.01 56.259);
-}
-
-.dark {
- --background: oklch(0.147 0.004 49.25);
- --foreground: oklch(0.985 0.001 106.423);
- --card: oklch(0.216 0.006 56.043);
- --card-foreground: oklch(0.985 0.001 106.423);
- --popover: oklch(0.216 0.006 56.043);
- --popover-foreground: oklch(0.985 0.001 106.423);
- --primary: oklch(0.923 0.003 48.717);
- --primary-foreground: oklch(0.216 0.006 56.043);
- --secondary: oklch(0.268 0.007 34.298);
- --secondary-foreground: oklch(0.985 0.001 106.423);
- --muted: oklch(0.268 0.007 34.298);
- --muted-foreground: oklch(0.709 0.01 56.259);
- --accent: oklch(0.268 0.007 34.298);
- --accent-foreground: oklch(0.985 0.001 106.423);
- --destructive: oklch(0.704 0.191 22.216);
- --border: oklch(1 0 0 / 10%);
- --input: oklch(1 0 0 / 15%);
- --ring: oklch(0.553 0.013 58.071);
- --chart-1: oklch(0.488 0.243 264.376);
- --chart-2: oklch(0.696 0.17 162.48);
- --chart-3: oklch(0.769 0.188 70.08);
- --chart-4: oklch(0.627 0.265 303.9);
- --chart-5: oklch(0.645 0.246 16.439);
- --sidebar: oklch(0.216 0.006 56.043);
- --sidebar-foreground: oklch(0.985 0.001 106.423);
- --sidebar-primary: oklch(0.488 0.243 264.376);
- --sidebar-primary-foreground: oklch(0.985 0.001 106.423);
- --sidebar-accent: oklch(0.268 0.007 34.298);
- --sidebar-accent-foreground: oklch(0.985 0.001 106.423);
- --sidebar-border: oklch(1 0 0 / 10%);
- --sidebar-ring: oklch(0.553 0.013 58.071);
-}
-```
-
-### Zinc
-
-```css title="app/globals.css"
-:root {
- --radius: 0.625rem;
- --background: oklch(1 0 0);
- --foreground: oklch(0.141 0.005 285.823);
- --card: oklch(1 0 0);
- --card-foreground: oklch(0.141 0.005 285.823);
- --popover: oklch(1 0 0);
- --popover-foreground: oklch(0.141 0.005 285.823);
- --primary: oklch(0.21 0.006 285.885);
- --primary-foreground: oklch(0.985 0 0);
- --secondary: oklch(0.967 0.001 286.375);
- --secondary-foreground: oklch(0.21 0.006 285.885);
- --muted: oklch(0.967 0.001 286.375);
- --muted-foreground: oklch(0.552 0.016 285.938);
- --accent: oklch(0.967 0.001 286.375);
- --accent-foreground: oklch(0.21 0.006 285.885);
- --destructive: oklch(0.577 0.245 27.325);
- --border: oklch(0.92 0.004 286.32);
- --input: oklch(0.92 0.004 286.32);
- --ring: oklch(0.705 0.015 286.067);
- --chart-1: oklch(0.646 0.222 41.116);
- --chart-2: oklch(0.6 0.118 184.704);
- --chart-3: oklch(0.398 0.07 227.392);
- --chart-4: oklch(0.828 0.189 84.429);
- --chart-5: oklch(0.769 0.188 70.08);
- --sidebar: oklch(0.985 0 0);
- --sidebar-foreground: oklch(0.141 0.005 285.823);
- --sidebar-primary: oklch(0.21 0.006 285.885);
- --sidebar-primary-foreground: oklch(0.985 0 0);
- --sidebar-accent: oklch(0.967 0.001 286.375);
- --sidebar-accent-foreground: oklch(0.21 0.006 285.885);
- --sidebar-border: oklch(0.92 0.004 286.32);
- --sidebar-ring: oklch(0.705 0.015 286.067);
-}
-
-.dark {
- --background: oklch(0.141 0.005 285.823);
- --foreground: oklch(0.985 0 0);
- --card: oklch(0.21 0.006 285.885);
- --card-foreground: oklch(0.985 0 0);
- --popover: oklch(0.21 0.006 285.885);
- --popover-foreground: oklch(0.985 0 0);
- --primary: oklch(0.92 0.004 286.32);
- --primary-foreground: oklch(0.21 0.006 285.885);
- --secondary: oklch(0.274 0.006 286.033);
- --secondary-foreground: oklch(0.985 0 0);
- --muted: oklch(0.274 0.006 286.033);
- --muted-foreground: oklch(0.705 0.015 286.067);
- --accent: oklch(0.274 0.006 286.033);
- --accent-foreground: oklch(0.985 0 0);
- --destructive: oklch(0.704 0.191 22.216);
- --border: oklch(1 0 0 / 10%);
- --input: oklch(1 0 0 / 15%);
- --ring: oklch(0.552 0.016 285.938);
- --chart-1: oklch(0.488 0.243 264.376);
- --chart-2: oklch(0.696 0.17 162.48);
- --chart-3: oklch(0.769 0.188 70.08);
- --chart-4: oklch(0.627 0.265 303.9);
- --chart-5: oklch(0.645 0.246 16.439);
- --sidebar: oklch(0.21 0.006 285.885);
- --sidebar-foreground: oklch(0.985 0 0);
- --sidebar-primary: oklch(0.488 0.243 264.376);
- --sidebar-primary-foreground: oklch(0.985 0 0);
- --sidebar-accent: oklch(0.274 0.006 286.033);
- --sidebar-accent-foreground: oklch(0.985 0 0);
- --sidebar-border: oklch(1 0 0 / 10%);
- --sidebar-ring: oklch(0.552 0.016 285.938);
-}
-```
-
-### Neutral
-
-```css title="app/globals.css"
-:root {
- --radius: 0.625rem;
- --background: oklch(1 0 0);
- --foreground: oklch(0.145 0 0);
- --card: oklch(1 0 0);
- --card-foreground: oklch(0.145 0 0);
- --popover: oklch(1 0 0);
- --popover-foreground: oklch(0.145 0 0);
- --primary: oklch(0.205 0 0);
- --primary-foreground: oklch(0.985 0 0);
- --secondary: oklch(0.97 0 0);
- --secondary-foreground: oklch(0.205 0 0);
- --muted: oklch(0.97 0 0);
- --muted-foreground: oklch(0.556 0 0);
- --accent: oklch(0.97 0 0);
- --accent-foreground: oklch(0.205 0 0);
- --destructive: oklch(0.577 0.245 27.325);
- --border: oklch(0.922 0 0);
- --input: oklch(0.922 0 0);
- --ring: oklch(0.708 0 0);
- --chart-1: oklch(0.646 0.222 41.116);
- --chart-2: oklch(0.6 0.118 184.704);
- --chart-3: oklch(0.398 0.07 227.392);
- --chart-4: oklch(0.828 0.189 84.429);
- --chart-5: oklch(0.769 0.188 70.08);
- --sidebar: oklch(0.985 0 0);
- --sidebar-foreground: oklch(0.145 0 0);
- --sidebar-primary: oklch(0.205 0 0);
- --sidebar-primary-foreground: oklch(0.985 0 0);
- --sidebar-accent: oklch(0.97 0 0);
- --sidebar-accent-foreground: oklch(0.205 0 0);
- --sidebar-border: oklch(0.922 0 0);
- --sidebar-ring: oklch(0.708 0 0);
-}
-
-.dark {
- --background: oklch(0.145 0 0);
- --foreground: oklch(0.985 0 0);
- --card: oklch(0.205 0 0);
- --card-foreground: oklch(0.985 0 0);
- --popover: oklch(0.205 0 0);
- --popover-foreground: oklch(0.985 0 0);
- --primary: oklch(0.922 0 0);
- --primary-foreground: oklch(0.205 0 0);
- --secondary: oklch(0.269 0 0);
- --secondary-foreground: oklch(0.985 0 0);
- --muted: oklch(0.269 0 0);
- --muted-foreground: oklch(0.708 0 0);
- --accent: oklch(0.269 0 0);
- --accent-foreground: oklch(0.985 0 0);
- --destructive: oklch(0.704 0.191 22.216);
- --border: oklch(1 0 0 / 10%);
- --input: oklch(1 0 0 / 15%);
- --ring: oklch(0.556 0 0);
- --chart-1: oklch(0.488 0.243 264.376);
- --chart-2: oklch(0.696 0.17 162.48);
- --chart-3: oklch(0.769 0.188 70.08);
- --chart-4: oklch(0.627 0.265 303.9);
- --chart-5: oklch(0.645 0.246 16.439);
- --sidebar: oklch(0.205 0 0);
- --sidebar-foreground: oklch(0.985 0 0);
- --sidebar-primary: oklch(0.488 0.243 264.376);
- --sidebar-primary-foreground: oklch(0.985 0 0);
- --sidebar-accent: oklch(0.269 0 0);
- --sidebar-accent-foreground: oklch(0.985 0 0);
- --sidebar-border: oklch(1 0 0 / 10%);
- --sidebar-ring: oklch(0.556 0 0);
-}
-```
-
-### Gray
-
-```css title="app/globals.css"
-:root {
- --radius: 0.625rem;
- --background: oklch(1 0 0);
- --foreground: oklch(0.13 0.028 261.692);
- --card: oklch(1 0 0);
- --card-foreground: oklch(0.13 0.028 261.692);
- --popover: oklch(1 0 0);
- --popover-foreground: oklch(0.13 0.028 261.692);
- --primary: oklch(0.21 0.034 264.665);
- --primary-foreground: oklch(0.985 0.002 247.839);
- --secondary: oklch(0.967 0.003 264.542);
- --secondary-foreground: oklch(0.21 0.034 264.665);
- --muted: oklch(0.967 0.003 264.542);
- --muted-foreground: oklch(0.551 0.027 264.364);
- --accent: oklch(0.967 0.003 264.542);
- --accent-foreground: oklch(0.21 0.034 264.665);
- --destructive: oklch(0.577 0.245 27.325);
- --border: oklch(0.928 0.006 264.531);
- --input: oklch(0.928 0.006 264.531);
- --ring: oklch(0.707 0.022 261.325);
- --chart-1: oklch(0.646 0.222 41.116);
- --chart-2: oklch(0.6 0.118 184.704);
- --chart-3: oklch(0.398 0.07 227.392);
- --chart-4: oklch(0.828 0.189 84.429);
- --chart-5: oklch(0.769 0.188 70.08);
- --sidebar: oklch(0.985 0.002 247.839);
- --sidebar-foreground: oklch(0.13 0.028 261.692);
- --sidebar-primary: oklch(0.21 0.034 264.665);
- --sidebar-primary-foreground: oklch(0.985 0.002 247.839);
- --sidebar-accent: oklch(0.967 0.003 264.542);
- --sidebar-accent-foreground: oklch(0.21 0.034 264.665);
- --sidebar-border: oklch(0.928 0.006 264.531);
- --sidebar-ring: oklch(0.707 0.022 261.325);
-}
-
-.dark {
- --background: oklch(0.13 0.028 261.692);
- --foreground: oklch(0.985 0.002 247.839);
- --card: oklch(0.21 0.034 264.665);
- --card-foreground: oklch(0.985 0.002 247.839);
- --popover: oklch(0.21 0.034 264.665);
- --popover-foreground: oklch(0.985 0.002 247.839);
- --primary: oklch(0.928 0.006 264.531);
- --primary-foreground: oklch(0.21 0.034 264.665);
- --secondary: oklch(0.278 0.033 256.848);
- --secondary-foreground: oklch(0.985 0.002 247.839);
- --muted: oklch(0.278 0.033 256.848);
- --muted-foreground: oklch(0.707 0.022 261.325);
- --accent: oklch(0.278 0.033 256.848);
- --accent-foreground: oklch(0.985 0.002 247.839);
- --destructive: oklch(0.704 0.191 22.216);
- --border: oklch(1 0 0 / 10%);
- --input: oklch(1 0 0 / 15%);
- --ring: oklch(0.551 0.027 264.364);
- --chart-1: oklch(0.488 0.243 264.376);
- --chart-2: oklch(0.696 0.17 162.48);
- --chart-3: oklch(0.769 0.188 70.08);
- --chart-4: oklch(0.627 0.265 303.9);
- --chart-5: oklch(0.645 0.246 16.439);
- --sidebar: oklch(0.21 0.034 264.665);
- --sidebar-foreground: oklch(0.985 0.002 247.839);
- --sidebar-primary: oklch(0.488 0.243 264.376);
- --sidebar-primary-foreground: oklch(0.985 0.002 247.839);
- --sidebar-accent: oklch(0.278 0.033 256.848);
- --sidebar-accent-foreground: oklch(0.985 0.002 247.839);
- --sidebar-border: oklch(1 0 0 / 10%);
- --sidebar-ring: oklch(0.551 0.027 264.364);
-}
-```
-
-### Slate
-
-```css title="app/globals.css"
-:root {
- --radius: 0.625rem;
- --background: oklch(1 0 0);
- --foreground: oklch(0.129 0.042 264.695);
- --card: oklch(1 0 0);
- --card-foreground: oklch(0.129 0.042 264.695);
- --popover: oklch(1 0 0);
- --popover-foreground: oklch(0.129 0.042 264.695);
- --primary: oklch(0.208 0.042 265.755);
- --primary-foreground: oklch(0.984 0.003 247.858);
- --secondary: oklch(0.968 0.007 247.896);
- --secondary-foreground: oklch(0.208 0.042 265.755);
- --muted: oklch(0.968 0.007 247.896);
- --muted-foreground: oklch(0.554 0.046 257.417);
- --accent: oklch(0.968 0.007 247.896);
- --accent-foreground: oklch(0.208 0.042 265.755);
- --destructive: oklch(0.577 0.245 27.325);
- --border: oklch(0.929 0.013 255.508);
- --input: oklch(0.929 0.013 255.508);
- --ring: oklch(0.704 0.04 256.788);
- --chart-1: oklch(0.646 0.222 41.116);
- --chart-2: oklch(0.6 0.118 184.704);
- --chart-3: oklch(0.398 0.07 227.392);
- --chart-4: oklch(0.828 0.189 84.429);
- --chart-5: oklch(0.769 0.188 70.08);
- --sidebar: oklch(0.984 0.003 247.858);
- --sidebar-foreground: oklch(0.129 0.042 264.695);
- --sidebar-primary: oklch(0.208 0.042 265.755);
- --sidebar-primary-foreground: oklch(0.984 0.003 247.858);
- --sidebar-accent: oklch(0.968 0.007 247.896);
- --sidebar-accent-foreground: oklch(0.208 0.042 265.755);
- --sidebar-border: oklch(0.929 0.013 255.508);
- --sidebar-ring: oklch(0.704 0.04 256.788);
-}
-
-.dark {
- --background: oklch(0.129 0.042 264.695);
- --foreground: oklch(0.984 0.003 247.858);
- --card: oklch(0.208 0.042 265.755);
- --card-foreground: oklch(0.984 0.003 247.858);
- --popover: oklch(0.208 0.042 265.755);
- --popover-foreground: oklch(0.984 0.003 247.858);
- --primary: oklch(0.929 0.013 255.508);
- --primary-foreground: oklch(0.208 0.042 265.755);
- --secondary: oklch(0.279 0.041 260.031);
- --secondary-foreground: oklch(0.984 0.003 247.858);
- --muted: oklch(0.279 0.041 260.031);
- --muted-foreground: oklch(0.704 0.04 256.788);
- --accent: oklch(0.279 0.041 260.031);
- --accent-foreground: oklch(0.984 0.003 247.858);
- --destructive: oklch(0.704 0.191 22.216);
- --border: oklch(1 0 0 / 10%);
- --input: oklch(1 0 0 / 15%);
- --ring: oklch(0.551 0.027 264.364);
- --chart-1: oklch(0.488 0.243 264.376);
- --chart-2: oklch(0.696 0.17 162.48);
- --chart-3: oklch(0.769 0.188 70.08);
- --chart-4: oklch(0.627 0.265 303.9);
- --chart-5: oklch(0.645 0.246 16.439);
- --sidebar: oklch(0.208 0.042 265.755);
- --sidebar-foreground: oklch(0.984 0.003 247.858);
- --sidebar-primary: oklch(0.488 0.243 264.376);
- --sidebar-primary-foreground: oklch(0.984 0.003 247.858);
- --sidebar-accent: oklch(0.279 0.041 260.031);
- --sidebar-accent-foreground: oklch(0.984 0.003 247.858);
- --sidebar-border: oklch(1 0 0 / 10%);
- --sidebar-ring: oklch(0.551 0.027 264.364);
-}
-```
diff --git a/deprecated/www/content/docs/v0.mdx b/deprecated/www/content/docs/v0.mdx
deleted file mode 100644
index 9d6273870e..0000000000
--- a/deprecated/www/content/docs/v0.mdx
+++ /dev/null
@@ -1,30 +0,0 @@
----
-title: Open in v0
-description: Open components in v0 for customization.
----
-
-Every component on ui.shadcn.com is editable on [v0 by Vercel](https://v0.dev). This allows you to easily customize the components in natural language and paste into your app.
-
-
-
-
- Open in v0
-
-
-To use v0, sign-up for a free [Vercel account here](https://vercel.com/signup?utm_source=shad&utm_medium=web&utm_campaign=docs_cta_signup). In addition to v0, this gives you free access to Vercel's frontend cloud platform by the creators of Next.js, where you can deploy and host your project for free.
-
-Learn more about getting started with [Vercel here](https://vercel.com/docs/getting-started-with-vercel?utm_source=shadcn_site&utm_medium=web&utm_campaign=docs_cta_about_vercel).
-
-Learn more about getting started with [v0 here](https://v0.dev/faq).
diff --git a/deprecated/www/contentlayer.config.js b/deprecated/www/contentlayer.config.js
deleted file mode 100644
index 147105797c..0000000000
--- a/deprecated/www/contentlayer.config.js
+++ /dev/null
@@ -1,175 +0,0 @@
-import { getHighlighter } from "@shikijs/compat"
-import {
- defineDocumentType,
- defineNestedType,
- makeSource,
-} from "contentlayer2/source-files"
-import rehypeAutolinkHeadings from "rehype-autolink-headings"
-import rehypePrettyCode from "rehype-pretty-code"
-import rehypeSlug from "rehype-slug"
-import { codeImport } from "remark-code-import"
-import remarkGfm from "remark-gfm"
-import { visit } from "unist-util-visit"
-
-import { rehypeComponent } from "./lib/rehype-component"
-import { rehypeNpmCommand } from "./lib/rehype-npm-command"
-
-/** @type {import('contentlayer/source-files').ComputedFields} */
-const computedFields = {
- slug: {
- type: "string",
- resolve: (doc) => `/${doc._raw.flattenedPath}`,
- },
- slugAsParams: {
- type: "string",
- resolve: (doc) => doc._raw.flattenedPath.split("/").slice(1).join("/"),
- },
-}
-
-const LinksProperties = defineNestedType(() => ({
- name: "LinksProperties",
- fields: {
- doc: {
- type: "string",
- },
- api: {
- type: "string",
- },
- },
-}))
-
-export const Doc = defineDocumentType(() => ({
- name: "Doc",
- filePathPattern: `docs/**/*.mdx`,
- contentType: "mdx",
- fields: {
- title: {
- type: "string",
- required: true,
- },
- description: {
- type: "string",
- required: true,
- },
- published: {
- type: "boolean",
- default: true,
- },
- links: {
- type: "nested",
- of: LinksProperties,
- },
- featured: {
- type: "boolean",
- default: false,
- required: false,
- },
- component: {
- type: "boolean",
- default: false,
- required: false,
- },
- toc: {
- type: "boolean",
- default: true,
- required: false,
- },
- },
- computedFields,
-}))
-
-export default makeSource({
- contentDirPath: "./content",
- documentTypes: [Doc],
- mdx: {
- remarkPlugins: [remarkGfm, codeImport],
- rehypePlugins: [
- rehypeSlug,
- rehypeComponent,
- () => (tree) => {
- visit(tree, (node) => {
- if (node?.type === "element" && node?.tagName === "pre") {
- const [codeEl] = node.children
- if (codeEl.tagName !== "code") {
- return
- }
-
- if (codeEl.data?.meta) {
- // Extract event from meta and pass it down the tree.
- const regex = /event="([^"]*)"/
- const match = codeEl.data?.meta.match(regex)
- if (match) {
- node.__event__ = match ? match[1] : null
- codeEl.data.meta = codeEl.data.meta.replace(regex, "")
- }
- }
-
- node.__rawString__ = codeEl.children?.[0].value
- node.__src__ = node.properties?.__src__
- node.__style__ = node.properties?.__style__
- }
- })
- },
- [
- rehypePrettyCode,
- {
- theme: "github-dark-default",
- getHighlighter,
- onVisitLine(node) {
- // Prevent lines from collapsing in `display: grid` mode, and allow empty
- // lines to be copy/pasted
- if (node.children.length === 0) {
- node.children = [{ type: "text", value: " " }]
- }
- },
- onVisitHighlightedLine(node) {
- node.properties.className.push("line--highlighted")
- },
- onVisitHighlightedWord(node) {
- node.properties.className = ["word--highlighted"]
- },
- },
- ],
- () => (tree) => {
- visit(tree, (node) => {
- if (node?.type === "element" && node?.tagName === "div") {
- if (!("data-rehype-pretty-code-fragment" in node.properties)) {
- return
- }
-
- const preElement = node.children.at(-1)
- if (preElement.tagName !== "pre") {
- return
- }
-
- preElement.properties["__withMeta__"] =
- node.children.at(0).tagName === "div"
- preElement.properties["__rawString__"] = node.__rawString__
-
- if (node.__src__) {
- preElement.properties["__src__"] = node.__src__
- }
-
- if (node.__event__) {
- preElement.properties["__event__"] = node.__event__
- }
-
- if (node.__style__) {
- preElement.properties["__style__"] = node.__style__
- }
- }
- })
- },
- rehypeNpmCommand,
- [
- rehypeAutolinkHeadings,
- {
- properties: {
- className: ["subheading-anchor"],
- ariaLabel: "Link to section",
- },
- },
- ],
- ],
- },
-})
diff --git a/deprecated/www/hooks/use-colors.ts b/deprecated/www/hooks/use-colors.ts
deleted file mode 100644
index 19d59fcbce..0000000000
--- a/deprecated/www/hooks/use-colors.ts
+++ /dev/null
@@ -1,24 +0,0 @@
-import { useAtom } from "jotai"
-import { atomWithStorage } from "jotai/utils"
-
-import { ColorFormat } from "@/lib/colors"
-import { useMounted } from "@/hooks/use-mounted"
-
-type Config = {
- format: ColorFormat
-}
-
-const colorsAtom = atomWithStorage("colors", {
- format: "hsl",
-})
-
-export function useColors() {
- const [colors, setColors] = useAtom(colorsAtom)
- const mounted = useMounted()
-
- return {
- isLoading: !mounted,
- format: colors.format,
- setFormat: (format: ColorFormat) => setColors({ format }),
- }
-}
diff --git a/deprecated/www/hooks/use-config.ts b/deprecated/www/hooks/use-config.ts
deleted file mode 100644
index e86324b3c6..0000000000
--- a/deprecated/www/hooks/use-config.ts
+++ /dev/null
@@ -1,25 +0,0 @@
-import { useAtom } from "jotai"
-import { atomWithStorage } from "jotai/utils"
-
-import { BaseColor } from "@/registry/registry-base-colors"
-import { Style } from "@/registry/registry-styles"
-
-type Config = {
- style: Style["name"]
- theme: BaseColor["name"]
- radius: number
- packageManager: "npm" | "yarn" | "pnpm" | "bun"
- installationType: "cli" | "manual"
-}
-
-const configAtom = atomWithStorage("config", {
- style: "new-york",
- theme: "zinc",
- radius: 0.5,
- packageManager: "pnpm",
- installationType: "cli",
-})
-
-export function useConfig() {
- return useAtom(configAtom)
-}
diff --git a/deprecated/www/hooks/use-copy-to-clipboard.ts b/deprecated/www/hooks/use-copy-to-clipboard.ts
deleted file mode 100644
index beaf8a8908..0000000000
--- a/deprecated/www/hooks/use-copy-to-clipboard.ts
+++ /dev/null
@@ -1,35 +0,0 @@
-"use client"
-
-import * as React from "react"
-
-export function useCopyToClipboard({
- timeout = 2000,
- onCopy,
-}: {
- timeout?: number
- onCopy?: () => void
-} = {}) {
- const [isCopied, setIsCopied] = React.useState(false)
-
- const copyToClipboard = (value: string) => {
- if (typeof window === "undefined" || !navigator?.clipboard?.writeText) {
- return
- }
-
- if (!value) return
-
- navigator.clipboard.writeText(value).then(() => {
- setIsCopied(true)
-
- if (onCopy) {
- onCopy()
- }
-
- setTimeout(() => {
- setIsCopied(false)
- }, timeout)
- }, console.error)
- }
-
- return { isCopied, copyToClipboard }
-}
diff --git a/deprecated/www/hooks/use-lift-mode.ts b/deprecated/www/hooks/use-lift-mode.ts
deleted file mode 100644
index bfafb75e51..0000000000
--- a/deprecated/www/hooks/use-lift-mode.ts
+++ /dev/null
@@ -1,21 +0,0 @@
-import { useAtom } from "jotai"
-import { atomWithStorage } from "jotai/utils"
-
-const configAtom = atomWithStorage("lift-mode", [])
-
-export function useLiftMode(name: string) {
- const [chunks, setChunks] = useAtom(configAtom)
-
- function toggleLiftMode(name: string) {
- setChunks((prev) => {
- return prev.includes(name)
- ? prev.filter((n) => n !== name)
- : [...prev, name]
- })
- }
-
- return {
- isLiftMode: chunks.includes(name),
- toggleLiftMode,
- }
-}
diff --git a/deprecated/www/hooks/use-lock-body.ts b/deprecated/www/hooks/use-lock-body.ts
deleted file mode 100644
index 3544a1b7d7..0000000000
--- a/deprecated/www/hooks/use-lock-body.ts
+++ /dev/null
@@ -1,12 +0,0 @@
-import * as React from "react"
-
-// @see https://usehooks.com/useLockBodyScroll.
-export function useLockBody() {
- React.useLayoutEffect((): (() => void) => {
- const originalStyle: string = window.getComputedStyle(
- document.body
- ).overflow
- document.body.style.overflow = "hidden"
- return () => (document.body.style.overflow = originalStyle)
- }, [])
-}
diff --git a/deprecated/www/hooks/use-media-query.tsx b/deprecated/www/hooks/use-media-query.tsx
deleted file mode 100644
index 95e552cd56..0000000000
--- a/deprecated/www/hooks/use-media-query.tsx
+++ /dev/null
@@ -1,19 +0,0 @@
-import * as React from "react"
-
-export function useMediaQuery(query: string) {
- const [value, setValue] = React.useState(false)
-
- React.useEffect(() => {
- function onChange(event: MediaQueryListEvent) {
- setValue(event.matches)
- }
-
- const result = matchMedia(query)
- result.addEventListener("change", onChange)
- setValue(result.matches)
-
- return () => result.removeEventListener("change", onChange)
- }, [query])
-
- return value
-}
diff --git a/deprecated/www/hooks/use-meta-color.ts b/deprecated/www/hooks/use-meta-color.ts
deleted file mode 100644
index ec52514b1e..0000000000
--- a/deprecated/www/hooks/use-meta-color.ts
+++ /dev/null
@@ -1,25 +0,0 @@
-import * as React from "react"
-import { useTheme } from "next-themes"
-
-import { META_THEME_COLORS } from "@/config/site"
-
-export function useMetaColor() {
- const { resolvedTheme } = useTheme()
-
- const metaColor = React.useMemo(() => {
- return resolvedTheme !== "dark"
- ? META_THEME_COLORS.light
- : META_THEME_COLORS.dark
- }, [resolvedTheme])
-
- const setMetaColor = React.useCallback((color: string) => {
- document
- .querySelector('meta[name="theme-color"]')
- ?.setAttribute("content", color)
- }, [])
-
- return {
- metaColor,
- setMetaColor,
- }
-}
diff --git a/deprecated/www/hooks/use-mounted.ts b/deprecated/www/hooks/use-mounted.ts
deleted file mode 100644
index 3a20c62ac7..0000000000
--- a/deprecated/www/hooks/use-mounted.ts
+++ /dev/null
@@ -1,11 +0,0 @@
-import * as React from "react"
-
-export function useMounted() {
- const [mounted, setMounted] = React.useState(false)
-
- React.useEffect(() => {
- setMounted(true)
- }, [])
-
- return mounted
-}
diff --git a/deprecated/www/hooks/use-mutation-observer.ts b/deprecated/www/hooks/use-mutation-observer.ts
deleted file mode 100644
index ad9b7ec78d..0000000000
--- a/deprecated/www/hooks/use-mutation-observer.ts
+++ /dev/null
@@ -1,20 +0,0 @@
-import * as React from "react"
-
-export const useMutationObserver = (
- ref: React.MutableRefObject,
- callback: MutationCallback,
- options = {
- attributes: true,
- characterData: true,
- childList: true,
- subtree: true,
- }
-) => {
- React.useEffect(() => {
- if (ref.current) {
- const observer = new MutationObserver(callback)
- observer.observe(ref.current, options)
- return () => observer.disconnect()
- }
- }, [ref, callback, options])
-}
diff --git a/deprecated/www/hooks/use-project.ts b/deprecated/www/hooks/use-project.ts
deleted file mode 100644
index 4f903ea868..0000000000
--- a/deprecated/www/hooks/use-project.ts
+++ /dev/null
@@ -1,49 +0,0 @@
-"use client"
-
-import * as React from "react"
-import { useAtom } from "jotai"
-import { atomWithStorage } from "jotai/utils"
-
-type Project = {
- blocks: string[]
-}
-
-const projectAtom = atomWithStorage("project", {
- blocks: [],
-})
-
-export function useProject() {
- const [isAdded, setIsAdded] = React.useState(false)
- const [project, setProject] = useAtom(projectAtom)
-
- const addBlock = React.useCallback((block: string) => {
- setProject((prev) => {
- if (prev.blocks.includes(block)) {
- return prev
- }
- return { ...prev, blocks: [...prev.blocks, block] }
- })
- setIsAdded(true)
-
- setTimeout(() => {
- setIsAdded(false)
- }, 2000)
- }, [])
-
- const removeBlock = React.useCallback((block: string) => {
- setProject((prev) => ({
- ...prev,
- blocks: prev.blocks.filter((b) => b !== block),
- }))
- }, [])
-
- const hasBlock = React.useCallback((block: string) => {
- return project.blocks.includes(block)
- }, [])
-
- const resetProject = React.useCallback(() => {
- setProject({ blocks: [] })
- }, [])
-
- return { project, addBlock, removeBlock, resetProject, hasBlock, isAdded }
-}
diff --git a/deprecated/www/hooks/use-themes-config.ts b/deprecated/www/hooks/use-themes-config.ts
deleted file mode 100644
index 8e8cd28e44..0000000000
--- a/deprecated/www/hooks/use-themes-config.ts
+++ /dev/null
@@ -1,18 +0,0 @@
-import { useAtom } from "jotai"
-import { atomWithStorage } from "jotai/utils"
-
-import { THEMES, Theme } from "@/lib/themes"
-
-type ThemesConfig = {
- activeTheme: Theme
-}
-
-const configAtom = atomWithStorage("themes:config2", {
- activeTheme: THEMES[0],
-})
-
-export function useThemesConfig() {
- const [themesConfig, setThemesConfig] = useAtom(configAtom)
-
- return { themesConfig, setThemesConfig }
-}
diff --git a/deprecated/www/lib/blocks.ts b/deprecated/www/lib/blocks.ts
deleted file mode 100644
index 6760fbdd33..0000000000
--- a/deprecated/www/lib/blocks.ts
+++ /dev/null
@@ -1,30 +0,0 @@
-"use server"
-
-import { registryItemSchema } from "shadcn/schema"
-import { z } from "zod"
-
-import { Style } from "@/registry/registry-styles"
-
-export async function getAllBlockIds(
- types: z.infer["type"][] = [
- "registry:block",
- "registry:internal",
- ],
- categories: string[] = [],
- style: Style["name"] = "new-york"
-): Promise {
- const { Index } = await import("@/__registry__")
- const index = z.record(registryItemSchema).parse(Index[style])
-
- return Object.values(index)
- .filter(
- (block) =>
- types.includes(block.type) &&
- (categories.length === 0 ||
- block.categories?.some((category) =>
- categories.includes(category)
- )) &&
- !block.name.startsWith("chart-")
- )
- .map((block) => block.name)
-}
diff --git a/deprecated/www/lib/charts.ts b/deprecated/www/lib/charts.ts
deleted file mode 100644
index d691cf7548..0000000000
--- a/deprecated/www/lib/charts.ts
+++ /dev/null
@@ -1,25 +0,0 @@
-export function themeColorsToCssVariables(
- colors: Record
-): Record {
- const cssVars = colors
- ? Object.fromEntries(
- Object.entries(colors).map(([name, value]) => {
- if (value === undefined) return []
- const cssName = themeColorNameToCssVariable(name)
- return [cssName, value]
- })
- )
- : {}
-
- // for (const key of Array.from({ length: 5 }, (_, index) => index)) {
- // cssVars[`--chart-${key + 1}`] =
- // cssVars[`--chart-${key + 1}`] ||
- // `${cssVars["--primary"]} / ${100 - key * 20}%`
- // }
-
- return cssVars
-}
-
-export function themeColorNameToCssVariable(name: string) {
- return `--${name.replace(/([a-z])([A-Z])/g, "$1-$2").toLowerCase()}`
-}
diff --git a/deprecated/www/lib/colors.ts b/deprecated/www/lib/colors.ts
deleted file mode 100644
index 42f07264fd..0000000000
--- a/deprecated/www/lib/colors.ts
+++ /dev/null
@@ -1,93 +0,0 @@
-import { z } from "zod"
-
-import { colors } from "@/registry/registry-colors"
-
-const colorSchema = z.object({
- name: z.string(),
- id: z.string(),
- scale: z.number(),
- className: z.string(),
- hex: z.string(),
- rgb: z.string(),
- hsl: z.string(),
- foreground: z.string(),
- oklch: z.string(),
-})
-
-const colorPaletteSchema = z.object({
- name: z.string(),
- colors: z.array(colorSchema),
-})
-
-export type ColorPalette = z.infer
-
-export function getColorFormat(color: Color) {
- return {
- className: `bg-${color.name}-100`,
- hex: color.hex,
- rgb: color.rgb,
- hsl: color.hsl,
- oklch: color.oklch,
- }
-}
-
-export type ColorFormat = keyof ReturnType
-
-export function getColors() {
- const tailwindColors = colorPaletteSchema.array().parse(
- Object.entries(colors)
- .map(([name, color]) => {
- if (!Array.isArray(color)) {
- return null
- }
-
- return {
- name,
- colors: color.map((color) => {
- const rgb = color.rgb.replace(
- /^rgb\((\d+),(\d+),(\d+)\)$/,
- "$1 $2 $3"
- )
-
- return {
- ...color,
- name,
- id: `${name}-${color.scale}`,
- className: `${name}-${color.scale}`,
- rgb,
- hsl: color.hsl.replace(
- /^hsl\(([\d.]+),([\d.]+%),([\d.]+%)\)$/,
- "$1 $2 $3"
- ),
- oklch: color.oklch.replace(
- /^oklch\(([\d.]+)\s*,\s*([\d.]+)\s*,\s*([\d.]+)\)$/,
- "$1 $2 $3"
- ),
- foreground: getForegroundFromBackground(rgb),
- }
- }),
- }
- })
- .filter(Boolean)
- )
-
- return tailwindColors
-}
-
-export type Color = ReturnType[number]["colors"][number]
-
-function getForegroundFromBackground(rgb: string) {
- const [r, g, b] = rgb.split(" ").map(Number)
-
- function toLinear(number: number): number {
- const base = number / 255
- return base <= 0.04045
- ? base / 12.92
- : Math.pow((base + 0.055) / 1.055, 2.4)
- }
-
- const luminance =
- 0.2126 * toLinear(r) + 0.7152 * toLinear(g) + 0.0722 * toLinear(b)
-
- return luminance > 0.179 ? "#000" : "#fff"
-}
diff --git a/deprecated/www/lib/events.ts b/deprecated/www/lib/events.ts
deleted file mode 100644
index 804f65e73b..0000000000
--- a/deprecated/www/lib/events.ts
+++ /dev/null
@@ -1,32 +0,0 @@
-import va from "@vercel/analytics"
-import { z } from "zod"
-
-const eventSchema = z.object({
- name: z.enum([
- "copy_npm_command",
- "copy_usage_import_code",
- "copy_usage_code",
- "copy_primitive_code",
- "copy_theme_code",
- "copy_block_code",
- "copy_chunk_code",
- "enable_lift_mode",
- "copy_chart_code",
- "copy_chart_theme",
- "copy_chart_data",
- "copy_color",
- ]),
- // declare type AllowedPropertyValues = string | number | boolean | null
- properties: z
- .record(z.union([z.string(), z.number(), z.boolean(), z.null()]))
- .optional(),
-})
-
-export type Event = z.infer
-
-export function trackEvent(input: Event): void {
- const event = eventSchema.parse(input)
- if (event) {
- va.track(event.name, event.properties)
- }
-}
diff --git a/deprecated/www/lib/fonts.ts b/deprecated/www/lib/fonts.ts
deleted file mode 100644
index ed245edf98..0000000000
--- a/deprecated/www/lib/fonts.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-import { GeistMono } from "geist/font/mono"
-import { GeistSans } from "geist/font/sans"
-
-export const fontSans = GeistSans
-
-export const fontMono = GeistMono
diff --git a/deprecated/www/lib/highlight-code.ts b/deprecated/www/lib/highlight-code.ts
deleted file mode 100644
index acc235f2d4..0000000000
--- a/deprecated/www/lib/highlight-code.ts
+++ /dev/null
@@ -1,17 +0,0 @@
-import { codeToHtml } from "shiki"
-
-export async function highlightCode(code: string) {
- const html = await codeToHtml(code, {
- lang: "jsx",
- theme: "github-dark-default",
- transformers: [
- {
- code(node) {
- node.properties["data-line-numbers"] = ""
- },
- },
- ],
- })
-
- return html
-}
diff --git a/deprecated/www/lib/highlighter-theme.json b/deprecated/www/lib/highlighter-theme.json
deleted file mode 100644
index d1a46c3b7d..0000000000
--- a/deprecated/www/lib/highlighter-theme.json
+++ /dev/null
@@ -1,380 +0,0 @@
-{
- "name": "Lambda Studio — Blackout",
- "semanticHighlighting": true,
- "colors": {
- "editorLink.activeForeground": "#ca8a0488",
- "foreground": "#fff8",
- "button.background": "#fff",
- "button.foreground": "#000",
- "button.hoverBackground": "#fffb",
- "list.highlightForeground": "#fff",
- "textLink.foreground": "#fff",
- "scrollbar.shadow": "#000",
- "textLink.activeForeground": "#fff8",
- "editor.lineHighlightBackground": "#8881",
- "editor.lineHighlightBorder": "#8882",
- "editorCursor.foreground": "#fff",
- "editor.findMatchBackground": "#fff8",
- "editor.findMatchHighlightBackground": "#fff2",
- "list.activeSelectionForeground": "#fff",
- "list.focusForeground": "#fff",
- "list.hoverForeground": "#fff",
- "list.inactiveSelectionForeground": "#fff",
- "list.inactiveSelectionBackground": "#000",
- "list.focusBackground": "#000",
- "list.focusAndSelectionOutline": "#000",
- "list.focusHighlightForeground": "#fff",
- "list.hoverBackground": "#000",
- "list.focusOutline": "#000",
- "list.activeSelectionBackground": "#000",
- "editorIndentGuide.background": "#fff2",
- "editor.background": "#000",
- "editor.foreground": "#fff",
- "editor.foldBackground": "#000",
- "editor.hoverHighlightBackground": "#000",
- "editor.selectionBackground": "#8888",
- "editor.inactiveSelectionBackground": "#8882",
- "gitDecoration.modifiedResourceForeground": "#fff",
- "gitDecoration.untrackedResourceForeground": "#a7cb7b",
- "gitDecoration.conflictingResourceForeground": "#ca8a04",
- "gitDecoration.deletedResourceForeground": "#c97b89",
- "listFilterWidget.background": "#000",
- "input.background": "#fff1",
- "titleBar.activeForeground": "#fff",
- "editorWidget.background": "#000",
- "editorGutter.background": "#000",
- "debugToolBar.background": "#000",
- "commandCenter.background": "#000",
- "sideBarSectionHeader.background": "#000",
- "focusBorder": "#fff8",
- "titleBar.activeBackground": "#000",
- "titleBar.inactiveBackground": "#000",
- "breadcrumb.background": "#000",
- "activityBar.background": "#000",
- "activityBar.foreground": "#fff8",
- "panel.background": "#000",
- "sideBar.background": "#000",
- "sideBarTitle.foreground": "#fff8",
- "tab.hoverBackground": "#000",
- "terminal.background": "#000",
- "statusBar.background": "#000",
- "statusBar.foreground": "#fff8",
- "selection.background": "#fff2",
- "editorPane.background": "#000",
- "badge.background": "#000",
- "banner.background": "#000",
- "menu.background": "#000",
- "activityBarBadge.background": "#000",
- "activityBarBadge.foreground": "#fff8",
- "editorLineNumber.foreground": "#fff2",
- "editorLineNumber.activeForeground": "#fff8",
- "statusBarItem.errorBackground": "#f43f5e"
- },
- "semanticTokenColors": {
- "comment": {
- "foreground": "#fff4"
- },
- "keyword": {
- "foreground": "#fff8"
- },
- "string": {
- "foreground": "#fff8"
- },
- "selfKeyword": {
- "foreground": "#fff",
- "bold": true
- },
- "method.declaration": {
- "foreground": "#fff",
- "bold": true
- },
- "method.definition": {
- "foreground": "#fff",
- "bold": true
- },
- "method": {
- "foreground": "#fff",
- "bold": false
- },
- "function.declaration": {
- "foreground": "#fff",
- "bold": true
- },
- "function.definition": {
- "foreground": "#fff",
- "bold": true
- },
- "function": {
- "foreground": "#fff",
- "bold": false
- },
- "property": {
- "foreground": "#fff"
- },
- "enumMember": {
- "foreground": "#fff8",
- "bold": false
- },
- "enum": {
- "foreground": "#fff",
- "bold": true
- },
- "boolean": {
- "foreground": "#fff8"
- },
- "number": {
- "foreground": "#fff8"
- },
- "type": {
- "foreground": "#fff",
- "bold": true
- },
- "typeAlias": {
- "foreground": "#fff",
- "bold": true
- },
- "class": {
- "foreground": "#fff",
- "bold": true
- },
- "selfTypeKeyword": {
- "foreground": "#fff",
- "bold": true
- },
- "builtinType": {
- "foreground": "#fff",
- "bold": true
- },
- "interface": {
- "foreground": "#fff8",
- "bold": false
- },
- "typeParameter": {
- "foreground": "#fff",
- "bold": true
- },
- "lifetime": {
- "foreground": "#fff8",
- "italic": false,
- "bold": false
- },
- "namespace": {
- "foreground": "#fff"
- },
- "macro": {
- "foreground": "#fff",
- "bold": false
- },
- "decorator": {
- "foreground": "#fff",
- "bold": false
- },
- "builtinAttribute": {
- "foreground": "#fff",
- "bold": false
- },
- "generic.attribute": {
- "foreground": "#fff"
- },
- "derive": {
- "foreground": "#fff"
- },
- "operator": {
- "foreground": "#fff8"
- },
- "variable": {
- "foreground": "#fff"
- },
- "variable.readonly": {
- "foreground": "#fff8"
- },
- "parameter": {
- "foreground": "#fff"
- },
- "variable.mutable": {
- "underline": true
- },
- "parameter.mutable": {
- "underline": true
- },
- "selfKeyword.mutable": {
- "underline": true
- },
- "variable.constant": {
- "foreground": "#fff8"
- },
- "struct": {
- "foreground": "#fff",
- "bold": true
- }
- },
- "tokenColors": [
- {
- "name": "Fallback Operator",
- "scope": ["keyword.operator"],
- "settings": {
- "foreground": "#fff8"
- }
- },
- {
- "name": "Fallback keywords",
- "scope": [
- "storage.type.ts",
- "keyword",
- "keyword.other",
- "keyword.control",
- "storage.type",
- "storage.modifier"
- ],
- "settings": {
- "foreground": "#fff8"
- }
- },
- {
- "name": "Fallback strings",
- "scope": ["string"],
- "settings": {
- "foreground": "#fff8"
- }
- },
- {
- "name": "Fallback JSON Properties",
- "scope": ["support.type.property-name.json"],
- "settings": {
- "foreground": "#fff"
- }
- },
- {
- "name": "Fallback string variables",
- "scope": ["string variable", "string meta.interpolation"],
- "settings": {
- "foreground": "#fff"
- }
- },
- {
- "name": "Fallback comments",
- "scope": ["comment"],
- "settings": {
- "foreground": "#fff4"
- }
- },
- {
- "name": "Fallback constants",
- "scope": ["constant"],
- "settings": {
- "foreground": "#fff8"
- }
- },
- {
- "name": "Fallback self/this",
- "scope": ["variable.language.this"],
- "settings": {
- "foreground": "#fff"
- }
- },
- {
- "name": "Fallback types",
- "scope": [
- "entity.other.alias",
- "source.php support.class",
- "entity.name.type",
- "meta.function-call support.class",
- "keyword.other.type",
- "entity.other.inherited-class"
- ],
- "settings": {
- "foreground": "#fff",
- "fontStyle": "bold"
- }
- },
- {
- "name": "Fallback method calls",
- "scope": ["meta.method-call entity.name.function"],
- "settings": {
- "foreground": "#fff",
- "fontStyle": ""
- }
- },
- {
- "name": "Fallback function calls",
- "scope": [
- "meta.function-call entity.name.function",
- "meta.function-call support.function",
- "meta.function.call entity.name.function"
- ],
- "settings": {
- "foreground": "#fff",
- "fontStyle": ""
- }
- },
- {
- "name": "Fallback enums & constants",
- "scope": ["constant.enum", "constant.other"],
- "settings": {
- "foreground": "#fff8"
- }
- },
- {
- "name": "Fallback Properties & func arguments",
- "scope": [
- "variable.other.property",
- "entity.name.goto-label",
- "entity.name.variable.parameter"
- ],
- "settings": {
- "foreground": "#fff"
- }
- },
- {
- "name": "Fallback functions & methods declarations",
- "scope": [
- "entity.name.function",
- "support.function",
- "support.function.constructor",
- "entity.name.function meta.function-call meta.method-call"
- ],
- "settings": {
- "foreground": "#fff",
- "fontStyle": "bold"
- }
- },
- {
- "name": "HTML Tags",
- "scope": [
- "meta.tag entity.name.tag.html",
- "entity.name.tag.template.html"
- ],
- "settings": {
- "foreground": "#fff"
- }
- },
- {
- "name": "HTML Attributes",
- "scope": ["entity.other.attribute-name.html"],
- "settings": {
- "foreground": "#fff8"
- }
- },
- {
- "name": "HTML Custom Tag",
- "scope": ["meta.tag.other.unrecognized.html entity.name.tag.html"],
- "settings": {
- "foreground": "#fff"
- }
- },
- {
- "name": "HTML Keywords",
- "scope": ["text.html keyword"],
- "settings": {
- "foreground": "#fff"
- }
- },
- {
- "name": "Punctuations",
- "scope": ["punctuation", "meta.brace"],
- "settings": {
- "foreground": "#fff8"
- }
- }
- ]
-}
diff --git a/deprecated/www/lib/registry.test.ts b/deprecated/www/lib/registry.test.ts
deleted file mode 100644
index c780842253..0000000000
--- a/deprecated/www/lib/registry.test.ts
+++ /dev/null
@@ -1,37 +0,0 @@
-import { describe, expect, it } from "vitest"
-
-import { createFileTreeForRegistryItemFiles } from "@/lib/registry"
-
-describe("createFileTreeForRegistryItemFiles", () => {
- it("should create a nested file tree structure", async () => {
- const files = [
- { path: "page.tsx" },
- { path: "components/foo.tsx" },
- { path: "components/baz.tsx" },
- { path: "components/boo/quip.tsx" },
- ]
-
- const expectedOutput = [
- { name: "page.tsx", path: "page.tsx" },
- {
- name: "components",
- children: [
- { name: "foo.tsx", path: "components/foo.tsx" },
- { name: "baz.tsx", path: "components/baz.tsx" },
- {
- name: "boo",
- children: [{ name: "quip.tsx", path: "components/boo/quip.tsx" }],
- },
- ],
- },
- ]
-
- const result = await createFileTreeForRegistryItemFiles(files)
- expect(result).toEqual(expectedOutput)
- })
-
- it("should return an empty array for empty input", async () => {
- const result = await createFileTreeForRegistryItemFiles([])
- expect(result).toEqual([])
- })
-})
diff --git a/deprecated/www/lib/registry.ts b/deprecated/www/lib/registry.ts
deleted file mode 100644
index 0186a12a8f..0000000000
--- a/deprecated/www/lib/registry.ts
+++ /dev/null
@@ -1,274 +0,0 @@
-import { promises as fs } from "fs"
-import { tmpdir } from "os"
-import path from "path"
-import { Index } from "@/__registry__"
-import { registryItemFileSchema, registryItemSchema } from "shadcn/schema"
-import { Project, ScriptKind, SourceFile, SyntaxKind } from "ts-morph"
-import { z } from "zod"
-
-import { Style } from "@/registry/registry-styles"
-
-export const DEFAULT_REGISTRY_STYLE = "new-york" satisfies Style["name"]
-
-const memoizedIndex: typeof Index = Object.fromEntries(
- Object.entries(Index).map(([style, items]) => [style, { ...items }])
-)
-
-export function getRegistryComponent(
- name: string,
- style: Style["name"] = DEFAULT_REGISTRY_STYLE
-) {
- return memoizedIndex[style][name]?.component
-}
-
-export async function getRegistryItem(
- name: string,
- style: Style["name"] = DEFAULT_REGISTRY_STYLE
-) {
- const item = memoizedIndex[style][name]
-
- if (!item) {
- return null
- }
-
- // Convert all file paths to object.
- // TODO: remove when we migrate to new registry.
- item.files = item.files.map((file: unknown) =>
- typeof file === "string" ? { path: file } : file
- )
-
- // Fail early before doing expensive file operations.
- const result = registryItemSchema.safeParse(item)
- if (!result.success) {
- return null
- }
-
- let files: typeof result.data.files = []
- for (const file of item.files) {
- const content = await getFileContent(file)
- const relativePath = path.relative(process.cwd(), file.path)
-
- files.push({
- ...file,
- path: relativePath,
- content,
- })
- }
-
- // Get meta.
- // Assume the first file is the main file.
- // const meta = await getFileMeta(files[0].path)
-
- // Fix file paths.
- files = fixFilePaths(files)
-
- const parsed = registryItemSchema.safeParse({
- ...result.data,
- files,
- // meta,
- })
-
- if (!parsed.success) {
- console.error(parsed.error.message)
- return null
- }
-
- return parsed.data
-}
-
-async function getFileContent(file: z.infer) {
- const raw = await fs.readFile(file.path, "utf-8")
-
- const project = new Project({
- compilerOptions: {},
- })
-
- const tempFile = await createTempSourceFile(file.path)
- const sourceFile = project.createSourceFile(tempFile, raw, {
- scriptKind: ScriptKind.TSX,
- })
-
- // Remove meta variables.
- removeVariable(sourceFile, "iframeHeight")
- removeVariable(sourceFile, "containerClassName")
- removeVariable(sourceFile, "description")
-
- let code = sourceFile.getFullText()
-
- // Some registry items uses default export.
- // We want to use named export instead.
- // TODO: do we really need this? - @shadcn.
- if (file.type !== "registry:page") {
- code = code.replaceAll("export default", "export")
- }
-
- // Fix imports.
- code = fixImport(code)
-
- return code
-}
-
-async function getFileMeta(filePath: string) {
- const raw = await fs.readFile(filePath, "utf-8")
-
- const project = new Project({
- compilerOptions: {},
- })
-
- const tempFile = await createTempSourceFile(filePath)
- const sourceFile = project.createSourceFile(tempFile, raw, {
- scriptKind: ScriptKind.TSX,
- })
-
- const iframeHeight = extractVariable(sourceFile, "iframeHeight")
- const containerClassName = extractVariable(sourceFile, "containerClassName")
- const description = extractVariable(sourceFile, "description")
-
- return {
- iframeHeight,
- containerClassName,
- description,
- }
-}
-
-function getFileTarget(file: z.infer) {
- let target = file.target
-
- if (!target || target === "") {
- const fileName = file.path.split("/").pop()
- if (
- file.type === "registry:block" ||
- file.type === "registry:component" ||
- file.type === "registry:example"
- ) {
- target = `components/${fileName}`
- }
-
- if (file.type === "registry:ui") {
- target = `components/ui/${fileName}`
- }
-
- if (file.type === "registry:hook") {
- target = `hooks/${fileName}`
- }
-
- if (file.type === "registry:lib") {
- target = `lib/${fileName}`
- }
- }
-
- return target ?? ""
-}
-
-async function createTempSourceFile(filename: string) {
- const dir = await fs.mkdtemp(path.join(tmpdir(), "shadcn-"))
- return path.join(dir, filename)
-}
-
-function removeVariable(sourceFile: SourceFile, name: string) {
- sourceFile.getVariableDeclaration(name)?.remove()
-}
-
-function extractVariable(sourceFile: SourceFile, name: string) {
- const variable = sourceFile.getVariableDeclaration(name)
- if (!variable) {
- return null
- }
-
- const value = variable
- .getInitializerIfKindOrThrow(SyntaxKind.StringLiteral)
- .getLiteralValue()
-
- variable.remove()
-
- return value
-}
-
-function fixFilePaths(files: z.infer["files"]) {
- if (!files) {
- return []
- }
-
- // Resolve all paths relative to the first file's directory.
- const firstFilePath = files[0].path
- const firstFilePathDir = path.dirname(firstFilePath)
-
- return files.map((file) => {
- return {
- ...file,
- path: path.relative(firstFilePathDir, file.path),
- target: getFileTarget(file),
- }
- })
-}
-
-export function fixImport(content: string) {
- const regex = /@\/(.+?)\/((?:.*?\/)?(?:components|ui|hooks|lib))\/([\w-]+)/g
-
- const replacement = (
- match: string,
- path: string,
- type: string,
- component: string
- ) => {
- if (type.endsWith("components")) {
- return `@/components/${component}`
- } else if (type.endsWith("ui")) {
- return `@/components/ui/${component}`
- } else if (type.endsWith("hooks")) {
- return `@/hooks/${component}`
- } else if (type.endsWith("lib")) {
- return `@/lib/${component}`
- }
-
- return match
- }
-
- return content.replace(regex, replacement)
-}
-
-export type FileTree = {
- name: string
- path?: string
- children?: FileTree[]
-}
-
-export function createFileTreeForRegistryItemFiles(
- files: Array<{ path: string; target?: string }>
-) {
- const root: FileTree[] = []
-
- for (const file of files) {
- const path = file.target ?? file.path
- const parts = path.split("/")
- let currentLevel = root
-
- for (let i = 0; i < parts.length; i++) {
- const part = parts[i]
- const isFile = i === parts.length - 1
- const existingNode = currentLevel.find((node) => node.name === part)
-
- if (existingNode) {
- if (isFile) {
- // Update existing file node with full path
- existingNode.path = path
- } else {
- // Move to next level in the tree
- currentLevel = existingNode.children!
- }
- } else {
- const newNode: FileTree = isFile
- ? { name: part, path }
- : { name: part, children: [] }
-
- currentLevel.push(newNode)
-
- if (!isFile) {
- currentLevel = newNode.children!
- }
- }
- }
- }
-
- return root
-}
diff --git a/deprecated/www/lib/rehype-component.ts b/deprecated/www/lib/rehype-component.ts
deleted file mode 100644
index c43aa8d872..0000000000
--- a/deprecated/www/lib/rehype-component.ts
+++ /dev/null
@@ -1,282 +0,0 @@
-import fs from "fs"
-import path from "path"
-import { UnistNode, UnistTree } from "types/unist"
-import { u } from "unist-builder"
-import { visit } from "unist-util-visit"
-
-import { Index } from "../__registry__"
-import { styles } from "../registry/registry-styles"
-
-export function rehypeComponent() {
- return async (tree: UnistTree) => {
- visit(tree, (node: UnistNode) => {
- // src prop overrides both name and fileName.
- const { value: srcPath } =
- (getNodeAttributeByName(node, "src") as {
- name: string
- value?: string
- type?: string
- }) || {}
-
- if (node.name === "ComponentSource") {
- const name = getNodeAttributeByName(node, "name")?.value as string
- const fileName = getNodeAttributeByName(node, "fileName")?.value as
- | string
- | undefined
-
- if (!name && !srcPath) {
- return null
- }
-
- try {
- for (const style of styles) {
- let src: string
-
- if (srcPath) {
- src = path.join(process.cwd(), srcPath)
- } else {
- const component = Index[style.name][name]
- src = fileName
- ? component.files.find((file: unknown) => {
- if (typeof file === "string") {
- return (
- file.endsWith(`${fileName}.tsx`) ||
- file.endsWith(`${fileName}.ts`)
- )
- }
- return false
- }) || component.files[0]?.path
- : component.files[0]?.path
- }
-
- // Read the source file.
- const filePath = src
- let source = fs.readFileSync(filePath, "utf8")
-
- // Replace imports.
- // TODO: Use @swc/core and a visitor to replace this.
- // For now a simple regex should do.
- source = source.replaceAll(
- `@/registry/${style.name}/`,
- "@/components/"
- )
- source = source.replaceAll("export default", "export")
-
- // Add code as children so that rehype can take over at build time.
- node.children?.push(
- u("element", {
- tagName: "pre",
- properties: {
- __src__: src,
- __style__: style.name,
- },
- attributes: [
- {
- name: "styleName",
- type: "mdxJsxAttribute",
- value: style.name,
- },
- ],
- children: [
- u("element", {
- tagName: "code",
- properties: {
- className: ["language-tsx"],
- },
- children: [
- {
- type: "text",
- value: source,
- },
- ],
- }),
- ],
- })
- )
- }
- } catch (error) {
- console.error(error)
- }
- }
-
- if (node.name === "ComponentPreview") {
- const name = getNodeAttributeByName(node, "name")?.value as string
-
- if (!name) {
- return null
- }
-
- try {
- for (const style of styles) {
- const component = Index[style.name][name]
- const src = component.files[0]?.path
-
- // Read the source file.
- const filePath = src
- let source = fs.readFileSync(filePath, "utf8")
-
- // Replace imports.
- // TODO: Use @swc/core and a visitor to replace this.
- // For now a simple regex should do.
- source = source.replaceAll(
- `@/registry/${style.name}/`,
- "@/components/"
- )
- source = source.replaceAll("export default", "export")
-
- // Add code as children so that rehype can take over at build time.
- node.children?.push(
- u("element", {
- tagName: "pre",
- properties: {
- __src__: src,
- },
- children: [
- u("element", {
- tagName: "code",
- properties: {
- className: ["language-tsx"],
- },
- children: [
- {
- type: "text",
- value: source,
- },
- ],
- }),
- ],
- })
- )
- }
- } catch (error) {
- console.error(error)
- }
- }
-
- // if (node.name === "ComponentExample") {
- // const source = getComponentSourceFileContent(node)
- // if (!source) {
- // return
- // }
-
- // // Replace the Example component with a pre element.
- // node.children?.push(
- // u("element", {
- // tagName: "pre",
- // properties: {
- // __src__: src,
- // },
- // children: [
- // u("element", {
- // tagName: "code",
- // properties: {
- // className: ["language-tsx"],
- // },
- // children: [
- // {
- // type: "text",
- // value: source,
- // },
- // ],
- // }),
- // ],
- // })
- // )
-
- // const extractClassname = getNodeAttributeByName(
- // node,
- // "extractClassname"
- // )
- // if (
- // extractClassname &&
- // typeof extractClassname.value !== "undefined" &&
- // extractClassname.value !== "false"
- // ) {
- // // Extract className from string
- // // TODO: Use @swc/core and a visitor to extract this.
- // // For now, a simple regex should do.
- // const values = source.match(/className="(.*)"/)
- // const className = values ? values[1] : ""
-
- // // Add the className as a jsx prop so we can pass it to the copy button.
- // node.attributes?.push({
- // name: "extractedClassNames",
- // type: "mdxJsxAttribute",
- // value: className,
- // })
-
- // // Add a pre element with the className only.
- // node.children?.push(
- // u("element", {
- // tagName: "pre",
- // properties: {},
- // children: [
- // u("element", {
- // tagName: "code",
- // properties: {
- // className: ["language-tsx"],
- // },
- // children: [
- // {
- // type: "text",
- // value: className,
- // },
- // ],
- // }),
- // ],
- // })
- // )
- // }
- // }
-
- // if (node.name === "ComponentSource") {
- // const source = getComponentSourceFileContent(node)
- // if (!source) {
- // return
- // }
-
- // // Replace the Source component with a pre element.
- // node.children?.push(
- // u("element", {
- // tagName: "pre",
- // properties: {
- // __src__: src,
- // },
- // children: [
- // u("element", {
- // tagName: "code",
- // properties: {
- // className: ["language-tsx"],
- // },
- // children: [
- // {
- // type: "text",
- // value: source,
- // },
- // ],
- // }),
- // ],
- // })
- // )
- // }
- })
- }
-}
-
-function getNodeAttributeByName(node: UnistNode, name: string) {
- return node.attributes?.find((attribute) => attribute.name === name)
-}
-
-function getComponentSourceFileContent(node: UnistNode) {
- const src = getNodeAttributeByName(node, "src")?.value as string
-
- if (!src) {
- return null
- }
-
- // Read the source file.
- const filePath = path.join(process.cwd(), src)
- const source = fs.readFileSync(filePath, "utf8")
-
- return source
-}
diff --git a/deprecated/www/lib/rehype-npm-command.ts b/deprecated/www/lib/rehype-npm-command.ts
deleted file mode 100644
index ee163bc566..0000000000
--- a/deprecated/www/lib/rehype-npm-command.ts
+++ /dev/null
@@ -1,99 +0,0 @@
-import { UnistNode, UnistTree } from "types/unist"
-import { visit } from "unist-util-visit"
-
-export function rehypeNpmCommand() {
- return (tree: UnistTree) => {
- visit(tree, (node: UnistNode) => {
- if (node.type !== "element" || node?.tagName !== "pre") {
- return
- }
-
- // npm install.
- if (node.properties?.["__rawString__"]?.startsWith("npm install")) {
- const npmCommand = node.properties?.["__rawString__"]
- node.properties["__npmCommand__"] = npmCommand
- node.properties["__yarnCommand__"] = npmCommand.replace(
- "npm install",
- "yarn add"
- )
- node.properties["__pnpmCommand__"] = npmCommand.replace(
- "npm install",
- "pnpm add"
- )
- node.properties["__bunCommand__"] = npmCommand.replace(
- "npm install",
- "bun add"
- )
- }
-
- // npx create-.
- if (node.properties?.["__rawString__"]?.startsWith("npx create-")) {
- const npmCommand = node.properties?.["__rawString__"]
- node.properties["__npmCommand__"] = npmCommand
- node.properties["__yarnCommand__"] = npmCommand.replace(
- "npx create-",
- "yarn create "
- )
- node.properties["__pnpmCommand__"] = npmCommand.replace(
- "npx create-",
- "pnpm create "
- )
- node.properties["__bunCommand__"] = npmCommand.replace(
- "npx",
- "bunx --bun"
- )
- }
-
- // npm create.
- if (node.properties?.["__rawString__"]?.startsWith("npm create")) {
- const npmCommand = node.properties?.["__rawString__"]
- node.properties["__npmCommand__"] = npmCommand
- node.properties["__yarnCommand__"] = npmCommand.replace(
- "npm create",
- "yarn create"
- )
- node.properties["__pnpmCommand__"] = npmCommand.replace(
- "npm create",
- "pnpm create"
- )
- node.properties["__bunCommand__"] = npmCommand.replace(
- "npm create",
- "bun create"
- )
- }
-
- // npx.
- if (
- node.properties?.["__rawString__"]?.startsWith("npx") &&
- !node.properties?.["__rawString__"]?.startsWith("npx create-")
- ) {
- const npmCommand = node.properties?.["__rawString__"]
- node.properties["__npmCommand__"] = npmCommand
- node.properties["__yarnCommand__"] = npmCommand
- node.properties["__pnpmCommand__"] = npmCommand.replace(
- "npx",
- "pnpm dlx"
- )
- node.properties["__bunCommand__"] = npmCommand.replace(
- "npx",
- "bunx --bun"
- )
- }
-
- // npm run.
- if (node.properties?.["__rawString__"]?.startsWith("npm run")) {
- const npmCommand = node.properties?.["__rawString__"]
- node.properties["__npmCommand__"] = npmCommand
- node.properties["__yarnCommand__"] = npmCommand.replace(
- "npm run",
- "yarn"
- )
- node.properties["__pnpmCommand__"] = npmCommand.replace(
- "npm run",
- "pnpm"
- )
- node.properties["__bunCommand__"] = npmCommand.replace("npm run", "bun")
- }
- })
- }
-}
diff --git a/deprecated/www/lib/themes.ts b/deprecated/www/lib/themes.ts
deleted file mode 100644
index 2b589938b3..0000000000
--- a/deprecated/www/lib/themes.ts
+++ /dev/null
@@ -1,482 +0,0 @@
-import { themeColorsToCssVariables } from "@/lib/charts"
-
-const _THEMES = [
- {
- name: "Sapphire",
- id: "default-sapphire",
- colors: {
- background: "0 0% 100%",
- foreground: "222.2 84% 4.9%",
- card: "0 0% 100%",
- cardForeground: "222.2 84% 4.9%",
- popover: "0 0% 100%",
- popoverForeground: "222.2 84% 4.9%",
- primary: "221.2 83.2% 53.3%",
- primaryForeground: "210 40% 98%",
- secondary: "210 40% 96.1%",
- secondaryForeground: "222.2 47.4% 11.2%",
- muted: "210 40% 96.1%",
- mutedForeground: "215.4 16.3% 44%",
- accent: "210 40% 96.1%",
- accentForeground: "222.2 47.4% 11.2%",
- destructive: "0 72% 51%",
- destructiveForeground: "210 40% 98%",
- border: "214.3 31.8% 91.4%",
- input: "214.3 31.8% 91.4%",
- ring: "221.2 83.2% 53.3%",
- "chart-1": "221.2 83.2% 53.3%",
- "chart-2": "212 95% 68%",
- "chart-3": "216 92% 60%",
- "chart-4": "210 98% 78%",
- "chart-5": "212 97% 87%",
- },
- colorsDark: {
- background: "240 10% 3.9%",
- foreground: "0 0% 98%",
- card: "240 10% 3.9%",
- "card-foreground": "0 0% 98%",
- popover: "240 10% 3.9%",
- "popover-foreground": "0 0% 98%",
- primary: "221.2 83.2% 53.3%",
- primaryForeground: "210 40% 98%",
- secondary: "210 40% 96.1%",
- secondaryForeground: "222.2 47.4% 11.2%",
- muted: "240 3.7% 15.9%",
- "muted-foreground": "240 5% 64.9%",
- accent: "240 3.7% 15.9%",
- "accent-foreground": "0 0% 98%",
- destructive: "0 72% 51%",
- destructiveForeground: "210 40% 98%",
- border: "240 3.7% 15.9%",
- input: "240 3.7% 15.9%",
- ring: "221.2 83.2% 53.3%",
- "chart-1": "221.2 83.2% 53.3%",
- "chart-2": "212 95% 68%",
- "chart-3": "216 92% 60%",
- "chart-4": "210 98% 78%",
- "chart-5": "212 97% 87%",
- },
- fontFamily: {
- heading: {
- name: "Inter",
- type: "sans-serif",
- },
- body: {
- name: "Inter",
- type: "sans-serif",
- },
- },
- radius: 0.5,
- },
- {
- name: "Default",
- id: "default-shadcn",
- colors: {
- background: "0 0% 100%",
- foreground: "240 10% 3.9%",
- card: "0 0% 100%",
- "card-foreground": "240 10% 3.9%",
- popover: "0 0% 100%",
- "popover-foreground": "240 10% 3.9%",
- primary: "240 5.9% 10%",
- "primary-foreground": "0 0% 98%",
- secondary: "240 4.8% 95.9%",
- "secondary-foreground": "240 5.9% 10%",
- muted: "240 4.8% 95.9%",
- "muted-foreground": "240 3.8% 46.1%",
- accent: "240 4.8% 95.9%",
- "accent-foreground": "240 5.9% 10%",
- destructive: "0 84.2% 60.2%",
- "destructive-foreground": "0 0% 98%",
- border: "240 5.9% 90%",
- input: "240 5.9% 90%",
- ring: "240 10% 3.9%",
- "chart-1": "173 58% 39%",
- "chart-2": "12 76% 61%",
- "chart-3": "197 37% 24%",
- "chart-4": "43 74% 66%",
- "chart-5": "27 87% 67%",
- },
- colorsDark: {
- background: "240 10% 3.9%",
- foreground: "0 0% 98%",
- card: "240 10% 3.9%",
- "card-foreground": "0 0% 98%",
- popover: "240 10% 3.9%",
- "popover-foreground": "0 0% 98%",
- primary: "0 0% 98%",
- "primary-foreground": "240 5.9% 10%",
- secondary: "240 3.7% 15.9%",
- "secondary-foreground": "0 0% 98%",
- muted: "240 3.7% 15.9%",
- "muted-foreground": "240 5% 64.9%",
- accent: "240 3.7% 15.9%",
- "accent-foreground": "0 0% 98%",
- destructive: "0 62.8% 30.6%",
- "destructive-foreground": "0 0% 98%",
- border: "240 3.7% 15.9%",
- input: "240 3.7% 15.9%",
- ring: "240 4.9% 83.9%",
- "chart-1": "220 70% 50%",
- "chart-5": "160 60% 45%",
- "chart-3": "30 80% 55%",
- "chart-4": "280 65% 60%",
- "chart-2": "340 75% 55%",
- },
- fontFamily: {
- heading: {
- name: "Inter",
- type: "sans-serif",
- },
- body: {
- name: "Inter",
- type: "sans-serif",
- },
- },
- radius: 0.5,
- },
- {
- name: "Palette",
- id: "default-palette",
- colors: {
- background: "0 0% 100%",
- foreground: "240 10% 3.9%",
- card: "0 0% 100%",
- "card-foreground": "240 10% 3.9%",
- popover: "0 0% 100%",
- "popover-foreground": "240 10% 3.9%",
- primary: "240 5.9% 10%",
- "primary-foreground": "0 0% 98%",
- secondary: "240 4.8% 95.9%",
- "secondary-foreground": "240 5.9% 10%",
- muted: "240 4.8% 95.9%",
- "muted-foreground": "240 3.8% 46.1%",
- accent: "240 4.8% 95.9%",
- "accent-foreground": "240 5.9% 10%",
- destructive: "0 84.2% 60.2%",
- "destructive-foreground": "0 0% 98%",
- border: "240 5.9% 90%",
- input: "240 5.9% 90%",
- ring: "240 10% 3.9%",
- "chart-1": "12 76% 61%",
- "chart-2": "173 58% 39%",
- "chart-3": "197 37% 24%",
- "chart-4": "43 74% 66%",
- "chart-5": "27 87% 67%",
- },
- colorsDark: {
- background: "240 10% 3.9%",
- foreground: "0 0% 98%",
- card: "240 10% 3.9%",
- "card-foreground": "0 0% 98%",
- popover: "240 10% 3.9%",
- "popover-foreground": "0 0% 98%",
- primary: "0 0% 98%",
- "primary-foreground": "240 5.9% 10%",
- secondary: "240 3.7% 15.9%",
- "secondary-foreground": "0 0% 98%",
- muted: "240 3.7% 15.9%",
- "muted-foreground": "240 5% 64.9%",
- accent: "240 3.7% 15.9%",
- "accent-foreground": "0 0% 98%",
- destructive: "0 62.8% 30.6%",
- "destructive-foreground": "0 0% 98%",
- border: "240 3.7% 15.9%",
- input: "240 3.7% 15.9%",
- ring: "240 4.9% 83.9%",
- "chart-1": "220 70% 50%",
- "chart-2": "160 60% 45%",
- "chart-3": "30 80% 55%",
- "chart-4": "280 65% 60%",
- "chart-5": "340 75% 55%",
- },
- fontFamily: {
- heading: {
- name: "Inter",
- type: "sans-serif",
- },
- body: {
- name: "Inter",
- type: "sans-serif",
- },
- },
- radius: 0.5,
- },
- {
- name: "Ruby",
- id: "default-ruby",
- colors: {
- background: "0 0% 100%",
- foreground: "240 10% 3.9%",
- card: "0 0% 100%",
- cardForeground: "240 10% 3.9%",
- popover: "0 0% 100%",
- popoverForeground: "240 10% 3.9%",
- primary: "346.8 77.2% 49.8%",
- primaryForeground: "355.7 100% 99%",
- secondary: "240 4.8% 95.9%",
- secondaryForeground: "240 5.9% 10%",
- muted: "240 4.8% 95.9%",
- mutedForeground: "240 3.8% 45%",
- accent: "240 4.8% 95.9%",
- accentForeground: "240 5.9% 10%",
- destructive: "0 72% 51%",
- destructiveForeground: "0 0% 98%",
- border: "240 5.9% 90%",
- input: "240 5.9% 90%",
- ring: "346.8 77.2% 49.8%",
- "chart-1": "347 77% 50%",
- "chart-2": "352 83% 91%",
- "chart-3": "350 80% 72%",
- "chart-4": "351 83% 82%",
- "chart-5": "349 77% 62%",
- },
- colorsDark: {
- background: "240 10% 3.9%",
- foreground: "0 0% 98%",
- card: "240 10% 3.9%",
- "card-foreground": "0 0% 98%",
- popover: "240 10% 3.9%",
- "popover-foreground": "0 0% 98%",
- primary: "346.8 77.2% 49.8%",
- primaryForeground: "355.7 100% 99%",
- secondary: "240 4.8% 95.9%",
- secondaryForeground: "240 5.9% 10%",
- muted: "240 3.7% 15.9%",
- "muted-foreground": "240 5% 64.9%",
- accent: "240 3.7% 15.9%",
- "accent-foreground": "0 0% 98%",
- destructive: "0 72% 51%",
- destructiveForeground: "0 0% 98%",
- border: "240 3.7% 15.9%",
- input: "240 3.7% 15.9%",
- ring: "221.2 83.2% 53.3%",
- "chart-1": "347 77% 50%",
- "chart-2": "349 77% 62%",
- "chart-3": "350 80% 72%",
- "chart-4": "351 83% 82%",
- "chart-5": "352 83% 91%",
- },
- fontFamily: {
- heading: {
- name: "Inter",
- type: "sans-serif",
- },
- body: {
- name: "Inter",
- type: "sans-serif",
- },
- },
- radius: 0.5,
- },
- {
- name: "Emerald",
- id: "default-emerald",
- colors: {
- background: "0 0% 100%",
- foreground: "240 10% 3.9%",
- card: "0 0% 100%",
- cardForeground: "240 10% 3.9%",
- popover: "0 0% 100%",
- popoverForeground: "240 10% 3.9%",
- primary: "142 86% 28%",
- primaryForeground: "356 29% 98%",
- secondary: "240 4.8% 95.9%",
- secondaryForeground: "240 5.9% 10%",
- muted: "240 4.8% 95.9%",
- mutedForeground: "240 3.8% 45%",
- accent: "240 4.8% 95.9%",
- accentForeground: "240 5.9% 10%",
- destructive: "0 72% 51%",
- destructiveForeground: "0 0% 98%",
- border: "240 5.9% 90%",
- input: "240 5.9% 90%",
- ring: "142 86% 28%",
- "chart-1": "139 65% 20%",
- "chart-2": "140 74% 44%",
- "chart-3": "142 88% 28%",
- "chart-4": "137 55% 15%",
- "chart-5": "141 40% 9%",
- },
- colorsDark: {
- background: "240 10% 3.9%",
- foreground: "0 0% 98%",
- card: "240 10% 3.9%",
- "card-foreground": "0 0% 98%",
- popover: "240 10% 3.9%",
- "popover-foreground": "0 0% 98%",
- primary: "142 86% 28%",
- primaryForeground: "356 29% 98%",
- secondary: "240 4.8% 95.9%",
- secondaryForeground: "240 5.9% 10%",
- muted: "240 3.7% 15.9%",
- "muted-foreground": "240 5% 64.9%",
- accent: "240 3.7% 15.9%",
- "accent-foreground": "0 0% 98%",
- destructive: "0 72% 51%",
- destructiveForeground: "0 0% 98%",
- border: "240 3.7% 15.9%",
- input: "240 3.7% 15.9%",
- ring: "142 86% 28%",
- "chart-1": "142 88% 28%",
- "chart-2": "139 65% 20%",
- "chart-3": "140 74% 24%",
- "chart-4": "137 55% 15%",
- "chart-5": "141 40% 9%",
- },
- fontFamily: {
- heading: {
- name: "Inter",
- type: "sans-serif",
- },
- body: {
- name: "Inter",
- type: "sans-serif",
- },
- },
- radius: 0.5,
- },
- {
- name: "Daylight",
- id: "default-daylight",
- colors: {
- background: "36 39% 88%",
- foreground: "36 45% 15%",
- primary: "36 45% 70%",
- primaryForeground: "36 45% 11%",
- secondary: "40 35% 77%",
- secondaryForeground: "36 45% 25%",
- accent: "36 64% 57%",
- accentForeground: "36 72% 17%",
- destructive: "0 84% 37%",
- destructiveForeground: "0 0% 98%",
- muted: "36 33% 75%",
- mutedForeground: "36 45% 25%",
- card: "36 46% 82%",
- cardForeground: "36 45% 20%",
- popover: "0 0% 100%",
- popoverForeground: "240 10% 3.9%",
- border: "36 45% 60%",
- input: "36 45% 60%",
- ring: "36 45% 30%",
- "chart-1": "25 34% 28%",
- "chart-2": "26 36% 34%",
- "chart-3": "28 40% 40%",
- "chart-4": "31 41% 48%",
- "chart-5": "35 43% 53%",
- },
- colorsDark: {
- background: "36 39% 88%",
- foreground: "36 45% 15%",
- primary: "36 45% 70%",
- primaryForeground: "36 45% 11%",
- secondary: "40 35% 77%",
- secondaryForeground: "36 45% 25%",
- accent: "36 64% 57%",
- accentForeground: "36 72% 17%",
- destructive: "0 84% 37%",
- destructiveForeground: "0 0% 98%",
- muted: "36 33% 75%",
- mutedForeground: "36 45% 25%",
- card: "36 46% 82%",
- cardForeground: "36 45% 20%",
- popover: "0 0% 100%",
- popoverForeground: "240 10% 3.9%",
- border: "36 45% 60%",
- input: "36 45% 60%",
- ring: "36 45% 30%",
- "chart-1": "25 34% 28%",
- "chart-2": "26 36% 34%",
- "chart-3": "28 40% 40%",
- "chart-4": "31 41% 48%",
- "chart-5": "35 43% 53%",
- },
- fontFamily: {
- heading: {
- name: "DM Sans",
- type: "sans-serif",
- },
- body: {
- name: "Space Mono",
- type: "monospace",
- },
- },
- },
- {
- name: "Midnight",
- id: "default-midnight",
- colors: {
- background: "240 5% 6%",
- foreground: "60 5% 90%",
- primary: "240 0% 90%",
- primaryForeground: "60 0% 0%",
- secondary: "240 4% 15%",
- secondaryForeground: "60 5% 85%",
- accent: "240 0% 13%",
- accentForeground: "60 0% 100%",
- destructive: "0 60% 50%",
- destructiveForeground: "0 0% 98%",
- muted: "240 5% 25%",
- mutedForeground: "60 5% 85%",
- card: "240 4% 10%",
- cardForeground: "60 5% 90%",
- popover: "240 5% 15%",
- popoverForeground: "60 5% 85%",
- border: "240 6% 20%",
- input: "240 6% 20%",
- ring: "240 5% 90%",
- "chart-1": "359 2% 90%",
- "chart-2": "240 1% 74%",
- "chart-3": "240 1% 58%",
- "chart-4": "240 1% 42%",
- "chart-5": "240 2% 26%",
- },
- colorsDark: {
- background: "240 5% 6%",
- foreground: "60 5% 90%",
- primary: "240 0% 90%",
- primaryForeground: "60 0% 0%",
- secondary: "240 4% 15%",
- secondaryForeground: "60 5% 85%",
- accent: "240 0% 13%",
- accentForeground: "60 0% 100%",
- destructive: "0 60% 50%",
- destructiveForeground: "0 0% 98%",
- muted: "240 5% 25%",
- mutedForeground: "60 5% 85%",
- card: "240 4% 10%",
- cardForeground: "60 5% 90%",
- popover: "240 5% 15%",
- popoverForeground: "60 5% 85%",
- border: "240 6% 20%",
- input: "240 6% 20%",
- ring: "240 5% 90%",
- "chart-1": "359 2% 90%",
- "chart-2": "240 1% 74%",
- "chart-3": "240 1% 58%",
- "chart-4": "240 1% 42%",
- "chart-5": "240 2% 26%",
- },
- fontFamily: {
- heading: {
- name: "Manrope",
- type: "sans-serif",
- },
- body: {
- name: "Manrope",
- type: "sans-serif",
- },
- },
- radius: 0.5,
- },
-] as const
-
-export const THEMES = _THEMES.map((theme) => ({
- ...theme,
- cssVars: {
- light: themeColorsToCssVariables(theme.colors),
- dark: themeColorsToCssVariables(theme.colorsDark),
- },
-}))
-
-export type Theme = (typeof THEMES)[number]
diff --git a/deprecated/www/lib/toc.ts b/deprecated/www/lib/toc.ts
deleted file mode 100644
index 6e7de5680c..0000000000
--- a/deprecated/www/lib/toc.ts
+++ /dev/null
@@ -1,81 +0,0 @@
-// @ts-nocheck
-// TODO: I'll fix this later.
-
-import { toc } from "mdast-util-toc"
-import { remark } from "remark"
-import { visit } from "unist-util-visit"
-
-const textTypes = ["text", "emphasis", "strong", "inlineCode"]
-
-function flattenNode(node) {
- const p = []
- visit(node, (node) => {
- if (!textTypes.includes(node.type)) return
- p.push(node.value)
- })
- return p.join(``)
-}
-
-interface Item {
- title: string
- url: string
- items?: Item[]
-}
-
-interface Items {
- items?: Item[]
-}
-
-function getItems(node, current): Items {
- if (!node) {
- return {}
- }
-
- if (node.type === "paragraph") {
- visit(node, (item) => {
- if (item.type === "link") {
- current.url = item.url
- current.title = flattenNode(node)
- }
-
- if (item.type === "text") {
- current.title = flattenNode(node)
- }
- })
-
- return current
- }
-
- if (node.type === "list") {
- current.items = node.children.map((i) => getItems(i, {}))
-
- return current
- } else if (node.type === "listItem") {
- const heading = getItems(node.children[0], {})
-
- if (node.children.length > 1) {
- getItems(node.children[1], heading)
- }
-
- return heading
- }
-
- return {}
-}
-
-const getToc = () => (node, file) => {
- const table = toc(node)
- const items = getItems(table.map, {})
-
- file.data = items
-}
-
-export type TableOfContents = Items
-
-export async function getTableOfContents(
- content: string
-): Promise {
- const result = await remark().use(getToc).process(content)
-
- return result.data
-}
diff --git a/deprecated/www/lib/utils.ts b/deprecated/www/lib/utils.ts
deleted file mode 100644
index 3a8eda3d06..0000000000
--- a/deprecated/www/lib/utils.ts
+++ /dev/null
@@ -1,19 +0,0 @@
-import { clsx, type ClassValue } from "clsx"
-import { twMerge } from "tailwind-merge"
-
-export function cn(...inputs: ClassValue[]) {
- return twMerge(clsx(inputs))
-}
-
-export function formatDate(input: string | number): string {
- const date = new Date(input)
- return date.toLocaleDateString("en-US", {
- month: "long",
- day: "numeric",
- year: "numeric",
- })
-}
-
-export function absoluteUrl(path: string) {
- return `${process.env.NEXT_PUBLIC_APP_URL}${path}`
-}
diff --git a/deprecated/www/lib/validations/log.ts b/deprecated/www/lib/validations/log.ts
deleted file mode 100644
index 776f58239d..0000000000
--- a/deprecated/www/lib/validations/log.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-import { z } from "zod"
-
-export const logSchema = z.object({
- event: z.enum(["copy_primitive"]),
- data: z.record(z.string()),
-})
diff --git a/deprecated/www/lib/validations/og.ts b/deprecated/www/lib/validations/og.ts
deleted file mode 100644
index c7ac7eb95c..0000000000
--- a/deprecated/www/lib/validations/og.ts
+++ /dev/null
@@ -1,7 +0,0 @@
-import { z } from "zod"
-
-export const ogImageSchema = z.object({
- heading: z.string(),
- type: z.string(),
- mode: z.enum(["light", "dark"]).default("dark"),
-})
diff --git a/deprecated/www/next-env.d.ts b/deprecated/www/next-env.d.ts
deleted file mode 100644
index fd36f9494e..0000000000
--- a/deprecated/www/next-env.d.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-///
-///
-///
-
-// NOTE: This file should not be edited
-// see https://nextjs.org/docs/basic-features/typescript for more information.
diff --git a/deprecated/www/next.config.mjs b/deprecated/www/next.config.mjs
deleted file mode 100644
index d4d888e980..0000000000
--- a/deprecated/www/next.config.mjs
+++ /dev/null
@@ -1,79 +0,0 @@
-import { createContentlayerPlugin } from "next-contentlayer2"
-
-/** @type {import('next').NextConfig} */
-const nextConfig = {
- experimental: {
- outputFileTracingIncludes: {
- "/blocks/*": ["./registry/**/*"],
- },
- },
- reactStrictMode: true,
- swcMinify: true,
- images: {
- remotePatterns: [
- {
- protocol: "https",
- hostname: "avatars.githubusercontent.com",
- },
- {
- protocol: "https",
- hostname: "images.unsplash.com",
- },
- ],
- },
- redirects() {
- return [
- {
- source: "/components",
- destination: "/docs/components/accordion",
- permanent: true,
- },
- {
- source: "/docs/components",
- destination: "/docs/components/accordion",
- permanent: true,
- },
- {
- source: "/examples",
- destination: "/examples/mail",
- permanent: false,
- },
- {
- source: "/docs/primitives/:path*",
- destination: "/docs/components/:path*",
- permanent: true,
- },
- {
- source: "/figma",
- destination: "/docs/figma",
- permanent: true,
- },
- {
- source: "/docs/forms",
- destination: "/docs/components/form",
- permanent: false,
- },
- {
- source: "/docs/forms/react-hook-form",
- destination: "/docs/components/form",
- permanent: false,
- },
- {
- source: "/sidebar",
- destination: "/docs/components/sidebar",
- permanent: true,
- },
- {
- source: "/react-19",
- destination: "/docs/react-19",
- permanent: true,
- },
- ]
- },
-}
-
-const withContentlayer = createContentlayerPlugin({
- // Additional Contentlayer config options
-})
-
-export default withContentlayer(nextConfig)
diff --git a/deprecated/www/package.json b/deprecated/www/package.json
deleted file mode 100644
index 67d606eb62..0000000000
--- a/deprecated/www/package.json
+++ /dev/null
@@ -1,128 +0,0 @@
-{
- "name": "www",
- "version": "0.0.1",
- "private": true,
- "type": "module",
- "scripts": {
- "dev": "next dev -p 3333",
- "build": "pnpm --filter=shadcn build && contentlayer2 build && pnpm build:registry && next build",
- "build:registry": "tsx --tsconfig ./tsconfig.scripts.json ./scripts/build-registry.mts && prettier --loglevel silent --write \"registry/**/*.{ts,tsx,mdx}\" --cache",
- "registry:build": "tsx --tsconfig ./tsconfig.scripts.json ./scripts/build-registry.mts && prettier --loglevel silent --write \"registry/**/*.{ts,tsx,mdx}\" --cache",
- "registry:capture": "tsx --tsconfig ./tsconfig.scripts.json ./scripts/capture-registry.mts",
- "build:docs": "contentlayer2 build",
- "seed:tasks": "tsx --tsconfig ./tsconfig.scripts.json ./app/(app)/examples/tasks/data/seed.ts",
- "start": "next start -p 3333",
- "lint": "next lint",
- "lint:fix": "next lint --fix",
- "preview": "next build && next start -p 3333",
- "typecheck": "contentlayer2 build && tsc --noEmit",
- "format:write": "prettier --write \"**/*.{ts,tsx,mdx}\" --cache",
- "format:check": "prettier --check \"**/*.{ts,tsx,mdx}\" --cache"
- },
- "dependencies": {
- "@dnd-kit/core": "^6.3.1",
- "@dnd-kit/modifiers": "^9.0.0",
- "@dnd-kit/sortable": "^10.0.0",
- "@dnd-kit/utilities": "^3.2.2",
- "@emotion/is-prop-valid": "^1.3.1",
- "@faker-js/faker": "^8.2.0",
- "@hookform/resolvers": "^3.1.0",
- "@radix-ui/react-accessible-icon": "^1.0.3",
- "@radix-ui/react-accordion": "^1.1.2",
- "@radix-ui/react-alert-dialog": "^1.0.4",
- "@radix-ui/react-aspect-ratio": "^1.0.3",
- "@radix-ui/react-avatar": "^1.0.3",
- "@radix-ui/react-checkbox": "^1.0.4",
- "@radix-ui/react-collapsible": "^1.0.3",
- "@radix-ui/react-context-menu": "^2.1.4",
- "@radix-ui/react-dialog": "^1.1.1",
- "@radix-ui/react-dropdown-menu": "^2.0.5",
- "@radix-ui/react-hover-card": "^1.0.6",
- "@radix-ui/react-icons": "^1.3.0",
- "@radix-ui/react-label": "^2.0.2",
- "@radix-ui/react-menubar": "^1.0.3",
- "@radix-ui/react-navigation-menu": "^1.1.3",
- "@radix-ui/react-popover": "^1.0.6",
- "@radix-ui/react-portal": "^1.0.4",
- "@radix-ui/react-progress": "^1.0.3",
- "@radix-ui/react-radio-group": "^1.1.3",
- "@radix-ui/react-scroll-area": "^1.2.3",
- "@radix-ui/react-select": "^2.0.0",
- "@radix-ui/react-separator": "^1.0.3",
- "@radix-ui/react-slider": "^1.1.2",
- "@radix-ui/react-slot": "^1.0.2",
- "@radix-ui/react-switch": "^1.0.3",
- "@radix-ui/react-tabs": "^1.0.4",
- "@radix-ui/react-toast": "^1.1.4",
- "@radix-ui/react-toggle": "^1.0.3",
- "@radix-ui/react-toggle-group": "^1.0.4",
- "@radix-ui/react-tooltip": "^1.0.6",
- "@tailwindcss/container-queries": "^0.1.1",
- "@tanstack/react-table": "^8.9.1",
- "@vercel/analytics": "^1.2.2",
- "@vercel/og": "^0.0.21",
- "change-case": "^5.4.4",
- "chrono-node": "^2.8.2",
- "class-variance-authority": "^0.7.0",
- "clsx": "^1.2.1",
- "cmdk": "^1.0.0",
- "contentlayer2": "^0.4.6",
- "date-fns": "^2.30.0",
- "embla-carousel-autoplay": "8.0.0-rc15",
- "embla-carousel-react": "8.0.0-rc15",
- "framer-motion": "^11.0.24",
- "geist": "^1.2.2",
- "input-otp": "^1.2.2",
- "jotai": "^2.1.0",
- "little-date": "^1.0.0",
- "lodash": "^4.17.21",
- "lucide-react": "0.477.0",
- "markdown-wasm": "^1.2.0",
- "next": "14.2.35",
- "next-contentlayer2": "^0.4.6",
- "next-themes": "^0.4.3",
- "react": "^18.2.0",
- "react-day-picker": "^9.7.0",
- "react-dom": "^18.2.0",
- "react-hook-form": "^7.44.2",
- "react-resizable-panels": "^2.0.22",
- "react-wrap-balancer": "^0.4.1",
- "recharts": "2.12.7",
- "shadcn": "3.5.0",
- "sharp": "^0.32.6",
- "sonner": "^1.2.3",
- "swr": "2.2.6-beta.3",
- "tailwind-merge": "^1.12.0",
- "ts-morph": "^22.0.0",
- "vaul": "1.1.1",
- "zod": "^3.21.4"
- },
- "devDependencies": {
- "@shikijs/compat": "^1.1.7",
- "@types/lodash": "^4.17.7",
- "@types/node": "^17.0.45",
- "@types/react": "^18.2.65",
- "@types/react-color": "^3.0.6",
- "@types/react-dom": "^18.2.22",
- "esbuild": "^0.25.0",
- "eslint": "^8.41.0",
- "mdast-util-toc": "^6.1.1",
- "postcss": "^8.4.24",
- "rehype": "^12.0.1",
- "rehype-autolink-headings": "^6.1.1",
- "rehype-pretty-code": "^0.6.0",
- "rehype-slug": "^5.1.0",
- "remark": "^14.0.3",
- "remark-code-import": "^1.2.0",
- "remark-gfm": "^4.0.1",
- "rimraf": "^4.1.3",
- "shiki": "^1.10.1",
- "tailwindcss": "3.4.6",
- "typescript": "^5.5.3",
- "unist-builder": "3.0.0",
- "unist-util-visit": "^4.1.2"
- },
- "peerDependencies": {
- "esbuild": "^0.17.3"
- }
-}
diff --git a/deprecated/www/pages/.gitkeep b/deprecated/www/pages/.gitkeep
deleted file mode 100644
index e69de29bb2..0000000000
diff --git a/deprecated/www/pages/api/.gitkeep b/deprecated/www/pages/api/.gitkeep
deleted file mode 100644
index e69de29bb2..0000000000
diff --git a/deprecated/www/pages/api/components.json b/deprecated/www/pages/api/components.json
deleted file mode 100644
index 9c4837074d..0000000000
--- a/deprecated/www/pages/api/components.json
+++ /dev/null
@@ -1,451 +0,0 @@
-[
- {
- "name": "accordion",
- "dependencies": ["@radix-ui/react-accordion"],
- "files": [
- {
- "name": "accordion.tsx",
- "dir": "components/ui",
- "content": "\"use client\"\n\nimport * as React from \"react\"\nimport * as AccordionPrimitive from \"@radix-ui/react-accordion\"\nimport { ChevronDown } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst Accordion = AccordionPrimitive.Root\n\nconst AccordionItem = React.forwardRef<\n React.ElementRef,\n React.ComponentPropsWithoutRef\n>(({ className, ...props }, ref) => (\n \n))\nAccordionItem.displayName = \"AccordionItem\"\n\nconst AccordionTrigger = React.forwardRef<\n React.ElementRef,\n React.ComponentPropsWithoutRef\n>(({ className, children, ...props }, ref) => (\n \n svg]:rotate-180\",\n className\n )}\n {...props}\n >\n {children}\n \n \n \n))\nAccordionTrigger.displayName = AccordionPrimitive.Trigger.displayName\n\nconst AccordionContent = React.forwardRef<\n React.ElementRef,\n React.ComponentPropsWithoutRef\n>(({ className, children, ...props }, ref) => (\n \n {children}
\n \n))\nAccordionContent.displayName = AccordionPrimitive.Content.displayName\n\nexport { Accordion, AccordionItem, AccordionTrigger, AccordionContent }\n"
- }
- ],
- "type": "ui"
- },
- {
- "name": "alert",
- "files": [
- {
- "name": "alert.tsx",
- "dir": "components/ui",
- "content": "import * as React from \"react\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst alertVariants = cva(\n \"relative w-full rounded-lg border p-4 [&>svg]:absolute [&>svg]:text-foreground [&>svg]:left-4 [&>svg]:top-4 [&>svg+div]:translate-y-[-3px] [&>svg~*]:pl-7\",\n {\n variants: {\n variant: {\n default: \"bg-background text-foreground\",\n destructive:\n \"text-destructive border-destructive/50 dark:border-destructive [&>svg]:text-destructive text-destructive\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n)\n\nconst Alert = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes & VariantProps\n>(({ className, variant, ...props }, ref) => (\n
\n))\nAlert.displayName = \"Alert\"\n\nconst AlertTitle = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes\n>(({ className, ...props }, ref) => (\n \n))\nAlertTitle.displayName = \"AlertTitle\"\n\nconst AlertDescription = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes\n>(({ className, ...props }, ref) => (\n
\n))\nAlertDescription.displayName = \"AlertDescription\"\n\nexport { Alert, AlertTitle, AlertDescription }\n"
- }
- ],
- "type": "ui"
- },
- {
- "name": "alert-dialog",
- "dependencies": ["@radix-ui/react-alert-dialog"],
- "files": [
- {
- "name": "alert-dialog.tsx",
- "dir": "components/ui",
- "content": "\"use client\"\n\nimport * as React from \"react\"\nimport * as AlertDialogPrimitive from \"@radix-ui/react-alert-dialog\"\n\nimport { cn } from \"@/lib/utils\"\nimport { buttonVariants } from \"@/components/ui/button\"\n\nconst AlertDialog = AlertDialogPrimitive.Root\n\nconst AlertDialogTrigger = AlertDialogPrimitive.Trigger\n\nconst AlertDialogPortal = ({\n className,\n children,\n ...props\n}: AlertDialogPrimitive.AlertDialogPortalProps) => (\n \n \n {children}\n
\n \n)\nAlertDialogPortal.displayName = AlertDialogPrimitive.Portal.displayName\n\nconst AlertDialogOverlay = React.forwardRef<\n React.ElementRef,\n React.ComponentPropsWithoutRef\n>(({ className, children, ...props }, ref) => (\n \n))\nAlertDialogOverlay.displayName = AlertDialogPrimitive.Overlay.displayName\n\nconst AlertDialogContent = React.forwardRef<\n React.ElementRef,\n React.ComponentPropsWithoutRef\n>(({ className, ...props }, ref) => (\n \n \n \n \n))\nAlertDialogContent.displayName = AlertDialogPrimitive.Content.displayName\n\nconst AlertDialogHeader = ({\n className,\n ...props\n}: React.HTMLAttributes) => (\n
\n)\nAlertDialogHeader.displayName = \"AlertDialogHeader\"\n\nconst AlertDialogFooter = ({\n className,\n ...props\n}: React.HTMLAttributes) => (\n
\n)\nAlertDialogFooter.displayName = \"AlertDialogFooter\"\n\nconst AlertDialogTitle = React.forwardRef<\n React.ElementRef,\n React.ComponentPropsWithoutRef\n>(({ className, ...props }, ref) => (\n \n))\nAlertDialogTitle.displayName = AlertDialogPrimitive.Title.displayName\n\nconst AlertDialogDescription = React.forwardRef<\n React.ElementRef,\n React.ComponentPropsWithoutRef\n>(({ className, ...props }, ref) => (\n \n))\nAlertDialogDescription.displayName =\n AlertDialogPrimitive.Description.displayName\n\nconst AlertDialogAction = React.forwardRef<\n React.ElementRef,\n React.ComponentPropsWithoutRef\n>(({ className, ...props }, ref) => (\n \n))\nAlertDialogAction.displayName = AlertDialogPrimitive.Action.displayName\n\nconst AlertDialogCancel = React.forwardRef<\n React.ElementRef,\n React.ComponentPropsWithoutRef\n>(({ className, ...props }, ref) => (\n \n))\nAlertDialogCancel.displayName = AlertDialogPrimitive.Cancel.displayName\n\nexport {\n AlertDialog,\n AlertDialogTrigger,\n AlertDialogContent,\n AlertDialogHeader,\n AlertDialogFooter,\n AlertDialogTitle,\n AlertDialogDescription,\n AlertDialogAction,\n AlertDialogCancel,\n}\n"
- }
- ],
- "type": "ui"
- },
- {
- "name": "aspect-ratio",
- "dependencies": ["@radix-ui/react-aspect-ratio"],
- "files": [
- {
- "name": "aspect-ratio.tsx",
- "dir": "components/ui",
- "content": "\"use client\"\n\nimport * as AspectRatioPrimitive from \"@radix-ui/react-aspect-ratio\"\n\nconst AspectRatio = AspectRatioPrimitive.Root\n\nexport { AspectRatio }\n"
- }
- ],
- "type": "ui"
- },
- {
- "name": "avatar",
- "dependencies": ["@radix-ui/react-avatar"],
- "files": [
- {
- "name": "avatar.tsx",
- "dir": "components/ui",
- "content": "\"use client\"\n\nimport * as React from \"react\"\nimport * as AvatarPrimitive from \"@radix-ui/react-avatar\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst Avatar = React.forwardRef<\n React.ElementRef,\n React.ComponentPropsWithoutRef\n>(({ className, ...props }, ref) => (\n \n))\nAvatar.displayName = AvatarPrimitive.Root.displayName\n\nconst AvatarImage = React.forwardRef<\n React.ElementRef,\n React.ComponentPropsWithoutRef\n>(({ className, ...props }, ref) => (\n \n))\nAvatarImage.displayName = AvatarPrimitive.Image.displayName\n\nconst AvatarFallback = React.forwardRef<\n React.ElementRef,\n React.ComponentPropsWithoutRef\n>(({ className, ...props }, ref) => (\n \n))\nAvatarFallback.displayName = AvatarPrimitive.Fallback.displayName\n\nexport { Avatar, AvatarImage, AvatarFallback }\n"
- }
- ],
- "type": "ui"
- },
- {
- "name": "badge",
- "files": [
- {
- "name": "badge.tsx",
- "dir": "components/ui",
- "content": "import * as React from \"react\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst badgeVariants = cva(\n \"inline-flex items-center border rounded-full px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2\",\n {\n variants: {\n variant: {\n default:\n \"bg-primary hover:bg-primary/80 border-transparent text-primary-foreground\",\n secondary:\n \"bg-secondary hover:bg-secondary/80 border-transparent text-secondary-foreground\",\n destructive:\n \"bg-destructive hover:bg-destructive/80 border-transparent text-destructive-foreground\",\n outline: \"text-foreground\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n)\n\nexport interface BadgeProps\n extends React.HTMLAttributes,\n VariantProps {}\n\nfunction Badge({ className, variant, ...props }: BadgeProps) {\n return (\n
\n )\n}\n\nexport { Badge, badgeVariants }\n"
- }
- ],
- "type": "ui"
- },
- {
- "name": "button",
- "dependencies": ["@radix-ui/react-slot"],
- "files": [
- {
- "name": "button.tsx",
- "dir": "components/ui",
- "content": "import * as React from \"react\"\nimport { Slot } from \"@radix-ui/react-slot\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst buttonVariants = cva(\n \"inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:opacity-50 disabled:pointer-events-none ring-offset-background\",\n {\n variants: {\n variant: {\n default: \"bg-primary text-primary-foreground hover:bg-primary/90\",\n destructive:\n \"bg-destructive text-destructive-foreground hover:bg-destructive/90\",\n outline:\n \"border border-input hover:bg-accent hover:text-accent-foreground\",\n secondary:\n \"bg-secondary text-secondary-foreground hover:bg-secondary/80\",\n ghost: \"hover:bg-accent hover:text-accent-foreground\",\n link: \"underline-offset-4 hover:underline text-primary\",\n },\n size: {\n default: \"h-10 py-2 px-4\",\n sm: \"h-9 px-3 rounded-md\",\n lg: \"h-11 px-8 rounded-md\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n)\n\nexport interface ButtonProps\n extends React.ButtonHTMLAttributes,\n VariantProps {\n asChild?: boolean\n}\n\nconst Button = React.forwardRef(\n ({ className, variant, size, asChild = false, ...props }, ref) => {\n const Comp = asChild ? Slot : \"button\"\n return (\n \n )\n }\n)\nButton.displayName = \"Button\"\n\nexport { Button, buttonVariants }\n"
- }
- ],
- "type": "ui"
- },
- {
- "name": "calendar",
- "dependencies": ["react-day-picker", "date-fns"],
- "registryDependencies": ["button"],
- "files": [
- {
- "name": "calendar.tsx",
- "dir": "components/ui",
- "content": "\"use client\"\n\nimport * as React from \"react\"\nimport { ChevronLeft, ChevronRight } from \"lucide-react\"\nimport { DayPicker } from \"react-day-picker\"\n\nimport { cn } from \"@/lib/utils\"\nimport { buttonVariants } from \"@/components/ui/button\"\n\nexport type CalendarProps = React.ComponentProps\n\nfunction Calendar({\n className,\n classNames,\n showOutsideDays = true,\n ...props\n}: CalendarProps) {\n return (\n ,\n IconRight: ({ ...props }) => ,\n }}\n {...props}\n />\n )\n}\nCalendar.displayName = \"Calendar\"\n\nexport { Calendar }\n"
- }
- ],
- "type": "ui"
- },
- {
- "name": "card",
- "files": [
- {
- "name": "card.tsx",
- "dir": "components/ui",
- "content": "import * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst Card = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes\n>(({ className, ...props }, ref) => (\n
\n))\nCard.displayName = \"Card\"\n\nconst CardHeader = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes\n>(({ className, ...props }, ref) => (\n
\n))\nCardHeader.displayName = \"CardHeader\"\n\nconst CardTitle = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes\n>(({ className, ...props }, ref) => (\n \n))\nCardTitle.displayName = \"CardTitle\"\n\nconst CardDescription = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes\n>(({ className, ...props }, ref) => (\n
\n))\nCardDescription.displayName = \"CardDescription\"\n\nconst CardContent = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes\n>(({ className, ...props }, ref) => (\n
\n))\nCardContent.displayName = \"CardContent\"\n\nconst CardFooter = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes\n>(({ className, ...props }, ref) => (\n
\n))\nCardFooter.displayName = \"CardFooter\"\n\nexport { Card, CardHeader, CardFooter, CardTitle, CardDescription, CardContent }\n"
- }
- ],
- "type": "ui"
- },
- {
- "name": "checkbox",
- "dependencies": ["@radix-ui/react-checkbox"],
- "files": [
- {
- "name": "checkbox.tsx",
- "dir": "components/ui",
- "content": "\"use client\"\n\nimport * as React from \"react\"\nimport * as CheckboxPrimitive from \"@radix-ui/react-checkbox\"\nimport { Check } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst Checkbox = React.forwardRef<\n React.ElementRef,\n React.ComponentPropsWithoutRef\n>(({ className, ...props }, ref) => (\n \n \n \n \n \n))\nCheckbox.displayName = CheckboxPrimitive.Root.displayName\n\nexport { Checkbox }\n"
- }
- ],
- "type": "ui"
- },
- {
- "name": "collapsible",
- "dependencies": ["@radix-ui/react-collapsible"],
- "files": [
- {
- "name": "collapsible.tsx",
- "dir": "components/ui",
- "content": "\"use client\"\n\nimport * as CollapsiblePrimitive from \"@radix-ui/react-collapsible\"\n\nconst Collapsible = CollapsiblePrimitive.Root\n\nconst CollapsibleTrigger = CollapsiblePrimitive.CollapsibleTrigger\n\nconst CollapsibleContent = CollapsiblePrimitive.CollapsibleContent\n\nexport { Collapsible, CollapsibleTrigger, CollapsibleContent }\n"
- }
- ],
- "type": "ui"
- },
- {
- "name": "command",
- "dependencies": ["cmdk"],
- "registryDependencies": ["dialog"],
- "files": [
- {
- "name": "command.tsx",
- "dir": "components/ui",
- "content": "\"use client\"\n\nimport * as React from \"react\"\nimport { DialogProps } from \"@radix-ui/react-dialog\"\nimport { Command as CommandPrimitive } from \"cmdk\"\nimport { Search } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Dialog, DialogContent } from \"@/components/ui/dialog\"\n\nconst Command = React.forwardRef<\n React.ElementRef,\n React.ComponentPropsWithoutRef\n>(({ className, ...props }, ref) => (\n \n))\nCommand.displayName = CommandPrimitive.displayName\n\ninterface CommandDialogProps extends DialogProps {}\n\nconst CommandDialog = ({ children, ...props }: CommandDialogProps) => {\n return (\n \n \n \n {children}\n \n \n \n )\n}\n\nconst CommandInput = React.forwardRef<\n React.ElementRef,\n React.ComponentPropsWithoutRef\n>(({ className, ...props }, ref) => (\n \n \n \n
\n))\n\nCommandInput.displayName = CommandPrimitive.Input.displayName\n\nconst CommandList = React.forwardRef<\n React.ElementRef,\n React.ComponentPropsWithoutRef\n>(({ className, ...props }, ref) => (\n \n))\n\nCommandList.displayName = CommandPrimitive.List.displayName\n\nconst CommandEmpty = React.forwardRef<\n React.ElementRef,\n React.ComponentPropsWithoutRef