mirror of
https://github.com/hanzoai/shadcn.git
synced 2026-11-03 03:18:52 +00:00
Squash merge of shadcn-ui/ui main branch into hanzo/ui, bringing in: - [email protected] through [email protected] releases - New apps/v4 directory structure - Registry system improvements and MCP server - Framework support (Vue, Svelte, React Native) - New templates (vite-app, monorepo-next, laravel) - Zod 4 compatibility (scoped override for zod@>4) - Test fixture corrections for alias resolution All 867 merge conflicts resolved preserving Hanzo customizations. 1020/1020 shadcn tests pass.
800 lines
20 KiB
TypeScript
800 lines
20 KiB
TypeScript
import { type Registry } from "shadcn/schema"
|
|
|
|
export const blocks: Registry["items"] = [
|
|
{
|
|
name: "dashboard-01",
|
|
type: "registry:block",
|
|
description: "A dashboard with sidebar, charts and data table.",
|
|
dependencies: [
|
|
"@dnd-kit/core",
|
|
"@dnd-kit/modifiers",
|
|
"@dnd-kit/sortable",
|
|
"@dnd-kit/utilities",
|
|
"@tabler/icons-react",
|
|
"@tanstack/react-table",
|
|
"zod",
|
|
],
|
|
registryDependencies: [
|
|
"sidebar",
|
|
"breadcrumb",
|
|
"separator",
|
|
"label",
|
|
"chart",
|
|
"card",
|
|
"select",
|
|
"tabs",
|
|
"table",
|
|
"toggle-group",
|
|
"badge",
|
|
"button",
|
|
"checkbox",
|
|
"dropdown-menu",
|
|
"drawer",
|
|
"input",
|
|
"avatar",
|
|
"sheet",
|
|
"sonner",
|
|
],
|
|
files: [
|
|
{
|
|
path: "blocks/dashboard-01/page.tsx",
|
|
type: "registry:page",
|
|
target: "app/dashboard/page.tsx",
|
|
},
|
|
{
|
|
path: "blocks/dashboard-01/data.json",
|
|
type: "registry:file",
|
|
target: "app/dashboard/data.json",
|
|
},
|
|
{
|
|
path: "blocks/dashboard-01/components/app-sidebar.tsx",
|
|
type: "registry:component",
|
|
},
|
|
{
|
|
path: "blocks/dashboard-01/components/chart-area-interactive.tsx",
|
|
type: "registry:component",
|
|
},
|
|
{
|
|
path: "blocks/dashboard-01/components/data-table.tsx",
|
|
type: "registry:component",
|
|
},
|
|
{
|
|
path: "blocks/dashboard-01/components/nav-documents.tsx",
|
|
type: "registry:component",
|
|
},
|
|
{
|
|
path: "blocks/dashboard-01/components/nav-main.tsx",
|
|
type: "registry:component",
|
|
},
|
|
{
|
|
path: "blocks/dashboard-01/components/nav-secondary.tsx",
|
|
type: "registry:component",
|
|
},
|
|
{
|
|
path: "blocks/dashboard-01/components/nav-user.tsx",
|
|
type: "registry:component",
|
|
},
|
|
{
|
|
path: "blocks/dashboard-01/components/section-cards.tsx",
|
|
type: "registry:component",
|
|
},
|
|
{
|
|
path: "blocks/dashboard-01/components/site-header.tsx",
|
|
type: "registry:component",
|
|
},
|
|
],
|
|
categories: ["dashboard"],
|
|
meta: {
|
|
iframeHeight: "1000px",
|
|
},
|
|
},
|
|
{
|
|
name: "sidebar-01",
|
|
type: "registry:block",
|
|
description: "A simple sidebar with navigation grouped by section.",
|
|
registryDependencies: [
|
|
"sidebar",
|
|
"breadcrumb",
|
|
"separator",
|
|
"label",
|
|
"dropdown-menu",
|
|
],
|
|
files: [
|
|
{
|
|
path: "blocks/sidebar-01/page.tsx",
|
|
type: "registry:page",
|
|
target: "app/dashboard/page.tsx",
|
|
},
|
|
{
|
|
path: "blocks/sidebar-01/components/app-sidebar.tsx",
|
|
type: "registry:component",
|
|
},
|
|
{
|
|
path: "blocks/sidebar-01/components/search-form.tsx",
|
|
type: "registry:component",
|
|
},
|
|
{
|
|
path: "blocks/sidebar-01/components/version-switcher.tsx",
|
|
type: "registry:component",
|
|
},
|
|
],
|
|
categories: ["sidebar", "dashboard"],
|
|
},
|
|
{
|
|
name: "sidebar-02",
|
|
description: "A sidebar with collapsible sections.",
|
|
type: "registry:block",
|
|
registryDependencies: [
|
|
"sidebar",
|
|
"breadcrumb",
|
|
"separator",
|
|
"label",
|
|
"dropdown-menu",
|
|
],
|
|
files: [
|
|
{
|
|
path: "blocks/sidebar-02/page.tsx",
|
|
type: "registry:page",
|
|
target: "app/dashboard/page.tsx",
|
|
},
|
|
{
|
|
path: "blocks/sidebar-02/components/app-sidebar.tsx",
|
|
type: "registry:component",
|
|
},
|
|
{
|
|
path: "blocks/sidebar-02/components/search-form.tsx",
|
|
type: "registry:component",
|
|
},
|
|
{
|
|
path: "blocks/sidebar-02/components/version-switcher.tsx",
|
|
type: "registry:component",
|
|
},
|
|
],
|
|
categories: ["sidebar", "dashboard"],
|
|
},
|
|
{
|
|
name: "sidebar-03",
|
|
description: "A sidebar with submenus.",
|
|
type: "registry:block",
|
|
registryDependencies: ["sidebar", "breadcrumb"],
|
|
files: [
|
|
{
|
|
path: "blocks/sidebar-03/page.tsx",
|
|
type: "registry:page",
|
|
target: "app/dashboard/page.tsx",
|
|
},
|
|
{
|
|
path: "blocks/sidebar-03/components/app-sidebar.tsx",
|
|
type: "registry:component",
|
|
},
|
|
],
|
|
categories: ["sidebar", "dashboard"],
|
|
},
|
|
{
|
|
name: "sidebar-04",
|
|
description: "A floating sidebar with submenus.",
|
|
type: "registry:block",
|
|
registryDependencies: ["sidebar", "breadcrumb", "separator"],
|
|
files: [
|
|
{
|
|
path: "blocks/sidebar-04/page.tsx",
|
|
type: "registry:page",
|
|
target: "app/dashboard/page.tsx",
|
|
},
|
|
{
|
|
path: "blocks/sidebar-04/components/app-sidebar.tsx",
|
|
type: "registry:component",
|
|
},
|
|
],
|
|
categories: ["sidebar", "dashboard"],
|
|
},
|
|
{
|
|
name: "sidebar-05",
|
|
description: "A sidebar with collapsible submenus.",
|
|
type: "registry:block",
|
|
registryDependencies: [
|
|
"sidebar",
|
|
"breadcrumb",
|
|
"separator",
|
|
"label",
|
|
"collapsible",
|
|
],
|
|
files: [
|
|
{
|
|
path: "blocks/sidebar-05/page.tsx",
|
|
type: "registry:page",
|
|
target: "app/dashboard/page.tsx",
|
|
},
|
|
{
|
|
path: "blocks/sidebar-05/components/app-sidebar.tsx",
|
|
type: "registry:component",
|
|
},
|
|
{
|
|
path: "blocks/sidebar-05/components/search-form.tsx",
|
|
type: "registry:component",
|
|
},
|
|
],
|
|
categories: ["sidebar", "dashboard"],
|
|
},
|
|
{
|
|
name: "sidebar-06",
|
|
description: "A sidebar with submenus as dropdowns.",
|
|
type: "registry:block",
|
|
registryDependencies: [
|
|
"sidebar",
|
|
"breadcrumb",
|
|
"separator",
|
|
"card",
|
|
"dropdown-menu",
|
|
],
|
|
files: [
|
|
{
|
|
path: "blocks/sidebar-06/page.tsx",
|
|
type: "registry:page",
|
|
target: "app/dashboard/page.tsx",
|
|
},
|
|
{
|
|
path: "blocks/sidebar-06/components/app-sidebar.tsx",
|
|
type: "registry:component",
|
|
},
|
|
{
|
|
path: "blocks/sidebar-06/components/nav-main.tsx",
|
|
type: "registry:component",
|
|
},
|
|
{
|
|
path: "blocks/sidebar-06/components/sidebar-opt-in-form.tsx",
|
|
type: "registry:component",
|
|
},
|
|
],
|
|
categories: ["sidebar", "dashboard"],
|
|
},
|
|
{
|
|
name: "sidebar-07",
|
|
type: "registry:block",
|
|
description: "A sidebar that collapses to icons.",
|
|
registryDependencies: [
|
|
"sidebar",
|
|
"breadcrumb",
|
|
"separator",
|
|
"collapsible",
|
|
"dropdown-menu",
|
|
"avatar",
|
|
],
|
|
files: [
|
|
{
|
|
path: "blocks/sidebar-07/page.tsx",
|
|
type: "registry:page",
|
|
target: "app/dashboard/page.tsx",
|
|
},
|
|
{
|
|
path: "blocks/sidebar-07/components/app-sidebar.tsx",
|
|
type: "registry:component",
|
|
},
|
|
{
|
|
path: "blocks/sidebar-07/components/nav-main.tsx",
|
|
type: "registry:component",
|
|
},
|
|
{
|
|
path: "blocks/sidebar-07/components/nav-projects.tsx",
|
|
type: "registry:component",
|
|
},
|
|
{
|
|
path: "blocks/sidebar-07/components/nav-user.tsx",
|
|
type: "registry:component",
|
|
},
|
|
{
|
|
path: "blocks/sidebar-07/components/team-switcher.tsx",
|
|
type: "registry:component",
|
|
},
|
|
],
|
|
categories: ["sidebar", "dashboard"],
|
|
},
|
|
{
|
|
name: "sidebar-08",
|
|
description: "An inset sidebar with secondary navigation.",
|
|
type: "registry:block",
|
|
registryDependencies: [
|
|
"sidebar",
|
|
"breadcrumb",
|
|
"separator",
|
|
"collapsible",
|
|
"dropdown-menu",
|
|
"avatar",
|
|
],
|
|
files: [
|
|
{
|
|
path: "blocks/sidebar-08/page.tsx",
|
|
type: "registry:page",
|
|
target: "app/dashboard/page.tsx",
|
|
},
|
|
{
|
|
path: "blocks/sidebar-08/components/app-sidebar.tsx",
|
|
type: "registry:component",
|
|
},
|
|
{
|
|
path: "blocks/sidebar-08/components/nav-main.tsx",
|
|
type: "registry:component",
|
|
},
|
|
{
|
|
path: "blocks/sidebar-08/components/nav-projects.tsx",
|
|
type: "registry:component",
|
|
},
|
|
{
|
|
path: "blocks/sidebar-08/components/nav-secondary.tsx",
|
|
type: "registry:component",
|
|
},
|
|
{
|
|
path: "blocks/sidebar-08/components/nav-user.tsx",
|
|
type: "registry:component",
|
|
},
|
|
],
|
|
categories: ["sidebar", "dashboard"],
|
|
},
|
|
{
|
|
name: "sidebar-09",
|
|
description: "Collapsible nested sidebars.",
|
|
type: "registry:block",
|
|
registryDependencies: [
|
|
"sidebar",
|
|
"breadcrumb",
|
|
"separator",
|
|
"collapsible",
|
|
"dropdown-menu",
|
|
"avatar",
|
|
"switch",
|
|
"label",
|
|
],
|
|
files: [
|
|
{
|
|
path: "blocks/sidebar-09/page.tsx",
|
|
type: "registry:page",
|
|
target: "app/dashboard/page.tsx",
|
|
},
|
|
{
|
|
path: "blocks/sidebar-09/components/app-sidebar.tsx",
|
|
type: "registry:component",
|
|
},
|
|
{
|
|
path: "blocks/sidebar-09/components/nav-user.tsx",
|
|
type: "registry:component",
|
|
},
|
|
],
|
|
categories: ["sidebar", "dashboard"],
|
|
},
|
|
{
|
|
name: "sidebar-10",
|
|
description: "A sidebar in a popover.",
|
|
type: "registry:block",
|
|
registryDependencies: [
|
|
"sidebar",
|
|
"breadcrumb",
|
|
"separator",
|
|
"popover",
|
|
"collapsible",
|
|
"dropdown-menu",
|
|
],
|
|
files: [
|
|
{
|
|
path: "blocks/sidebar-10/page.tsx",
|
|
type: "registry:page",
|
|
target: "app/dashboard/page.tsx",
|
|
},
|
|
{
|
|
path: "blocks/sidebar-10/components/app-sidebar.tsx",
|
|
type: "registry:component",
|
|
},
|
|
{
|
|
path: "blocks/sidebar-10/components/nav-actions.tsx",
|
|
type: "registry:component",
|
|
},
|
|
{
|
|
path: "blocks/sidebar-10/components/nav-favorites.tsx",
|
|
type: "registry:component",
|
|
},
|
|
{
|
|
path: "blocks/sidebar-10/components/nav-main.tsx",
|
|
type: "registry:component",
|
|
},
|
|
{
|
|
path: "blocks/sidebar-10/components/nav-secondary.tsx",
|
|
type: "registry:component",
|
|
},
|
|
{
|
|
path: "blocks/sidebar-10/components/nav-workspaces.tsx",
|
|
type: "registry:component",
|
|
},
|
|
{
|
|
path: "blocks/sidebar-10/components/team-switcher.tsx",
|
|
type: "registry:component",
|
|
},
|
|
],
|
|
categories: ["sidebar", "dashboard"],
|
|
},
|
|
{
|
|
name: "sidebar-11",
|
|
description: "A sidebar with a collapsible file tree.",
|
|
type: "registry:block",
|
|
registryDependencies: ["sidebar", "breadcrumb", "separator", "collapsible"],
|
|
files: [
|
|
{
|
|
path: "blocks/sidebar-11/page.tsx",
|
|
type: "registry:page",
|
|
target: "app/dashboard/page.tsx",
|
|
},
|
|
{
|
|
path: "blocks/sidebar-11/components/app-sidebar.tsx",
|
|
type: "registry:component",
|
|
},
|
|
],
|
|
categories: ["sidebar", "dashboard"],
|
|
},
|
|
{
|
|
name: "sidebar-12",
|
|
description: "A sidebar with a calendar.",
|
|
type: "registry:block",
|
|
registryDependencies: [
|
|
"sidebar",
|
|
"breadcrumb",
|
|
"separator",
|
|
"collapsible",
|
|
"calendar",
|
|
"dropdown-menu",
|
|
"avatar",
|
|
],
|
|
files: [
|
|
{
|
|
path: "blocks/sidebar-12/page.tsx",
|
|
type: "registry:page",
|
|
target: "app/dashboard/page.tsx",
|
|
},
|
|
{
|
|
path: "blocks/sidebar-12/components/app-sidebar.tsx",
|
|
type: "registry:component",
|
|
},
|
|
{
|
|
path: "blocks/sidebar-12/components/calendars.tsx",
|
|
type: "registry:component",
|
|
},
|
|
{
|
|
path: "blocks/sidebar-12/components/date-picker.tsx",
|
|
type: "registry:component",
|
|
},
|
|
{
|
|
path: "blocks/sidebar-12/components/nav-user.tsx",
|
|
type: "registry:component",
|
|
},
|
|
],
|
|
categories: ["sidebar", "dashboard"],
|
|
},
|
|
{
|
|
name: "sidebar-13",
|
|
description: "A sidebar in a dialog.",
|
|
type: "registry:block",
|
|
registryDependencies: ["sidebar", "breadcrumb", "button", "dialog"],
|
|
files: [
|
|
{
|
|
path: "blocks/sidebar-13/page.tsx",
|
|
type: "registry:page",
|
|
target: "app/dashboard/page.tsx",
|
|
},
|
|
{
|
|
path: "blocks/sidebar-13/components/settings-dialog.tsx",
|
|
type: "registry:component",
|
|
},
|
|
],
|
|
categories: ["sidebar", "dashboard"],
|
|
},
|
|
{
|
|
name: "sidebar-14",
|
|
description: "A sidebar on the right.",
|
|
type: "registry:block",
|
|
registryDependencies: ["sidebar", "breadcrumb"],
|
|
files: [
|
|
{
|
|
path: "blocks/sidebar-14/page.tsx",
|
|
type: "registry:page",
|
|
target: "app/dashboard/page.tsx",
|
|
},
|
|
{
|
|
path: "blocks/sidebar-14/components/app-sidebar.tsx",
|
|
type: "registry:component",
|
|
},
|
|
],
|
|
categories: ["sidebar", "dashboard"],
|
|
},
|
|
{
|
|
name: "sidebar-15",
|
|
description: "A left and right sidebar.",
|
|
type: "registry:block",
|
|
registryDependencies: [
|
|
"sidebar",
|
|
"breadcrumb",
|
|
"separator",
|
|
"popover",
|
|
"collapsible",
|
|
"dropdown-menu",
|
|
"calendar",
|
|
"avatar",
|
|
],
|
|
files: [
|
|
{
|
|
path: "blocks/sidebar-15/page.tsx",
|
|
type: "registry:page",
|
|
target: "app/dashboard/page.tsx",
|
|
},
|
|
{
|
|
path: "blocks/sidebar-15/components/calendars.tsx",
|
|
type: "registry:component",
|
|
},
|
|
{
|
|
path: "blocks/sidebar-15/components/date-picker.tsx",
|
|
type: "registry:component",
|
|
},
|
|
{
|
|
path: "blocks/sidebar-15/components/nav-favorites.tsx",
|
|
type: "registry:component",
|
|
},
|
|
{
|
|
path: "blocks/sidebar-15/components/nav-main.tsx",
|
|
type: "registry:component",
|
|
},
|
|
{
|
|
path: "blocks/sidebar-15/components/nav-secondary.tsx",
|
|
type: "registry:component",
|
|
},
|
|
{
|
|
path: "blocks/sidebar-15/components/nav-user.tsx",
|
|
type: "registry:component",
|
|
},
|
|
{
|
|
path: "blocks/sidebar-15/components/nav-workspaces.tsx",
|
|
type: "registry:component",
|
|
},
|
|
{
|
|
path: "blocks/sidebar-15/components/sidebar-left.tsx",
|
|
type: "registry:component",
|
|
},
|
|
{
|
|
path: "blocks/sidebar-15/components/sidebar-right.tsx",
|
|
type: "registry:component",
|
|
},
|
|
{
|
|
path: "blocks/sidebar-15/components/team-switcher.tsx",
|
|
type: "registry:component",
|
|
},
|
|
],
|
|
categories: ["sidebar", "dashboard"],
|
|
},
|
|
{
|
|
name: "sidebar-16",
|
|
description: "A sidebar with a sticky site header.",
|
|
type: "registry:block",
|
|
registryDependencies: [
|
|
"sidebar",
|
|
"breadcrumb",
|
|
"separator",
|
|
"collapsible",
|
|
"dropdown-menu",
|
|
"avatar",
|
|
"button",
|
|
"label",
|
|
],
|
|
files: [
|
|
{
|
|
path: "blocks/sidebar-16/page.tsx",
|
|
type: "registry:page",
|
|
target: "app/dashboard/page.tsx",
|
|
},
|
|
{
|
|
path: "blocks/sidebar-16/components/app-sidebar.tsx",
|
|
type: "registry:component",
|
|
},
|
|
{
|
|
path: "blocks/sidebar-16/components/nav-main.tsx",
|
|
type: "registry:component",
|
|
},
|
|
{
|
|
path: "blocks/sidebar-16/components/nav-projects.tsx",
|
|
type: "registry:component",
|
|
},
|
|
{
|
|
path: "blocks/sidebar-16/components/nav-secondary.tsx",
|
|
type: "registry:component",
|
|
},
|
|
{
|
|
path: "blocks/sidebar-16/components/nav-user.tsx",
|
|
type: "registry:component",
|
|
},
|
|
{
|
|
path: "blocks/sidebar-16/components/search-form.tsx",
|
|
type: "registry:component",
|
|
},
|
|
{
|
|
path: "blocks/sidebar-16/components/site-header.tsx",
|
|
type: "registry:component",
|
|
},
|
|
],
|
|
categories: ["sidebar", "dashboard"],
|
|
},
|
|
{
|
|
name: "login-01",
|
|
description: "A simple login form.",
|
|
type: "registry:block",
|
|
registryDependencies: ["button", "card", "input", "label", "field"],
|
|
files: [
|
|
{
|
|
path: "blocks/login-01/page.tsx",
|
|
target: "app/login/page.tsx",
|
|
type: "registry:page",
|
|
},
|
|
{
|
|
path: "blocks/login-01/components/login-form.tsx",
|
|
type: "registry:component",
|
|
},
|
|
],
|
|
categories: ["authentication", "login"],
|
|
},
|
|
{
|
|
name: "login-02",
|
|
description: "A two column login page with a cover image.",
|
|
type: "registry:block",
|
|
registryDependencies: ["button", "input", "label", "field"],
|
|
files: [
|
|
{
|
|
path: "blocks/login-02/page.tsx",
|
|
target: "app/login/page.tsx",
|
|
type: "registry:page",
|
|
},
|
|
{
|
|
path: "blocks/login-02/components/login-form.tsx",
|
|
type: "registry:component",
|
|
},
|
|
],
|
|
categories: ["authentication", "login"],
|
|
},
|
|
{
|
|
name: "login-03",
|
|
description: "A login page with a muted background color.",
|
|
type: "registry:block",
|
|
registryDependencies: ["button", "card", "input", "label", "field"],
|
|
files: [
|
|
{
|
|
path: "blocks/login-03/page.tsx",
|
|
target: "app/login/page.tsx",
|
|
type: "registry:page",
|
|
},
|
|
{
|
|
path: "blocks/login-03/components/login-form.tsx",
|
|
type: "registry:component",
|
|
},
|
|
],
|
|
categories: ["authentication", "login"],
|
|
},
|
|
{
|
|
name: "login-04",
|
|
description: "A login page with form and image.",
|
|
type: "registry:block",
|
|
registryDependencies: ["button", "card", "input", "label", "field"],
|
|
files: [
|
|
{
|
|
path: "blocks/login-04/page.tsx",
|
|
target: "app/login/page.tsx",
|
|
type: "registry:page",
|
|
},
|
|
{
|
|
path: "blocks/login-04/components/login-form.tsx",
|
|
type: "registry:component",
|
|
},
|
|
],
|
|
categories: ["authentication", "login"],
|
|
},
|
|
{
|
|
name: "login-05",
|
|
description: "A simple email-only login page.",
|
|
type: "registry:block",
|
|
registryDependencies: ["button", "input", "label", "field"],
|
|
files: [
|
|
{
|
|
path: "blocks/login-05/page.tsx",
|
|
target: "app/login/page.tsx",
|
|
type: "registry:page",
|
|
},
|
|
{
|
|
path: "blocks/login-05/components/login-form.tsx",
|
|
type: "registry:component",
|
|
},
|
|
],
|
|
categories: ["authentication", "login"],
|
|
},
|
|
{
|
|
name: "signup-01",
|
|
description: "A simple signup form.",
|
|
type: "registry:block",
|
|
registryDependencies: ["button", "card", "input", "label"],
|
|
files: [
|
|
{
|
|
path: "blocks/signup-01/page.tsx",
|
|
target: "app/signup/page.tsx",
|
|
type: "registry:page",
|
|
},
|
|
{
|
|
path: "blocks/signup-01/components/signup-form.tsx",
|
|
type: "registry:component",
|
|
},
|
|
],
|
|
categories: ["authentication", "signup"],
|
|
},
|
|
{
|
|
name: "signup-02",
|
|
description: "A two column signup page with a cover image.",
|
|
type: "registry:block",
|
|
registryDependencies: ["button", "input", "label", "field"],
|
|
files: [
|
|
{
|
|
path: "blocks/signup-02/page.tsx",
|
|
target: "app/signup/page.tsx",
|
|
type: "registry:page",
|
|
},
|
|
{
|
|
path: "blocks/signup-02/components/signup-form.tsx",
|
|
type: "registry:component",
|
|
},
|
|
],
|
|
categories: ["authentication", "signup"],
|
|
},
|
|
{
|
|
name: "signup-03",
|
|
description: "A signup page with a muted background color.",
|
|
type: "registry:block",
|
|
registryDependencies: ["button", "card", "input", "label", "field"],
|
|
files: [
|
|
{
|
|
path: "blocks/signup-03/page.tsx",
|
|
target: "app/signup/page.tsx",
|
|
type: "registry:page",
|
|
},
|
|
{
|
|
path: "blocks/signup-03/components/signup-form.tsx",
|
|
type: "registry:component",
|
|
},
|
|
],
|
|
categories: ["authentication", "signup"],
|
|
},
|
|
{
|
|
name: "signup-04",
|
|
description: "A signup page with form and image.",
|
|
type: "registry:block",
|
|
registryDependencies: ["button", "card", "input", "label", "field"],
|
|
files: [
|
|
{
|
|
path: "blocks/signup-04/page.tsx",
|
|
target: "app/signup/page.tsx",
|
|
type: "registry:page",
|
|
},
|
|
{
|
|
path: "blocks/signup-04/components/signup-form.tsx",
|
|
type: "registry:component",
|
|
},
|
|
],
|
|
categories: ["authentication", "signup"],
|
|
},
|
|
{
|
|
name: "signup-05",
|
|
description: "A simple signup form with social providers.",
|
|
type: "registry:block",
|
|
registryDependencies: ["button", "input", "label"],
|
|
files: [
|
|
{
|
|
path: "blocks/signup-05/page.tsx",
|
|
target: "app/signup/page.tsx",
|
|
type: "registry:page",
|
|
},
|
|
{
|
|
path: "blocks/signup-05/components/signup-form.tsx",
|
|
type: "registry:component",
|
|
},
|
|
],
|
|
categories: ["authentication", "signup"],
|
|
},
|
|
]
|