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 ( +
+ +
+ ) +} 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 ( +
+ +
+ ) +} 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 \n \n
\n
\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/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 \n \n
\n
\n
\n \n \n Forgot your password?\n \n
\n \n
\n \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 \n \n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n \n \n
\n \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 \n \n
\n
\n
\n \n \n Forgot your password?\n \n
\n \n
\n \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) =>
\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 `\n${prefix} [data-chart=${id}] {\n${colorConfig\n .map(([key, itemConfig]) => {\n const color =\n itemConfig.theme?.[theme as keyof typeof itemConfig.theme] ||\n itemConfig.color\n return color ? ` --color-${key}: ${color};` : null\n })\n .join(\"\\n\")}\n}\n`\n )\n .join(\"\\n\"),\n }}\n />\n )\n}\n\nconst ChartTooltip = RechartsPrimitive.Tooltip\n\nconst ChartTooltipContent = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps &\n React.ComponentProps<\"div\"> & {\n hideLabel?: boolean\n hideIndicator?: boolean\n indicator?: \"line\" | \"dot\" | \"dashed\"\n nameKey?: string\n labelKey?: string\n }\n>(\n (\n {\n active,\n payload,\n className,\n indicator = \"dot\",\n hideLabel = false,\n hideIndicator = false,\n label,\n labelFormatter,\n labelClassName,\n formatter,\n color,\n nameKey,\n labelKey,\n },\n ref\n ) => {\n const { config } = useChart()\n\n const tooltipLabel = React.useMemo(() => {\n if (hideLabel || !payload?.length) {\n return null\n }\n\n const [item] = payload\n const key = `${labelKey || item.dataKey || item.name || \"value\"}`\n const itemConfig = getPayloadConfigFromPayload(config, item, key)\n const value =\n !labelKey && typeof label === \"string\"\n ? config[label as keyof typeof config]?.label || label\n : itemConfig?.label\n\n if (labelFormatter) {\n return (\n
\n {labelFormatter(value, payload)}\n
\n )\n }\n\n if (!value) {\n return null\n }\n\n return
{value}
\n }, [\n label,\n labelFormatter,\n payload,\n hideLabel,\n labelClassName,\n config,\n labelKey,\n ])\n\n if (!active || !payload?.length) {\n return null\n }\n\n const nestLabel = payload.length === 1 && indicator !== \"dot\"\n\n return (\n \n {!nestLabel ? tooltipLabel : null}\n
\n {payload.map((item, index) => {\n const key = `${nameKey || item.name || item.dataKey || \"value\"}`\n const itemConfig = getPayloadConfigFromPayload(config, item, key)\n const indicatorColor = color || item.payload.fill || item.color\n\n return (\n svg]:h-2.5 [&>svg]:w-2.5 [&>svg]:text-muted-foreground\",\n indicator === \"dot\" && \"items-center\"\n )}\n >\n {formatter && item?.value !== undefined && item.name ? (\n formatter(item.value, item.name, item, index, item.payload)\n ) : (\n <>\n {itemConfig?.icon ? (\n \n ) : (\n !hideIndicator && (\n \n )\n )}\n \n
\n {nestLabel ? tooltipLabel : null}\n \n {itemConfig?.label || item.name}\n \n
\n {item.value && (\n \n {item.value.toLocaleString()}\n \n )}\n
\n \n )}\n \n )\n })}\n \n \n )\n }\n)\nChartTooltipContent.displayName = \"ChartTooltip\"\n\nconst ChartLegend = RechartsPrimitive.Legend\n\nconst ChartLegendContent = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\"> &\n Pick & {\n hideIcon?: boolean\n nameKey?: string\n }\n>(\n (\n { className, hideIcon = false, payload, verticalAlign = \"bottom\", nameKey },\n ref\n ) => {\n const { config } = useChart()\n\n if (!payload?.length) {\n return null\n }\n\n return (\n \n {payload.map((item) => {\n const key = `${nameKey || item.dataKey || \"value\"}`\n const itemConfig = getPayloadConfigFromPayload(config, item, key)\n\n return (\n svg]:h-3 [&>svg]:w-3 [&>svg]:text-muted-foreground\"\n )}\n >\n {itemConfig?.icon && !hideIcon ? (\n \n ) : (\n \n )}\n {itemConfig?.label}\n \n )\n })}\n \n )\n }\n)\nChartLegendContent.displayName = \"ChartLegend\"\n\n// Helper to extract item config from a payload.\nfunction getPayloadConfigFromPayload(\n config: ChartConfig,\n payload: unknown,\n key: string\n) {\n if (typeof payload !== \"object\" || payload === null) {\n return undefined\n }\n\n const payloadPayload =\n \"payload\" in payload &&\n typeof payload.payload === \"object\" &&\n payload.payload !== null\n ? payload.payload\n : undefined\n\n let configLabelKey: string = key\n\n if (\n key in payload &&\n typeof payload[key as keyof typeof payload] === \"string\"\n ) {\n configLabelKey = payload[key as keyof typeof payload] as string\n } else if (\n payloadPayload &&\n key in payloadPayload &&\n typeof payloadPayload[key as keyof typeof payloadPayload] === \"string\"\n ) {\n configLabelKey = payloadPayload[\n key as keyof typeof payloadPayload\n ] as string\n }\n\n return configLabelKey in config\n ? config[configLabelKey]\n : config[key as keyof typeof config]\n}\n\nexport {\n ChartContainer,\n ChartTooltip,\n ChartTooltipContent,\n ChartLegend,\n ChartLegendContent,\n ChartStyle,\n}\n" } - ], - "type": "components:ui" + ] } \ No newline at end of file diff --git a/apps/www/public/registry/styles/default/charts-01.json b/apps/www/public/registry/styles/default/charts-01.json new file mode 100644 index 0000000000..61c18dc6c7 --- /dev/null +++ b/apps/www/public/registry/styles/default/charts-01.json @@ -0,0 +1,16 @@ +{ + "name": "charts-01", + "type": "components:block", + "registryDependencies": [ + "chart" + ], + "files": [ + { + "path": "block/charts-01.tsx", + "type": "components:block", + "content": "\"use client\"\n\nimport {\n Area,\n AreaChart,\n Bar,\n BarChart,\n CartesianGrid,\n Label,\n LabelList,\n Line,\n LineChart,\n PolarAngleAxis,\n RadialBar,\n RadialBarChart,\n Rectangle,\n ReferenceLine,\n XAxis,\n YAxis,\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 ChartContainer,\n ChartTooltip,\n ChartTooltipContent,\n} from \"@/registry/default/ui/chart\"\nimport { Separator } from \"@/registry/default/ui/separator\"\n\nexport const description = \"A collection of health charts.\"\n\nexport const iframeHeight = \"900px\"\n\nexport const containerClassName = \"min-h-screen py-12\"\n\nexport default function Charts() {\n return (\n
\n
\n \n \n Today\n \n 12,584{\" \"}\n \n steps\n \n \n \n \n \n \n }\n />\n {\n return new Date(value).toLocaleDateString(\"en-US\", {\n weekday: \"short\",\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 />\n \n \n \n \n \n \n \n \n \n Over the past 7 days, you have walked{\" \"}\n 53,305 steps.\n \n \n You need{\" \"}\n 12,584 more\n steps to reach your goal.\n \n \n \n \n div]:flex-1\">\n
\n Resting HR\n \n 62\n \n bpm\n \n \n
\n
\n Variability\n \n 35\n \n ms\n \n \n
\n
\n \n \n \n \n \n {\n return new Date(value).toLocaleDateString(\"en-US\", {\n weekday: \"short\",\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 />\n \n \n \n \n
\n
\n \n \n Progress\n \n You're average more steps a day this year than last year.\n \n \n \n
\n
\n 12,453\n \n steps/day\n \n
\n \n \n \n \n \n \n \n \n \n
\n
\n
\n 10,103\n \n steps/day\n \n
\n \n \n \n \n \n \n \n \n \n
\n
\n \n \n \n Walking Distance\n \n Over the last 7 days, your distance walked and run was 12.5 miles\n per day.\n \n \n \n
\n 12.5\n \n miles/day\n \n
\n \n \n }\n />\n \n \n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n
Move
\n
\n 562\n \n kcal\n \n
\n
\n \n
\n
Exercise
\n
\n 73\n \n min\n \n
\n
\n \n
\n
Stand
\n
\n 14\n \n hr\n \n
\n
\n
\n
\n \n
\n
\n \n \n
\n
\n
Move
\n
\n 562/600\n \n kcal\n \n
\n
\n
\n
Exercise
\n
\n 73/120\n \n min\n \n
\n
\n
\n
Stand
\n
\n 8/12\n \n hr\n \n
\n
\n
\n \n \n \n \n \n \n
\n \n \n \n Active Energy\n \n You're burning an average of 754 calories per day. Good job!\n \n \n \n
\n 1,254\n \n kcal/day\n \n
\n \n \n }\n />\n \n \n \n
\n \n \n \n Time in Bed\n \n 8\n \n hr\n \n 35\n \n min\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n }\n formatter={(value) => (\n
\n Time in bed\n
\n {value}\n \n hr\n \n
\n
\n )}\n />\n \n \n
\n \n
\n
\n )\n}\n" + } + ], + "category": "Application", + "subcategory": "Charts" +} \ No newline at end of file diff --git a/apps/www/public/registry/styles/default/checkbox.json b/apps/www/public/registry/styles/default/checkbox.json index 2a31260e61..4ef919550e 100644 --- a/apps/www/public/registry/styles/default/checkbox.json +++ b/apps/www/public/registry/styles/default/checkbox.json @@ -1,13 +1,14 @@ { "name": "checkbox", + "type": "components:ui", "dependencies": [ "@radix-ui/react-checkbox" ], "files": [ { - "name": "checkbox.tsx", + "path": "ui/checkbox.tsx", + "type": "components:ui", "content": "\"use client\"\n\nimport * as React from \"react\"\nimport * as CheckboxPrimitive from \"@radix-ui/react-checkbox\"\nimport { Check } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst Checkbox = React.forwardRef<\n React.ElementRef,\n React.ComponentPropsWithoutRef\n>(({ className, ...props }, ref) => (\n \n \n \n \n \n))\nCheckbox.displayName = CheckboxPrimitive.Root.displayName\n\nexport { Checkbox }\n" } - ], - "type": "components:ui" + ] } \ No newline at end of file diff --git a/apps/www/public/registry/styles/default/collapsible.json b/apps/www/public/registry/styles/default/collapsible.json index 99a398a94f..e2863602f6 100644 --- a/apps/www/public/registry/styles/default/collapsible.json +++ b/apps/www/public/registry/styles/default/collapsible.json @@ -1,13 +1,14 @@ { "name": "collapsible", + "type": "components:ui", "dependencies": [ "@radix-ui/react-collapsible" ], "files": [ { - "name": "collapsible.tsx", + "path": "ui/collapsible.tsx", + "type": "components:ui", "content": "\"use client\"\n\nimport * as CollapsiblePrimitive from \"@radix-ui/react-collapsible\"\n\nconst Collapsible = CollapsiblePrimitive.Root\n\nconst CollapsibleTrigger = CollapsiblePrimitive.CollapsibleTrigger\n\nconst CollapsibleContent = CollapsiblePrimitive.CollapsibleContent\n\nexport { Collapsible, CollapsibleTrigger, CollapsibleContent }\n" } - ], - "type": "components:ui" + ] } \ No newline at end of file diff --git a/apps/www/public/registry/styles/default/command.json b/apps/www/public/registry/styles/default/command.json index 76467c5767..80a69546ba 100644 --- a/apps/www/public/registry/styles/default/command.json +++ b/apps/www/public/registry/styles/default/command.json @@ -1,5 +1,6 @@ { "name": "command", + "type": "components:ui", "dependencies": [ "cmdk@1.0.0" ], @@ -8,9 +9,9 @@ ], "files": [ { - "name": "command.tsx", + "path": "ui/command.tsx", + "type": "components:ui", "content": "\"use client\"\n\nimport * as React from \"react\"\nimport { type DialogProps } from \"@radix-ui/react-dialog\"\nimport { Command as CommandPrimitive } from \"cmdk\"\nimport { Search } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Dialog, DialogContent } from \"@/registry/default/ui/dialog\"\n\nconst Command = React.forwardRef<\n React.ElementRef,\n React.ComponentPropsWithoutRef\n>(({ className, ...props }, ref) => (\n \n))\nCommand.displayName = CommandPrimitive.displayName\n\ninterface CommandDialogProps extends DialogProps {}\n\nconst CommandDialog = ({ children, ...props }: CommandDialogProps) => {\n return (\n \n \n \n {children}\n \n \n \n )\n}\n\nconst CommandInput = React.forwardRef<\n React.ElementRef,\n React.ComponentPropsWithoutRef\n>(({ className, ...props }, ref) => (\n
\n \n \n
\n))\n\nCommandInput.displayName = CommandPrimitive.Input.displayName\n\nconst CommandList = React.forwardRef<\n React.ElementRef,\n React.ComponentPropsWithoutRef\n>(({ className, ...props }, ref) => (\n \n))\n\nCommandList.displayName = CommandPrimitive.List.displayName\n\nconst CommandEmpty = React.forwardRef<\n React.ElementRef,\n React.ComponentPropsWithoutRef\n>((props, ref) => (\n \n))\n\nCommandEmpty.displayName = CommandPrimitive.Empty.displayName\n\nconst CommandGroup = React.forwardRef<\n React.ElementRef,\n React.ComponentPropsWithoutRef\n>(({ className, ...props }, ref) => (\n \n))\n\nCommandGroup.displayName = CommandPrimitive.Group.displayName\n\nconst CommandSeparator = React.forwardRef<\n React.ElementRef,\n React.ComponentPropsWithoutRef\n>(({ className, ...props }, ref) => (\n \n))\nCommandSeparator.displayName = CommandPrimitive.Separator.displayName\n\nconst CommandItem = React.forwardRef<\n React.ElementRef,\n React.ComponentPropsWithoutRef\n>(({ className, ...props }, ref) => (\n \n))\n\nCommandItem.displayName = CommandPrimitive.Item.displayName\n\nconst CommandShortcut = ({\n className,\n ...props\n}: React.HTMLAttributes) => {\n return (\n \n )\n}\nCommandShortcut.displayName = \"CommandShortcut\"\n\nexport {\n Command,\n CommandDialog,\n CommandInput,\n CommandList,\n CommandEmpty,\n CommandGroup,\n CommandItem,\n CommandShortcut,\n CommandSeparator,\n}\n" } - ], - "type": "components:ui" + ] } \ No newline at end of file diff --git a/apps/www/public/registry/styles/default/context-menu.json b/apps/www/public/registry/styles/default/context-menu.json index 2eb10035ee..80fe401ebd 100644 --- a/apps/www/public/registry/styles/default/context-menu.json +++ b/apps/www/public/registry/styles/default/context-menu.json @@ -1,13 +1,14 @@ { "name": "context-menu", + "type": "components:ui", "dependencies": [ "@radix-ui/react-context-menu" ], "files": [ { - "name": "context-menu.tsx", + "path": "ui/context-menu.tsx", + "type": "components:ui", "content": "\"use client\"\n\nimport * as React from \"react\"\nimport * as ContextMenuPrimitive from \"@radix-ui/react-context-menu\"\nimport { Check, ChevronRight, Circle } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst ContextMenu = ContextMenuPrimitive.Root\n\nconst ContextMenuTrigger = ContextMenuPrimitive.Trigger\n\nconst ContextMenuGroup = ContextMenuPrimitive.Group\n\nconst ContextMenuPortal = ContextMenuPrimitive.Portal\n\nconst ContextMenuSub = ContextMenuPrimitive.Sub\n\nconst ContextMenuRadioGroup = ContextMenuPrimitive.RadioGroup\n\nconst ContextMenuSubTrigger = React.forwardRef<\n React.ElementRef,\n React.ComponentPropsWithoutRef & {\n inset?: boolean\n }\n>(({ className, inset, children, ...props }, ref) => (\n \n {children}\n \n \n))\nContextMenuSubTrigger.displayName = ContextMenuPrimitive.SubTrigger.displayName\n\nconst ContextMenuSubContent = React.forwardRef<\n React.ElementRef,\n React.ComponentPropsWithoutRef\n>(({ className, ...props }, ref) => (\n \n))\nContextMenuSubContent.displayName = ContextMenuPrimitive.SubContent.displayName\n\nconst ContextMenuContent = React.forwardRef<\n React.ElementRef,\n React.ComponentPropsWithoutRef\n>(({ className, ...props }, ref) => (\n \n \n \n))\nContextMenuContent.displayName = ContextMenuPrimitive.Content.displayName\n\nconst ContextMenuItem = React.forwardRef<\n React.ElementRef,\n React.ComponentPropsWithoutRef & {\n inset?: boolean\n }\n>(({ className, inset, ...props }, ref) => (\n \n))\nContextMenuItem.displayName = ContextMenuPrimitive.Item.displayName\n\nconst ContextMenuCheckboxItem = React.forwardRef<\n React.ElementRef,\n React.ComponentPropsWithoutRef\n>(({ className, children, checked, ...props }, ref) => (\n \n \n \n \n \n \n {children}\n \n))\nContextMenuCheckboxItem.displayName =\n ContextMenuPrimitive.CheckboxItem.displayName\n\nconst ContextMenuRadioItem = React.forwardRef<\n React.ElementRef,\n React.ComponentPropsWithoutRef\n>(({ className, children, ...props }, ref) => (\n \n \n \n \n \n \n {children}\n \n))\nContextMenuRadioItem.displayName = ContextMenuPrimitive.RadioItem.displayName\n\nconst ContextMenuLabel = React.forwardRef<\n React.ElementRef,\n React.ComponentPropsWithoutRef & {\n inset?: boolean\n }\n>(({ className, inset, ...props }, ref) => (\n \n))\nContextMenuLabel.displayName = ContextMenuPrimitive.Label.displayName\n\nconst ContextMenuSeparator = React.forwardRef<\n React.ElementRef,\n React.ComponentPropsWithoutRef\n>(({ className, ...props }, ref) => (\n \n))\nContextMenuSeparator.displayName = ContextMenuPrimitive.Separator.displayName\n\nconst ContextMenuShortcut = ({\n className,\n ...props\n}: React.HTMLAttributes) => {\n return (\n \n )\n}\nContextMenuShortcut.displayName = \"ContextMenuShortcut\"\n\nexport {\n ContextMenu,\n ContextMenuTrigger,\n ContextMenuContent,\n ContextMenuItem,\n ContextMenuCheckboxItem,\n ContextMenuRadioItem,\n ContextMenuLabel,\n ContextMenuSeparator,\n ContextMenuShortcut,\n ContextMenuGroup,\n ContextMenuPortal,\n ContextMenuSub,\n ContextMenuSubContent,\n ContextMenuSubTrigger,\n ContextMenuRadioGroup,\n}\n" } - ], - "type": "components:ui" + ] } \ No newline at end of file diff --git a/apps/www/public/registry/styles/default/dashboard-01.json b/apps/www/public/registry/styles/default/dashboard-01.json new file mode 100644 index 0000000000..ce30d3e3bc --- /dev/null +++ b/apps/www/public/registry/styles/default/dashboard-01.json @@ -0,0 +1,19 @@ +{ + "name": "dashboard-01", + "type": "components:block", + "registryDependencies": [ + "button", + "dropdown-menu", + "input", + "sheet" + ], + "files": [ + { + "path": "block/dashboard-01.tsx", + "type": "components:block", + "content": "import Link from \"next/link\"\nimport {\n Activity,\n ArrowUpRight,\n CircleUser,\n CreditCard,\n DollarSign,\n Menu,\n Package2,\n Search,\n Users,\n} from \"lucide-react\"\n\nimport {\n Avatar,\n AvatarFallback,\n AvatarImage,\n} from \"@/registry/default/ui/avatar\"\nimport { Badge } from \"@/registry/default/ui/badge\"\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 {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from \"@/registry/default/ui/dropdown-menu\"\nimport { Input } from \"@/registry/default/ui/input\"\nimport { Sheet, SheetContent, SheetTrigger } from \"@/registry/default/ui/sheet\"\nimport {\n Table,\n TableBody,\n TableCell,\n TableHead,\n TableHeader,\n TableRow,\n} from \"@/registry/default/ui/table\"\n\nexport const description =\n \"An application shell with a header and main content area. The header has a navbar, a search input and and a user nav dropdown. The user nav is toggled by a button with an avatar image.\"\n\nexport const iframeHeight = \"825px\"\n\nexport const containerClassName = \"w-full h-full\"\n\nexport default function Dashboard() {\n return (\n
\n
\n \n \n \n \n \n Toggle navigation menu\n \n \n \n \n \n \n
\n
\n
\n \n \n
\n
\n \n \n \n \n \n My Account\n \n Settings\n Support\n \n Logout\n \n \n
\n
\n
\n
\n \n \n \n Total Revenue\n \n \n \n \n
$45,231.89
\n

\n +20.1% from last month\n

\n
\n
\n \n \n \n Subscriptions\n \n \n \n \n
+2350
\n

\n +180.1% from last month\n

\n
\n
\n \n \n Sales\n \n \n \n
+12,234
\n

\n +19% from last month\n

\n
\n
\n \n \n Active Now\n \n \n \n
+573
\n

\n +201 since last hour\n

\n
\n
\n
\n
\n \n \n
\n Transactions\n \n Recent transactions from your store.\n \n
\n \n
\n \n \n \n \n Customer\n \n Type\n \n \n Status\n \n \n Date\n \n Amount\n \n \n \n \n \n
Liam Johnson
\n
\n liam@example.com\n
\n
\n \n Sale\n \n \n \n Approved\n \n \n \n 2023-06-23\n \n $250.00\n
\n \n \n
Olivia Smith
\n
\n olivia@example.com\n
\n
\n \n Refund\n \n \n \n Declined\n \n \n \n 2023-06-24\n \n $150.00\n
\n \n \n
Noah Williams
\n
\n noah@example.com\n
\n
\n \n Subscription\n \n \n \n Approved\n \n \n \n 2023-06-25\n \n $350.00\n
\n \n \n
Emma Brown
\n
\n emma@example.com\n
\n
\n \n Sale\n \n \n \n Approved\n \n \n \n 2023-06-26\n \n $450.00\n
\n \n \n
Liam Johnson
\n
\n liam@example.com\n
\n
\n \n Sale\n \n \n \n Approved\n \n \n \n 2023-06-27\n \n $550.00\n
\n
\n
\n
\n \n \n \n Recent Sales\n \n \n
\n \n \n OM\n \n
\n

\n Olivia Martin\n

\n

\n olivia.martin@email.com\n

\n
\n
+$1,999.00
\n
\n
\n \n \n JL\n \n
\n

\n Jackson Lee\n

\n

\n jackson.lee@email.com\n

\n
\n
+$39.00
\n
\n
\n \n \n IN\n \n
\n

\n Isabella Nguyen\n

\n

\n isabella.nguyen@email.com\n

\n
\n
+$299.00
\n
\n
\n \n \n WK\n \n
\n

\n William Kim\n

\n

\n will@email.com\n

\n
\n
+$99.00
\n
\n
\n \n \n SD\n \n
\n

\n Sofia Davis\n

\n

\n sofia.davis@email.com\n

\n
\n
+$39.00
\n
\n
\n
\n
\n
\n
\n )\n}\n" + } + ], + "category": "Application", + "subcategory": "Dashboard" +} \ No newline at end of file diff --git a/apps/www/public/registry/styles/default/dashboard-02.json b/apps/www/public/registry/styles/default/dashboard-02.json new file mode 100644 index 0000000000..46b797eb3e --- /dev/null +++ b/apps/www/public/registry/styles/default/dashboard-02.json @@ -0,0 +1,20 @@ +{ + "name": "dashboard-02", + "type": "components:block", + "registryDependencies": [ + "badge", + "button", + "card", + "dropdown-menu", + "input" + ], + "files": [ + { + "path": "block/dashboard-02.tsx", + "type": "components:block", + "content": "import Link from \"next/link\"\nimport {\n Bell,\n CircleUser,\n Home,\n LineChart,\n Menu,\n Package,\n Package2,\n Search,\n ShoppingCart,\n Users,\n} from \"lucide-react\"\n\nimport { Badge } from \"@/registry/default/ui/badge\"\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 {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from \"@/registry/default/ui/dropdown-menu\"\nimport { Input } from \"@/registry/default/ui/input\"\nimport { Sheet, SheetContent, SheetTrigger } from \"@/registry/default/ui/sheet\"\n\nexport const description =\n \"A products dashboard with a sidebar navigation and a main content area. The dashboard has a header with a search input and a user menu. The sidebar has a logo, navigation links, and a card with a call to action. The main content area shows an empty state with a call to action.\"\n\nexport const iframeHeight = \"800px\"\n\nexport const containerClassName = \"w-full h-full\"\n\nexport default function Dashboard() {\n return (\n
\n
\n
\n
\n \n \n Acme Inc\n \n \n
\n
\n \n
\n
\n \n \n Upgrade to Pro\n \n Unlock all features and get unlimited access to our support\n team.\n \n \n \n \n \n \n
\n
\n
\n
\n
\n \n \n \n \n Toggle navigation menu\n \n \n \n \n
\n \n \n Upgrade to Pro\n \n Unlock all features and get unlimited access to our\n support team.\n \n \n \n \n \n \n
\n
\n \n
\n
\n
\n \n \n
\n
\n
\n \n \n \n \n \n My Account\n \n Settings\n Support\n \n Logout\n \n \n
\n
\n
\n

Inventory

\n
\n \n
\n

\n You have no products\n

\n

\n You can start selling as soon as you add a product.\n

\n \n
\n
\n \n
\n \n )\n}\n" + } + ], + "category": "Application", + "subcategory": "Dashboard" +} \ No newline at end of file diff --git a/apps/www/public/registry/styles/default/dashboard-03.json b/apps/www/public/registry/styles/default/dashboard-03.json new file mode 100644 index 0000000000..3d8e52e299 --- /dev/null +++ b/apps/www/public/registry/styles/default/dashboard-03.json @@ -0,0 +1,23 @@ +{ + "name": "dashboard-03", + "type": "components:block", + "registryDependencies": [ + "badge", + "button", + "drawer", + "input", + "label", + "select", + "textarea", + "tooltip" + ], + "files": [ + { + "path": "block/dashboard-03.tsx", + "type": "components:block", + "content": "import {\n Bird,\n Book,\n Bot,\n Code2,\n CornerDownLeft,\n LifeBuoy,\n Mic,\n Paperclip,\n Rabbit,\n Settings,\n Settings2,\n Share,\n SquareTerminal,\n SquareUser,\n Triangle,\n Turtle,\n} from \"lucide-react\"\n\nimport { Badge } from \"@/registry/default/ui/badge\"\nimport { Button } from \"@/registry/default/ui/button\"\nimport {\n Drawer,\n DrawerContent,\n DrawerDescription,\n DrawerHeader,\n DrawerTitle,\n DrawerTrigger,\n} from \"@/registry/default/ui/drawer\"\nimport { Input } from \"@/registry/default/ui/input\"\nimport { Label } from \"@/registry/default/ui/label\"\nimport {\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from \"@/registry/default/ui/select\"\nimport { Textarea } from \"@/registry/default/ui/textarea\"\nimport {\n Tooltip,\n TooltipContent,\n TooltipTrigger,\n} from \"@/registry/default/ui/tooltip\"\n\nexport const description =\n \"An AI playground with a sidebar navigation and a main content area. The playground has a header with a settings drawer and a share button. The sidebar has navigation links and a user menu. The main content area shows a form to configure the model and messages.\"\n\nexport const iframeHeight = \"740px\"\n\nexport const containerClassName = \"w-full h-full\"\n\nexport default function Dashboard() {\n return (\n
\n \n
\n
\n

Playground

\n \n \n \n \n \n \n Configuration\n \n Configure the settings for the model and messages.\n \n \n
\n
\n \n Settings\n \n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n \n Messages\n \n
\n \n \n
\n
\n \n