Files
zeekay 3e6252864b feat: v0.2.0 - Page Builder, Shiki Syntax Highlighting, and New Blocks
Major Features:
- Visual Page Builder with drag-and-drop interface
- Shiki syntax highlighting integration via Fumadocs
- 10 new blocks (5 newsletter variants + blog/photo/showcase blocks)
- AI Voice Settings component
- Comprehensive AI documentation

Page Builder Features:
- Filterable block library with 1/4 scale previews
- Drag-to-reorder blocks in canvas
- Viewport controls (Desktop/Tablet/Mobile)
- Export to React TSX, copy code, download file
- Deploy with Hanzo integration
- Real-time block rendering with dynamic imports

Syntax Highlighting:
- GitHub Light/Dark themes for automatic mode support
- Multi-color syntax highlighting
- Copy-to-clipboard, line numbers, line highlighting
- Zero client-side JavaScript (static HTML)

New Blocks:
- newsletter-01 through newsletter-05 (5 variants)
- blog-cards-01 (Modern blog post card layout)
- photo-grid-01 (Responsive photo gallery)
- showcase-marketing-01, showcase-ecommerce-01, showcase-app-ui-01

New Components:
- ai-voice-settings (Voice configuration interface)

New Documentation:
- AI Actions, Agents, Assistant, Code, Models, Vision, Voice guides
- Newsletter blocks documentation

Bug Fixes:
- Fixed block display registry access pattern
- Stubbed billing-dependent blocks with instructions
- Replaced iframe previews with direct component rendering
- Eliminated 404 errors in block previews

Technical Improvements:
- Enhanced MDX configuration with Shiki rehype plugin
- Integrated Fumadocs CodeBlock wrapper
- Improved registry build error handling
- Updated component props for better type safety

CI/CD:
- Added automatic npm publishing on tag creation
- Tests must pass before publishing
- Automatic GitHub release creation
- Documentation deployment to GitHub Pages

CHANGELOG:
- Created comprehensive CHANGELOG.md with v0.2.0 release notes
2025-11-04 08:40:36 -08:00

698 lines
17 KiB
TypeScript

