diff --git a/apps/www/__registry__/default/block/hello-block.tsx b/apps/www/__registry__/default/block/hello-block.tsx
new file mode 100644
index 0000000000..77f557f1e2
--- /dev/null
+++ b/apps/www/__registry__/default/block/hello-block.tsx
@@ -0,0 +1,24 @@
+"use client"
+
+import { useMediaQuery } from "@/registry/default/hooks/use-media-query"
+import { cn } from "@/registry/default/lib/utils"
+import { Button } from "@/registry/default/ui/button"
+
+export default function ExampleBlock() {
+ const isDesktop = useMediaQuery("(min-width: 768px)")
+
+ return (
+
+
+ A button
+
+
+ )
+}
diff --git a/apps/www/__registry__/index.tsx b/apps/www/__registry__/index.tsx
index bcc1d1e8a2..02e3ccc3f5 100644
--- a/apps/www/__registry__/index.tsx
+++ b/apps/www/__registry__/index.tsx
@@ -2150,6 +2150,17 @@ export const Index: Record = {
subcategory: "undefined",
chunks: []
},
+ "hello-block": {
+ name: "hello-block",
+ type: "components:block",
+ registryDependencies: ["button","use-media-query"],
+ component: React.lazy(() => import("@/registry/new-york/block/hello-block")),
+ source: "__registry__/new-york/block/hello-block.tsx",
+ files: ["registry/new-york/block/hello-block.tsx"],
+ category: "Application",
+ subcategory: "Examples",
+ chunks: []
+ },
"charts-01": {
name: "charts-01",
type: "components:block",
@@ -3316,6 +3327,28 @@ export const Index: Record = {
subcategory: "Tooltip",
chunks: []
},
+ "utils": {
+ name: "utils",
+ type: "registry:lib",
+ registryDependencies: undefined,
+ component: React.lazy(() => import("@/registry/new-york/lib/utils")),
+ source: "",
+ files: ["registry/new-york/[object Object]"],
+ category: "undefined",
+ subcategory: "undefined",
+ chunks: []
+ },
+ "use-media-query": {
+ name: "use-media-query",
+ type: "registry:hook",
+ registryDependencies: undefined,
+ component: React.lazy(() => import("@/registry/new-york/hook/use-media-query")),
+ source: "",
+ files: ["registry/new-york/[object Object]"],
+ category: "undefined",
+ subcategory: "undefined",
+ chunks: []
+ },
}, "default": {
"accordion": {
name: "accordion",
@@ -5462,6 +5495,17 @@ export const Index: Record = {
subcategory: "undefined",
chunks: []
},
+ "hello-block": {
+ name: "hello-block",
+ type: "components:block",
+ registryDependencies: ["button","use-media-query"],
+ component: React.lazy(() => import("@/registry/default/block/hello-block")),
+ source: "__registry__/default/block/hello-block.tsx",
+ files: ["registry/default/block/hello-block.tsx"],
+ category: "Application",
+ subcategory: "Examples",
+ chunks: []
+ },
"charts-01": {
name: "charts-01",
type: "components:block",
@@ -6628,5 +6672,27 @@ export const Index: Record = {
subcategory: "Tooltip",
chunks: []
},
+ "utils": {
+ name: "utils",
+ type: "registry:lib",
+ registryDependencies: undefined,
+ component: React.lazy(() => import("@/registry/default/lib/utils")),
+ source: "",
+ files: ["registry/default/[object Object]"],
+ category: "undefined",
+ subcategory: "undefined",
+ chunks: []
+ },
+ "use-media-query": {
+ name: "use-media-query",
+ type: "registry:hook",
+ registryDependencies: undefined,
+ component: React.lazy(() => import("@/registry/default/hook/use-media-query")),
+ source: "",
+ files: ["registry/default/[object Object]"],
+ category: "undefined",
+ subcategory: "undefined",
+ chunks: []
+ },
},
}
diff --git a/apps/www/__registry__/new-york/block/hello-block.tsx b/apps/www/__registry__/new-york/block/hello-block.tsx
new file mode 100644
index 0000000000..1456ac136c
--- /dev/null
+++ b/apps/www/__registry__/new-york/block/hello-block.tsx
@@ -0,0 +1,22 @@
+"use client"
+
+import { useMediaQuery } from "@/registry/new-york/hooks/use-media-query"
+import { cn } from "@/registry/new-york/lib/utils"
+import { Button } from "@/registry/new-york/ui/button"
+
+export default function ExampleBlock() {
+ const isDesktop = useMediaQuery("(min-width: 768px)")
+
+ return (
+
+ A button
+
+ )
+}
diff --git a/apps/www/lib/utils.ts b/apps/www/lib/utils.ts
index 15548471f2..3a8eda3d06 100644
--- a/apps/www/lib/utils.ts
+++ b/apps/www/lib/utils.ts
@@ -1,4 +1,3 @@
-import * as React from "react"
import { clsx, type ClassValue } from "clsx"
import { twMerge } from "tailwind-merge"
diff --git a/apps/www/public/registry/index.json b/apps/www/public/registry/index.json
index 5d7aca8c26..bb6255553e 100644
--- a/apps/www/public/registry/index.json
+++ b/apps/www/public/registry/index.json
@@ -1,23 +1,30 @@
[
{
"name": "accordion",
+ "type": "components:ui",
"dependencies": [
"@radix-ui/react-accordion"
],
"files": [
- "ui/accordion.tsx"
- ],
- "type": "components:ui"
+ {
+ "path": "ui/accordion.tsx",
+ "type": "components:ui"
+ }
+ ]
},
{
"name": "alert",
+ "type": "components:ui",
"files": [
- "ui/alert.tsx"
- ],
- "type": "components:ui"
+ {
+ "path": "ui/alert.tsx",
+ "type": "components:ui"
+ }
+ ]
},
{
"name": "alert-dialog",
+ "type": "components:ui",
"dependencies": [
"@radix-ui/react-alert-dialog"
],
@@ -25,59 +32,77 @@
"button"
],
"files": [
- "ui/alert-dialog.tsx"
- ],
- "type": "components:ui"
+ {
+ "path": "ui/alert-dialog.tsx",
+ "type": "components:ui"
+ }
+ ]
},
{
"name": "aspect-ratio",
+ "type": "components:ui",
"dependencies": [
"@radix-ui/react-aspect-ratio"
],
"files": [
- "ui/aspect-ratio.tsx"
- ],
- "type": "components:ui"
+ {
+ "path": "ui/aspect-ratio.tsx",
+ "type": "components:ui"
+ }
+ ]
},
{
"name": "avatar",
+ "type": "components:ui",
"dependencies": [
"@radix-ui/react-avatar"
],
"files": [
- "ui/avatar.tsx"
- ],
- "type": "components:ui"
+ {
+ "path": "ui/avatar.tsx",
+ "type": "components:ui"
+ }
+ ]
},
{
"name": "badge",
+ "type": "components:ui",
"files": [
- "ui/badge.tsx"
- ],
- "type": "components:ui"
+ {
+ "path": "ui/badge.tsx",
+ "type": "components:ui"
+ }
+ ]
},
{
"name": "breadcrumb",
+ "type": "components:ui",
"dependencies": [
"@radix-ui/react-slot"
],
"files": [
- "ui/breadcrumb.tsx"
- ],
- "type": "components:ui"
+ {
+ "path": "ui/breadcrumb.tsx",
+ "type": "components:ui"
+ }
+ ]
},
{
"name": "button",
+ "type": "components:ui",
"dependencies": [
"@radix-ui/react-slot"
],
"files": [
- "ui/button.tsx"
- ],
- "type": "components:ui"
+ {
+ "path": "ui/button.tsx",
+ "type": "components:ui"
+ }
+ ]
},
{
"name": "calendar",
+ "type": "components:ui",
"dependencies": [
"react-day-picker@8.10.1",
"date-fns"
@@ -86,19 +111,25 @@
"button"
],
"files": [
- "ui/calendar.tsx"
- ],
- "type": "components:ui"
+ {
+ "path": "ui/calendar.tsx",
+ "type": "components:ui"
+ }
+ ]
},
{
"name": "card",
+ "type": "components:ui",
"files": [
- "ui/card.tsx"
- ],
- "type": "components:ui"
+ {
+ "path": "ui/card.tsx",
+ "type": "components:ui"
+ }
+ ]
},
{
"name": "carousel",
+ "type": "components:ui",
"dependencies": [
"embla-carousel-react"
],
@@ -106,12 +137,15 @@
"button"
],
"files": [
- "ui/carousel.tsx"
- ],
- "type": "components:ui"
+ {
+ "path": "ui/carousel.tsx",
+ "type": "components:ui"
+ }
+ ]
},
{
"name": "chart",
+ "type": "components:ui",
"dependencies": [
"recharts",
"lucide-react"
@@ -120,32 +154,41 @@
"card"
],
"files": [
- "ui/chart.tsx"
- ],
- "type": "components:ui"
+ {
+ "path": "ui/chart.tsx",
+ "type": "components:ui"
+ }
+ ]
},
{
"name": "checkbox",
+ "type": "components:ui",
"dependencies": [
"@radix-ui/react-checkbox"
],
"files": [
- "ui/checkbox.tsx"
- ],
- "type": "components:ui"
+ {
+ "path": "ui/checkbox.tsx",
+ "type": "components:ui"
+ }
+ ]
},
{
"name": "collapsible",
+ "type": "components:ui",
"dependencies": [
"@radix-ui/react-collapsible"
],
"files": [
- "ui/collapsible.tsx"
- ],
- "type": "components:ui"
+ {
+ "path": "ui/collapsible.tsx",
+ "type": "components:ui"
+ }
+ ]
},
{
"name": "command",
+ "type": "components:ui",
"dependencies": [
"cmdk@1.0.0"
],
@@ -153,53 +196,68 @@
"dialog"
],
"files": [
- "ui/command.tsx"
- ],
- "type": "components:ui"
+ {
+ "path": "ui/command.tsx",
+ "type": "components:ui"
+ }
+ ]
},
{
"name": "context-menu",
+ "type": "components:ui",
"dependencies": [
"@radix-ui/react-context-menu"
],
"files": [
- "ui/context-menu.tsx"
- ],
- "type": "components:ui"
+ {
+ "path": "ui/context-menu.tsx",
+ "type": "components:ui"
+ }
+ ]
},
{
"name": "dialog",
+ "type": "components:ui",
"dependencies": [
"@radix-ui/react-dialog"
],
"files": [
- "ui/dialog.tsx"
- ],
- "type": "components:ui"
+ {
+ "path": "ui/dialog.tsx",
+ "type": "components:ui"
+ }
+ ]
},
{
"name": "drawer",
+ "type": "components:ui",
"dependencies": [
"vaul",
"@radix-ui/react-dialog"
],
"files": [
- "ui/drawer.tsx"
- ],
- "type": "components:ui"
+ {
+ "path": "ui/drawer.tsx",
+ "type": "components:ui"
+ }
+ ]
},
{
"name": "dropdown-menu",
+ "type": "components:ui",
"dependencies": [
"@radix-ui/react-dropdown-menu"
],
"files": [
- "ui/dropdown-menu.tsx"
- ],
- "type": "components:ui"
+ {
+ "path": "ui/dropdown-menu.tsx",
+ "type": "components:ui"
+ }
+ ]
},
{
"name": "form",
+ "type": "components:ui",
"dependencies": [
"@radix-ui/react-label",
"@radix-ui/react-slot",
@@ -212,243 +270,324 @@
"label"
],
"files": [
- "ui/form.tsx"
- ],
- "type": "components:ui"
+ {
+ "path": "ui/form.tsx",
+ "type": "components:ui"
+ }
+ ]
},
{
"name": "hover-card",
+ "type": "components:ui",
"dependencies": [
"@radix-ui/react-hover-card"
],
"files": [
- "ui/hover-card.tsx"
- ],
- "type": "components:ui"
+ {
+ "path": "ui/hover-card.tsx",
+ "type": "components:ui"
+ }
+ ]
},
{
"name": "input",
+ "type": "components:ui",
"files": [
- "ui/input.tsx"
- ],
- "type": "components:ui"
+ {
+ "path": "ui/input.tsx",
+ "type": "components:ui"
+ }
+ ]
},
{
"name": "input-otp",
+ "type": "components:ui",
"dependencies": [
"input-otp"
],
"files": [
- "ui/input-otp.tsx"
- ],
- "type": "components:ui"
+ {
+ "path": "ui/input-otp.tsx",
+ "type": "components:ui"
+ }
+ ]
},
{
"name": "label",
+ "type": "components:ui",
"dependencies": [
"@radix-ui/react-label"
],
"files": [
- "ui/label.tsx"
- ],
- "type": "components:ui"
+ {
+ "path": "ui/label.tsx",
+ "type": "components:ui"
+ }
+ ]
},
{
"name": "menubar",
+ "type": "components:ui",
"dependencies": [
"@radix-ui/react-menubar"
],
"files": [
- "ui/menubar.tsx"
- ],
- "type": "components:ui"
+ {
+ "path": "ui/menubar.tsx",
+ "type": "components:ui"
+ }
+ ]
},
{
"name": "navigation-menu",
+ "type": "components:ui",
"dependencies": [
"@radix-ui/react-navigation-menu"
],
"files": [
- "ui/navigation-menu.tsx"
- ],
- "type": "components:ui"
+ {
+ "path": "ui/navigation-menu.tsx",
+ "type": "components:ui"
+ }
+ ]
},
{
"name": "pagination",
+ "type": "components:ui",
"registryDependencies": [
"button"
],
"files": [
- "ui/pagination.tsx"
- ],
- "type": "components:ui"
+ {
+ "path": "ui/pagination.tsx",
+ "type": "components:ui"
+ }
+ ]
},
{
"name": "popover",
+ "type": "components:ui",
"dependencies": [
"@radix-ui/react-popover"
],
"files": [
- "ui/popover.tsx"
- ],
- "type": "components:ui"
+ {
+ "path": "ui/popover.tsx",
+ "type": "components:ui"
+ }
+ ]
},
{
"name": "progress",
+ "type": "components:ui",
"dependencies": [
"@radix-ui/react-progress"
],
"files": [
- "ui/progress.tsx"
- ],
- "type": "components:ui"
+ {
+ "path": "ui/progress.tsx",
+ "type": "components:ui"
+ }
+ ]
},
{
"name": "radio-group",
+ "type": "components:ui",
"dependencies": [
"@radix-ui/react-radio-group"
],
"files": [
- "ui/radio-group.tsx"
- ],
- "type": "components:ui"
+ {
+ "path": "ui/radio-group.tsx",
+ "type": "components:ui"
+ }
+ ]
},
{
"name": "resizable",
+ "type": "components:ui",
"dependencies": [
"react-resizable-panels"
],
"files": [
- "ui/resizable.tsx"
- ],
- "type": "components:ui"
+ {
+ "path": "ui/resizable.tsx",
+ "type": "components:ui"
+ }
+ ]
},
{
"name": "scroll-area",
+ "type": "components:ui",
"dependencies": [
"@radix-ui/react-scroll-area"
],
"files": [
- "ui/scroll-area.tsx"
- ],
- "type": "components:ui"
+ {
+ "path": "ui/scroll-area.tsx",
+ "type": "components:ui"
+ }
+ ]
},
{
"name": "select",
+ "type": "components:ui",
"dependencies": [
"@radix-ui/react-select"
],
"files": [
- "ui/select.tsx"
- ],
- "type": "components:ui"
+ {
+ "path": "ui/select.tsx",
+ "type": "components:ui"
+ }
+ ]
},
{
"name": "separator",
+ "type": "components:ui",
"dependencies": [
"@radix-ui/react-separator"
],
"files": [
- "ui/separator.tsx"
- ],
- "type": "components:ui"
+ {
+ "path": "ui/separator.tsx",
+ "type": "components:ui"
+ }
+ ]
},
{
"name": "sheet",
+ "type": "components:ui",
"dependencies": [
"@radix-ui/react-dialog"
],
"files": [
- "ui/sheet.tsx"
- ],
- "type": "components:ui"
+ {
+ "path": "ui/sheet.tsx",
+ "type": "components:ui"
+ }
+ ]
},
{
"name": "skeleton",
+ "type": "components:ui",
"files": [
- "ui/skeleton.tsx"
- ],
- "type": "components:ui"
+ {
+ "path": "ui/skeleton.tsx",
+ "type": "components:ui"
+ }
+ ]
},
{
"name": "slider",
+ "type": "components:ui",
"dependencies": [
"@radix-ui/react-slider"
],
"files": [
- "ui/slider.tsx"
- ],
- "type": "components:ui"
+ {
+ "path": "ui/slider.tsx",
+ "type": "components:ui"
+ }
+ ]
},
{
"name": "sonner",
+ "type": "components:ui",
"dependencies": [
"sonner",
"next-themes"
],
"files": [
- "ui/sonner.tsx"
- ],
- "type": "components:ui"
+ {
+ "path": "ui/sonner.tsx",
+ "type": "components:ui"
+ }
+ ]
},
{
"name": "switch",
+ "type": "components:ui",
"dependencies": [
"@radix-ui/react-switch"
],
"files": [
- "ui/switch.tsx"
- ],
- "type": "components:ui"
+ {
+ "path": "ui/switch.tsx",
+ "type": "components:ui"
+ }
+ ]
},
{
"name": "table",
+ "type": "components:ui",
"files": [
- "ui/table.tsx"
- ],
- "type": "components:ui"
+ {
+ "path": "ui/table.tsx",
+ "type": "components:ui"
+ }
+ ]
},
{
"name": "tabs",
+ "type": "components:ui",
"dependencies": [
"@radix-ui/react-tabs"
],
"files": [
- "ui/tabs.tsx"
- ],
- "type": "components:ui"
+ {
+ "path": "ui/tabs.tsx",
+ "type": "components:ui"
+ }
+ ]
},
{
"name": "textarea",
+ "type": "components:ui",
"files": [
- "ui/textarea.tsx"
- ],
- "type": "components:ui"
+ {
+ "path": "ui/textarea.tsx",
+ "type": "components:ui"
+ }
+ ]
},
{
"name": "toast",
+ "type": "components:ui",
"dependencies": [
"@radix-ui/react-toast"
],
"files": [
- "ui/toast.tsx",
- "ui/use-toast.ts",
- "ui/toaster.tsx"
- ],
- "type": "components:ui"
+ {
+ "path": "ui/toast.tsx",
+ "type": "components:ui"
+ },
+ {
+ "path": "ui/use-toast.ts",
+ "type": "components:ui"
+ },
+ {
+ "path": "ui/toaster.tsx",
+ "type": "components:ui"
+ }
+ ]
},
{
"name": "toggle",
+ "type": "components:ui",
"dependencies": [
"@radix-ui/react-toggle"
],
"files": [
- "ui/toggle.tsx"
- ],
- "type": "components:ui"
+ {
+ "path": "ui/toggle.tsx",
+ "type": "components:ui"
+ }
+ ]
},
{
"name": "toggle-group",
+ "type": "components:ui",
"dependencies": [
"@radix-ui/react-toggle-group"
],
@@ -456,18 +595,1442 @@
"toggle"
],
"files": [
- "ui/toggle-group.tsx"
- ],
- "type": "components:ui"
+ {
+ "path": "ui/toggle-group.tsx",
+ "type": "components:ui"
+ }
+ ]
},
{
"name": "tooltip",
+ "type": "components:ui",
"dependencies": [
"@radix-ui/react-tooltip"
],
"files": [
- "ui/tooltip.tsx"
+ {
+ "path": "ui/tooltip.tsx",
+ "type": "components:ui"
+ }
+ ]
+ },
+ {
+ "name": "hello-block",
+ "type": "components:block",
+ "registryDependencies": [
+ "button",
+ "use-media-query"
],
- "type": "components:ui"
+ "files": [
+ {
+ "path": "block/hello-block.tsx",
+ "type": "components:block"
+ }
+ ],
+ "tailwind": {
+ "config": {
+ "theme": {
+ "extend": {
+ "colors": {
+ "brand": {
+ "primary": "var(--brand-primary)",
+ "secondary": "var(--brand-secondary)"
+ }
+ },
+ "boxShadow": {
+ "brand": "0px 0px 10px 0px rgba(255, 255, 255, 0.10)"
+ }
+ }
+ }
+ }
+ },
+ "cssVars": {
+ "light": {
+ "brand-primary": "#a855f7",
+ "brand-secondary": "#10b981"
+ },
+ "dark": {
+ "brand-primary": "#831843",
+ "brand-secondary": "#ccfbf1"
+ }
+ },
+ "category": "Application",
+ "subcategory": "Examples"
+ },
+ {
+ "name": "charts-01",
+ "type": "components:block",
+ "registryDependencies": [
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/charts-01.tsx",
+ "type": "components:block"
+ }
+ ],
+ "category": "Application",
+ "subcategory": "Charts"
+ },
+ {
+ "name": "dashboard-05",
+ "type": "components:block",
+ "registryDependencies": [
+ "badge",
+ "breadcrumb",
+ "button",
+ "card",
+ "dropdown-menu",
+ "input",
+ "pagination",
+ "progress",
+ "separator",
+ "sheet",
+ "table",
+ "tabs",
+ "tooltip"
+ ],
+ "files": [
+ {
+ "path": "block/dashboard-05.tsx",
+ "type": "components:block"
+ }
+ ],
+ "category": "Application",
+ "subcategory": "Dashboard"
+ },
+ {
+ "name": "dashboard-06",
+ "type": "components:block",
+ "registryDependencies": [
+ "badge",
+ "breadcrumb",
+ "button",
+ "card",
+ "dropdown-menu",
+ "input",
+ "sheet",
+ "table",
+ "tabs",
+ "tooltip"
+ ],
+ "files": [
+ {
+ "path": "block/dashboard-06.tsx",
+ "type": "components:block"
+ }
+ ],
+ "category": "Application",
+ "subcategory": "Dashboard"
+ },
+ {
+ "name": "dashboard-07",
+ "type": "components:block",
+ "registryDependencies": [
+ "badge",
+ "breadcrumb",
+ "button",
+ "card",
+ "dropdown-menu",
+ "input",
+ "pagination",
+ "progress",
+ "separator",
+ "sheet",
+ "table",
+ "tabs",
+ "tooltip"
+ ],
+ "files": [
+ {
+ "path": "block/dashboard-07.tsx",
+ "type": "components:block"
+ }
+ ],
+ "category": "Application",
+ "subcategory": "Dashboard"
+ },
+ {
+ "name": "dashboard-04",
+ "type": "components:block",
+ "registryDependencies": [
+ "button",
+ "card",
+ "dropdown-menu",
+ "input"
+ ],
+ "files": [
+ {
+ "path": "block/dashboard-04.tsx",
+ "type": "components:block"
+ }
+ ],
+ "category": "Application",
+ "subcategory": "Dashboard"
+ },
+ {
+ "name": "dashboard-03",
+ "type": "components:block",
+ "registryDependencies": [
+ "badge",
+ "button",
+ "drawer",
+ "input",
+ "label",
+ "select",
+ "textarea",
+ "tooltip"
+ ],
+ "files": [
+ {
+ "path": "block/dashboard-03.tsx",
+ "type": "components:block"
+ }
+ ],
+ "category": "Application",
+ "subcategory": "Dashboard"
+ },
+ {
+ "name": "dashboard-02",
+ "type": "components:block",
+ "registryDependencies": [
+ "badge",
+ "button",
+ "card",
+ "dropdown-menu",
+ "input"
+ ],
+ "files": [
+ {
+ "path": "block/dashboard-02.tsx",
+ "type": "components:block"
+ }
+ ],
+ "category": "Application",
+ "subcategory": "Dashboard"
+ },
+ {
+ "name": "dashboard-01",
+ "type": "components:block",
+ "registryDependencies": [
+ "button",
+ "dropdown-menu",
+ "input",
+ "sheet"
+ ],
+ "files": [
+ {
+ "path": "block/dashboard-01.tsx",
+ "type": "components:block"
+ }
+ ],
+ "category": "Application",
+ "subcategory": "Dashboard"
+ },
+ {
+ "name": "authentication-01",
+ "type": "components:block",
+ "registryDependencies": [
+ "button",
+ "card",
+ "input",
+ "label"
+ ],
+ "files": [
+ {
+ "path": "block/authentication-01.tsx",
+ "type": "components:block"
+ }
+ ],
+ "category": "Authentication",
+ "subcategory": "Login"
+ },
+ {
+ "name": "authentication-02",
+ "type": "components:block",
+ "registryDependencies": [
+ "button",
+ "card",
+ "input",
+ "label"
+ ],
+ "files": [
+ {
+ "path": "block/authentication-02.tsx",
+ "type": "components:block"
+ }
+ ],
+ "category": "Authentication",
+ "subcategory": "Login"
+ },
+ {
+ "name": "authentication-03",
+ "type": "components:block",
+ "registryDependencies": [
+ "button",
+ "card",
+ "input",
+ "label"
+ ],
+ "files": [
+ {
+ "path": "block/authentication-03.tsx",
+ "type": "components:block"
+ }
+ ],
+ "category": "Authentication",
+ "subcategory": "Login"
+ },
+ {
+ "name": "authentication-04",
+ "type": "components:block",
+ "registryDependencies": [
+ "button",
+ "card",
+ "input",
+ "label"
+ ],
+ "files": [
+ {
+ "path": "block/authentication-04.tsx",
+ "type": "components:block"
+ }
+ ],
+ "category": "Authentication",
+ "subcategory": "Login"
+ },
+ {
+ "name": "chart-area-axes",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-area-axes.tsx",
+ "type": "components:block"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Area"
+ },
+ {
+ "name": "chart-area-default",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-area-default.tsx",
+ "type": "components:block"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Area"
+ },
+ {
+ "name": "chart-area-gradient",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-area-gradient.tsx",
+ "type": "components:block"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Area"
+ },
+ {
+ "name": "chart-area-icons",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-area-icons.tsx",
+ "type": "components:block"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Area"
+ },
+ {
+ "name": "chart-area-interactive",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-area-interactive.tsx",
+ "type": "components:block"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Area"
+ },
+ {
+ "name": "chart-area-legend",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-area-legend.tsx",
+ "type": "components:block"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Area"
+ },
+ {
+ "name": "chart-area-linear",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-area-linear.tsx",
+ "type": "components:block"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Area"
+ },
+ {
+ "name": "chart-area-stacked-expand",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-area-stacked-expand.tsx",
+ "type": "components:block"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Area"
+ },
+ {
+ "name": "chart-area-stacked",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-area-stacked.tsx",
+ "type": "components:block"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Area"
+ },
+ {
+ "name": "chart-area-step",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-area-step.tsx",
+ "type": "components:block"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Area"
+ },
+ {
+ "name": "chart-bar-active",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-bar-active.tsx",
+ "type": "components:block"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Bar"
+ },
+ {
+ "name": "chart-bar-default",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-bar-default.tsx",
+ "type": "components:block"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Bar"
+ },
+ {
+ "name": "chart-bar-horizontal",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-bar-horizontal.tsx",
+ "type": "components:block"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Bar"
+ },
+ {
+ "name": "chart-bar-interactive",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-bar-interactive.tsx",
+ "type": "components:block"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Bar"
+ },
+ {
+ "name": "chart-bar-label-custom",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-bar-label-custom.tsx",
+ "type": "components:block"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Bar"
+ },
+ {
+ "name": "chart-bar-label",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-bar-label.tsx",
+ "type": "components:block"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Bar"
+ },
+ {
+ "name": "chart-bar-mixed",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-bar-mixed.tsx",
+ "type": "components:block"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Bar"
+ },
+ {
+ "name": "chart-bar-multiple",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-bar-multiple.tsx",
+ "type": "components:block"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Bar"
+ },
+ {
+ "name": "chart-bar-negative",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-bar-negative.tsx",
+ "type": "components:block"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Bar"
+ },
+ {
+ "name": "chart-bar-stacked",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-bar-stacked.tsx",
+ "type": "components:block"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Bar"
+ },
+ {
+ "name": "chart-line-default",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-line-default.tsx",
+ "type": "components:block"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Line"
+ },
+ {
+ "name": "chart-line-dots-colors",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-line-dots-colors.tsx",
+ "type": "components:block"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Line"
+ },
+ {
+ "name": "chart-line-dots-custom",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-line-dots-custom.tsx",
+ "type": "components:block"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Line"
+ },
+ {
+ "name": "chart-line-dots",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-line-dots.tsx",
+ "type": "components:block"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Line"
+ },
+ {
+ "name": "chart-line-interactive",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-line-interactive.tsx",
+ "type": "components:block"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Line"
+ },
+ {
+ "name": "chart-line-label-custom",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-line-label-custom.tsx",
+ "type": "components:block"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Line"
+ },
+ {
+ "name": "chart-line-label",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-line-label.tsx",
+ "type": "components:block"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Line"
+ },
+ {
+ "name": "chart-line-linear",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-line-linear.tsx",
+ "type": "components:block"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Line"
+ },
+ {
+ "name": "chart-line-multiple",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-line-multiple.tsx",
+ "type": "components:block"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Line"
+ },
+ {
+ "name": "chart-line-step",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-line-step.tsx",
+ "type": "components:block"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Line"
+ },
+ {
+ "name": "chart-pie-donut-active",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-pie-donut-active.tsx",
+ "type": "components:block"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Pie"
+ },
+ {
+ "name": "chart-pie-donut-text",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-pie-donut-text.tsx",
+ "type": "components:block"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Pie"
+ },
+ {
+ "name": "chart-pie-donut",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-pie-donut.tsx",
+ "type": "components:block"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Pie"
+ },
+ {
+ "name": "chart-pie-interactive",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-pie-interactive.tsx",
+ "type": "components:block"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Pie"
+ },
+ {
+ "name": "chart-pie-label-custom",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-pie-label-custom.tsx",
+ "type": "components:block"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Pie"
+ },
+ {
+ "name": "chart-pie-label-list",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-pie-label-list.tsx",
+ "type": "components:block"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Pie"
+ },
+ {
+ "name": "chart-pie-label",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-pie-label.tsx",
+ "type": "components:block"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Pie"
+ },
+ {
+ "name": "chart-pie-legend",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-pie-legend.tsx",
+ "type": "components:block"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Pie"
+ },
+ {
+ "name": "chart-pie-separator-none",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-pie-separator-none.tsx",
+ "type": "components:block"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Pie"
+ },
+ {
+ "name": "chart-pie-simple",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-pie-simple.tsx",
+ "type": "components:block"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Pie"
+ },
+ {
+ "name": "chart-pie-stacked",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-pie-stacked.tsx",
+ "type": "components:block"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Pie"
+ },
+ {
+ "name": "chart-radar-default",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-radar-default.tsx",
+ "type": "components:block"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Radar"
+ },
+ {
+ "name": "chart-radar-dots",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-radar-dots.tsx",
+ "type": "components:block"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Radar"
+ },
+ {
+ "name": "chart-radar-grid-circle-fill",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-radar-grid-circle-fill.tsx",
+ "type": "components:block"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Radar"
+ },
+ {
+ "name": "chart-radar-grid-circle-no-lines",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-radar-grid-circle-no-lines.tsx",
+ "type": "components:block"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Radar"
+ },
+ {
+ "name": "chart-radar-grid-circle",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-radar-grid-circle.tsx",
+ "type": "components:block"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Radar"
+ },
+ {
+ "name": "chart-radar-grid-custom",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-radar-grid-custom.tsx",
+ "type": "components:block"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Radar"
+ },
+ {
+ "name": "chart-radar-grid-fill",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-radar-grid-fill.tsx",
+ "type": "components:block"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Radar"
+ },
+ {
+ "name": "chart-radar-grid-none",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-radar-grid-none.tsx",
+ "type": "components:block"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Radar"
+ },
+ {
+ "name": "chart-radar-icons",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-radar-icons.tsx",
+ "type": "components:block"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Radar"
+ },
+ {
+ "name": "chart-radar-label-custom",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-radar-label-custom.tsx",
+ "type": "components:block"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Radar"
+ },
+ {
+ "name": "chart-radar-legend",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-radar-legend.tsx",
+ "type": "components:block"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Radar"
+ },
+ {
+ "name": "chart-radar-lines-only",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-radar-lines-only.tsx",
+ "type": "components:block"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Radar"
+ },
+ {
+ "name": "chart-radar-multiple",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-radar-multiple.tsx",
+ "type": "components:block"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Radar"
+ },
+ {
+ "name": "chart-radar-radius",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-radar-radius.tsx",
+ "type": "components:block"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Radar"
+ },
+ {
+ "name": "chart-radial-grid",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-radial-grid.tsx",
+ "type": "components:block"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Radial"
+ },
+ {
+ "name": "chart-radial-label",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-radial-label.tsx",
+ "type": "components:block"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Radial"
+ },
+ {
+ "name": "chart-radial-shape",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-radial-shape.tsx",
+ "type": "components:block"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Radial"
+ },
+ {
+ "name": "chart-radial-simple",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-radial-simple.tsx",
+ "type": "components:block"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Radial"
+ },
+ {
+ "name": "chart-radial-stacked",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-radial-stacked.tsx",
+ "type": "components:block"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Radial"
+ },
+ {
+ "name": "chart-radial-text",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-radial-text.tsx",
+ "type": "components:block"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Radial"
+ },
+ {
+ "name": "chart-tooltip-default",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-tooltip-default.tsx",
+ "type": "components:block"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Tooltip"
+ },
+ {
+ "name": "chart-tooltip-indicator-line",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-tooltip-indicator-line.tsx",
+ "type": "components:block"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Tooltip"
+ },
+ {
+ "name": "chart-tooltip-indicator-none",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-tooltip-indicator-none.tsx",
+ "type": "components:block"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Tooltip"
+ },
+ {
+ "name": "chart-tooltip-label-none",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-tooltip-label-none.tsx",
+ "type": "components:block"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Tooltip"
+ },
+ {
+ "name": "chart-tooltip-label-custom",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-tooltip-label-custom.tsx",
+ "type": "components:block"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Tooltip"
+ },
+ {
+ "name": "chart-tooltip-label-formatter",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-tooltip-label-formatter.tsx",
+ "type": "components:block"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Tooltip"
+ },
+ {
+ "name": "chart-tooltip-formatter",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-tooltip-formatter.tsx",
+ "type": "components:block"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Tooltip"
+ },
+ {
+ "name": "chart-tooltip-icons",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-tooltip-icons.tsx",
+ "type": "components:block"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Tooltip"
+ },
+ {
+ "name": "chart-tooltip-advanced",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-tooltip-advanced.tsx",
+ "type": "components:block"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Tooltip"
+ },
+ {
+ "name": "utils",
+ "type": "registry:lib",
+ "dependencies": [
+ "clsx",
+ "tailwind-merge"
+ ],
+ "files": [
+ {
+ "path": "lib/utils.ts",
+ "type": "registry:lib"
+ }
+ ]
}
]
\ No newline at end of file
diff --git a/apps/www/public/registry/styles/default/accordion.json b/apps/www/public/registry/styles/default/accordion.json
index 5482c2118c..a3df177048 100644
--- a/apps/www/public/registry/styles/default/accordion.json
+++ b/apps/www/public/registry/styles/default/accordion.json
@@ -1,13 +1,14 @@
{
"name": "accordion",
+ "type": "components:ui",
"dependencies": [
"@radix-ui/react-accordion"
],
"files": [
{
- "name": "accordion.tsx",
+ "path": "ui/accordion.tsx",
+ "type": "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))\n\nAccordionContent.displayName = AccordionPrimitive.Content.displayName\n\nexport { Accordion, AccordionItem, AccordionTrigger, AccordionContent }\n"
}
- ],
- "type": "components:ui"
+ ]
}
\ No newline at end of file
diff --git a/apps/www/public/registry/styles/default/alert-dialog.json b/apps/www/public/registry/styles/default/alert-dialog.json
index d07b7b174d..663edba5d5 100644
--- a/apps/www/public/registry/styles/default/alert-dialog.json
+++ b/apps/www/public/registry/styles/default/alert-dialog.json
@@ -1,5 +1,6 @@
{
"name": "alert-dialog",
+ "type": "components:ui",
"dependencies": [
"@radix-ui/react-alert-dialog"
],
@@ -8,9 +9,9 @@
],
"files": [
{
- "name": "alert-dialog.tsx",
+ "path": "ui/alert-dialog.tsx",
+ "type": "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 \"@/registry/default/ui/button\"\n\nconst AlertDialog = AlertDialogPrimitive.Root\n\nconst AlertDialogTrigger = AlertDialogPrimitive.Trigger\n\nconst AlertDialogPortal = AlertDialogPrimitive.Portal\n\nconst AlertDialogOverlay = React.forwardRef<\n React.ElementRef,\n React.ComponentPropsWithoutRef\n>(({ className, ...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 AlertDialogPortal,\n AlertDialogOverlay,\n AlertDialogTrigger,\n AlertDialogContent,\n AlertDialogHeader,\n AlertDialogFooter,\n AlertDialogTitle,\n AlertDialogDescription,\n AlertDialogAction,\n AlertDialogCancel,\n}\n"
}
- ],
- "type": "components:ui"
+ ]
}
\ No newline at end of file
diff --git a/apps/www/public/registry/styles/default/alert.json b/apps/www/public/registry/styles/default/alert.json
index e1bc8d0fa7..41ea5ee208 100644
--- a/apps/www/public/registry/styles/default/alert.json
+++ b/apps/www/public/registry/styles/default/alert.json
@@ -1,10 +1,11 @@
{
"name": "alert",
+ "type": "components:ui",
"files": [
{
- "name": "alert.tsx",
+ "path": "ui/alert.tsx",
+ "type": "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~*]:pl-7 [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-foreground\",\n {\n variants: {\n variant: {\n default: \"bg-background text-foreground\",\n destructive:\n \"border-destructive/50 text-destructive dark:border-destructive [&>svg]: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": "components:ui"
+ ]
}
\ No newline at end of file
diff --git a/apps/www/public/registry/styles/default/aspect-ratio.json b/apps/www/public/registry/styles/default/aspect-ratio.json
index bf7ada618b..8dcf7cbe9f 100644
--- a/apps/www/public/registry/styles/default/aspect-ratio.json
+++ b/apps/www/public/registry/styles/default/aspect-ratio.json
@@ -1,13 +1,14 @@
{
"name": "aspect-ratio",
+ "type": "components:ui",
"dependencies": [
"@radix-ui/react-aspect-ratio"
],
"files": [
{
- "name": "aspect-ratio.tsx",
+ "path": "ui/aspect-ratio.tsx",
+ "type": "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": "components:ui"
+ ]
}
\ No newline at end of file
diff --git a/apps/www/public/registry/styles/default/authentication-01.json b/apps/www/public/registry/styles/default/authentication-01.json
new file mode 100644
index 0000000000..a814dbd3fe
--- /dev/null
+++ b/apps/www/public/registry/styles/default/authentication-01.json
@@ -0,0 +1,19 @@
+{
+ "name": "authentication-01",
+ "type": "components:block",
+ "registryDependencies": [
+ "button",
+ "card",
+ "input",
+ "label"
+ ],
+ "files": [
+ {
+ "path": "block/authentication-01.tsx",
+ "type": "components:block",
+ "content": "import { Button } from \"@/registry/default/ui/button\"\nimport {\n Card,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle,\n} from \"@/registry/default/ui/card\"\nimport { Input } from \"@/registry/default/ui/input\"\nimport { Label } from \"@/registry/default/ui/label\"\n\nexport const description =\n \"A simple login form with email and password. The submit button says 'Sign in'.\"\n\nexport const iframeHeight = \"600px\"\n\nexport const containerClassName =\n \"w-full h-screen flex items-center justify-center px-4\"\n\nexport default function LoginForm() {\n return (\n \n \n Login \n \n Enter your email below to login to your account.\n \n \n \n \n Email \n \n
\n \n Password \n \n
\n \n \n Sign in \n \n \n )\n}\n"
+ }
+ ],
+ "category": "Authentication",
+ "subcategory": "Login"
+}
\ No newline at end of file
diff --git a/apps/www/public/registry/styles/default/authentication-02.json b/apps/www/public/registry/styles/default/authentication-02.json
new file mode 100644
index 0000000000..b4bac20bfa
--- /dev/null
+++ b/apps/www/public/registry/styles/default/authentication-02.json
@@ -0,0 +1,19 @@
+{
+ "name": "authentication-02",
+ "type": "components:block",
+ "registryDependencies": [
+ "button",
+ "card",
+ "input",
+ "label"
+ ],
+ "files": [
+ {
+ "path": "block/authentication-02.tsx",
+ "type": "components:block",
+ "content": "import Link from \"next/link\"\n\nimport { Button } from \"@/registry/default/ui/button\"\nimport {\n Card,\n CardContent,\n CardDescription,\n CardHeader,\n CardTitle,\n} from \"@/registry/default/ui/card\"\nimport { Input } from \"@/registry/default/ui/input\"\nimport { Label } from \"@/registry/default/ui/label\"\n\nexport const description =\n \"A login form with email and password. There's an option to login with Google and a link to sign up if you don't have an account.\"\n\nexport const iframeHeight = \"600px\"\n\nexport const containerClassName =\n \"w-full h-screen flex items-center justify-center px-4\"\n\nexport default function LoginForm() {\n return (\n \n \n Login \n \n Enter your email below to login to your account\n \n \n \n \n
\n Email \n \n
\n
\n
\n Password \n \n Forgot your password?\n \n
\n
\n
\n
\n Login\n \n
\n Login with Google\n \n
\n \n Don't have an account?{\" \"}\n \n Sign up\n \n
\n \n \n )\n}\n"
+ }
+ ],
+ "category": "Authentication",
+ "subcategory": "Login"
+}
\ No newline at end of file
diff --git a/apps/www/public/registry/styles/default/authentication-03.json b/apps/www/public/registry/styles/default/authentication-03.json
new file mode 100644
index 0000000000..03badab788
--- /dev/null
+++ b/apps/www/public/registry/styles/default/authentication-03.json
@@ -0,0 +1,19 @@
+{
+ "name": "authentication-03",
+ "type": "components:block",
+ "registryDependencies": [
+ "button",
+ "card",
+ "input",
+ "label"
+ ],
+ "files": [
+ {
+ "path": "block/authentication-03.tsx",
+ "type": "components:block",
+ "content": "import Link from \"next/link\"\n\nimport { Button } from \"@/registry/default/ui/button\"\nimport {\n Card,\n CardContent,\n CardDescription,\n CardHeader,\n CardTitle,\n} from \"@/registry/default/ui/card\"\nimport { Input } from \"@/registry/default/ui/input\"\nimport { Label } from \"@/registry/default/ui/label\"\n\nexport const description =\n \"A sign up form with first name, last name, email and password inside a card. There's an option to sign up with GitHub and a link to login if you already have an account\"\n\nexport const iframeHeight = \"600px\"\n\nexport const containerClassName =\n \"w-full h-screen flex items-center justify-center px-4\"\n\nexport default function LoginForm() {\n return (\n \n \n Sign Up \n \n Enter your information to create an account\n \n \n \n \n
\n
\n Email \n \n
\n
\n Password \n \n
\n
\n Create an account\n \n
\n Sign up with GitHub\n \n
\n \n Already have an account?{\" \"}\n \n Sign in\n \n
\n \n \n )\n}\n"
+ }
+ ],
+ "category": "Authentication",
+ "subcategory": "Login"
+}
\ No newline at end of file
diff --git a/apps/www/public/registry/styles/default/authentication-04.json b/apps/www/public/registry/styles/default/authentication-04.json
new file mode 100644
index 0000000000..7e8477acac
--- /dev/null
+++ b/apps/www/public/registry/styles/default/authentication-04.json
@@ -0,0 +1,19 @@
+{
+ "name": "authentication-04",
+ "type": "components:block",
+ "registryDependencies": [
+ "button",
+ "card",
+ "input",
+ "label"
+ ],
+ "files": [
+ {
+ "path": "block/authentication-04.tsx",
+ "type": "components:block",
+ "content": "import Image from \"next/image\"\nimport Link from \"next/link\"\n\nimport { Button } from \"@/registry/default/ui/button\"\nimport { Input } from \"@/registry/default/ui/input\"\nimport { Label } from \"@/registry/default/ui/label\"\n\nexport const description =\n \"A login page with two columns. The first column has the login form with email and password. There's a Forgot your passwork link and a link to sign up if you do not have an account. The second column has a cover image.\"\n\nexport const iframeHeight = \"800px\"\n\nexport const containerClassName = \"w-full h-full p-4 lg:p-0\"\n\nexport default function Dashboard() {\n return (\n \n
\n
\n
\n
Login \n
\n Enter your email below to login to your account\n
\n
\n
\n
\n Email \n \n
\n
\n
\n Password \n \n Forgot your password?\n \n
\n
\n
\n
\n Login\n \n
\n Login with Google\n \n
\n
\n Don't have an account?{\" \"}\n \n Sign up\n \n
\n
\n
\n
\n \n
\n
\n )\n}\n"
+ }
+ ],
+ "category": "Authentication",
+ "subcategory": "Login"
+}
\ No newline at end of file
diff --git a/apps/www/public/registry/styles/default/avatar.json b/apps/www/public/registry/styles/default/avatar.json
index 2fa35c3e23..6da8b9c7e4 100644
--- a/apps/www/public/registry/styles/default/avatar.json
+++ b/apps/www/public/registry/styles/default/avatar.json
@@ -1,13 +1,14 @@
{
"name": "avatar",
+ "type": "components:ui",
"dependencies": [
"@radix-ui/react-avatar"
],
"files": [
{
- "name": "avatar.tsx",
+ "path": "ui/avatar.tsx",
+ "type": "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": "components:ui"
+ ]
}
\ No newline at end of file
diff --git a/apps/www/public/registry/styles/default/badge.json b/apps/www/public/registry/styles/default/badge.json
index ef71048140..bf240819de 100644
--- a/apps/www/public/registry/styles/default/badge.json
+++ b/apps/www/public/registry/styles/default/badge.json
@@ -1,10 +1,11 @@
{
"name": "badge",
+ "type": "components:ui",
"files": [
{
- "name": "badge.tsx",
+ "path": "ui/badge.tsx",
+ "type": "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 rounded-full border 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 \"border-transparent bg-primary text-primary-foreground hover:bg-primary/80\",\n secondary:\n \"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80\",\n destructive:\n \"border-transparent bg-destructive text-destructive-foreground hover:bg-destructive/80\",\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": "components:ui"
+ ]
}
\ No newline at end of file
diff --git a/apps/www/public/registry/styles/default/breadcrumb.json b/apps/www/public/registry/styles/default/breadcrumb.json
index 0fc27fae7e..0a1eab6d7c 100644
--- a/apps/www/public/registry/styles/default/breadcrumb.json
+++ b/apps/www/public/registry/styles/default/breadcrumb.json
@@ -1,13 +1,14 @@
{
"name": "breadcrumb",
+ "type": "components:ui",
"dependencies": [
"@radix-ui/react-slot"
],
"files": [
{
- "name": "breadcrumb.tsx",
+ "path": "ui/breadcrumb.tsx",
+ "type": "components:ui",
"content": "import * as React from \"react\"\nimport { Slot } from \"@radix-ui/react-slot\"\nimport { ChevronRight, MoreHorizontal } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst Breadcrumb = React.forwardRef<\n HTMLElement,\n React.ComponentPropsWithoutRef<\"nav\"> & {\n separator?: React.ReactNode\n }\n>(({ ...props }, ref) => )\nBreadcrumb.displayName = \"Breadcrumb\"\n\nconst BreadcrumbList = React.forwardRef<\n HTMLOListElement,\n React.ComponentPropsWithoutRef<\"ol\">\n>(({ className, ...props }, ref) => (\n \n))\nBreadcrumbList.displayName = \"BreadcrumbList\"\n\nconst BreadcrumbItem = React.forwardRef<\n HTMLLIElement,\n React.ComponentPropsWithoutRef<\"li\">\n>(({ className, ...props }, ref) => (\n \n))\nBreadcrumbItem.displayName = \"BreadcrumbItem\"\n\nconst BreadcrumbLink = React.forwardRef<\n HTMLAnchorElement,\n React.ComponentPropsWithoutRef<\"a\"> & {\n asChild?: boolean\n }\n>(({ asChild, className, ...props }, ref) => {\n const Comp = asChild ? Slot : \"a\"\n\n return (\n \n )\n})\nBreadcrumbLink.displayName = \"BreadcrumbLink\"\n\nconst BreadcrumbPage = React.forwardRef<\n HTMLSpanElement,\n React.ComponentPropsWithoutRef<\"span\">\n>(({ className, ...props }, ref) => (\n \n))\nBreadcrumbPage.displayName = \"BreadcrumbPage\"\n\nconst BreadcrumbSeparator = ({\n children,\n className,\n ...props\n}: React.ComponentProps<\"li\">) => (\n svg]:size-3.5\", className)}\n {...props}\n >\n {children ?? }\n \n)\nBreadcrumbSeparator.displayName = \"BreadcrumbSeparator\"\n\nconst BreadcrumbEllipsis = ({\n className,\n ...props\n}: React.ComponentProps<\"span\">) => (\n \n \n More \n \n)\nBreadcrumbEllipsis.displayName = \"BreadcrumbElipssis\"\n\nexport {\n Breadcrumb,\n BreadcrumbList,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbPage,\n BreadcrumbSeparator,\n BreadcrumbEllipsis,\n}\n"
}
- ],
- "type": "components:ui"
+ ]
}
\ No newline at end of file
diff --git a/apps/www/public/registry/styles/default/button.json b/apps/www/public/registry/styles/default/button.json
index b292cab431..433ac3a52d 100644
--- a/apps/www/public/registry/styles/default/button.json
+++ b/apps/www/public/registry/styles/default/button.json
@@ -1,13 +1,14 @@
{
"name": "button",
+ "type": "components:ui",
"dependencies": [
"@radix-ui/react-slot"
],
"files": [
{
- "name": "button.tsx",
+ "path": "ui/button.tsx",
+ "type": "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 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50\",\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 bg-background 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: \"text-primary underline-offset-4 hover:underline\",\n },\n size: {\n default: \"h-10 px-4 py-2\",\n sm: \"h-9 rounded-md px-3\",\n lg: \"h-11 rounded-md px-8\",\n icon: \"h-10 w-10\",\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": "components:ui"
+ ]
}
\ No newline at end of file
diff --git a/apps/www/public/registry/styles/default/calendar.json b/apps/www/public/registry/styles/default/calendar.json
index 39f3dff877..2660f6b4d2 100644
--- a/apps/www/public/registry/styles/default/calendar.json
+++ b/apps/www/public/registry/styles/default/calendar.json
@@ -1,5 +1,6 @@
{
"name": "calendar",
+ "type": "components:ui",
"dependencies": [
"react-day-picker@8.10.1",
"date-fns"
@@ -9,9 +10,9 @@
],
"files": [
{
- "name": "calendar.tsx",
+ "path": "ui/calendar.tsx",
+ "type": "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 \"@/registry/default/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": "components:ui"
+ ]
}
\ No newline at end of file
diff --git a/apps/www/public/registry/styles/default/card.json b/apps/www/public/registry/styles/default/card.json
index ef31d3a699..24e3d1efa5 100644
--- a/apps/www/public/registry/styles/default/card.json
+++ b/apps/www/public/registry/styles/default/card.json
@@ -1,10 +1,11 @@
{
"name": "card",
+ "type": "components:ui",
"files": [
{
- "name": "card.tsx",
+ "path": "ui/card.tsx",
+ "type": "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": "components:ui"
+ ]
}
\ No newline at end of file
diff --git a/apps/www/public/registry/styles/default/carousel.json b/apps/www/public/registry/styles/default/carousel.json
index d7e14e3382..20d67468f0 100644
--- a/apps/www/public/registry/styles/default/carousel.json
+++ b/apps/www/public/registry/styles/default/carousel.json
@@ -1,5 +1,6 @@
{
"name": "carousel",
+ "type": "components:ui",
"dependencies": [
"embla-carousel-react"
],
@@ -8,9 +9,9 @@
],
"files": [
{
- "name": "carousel.tsx",
+ "path": "ui/carousel.tsx",
+ "type": "components:ui",
"content": "\"use client\"\n\nimport * as React from \"react\"\nimport useEmblaCarousel, {\n type UseEmblaCarouselType,\n} from \"embla-carousel-react\"\nimport { ArrowLeft, ArrowRight } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Button } from \"@/registry/default/ui/button\"\n\ntype CarouselApi = UseEmblaCarouselType[1]\ntype UseCarouselParameters = Parameters\ntype CarouselOptions = UseCarouselParameters[0]\ntype CarouselPlugin = UseCarouselParameters[1]\n\ntype CarouselProps = {\n opts?: CarouselOptions\n plugins?: CarouselPlugin\n orientation?: \"horizontal\" | \"vertical\"\n setApi?: (api: CarouselApi) => void\n}\n\ntype CarouselContextProps = {\n carouselRef: ReturnType[0]\n api: ReturnType[1]\n scrollPrev: () => void\n scrollNext: () => void\n canScrollPrev: boolean\n canScrollNext: boolean\n} & CarouselProps\n\nconst CarouselContext = React.createContext(null)\n\nfunction useCarousel() {\n const context = React.useContext(CarouselContext)\n\n if (!context) {\n throw new Error(\"useCarousel must be used within a \")\n }\n\n return context\n}\n\nconst Carousel = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes & CarouselProps\n>(\n (\n {\n orientation = \"horizontal\",\n opts,\n setApi,\n plugins,\n className,\n children,\n ...props\n },\n ref\n ) => {\n const [carouselRef, api] = useEmblaCarousel(\n {\n ...opts,\n axis: orientation === \"horizontal\" ? \"x\" : \"y\",\n },\n plugins\n )\n const [canScrollPrev, setCanScrollPrev] = React.useState(false)\n const [canScrollNext, setCanScrollNext] = React.useState(false)\n\n const onSelect = React.useCallback((api: CarouselApi) => {\n if (!api) {\n return\n }\n\n setCanScrollPrev(api.canScrollPrev())\n setCanScrollNext(api.canScrollNext())\n }, [])\n\n const scrollPrev = React.useCallback(() => {\n api?.scrollPrev()\n }, [api])\n\n const scrollNext = React.useCallback(() => {\n api?.scrollNext()\n }, [api])\n\n const handleKeyDown = React.useCallback(\n (event: React.KeyboardEvent) => {\n if (event.key === \"ArrowLeft\") {\n event.preventDefault()\n scrollPrev()\n } else if (event.key === \"ArrowRight\") {\n event.preventDefault()\n scrollNext()\n }\n },\n [scrollPrev, scrollNext]\n )\n\n React.useEffect(() => {\n if (!api || !setApi) {\n return\n }\n\n setApi(api)\n }, [api, setApi])\n\n React.useEffect(() => {\n if (!api) {\n return\n }\n\n onSelect(api)\n api.on(\"reInit\", onSelect)\n api.on(\"select\", onSelect)\n\n return () => {\n api?.off(\"select\", onSelect)\n }\n }, [api, onSelect])\n\n return (\n \n \n {children}\n
\n \n )\n }\n)\nCarousel.displayName = \"Carousel\"\n\nconst CarouselContent = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes\n>(({ className, ...props }, ref) => {\n const { carouselRef, orientation } = useCarousel()\n\n return (\n \n )\n})\nCarouselContent.displayName = \"CarouselContent\"\n\nconst CarouselItem = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes\n>(({ className, ...props }, ref) => {\n const { orientation } = useCarousel()\n\n return (\n
\n )\n})\nCarouselItem.displayName = \"CarouselItem\"\n\nconst CarouselPrevious = React.forwardRef<\n HTMLButtonElement,\n React.ComponentProps\n>(({ className, variant = \"outline\", size = \"icon\", ...props }, ref) => {\n const { orientation, scrollPrev, canScrollPrev } = useCarousel()\n\n return (\n \n \n Previous slide \n \n )\n})\nCarouselPrevious.displayName = \"CarouselPrevious\"\n\nconst CarouselNext = React.forwardRef<\n HTMLButtonElement,\n React.ComponentProps\n>(({ className, variant = \"outline\", size = \"icon\", ...props }, ref) => {\n const { orientation, scrollNext, canScrollNext } = useCarousel()\n\n return (\n \n \n Next slide \n \n )\n})\nCarouselNext.displayName = \"CarouselNext\"\n\nexport {\n type CarouselApi,\n Carousel,\n CarouselContent,\n CarouselItem,\n CarouselPrevious,\n CarouselNext,\n}\n"
}
- ],
- "type": "components:ui"
+ ]
}
\ No newline at end of file
diff --git a/apps/www/public/registry/styles/default/chart-area-axes.json b/apps/www/public/registry/styles/default/chart-area-axes.json
new file mode 100644
index 0000000000..06944a5e0f
--- /dev/null
+++ b/apps/www/public/registry/styles/default/chart-area-axes.json
@@ -0,0 +1,17 @@
+{
+ "name": "chart-area-axes",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-area-axes.tsx",
+ "type": "components:block",
+ "content": "\"use client\"\n\nimport { TrendingUp } from \"lucide-react\"\nimport { Area, AreaChart, CartesianGrid, XAxis, YAxis } from \"recharts\"\n\nimport {\n Card,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle,\n} from \"@/registry/default/ui/card\"\nimport {\n ChartConfig,\n ChartContainer,\n ChartTooltip,\n ChartTooltipContent,\n} from \"@/registry/default/ui/chart\"\n\nexport const description = \"An area chart with axes\"\n\nconst chartData = [\n { month: \"January\", desktop: 186, mobile: 80 },\n { month: \"February\", desktop: 305, mobile: 200 },\n { month: \"March\", desktop: 237, mobile: 120 },\n { month: \"April\", desktop: 73, mobile: 190 },\n { month: \"May\", desktop: 209, mobile: 130 },\n { month: \"June\", desktop: 214, mobile: 140 },\n]\n\nconst chartConfig = {\n desktop: {\n label: \"Desktop\",\n color: \"hsl(var(--chart-1))\",\n },\n mobile: {\n label: \"Mobile\",\n color: \"hsl(var(--chart-2))\",\n },\n} satisfies ChartConfig\n\nexport default function Component() {\n return (\n \n \n Area Chart - Axes \n \n Showing total visitors for the last 6 months\n \n \n \n \n \n \n value.slice(0, 3)}\n />\n \n } />\n \n \n \n \n \n \n \n
\n
\n Trending up by 5.2% this month \n
\n
\n January - June 2024\n
\n
\n
\n \n \n )\n}\n"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Area"
+}
\ No newline at end of file
diff --git a/apps/www/public/registry/styles/default/chart-area-default.json b/apps/www/public/registry/styles/default/chart-area-default.json
new file mode 100644
index 0000000000..fe32146185
--- /dev/null
+++ b/apps/www/public/registry/styles/default/chart-area-default.json
@@ -0,0 +1,17 @@
+{
+ "name": "chart-area-default",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-area-default.tsx",
+ "type": "components:block",
+ "content": "\"use client\"\n\nimport { TrendingUp } from \"lucide-react\"\nimport { Area, AreaChart, CartesianGrid, XAxis } from \"recharts\"\n\nimport {\n Card,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle,\n} from \"@/registry/default/ui/card\"\nimport {\n ChartConfig,\n ChartContainer,\n ChartTooltip,\n ChartTooltipContent,\n} from \"@/registry/default/ui/chart\"\n\nexport const description = \"A simple area chart\"\n\nconst chartData = [\n { month: \"January\", desktop: 186 },\n { month: \"February\", desktop: 305 },\n { month: \"March\", desktop: 237 },\n { month: \"April\", desktop: 73 },\n { month: \"May\", desktop: 209 },\n { month: \"June\", desktop: 214 },\n]\n\nconst chartConfig = {\n desktop: {\n label: \"Desktop\",\n color: \"hsl(var(--chart-1))\",\n },\n} satisfies ChartConfig\n\nexport default function Component() {\n return (\n \n \n Area Chart \n \n Showing total visitors for the last 6 months\n \n \n \n \n \n \n value.slice(0, 3)}\n />\n }\n />\n \n \n \n \n \n \n
\n
\n Trending up by 5.2% this month \n
\n
\n January - June 2024\n
\n
\n
\n \n \n )\n}\n"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Area"
+}
\ No newline at end of file
diff --git a/apps/www/public/registry/styles/default/chart-area-gradient.json b/apps/www/public/registry/styles/default/chart-area-gradient.json
new file mode 100644
index 0000000000..d238c4ca2d
--- /dev/null
+++ b/apps/www/public/registry/styles/default/chart-area-gradient.json
@@ -0,0 +1,17 @@
+{
+ "name": "chart-area-gradient",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-area-gradient.tsx",
+ "type": "components:block",
+ "content": "\"use client\"\n\nimport { TrendingUp } from \"lucide-react\"\nimport { Area, AreaChart, CartesianGrid, XAxis } from \"recharts\"\n\nimport {\n Card,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle,\n} from \"@/registry/default/ui/card\"\nimport {\n ChartConfig,\n ChartContainer,\n ChartTooltip,\n ChartTooltipContent,\n} from \"@/registry/default/ui/chart\"\n\nexport const description = \"An area chart with gradient fill\"\n\nconst chartData = [\n { month: \"January\", desktop: 186, mobile: 80 },\n { month: \"February\", desktop: 305, mobile: 200 },\n { month: \"March\", desktop: 237, mobile: 120 },\n { month: \"April\", desktop: 73, mobile: 190 },\n { month: \"May\", desktop: 209, mobile: 130 },\n { month: \"June\", desktop: 214, mobile: 140 },\n]\n\nconst chartConfig = {\n desktop: {\n label: \"Desktop\",\n color: \"hsl(var(--chart-1))\",\n },\n mobile: {\n label: \"Mobile\",\n color: \"hsl(var(--chart-2))\",\n },\n} satisfies ChartConfig\n\nexport default function Component() {\n return (\n \n \n Area Chart - Gradient \n \n Showing total visitors for the last 6 months\n \n \n \n \n \n \n value.slice(0, 3)}\n />\n } />\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n Trending up by 5.2% this month \n
\n
\n January - June 2024\n
\n
\n
\n \n \n )\n}\n"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Area"
+}
\ No newline at end of file
diff --git a/apps/www/public/registry/styles/default/chart-area-icons.json b/apps/www/public/registry/styles/default/chart-area-icons.json
new file mode 100644
index 0000000000..38825f3050
--- /dev/null
+++ b/apps/www/public/registry/styles/default/chart-area-icons.json
@@ -0,0 +1,17 @@
+{
+ "name": "chart-area-icons",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-area-icons.tsx",
+ "type": "components:block",
+ "content": "\"use client\"\n\nimport { TrendingDown, TrendingUp } from \"lucide-react\"\nimport { Area, AreaChart, CartesianGrid, XAxis } from \"recharts\"\n\nimport {\n Card,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle,\n} from \"@/registry/default/ui/card\"\nimport {\n ChartConfig,\n ChartContainer,\n ChartLegend,\n ChartLegendContent,\n ChartTooltip,\n ChartTooltipContent,\n} from \"@/registry/default/ui/chart\"\n\nexport const description = \"An area chart with icons\"\n\nconst chartData = [\n { month: \"January\", desktop: 186, mobile: 80 },\n { month: \"February\", desktop: 305, mobile: 200 },\n { month: \"March\", desktop: 237, mobile: 120 },\n { month: \"April\", desktop: 73, mobile: 190 },\n { month: \"May\", desktop: 209, mobile: 130 },\n { month: \"June\", desktop: 214, mobile: 140 },\n]\n\nconst chartConfig = {\n desktop: {\n label: \"Desktop\",\n color: \"hsl(var(--chart-1))\",\n icon: TrendingDown,\n },\n mobile: {\n label: \"Mobile\",\n color: \"hsl(var(--chart-2))\",\n icon: TrendingUp,\n },\n} satisfies ChartConfig\n\nexport default function Component() {\n return (\n \n \n Area Chart - Icons \n \n Showing total visitors for the last 6 months\n \n \n \n \n \n \n value.slice(0, 3)}\n />\n }\n />\n \n \n } />\n \n \n \n \n \n
\n
\n Trending up by 5.2% this month \n
\n
\n January - June 2024\n
\n
\n
\n \n \n )\n}\n"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Area"
+}
\ No newline at end of file
diff --git a/apps/www/public/registry/styles/default/chart-area-interactive.json b/apps/www/public/registry/styles/default/chart-area-interactive.json
new file mode 100644
index 0000000000..839b207625
--- /dev/null
+++ b/apps/www/public/registry/styles/default/chart-area-interactive.json
@@ -0,0 +1,17 @@
+{
+ "name": "chart-area-interactive",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-area-interactive.tsx",
+ "type": "components:block",
+ "content": "\"use client\"\n\nimport * as React from \"react\"\nimport { Area, AreaChart, CartesianGrid, XAxis } from \"recharts\"\n\nimport {\n Card,\n CardContent,\n CardDescription,\n CardHeader,\n CardTitle,\n} from \"@/registry/default/ui/card\"\nimport {\n ChartConfig,\n ChartContainer,\n ChartLegend,\n ChartLegendContent,\n ChartTooltip,\n ChartTooltipContent,\n} from \"@/registry/default/ui/chart\"\nimport {\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from \"@/registry/default/ui/select\"\n\nexport const description = \"An interactive area chart\"\n\nconst chartData = [\n { date: \"2024-04-01\", desktop: 222, mobile: 150 },\n { date: \"2024-04-02\", desktop: 97, mobile: 180 },\n { date: \"2024-04-03\", desktop: 167, mobile: 120 },\n { date: \"2024-04-04\", desktop: 242, mobile: 260 },\n { date: \"2024-04-05\", desktop: 373, mobile: 290 },\n { date: \"2024-04-06\", desktop: 301, mobile: 340 },\n { date: \"2024-04-07\", desktop: 245, mobile: 180 },\n { date: \"2024-04-08\", desktop: 409, mobile: 320 },\n { date: \"2024-04-09\", desktop: 59, mobile: 110 },\n { date: \"2024-04-10\", desktop: 261, mobile: 190 },\n { date: \"2024-04-11\", desktop: 327, mobile: 350 },\n { date: \"2024-04-12\", desktop: 292, mobile: 210 },\n { date: \"2024-04-13\", desktop: 342, mobile: 380 },\n { date: \"2024-04-14\", desktop: 137, mobile: 220 },\n { date: \"2024-04-15\", desktop: 120, mobile: 170 },\n { date: \"2024-04-16\", desktop: 138, mobile: 190 },\n { date: \"2024-04-17\", desktop: 446, mobile: 360 },\n { date: \"2024-04-18\", desktop: 364, mobile: 410 },\n { date: \"2024-04-19\", desktop: 243, mobile: 180 },\n { date: \"2024-04-20\", desktop: 89, mobile: 150 },\n { date: \"2024-04-21\", desktop: 137, mobile: 200 },\n { date: \"2024-04-22\", desktop: 224, mobile: 170 },\n { date: \"2024-04-23\", desktop: 138, mobile: 230 },\n { date: \"2024-04-24\", desktop: 387, mobile: 290 },\n { date: \"2024-04-25\", desktop: 215, mobile: 250 },\n { date: \"2024-04-26\", desktop: 75, mobile: 130 },\n { date: \"2024-04-27\", desktop: 383, mobile: 420 },\n { date: \"2024-04-28\", desktop: 122, mobile: 180 },\n { date: \"2024-04-29\", desktop: 315, mobile: 240 },\n { date: \"2024-04-30\", desktop: 454, mobile: 380 },\n { date: \"2024-05-01\", desktop: 165, mobile: 220 },\n { date: \"2024-05-02\", desktop: 293, mobile: 310 },\n { date: \"2024-05-03\", desktop: 247, mobile: 190 },\n { date: \"2024-05-04\", desktop: 385, mobile: 420 },\n { date: \"2024-05-05\", desktop: 481, mobile: 390 },\n { date: \"2024-05-06\", desktop: 498, mobile: 520 },\n { date: \"2024-05-07\", desktop: 388, mobile: 300 },\n { date: \"2024-05-08\", desktop: 149, mobile: 210 },\n { date: \"2024-05-09\", desktop: 227, mobile: 180 },\n { date: \"2024-05-10\", desktop: 293, mobile: 330 },\n { date: \"2024-05-11\", desktop: 335, mobile: 270 },\n { date: \"2024-05-12\", desktop: 197, mobile: 240 },\n { date: \"2024-05-13\", desktop: 197, mobile: 160 },\n { date: \"2024-05-14\", desktop: 448, mobile: 490 },\n { date: \"2024-05-15\", desktop: 473, mobile: 380 },\n { date: \"2024-05-16\", desktop: 338, mobile: 400 },\n { date: \"2024-05-17\", desktop: 499, mobile: 420 },\n { date: \"2024-05-18\", desktop: 315, mobile: 350 },\n { date: \"2024-05-19\", desktop: 235, mobile: 180 },\n { date: \"2024-05-20\", desktop: 177, mobile: 230 },\n { date: \"2024-05-21\", desktop: 82, mobile: 140 },\n { date: \"2024-05-22\", desktop: 81, mobile: 120 },\n { date: \"2024-05-23\", desktop: 252, mobile: 290 },\n { date: \"2024-05-24\", desktop: 294, mobile: 220 },\n { date: \"2024-05-25\", desktop: 201, mobile: 250 },\n { date: \"2024-05-26\", desktop: 213, mobile: 170 },\n { date: \"2024-05-27\", desktop: 420, mobile: 460 },\n { date: \"2024-05-28\", desktop: 233, mobile: 190 },\n { date: \"2024-05-29\", desktop: 78, mobile: 130 },\n { date: \"2024-05-30\", desktop: 340, mobile: 280 },\n { date: \"2024-05-31\", desktop: 178, mobile: 230 },\n { date: \"2024-06-01\", desktop: 178, mobile: 200 },\n { date: \"2024-06-02\", desktop: 470, mobile: 410 },\n { date: \"2024-06-03\", desktop: 103, mobile: 160 },\n { date: \"2024-06-04\", desktop: 439, mobile: 380 },\n { date: \"2024-06-05\", desktop: 88, mobile: 140 },\n { date: \"2024-06-06\", desktop: 294, mobile: 250 },\n { date: \"2024-06-07\", desktop: 323, mobile: 370 },\n { date: \"2024-06-08\", desktop: 385, mobile: 320 },\n { date: \"2024-06-09\", desktop: 438, mobile: 480 },\n { date: \"2024-06-10\", desktop: 155, mobile: 200 },\n { date: \"2024-06-11\", desktop: 92, mobile: 150 },\n { date: \"2024-06-12\", desktop: 492, mobile: 420 },\n { date: \"2024-06-13\", desktop: 81, mobile: 130 },\n { date: \"2024-06-14\", desktop: 426, mobile: 380 },\n { date: \"2024-06-15\", desktop: 307, mobile: 350 },\n { date: \"2024-06-16\", desktop: 371, mobile: 310 },\n { date: \"2024-06-17\", desktop: 475, mobile: 520 },\n { date: \"2024-06-18\", desktop: 107, mobile: 170 },\n { date: \"2024-06-19\", desktop: 341, mobile: 290 },\n { date: \"2024-06-20\", desktop: 408, mobile: 450 },\n { date: \"2024-06-21\", desktop: 169, mobile: 210 },\n { date: \"2024-06-22\", desktop: 317, mobile: 270 },\n { date: \"2024-06-23\", desktop: 480, mobile: 530 },\n { date: \"2024-06-24\", desktop: 132, mobile: 180 },\n { date: \"2024-06-25\", desktop: 141, mobile: 190 },\n { date: \"2024-06-26\", desktop: 434, mobile: 380 },\n { date: \"2024-06-27\", desktop: 448, mobile: 490 },\n { date: \"2024-06-28\", desktop: 149, mobile: 200 },\n { date: \"2024-06-29\", desktop: 103, mobile: 160 },\n { date: \"2024-06-30\", desktop: 446, mobile: 400 },\n]\n\nconst chartConfig = {\n visitors: {\n label: \"Visitors\",\n },\n desktop: {\n label: \"Desktop\",\n color: \"hsl(var(--chart-1))\",\n },\n mobile: {\n label: \"Mobile\",\n color: \"hsl(var(--chart-2))\",\n },\n} satisfies ChartConfig\n\nexport default function Component() {\n const [timeRange, setTimeRange] = React.useState(\"90d\")\n\n const filteredData = chartData.filter((item) => {\n const date = new Date(item.date)\n const now = new Date()\n let daysToSubtract = 90\n if (timeRange === \"30d\") {\n daysToSubtract = 30\n } else if (timeRange === \"7d\") {\n daysToSubtract = 7\n }\n now.setDate(now.getDate() - daysToSubtract)\n return date >= now\n })\n\n return (\n \n \n \n Area Chart - Interactive \n \n Showing total visitors for the last 3 months\n \n
\n \n \n \n \n \n \n Last 3 months\n \n \n Last 30 days\n \n \n Last 7 days\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {\n const date = new Date(value)\n return date.toLocaleDateString(\"en-US\", {\n month: \"short\",\n day: \"numeric\",\n })\n }}\n />\n {\n return new Date(value).toLocaleDateString(\"en-US\", {\n month: \"short\",\n day: \"numeric\",\n })\n }}\n indicator=\"dot\"\n />\n }\n />\n \n \n } />\n \n \n \n \n )\n}\n"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Area"
+}
\ No newline at end of file
diff --git a/apps/www/public/registry/styles/default/chart-area-legend.json b/apps/www/public/registry/styles/default/chart-area-legend.json
new file mode 100644
index 0000000000..358f052676
--- /dev/null
+++ b/apps/www/public/registry/styles/default/chart-area-legend.json
@@ -0,0 +1,17 @@
+{
+ "name": "chart-area-legend",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-area-legend.tsx",
+ "type": "components:block",
+ "content": "\"use client\"\n\nimport { TrendingUp } from \"lucide-react\"\nimport { Area, AreaChart, CartesianGrid, XAxis } from \"recharts\"\n\nimport {\n Card,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle,\n} from \"@/registry/default/ui/card\"\nimport {\n ChartConfig,\n ChartContainer,\n ChartLegend,\n ChartLegendContent,\n ChartTooltip,\n ChartTooltipContent,\n} from \"@/registry/default/ui/chart\"\n\nexport const description = \"An area chart with a legend\"\n\nconst chartData = [\n { month: \"January\", desktop: 186, mobile: 80 },\n { month: \"February\", desktop: 305, mobile: 200 },\n { month: \"March\", desktop: 237, mobile: 120 },\n { month: \"April\", desktop: 73, mobile: 190 },\n { month: \"May\", desktop: 209, mobile: 130 },\n { month: \"June\", desktop: 214, mobile: 140 },\n]\n\nconst chartConfig = {\n desktop: {\n label: \"Desktop\",\n color: \"hsl(var(--chart-1))\",\n },\n mobile: {\n label: \"Mobile\",\n color: \"hsl(var(--chart-2))\",\n },\n} satisfies ChartConfig\n\nexport default function Component() {\n return (\n \n \n Area Chart - Legend \n \n Showing total visitors for the last 6 months\n \n \n \n \n \n \n value.slice(0, 3)}\n />\n }\n />\n \n \n } />\n \n \n \n \n \n
\n
\n Trending up by 5.2% this month \n
\n
\n January - June 2024\n
\n
\n
\n \n \n )\n}\n"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Area"
+}
\ No newline at end of file
diff --git a/apps/www/public/registry/styles/default/chart-area-linear.json b/apps/www/public/registry/styles/default/chart-area-linear.json
new file mode 100644
index 0000000000..acbff30fa3
--- /dev/null
+++ b/apps/www/public/registry/styles/default/chart-area-linear.json
@@ -0,0 +1,17 @@
+{
+ "name": "chart-area-linear",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-area-linear.tsx",
+ "type": "components:block",
+ "content": "\"use client\"\n\nimport { TrendingUp } from \"lucide-react\"\nimport { Area, AreaChart, CartesianGrid, XAxis } from \"recharts\"\n\nimport {\n Card,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle,\n} from \"@/registry/default/ui/card\"\nimport {\n ChartConfig,\n ChartContainer,\n ChartTooltip,\n ChartTooltipContent,\n} from \"@/registry/default/ui/chart\"\n\nexport const description = \"A linear area chart\"\n\nconst chartData = [\n { month: \"January\", desktop: 186 },\n { month: \"February\", desktop: 305 },\n { month: \"March\", desktop: 237 },\n { month: \"April\", desktop: 73 },\n { month: \"May\", desktop: 209 },\n { month: \"June\", desktop: 214 },\n]\n\nconst chartConfig = {\n desktop: {\n label: \"Desktop\",\n color: \"hsl(var(--chart-1))\",\n },\n} satisfies ChartConfig\n\nexport default function Component() {\n return (\n \n \n Area Chart - Linear \n \n Showing total visitors for the last 6 months\n \n \n \n \n \n \n value.slice(0, 3)}\n />\n }\n />\n \n \n \n \n \n \n
\n
\n Trending up by 5.2% this month \n
\n
\n January - June 2024\n
\n
\n
\n \n \n )\n}\n"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Area"
+}
\ No newline at end of file
diff --git a/apps/www/public/registry/styles/default/chart-area-stacked-expand.json b/apps/www/public/registry/styles/default/chart-area-stacked-expand.json
new file mode 100644
index 0000000000..be6e6f2d01
--- /dev/null
+++ b/apps/www/public/registry/styles/default/chart-area-stacked-expand.json
@@ -0,0 +1,17 @@
+{
+ "name": "chart-area-stacked-expand",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-area-stacked-expand.tsx",
+ "type": "components:block",
+ "content": "\"use client\"\n\nimport { TrendingUp } from \"lucide-react\"\nimport { Area, AreaChart, CartesianGrid, XAxis } from \"recharts\"\n\nimport {\n Card,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle,\n} from \"@/registry/default/ui/card\"\nimport {\n ChartConfig,\n ChartContainer,\n ChartTooltip,\n ChartTooltipContent,\n} from \"@/registry/default/ui/chart\"\n\nexport const description = \"A stacked area chart with expand stacking\"\n\nconst chartData = [\n { month: \"January\", desktop: 186, mobile: 80, other: 45 },\n { month: \"February\", desktop: 305, mobile: 200, other: 100 },\n { month: \"March\", desktop: 237, mobile: 120, other: 150 },\n { month: \"April\", desktop: 73, mobile: 190, other: 50 },\n { month: \"May\", desktop: 209, mobile: 130, other: 100 },\n { month: \"June\", desktop: 214, mobile: 140, other: 160 },\n]\n\nconst chartConfig = {\n desktop: {\n label: \"Desktop\",\n color: \"hsl(var(--chart-1))\",\n },\n mobile: {\n label: \"Mobile\",\n color: \"hsl(var(--chart-2))\",\n },\n other: {\n label: \"Other\",\n color: \"hsl(var(--chart-3))\",\n },\n} satisfies ChartConfig\n\nexport default function Component() {\n return (\n \n \n Area Chart - Stacked Expanded \n \n Showing total visitors for the last 6months\n \n \n \n \n \n \n value.slice(0, 3)}\n />\n }\n />\n \n \n \n \n \n \n \n \n
\n
\n Trending up by 5.2% this month \n
\n
\n January - June 2024\n
\n
\n
\n \n \n )\n}\n"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Area"
+}
\ No newline at end of file
diff --git a/apps/www/public/registry/styles/default/chart-area-stacked.json b/apps/www/public/registry/styles/default/chart-area-stacked.json
new file mode 100644
index 0000000000..e705b8f4fa
--- /dev/null
+++ b/apps/www/public/registry/styles/default/chart-area-stacked.json
@@ -0,0 +1,17 @@
+{
+ "name": "chart-area-stacked",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-area-stacked.tsx",
+ "type": "components:block",
+ "content": "\"use client\"\n\nimport { TrendingUp } from \"lucide-react\"\nimport { Area, AreaChart, CartesianGrid, XAxis } from \"recharts\"\n\nimport {\n Card,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle,\n} from \"@/registry/default/ui/card\"\nimport {\n ChartConfig,\n ChartContainer,\n ChartTooltip,\n ChartTooltipContent,\n} from \"@/registry/default/ui/chart\"\n\nexport const description = \"A stacked area chart\"\n\nconst chartData = [\n { month: \"January\", desktop: 186, mobile: 80 },\n { month: \"February\", desktop: 305, mobile: 200 },\n { month: \"March\", desktop: 237, mobile: 120 },\n { month: \"April\", desktop: 73, mobile: 190 },\n { month: \"May\", desktop: 209, mobile: 130 },\n { month: \"June\", desktop: 214, mobile: 140 },\n]\n\nconst chartConfig = {\n desktop: {\n label: \"Desktop\",\n color: \"hsl(var(--chart-1))\",\n },\n mobile: {\n label: \"Mobile\",\n color: \"hsl(var(--chart-2))\",\n },\n} satisfies ChartConfig\n\nexport default function Component() {\n return (\n \n \n Area Chart - Stacked \n \n Showing total visitors for the last 6 months\n \n \n \n \n \n \n value.slice(0, 3)}\n />\n }\n />\n \n \n \n \n \n \n \n
\n
\n Trending up by 5.2% this month \n
\n
\n January - June 2024\n
\n
\n
\n \n \n )\n}\n"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Area"
+}
\ No newline at end of file
diff --git a/apps/www/public/registry/styles/default/chart-area-step.json b/apps/www/public/registry/styles/default/chart-area-step.json
new file mode 100644
index 0000000000..41778810dd
--- /dev/null
+++ b/apps/www/public/registry/styles/default/chart-area-step.json
@@ -0,0 +1,17 @@
+{
+ "name": "chart-area-step",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-area-step.tsx",
+ "type": "components:block",
+ "content": "\"use client\"\n\nimport { Activity, TrendingUp } from \"lucide-react\"\nimport { Area, AreaChart, CartesianGrid, XAxis } from \"recharts\"\n\nimport {\n Card,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle,\n} from \"@/registry/default/ui/card\"\nimport {\n ChartConfig,\n ChartContainer,\n ChartTooltip,\n ChartTooltipContent,\n} from \"@/registry/default/ui/chart\"\n\nexport const description = \"A step area chart\"\n\nconst chartData = [\n { month: \"January\", desktop: 186 },\n { month: \"February\", desktop: 305 },\n { month: \"March\", desktop: 237 },\n { month: \"April\", desktop: 73 },\n { month: \"May\", desktop: 209 },\n { month: \"June\", desktop: 214 },\n]\n\nconst chartConfig = {\n desktop: {\n label: \"Desktop\",\n color: \"hsl(var(--chart-1))\",\n icon: Activity,\n },\n} satisfies ChartConfig\n\nexport default function Component() {\n return (\n \n \n Area Chart - Step \n \n Showing total visitors for the last 6 months\n \n \n \n \n \n \n value.slice(0, 3)}\n />\n }\n />\n \n \n \n \n \n \n
\n
\n Trending up by 5.2% this month \n
\n
\n January - June 2024\n
\n
\n
\n \n \n )\n}\n"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Area"
+}
\ No newline at end of file
diff --git a/apps/www/public/registry/styles/default/chart-bar-active.json b/apps/www/public/registry/styles/default/chart-bar-active.json
new file mode 100644
index 0000000000..23b721728b
--- /dev/null
+++ b/apps/www/public/registry/styles/default/chart-bar-active.json
@@ -0,0 +1,17 @@
+{
+ "name": "chart-bar-active",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-bar-active.tsx",
+ "type": "components:block",
+ "content": "\"use client\"\n\nimport { TrendingUp } from \"lucide-react\"\nimport { Bar, BarChart, CartesianGrid, Rectangle, XAxis } from \"recharts\"\n\nimport {\n Card,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle,\n} from \"@/registry/default/ui/card\"\nimport {\n ChartConfig,\n ChartContainer,\n ChartTooltip,\n ChartTooltipContent,\n} from \"@/registry/default/ui/chart\"\n\nexport const description = \"A bar chart with an active bar\"\n\nconst chartData = [\n { browser: \"chrome\", visitors: 187, fill: \"var(--color-chrome)\" },\n { browser: \"safari\", visitors: 200, fill: \"var(--color-safari)\" },\n { browser: \"firefox\", visitors: 275, fill: \"var(--color-firefox)\" },\n { browser: \"edge\", visitors: 173, fill: \"var(--color-edge)\" },\n { browser: \"other\", visitors: 90, fill: \"var(--color-other)\" },\n]\n\nconst chartConfig = {\n visitors: {\n label: \"Visitors\",\n },\n chrome: {\n label: \"Chrome\",\n color: \"hsl(var(--chart-1))\",\n },\n safari: {\n label: \"Safari\",\n color: \"hsl(var(--chart-2))\",\n },\n firefox: {\n label: \"Firefox\",\n color: \"hsl(var(--chart-3))\",\n },\n edge: {\n label: \"Edge\",\n color: \"hsl(var(--chart-4))\",\n },\n other: {\n label: \"Other\",\n color: \"hsl(var(--chart-5))\",\n },\n} satisfies ChartConfig\n\nexport default function Component() {\n return (\n \n \n Bar Chart - Active \n January - June 2024 \n \n \n \n \n \n \n chartConfig[value as keyof typeof chartConfig]?.label\n }\n />\n }\n />\n {\n return (\n \n )\n }}\n />\n \n \n \n \n \n Trending up by 5.2% this month \n
\n \n Showing total visitors for the last 6 months\n
\n \n \n )\n}\n"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Bar"
+}
\ No newline at end of file
diff --git a/apps/www/public/registry/styles/default/chart-bar-default.json b/apps/www/public/registry/styles/default/chart-bar-default.json
new file mode 100644
index 0000000000..f693023d82
--- /dev/null
+++ b/apps/www/public/registry/styles/default/chart-bar-default.json
@@ -0,0 +1,17 @@
+{
+ "name": "chart-bar-default",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-bar-default.tsx",
+ "type": "components:block",
+ "content": "\"use client\"\n\nimport { TrendingUp } from \"lucide-react\"\nimport { Bar, BarChart, CartesianGrid, XAxis } from \"recharts\"\n\nimport {\n Card,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle,\n} from \"@/registry/default/ui/card\"\nimport {\n ChartConfig,\n ChartContainer,\n ChartTooltip,\n ChartTooltipContent,\n} from \"@/registry/default/ui/chart\"\n\nexport const description = \"A bar chart\"\n\nconst chartData = [\n { month: \"January\", desktop: 186 },\n { month: \"February\", desktop: 305 },\n { month: \"March\", desktop: 237 },\n { month: \"April\", desktop: 73 },\n { month: \"May\", desktop: 209 },\n { month: \"June\", desktop: 214 },\n]\n\nconst chartConfig = {\n desktop: {\n label: \"Desktop\",\n color: \"hsl(var(--chart-1))\",\n },\n} satisfies ChartConfig\n\nexport default function Component() {\n return (\n \n \n Bar Chart \n January - June 2024 \n \n \n \n \n \n value.slice(0, 3)}\n />\n }\n />\n \n \n \n \n \n \n Trending up by 5.2% this month \n
\n \n Showing total visitors for the last 6 months\n
\n \n \n )\n}\n"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Bar"
+}
\ No newline at end of file
diff --git a/apps/www/public/registry/styles/default/chart-bar-horizontal.json b/apps/www/public/registry/styles/default/chart-bar-horizontal.json
new file mode 100644
index 0000000000..7d0b518079
--- /dev/null
+++ b/apps/www/public/registry/styles/default/chart-bar-horizontal.json
@@ -0,0 +1,17 @@
+{
+ "name": "chart-bar-horizontal",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-bar-horizontal.tsx",
+ "type": "components:block",
+ "content": "\"use client\"\n\nimport { TrendingUp } from \"lucide-react\"\nimport { Bar, BarChart, XAxis, YAxis } from \"recharts\"\n\nimport {\n Card,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle,\n} from \"@/registry/default/ui/card\"\nimport {\n ChartConfig,\n ChartContainer,\n ChartTooltip,\n ChartTooltipContent,\n} from \"@/registry/default/ui/chart\"\n\nexport const description = \"A horizontal bar chart\"\n\nconst chartData = [\n { month: \"January\", desktop: 186 },\n { month: \"February\", desktop: 305 },\n { month: \"March\", desktop: 237 },\n { month: \"April\", desktop: 73 },\n { month: \"May\", desktop: 209 },\n { month: \"June\", desktop: 214 },\n]\n\nconst chartConfig = {\n desktop: {\n label: \"Desktop\",\n color: \"hsl(var(--chart-1))\",\n },\n} satisfies ChartConfig\n\nexport default function Component() {\n return (\n \n \n Bar Chart - Horizontal \n January - June 2024 \n \n \n \n \n \n value.slice(0, 3)}\n />\n }\n />\n \n \n \n \n \n \n Trending up by 5.2% this month \n
\n \n Showing total visitors for the last 6 months\n
\n \n \n )\n}\n"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Bar"
+}
\ No newline at end of file
diff --git a/apps/www/public/registry/styles/default/chart-bar-interactive.json b/apps/www/public/registry/styles/default/chart-bar-interactive.json
new file mode 100644
index 0000000000..87041c5ef4
--- /dev/null
+++ b/apps/www/public/registry/styles/default/chart-bar-interactive.json
@@ -0,0 +1,17 @@
+{
+ "name": "chart-bar-interactive",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-bar-interactive.tsx",
+ "type": "components:block",
+ "content": "\"use client\"\n\nimport * as React from \"react\"\nimport { Bar, BarChart, CartesianGrid, XAxis } from \"recharts\"\n\nimport {\n Card,\n CardContent,\n CardDescription,\n CardHeader,\n CardTitle,\n} from \"@/registry/default/ui/card\"\nimport {\n ChartConfig,\n ChartContainer,\n ChartTooltip,\n ChartTooltipContent,\n} from \"@/registry/default/ui/chart\"\n\nexport const description = \"An interactive bar chart\"\n\nconst chartData = [\n { date: \"2024-04-01\", desktop: 222, mobile: 150 },\n { date: \"2024-04-02\", desktop: 97, mobile: 180 },\n { date: \"2024-04-03\", desktop: 167, mobile: 120 },\n { date: \"2024-04-04\", desktop: 242, mobile: 260 },\n { date: \"2024-04-05\", desktop: 373, mobile: 290 },\n { date: \"2024-04-06\", desktop: 301, mobile: 340 },\n { date: \"2024-04-07\", desktop: 245, mobile: 180 },\n { date: \"2024-04-08\", desktop: 409, mobile: 320 },\n { date: \"2024-04-09\", desktop: 59, mobile: 110 },\n { date: \"2024-04-10\", desktop: 261, mobile: 190 },\n { date: \"2024-04-11\", desktop: 327, mobile: 350 },\n { date: \"2024-04-12\", desktop: 292, mobile: 210 },\n { date: \"2024-04-13\", desktop: 342, mobile: 380 },\n { date: \"2024-04-14\", desktop: 137, mobile: 220 },\n { date: \"2024-04-15\", desktop: 120, mobile: 170 },\n { date: \"2024-04-16\", desktop: 138, mobile: 190 },\n { date: \"2024-04-17\", desktop: 446, mobile: 360 },\n { date: \"2024-04-18\", desktop: 364, mobile: 410 },\n { date: \"2024-04-19\", desktop: 243, mobile: 180 },\n { date: \"2024-04-20\", desktop: 89, mobile: 150 },\n { date: \"2024-04-21\", desktop: 137, mobile: 200 },\n { date: \"2024-04-22\", desktop: 224, mobile: 170 },\n { date: \"2024-04-23\", desktop: 138, mobile: 230 },\n { date: \"2024-04-24\", desktop: 387, mobile: 290 },\n { date: \"2024-04-25\", desktop: 215, mobile: 250 },\n { date: \"2024-04-26\", desktop: 75, mobile: 130 },\n { date: \"2024-04-27\", desktop: 383, mobile: 420 },\n { date: \"2024-04-28\", desktop: 122, mobile: 180 },\n { date: \"2024-04-29\", desktop: 315, mobile: 240 },\n { date: \"2024-04-30\", desktop: 454, mobile: 380 },\n { date: \"2024-05-01\", desktop: 165, mobile: 220 },\n { date: \"2024-05-02\", desktop: 293, mobile: 310 },\n { date: \"2024-05-03\", desktop: 247, mobile: 190 },\n { date: \"2024-05-04\", desktop: 385, mobile: 420 },\n { date: \"2024-05-05\", desktop: 481, mobile: 390 },\n { date: \"2024-05-06\", desktop: 498, mobile: 520 },\n { date: \"2024-05-07\", desktop: 388, mobile: 300 },\n { date: \"2024-05-08\", desktop: 149, mobile: 210 },\n { date: \"2024-05-09\", desktop: 227, mobile: 180 },\n { date: \"2024-05-10\", desktop: 293, mobile: 330 },\n { date: \"2024-05-11\", desktop: 335, mobile: 270 },\n { date: \"2024-05-12\", desktop: 197, mobile: 240 },\n { date: \"2024-05-13\", desktop: 197, mobile: 160 },\n { date: \"2024-05-14\", desktop: 448, mobile: 490 },\n { date: \"2024-05-15\", desktop: 473, mobile: 380 },\n { date: \"2024-05-16\", desktop: 338, mobile: 400 },\n { date: \"2024-05-17\", desktop: 499, mobile: 420 },\n { date: \"2024-05-18\", desktop: 315, mobile: 350 },\n { date: \"2024-05-19\", desktop: 235, mobile: 180 },\n { date: \"2024-05-20\", desktop: 177, mobile: 230 },\n { date: \"2024-05-21\", desktop: 82, mobile: 140 },\n { date: \"2024-05-22\", desktop: 81, mobile: 120 },\n { date: \"2024-05-23\", desktop: 252, mobile: 290 },\n { date: \"2024-05-24\", desktop: 294, mobile: 220 },\n { date: \"2024-05-25\", desktop: 201, mobile: 250 },\n { date: \"2024-05-26\", desktop: 213, mobile: 170 },\n { date: \"2024-05-27\", desktop: 420, mobile: 460 },\n { date: \"2024-05-28\", desktop: 233, mobile: 190 },\n { date: \"2024-05-29\", desktop: 78, mobile: 130 },\n { date: \"2024-05-30\", desktop: 340, mobile: 280 },\n { date: \"2024-05-31\", desktop: 178, mobile: 230 },\n { date: \"2024-06-01\", desktop: 178, mobile: 200 },\n { date: \"2024-06-02\", desktop: 470, mobile: 410 },\n { date: \"2024-06-03\", desktop: 103, mobile: 160 },\n { date: \"2024-06-04\", desktop: 439, mobile: 380 },\n { date: \"2024-06-05\", desktop: 88, mobile: 140 },\n { date: \"2024-06-06\", desktop: 294, mobile: 250 },\n { date: \"2024-06-07\", desktop: 323, mobile: 370 },\n { date: \"2024-06-08\", desktop: 385, mobile: 320 },\n { date: \"2024-06-09\", desktop: 438, mobile: 480 },\n { date: \"2024-06-10\", desktop: 155, mobile: 200 },\n { date: \"2024-06-11\", desktop: 92, mobile: 150 },\n { date: \"2024-06-12\", desktop: 492, mobile: 420 },\n { date: \"2024-06-13\", desktop: 81, mobile: 130 },\n { date: \"2024-06-14\", desktop: 426, mobile: 380 },\n { date: \"2024-06-15\", desktop: 307, mobile: 350 },\n { date: \"2024-06-16\", desktop: 371, mobile: 310 },\n { date: \"2024-06-17\", desktop: 475, mobile: 520 },\n { date: \"2024-06-18\", desktop: 107, mobile: 170 },\n { date: \"2024-06-19\", desktop: 341, mobile: 290 },\n { date: \"2024-06-20\", desktop: 408, mobile: 450 },\n { date: \"2024-06-21\", desktop: 169, mobile: 210 },\n { date: \"2024-06-22\", desktop: 317, mobile: 270 },\n { date: \"2024-06-23\", desktop: 480, mobile: 530 },\n { date: \"2024-06-24\", desktop: 132, mobile: 180 },\n { date: \"2024-06-25\", desktop: 141, mobile: 190 },\n { date: \"2024-06-26\", desktop: 434, mobile: 380 },\n { date: \"2024-06-27\", desktop: 448, mobile: 490 },\n { date: \"2024-06-28\", desktop: 149, mobile: 200 },\n { date: \"2024-06-29\", desktop: 103, mobile: 160 },\n { date: \"2024-06-30\", desktop: 446, mobile: 400 },\n]\n\nconst chartConfig = {\n views: {\n label: \"Page Views\",\n },\n desktop: {\n label: \"Desktop\",\n color: \"hsl(var(--chart-1))\",\n },\n mobile: {\n label: \"Mobile\",\n color: \"hsl(var(--chart-2))\",\n },\n} satisfies ChartConfig\n\nexport default function Component() {\n const [activeChart, setActiveChart] =\n React.useState(\"desktop\")\n\n const total = React.useMemo(\n () => ({\n desktop: chartData.reduce((acc, curr) => acc + curr.desktop, 0),\n mobile: chartData.reduce((acc, curr) => acc + curr.mobile, 0),\n }),\n []\n )\n\n return (\n \n \n \n Bar Chart - Interactive \n \n Showing total visitors for the last 3 months\n \n
\n \n {[\"desktop\", \"mobile\"].map((key) => {\n const chart = key as keyof typeof chartConfig\n return (\n setActiveChart(chart)}\n >\n \n {chartConfig[chart].label}\n \n \n {total[key as keyof typeof total].toLocaleString()}\n \n \n )\n })}\n
\n \n \n \n \n \n {\n const date = new Date(value)\n return date.toLocaleDateString(\"en-US\", {\n month: \"short\",\n day: \"numeric\",\n })\n }}\n />\n {\n return new Date(value).toLocaleDateString(\"en-US\", {\n month: \"short\",\n day: \"numeric\",\n year: \"numeric\",\n })\n }}\n />\n }\n />\n \n \n \n \n \n )\n}\n"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Bar"
+}
\ No newline at end of file
diff --git a/apps/www/public/registry/styles/default/chart-bar-label-custom.json b/apps/www/public/registry/styles/default/chart-bar-label-custom.json
new file mode 100644
index 0000000000..3bcc25ceba
--- /dev/null
+++ b/apps/www/public/registry/styles/default/chart-bar-label-custom.json
@@ -0,0 +1,17 @@
+{
+ "name": "chart-bar-label-custom",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-bar-label-custom.tsx",
+ "type": "components:block",
+ "content": "\"use client\"\n\nimport { TrendingUp } from \"lucide-react\"\nimport { Bar, BarChart, CartesianGrid, LabelList, XAxis, YAxis } from \"recharts\"\n\nimport {\n Card,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle,\n} from \"@/registry/default/ui/card\"\nimport {\n ChartConfig,\n ChartContainer,\n ChartTooltip,\n ChartTooltipContent,\n} from \"@/registry/default/ui/chart\"\n\nexport const description = \"A bar chart with a custom label\"\n\nconst chartData = [\n { month: \"January\", desktop: 186, mobile: 80 },\n { month: \"February\", desktop: 305, mobile: 200 },\n { month: \"March\", desktop: 237, mobile: 120 },\n { month: \"April\", desktop: 73, mobile: 190 },\n { month: \"May\", desktop: 209, mobile: 130 },\n { month: \"June\", desktop: 214, mobile: 140 },\n]\n\nconst chartConfig = {\n desktop: {\n label: \"Desktop\",\n color: \"hsl(var(--chart-1))\",\n },\n mobile: {\n label: \"Mobile\",\n color: \"hsl(var(--chart-2))\",\n },\n label: {\n color: \"hsl(var(--background))\",\n },\n} satisfies ChartConfig\n\nexport default function Component() {\n return (\n \n \n Bar Chart - Custom Label \n January - June 2024 \n \n \n \n \n \n value.slice(0, 3)}\n hide\n />\n \n }\n />\n \n \n \n \n \n \n \n \n \n Trending up by 5.2% this month \n
\n \n Showing total visitors for the last 6 months\n
\n \n \n )\n}\n"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Bar"
+}
\ No newline at end of file
diff --git a/apps/www/public/registry/styles/default/chart-bar-label.json b/apps/www/public/registry/styles/default/chart-bar-label.json
new file mode 100644
index 0000000000..6a2930b3a4
--- /dev/null
+++ b/apps/www/public/registry/styles/default/chart-bar-label.json
@@ -0,0 +1,17 @@
+{
+ "name": "chart-bar-label",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-bar-label.tsx",
+ "type": "components:block",
+ "content": "\"use client\"\n\nimport { TrendingUp } from \"lucide-react\"\nimport { Bar, BarChart, CartesianGrid, LabelList, XAxis } from \"recharts\"\n\nimport {\n Card,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle,\n} from \"@/registry/default/ui/card\"\nimport {\n ChartConfig,\n ChartContainer,\n ChartTooltip,\n ChartTooltipContent,\n} from \"@/registry/default/ui/chart\"\n\nexport const description = \"A bar chart with a label\"\n\nconst chartData = [\n { month: \"January\", desktop: 186 },\n { month: \"February\", desktop: 305 },\n { month: \"March\", desktop: 237 },\n { month: \"April\", desktop: 73 },\n { month: \"May\", desktop: 209 },\n { month: \"June\", desktop: 214 },\n]\n\nconst chartConfig = {\n desktop: {\n label: \"Desktop\",\n color: \"hsl(var(--chart-1))\",\n },\n} satisfies ChartConfig\n\nexport default function Component() {\n return (\n \n \n Bar Chart - Label \n January - June 2024 \n \n \n \n \n \n value.slice(0, 3)}\n />\n }\n />\n \n \n \n \n \n \n \n \n Trending up by 5.2% this month \n
\n \n Showing total visitors for the last 6 months\n
\n \n \n )\n}\n"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Bar"
+}
\ No newline at end of file
diff --git a/apps/www/public/registry/styles/default/chart-bar-mixed.json b/apps/www/public/registry/styles/default/chart-bar-mixed.json
new file mode 100644
index 0000000000..dba2d9f0ab
--- /dev/null
+++ b/apps/www/public/registry/styles/default/chart-bar-mixed.json
@@ -0,0 +1,17 @@
+{
+ "name": "chart-bar-mixed",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-bar-mixed.tsx",
+ "type": "components:block",
+ "content": "\"use client\"\n\nimport { TrendingUp } from \"lucide-react\"\nimport { Bar, BarChart, XAxis, YAxis } from \"recharts\"\n\nimport {\n Card,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle,\n} from \"@/registry/default/ui/card\"\nimport {\n ChartConfig,\n ChartContainer,\n ChartTooltip,\n ChartTooltipContent,\n} from \"@/registry/default/ui/chart\"\n\nexport const description = \"A mixed bar chart\"\n\nconst chartData = [\n { browser: \"chrome\", visitors: 275, fill: \"var(--color-chrome)\" },\n { browser: \"safari\", visitors: 200, fill: \"var(--color-safari)\" },\n { browser: \"firefox\", visitors: 187, fill: \"var(--color-firefox)\" },\n { browser: \"edge\", visitors: 173, fill: \"var(--color-edge)\" },\n { browser: \"other\", visitors: 90, fill: \"var(--color-other)\" },\n]\n\nconst chartConfig = {\n visitors: {\n label: \"Visitors\",\n },\n chrome: {\n label: \"Chrome\",\n color: \"hsl(var(--chart-1))\",\n },\n safari: {\n label: \"Safari\",\n color: \"hsl(var(--chart-2))\",\n },\n firefox: {\n label: \"Firefox\",\n color: \"hsl(var(--chart-3))\",\n },\n edge: {\n label: \"Edge\",\n color: \"hsl(var(--chart-4))\",\n },\n other: {\n label: \"Other\",\n color: \"hsl(var(--chart-5))\",\n },\n} satisfies ChartConfig\n\nexport default function Component() {\n return (\n \n \n Bar Chart - Mixed \n January - June 2024 \n \n \n \n \n \n chartConfig[value as keyof typeof chartConfig]?.label\n }\n />\n \n }\n />\n \n \n \n \n \n \n Trending up by 5.2% this month \n
\n \n Showing total visitors for the last 6 months\n
\n \n \n )\n}\n"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Bar"
+}
\ No newline at end of file
diff --git a/apps/www/public/registry/styles/default/chart-bar-multiple.json b/apps/www/public/registry/styles/default/chart-bar-multiple.json
new file mode 100644
index 0000000000..5a7272768b
--- /dev/null
+++ b/apps/www/public/registry/styles/default/chart-bar-multiple.json
@@ -0,0 +1,17 @@
+{
+ "name": "chart-bar-multiple",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-bar-multiple.tsx",
+ "type": "components:block",
+ "content": "\"use client\"\n\nimport { TrendingUp } from \"lucide-react\"\nimport { Bar, BarChart, CartesianGrid, XAxis } from \"recharts\"\n\nimport {\n Card,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle,\n} from \"@/registry/default/ui/card\"\nimport {\n ChartConfig,\n ChartContainer,\n ChartTooltip,\n ChartTooltipContent,\n} from \"@/registry/default/ui/chart\"\n\nexport const description = \"A multiple bar chart\"\n\nconst chartData = [\n { month: \"January\", desktop: 186, mobile: 80 },\n { month: \"February\", desktop: 305, mobile: 200 },\n { month: \"March\", desktop: 237, mobile: 120 },\n { month: \"April\", desktop: 73, mobile: 190 },\n { month: \"May\", desktop: 209, mobile: 130 },\n { month: \"June\", desktop: 214, mobile: 140 },\n]\n\nconst chartConfig = {\n desktop: {\n label: \"Desktop\",\n color: \"hsl(var(--chart-1))\",\n },\n mobile: {\n label: \"Mobile\",\n color: \"hsl(var(--chart-2))\",\n },\n} satisfies ChartConfig\n\nexport default function Component() {\n return (\n \n \n Bar Chart - Multiple \n January - June 2024 \n \n \n \n \n \n value.slice(0, 3)}\n />\n }\n />\n \n \n \n \n \n \n \n Trending up by 5.2% this month \n
\n \n Showing total visitors for the last 6 months\n
\n \n \n )\n}\n"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Bar"
+}
\ No newline at end of file
diff --git a/apps/www/public/registry/styles/default/chart-bar-negative.json b/apps/www/public/registry/styles/default/chart-bar-negative.json
new file mode 100644
index 0000000000..d3ffd86d29
--- /dev/null
+++ b/apps/www/public/registry/styles/default/chart-bar-negative.json
@@ -0,0 +1,17 @@
+{
+ "name": "chart-bar-negative",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-bar-negative.tsx",
+ "type": "components:block",
+ "content": "\"use client\"\n\nimport { TrendingUp } from \"lucide-react\"\nimport { Bar, BarChart, CartesianGrid, Cell, LabelList } from \"recharts\"\n\nimport {\n Card,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle,\n} from \"@/registry/default/ui/card\"\nimport {\n ChartConfig,\n ChartContainer,\n ChartTooltip,\n ChartTooltipContent,\n} from \"@/registry/default/ui/chart\"\n\nexport const description = \"A bar chart with negative values\"\n\nconst chartData = [\n { month: \"January\", visitors: 186 },\n { month: \"February\", visitors: 205 },\n { month: \"March\", visitors: -207 },\n { month: \"April\", visitors: 173 },\n { month: \"May\", visitors: -209 },\n { month: \"June\", visitors: 214 },\n]\n\nconst chartConfig = {\n visitors: {\n label: \"Visitors\",\n },\n} satisfies ChartConfig\n\nexport default function Component() {\n return (\n \n \n Bar Chart - Negative \n January - June 2024 \n \n \n \n \n \n }\n />\n \n \n {chartData.map((item) => (\n 0\n ? \"hsl(var(--chart-1))\"\n : \"hsl(var(--chart-2))\"\n }\n />\n ))}\n | \n \n \n \n \n \n Trending up by 5.2% this month \n
\n \n Showing total visitors for the last 6 months\n
\n \n \n )\n}\n"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Bar"
+}
\ No newline at end of file
diff --git a/apps/www/public/registry/styles/default/chart-bar-stacked.json b/apps/www/public/registry/styles/default/chart-bar-stacked.json
new file mode 100644
index 0000000000..04a38e5aaa
--- /dev/null
+++ b/apps/www/public/registry/styles/default/chart-bar-stacked.json
@@ -0,0 +1,17 @@
+{
+ "name": "chart-bar-stacked",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-bar-stacked.tsx",
+ "type": "components:block",
+ "content": "\"use client\"\n\nimport { TrendingUp } from \"lucide-react\"\nimport { Bar, BarChart, CartesianGrid, XAxis } from \"recharts\"\n\nimport {\n Card,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle,\n} from \"@/registry/default/ui/card\"\nimport {\n ChartConfig,\n ChartContainer,\n ChartLegend,\n ChartLegendContent,\n ChartTooltip,\n ChartTooltipContent,\n} from \"@/registry/default/ui/chart\"\n\nexport const description = \"A stacked bar chart with a legend\"\n\nconst chartData = [\n { month: \"January\", desktop: 186, mobile: 80 },\n { month: \"February\", desktop: 305, mobile: 200 },\n { month: \"March\", desktop: 237, mobile: 120 },\n { month: \"April\", desktop: 73, mobile: 190 },\n { month: \"May\", desktop: 209, mobile: 130 },\n { month: \"June\", desktop: 214, mobile: 140 },\n]\n\nconst chartConfig = {\n desktop: {\n label: \"Desktop\",\n color: \"hsl(var(--chart-1))\",\n },\n mobile: {\n label: \"Mobile\",\n color: \"hsl(var(--chart-2))\",\n },\n} satisfies ChartConfig\n\nexport default function Component() {\n return (\n \n \n Bar Chart - Stacked + Legend \n January - June 2024 \n \n \n \n \n \n value.slice(0, 3)}\n />\n } />\n } />\n \n \n \n \n \n \n \n Trending up by 5.2% this month \n
\n \n Showing total visitors for the last 6 months\n
\n \n \n )\n}\n"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Bar"
+}
\ No newline at end of file
diff --git a/apps/www/public/registry/styles/default/chart-line-default.json b/apps/www/public/registry/styles/default/chart-line-default.json
new file mode 100644
index 0000000000..f937a23a88
--- /dev/null
+++ b/apps/www/public/registry/styles/default/chart-line-default.json
@@ -0,0 +1,17 @@
+{
+ "name": "chart-line-default",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-line-default.tsx",
+ "type": "components:block",
+ "content": "\"use client\"\n\nimport { TrendingUp } from \"lucide-react\"\nimport { CartesianGrid, Line, LineChart, XAxis } from \"recharts\"\n\nimport {\n Card,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle,\n} from \"@/registry/default/ui/card\"\nimport {\n ChartConfig,\n ChartContainer,\n ChartTooltip,\n ChartTooltipContent,\n} from \"@/registry/default/ui/chart\"\n\nexport const description = \"A line chart\"\n\nconst chartData = [\n { month: \"January\", desktop: 186 },\n { month: \"February\", desktop: 305 },\n { month: \"March\", desktop: 237 },\n { month: \"April\", desktop: 73 },\n { month: \"May\", desktop: 209 },\n { month: \"June\", desktop: 214 },\n]\n\nconst chartConfig = {\n desktop: {\n label: \"Desktop\",\n color: \"hsl(var(--chart-1))\",\n },\n} satisfies ChartConfig\n\nexport default function Component() {\n return (\n \n \n Line Chart \n January - June 2024 \n \n \n \n \n \n value.slice(0, 3)}\n />\n }\n />\n \n \n \n \n \n \n Trending up by 5.2% this month \n
\n \n Showing total visitors for the last 6 months\n
\n \n \n )\n}\n"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Line"
+}
\ No newline at end of file
diff --git a/apps/www/public/registry/styles/default/chart-line-dots-colors.json b/apps/www/public/registry/styles/default/chart-line-dots-colors.json
new file mode 100644
index 0000000000..3bf105fd40
--- /dev/null
+++ b/apps/www/public/registry/styles/default/chart-line-dots-colors.json
@@ -0,0 +1,17 @@
+{
+ "name": "chart-line-dots-colors",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-line-dots-colors.tsx",
+ "type": "components:block",
+ "content": "\"use client\"\n\nimport { TrendingUp } from \"lucide-react\"\nimport { CartesianGrid, Dot, Line, LineChart } from \"recharts\"\n\nimport {\n Card,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle,\n} from \"@/registry/default/ui/card\"\nimport {\n ChartConfig,\n ChartContainer,\n ChartTooltip,\n ChartTooltipContent,\n} from \"@/registry/default/ui/chart\"\n\nexport const description = \"A line chart with dots and colors\"\n\nconst chartData = [\n { browser: \"chrome\", visitors: 275, fill: \"var(--color-chrome)\" },\n { browser: \"safari\", visitors: 200, fill: \"var(--color-safari)\" },\n { browser: \"firefox\", visitors: 187, fill: \"var(--color-firefox)\" },\n { browser: \"edge\", visitors: 173, fill: \"var(--color-edge)\" },\n { browser: \"other\", visitors: 90, fill: \"var(--color-other)\" },\n]\n\nconst chartConfig = {\n visitors: {\n label: \"Visitors\",\n color: \"hsl(var(--chart-2))\",\n },\n chrome: {\n label: \"Chrome\",\n color: \"hsl(var(--chart-1))\",\n },\n safari: {\n label: \"Safari\",\n color: \"hsl(var(--chart-2))\",\n },\n firefox: {\n label: \"Firefox\",\n color: \"hsl(var(--chart-3))\",\n },\n edge: {\n label: \"Edge\",\n color: \"hsl(var(--chart-4))\",\n },\n other: {\n label: \"Other\",\n color: \"hsl(var(--chart-5))\",\n },\n} satisfies ChartConfig\n\nexport default function Component() {\n return (\n \n \n Line Chart - Dots Colors \n January - June 2024 \n \n \n \n \n \n \n }\n />\n {\n return (\n \n )\n }}\n />\n \n \n \n \n \n Trending up by 5.2% this month \n
\n \n Showing total visitors for the last 6 months\n
\n \n \n )\n}\n"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Line"
+}
\ No newline at end of file
diff --git a/apps/www/public/registry/styles/default/chart-line-dots-custom.json b/apps/www/public/registry/styles/default/chart-line-dots-custom.json
new file mode 100644
index 0000000000..17c58714d8
--- /dev/null
+++ b/apps/www/public/registry/styles/default/chart-line-dots-custom.json
@@ -0,0 +1,17 @@
+{
+ "name": "chart-line-dots-custom",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-line-dots-custom.tsx",
+ "type": "components:block",
+ "content": "\"use client\"\n\nimport { GitCommitVertical, TrendingUp } from \"lucide-react\"\nimport { CartesianGrid, Line, LineChart, XAxis } from \"recharts\"\n\nimport {\n Card,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle,\n} from \"@/registry/default/ui/card\"\nimport {\n ChartConfig,\n ChartContainer,\n ChartTooltip,\n ChartTooltipContent,\n} from \"@/registry/default/ui/chart\"\n\nexport const description = \"A line chart with custom dots\"\n\nconst chartData = [\n { month: \"January\", desktop: 186, mobile: 80 },\n { month: \"February\", desktop: 305, mobile: 200 },\n { month: \"March\", desktop: 237, mobile: 120 },\n { month: \"April\", desktop: 73, mobile: 190 },\n { month: \"May\", desktop: 209, mobile: 130 },\n { month: \"June\", desktop: 214, mobile: 140 },\n]\n\nconst chartConfig = {\n desktop: {\n label: \"Desktop\",\n color: \"hsl(var(--chart-1))\",\n },\n mobile: {\n label: \"Mobile\",\n color: \"hsl(var(--chart-2))\",\n },\n} satisfies ChartConfig\n\nexport default function Component() {\n return (\n \n \n Line Chart - Custom Dots \n January - June 2024 \n \n \n \n \n \n value.slice(0, 3)}\n />\n }\n />\n {\n const r = 24\n return (\n \n )\n }}\n />\n \n \n \n \n \n Trending up by 5.2% this month \n
\n \n Showing total visitors for the last 6 months\n
\n \n \n )\n}\n"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Line"
+}
\ No newline at end of file
diff --git a/apps/www/public/registry/styles/default/chart-line-dots.json b/apps/www/public/registry/styles/default/chart-line-dots.json
new file mode 100644
index 0000000000..abea2fcc55
--- /dev/null
+++ b/apps/www/public/registry/styles/default/chart-line-dots.json
@@ -0,0 +1,17 @@
+{
+ "name": "chart-line-dots",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-line-dots.tsx",
+ "type": "components:block",
+ "content": "\"use client\"\n\nimport { TrendingUp } from \"lucide-react\"\nimport { CartesianGrid, Line, LineChart, XAxis } from \"recharts\"\n\nimport {\n Card,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle,\n} from \"@/registry/default/ui/card\"\nimport {\n ChartConfig,\n ChartContainer,\n ChartTooltip,\n ChartTooltipContent,\n} from \"@/registry/default/ui/chart\"\n\nexport const description = \"A line chart with dots\"\n\nconst chartData = [\n { month: \"January\", desktop: 186, mobile: 80 },\n { month: \"February\", desktop: 305, mobile: 200 },\n { month: \"March\", desktop: 237, mobile: 120 },\n { month: \"April\", desktop: 73, mobile: 190 },\n { month: \"May\", desktop: 209, mobile: 130 },\n { month: \"June\", desktop: 214, mobile: 140 },\n]\n\nconst chartConfig = {\n desktop: {\n label: \"Desktop\",\n color: \"hsl(var(--chart-1))\",\n },\n mobile: {\n label: \"Mobile\",\n color: \"hsl(var(--chart-2))\",\n },\n} satisfies ChartConfig\n\nexport default function Component() {\n return (\n \n \n Line Chart - Dots \n January - June 2024 \n \n \n \n \n \n value.slice(0, 3)}\n />\n }\n />\n \n \n \n \n \n \n Trending up by 5.2% this month \n
\n \n Showing total visitors for the last 6 months\n
\n \n \n )\n}\n"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Line"
+}
\ No newline at end of file
diff --git a/apps/www/public/registry/styles/default/chart-line-interactive.json b/apps/www/public/registry/styles/default/chart-line-interactive.json
new file mode 100644
index 0000000000..442cf45146
--- /dev/null
+++ b/apps/www/public/registry/styles/default/chart-line-interactive.json
@@ -0,0 +1,17 @@
+{
+ "name": "chart-line-interactive",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-line-interactive.tsx",
+ "type": "components:block",
+ "content": "\"use client\"\n\nimport * as React from \"react\"\nimport { CartesianGrid, Line, LineChart, XAxis } from \"recharts\"\n\nimport {\n Card,\n CardContent,\n CardDescription,\n CardHeader,\n CardTitle,\n} from \"@/registry/default/ui/card\"\nimport {\n ChartConfig,\n ChartContainer,\n ChartTooltip,\n ChartTooltipContent,\n} from \"@/registry/default/ui/chart\"\n\nexport const description = \"An interactive line chart\"\n\nconst chartData = [\n { date: \"2024-04-01\", desktop: 222, mobile: 150 },\n { date: \"2024-04-02\", desktop: 97, mobile: 180 },\n { date: \"2024-04-03\", desktop: 167, mobile: 120 },\n { date: \"2024-04-04\", desktop: 242, mobile: 260 },\n { date: \"2024-04-05\", desktop: 373, mobile: 290 },\n { date: \"2024-04-06\", desktop: 301, mobile: 340 },\n { date: \"2024-04-07\", desktop: 245, mobile: 180 },\n { date: \"2024-04-08\", desktop: 409, mobile: 320 },\n { date: \"2024-04-09\", desktop: 59, mobile: 110 },\n { date: \"2024-04-10\", desktop: 261, mobile: 190 },\n { date: \"2024-04-11\", desktop: 327, mobile: 350 },\n { date: \"2024-04-12\", desktop: 292, mobile: 210 },\n { date: \"2024-04-13\", desktop: 342, mobile: 380 },\n { date: \"2024-04-14\", desktop: 137, mobile: 220 },\n { date: \"2024-04-15\", desktop: 120, mobile: 170 },\n { date: \"2024-04-16\", desktop: 138, mobile: 190 },\n { date: \"2024-04-17\", desktop: 446, mobile: 360 },\n { date: \"2024-04-18\", desktop: 364, mobile: 410 },\n { date: \"2024-04-19\", desktop: 243, mobile: 180 },\n { date: \"2024-04-20\", desktop: 89, mobile: 150 },\n { date: \"2024-04-21\", desktop: 137, mobile: 200 },\n { date: \"2024-04-22\", desktop: 224, mobile: 170 },\n { date: \"2024-04-23\", desktop: 138, mobile: 230 },\n { date: \"2024-04-24\", desktop: 387, mobile: 290 },\n { date: \"2024-04-25\", desktop: 215, mobile: 250 },\n { date: \"2024-04-26\", desktop: 75, mobile: 130 },\n { date: \"2024-04-27\", desktop: 383, mobile: 420 },\n { date: \"2024-04-28\", desktop: 122, mobile: 180 },\n { date: \"2024-04-29\", desktop: 315, mobile: 240 },\n { date: \"2024-04-30\", desktop: 454, mobile: 380 },\n { date: \"2024-05-01\", desktop: 165, mobile: 220 },\n { date: \"2024-05-02\", desktop: 293, mobile: 310 },\n { date: \"2024-05-03\", desktop: 247, mobile: 190 },\n { date: \"2024-05-04\", desktop: 385, mobile: 420 },\n { date: \"2024-05-05\", desktop: 481, mobile: 390 },\n { date: \"2024-05-06\", desktop: 498, mobile: 520 },\n { date: \"2024-05-07\", desktop: 388, mobile: 300 },\n { date: \"2024-05-08\", desktop: 149, mobile: 210 },\n { date: \"2024-05-09\", desktop: 227, mobile: 180 },\n { date: \"2024-05-10\", desktop: 293, mobile: 330 },\n { date: \"2024-05-11\", desktop: 335, mobile: 270 },\n { date: \"2024-05-12\", desktop: 197, mobile: 240 },\n { date: \"2024-05-13\", desktop: 197, mobile: 160 },\n { date: \"2024-05-14\", desktop: 448, mobile: 490 },\n { date: \"2024-05-15\", desktop: 473, mobile: 380 },\n { date: \"2024-05-16\", desktop: 338, mobile: 400 },\n { date: \"2024-05-17\", desktop: 499, mobile: 420 },\n { date: \"2024-05-18\", desktop: 315, mobile: 350 },\n { date: \"2024-05-19\", desktop: 235, mobile: 180 },\n { date: \"2024-05-20\", desktop: 177, mobile: 230 },\n { date: \"2024-05-21\", desktop: 82, mobile: 140 },\n { date: \"2024-05-22\", desktop: 81, mobile: 120 },\n { date: \"2024-05-23\", desktop: 252, mobile: 290 },\n { date: \"2024-05-24\", desktop: 294, mobile: 220 },\n { date: \"2024-05-25\", desktop: 201, mobile: 250 },\n { date: \"2024-05-26\", desktop: 213, mobile: 170 },\n { date: \"2024-05-27\", desktop: 420, mobile: 460 },\n { date: \"2024-05-28\", desktop: 233, mobile: 190 },\n { date: \"2024-05-29\", desktop: 78, mobile: 130 },\n { date: \"2024-05-30\", desktop: 340, mobile: 280 },\n { date: \"2024-05-31\", desktop: 178, mobile: 230 },\n { date: \"2024-06-01\", desktop: 178, mobile: 200 },\n { date: \"2024-06-02\", desktop: 470, mobile: 410 },\n { date: \"2024-06-03\", desktop: 103, mobile: 160 },\n { date: \"2024-06-04\", desktop: 439, mobile: 380 },\n { date: \"2024-06-05\", desktop: 88, mobile: 140 },\n { date: \"2024-06-06\", desktop: 294, mobile: 250 },\n { date: \"2024-06-07\", desktop: 323, mobile: 370 },\n { date: \"2024-06-08\", desktop: 385, mobile: 320 },\n { date: \"2024-06-09\", desktop: 438, mobile: 480 },\n { date: \"2024-06-10\", desktop: 155, mobile: 200 },\n { date: \"2024-06-11\", desktop: 92, mobile: 150 },\n { date: \"2024-06-12\", desktop: 492, mobile: 420 },\n { date: \"2024-06-13\", desktop: 81, mobile: 130 },\n { date: \"2024-06-14\", desktop: 426, mobile: 380 },\n { date: \"2024-06-15\", desktop: 307, mobile: 350 },\n { date: \"2024-06-16\", desktop: 371, mobile: 310 },\n { date: \"2024-06-17\", desktop: 475, mobile: 520 },\n { date: \"2024-06-18\", desktop: 107, mobile: 170 },\n { date: \"2024-06-19\", desktop: 341, mobile: 290 },\n { date: \"2024-06-20\", desktop: 408, mobile: 450 },\n { date: \"2024-06-21\", desktop: 169, mobile: 210 },\n { date: \"2024-06-22\", desktop: 317, mobile: 270 },\n { date: \"2024-06-23\", desktop: 480, mobile: 530 },\n { date: \"2024-06-24\", desktop: 132, mobile: 180 },\n { date: \"2024-06-25\", desktop: 141, mobile: 190 },\n { date: \"2024-06-26\", desktop: 434, mobile: 380 },\n { date: \"2024-06-27\", desktop: 448, mobile: 490 },\n { date: \"2024-06-28\", desktop: 149, mobile: 200 },\n { date: \"2024-06-29\", desktop: 103, mobile: 160 },\n { date: \"2024-06-30\", desktop: 446, mobile: 400 },\n]\n\nconst chartConfig = {\n views: {\n label: \"Page Views\",\n },\n desktop: {\n label: \"Desktop\",\n color: \"hsl(var(--chart-1))\",\n },\n mobile: {\n label: \"Mobile\",\n color: \"hsl(var(--chart-2))\",\n },\n} satisfies ChartConfig\n\nexport default function Component() {\n const [activeChart, setActiveChart] =\n React.useState(\"desktop\")\n\n const total = React.useMemo(\n () => ({\n desktop: chartData.reduce((acc, curr) => acc + curr.desktop, 0),\n mobile: chartData.reduce((acc, curr) => acc + curr.mobile, 0),\n }),\n []\n )\n\n return (\n \n \n \n Line Chart - Interactive \n \n Showing total visitors for the last 3 months\n \n
\n \n {[\"desktop\", \"mobile\"].map((key) => {\n const chart = key as keyof typeof chartConfig\n return (\n setActiveChart(chart)}\n >\n \n {chartConfig[chart].label}\n \n \n {total[key as keyof typeof total].toLocaleString()}\n \n \n )\n })}\n
\n \n \n \n \n \n {\n const date = new Date(value)\n return date.toLocaleDateString(\"en-US\", {\n month: \"short\",\n day: \"numeric\",\n })\n }}\n />\n {\n return new Date(value).toLocaleDateString(\"en-US\", {\n month: \"short\",\n day: \"numeric\",\n year: \"numeric\",\n })\n }}\n />\n }\n />\n \n \n \n \n \n )\n}\n"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Line"
+}
\ No newline at end of file
diff --git a/apps/www/public/registry/styles/default/chart-line-label-custom.json b/apps/www/public/registry/styles/default/chart-line-label-custom.json
new file mode 100644
index 0000000000..8aa393372c
--- /dev/null
+++ b/apps/www/public/registry/styles/default/chart-line-label-custom.json
@@ -0,0 +1,17 @@
+{
+ "name": "chart-line-label-custom",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-line-label-custom.tsx",
+ "type": "components:block",
+ "content": "\"use client\"\n\nimport { TrendingUp } from \"lucide-react\"\nimport { CartesianGrid, LabelList, Line, LineChart } from \"recharts\"\n\nimport {\n Card,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle,\n} from \"@/registry/default/ui/card\"\nimport {\n ChartConfig,\n ChartContainer,\n ChartTooltip,\n ChartTooltipContent,\n} from \"@/registry/default/ui/chart\"\n\nexport const description = \"A line chart with a custom label\"\n\nconst chartData = [\n { browser: \"chrome\", visitors: 275, fill: \"var(--color-chrome)\" },\n { browser: \"safari\", visitors: 200, fill: \"var(--color-safari)\" },\n { browser: \"firefox\", visitors: 187, fill: \"var(--color-firefox)\" },\n { browser: \"edge\", visitors: 173, fill: \"var(--color-edge)\" },\n { browser: \"other\", visitors: 90, fill: \"var(--color-other)\" },\n]\n\nconst chartConfig = {\n visitors: {\n label: \"Visitors\",\n color: \"hsl(var(--chart-2))\",\n },\n chrome: {\n label: \"Chrome\",\n color: \"hsl(var(--chart-1))\",\n },\n safari: {\n label: \"Safari\",\n color: \"hsl(var(--chart-2))\",\n },\n firefox: {\n label: \"Firefox\",\n color: \"hsl(var(--chart-3))\",\n },\n edge: {\n label: \"Edge\",\n color: \"hsl(var(--chart-4))\",\n },\n other: {\n label: \"Other\",\n color: \"hsl(var(--chart-5))\",\n },\n} satisfies ChartConfig\n\nexport default function Component() {\n return (\n \n \n Line Chart - Custom Label \n January - June 2024 \n \n \n \n \n \n \n }\n />\n \n \n chartConfig[value]?.label\n }\n />\n \n \n \n \n \n \n Trending up by 5.2% this month \n
\n \n Showing total visitors for the last 6 months\n
\n \n \n )\n}\n"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Line"
+}
\ No newline at end of file
diff --git a/apps/www/public/registry/styles/default/chart-line-label.json b/apps/www/public/registry/styles/default/chart-line-label.json
new file mode 100644
index 0000000000..8510166369
--- /dev/null
+++ b/apps/www/public/registry/styles/default/chart-line-label.json
@@ -0,0 +1,17 @@
+{
+ "name": "chart-line-label",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-line-label.tsx",
+ "type": "components:block",
+ "content": "\"use client\"\n\nimport { TrendingUp } from \"lucide-react\"\nimport { CartesianGrid, LabelList, Line, LineChart, XAxis } from \"recharts\"\n\nimport {\n Card,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle,\n} from \"@/registry/default/ui/card\"\nimport {\n ChartConfig,\n ChartContainer,\n ChartTooltip,\n ChartTooltipContent,\n} from \"@/registry/default/ui/chart\"\n\nexport const description = \"A line chart with a label\"\n\nconst chartData = [\n { month: \"January\", desktop: 186, mobile: 80 },\n { month: \"February\", desktop: 305, mobile: 200 },\n { month: \"March\", desktop: 237, mobile: 120 },\n { month: \"April\", desktop: 73, mobile: 190 },\n { month: \"May\", desktop: 209, mobile: 130 },\n { month: \"June\", desktop: 214, mobile: 140 },\n]\n\nconst chartConfig = {\n desktop: {\n label: \"Desktop\",\n color: \"hsl(var(--chart-1))\",\n },\n mobile: {\n label: \"Mobile\",\n color: \"hsl(var(--chart-2))\",\n },\n} satisfies ChartConfig\n\nexport default function Component() {\n return (\n \n \n Line Chart - Label \n January - June 2024 \n \n \n \n \n \n value.slice(0, 3)}\n />\n }\n />\n \n \n \n \n \n \n \n \n Trending up by 5.2% this month \n
\n \n Showing total visitors for the last 6 months\n
\n \n \n )\n}\n"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Line"
+}
\ No newline at end of file
diff --git a/apps/www/public/registry/styles/default/chart-line-linear.json b/apps/www/public/registry/styles/default/chart-line-linear.json
new file mode 100644
index 0000000000..a847d3613b
--- /dev/null
+++ b/apps/www/public/registry/styles/default/chart-line-linear.json
@@ -0,0 +1,17 @@
+{
+ "name": "chart-line-linear",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-line-linear.tsx",
+ "type": "components:block",
+ "content": "\"use client\"\n\nimport { TrendingUp } from \"lucide-react\"\nimport { CartesianGrid, Line, LineChart, XAxis } from \"recharts\"\n\nimport {\n Card,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle,\n} from \"@/registry/default/ui/card\"\nimport {\n ChartConfig,\n ChartContainer,\n ChartTooltip,\n ChartTooltipContent,\n} from \"@/registry/default/ui/chart\"\n\nexport const description = \"A linear line chart\"\n\nconst chartData = [\n { month: \"January\", desktop: 186 },\n { month: \"February\", desktop: 305 },\n { month: \"March\", desktop: 237 },\n { month: \"April\", desktop: 73 },\n { month: \"May\", desktop: 209 },\n { month: \"June\", desktop: 214 },\n]\n\nconst chartConfig = {\n desktop: {\n label: \"Desktop\",\n color: \"hsl(var(--chart-1))\",\n },\n} satisfies ChartConfig\n\nexport default function Component() {\n return (\n \n \n Line Chart - Linear \n January - June 2024 \n \n \n \n \n \n value.slice(0, 3)}\n />\n }\n />\n \n \n \n \n \n \n Trending up by 5.2% this month \n
\n \n Showing total visitors for the last 6 months\n
\n \n \n )\n}\n"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Line"
+}
\ No newline at end of file
diff --git a/apps/www/public/registry/styles/default/chart-line-multiple.json b/apps/www/public/registry/styles/default/chart-line-multiple.json
new file mode 100644
index 0000000000..b59c093579
--- /dev/null
+++ b/apps/www/public/registry/styles/default/chart-line-multiple.json
@@ -0,0 +1,17 @@
+{
+ "name": "chart-line-multiple",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-line-multiple.tsx",
+ "type": "components:block",
+ "content": "\"use client\"\n\nimport { TrendingUp } from \"lucide-react\"\nimport { CartesianGrid, Line, LineChart, XAxis } from \"recharts\"\n\nimport {\n Card,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle,\n} from \"@/registry/default/ui/card\"\nimport {\n ChartConfig,\n ChartContainer,\n ChartTooltip,\n ChartTooltipContent,\n} from \"@/registry/default/ui/chart\"\n\nexport const description = \"A multiple line chart\"\n\nconst chartData = [\n { month: \"January\", desktop: 186, mobile: 80 },\n { month: \"February\", desktop: 305, mobile: 200 },\n { month: \"March\", desktop: 237, mobile: 120 },\n { month: \"April\", desktop: 73, mobile: 190 },\n { month: \"May\", desktop: 209, mobile: 130 },\n { month: \"June\", desktop: 214, mobile: 140 },\n]\n\nconst chartConfig = {\n desktop: {\n label: \"Desktop\",\n color: \"hsl(var(--chart-1))\",\n },\n mobile: {\n label: \"Mobile\",\n color: \"hsl(var(--chart-2))\",\n },\n} satisfies ChartConfig\n\nexport default function Component() {\n return (\n \n \n Line Chart - Multiple \n January - June 2024 \n \n \n \n \n \n value.slice(0, 3)}\n />\n } />\n \n \n \n \n \n \n \n
\n
\n Trending up by 5.2% this month \n
\n
\n Showing total visitors for the last 6 months\n
\n
\n
\n \n \n )\n}\n"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Line"
+}
\ No newline at end of file
diff --git a/apps/www/public/registry/styles/default/chart-line-step.json b/apps/www/public/registry/styles/default/chart-line-step.json
new file mode 100644
index 0000000000..72f0d43f06
--- /dev/null
+++ b/apps/www/public/registry/styles/default/chart-line-step.json
@@ -0,0 +1,17 @@
+{
+ "name": "chart-line-step",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-line-step.tsx",
+ "type": "components:block",
+ "content": "\"use client\"\n\nimport { TrendingUp } from \"lucide-react\"\nimport { CartesianGrid, Line, LineChart, XAxis } from \"recharts\"\n\nimport {\n Card,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle,\n} from \"@/registry/default/ui/card\"\nimport {\n ChartConfig,\n ChartContainer,\n ChartTooltip,\n ChartTooltipContent,\n} from \"@/registry/default/ui/chart\"\n\nexport const description = \"A line chart with step\"\n\nconst chartData = [\n { month: \"January\", desktop: 186 },\n { month: \"February\", desktop: 305 },\n { month: \"March\", desktop: 237 },\n { month: \"April\", desktop: 73 },\n { month: \"May\", desktop: 209 },\n { month: \"June\", desktop: 214 },\n]\n\nconst chartConfig = {\n desktop: {\n label: \"Desktop\",\n color: \"hsl(var(--chart-1))\",\n },\n} satisfies ChartConfig\n\nexport default function Component() {\n return (\n \n \n Line Chart - Step \n January - June 2024 \n \n \n \n \n \n value.slice(0, 3)}\n />\n }\n />\n \n \n \n \n \n \n Trending up by 5.2% this month \n
\n \n Showing total visitors for the last 6 months\n
\n \n \n )\n}\n"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Line"
+}
\ No newline at end of file
diff --git a/apps/www/public/registry/styles/default/chart-pie-donut-active.json b/apps/www/public/registry/styles/default/chart-pie-donut-active.json
new file mode 100644
index 0000000000..77d32483b8
--- /dev/null
+++ b/apps/www/public/registry/styles/default/chart-pie-donut-active.json
@@ -0,0 +1,17 @@
+{
+ "name": "chart-pie-donut-active",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-pie-donut-active.tsx",
+ "type": "components:block",
+ "content": "\"use client\"\n\nimport { TrendingUp } from \"lucide-react\"\nimport { Label, Pie, PieChart, Sector } from \"recharts\"\nimport { PieSectorDataItem } from \"recharts/types/polar/Pie\"\n\nimport {\n Card,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle,\n} from \"@/registry/default/ui/card\"\nimport {\n ChartConfig,\n ChartContainer,\n ChartTooltip,\n ChartTooltipContent,\n} from \"@/registry/default/ui/chart\"\n\nexport const description = \"A donut chart with an active sector\"\n\nconst chartData = [\n { browser: \"chrome\", visitors: 275, fill: \"var(--color-chrome)\" },\n { browser: \"safari\", visitors: 200, fill: \"var(--color-safari)\" },\n { browser: \"firefox\", visitors: 187, fill: \"var(--color-firefox)\" },\n { browser: \"edge\", visitors: 173, fill: \"var(--color-edge)\" },\n { browser: \"other\", visitors: 90, fill: \"var(--color-other)\" },\n]\n\nconst chartConfig = {\n visitors: {\n label: \"Visitors\",\n },\n chrome: {\n label: \"Chrome\",\n color: \"hsl(var(--chart-1))\",\n },\n safari: {\n label: \"Safari\",\n color: \"hsl(var(--chart-2))\",\n },\n firefox: {\n label: \"Firefox\",\n color: \"hsl(var(--chart-3))\",\n },\n edge: {\n label: \"Edge\",\n color: \"hsl(var(--chart-4))\",\n },\n other: {\n label: \"Other\",\n color: \"hsl(var(--chart-5))\",\n },\n} satisfies ChartConfig\n\nexport default function Component() {\n return (\n \n \n Pie Chart - Donut Active \n January - June 2024 \n \n \n \n \n }\n />\n (\n \n )}\n />\n \n \n \n \n \n Trending up by 5.2% this month \n
\n \n Showing total visitors for the last 6 months\n
\n \n \n )\n}\n"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Pie"
+}
\ No newline at end of file
diff --git a/apps/www/public/registry/styles/default/chart-pie-donut-text.json b/apps/www/public/registry/styles/default/chart-pie-donut-text.json
new file mode 100644
index 0000000000..0727893517
--- /dev/null
+++ b/apps/www/public/registry/styles/default/chart-pie-donut-text.json
@@ -0,0 +1,17 @@
+{
+ "name": "chart-pie-donut-text",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-pie-donut-text.tsx",
+ "type": "components:block",
+ "content": "\"use client\"\n\nimport * as React from \"react\"\nimport { TrendingUp } from \"lucide-react\"\nimport { Label, Pie, PieChart } from \"recharts\"\n\nimport {\n Card,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle,\n} from \"@/registry/default/ui/card\"\nimport {\n ChartConfig,\n ChartContainer,\n ChartTooltip,\n ChartTooltipContent,\n} from \"@/registry/default/ui/chart\"\n\nexport const description = \"A donut chart with text\"\n\nconst chartData = [\n { browser: \"chrome\", visitors: 275, fill: \"var(--color-chrome)\" },\n { browser: \"safari\", visitors: 200, fill: \"var(--color-safari)\" },\n { browser: \"firefox\", visitors: 287, fill: \"var(--color-firefox)\" },\n { browser: \"edge\", visitors: 173, fill: \"var(--color-edge)\" },\n { browser: \"other\", visitors: 190, fill: \"var(--color-other)\" },\n]\n\nconst chartConfig = {\n visitors: {\n label: \"Visitors\",\n },\n chrome: {\n label: \"Chrome\",\n color: \"hsl(var(--chart-1))\",\n },\n safari: {\n label: \"Safari\",\n color: \"hsl(var(--chart-2))\",\n },\n firefox: {\n label: \"Firefox\",\n color: \"hsl(var(--chart-3))\",\n },\n edge: {\n label: \"Edge\",\n color: \"hsl(var(--chart-4))\",\n },\n other: {\n label: \"Other\",\n color: \"hsl(var(--chart-5))\",\n },\n} satisfies ChartConfig\n\nexport default function Component() {\n const totalVisitors = React.useMemo(() => {\n return chartData.reduce((acc, curr) => acc + curr.visitors, 0)\n }, [])\n\n return (\n \n \n Pie Chart - Donut with Text \n January - June 2024 \n \n \n \n \n }\n />\n \n {\n if (viewBox && \"cx\" in viewBox && \"cy\" in viewBox) {\n return (\n \n \n {totalVisitors.toLocaleString()}\n \n \n Visitors\n \n \n )\n }\n }}\n />\n \n \n \n \n \n \n Trending up by 5.2% this month \n
\n \n Showing total visitors for the last 6 months\n
\n \n \n )\n}\n"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Pie"
+}
\ No newline at end of file
diff --git a/apps/www/public/registry/styles/default/chart-pie-donut.json b/apps/www/public/registry/styles/default/chart-pie-donut.json
new file mode 100644
index 0000000000..444a57c64e
--- /dev/null
+++ b/apps/www/public/registry/styles/default/chart-pie-donut.json
@@ -0,0 +1,17 @@
+{
+ "name": "chart-pie-donut",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-pie-donut.tsx",
+ "type": "components:block",
+ "content": "\"use client\"\n\nimport { TrendingUp } from \"lucide-react\"\nimport { Pie, PieChart } from \"recharts\"\n\nimport {\n Card,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle,\n} from \"@/registry/default/ui/card\"\nimport {\n ChartConfig,\n ChartContainer,\n ChartTooltip,\n ChartTooltipContent,\n} from \"@/registry/default/ui/chart\"\n\nexport const description = \"A donut chart\"\n\nconst chartData = [\n { browser: \"chrome\", visitors: 275, fill: \"var(--color-chrome)\" },\n { browser: \"safari\", visitors: 200, fill: \"var(--color-safari)\" },\n { browser: \"firefox\", visitors: 187, fill: \"var(--color-firefox)\" },\n { browser: \"edge\", visitors: 173, fill: \"var(--color-edge)\" },\n { browser: \"other\", visitors: 90, fill: \"var(--color-other)\" },\n]\n\nconst chartConfig = {\n visitors: {\n label: \"Visitors\",\n },\n chrome: {\n label: \"Chrome\",\n color: \"hsl(var(--chart-1))\",\n },\n safari: {\n label: \"Safari\",\n color: \"hsl(var(--chart-2))\",\n },\n firefox: {\n label: \"Firefox\",\n color: \"hsl(var(--chart-3))\",\n },\n edge: {\n label: \"Edge\",\n color: \"hsl(var(--chart-4))\",\n },\n other: {\n label: \"Other\",\n color: \"hsl(var(--chart-5))\",\n },\n} satisfies ChartConfig\n\nexport default function Component() {\n return (\n \n \n Pie Chart - Donut \n January - June 2024 \n \n \n \n \n }\n />\n \n \n \n \n \n \n Trending up by 5.2% this month \n
\n \n Showing total visitors for the last 6 months\n
\n \n \n )\n}\n"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Pie"
+}
\ No newline at end of file
diff --git a/apps/www/public/registry/styles/default/chart-pie-interactive.json b/apps/www/public/registry/styles/default/chart-pie-interactive.json
new file mode 100644
index 0000000000..e6a0f39eda
--- /dev/null
+++ b/apps/www/public/registry/styles/default/chart-pie-interactive.json
@@ -0,0 +1,17 @@
+{
+ "name": "chart-pie-interactive",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-pie-interactive.tsx",
+ "type": "components:block",
+ "content": "\"use client\"\n\nimport * as React from \"react\"\nimport { Label, Pie, PieChart, Sector } from \"recharts\"\nimport { PieSectorDataItem } from \"recharts/types/polar/Pie\"\n\nimport {\n Card,\n CardContent,\n CardDescription,\n CardHeader,\n CardTitle,\n} from \"@/registry/default/ui/card\"\nimport {\n ChartConfig,\n ChartContainer,\n ChartStyle,\n ChartTooltip,\n ChartTooltipContent,\n} from \"@/registry/default/ui/chart\"\nimport {\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from \"@/registry/default/ui/select\"\n\nexport const description = \"An interactive pie chart\"\n\nconst desktopData = [\n { month: \"january\", desktop: 186, fill: \"var(--color-january)\" },\n { month: \"february\", desktop: 305, fill: \"var(--color-february)\" },\n { month: \"march\", desktop: 237, fill: \"var(--color-march)\" },\n { month: \"april\", desktop: 173, fill: \"var(--color-april)\" },\n { month: \"may\", desktop: 209, fill: \"var(--color-may)\" },\n]\n\nconst chartConfig = {\n visitors: {\n label: \"Visitors\",\n },\n desktop: {\n label: \"Desktop\",\n },\n mobile: {\n label: \"Mobile\",\n },\n january: {\n label: \"January\",\n color: \"hsl(var(--chart-1))\",\n },\n february: {\n label: \"February\",\n color: \"hsl(var(--chart-2))\",\n },\n march: {\n label: \"March\",\n color: \"hsl(var(--chart-3))\",\n },\n april: {\n label: \"April\",\n color: \"hsl(var(--chart-4))\",\n },\n may: {\n label: \"May\",\n color: \"hsl(var(--chart-5))\",\n },\n} satisfies ChartConfig\n\nexport default function Component() {\n const id = \"pie-interactive\"\n const [activeMonth, setActiveMonth] = React.useState(desktopData[0].month)\n\n const activeIndex = React.useMemo(\n () => desktopData.findIndex((item) => item.month === activeMonth),\n [activeMonth]\n )\n const months = React.useMemo(() => desktopData.map((item) => item.month), [])\n\n return (\n \n \n \n \n Pie Chart - Interactive \n January - June 2024 \n
\n \n \n \n \n \n {months.map((key) => {\n const config = chartConfig[key as keyof typeof chartConfig]\n\n if (!config) {\n return null\n }\n\n return (\n \n \n \n {config?.label}\n
\n \n )\n })}\n \n \n \n \n \n \n }\n />\n (\n \n \n \n \n )}\n >\n {\n if (viewBox && \"cx\" in viewBox && \"cy\" in viewBox) {\n return (\n \n \n {desktopData[activeIndex].desktop.toLocaleString()}\n \n \n Visitors\n \n \n )\n }\n }}\n />\n \n \n \n \n \n )\n}\n"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Pie"
+}
\ No newline at end of file
diff --git a/apps/www/public/registry/styles/default/chart-pie-label-custom.json b/apps/www/public/registry/styles/default/chart-pie-label-custom.json
new file mode 100644
index 0000000000..c6c8a7f767
--- /dev/null
+++ b/apps/www/public/registry/styles/default/chart-pie-label-custom.json
@@ -0,0 +1,17 @@
+{
+ "name": "chart-pie-label-custom",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-pie-label-custom.tsx",
+ "type": "components:block",
+ "content": "\"use client\"\n\nimport { TrendingUp } from \"lucide-react\"\nimport { Pie, PieChart } from \"recharts\"\n\nimport {\n Card,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle,\n} from \"@/registry/default/ui/card\"\nimport {\n ChartConfig,\n ChartContainer,\n ChartTooltip,\n ChartTooltipContent,\n} from \"@/registry/default/ui/chart\"\n\nexport const description = \"A pie chart with a custom label\"\n\nconst chartData = [\n { browser: \"chrome\", visitors: 275, fill: \"var(--color-chrome)\" },\n { browser: \"safari\", visitors: 200, fill: \"var(--color-safari)\" },\n { browser: \"firefox\", visitors: 187, fill: \"var(--color-firefox)\" },\n { browser: \"edge\", visitors: 173, fill: \"var(--color-edge)\" },\n { browser: \"other\", visitors: 90, fill: \"var(--color-other)\" },\n]\n\nconst chartConfig = {\n visitors: {\n label: \"Visitors\",\n },\n chrome: {\n label: \"Chrome\",\n color: \"hsl(var(--chart-1))\",\n },\n safari: {\n label: \"Safari\",\n color: \"hsl(var(--chart-2))\",\n },\n firefox: {\n label: \"Firefox\",\n color: \"hsl(var(--chart-3))\",\n },\n edge: {\n label: \"Edge\",\n color: \"hsl(var(--chart-4))\",\n },\n other: {\n label: \"Other\",\n color: \"hsl(var(--chart-5))\",\n },\n} satisfies ChartConfig\n\nexport default function Component() {\n return (\n \n \n Pie Chart - Custom Label \n January - June 2024 \n \n \n \n \n }\n />\n {\n return (\n \n {`${\n chartConfig[payload.browser as keyof typeof chartConfig]\n ?.label\n } (${payload.visitors})`}\n \n )\n }}\n nameKey=\"browser\"\n />\n \n \n \n \n \n Trending up by 5.2% this month \n
\n \n Showing total visitors for the last 6 months\n
\n \n \n )\n}\n"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Pie"
+}
\ No newline at end of file
diff --git a/apps/www/public/registry/styles/default/chart-pie-label-list.json b/apps/www/public/registry/styles/default/chart-pie-label-list.json
new file mode 100644
index 0000000000..6e9db4f08c
--- /dev/null
+++ b/apps/www/public/registry/styles/default/chart-pie-label-list.json
@@ -0,0 +1,17 @@
+{
+ "name": "chart-pie-label-list",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-pie-label-list.tsx",
+ "type": "components:block",
+ "content": "\"use client\"\n\nimport { TrendingUp } from \"lucide-react\"\nimport { LabelList, Pie, PieChart } from \"recharts\"\n\nimport {\n Card,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle,\n} from \"@/registry/default/ui/card\"\nimport {\n ChartConfig,\n ChartContainer,\n ChartTooltip,\n ChartTooltipContent,\n} from \"@/registry/default/ui/chart\"\n\nexport const description = \"A pie chart with a label list\"\n\nconst chartData = [\n { browser: \"chrome\", visitors: 275, fill: \"var(--color-chrome)\" },\n { browser: \"safari\", visitors: 200, fill: \"var(--color-safari)\" },\n { browser: \"firefox\", visitors: 187, fill: \"var(--color-firefox)\" },\n { browser: \"edge\", visitors: 173, fill: \"var(--color-edge)\" },\n { browser: \"other\", visitors: 90, fill: \"var(--color-other)\" },\n]\n\nconst chartConfig = {\n visitors: {\n label: \"Visitors\",\n },\n chrome: {\n label: \"Chrome\",\n color: \"hsl(var(--chart-1))\",\n },\n safari: {\n label: \"Safari\",\n color: \"hsl(var(--chart-2))\",\n },\n firefox: {\n label: \"Firefox\",\n color: \"hsl(var(--chart-3))\",\n },\n edge: {\n label: \"Edge\",\n color: \"hsl(var(--chart-4))\",\n },\n other: {\n label: \"Other\",\n color: \"hsl(var(--chart-5))\",\n },\n} satisfies ChartConfig\n\nexport default function Component() {\n return (\n \n \n Pie Chart - Label List \n January - June 2024 \n \n \n \n \n }\n />\n \n \n chartConfig[value]?.label\n }\n />\n \n \n \n \n \n \n Trending up by 5.2% this month \n
\n \n Showing total visitors for the last 6 months\n
\n \n \n )\n}\n"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Pie"
+}
\ No newline at end of file
diff --git a/apps/www/public/registry/styles/default/chart-pie-label.json b/apps/www/public/registry/styles/default/chart-pie-label.json
new file mode 100644
index 0000000000..a4fe7fca60
--- /dev/null
+++ b/apps/www/public/registry/styles/default/chart-pie-label.json
@@ -0,0 +1,17 @@
+{
+ "name": "chart-pie-label",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-pie-label.tsx",
+ "type": "components:block",
+ "content": "\"use client\"\n\nimport { TrendingUp } from \"lucide-react\"\nimport { Pie, PieChart } from \"recharts\"\n\nimport {\n Card,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle,\n} from \"@/registry/default/ui/card\"\nimport {\n ChartConfig,\n ChartContainer,\n ChartTooltip,\n ChartTooltipContent,\n} from \"@/registry/default/ui/chart\"\n\nexport const description = \"A pie chart with a label\"\n\nconst chartData = [\n { browser: \"chrome\", visitors: 275, fill: \"var(--color-chrome)\" },\n { browser: \"safari\", visitors: 200, fill: \"var(--color-safari)\" },\n { browser: \"firefox\", visitors: 187, fill: \"var(--color-firefox)\" },\n { browser: \"edge\", visitors: 173, fill: \"var(--color-edge)\" },\n { browser: \"other\", visitors: 90, fill: \"var(--color-other)\" },\n]\n\nconst chartConfig = {\n visitors: {\n label: \"Visitors\",\n },\n chrome: {\n label: \"Chrome\",\n color: \"hsl(var(--chart-1))\",\n },\n safari: {\n label: \"Safari\",\n color: \"hsl(var(--chart-2))\",\n },\n firefox: {\n label: \"Firefox\",\n color: \"hsl(var(--chart-3))\",\n },\n edge: {\n label: \"Edge\",\n color: \"hsl(var(--chart-4))\",\n },\n other: {\n label: \"Other\",\n color: \"hsl(var(--chart-5))\",\n },\n} satisfies ChartConfig\n\nexport default function Component() {\n return (\n \n \n Pie Chart - Label \n January - June 2024 \n \n \n \n \n } />\n \n \n \n \n \n \n Trending up by 5.2% this month \n
\n \n Showing total visitors for the last 6 months\n
\n \n \n )\n}\n"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Pie"
+}
\ No newline at end of file
diff --git a/apps/www/public/registry/styles/default/chart-pie-legend.json b/apps/www/public/registry/styles/default/chart-pie-legend.json
new file mode 100644
index 0000000000..302659f621
--- /dev/null
+++ b/apps/www/public/registry/styles/default/chart-pie-legend.json
@@ -0,0 +1,17 @@
+{
+ "name": "chart-pie-legend",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-pie-legend.tsx",
+ "type": "components:block",
+ "content": "\"use client\"\n\nimport { Pie, PieChart } from \"recharts\"\n\nimport {\n Card,\n CardContent,\n CardDescription,\n CardHeader,\n CardTitle,\n} from \"@/registry/default/ui/card\"\nimport {\n ChartConfig,\n ChartContainer,\n ChartLegend,\n ChartLegendContent,\n} from \"@/registry/default/ui/chart\"\n\nexport const description = \"A pie chart with a legend\"\n\nconst chartData = [\n { browser: \"chrome\", visitors: 275, fill: \"var(--color-chrome)\" },\n { browser: \"safari\", visitors: 200, fill: \"var(--color-safari)\" },\n { browser: \"firefox\", visitors: 187, fill: \"var(--color-firefox)\" },\n { browser: \"edge\", visitors: 173, fill: \"var(--color-edge)\" },\n { browser: \"other\", visitors: 90, fill: \"var(--color-other)\" },\n]\n\nconst chartConfig = {\n visitors: {\n label: \"Visitors\",\n },\n chrome: {\n label: \"Chrome\",\n color: \"hsl(var(--chart-1))\",\n },\n safari: {\n label: \"Safari\",\n color: \"hsl(var(--chart-2))\",\n },\n firefox: {\n label: \"Firefox\",\n color: \"hsl(var(--chart-3))\",\n },\n edge: {\n label: \"Edge\",\n color: \"hsl(var(--chart-4))\",\n },\n other: {\n label: \"Other\",\n color: \"hsl(var(--chart-5))\",\n },\n} satisfies ChartConfig\n\nexport default function Component() {\n return (\n \n \n Pie Chart - Legend \n January - June 2024 \n \n \n \n \n \n }\n className=\"-translate-y-2 flex-wrap gap-2 [&>*]:basis-1/4 [&>*]:justify-center\"\n />\n \n \n \n \n )\n}\n"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Pie"
+}
\ No newline at end of file
diff --git a/apps/www/public/registry/styles/default/chart-pie-separator-none.json b/apps/www/public/registry/styles/default/chart-pie-separator-none.json
new file mode 100644
index 0000000000..37f2a08698
--- /dev/null
+++ b/apps/www/public/registry/styles/default/chart-pie-separator-none.json
@@ -0,0 +1,17 @@
+{
+ "name": "chart-pie-separator-none",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-pie-separator-none.tsx",
+ "type": "components:block",
+ "content": "\"use client\"\n\nimport { TrendingUp } from \"lucide-react\"\nimport { Pie, PieChart } from \"recharts\"\n\nimport {\n Card,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle,\n} from \"@/registry/default/ui/card\"\nimport {\n ChartConfig,\n ChartContainer,\n ChartTooltip,\n ChartTooltipContent,\n} from \"@/registry/default/ui/chart\"\n\nexport const description = \"A pie chart with no separator\"\n\nconst chartData = [\n { browser: \"chrome\", visitors: 275, fill: \"var(--color-chrome)\" },\n { browser: \"safari\", visitors: 200, fill: \"var(--color-safari)\" },\n { browser: \"firefox\", visitors: 187, fill: \"var(--color-firefox)\" },\n { browser: \"edge\", visitors: 173, fill: \"var(--color-edge)\" },\n { browser: \"other\", visitors: 90, fill: \"var(--color-other)\" },\n]\n\nconst chartConfig = {\n visitors: {\n label: \"Visitors\",\n },\n chrome: {\n label: \"Chrome\",\n color: \"hsl(var(--chart-1))\",\n },\n safari: {\n label: \"Safari\",\n color: \"hsl(var(--chart-2))\",\n },\n firefox: {\n label: \"Firefox\",\n color: \"hsl(var(--chart-3))\",\n },\n edge: {\n label: \"Edge\",\n color: \"hsl(var(--chart-4))\",\n },\n other: {\n label: \"Other\",\n color: \"hsl(var(--chart-5))\",\n },\n} satisfies ChartConfig\n\nexport default function Component() {\n return (\n \n \n Pie Chart - Separator None \n January - June 2024 \n \n \n \n \n }\n />\n \n \n \n \n \n \n Trending up by 5.2% this month \n
\n \n Showing total visitors for the last 6 months\n
\n \n \n )\n}\n"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Pie"
+}
\ No newline at end of file
diff --git a/apps/www/public/registry/styles/default/chart-pie-simple.json b/apps/www/public/registry/styles/default/chart-pie-simple.json
new file mode 100644
index 0000000000..4da01cab02
--- /dev/null
+++ b/apps/www/public/registry/styles/default/chart-pie-simple.json
@@ -0,0 +1,17 @@
+{
+ "name": "chart-pie-simple",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-pie-simple.tsx",
+ "type": "components:block",
+ "content": "\"use client\"\n\nimport { TrendingUp } from \"lucide-react\"\nimport { Pie, PieChart } from \"recharts\"\n\nimport {\n Card,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle,\n} from \"@/registry/default/ui/card\"\nimport {\n ChartConfig,\n ChartContainer,\n ChartTooltip,\n ChartTooltipContent,\n} from \"@/registry/default/ui/chart\"\n\nexport const description = \"A simple pie chart\"\n\nconst chartData = [\n { browser: \"chrome\", visitors: 275, fill: \"var(--color-chrome)\" },\n { browser: \"safari\", visitors: 200, fill: \"var(--color-safari)\" },\n { browser: \"firefox\", visitors: 187, fill: \"var(--color-firefox)\" },\n { browser: \"edge\", visitors: 173, fill: \"var(--color-edge)\" },\n { browser: \"other\", visitors: 90, fill: \"var(--color-other)\" },\n]\n\nconst chartConfig = {\n visitors: {\n label: \"Visitors\",\n },\n chrome: {\n label: \"Chrome\",\n color: \"hsl(var(--chart-1))\",\n },\n safari: {\n label: \"Safari\",\n color: \"hsl(var(--chart-2))\",\n },\n firefox: {\n label: \"Firefox\",\n color: \"hsl(var(--chart-3))\",\n },\n edge: {\n label: \"Edge\",\n color: \"hsl(var(--chart-4))\",\n },\n other: {\n label: \"Other\",\n color: \"hsl(var(--chart-5))\",\n },\n} satisfies ChartConfig\n\nexport default function Component() {\n return (\n \n \n Pie Chart \n January - June 2024 \n \n \n \n \n }\n />\n \n \n \n \n \n \n Trending up by 5.2% this month \n
\n \n Showing total visitors for the last 6 months\n
\n \n \n )\n}\n"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Pie"
+}
\ No newline at end of file
diff --git a/apps/www/public/registry/styles/default/chart-pie-stacked.json b/apps/www/public/registry/styles/default/chart-pie-stacked.json
new file mode 100644
index 0000000000..8af5da2283
--- /dev/null
+++ b/apps/www/public/registry/styles/default/chart-pie-stacked.json
@@ -0,0 +1,17 @@
+{
+ "name": "chart-pie-stacked",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-pie-stacked.tsx",
+ "type": "components:block",
+ "content": "\"use client\"\n\nimport * as React from \"react\"\nimport { TrendingUp } from \"lucide-react\"\nimport { Label, Pie, PieChart } from \"recharts\"\n\nimport {\n Card,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle,\n} from \"@/registry/default/ui/card\"\nimport {\n ChartConfig,\n ChartContainer,\n ChartTooltip,\n ChartTooltipContent,\n} from \"@/registry/default/ui/chart\"\n\nexport const description = \"A pie chart with stacked sections\"\n\nconst desktopData = [\n { month: \"january\", desktop: 186, fill: \"var(--color-january)\" },\n { month: \"february\", desktop: 305, fill: \"var(--color-february)\" },\n { month: \"march\", desktop: 237, fill: \"var(--color-march)\" },\n { month: \"april\", desktop: 173, fill: \"var(--color-april)\" },\n { month: \"may\", desktop: 209, fill: \"var(--color-may)\" },\n]\n\nconst mobileData = [\n { month: \"january\", mobile: 80, fill: \"var(--color-january)\" },\n { month: \"february\", mobile: 200, fill: \"var(--color-february)\" },\n { month: \"march\", mobile: 120, fill: \"var(--color-march)\" },\n { month: \"april\", mobile: 190, fill: \"var(--color-april)\" },\n { month: \"may\", mobile: 130, fill: \"var(--color-may)\" },\n]\n\nconst chartConfig = {\n visitors: {\n label: \"Visitors\",\n },\n desktop: {\n label: \"Desktop\",\n },\n mobile: {\n label: \"Mobile\",\n },\n january: {\n label: \"January\",\n color: \"hsl(var(--chart-1))\",\n },\n february: {\n label: \"February\",\n color: \"hsl(var(--chart-2))\",\n },\n march: {\n label: \"March\",\n color: \"hsl(var(--chart-3))\",\n },\n april: {\n label: \"April\",\n color: \"hsl(var(--chart-4))\",\n },\n may: {\n label: \"May\",\n color: \"hsl(var(--chart-5))\",\n },\n} satisfies ChartConfig\n\nexport default function Component() {\n return (\n \n \n Pie Chart - Stacked \n January - June 2024 \n \n \n \n \n {\n return chartConfig[\n payload?.[0].dataKey as keyof typeof chartConfig\n ].label\n }}\n />\n }\n />\n \n \n \n \n \n \n \n Trending up by 5.2% this month \n
\n \n Showing total visitors for the last 6 months\n
\n \n \n )\n}\n"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Pie"
+}
\ No newline at end of file
diff --git a/apps/www/public/registry/styles/default/chart-radar-default.json b/apps/www/public/registry/styles/default/chart-radar-default.json
new file mode 100644
index 0000000000..0d46da6cd2
--- /dev/null
+++ b/apps/www/public/registry/styles/default/chart-radar-default.json
@@ -0,0 +1,17 @@
+{
+ "name": "chart-radar-default",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-radar-default.tsx",
+ "type": "components:block",
+ "content": "\"use client\"\n\nimport { TrendingUp } from \"lucide-react\"\nimport { PolarAngleAxis, PolarGrid, Radar, RadarChart } from \"recharts\"\n\nimport {\n Card,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle,\n} from \"@/registry/default/ui/card\"\nimport {\n ChartConfig,\n ChartContainer,\n ChartTooltip,\n ChartTooltipContent,\n} from \"@/registry/default/ui/chart\"\n\nexport const description = \"A radar chart\"\n\nconst chartData = [\n { month: \"January\", desktop: 186 },\n { month: \"February\", desktop: 305 },\n { month: \"March\", desktop: 237 },\n { month: \"April\", desktop: 273 },\n { month: \"May\", desktop: 209 },\n { month: \"June\", desktop: 214 },\n]\n\nconst chartConfig = {\n desktop: {\n label: \"Desktop\",\n color: \"hsl(var(--chart-1))\",\n },\n} satisfies ChartConfig\n\nexport default function Component() {\n return (\n \n \n Radar Chart \n \n Showing total visitors for the last 6 months\n \n \n \n \n \n } />\n \n \n \n \n \n \n \n \n Trending up by 5.2% this month \n
\n \n January - June 2024\n
\n \n \n )\n}\n"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Radar"
+}
\ No newline at end of file
diff --git a/apps/www/public/registry/styles/default/chart-radar-dots.json b/apps/www/public/registry/styles/default/chart-radar-dots.json
new file mode 100644
index 0000000000..4ccdbfbc90
--- /dev/null
+++ b/apps/www/public/registry/styles/default/chart-radar-dots.json
@@ -0,0 +1,17 @@
+{
+ "name": "chart-radar-dots",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-radar-dots.tsx",
+ "type": "components:block",
+ "content": "\"use client\"\n\nimport { TrendingUp } from \"lucide-react\"\nimport { PolarAngleAxis, PolarGrid, Radar, RadarChart } from \"recharts\"\n\nimport {\n Card,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle,\n} from \"@/registry/default/ui/card\"\nimport {\n ChartConfig,\n ChartContainer,\n ChartTooltip,\n ChartTooltipContent,\n} from \"@/registry/default/ui/chart\"\n\nexport const description = \"A radar chart with dots\"\n\nconst chartData = [\n { month: \"January\", desktop: 186 },\n { month: \"February\", desktop: 305 },\n { month: \"March\", desktop: 237 },\n { month: \"April\", desktop: 273 },\n { month: \"May\", desktop: 209 },\n { month: \"June\", desktop: 214 },\n]\n\nconst chartConfig = {\n desktop: {\n label: \"Desktop\",\n color: \"hsl(var(--chart-1))\",\n },\n} satisfies ChartConfig\n\nexport default function Component() {\n return (\n \n \n Radar Chart - Dots \n \n Showing total visitors for the last 6 months\n \n \n \n \n \n } />\n \n \n \n \n \n \n \n \n Trending up by 5.2% this month \n
\n \n January - June 2024\n
\n \n \n )\n}\n"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Radar"
+}
\ No newline at end of file
diff --git a/apps/www/public/registry/styles/default/chart-radar-grid-circle-fill.json b/apps/www/public/registry/styles/default/chart-radar-grid-circle-fill.json
new file mode 100644
index 0000000000..bb649faf5b
--- /dev/null
+++ b/apps/www/public/registry/styles/default/chart-radar-grid-circle-fill.json
@@ -0,0 +1,17 @@
+{
+ "name": "chart-radar-grid-circle-fill",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-radar-grid-circle-fill.tsx",
+ "type": "components:block",
+ "content": "\"use client\"\n\nimport { TrendingUp } from \"lucide-react\"\nimport { PolarAngleAxis, PolarGrid, Radar, RadarChart } from \"recharts\"\n\nimport {\n Card,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle,\n} from \"@/registry/default/ui/card\"\nimport {\n ChartConfig,\n ChartContainer,\n ChartTooltip,\n ChartTooltipContent,\n} from \"@/registry/default/ui/chart\"\n\nexport const description = \"A radar chart with a grid and circle fill\"\n\nconst chartData = [\n { month: \"January\", desktop: 186 },\n { month: \"February\", desktop: 285 },\n { month: \"March\", desktop: 237 },\n { month: \"April\", desktop: 203 },\n { month: \"May\", desktop: 209 },\n { month: \"June\", desktop: 264 },\n]\n\nconst chartConfig = {\n desktop: {\n label: \"Desktop\",\n color: \"hsl(var(--chart-1))\",\n },\n} satisfies ChartConfig\n\nexport default function Component() {\n return (\n \n \n Radar Chart - Grid Circle Filled \n \n Showing total visitors for the last 6 months\n \n \n \n \n \n } />\n \n \n \n \n \n \n \n \n Trending up by 5.2% this month \n
\n \n January - June 2024\n
\n \n \n )\n}\n"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Radar"
+}
\ No newline at end of file
diff --git a/apps/www/public/registry/styles/default/chart-radar-grid-circle-no-lines.json b/apps/www/public/registry/styles/default/chart-radar-grid-circle-no-lines.json
new file mode 100644
index 0000000000..d3e82a5762
--- /dev/null
+++ b/apps/www/public/registry/styles/default/chart-radar-grid-circle-no-lines.json
@@ -0,0 +1,17 @@
+{
+ "name": "chart-radar-grid-circle-no-lines",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-radar-grid-circle-no-lines.tsx",
+ "type": "components:block",
+ "content": "\"use client\"\n\nimport { TrendingUp } from \"lucide-react\"\nimport { PolarAngleAxis, PolarGrid, Radar, RadarChart } from \"recharts\"\n\nimport {\n Card,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle,\n} from \"@/registry/default/ui/card\"\nimport {\n ChartConfig,\n ChartContainer,\n ChartTooltip,\n ChartTooltipContent,\n} from \"@/registry/default/ui/chart\"\n\nexport const description = \"A radar chart with a grid and circle fill\"\n\nconst chartData = [\n { month: \"January\", desktop: 186 },\n { month: \"February\", desktop: 305 },\n { month: \"March\", desktop: 237 },\n { month: \"April\", desktop: 203 },\n { month: \"May\", desktop: 209 },\n { month: \"June\", desktop: 214 },\n]\n\nconst chartConfig = {\n desktop: {\n label: \"Desktop\",\n color: \"hsl(var(--chart-1))\",\n },\n} satisfies ChartConfig\n\nexport default function Component() {\n return (\n \n \n Radar Chart - Grid Circle - No lines \n \n Showing total visitors for the last 6 months\n \n \n \n \n \n }\n />\n \n \n \n \n \n \n \n \n Trending up by 5.2% this month \n
\n \n January - June 2024\n
\n \n \n )\n}\n"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Radar"
+}
\ No newline at end of file
diff --git a/apps/www/public/registry/styles/default/chart-radar-grid-circle.json b/apps/www/public/registry/styles/default/chart-radar-grid-circle.json
new file mode 100644
index 0000000000..751c69fbd8
--- /dev/null
+++ b/apps/www/public/registry/styles/default/chart-radar-grid-circle.json
@@ -0,0 +1,17 @@
+{
+ "name": "chart-radar-grid-circle",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-radar-grid-circle.tsx",
+ "type": "components:block",
+ "content": "\"use client\"\n\nimport { TrendingUp } from \"lucide-react\"\nimport { PolarAngleAxis, PolarGrid, Radar, RadarChart } from \"recharts\"\n\nimport {\n Card,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle,\n} from \"@/registry/default/ui/card\"\nimport {\n ChartConfig,\n ChartContainer,\n ChartTooltip,\n ChartTooltipContent,\n} from \"@/registry/default/ui/chart\"\n\nexport const description = \"A radar chart with a grid and circle\"\n\nconst chartData = [\n { month: \"January\", desktop: 186 },\n { month: \"February\", desktop: 305 },\n { month: \"March\", desktop: 237 },\n { month: \"April\", desktop: 273 },\n { month: \"May\", desktop: 209 },\n { month: \"June\", desktop: 214 },\n]\n\nconst chartConfig = {\n desktop: {\n label: \"Desktop\",\n color: \"hsl(var(--chart-1))\",\n },\n} satisfies ChartConfig\n\nexport default function Component() {\n return (\n \n \n Radar Chart - Grid Circle \n \n Showing total visitors for the last 6 months\n \n \n \n \n \n }\n />\n \n \n \n \n \n \n \n \n Trending up by 5.2% this month \n
\n \n January - June 2024\n
\n \n \n )\n}\n"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Radar"
+}
\ No newline at end of file
diff --git a/apps/www/public/registry/styles/default/chart-radar-grid-custom.json b/apps/www/public/registry/styles/default/chart-radar-grid-custom.json
new file mode 100644
index 0000000000..65d1529dad
--- /dev/null
+++ b/apps/www/public/registry/styles/default/chart-radar-grid-custom.json
@@ -0,0 +1,17 @@
+{
+ "name": "chart-radar-grid-custom",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-radar-grid-custom.tsx",
+ "type": "components:block",
+ "content": "\"use client\"\n\nimport { TrendingUp } from \"lucide-react\"\nimport { PolarAngleAxis, PolarGrid, Radar, RadarChart } from \"recharts\"\n\nimport {\n Card,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle,\n} from \"@/registry/default/ui/card\"\nimport {\n ChartConfig,\n ChartContainer,\n ChartTooltip,\n ChartTooltipContent,\n} from \"@/registry/default/ui/chart\"\n\nexport const description = \"A radar chart with a custom grid\"\n\nconst chartData = [\n { month: \"January\", desktop: 186 },\n { month: \"February\", desktop: 305 },\n { month: \"March\", desktop: 237 },\n { month: \"April\", desktop: 273 },\n { month: \"May\", desktop: 209 },\n { month: \"June\", desktop: 214 },\n]\n\nconst chartConfig = {\n desktop: {\n label: \"Desktop\",\n color: \"hsl(var(--chart-1))\",\n },\n} satisfies ChartConfig\n\nexport default function Component() {\n return (\n \n \n Radar Chart - Grid Custom \n \n Showing total visitors for the last 6 months\n \n \n \n \n \n }\n />\n \n \n \n \n \n \n \n \n Trending up by 5.2% this month \n
\n \n January - June 2024\n
\n \n \n )\n}\n"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Radar"
+}
\ No newline at end of file
diff --git a/apps/www/public/registry/styles/default/chart-radar-grid-fill.json b/apps/www/public/registry/styles/default/chart-radar-grid-fill.json
new file mode 100644
index 0000000000..87f912a21a
--- /dev/null
+++ b/apps/www/public/registry/styles/default/chart-radar-grid-fill.json
@@ -0,0 +1,17 @@
+{
+ "name": "chart-radar-grid-fill",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-radar-grid-fill.tsx",
+ "type": "components:block",
+ "content": "\"use client\"\n\nimport { TrendingUp } from \"lucide-react\"\nimport { PolarAngleAxis, PolarGrid, Radar, RadarChart } from \"recharts\"\n\nimport {\n Card,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle,\n} from \"@/registry/default/ui/card\"\nimport {\n ChartConfig,\n ChartContainer,\n ChartTooltip,\n ChartTooltipContent,\n} from \"@/registry/default/ui/chart\"\n\nexport const description = \"A radar chart with a grid filled\"\n\nconst chartData = [\n { month: \"January\", desktop: 186 },\n { month: \"February\", desktop: 285 },\n { month: \"March\", desktop: 237 },\n { month: \"April\", desktop: 203 },\n { month: \"May\", desktop: 209 },\n { month: \"June\", desktop: 264 },\n]\n\nconst chartConfig = {\n desktop: {\n label: \"Desktop\",\n color: \"hsl(var(--chart-1))\",\n },\n} satisfies ChartConfig\n\nexport default function Component() {\n return (\n \n \n Radar Chart - Grid Filled \n \n Showing total visitors for the last 6 months\n \n \n \n \n \n }\n />\n \n \n \n \n \n \n \n \n Trending up by 5.2% this month \n
\n \n January - June 2024\n
\n \n \n )\n}\n"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Radar"
+}
\ No newline at end of file
diff --git a/apps/www/public/registry/styles/default/chart-radar-grid-none.json b/apps/www/public/registry/styles/default/chart-radar-grid-none.json
new file mode 100644
index 0000000000..07fa2429e8
--- /dev/null
+++ b/apps/www/public/registry/styles/default/chart-radar-grid-none.json
@@ -0,0 +1,17 @@
+{
+ "name": "chart-radar-grid-none",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-radar-grid-none.tsx",
+ "type": "components:block",
+ "content": "\"use client\"\n\nimport { TrendingUp } from \"lucide-react\"\nimport { PolarAngleAxis, Radar, RadarChart } from \"recharts\"\n\nimport {\n Card,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle,\n} from \"@/registry/default/ui/card\"\nimport {\n ChartConfig,\n ChartContainer,\n ChartTooltip,\n ChartTooltipContent,\n} from \"@/registry/default/ui/chart\"\n\nexport const description = \"A radar chart with no grid\"\n\nconst chartData = [\n { month: \"January\", desktop: 186 },\n { month: \"February\", desktop: 305 },\n { month: \"March\", desktop: 237 },\n { month: \"April\", desktop: 273 },\n { month: \"May\", desktop: 209 },\n { month: \"June\", desktop: 214 },\n]\n\nconst chartConfig = {\n desktop: {\n label: \"Desktop\",\n color: \"hsl(var(--chart-1))\",\n },\n} satisfies ChartConfig\n\nexport default function Component() {\n return (\n \n \n Radar Chart - Grid None \n \n Showing total visitors for the last 6 months\n \n \n \n \n \n }\n />\n \n \n \n \n \n \n \n Trending up by 5.2% this month \n
\n \n January - June 2024\n
\n \n \n )\n}\n"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Radar"
+}
\ No newline at end of file
diff --git a/apps/www/public/registry/styles/default/chart-radar-icons.json b/apps/www/public/registry/styles/default/chart-radar-icons.json
new file mode 100644
index 0000000000..b8acc2e880
--- /dev/null
+++ b/apps/www/public/registry/styles/default/chart-radar-icons.json
@@ -0,0 +1,17 @@
+{
+ "name": "chart-radar-icons",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-radar-icons.tsx",
+ "type": "components:block",
+ "content": "\"use client\"\n\nimport { ArrowDownFromLine, ArrowUpFromLine, TrendingUp } from \"lucide-react\"\nimport { PolarAngleAxis, PolarGrid, Radar, RadarChart } from \"recharts\"\n\nimport {\n Card,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle,\n} from \"@/registry/default/ui/card\"\nimport {\n ChartConfig,\n ChartContainer,\n ChartLegend,\n ChartLegendContent,\n ChartTooltip,\n ChartTooltipContent,\n} from \"@/registry/default/ui/chart\"\n\nexport const description = \"A radar chart with icons\"\n\nconst chartData = [\n { month: \"January\", desktop: 186, mobile: 80 },\n { month: \"February\", desktop: 305, mobile: 200 },\n { month: \"March\", desktop: 237, mobile: 120 },\n { month: \"April\", desktop: 73, mobile: 190 },\n { month: \"May\", desktop: 209, mobile: 130 },\n { month: \"June\", desktop: 214, mobile: 140 },\n]\n\nconst chartConfig = {\n desktop: {\n label: \"Desktop\",\n color: \"hsl(var(--chart-1))\",\n icon: ArrowDownFromLine,\n },\n mobile: {\n label: \"Mobile\",\n color: \"hsl(var(--chart-2))\",\n icon: ArrowUpFromLine,\n },\n} satisfies ChartConfig\n\nexport default function Component() {\n return (\n \n \n Radar Chart - Icons \n \n Showing total visitors for the last 6 months\n \n \n \n \n \n }\n />\n \n \n \n \n } />\n \n \n \n \n \n Trending up by 5.2% this month \n
\n \n January - June 2024\n
\n \n \n )\n}\n"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Radar"
+}
\ No newline at end of file
diff --git a/apps/www/public/registry/styles/default/chart-radar-label-custom.json b/apps/www/public/registry/styles/default/chart-radar-label-custom.json
new file mode 100644
index 0000000000..da2e0f4dd9
--- /dev/null
+++ b/apps/www/public/registry/styles/default/chart-radar-label-custom.json
@@ -0,0 +1,17 @@
+{
+ "name": "chart-radar-label-custom",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-radar-label-custom.tsx",
+ "type": "components:block",
+ "content": "\"use client\"\n\nimport { TrendingUp } from \"lucide-react\"\nimport { PolarAngleAxis, PolarGrid, Radar, RadarChart } from \"recharts\"\n\nimport {\n Card,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle,\n} from \"@/registry/default/ui/card\"\nimport {\n ChartConfig,\n ChartContainer,\n ChartTooltip,\n ChartTooltipContent,\n} from \"@/registry/default/ui/chart\"\n\nexport const description = \"A radar chart with a custom label\"\n\nconst chartData = [\n { month: \"January\", desktop: 186, mobile: 80 },\n { month: \"February\", desktop: 305, mobile: 200 },\n { month: \"March\", desktop: 237, mobile: 120 },\n { month: \"April\", desktop: 73, mobile: 190 },\n { month: \"May\", desktop: 209, mobile: 130 },\n { month: \"June\", desktop: 214, mobile: 140 },\n]\n\nconst chartConfig = {\n desktop: {\n label: \"Desktop\",\n color: \"hsl(var(--chart-1))\",\n },\n mobile: {\n label: \"Mobile\",\n color: \"hsl(var(--chart-2))\",\n },\n} satisfies ChartConfig\n\nexport default function Component() {\n return (\n \n \n Radar Chart - Custom Label \n \n Showing total visitors for the last 6 months\n \n \n \n \n \n }\n />\n {\n const data = chartData[index]\n\n return (\n \n {data.desktop} \n / \n {data.mobile} \n \n {data.month}\n \n \n )\n }}\n />\n\n \n \n \n \n \n \n \n \n Trending up by 5.2% this month \n
\n \n January - June 2024\n
\n \n \n )\n}\n"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Radar"
+}
\ No newline at end of file
diff --git a/apps/www/public/registry/styles/default/chart-radar-legend.json b/apps/www/public/registry/styles/default/chart-radar-legend.json
new file mode 100644
index 0000000000..53808163d8
--- /dev/null
+++ b/apps/www/public/registry/styles/default/chart-radar-legend.json
@@ -0,0 +1,17 @@
+{
+ "name": "chart-radar-legend",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-radar-legend.tsx",
+ "type": "components:block",
+ "content": "\"use client\"\n\nimport { TrendingUp } from \"lucide-react\"\nimport { PolarAngleAxis, PolarGrid, Radar, RadarChart } from \"recharts\"\n\nimport {\n Card,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle,\n} from \"@/registry/default/ui/card\"\nimport {\n ChartConfig,\n ChartContainer,\n ChartLegend,\n ChartLegendContent,\n ChartTooltip,\n ChartTooltipContent,\n} from \"@/registry/default/ui/chart\"\n\nexport const description = \"A radar chart with a legend\"\n\nconst chartData = [\n { month: \"January\", desktop: 186, mobile: 80 },\n { month: \"February\", desktop: 305, mobile: 200 },\n { month: \"March\", desktop: 237, mobile: 120 },\n { month: \"April\", desktop: 73, mobile: 190 },\n { month: \"May\", desktop: 209, mobile: 130 },\n { month: \"June\", desktop: 214, mobile: 140 },\n]\n\nconst chartConfig = {\n desktop: {\n label: \"Desktop\",\n color: \"hsl(var(--chart-1))\",\n },\n mobile: {\n label: \"Mobile\",\n color: \"hsl(var(--chart-2))\",\n },\n} satisfies ChartConfig\n\nexport default function Component() {\n return (\n \n \n Radar Chart - Legend \n \n Showing total visitors for the last 6 months\n \n \n \n \n \n }\n />\n \n \n \n \n } />\n \n \n \n \n \n Trending up by 5.2% this month \n
\n \n January - June 2024\n
\n \n \n )\n}\n"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Radar"
+}
\ No newline at end of file
diff --git a/apps/www/public/registry/styles/default/chart-radar-lines-only.json b/apps/www/public/registry/styles/default/chart-radar-lines-only.json
new file mode 100644
index 0000000000..90312667e0
--- /dev/null
+++ b/apps/www/public/registry/styles/default/chart-radar-lines-only.json
@@ -0,0 +1,17 @@
+{
+ "name": "chart-radar-lines-only",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-radar-lines-only.tsx",
+ "type": "components:block",
+ "content": "\"use client\"\n\nimport { TrendingUp } from \"lucide-react\"\nimport { PolarAngleAxis, PolarGrid, Radar, RadarChart } from \"recharts\"\n\nimport {\n Card,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle,\n} from \"@/registry/default/ui/card\"\nimport {\n ChartConfig,\n ChartContainer,\n ChartTooltip,\n ChartTooltipContent,\n} from \"@/registry/default/ui/chart\"\n\nexport const description = \"A radar chart with lines only\"\n\nconst chartData = [\n { month: \"January\", desktop: 186, mobile: 160 },\n { month: \"February\", desktop: 185, mobile: 170 },\n { month: \"March\", desktop: 207, mobile: 180 },\n { month: \"April\", desktop: 173, mobile: 160 },\n { month: \"May\", desktop: 160, mobile: 190 },\n { month: \"June\", desktop: 174, mobile: 204 },\n]\n\nconst chartConfig = {\n desktop: {\n label: \"Desktop\",\n color: \"hsl(var(--chart-1))\",\n },\n mobile: {\n label: \"Mobile\",\n color: \"hsl(var(--chart-2))\",\n },\n} satisfies ChartConfig\n\nexport default function Component() {\n return (\n \n \n Radar Chart - Lines Only \n \n Showing total visitors for the last 6 months\n \n \n \n \n \n }\n />\n \n \n \n \n \n \n \n \n \n Trending up by 5.2% this month \n
\n \n January - June 2024\n
\n \n \n )\n}\n"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Radar"
+}
\ No newline at end of file
diff --git a/apps/www/public/registry/styles/default/chart-radar-multiple.json b/apps/www/public/registry/styles/default/chart-radar-multiple.json
new file mode 100644
index 0000000000..bf0558bfe3
--- /dev/null
+++ b/apps/www/public/registry/styles/default/chart-radar-multiple.json
@@ -0,0 +1,17 @@
+{
+ "name": "chart-radar-multiple",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-radar-multiple.tsx",
+ "type": "components:block",
+ "content": "\"use client\"\n\nimport { TrendingUp } from \"lucide-react\"\nimport { PolarAngleAxis, PolarGrid, Radar, RadarChart } from \"recharts\"\n\nimport {\n Card,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle,\n} from \"@/registry/default/ui/card\"\nimport {\n ChartConfig,\n ChartContainer,\n ChartTooltip,\n ChartTooltipContent,\n} from \"@/registry/default/ui/chart\"\n\nexport const description = \"A radar chart with multiple data\"\n\nconst chartData = [\n { month: \"January\", desktop: 186, mobile: 80 },\n { month: \"February\", desktop: 305, mobile: 200 },\n { month: \"March\", desktop: 237, mobile: 120 },\n { month: \"April\", desktop: 73, mobile: 190 },\n { month: \"May\", desktop: 209, mobile: 130 },\n { month: \"June\", desktop: 214, mobile: 140 },\n]\n\nconst chartConfig = {\n desktop: {\n label: \"Desktop\",\n color: \"hsl(var(--chart-1))\",\n },\n mobile: {\n label: \"Mobile\",\n color: \"hsl(var(--chart-2))\",\n },\n} satisfies ChartConfig\n\nexport default function Component() {\n return (\n \n \n Radar Chart - Multiple \n \n Showing total visitors for the last 6 months\n \n \n \n \n \n }\n />\n \n \n \n \n \n \n \n \n \n Trending up by 5.2% this month \n
\n \n January - June 2024\n
\n \n \n )\n}\n"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Radar"
+}
\ No newline at end of file
diff --git a/apps/www/public/registry/styles/default/chart-radar-radius.json b/apps/www/public/registry/styles/default/chart-radar-radius.json
new file mode 100644
index 0000000000..71b28981a4
--- /dev/null
+++ b/apps/www/public/registry/styles/default/chart-radar-radius.json
@@ -0,0 +1,17 @@
+{
+ "name": "chart-radar-radius",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-radar-radius.tsx",
+ "type": "components:block",
+ "content": "\"use client\"\n\nimport { TrendingUp } from \"lucide-react\"\nimport {\n PolarAngleAxis,\n PolarGrid,\n PolarRadiusAxis,\n Radar,\n RadarChart,\n} from \"recharts\"\n\nimport {\n Card,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle,\n} from \"@/registry/default/ui/card\"\nimport {\n ChartConfig,\n ChartContainer,\n ChartTooltip,\n ChartTooltipContent,\n} from \"@/registry/default/ui/chart\"\n\nexport const description = \"A radar chart with a radius axis\"\n\nconst chartData = [\n { month: \"January\", desktop: 186, mobile: 80 },\n { month: \"February\", desktop: 305, mobile: 200 },\n { month: \"March\", desktop: 237, mobile: 120 },\n { month: \"April\", desktop: 73, mobile: 190 },\n { month: \"May\", desktop: 209, mobile: 130 },\n { month: \"June\", desktop: 214, mobile: 140 },\n]\n\nconst chartConfig = {\n desktop: {\n label: \"Desktop\",\n color: \"hsl(var(--chart-1))\",\n },\n mobile: {\n label: \"Mobile\",\n color: \"hsl(var(--chart-2))\",\n },\n} satisfies ChartConfig\n\nexport default function Component() {\n return (\n \n \n Radar Chart - Radius Axis \n \n Showing total visitors for the last 6 months\n \n \n \n \n \n \n }\n />\n \n \n \n \n \n \n \n \n \n Trending up by 5.2% this month \n
\n \n January - June 2024\n
\n \n \n )\n}\n"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Radar"
+}
\ No newline at end of file
diff --git a/apps/www/public/registry/styles/default/chart-radial-grid.json b/apps/www/public/registry/styles/default/chart-radial-grid.json
new file mode 100644
index 0000000000..86e58fac76
--- /dev/null
+++ b/apps/www/public/registry/styles/default/chart-radial-grid.json
@@ -0,0 +1,17 @@
+{
+ "name": "chart-radial-grid",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-radial-grid.tsx",
+ "type": "components:block",
+ "content": "\"use client\"\n\nimport { TrendingUp } from \"lucide-react\"\nimport { PolarGrid, RadialBar, RadialBarChart } from \"recharts\"\n\nimport {\n Card,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle,\n} from \"@/registry/default/ui/card\"\nimport {\n ChartConfig,\n ChartContainer,\n ChartTooltip,\n ChartTooltipContent,\n} from \"@/registry/default/ui/chart\"\n\nexport const description = \"A radial chart with a grid\"\n\nconst chartData = [\n { browser: \"chrome\", visitors: 275, fill: \"var(--color-chrome)\" },\n { browser: \"safari\", visitors: 200, fill: \"var(--color-safari)\" },\n { browser: \"firefox\", visitors: 187, fill: \"var(--color-firefox)\" },\n { browser: \"edge\", visitors: 173, fill: \"var(--color-edge)\" },\n { browser: \"other\", visitors: 90, fill: \"var(--color-other)\" },\n]\n\nconst chartConfig = {\n visitors: {\n label: \"Visitors\",\n },\n chrome: {\n label: \"Chrome\",\n color: \"hsl(var(--chart-1))\",\n },\n safari: {\n label: \"Safari\",\n color: \"hsl(var(--chart-2))\",\n },\n firefox: {\n label: \"Firefox\",\n color: \"hsl(var(--chart-3))\",\n },\n edge: {\n label: \"Edge\",\n color: \"hsl(var(--chart-4))\",\n },\n other: {\n label: \"Other\",\n color: \"hsl(var(--chart-5))\",\n },\n} satisfies ChartConfig\n\nexport default function Component() {\n return (\n \n \n Radial Chart - Grid \n January - June 2024 \n \n \n \n \n }\n />\n \n \n \n \n \n \n \n Trending up by 5.2% this month \n
\n \n Showing total visitors for the last 6 months\n
\n \n \n )\n}\n"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Radial"
+}
\ No newline at end of file
diff --git a/apps/www/public/registry/styles/default/chart-radial-label.json b/apps/www/public/registry/styles/default/chart-radial-label.json
new file mode 100644
index 0000000000..d0646ffe2f
--- /dev/null
+++ b/apps/www/public/registry/styles/default/chart-radial-label.json
@@ -0,0 +1,17 @@
+{
+ "name": "chart-radial-label",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-radial-label.tsx",
+ "type": "components:block",
+ "content": "\"use client\"\n\nimport { TrendingUp } from \"lucide-react\"\nimport { LabelList, RadialBar, RadialBarChart } from \"recharts\"\n\nimport {\n Card,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle,\n} from \"@/registry/default/ui/card\"\nimport {\n ChartConfig,\n ChartContainer,\n ChartTooltip,\n ChartTooltipContent,\n} from \"@/registry/default/ui/chart\"\n\nexport const description = \"A radial chart with a label\"\n\nconst chartData = [\n { browser: \"chrome\", visitors: 275, fill: \"var(--color-chrome)\" },\n { browser: \"safari\", visitors: 200, fill: \"var(--color-safari)\" },\n { browser: \"firefox\", visitors: 187, fill: \"var(--color-firefox)\" },\n { browser: \"edge\", visitors: 173, fill: \"var(--color-edge)\" },\n { browser: \"other\", visitors: 90, fill: \"var(--color-other)\" },\n]\n\nconst chartConfig = {\n visitors: {\n label: \"Visitors\",\n },\n chrome: {\n label: \"Chrome\",\n color: \"hsl(var(--chart-1))\",\n },\n safari: {\n label: \"Safari\",\n color: \"hsl(var(--chart-2))\",\n },\n firefox: {\n label: \"Firefox\",\n color: \"hsl(var(--chart-3))\",\n },\n edge: {\n label: \"Edge\",\n color: \"hsl(var(--chart-4))\",\n },\n other: {\n label: \"Other\",\n color: \"hsl(var(--chart-5))\",\n },\n} satisfies ChartConfig\n\nexport default function Component() {\n return (\n \n \n Radial Chart - Label \n January - June 2024 \n \n \n \n \n }\n />\n \n \n \n \n \n \n \n \n Trending up by 5.2% this month \n
\n \n Showing total visitors for the last 6 months\n
\n \n \n )\n}\n"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Radial"
+}
\ No newline at end of file
diff --git a/apps/www/public/registry/styles/default/chart-radial-shape.json b/apps/www/public/registry/styles/default/chart-radial-shape.json
new file mode 100644
index 0000000000..8351f82dd4
--- /dev/null
+++ b/apps/www/public/registry/styles/default/chart-radial-shape.json
@@ -0,0 +1,17 @@
+{
+ "name": "chart-radial-shape",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-radial-shape.tsx",
+ "type": "components:block",
+ "content": "\"use client\"\n\nimport { TrendingUp } from \"lucide-react\"\nimport {\n Label,\n PolarGrid,\n PolarRadiusAxis,\n RadialBar,\n RadialBarChart,\n} from \"recharts\"\n\nimport {\n Card,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle,\n} from \"@/registry/default/ui/card\"\nimport { ChartConfig, ChartContainer } from \"@/registry/default/ui/chart\"\n\nexport const description = \"A radial chart with a custom shape\"\n\nconst chartData = [\n { browser: \"safari\", visitors: 1260, fill: \"var(--color-safari)\" },\n]\n\nconst chartConfig = {\n visitors: {\n label: \"Visitors\",\n },\n safari: {\n label: \"Safari\",\n color: \"hsl(var(--chart-2))\",\n },\n} satisfies ChartConfig\n\nexport default function Component() {\n return (\n \n \n Radial Chart - Shape \n January - June 2024 \n \n \n \n \n \n \n \n {\n if (viewBox && \"cx\" in viewBox && \"cy\" in viewBox) {\n return (\n \n \n {chartData[0].visitors.toLocaleString()}\n \n \n Visitors\n \n \n )\n }\n }}\n />\n \n \n \n \n \n \n Trending up by 5.2% this month \n
\n \n Showing total visitors for the last 6 months\n
\n \n \n )\n}\n"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Radial"
+}
\ No newline at end of file
diff --git a/apps/www/public/registry/styles/default/chart-radial-simple.json b/apps/www/public/registry/styles/default/chart-radial-simple.json
new file mode 100644
index 0000000000..15481303e7
--- /dev/null
+++ b/apps/www/public/registry/styles/default/chart-radial-simple.json
@@ -0,0 +1,17 @@
+{
+ "name": "chart-radial-simple",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-radial-simple.tsx",
+ "type": "components:block",
+ "content": "\"use client\"\n\nimport { TrendingUp } from \"lucide-react\"\nimport { RadialBar, RadialBarChart } from \"recharts\"\n\nimport {\n Card,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle,\n} from \"@/registry/default/ui/card\"\nimport {\n ChartConfig,\n ChartContainer,\n ChartTooltip,\n ChartTooltipContent,\n} from \"@/registry/default/ui/chart\"\n\nexport const description = \"A radial chart\"\n\nconst chartData = [\n { browser: \"chrome\", visitors: 275, fill: \"var(--color-chrome)\" },\n { browser: \"safari\", visitors: 200, fill: \"var(--color-safari)\" },\n { browser: \"firefox\", visitors: 187, fill: \"var(--color-firefox)\" },\n { browser: \"edge\", visitors: 173, fill: \"var(--color-edge)\" },\n { browser: \"other\", visitors: 90, fill: \"var(--color-other)\" },\n]\n\nconst chartConfig = {\n visitors: {\n label: \"Visitors\",\n },\n chrome: {\n label: \"Chrome\",\n color: \"hsl(var(--chart-1))\",\n },\n safari: {\n label: \"Safari\",\n color: \"hsl(var(--chart-2))\",\n },\n firefox: {\n label: \"Firefox\",\n color: \"hsl(var(--chart-3))\",\n },\n edge: {\n label: \"Edge\",\n color: \"hsl(var(--chart-4))\",\n },\n other: {\n label: \"Other\",\n color: \"hsl(var(--chart-5))\",\n },\n} satisfies ChartConfig\n\nexport default function Component() {\n return (\n \n \n Radial Chart \n January - June 2024 \n \n \n \n \n }\n />\n \n \n \n \n \n \n Trending up by 5.2% this month \n
\n \n Showing total visitors for the last 6 months\n
\n \n \n )\n}\n"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Radial"
+}
\ No newline at end of file
diff --git a/apps/www/public/registry/styles/default/chart-radial-stacked.json b/apps/www/public/registry/styles/default/chart-radial-stacked.json
new file mode 100644
index 0000000000..99ba667371
--- /dev/null
+++ b/apps/www/public/registry/styles/default/chart-radial-stacked.json
@@ -0,0 +1,17 @@
+{
+ "name": "chart-radial-stacked",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-radial-stacked.tsx",
+ "type": "components:block",
+ "content": "\"use client\"\n\nimport { TrendingUp } from \"lucide-react\"\nimport { Label, PolarRadiusAxis, RadialBar, RadialBarChart } from \"recharts\"\n\nimport {\n Card,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle,\n} from \"@/registry/default/ui/card\"\nimport {\n ChartConfig,\n ChartContainer,\n ChartTooltip,\n ChartTooltipContent,\n} from \"@/registry/default/ui/chart\"\n\nexport const description = \"A radial chart with stacked sections\"\n\nconst chartData = [{ month: \"january\", desktop: 1260, mobile: 570 }]\n\nconst chartConfig = {\n desktop: {\n label: \"Desktop\",\n color: \"hsl(var(--chart-1))\",\n },\n mobile: {\n label: \"Mobile\",\n color: \"hsl(var(--chart-2))\",\n },\n} satisfies ChartConfig\n\nexport default function Component() {\n const totalVisitors = chartData[0].desktop + chartData[0].mobile\n\n return (\n \n \n Radial Chart - Stacked \n January - June 2024 \n \n \n \n \n }\n />\n \n {\n if (viewBox && \"cx\" in viewBox && \"cy\" in viewBox) {\n return (\n \n \n {totalVisitors.toLocaleString()}\n \n \n Visitors\n \n \n )\n }\n }}\n />\n \n \n \n \n \n \n \n \n Trending up by 5.2% this month \n
\n \n Showing total visitors for the last 6 months\n
\n \n \n )\n}\n"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Radial"
+}
\ No newline at end of file
diff --git a/apps/www/public/registry/styles/default/chart-radial-text.json b/apps/www/public/registry/styles/default/chart-radial-text.json
new file mode 100644
index 0000000000..70563128ed
--- /dev/null
+++ b/apps/www/public/registry/styles/default/chart-radial-text.json
@@ -0,0 +1,17 @@
+{
+ "name": "chart-radial-text",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-radial-text.tsx",
+ "type": "components:block",
+ "content": "\"use client\"\n\nimport { TrendingUp } from \"lucide-react\"\nimport {\n Label,\n PolarGrid,\n PolarRadiusAxis,\n RadialBar,\n RadialBarChart,\n} from \"recharts\"\n\nimport {\n Card,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle,\n} from \"@/registry/default/ui/card\"\nimport { ChartConfig, ChartContainer } from \"@/registry/default/ui/chart\"\n\nexport const description = \"A radial chart with text\"\n\nconst chartData = [\n { browser: \"safari\", visitors: 200, fill: \"var(--color-safari)\" },\n]\n\nconst chartConfig = {\n visitors: {\n label: \"Visitors\",\n },\n safari: {\n label: \"Safari\",\n color: \"hsl(var(--chart-2))\",\n },\n} satisfies ChartConfig\n\nexport default function Component() {\n return (\n \n \n Radial Chart - Text \n January - June 2024 \n \n \n \n \n \n \n \n {\n if (viewBox && \"cx\" in viewBox && \"cy\" in viewBox) {\n return (\n \n \n {chartData[0].visitors.toLocaleString()}\n \n \n Visitors\n \n \n )\n }\n }}\n />\n \n \n \n \n \n \n Trending up by 5.2% this month \n
\n \n Showing total visitors for the last 6 months\n
\n \n \n )\n}\n"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Radial"
+}
\ No newline at end of file
diff --git a/apps/www/public/registry/styles/default/chart-tooltip-advanced.json b/apps/www/public/registry/styles/default/chart-tooltip-advanced.json
new file mode 100644
index 0000000000..cdaa4baccb
--- /dev/null
+++ b/apps/www/public/registry/styles/default/chart-tooltip-advanced.json
@@ -0,0 +1,17 @@
+{
+ "name": "chart-tooltip-advanced",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-tooltip-advanced.tsx",
+ "type": "components:block",
+ "content": "\"use client\"\n\nimport { Bar, BarChart, XAxis } from \"recharts\"\n\nimport {\n Card,\n CardContent,\n CardDescription,\n CardHeader,\n CardTitle,\n} from \"@/registry/default/ui/card\"\nimport {\n ChartConfig,\n ChartContainer,\n ChartTooltip,\n ChartTooltipContent,\n} from \"@/registry/default/ui/chart\"\n\nexport const description = \"A stacked bar chart with a legend\"\n\nconst chartData = [\n { date: \"2024-07-15\", running: 450, swimming: 300 },\n { date: \"2024-07-16\", running: 380, swimming: 420 },\n { date: \"2024-07-17\", running: 520, swimming: 120 },\n { date: \"2024-07-18\", running: 140, swimming: 550 },\n { date: \"2024-07-19\", running: 600, swimming: 350 },\n { date: \"2024-07-20\", running: 480, swimming: 400 },\n]\n\nconst chartConfig = {\n running: {\n label: \"Running\",\n color: \"hsl(var(--chart-1))\",\n },\n swimming: {\n label: \"Swimming\",\n color: \"hsl(var(--chart-2))\",\n },\n} satisfies ChartConfig\n\nexport default function Component() {\n return (\n \n \n Tooltip - Advanced \n \n Tooltip with custom formatter and total.\n \n \n \n \n \n {\n return new Date(value).toLocaleDateString(\"en-US\", {\n weekday: \"short\",\n })\n }}\n />\n \n \n (\n <>\n
\n {chartConfig[name as keyof typeof chartConfig]?.label ||\n name}\n \n {value}\n \n kcal\n \n
\n {/* Add this after the last item */}\n {index === 1 && (\n \n Total\n
\n {item.payload.running + item.payload.swimming}\n \n kcal\n \n
\n
\n )}\n >\n )}\n />\n }\n cursor={false}\n defaultIndex={1}\n />\n \n \n \n \n )\n}\n"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Tooltip"
+}
\ No newline at end of file
diff --git a/apps/www/public/registry/styles/default/chart-tooltip-default.json b/apps/www/public/registry/styles/default/chart-tooltip-default.json
new file mode 100644
index 0000000000..52ab04b116
--- /dev/null
+++ b/apps/www/public/registry/styles/default/chart-tooltip-default.json
@@ -0,0 +1,17 @@
+{
+ "name": "chart-tooltip-default",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-tooltip-default.tsx",
+ "type": "components:block",
+ "content": "\"use client\"\n\nimport { Bar, BarChart, XAxis } from \"recharts\"\n\nimport {\n Card,\n CardContent,\n CardDescription,\n CardHeader,\n CardTitle,\n} from \"@/registry/default/ui/card\"\nimport {\n ChartConfig,\n ChartContainer,\n ChartTooltip,\n ChartTooltipContent,\n} from \"@/registry/default/ui/chart\"\n\nexport const description = \"A stacked bar chart with a legend\"\n\nconst chartData = [\n { date: \"2024-07-15\", running: 450, swimming: 300 },\n { date: \"2024-07-16\", running: 380, swimming: 420 },\n { date: \"2024-07-17\", running: 520, swimming: 120 },\n { date: \"2024-07-18\", running: 140, swimming: 550 },\n { date: \"2024-07-19\", running: 600, swimming: 350 },\n { date: \"2024-07-20\", running: 480, swimming: 400 },\n]\n\nconst chartConfig = {\n running: {\n label: \"Running\",\n color: \"hsl(var(--chart-1))\",\n },\n swimming: {\n label: \"Swimming\",\n color: \"hsl(var(--chart-2))\",\n },\n} satisfies ChartConfig\n\nexport default function Component() {\n return (\n \n \n Tooltip - Default \n \n Default tooltip with ChartTooltipContent.\n \n \n \n \n \n {\n return new Date(value).toLocaleDateString(\"en-US\", {\n weekday: \"short\",\n })\n }}\n />\n \n \n }\n cursor={false}\n defaultIndex={1}\n />\n \n \n \n \n )\n}\n"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Tooltip"
+}
\ No newline at end of file
diff --git a/apps/www/public/registry/styles/default/chart-tooltip-formatter.json b/apps/www/public/registry/styles/default/chart-tooltip-formatter.json
new file mode 100644
index 0000000000..93f5ade245
--- /dev/null
+++ b/apps/www/public/registry/styles/default/chart-tooltip-formatter.json
@@ -0,0 +1,17 @@
+{
+ "name": "chart-tooltip-formatter",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-tooltip-formatter.tsx",
+ "type": "components:block",
+ "content": "\"use client\"\n\nimport { Bar, BarChart, XAxis } from \"recharts\"\n\nimport {\n Card,\n CardContent,\n CardDescription,\n CardHeader,\n CardTitle,\n} from \"@/registry/default/ui/card\"\nimport {\n ChartConfig,\n ChartContainer,\n ChartTooltip,\n ChartTooltipContent,\n} from \"@/registry/default/ui/chart\"\n\nexport const description = \"A stacked bar chart with a legend\"\n\nconst chartData = [\n { date: \"2024-07-15\", running: 450, swimming: 300 },\n { date: \"2024-07-16\", running: 380, swimming: 420 },\n { date: \"2024-07-17\", running: 520, swimming: 120 },\n { date: \"2024-07-18\", running: 140, swimming: 550 },\n { date: \"2024-07-19\", running: 600, swimming: 350 },\n { date: \"2024-07-20\", running: 480, swimming: 400 },\n]\n\nconst chartConfig = {\n running: {\n label: \"Running\",\n color: \"hsl(var(--chart-1))\",\n },\n swimming: {\n label: \"Swimming\",\n color: \"hsl(var(--chart-2))\",\n },\n} satisfies ChartConfig\n\nexport default function Component() {\n return (\n \n \n Tooltip - Formatter \n Tooltip with custom formatter . \n \n \n \n \n {\n return new Date(value).toLocaleDateString(\"en-US\", {\n weekday: \"short\",\n })\n }}\n />\n \n \n (\n \n {chartConfig[name as keyof typeof chartConfig]?.label ||\n name}\n
\n {value}\n \n kcal\n \n
\n
\n )}\n />\n }\n cursor={false}\n defaultIndex={1}\n />\n \n \n \n \n )\n}\n"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Tooltip"
+}
\ No newline at end of file
diff --git a/apps/www/public/registry/styles/default/chart-tooltip-icons.json b/apps/www/public/registry/styles/default/chart-tooltip-icons.json
new file mode 100644
index 0000000000..e536d04efb
--- /dev/null
+++ b/apps/www/public/registry/styles/default/chart-tooltip-icons.json
@@ -0,0 +1,17 @@
+{
+ "name": "chart-tooltip-icons",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-tooltip-icons.tsx",
+ "type": "components:block",
+ "content": "\"use client\"\n\nimport { Footprints, Waves } from \"lucide-react\"\nimport { Bar, BarChart, XAxis } from \"recharts\"\n\nimport {\n Card,\n CardContent,\n CardDescription,\n CardHeader,\n CardTitle,\n} from \"@/registry/default/ui/card\"\nimport {\n ChartConfig,\n ChartContainer,\n ChartTooltip,\n ChartTooltipContent,\n} from \"@/registry/default/ui/chart\"\n\nexport const description = \"A stacked bar chart with a legend\"\n\nconst chartData = [\n { date: \"2024-07-15\", running: 450, swimming: 300 },\n { date: \"2024-07-16\", running: 380, swimming: 420 },\n { date: \"2024-07-17\", running: 520, swimming: 120 },\n { date: \"2024-07-18\", running: 140, swimming: 550 },\n { date: \"2024-07-19\", running: 600, swimming: 350 },\n { date: \"2024-07-20\", running: 480, swimming: 400 },\n]\n\nconst chartConfig = {\n running: {\n label: \"Running\",\n color: \"hsl(var(--chart-1))\",\n icon: Footprints,\n },\n swimming: {\n label: \"Swimming\",\n color: \"hsl(var(--chart-2))\",\n icon: Waves,\n },\n} satisfies ChartConfig\n\nexport default function Component() {\n return (\n \n \n Tooltip - Icons \n Tooltip with icons. \n \n \n \n \n {\n return new Date(value).toLocaleDateString(\"en-US\", {\n weekday: \"short\",\n })\n }}\n />\n \n \n }\n cursor={false}\n defaultIndex={1}\n />\n \n \n \n \n )\n}\n"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Tooltip"
+}
\ No newline at end of file
diff --git a/apps/www/public/registry/styles/default/chart-tooltip-indicator-line.json b/apps/www/public/registry/styles/default/chart-tooltip-indicator-line.json
new file mode 100644
index 0000000000..197c5146ea
--- /dev/null
+++ b/apps/www/public/registry/styles/default/chart-tooltip-indicator-line.json
@@ -0,0 +1,17 @@
+{
+ "name": "chart-tooltip-indicator-line",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-tooltip-indicator-line.tsx",
+ "type": "components:block",
+ "content": "\"use client\"\n\nimport { Bar, BarChart, XAxis } from \"recharts\"\n\nimport {\n Card,\n CardContent,\n CardDescription,\n CardHeader,\n CardTitle,\n} from \"@/registry/default/ui/card\"\nimport {\n ChartConfig,\n ChartContainer,\n ChartTooltip,\n ChartTooltipContent,\n} from \"@/registry/default/ui/chart\"\n\nexport const description = \"A stacked bar chart with a legend\"\n\nconst chartData = [\n { date: \"2024-07-15\", running: 450, swimming: 300 },\n { date: \"2024-07-16\", running: 380, swimming: 420 },\n { date: \"2024-07-17\", running: 520, swimming: 120 },\n { date: \"2024-07-18\", running: 140, swimming: 550 },\n { date: \"2024-07-19\", running: 600, swimming: 350 },\n { date: \"2024-07-20\", running: 480, swimming: 400 },\n]\n\nconst chartConfig = {\n running: {\n label: \"Running\",\n color: \"hsl(var(--chart-1))\",\n },\n swimming: {\n label: \"Swimming\",\n color: \"hsl(var(--chart-2))\",\n },\n} satisfies ChartConfig\n\nexport default function Component() {\n return (\n \n \n Tooltip - Line Indicator \n Tooltip with line indicator. \n \n \n \n \n {\n return new Date(value).toLocaleDateString(\"en-US\", {\n weekday: \"short\",\n })\n }}\n />\n \n \n }\n cursor={false}\n defaultIndex={1}\n />\n \n \n \n \n )\n}\n"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Tooltip"
+}
\ No newline at end of file
diff --git a/apps/www/public/registry/styles/default/chart-tooltip-indicator-none.json b/apps/www/public/registry/styles/default/chart-tooltip-indicator-none.json
new file mode 100644
index 0000000000..e449fa229d
--- /dev/null
+++ b/apps/www/public/registry/styles/default/chart-tooltip-indicator-none.json
@@ -0,0 +1,17 @@
+{
+ "name": "chart-tooltip-indicator-none",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-tooltip-indicator-none.tsx",
+ "type": "components:block",
+ "content": "\"use client\"\n\nimport { Bar, BarChart, XAxis } from \"recharts\"\n\nimport {\n Card,\n CardContent,\n CardDescription,\n CardHeader,\n CardTitle,\n} from \"@/registry/default/ui/card\"\nimport {\n ChartConfig,\n ChartContainer,\n ChartTooltip,\n ChartTooltipContent,\n} from \"@/registry/default/ui/chart\"\n\nexport const description = \"A stacked bar chart with a legend\"\n\nconst chartData = [\n { date: \"2024-07-15\", running: 450, swimming: 300 },\n { date: \"2024-07-16\", running: 380, swimming: 420 },\n { date: \"2024-07-17\", running: 520, swimming: 120 },\n { date: \"2024-07-18\", running: 140, swimming: 550 },\n { date: \"2024-07-19\", running: 600, swimming: 350 },\n { date: \"2024-07-20\", running: 480, swimming: 400 },\n]\n\nconst chartConfig = {\n running: {\n label: \"Running\",\n color: \"hsl(var(--chart-1))\",\n },\n swimming: {\n label: \"Swimming\",\n color: \"hsl(var(--chart-2))\",\n },\n} satisfies ChartConfig\n\nexport default function Component() {\n return (\n \n \n Tooltip - No Indicator \n Tooltip with no indicator. \n \n \n \n \n {\n return new Date(value).toLocaleDateString(\"en-US\", {\n weekday: \"short\",\n })\n }}\n />\n \n \n }\n cursor={false}\n defaultIndex={1}\n />\n \n \n \n \n )\n}\n"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Tooltip"
+}
\ No newline at end of file
diff --git a/apps/www/public/registry/styles/default/chart-tooltip-label-custom.json b/apps/www/public/registry/styles/default/chart-tooltip-label-custom.json
new file mode 100644
index 0000000000..8414023ef6
--- /dev/null
+++ b/apps/www/public/registry/styles/default/chart-tooltip-label-custom.json
@@ -0,0 +1,17 @@
+{
+ "name": "chart-tooltip-label-custom",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-tooltip-label-custom.tsx",
+ "type": "components:block",
+ "content": "\"use client\"\n\nimport { Bar, BarChart, XAxis } from \"recharts\"\n\nimport {\n Card,\n CardContent,\n CardDescription,\n CardHeader,\n CardTitle,\n} from \"@/registry/default/ui/card\"\nimport {\n ChartConfig,\n ChartContainer,\n ChartTooltip,\n ChartTooltipContent,\n} from \"@/registry/default/ui/chart\"\n\nexport const description = \"A stacked bar chart with a legend\"\n\nconst chartData = [\n { date: \"2024-07-15\", running: 450, swimming: 300 },\n { date: \"2024-07-16\", running: 380, swimming: 420 },\n { date: \"2024-07-17\", running: 520, swimming: 120 },\n { date: \"2024-07-18\", running: 140, swimming: 550 },\n { date: \"2024-07-19\", running: 600, swimming: 350 },\n { date: \"2024-07-20\", running: 480, swimming: 400 },\n]\n\nconst chartConfig = {\n activities: {\n label: \"Activities\",\n },\n running: {\n label: \"Running\",\n color: \"hsl(var(--chart-1))\",\n },\n swimming: {\n label: \"Swimming\",\n color: \"hsl(var(--chart-2))\",\n },\n} satisfies ChartConfig\n\nexport default function Component() {\n return (\n \n \n Tooltip - Custom label \n \n Tooltip with custom label from chartConfig.\n \n \n \n \n \n {\n return new Date(value).toLocaleDateString(\"en-US\", {\n weekday: \"short\",\n })\n }}\n />\n \n \n \n }\n cursor={false}\n defaultIndex={1}\n />\n \n \n \n \n )\n}\n"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Tooltip"
+}
\ No newline at end of file
diff --git a/apps/www/public/registry/styles/default/chart-tooltip-label-formatter.json b/apps/www/public/registry/styles/default/chart-tooltip-label-formatter.json
new file mode 100644
index 0000000000..1261477721
--- /dev/null
+++ b/apps/www/public/registry/styles/default/chart-tooltip-label-formatter.json
@@ -0,0 +1,17 @@
+{
+ "name": "chart-tooltip-label-formatter",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-tooltip-label-formatter.tsx",
+ "type": "components:block",
+ "content": "\"use client\"\n\nimport { Bar, BarChart, XAxis } from \"recharts\"\n\nimport {\n Card,\n CardContent,\n CardDescription,\n CardHeader,\n CardTitle,\n} from \"@/registry/default/ui/card\"\nimport {\n ChartConfig,\n ChartContainer,\n ChartTooltip,\n ChartTooltipContent,\n} from \"@/registry/default/ui/chart\"\n\nexport const description = \"A stacked bar chart with a legend\"\n\nconst chartData = [\n { date: \"2024-07-15\", running: 450, swimming: 300 },\n { date: \"2024-07-16\", running: 380, swimming: 420 },\n { date: \"2024-07-17\", running: 520, swimming: 120 },\n { date: \"2024-07-18\", running: 140, swimming: 550 },\n { date: \"2024-07-19\", running: 600, swimming: 350 },\n { date: \"2024-07-20\", running: 480, swimming: 400 },\n]\n\nconst chartConfig = {\n running: {\n label: \"Running\",\n color: \"hsl(var(--chart-1))\",\n },\n swimming: {\n label: \"Swimming\",\n color: \"hsl(var(--chart-2))\",\n },\n} satisfies ChartConfig\n\nexport default function Component() {\n return (\n \n \n Tooltip - Label Formatter \n Tooltip with label formatter. \n \n \n \n \n {\n return new Date(value).toLocaleDateString(\"en-US\", {\n weekday: \"short\",\n })\n }}\n />\n \n \n {\n return new Date(value).toLocaleDateString(\"en-US\", {\n day: \"numeric\",\n month: \"long\",\n year: \"numeric\",\n })\n }}\n />\n }\n cursor={false}\n defaultIndex={1}\n />\n \n \n \n \n )\n}\n"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Tooltip"
+}
\ No newline at end of file
diff --git a/apps/www/public/registry/styles/default/chart-tooltip-label-none.json b/apps/www/public/registry/styles/default/chart-tooltip-label-none.json
new file mode 100644
index 0000000000..bd8bed3e99
--- /dev/null
+++ b/apps/www/public/registry/styles/default/chart-tooltip-label-none.json
@@ -0,0 +1,17 @@
+{
+ "name": "chart-tooltip-label-none",
+ "type": "components:block",
+ "registryDependencies": [
+ "card",
+ "chart"
+ ],
+ "files": [
+ {
+ "path": "block/chart-tooltip-label-none.tsx",
+ "type": "components:block",
+ "content": "\"use client\"\n\nimport { Bar, BarChart, XAxis } from \"recharts\"\n\nimport {\n Card,\n CardContent,\n CardDescription,\n CardHeader,\n CardTitle,\n} from \"@/registry/default/ui/card\"\nimport {\n ChartConfig,\n ChartContainer,\n ChartTooltip,\n ChartTooltipContent,\n} from \"@/registry/default/ui/chart\"\n\nexport const description = \"A stacked bar chart with a legend\"\n\nconst chartData = [\n { date: \"2024-07-15\", running: 450, swimming: 300 },\n { date: \"2024-07-16\", running: 380, swimming: 420 },\n { date: \"2024-07-17\", running: 520, swimming: 120 },\n { date: \"2024-07-18\", running: 140, swimming: 550 },\n { date: \"2024-07-19\", running: 600, swimming: 350 },\n { date: \"2024-07-20\", running: 480, swimming: 400 },\n]\n\nconst chartConfig = {\n running: {\n label: \"Running\",\n color: \"hsl(var(--chart-1))\",\n },\n swimming: {\n label: \"Swimming\",\n color: \"hsl(var(--chart-2))\",\n },\n} satisfies ChartConfig\n\nexport default function Component() {\n return (\n \n \n Tooltip - No Label \n Tooltip with no label. \n \n \n \n \n {\n return new Date(value).toLocaleDateString(\"en-US\", {\n weekday: \"short\",\n })\n }}\n />\n \n \n }\n cursor={false}\n defaultIndex={1}\n />\n \n \n \n \n )\n}\n"
+ }
+ ],
+ "category": "Charts",
+ "subcategory": "Tooltip"
+}
\ No newline at end of file
diff --git a/apps/www/public/registry/styles/default/chart.json b/apps/www/public/registry/styles/default/chart.json
index c2e98bb3f8..436a779810 100644
--- a/apps/www/public/registry/styles/default/chart.json
+++ b/apps/www/public/registry/styles/default/chart.json
@@ -1,5 +1,6 @@
{
"name": "chart",
+ "type": "components:ui",
"dependencies": [
"recharts",
"lucide-react"
@@ -9,9 +10,9 @@
],
"files": [
{
- "name": "chart.tsx",
+ "path": "ui/chart.tsx",
+ "type": "components:ui",
"content": "\"use client\"\n\nimport * as React from \"react\"\nimport * as RechartsPrimitive from \"recharts\"\n\nimport { cn } from \"@/lib/utils\"\n\n// Format: { THEME_NAME: CSS_SELECTOR }\nconst THEMES = { light: \"\", dark: \".dark\" } as const\n\nexport type ChartConfig = {\n [k in string]: {\n label?: React.ReactNode\n icon?: React.ComponentType\n } & (\n | { color?: string; theme?: never }\n | { color?: never; theme: Record }\n )\n}\n\ntype ChartContextProps = {\n config: ChartConfig\n}\n\nconst ChartContext = React.createContext(null)\n\nfunction useChart() {\n const context = React.useContext(ChartContext)\n\n if (!context) {\n throw new Error(\"useChart must be used within a \")\n }\n\n return context\n}\n\nconst ChartContainer = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\"> & {\n config: ChartConfig\n children: React.ComponentProps<\n typeof RechartsPrimitive.ResponsiveContainer\n >[\"children\"]\n }\n>(({ id, className, children, config, ...props }, ref) => {\n const uniqueId = React.useId()\n const chartId = `chart-${id || uniqueId.replace(/:/g, \"\")}`\n\n return (\n \n \n \n \n {children}\n \n
\n \n )\n})\nChartContainer.displayName = \"Chart\"\n\nconst ChartStyle = ({ id, config }: { id: string; config: ChartConfig }) => {\n const colorConfig = Object.entries(config).filter(\n ([_, config]) => config.theme || config.color\n )\n\n if (!colorConfig.length) {\n return null\n }\n\n return (\n