import { Registry } from "@/registry/schema"
export const blocks: Registry = [
{
name: "newsletter-01",
type: "components:block",
registryDependencies: ["button", "card", "input"],
files: ["block/newsletter-01.tsx"],
category: "Marketing",
subcategory: "Newsletter",
},
{
name: "newsletter-02",
type: "components:block",
registryDependencies: ["button", "input"],
files: ["block/newsletter-02.tsx"],
category: "Marketing",
subcategory: "Newsletter",
},
{
name: "newsletter-03",
type: "components:block",
registryDependencies: ["button", "card", "input"],
files: ["block/newsletter-03.tsx"],
category: "Marketing",
subcategory: "Newsletter",
},
{
name: "newsletter-04",
type: "components:block",
registryDependencies: ["button", "input"],
files: ["block/newsletter-04.tsx"],
category: "Marketing",
subcategory: "Newsletter",
},
{
name: "newsletter-05",
type: "components:block",
registryDependencies: ["button", "input"],
files: ["block/newsletter-05.tsx"],
category: "Marketing",
subcategory: "Newsletter",
},
{
name: "dashboard-05",
type: "components:block",
registryDependencies: [
"badge",
"breadcrumb",
"button",
"card",
"dropdown-menu",
"input",
"pagination",
"progress",
"separator",
"sheet",
"table",
"tabs",
"tooltip",
],
files: ["block/dashboard-05.tsx"],
category: "Application",
subcategory: "Dashboard",
},
{
name: "dashboard-06",
type: "components:block",
registryDependencies: [
"badge",
"breadcrumb",
"button",
"card",
"dropdown-menu",
"input",
"sheet",
"table",
"tabs",
"tooltip",
],
files: ["block/dashboard-06.tsx"],
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: ["block/dashboard-07.tsx"],
category: "Application",
subcategory: "Dashboard",
},
{
name: "dashboard-04",
type: "components:block",
registryDependencies: ["button", "card", "dropdown-menu", "input"],
files: ["block/dashboard-04.tsx"],
category: "Application",
subcategory: "Dashboard",
},
{
name: "dashboard-03",
type: "components:block",
registryDependencies: [
"badge",
"button",
"drawer",
"input",
"label",
"select",
"textarea",
"tooltip",
],
files: ["block/dashboard-03.tsx"],
category: "Application",
subcategory: "Dashboard",
},
{
name: "dashboard-02",
type: "components:block",
registryDependencies: ["badge", "button", "card", "dropdown-menu", "input"],
files: ["block/dashboard-02.tsx"],
category: "Application",
subcategory: "Dashboard",
},
{
name: "dashboard-01",
type: "components:block",
registryDependencies: ["button", "dropdown-menu", "input", "sheet"],
files: ["block/dashboard-01.tsx"],
category: "Application",
subcategory: "Dashboard",
},
{
name: "authentication-01",
type: "components:block",
registryDependencies: ["button", "card", "input", "label"],
files: ["block/authentication-01.tsx"],
category: "Authentication",
subcategory: "Login",
},
{
name: "authentication-02",
type: "components:block",
registryDependencies: ["button", "card", "input", "label"],
files: ["block/authentication-02.tsx"],
category: "Authentication",
subcategory: "Login",
},
{
name: "authentication-03",
type: "components:block",
registryDependencies: ["button", "card", "input", "label"],
files: ["block/authentication-03.tsx"],
category: "Authentication",
subcategory: "Login",
},
{
name: "authentication-04",
type: "components:block",
registryDependencies: ["button", "card", "input", "label"],
files: ["block/authentication-04.tsx"],
category: "Authentication",
subcategory: "Login",
},
{
name: "pricing-01",
type: "components:block",
registryDependencies: ["badge", "button", "card"],
files: ["block/pricing-01.tsx"],
category: "Marketing",
subcategory: "Pricing",
},
// Sidebar blocks
{
name: "sidebar-01",
type: "components:block",
registryDependencies: ["sidebar", "breadcrumb", "separator"],
files: ["block/sidebar-01.tsx"],
category: "Application",
subcategory: "Sidebar",
},
{
name: "sidebar-02",
type: "components:block",
registryDependencies: ["sidebar", "breadcrumb", "separator"],
files: ["block/sidebar-02.tsx"],
category: "Application",
subcategory: "Sidebar",
},
{
name: "sidebar-03",
type: "components:block",
registryDependencies: ["sidebar", "breadcrumb", "separator"],
files: ["block/sidebar-03.tsx"],
category: "Application",
subcategory: "Sidebar",
},
{
name: "sidebar-04",
type: "components:block",
registryDependencies: ["sidebar", "breadcrumb", "separator"],
files: ["block/sidebar-04.tsx"],
category: "Application",
subcategory: "Sidebar",
},
{
name: "sidebar-05",
type: "components:block",
registryDependencies: ["sidebar", "breadcrumb", "separator"],
files: ["block/sidebar-05.tsx"],
category: "Application",
subcategory: "Sidebar",
},
{
name: "sidebar-06",
type: "components:block",
registryDependencies: ["sidebar", "breadcrumb", "separator"],
files: ["block/sidebar-06.tsx"],
category: "Application",
subcategory: "Sidebar",
},
{
name: "sidebar-07",
type: "components:block",
registryDependencies: ["sidebar", "breadcrumb", "separator"],
files: ["block/sidebar-07.tsx"],
category: "Application",
subcategory: "Sidebar",
},
{
name: "sidebar-08",
type: "components:block",
registryDependencies: ["sidebar", "breadcrumb", "separator"],
files: ["block/sidebar-08.tsx"],
category: "Application",
subcategory: "Sidebar",
},
{
name: "sidebar-09",
type: "components:block",
registryDependencies: ["sidebar", "breadcrumb", "separator"],
files: ["block/sidebar-09.tsx"],
category: "Application",
subcategory: "Sidebar",
},
{
name: "sidebar-10",
type: "components:block",
registryDependencies: ["sidebar", "breadcrumb", "separator"],
files: ["block/sidebar-10.tsx"],
category: "Application",
subcategory: "Sidebar",
},
{
name: "sidebar-11",
type: "components:block",
registryDependencies: ["sidebar", "breadcrumb", "separator"],
files: ["block/sidebar-11.tsx"],
category: "Application",
subcategory: "Sidebar",
},
{
name: "sidebar-12",
type: "components:block",
registryDependencies: ["sidebar", "breadcrumb", "separator"],
files: ["block/sidebar-12.tsx"],
category: "Application",
subcategory: "Sidebar",
},
{
name: "sidebar-13",
type: "components:block",
registryDependencies: ["sidebar", "breadcrumb", "separator"],
files: ["block/sidebar-13.tsx"],
category: "Application",
subcategory: "Sidebar",
},
{
name: "sidebar-14",
type: "components:block",
registryDependencies: ["sidebar", "breadcrumb", "separator"],
files: ["block/sidebar-14.tsx"],
category: "Application",
subcategory: "Sidebar",
},
{
name: "sidebar-15",
type: "components:block",
registryDependencies: ["sidebar", "breadcrumb", "separator"],
files: ["block/sidebar-15.tsx"],
category: "Application",
subcategory: "Sidebar",
},
{
name: "sidebar-16",
type: "components:block",
registryDependencies: ["sidebar", "breadcrumb", "separator"],
files: ["block/sidebar-16.tsx"],
category: "Application",
subcategory: "Sidebar",
},
// Calendar blocks
{
name: "calendar-01",
type: "components:block",
registryDependencies: ["calendar"],
files: ["block/calendar-01.tsx"],
category: "Application",
subcategory: "Calendar",
},
{
name: "calendar-02",
type: "components:block",
registryDependencies: ["calendar"],
files: ["block/calendar-02.tsx"],
category: "Application",
subcategory: "Calendar",
},
{
name: "calendar-03",
type: "components:block",
registryDependencies: ["calendar"],
files: ["block/calendar-03.tsx"],
category: "Application",
subcategory: "Calendar",
},
{
name: "calendar-04",
type: "components:block",
registryDependencies: ["calendar"],
files: ["block/calendar-04.tsx"],
category: "Application",
subcategory: "Calendar",
},
{
name: "calendar-05",
type: "components:block",
registryDependencies: ["calendar"],
files: ["block/calendar-05.tsx"],
category: "Application",
subcategory: "Calendar",
},
{
name: "calendar-06",
type: "components:block",
registryDependencies: ["calendar"],
files: ["block/calendar-06.tsx"],
category: "Application",
subcategory: "Calendar",
},
{
name: "calendar-07",
type: "components:block",
registryDependencies: ["calendar"],
files: ["block/calendar-07.tsx"],
category: "Application",
subcategory: "Calendar",
},
{
name: "calendar-08",
type: "components:block",
registryDependencies: ["calendar"],
files: ["block/calendar-08.tsx"],
category: "Application",
subcategory: "Calendar",
},
{
name: "calendar-09",
type: "components:block",
registryDependencies: ["calendar"],
files: ["block/calendar-09.tsx"],
category: "Application",
subcategory: "Calendar",
},
{
name: "calendar-10",
type: "components:block",
registryDependencies: ["calendar"],
files: ["block/calendar-10.tsx"],
category: "Application",
subcategory: "Calendar",
},
{
name: "calendar-11",
type: "components:block",
registryDependencies: ["calendar"],
files: ["block/calendar-11.tsx"],
category: "Application",
subcategory: "Calendar",
},
{
name: "calendar-12",
type: "components:block",
registryDependencies: ["calendar"],
files: ["block/calendar-12.tsx"],
category: "Application",
subcategory: "Calendar",
},
{
name: "calendar-13",
type: "components:block",
registryDependencies: ["calendar"],
files: ["block/calendar-13.tsx"],
category: "Application",
subcategory: "Calendar",
},
{
name: "calendar-14",
type: "components:block",
registryDependencies: ["calendar"],
files: ["block/calendar-14.tsx"],
category: "Application",
subcategory: "Calendar",
},
{
name: "calendar-15",
type: "components:block",
registryDependencies: ["calendar"],
files: ["block/calendar-15.tsx"],
category: "Application",
subcategory: "Calendar",
},
{
name: "calendar-16",
type: "components:block",
registryDependencies: ["calendar"],
files: ["block/calendar-16.tsx"],
category: "Application",
subcategory: "Calendar",
},
{
name: "calendar-17",
type: "components:block",
registryDependencies: ["calendar"],
files: ["block/calendar-17.tsx"],
category: "Application",
subcategory: "Calendar",
},
{
name: "calendar-18",
type: "components:block",
registryDependencies: ["calendar"],
files: ["block/calendar-18.tsx"],
category: "Application",
subcategory: "Calendar",
},
{
name: "calendar-19",
type: "components:block",
registryDependencies: ["calendar"],
files: ["block/calendar-19.tsx"],
category: "Application",
subcategory: "Calendar",
},
{
name: "calendar-20",
type: "components:block",
registryDependencies: ["calendar"],
files: ["block/calendar-20.tsx"],
category: "Application",
subcategory: "Calendar",
},
{
name: "calendar-21",
type: "components:block",
registryDependencies: ["calendar"],
files: ["block/calendar-21.tsx"],
category: "Application",
subcategory: "Calendar",
},
{
name: "calendar-22",
type: "components:block",
registryDependencies: ["calendar"],
files: ["block/calendar-22.tsx"],
category: "Application",
subcategory: "Calendar",
},
{
name: "calendar-23",
type: "components:block",
registryDependencies: ["calendar"],
files: ["block/calendar-23.tsx"],
category: "Application",
subcategory: "Calendar",
},
{
name: "calendar-24",
type: "components:block",
registryDependencies: ["calendar"],
files: ["block/calendar-24.tsx"],
category: "Application",
subcategory: "Calendar",
},
{
name: "calendar-25",
type: "components:block",
registryDependencies: ["calendar"],
files: ["block/calendar-25.tsx"],
category: "Application",
subcategory: "Calendar",
},
{
name: "calendar-26",
type: "components:block",
registryDependencies: ["calendar"],
files: ["block/calendar-26.tsx"],
category: "Application",
subcategory: "Calendar",
},
{
name: "calendar-27",
type: "components:block",
registryDependencies: ["calendar"],
files: ["block/calendar-27.tsx"],
category: "Application",
subcategory: "Calendar",
},
{
name: "calendar-28",
type: "components:block",
registryDependencies: ["calendar"],
files: ["block/calendar-28.tsx"],
category: "Application",
subcategory: "Calendar",
},
{
name: "calendar-29",
type: "components:block",
registryDependencies: ["calendar"],
files: ["block/calendar-29.tsx"],
category: "Application",
subcategory: "Calendar",
},
{
name: "calendar-30",
type: "components:block",
registryDependencies: ["calendar"],
files: ["block/calendar-30.tsx"],
category: "Application",
subcategory: "Calendar",
},
{
name: "calendar-31",
type: "components:block",
registryDependencies: ["calendar"],
files: ["block/calendar-31.tsx"],
category: "Application",
subcategory: "Calendar",
},
{
name: "calendar-32",
type: "components:block",
registryDependencies: ["calendar"],
files: ["block/calendar-32.tsx"],
category: "Application",
subcategory: "Calendar",
},
// Login blocks
{
name: "login-01",
type: "components:block",
registryDependencies: ["button", "card", "input", "label"],
files: ["block/login-01.tsx"],
category: "Authentication",
subcategory: "Login",
},
{
name: "login-02",
type: "components:block",
registryDependencies: ["button", "card", "input", "label"],
files: ["block/login-02.tsx"],
category: "Authentication",
subcategory: "Login",
},
{
name: "login-03",
type: "components:block",
registryDependencies: ["button", "card", "input", "label"],
files: ["block/login-03.tsx"],
category: "Authentication",
subcategory: "Login",
},
{
name: "login-04",
type: "components:block",
registryDependencies: ["button", "card", "input", "label"],
files: ["block/login-04.tsx"],
category: "Authentication",
subcategory: "Login",
},
{
name: "login-05",
type: "components:block",
registryDependencies: ["button", "card", "input", "label"],
files: ["block/login-05.tsx"],
category: "Authentication",
subcategory: "Login",
},
// Signup blocks
{
name: "signup-01",
type: "components:block",
registryDependencies: ["button", "card", "input", "label"],
files: ["block/signup-01.tsx"],
category: "Authentication",
subcategory: "Signup",
},
{
name: "signup-02",
type: "components:block",
registryDependencies: ["button", "card", "input", "label"],
files: ["block/signup-02.tsx"],
category: "Authentication",
subcategory: "Signup",
},
{
name: "signup-03",
type: "components:block",
registryDependencies: ["button", "card", "input", "label"],
files: ["block/signup-03.tsx"],
category: "Authentication",
subcategory: "Signup",
},
{
name: "signup-04",
type: "components:block",
registryDependencies: ["button", "card", "input", "label"],
files: ["block/signup-04.tsx"],
category: "Authentication",
subcategory: "Signup",
},
{
name: "signup-05",
type: "components:block",
registryDependencies: ["button", "card", "input", "label"],
files: ["block/signup-05.tsx"],
category: "Authentication",
subcategory: "Signup",
},
// OTP blocks
{
name: "otp-01",
type: "components:block",
registryDependencies: ["button", "card", "input", "label"],
files: ["block/otp-01.tsx"],
category: "Authentication",
subcategory: "OTP",
},
{
name: "otp-02",
type: "components:block",
registryDependencies: ["button", "card", "input", "label"],
files: ["block/otp-02.tsx"],
category: "Authentication",
subcategory: "OTP",
},
{
name: "otp-03",
type: "components:block",
registryDependencies: ["button", "card", "input", "label"],
files: ["block/otp-03.tsx"],
category: "Authentication",
subcategory: "OTP",
},
{
name: "otp-04",
type: "components:block",
registryDependencies: ["button", "card", "input", "label"],
files: ["block/otp-04.tsx"],
category: "Authentication",
subcategory: "OTP",
},
{
name: "otp-05",
type: "components:block",
registryDependencies: ["button", "card", "input", "label"],
files: ["block/otp-05.tsx"],
category: "Authentication",
subcategory: "OTP",
},
]