{"$schema":"https://ui.shadcn.com/schema/registry.json","name":"lib","homepage":"http://localhost:3000","items":[{"name":"kpi","title":"KPI","description":"A key number that animates when it changes, with a colored change (good or bad news), a sparkline and an optional goal. KpiGroup joins several into one strip.","dependencies":["lucide-react"],"registryDependencies":["@lib/sparkline","progress"],"files":[{"path":"src/registry/default/components/kpi.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["dashboard"],"type":"registry:component"},{"name":"stat-card","title":"Stat card","description":"A KPI with its trend against the previous period.","dependencies":["lucide-react"],"registryDependencies":["badge","card"],"files":[{"path":"src/registry/default/components/stat-card.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["dashboard"],"type":"registry:component"},{"name":"stat-strip","title":"Stat strip","description":"A joined row of KPIs split by hairlines, each with its trend and a small line chart.","dependencies":["lucide-react"],"files":[{"path":"src/registry/default/components/stat-strip.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["dashboard"],"type":"registry:component"},{"name":"chart-card","title":"Chart card","description":"A metric's latest value with its area chart over time.","dependencies":["recharts"],"registryDependencies":["card","chart"],"files":[{"path":"src/registry/default/components/chart-card.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["dashboard"],"type":"registry:component"},{"name":"data-table","title":"Data table","description":"Search, sorting, column visibility and pagination, built on TanStack Table v9.","dependencies":["@tanstack/react-table@^9","lucide-react"],"registryDependencies":["button","dropdown-menu","input-group","table"],"files":[{"path":"src/registry/default/components/data-table.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["dashboard"],"type":"registry:component"},{"name":"activity-feed","title":"Activity feed","description":"Recent events by teammates or customers, with relative times.","registryDependencies":["avatar","item"],"files":[{"path":"src/registry/default/components/activity-feed.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["dashboard"],"type":"registry:component"},{"name":"usage-meter","title":"Usage meter","description":"Plan usage against limits, flagged when close to the limit.","registryDependencies":["badge","card","progress"],"files":[{"path":"src/registry/default/components/usage-meter.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["dashboard","billing"],"type":"registry:component"},{"name":"nav-main","title":"Nav main","description":"Sidebar navigation with icons, badges and collapsible sub-items.","dependencies":["lucide-react"],"registryDependencies":["collapsible","sidebar"],"files":[{"path":"src/registry/default/components/nav-main.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["app-shell"],"type":"registry:component"},{"name":"nav-user","title":"Nav user","description":"Sidebar footer with the signed-in user and an account menu.","dependencies":["lucide-react"],"registryDependencies":["avatar","dropdown-menu","sidebar"],"files":[{"path":"src/registry/default/components/nav-user.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["app-shell"],"type":"registry:component"},{"name":"workspace-switcher","title":"Workspace switcher","description":"Sidebar menu to switch between workspaces or teams.","dependencies":["lucide-react"],"registryDependencies":["dropdown-menu","sidebar"],"files":[{"path":"src/registry/default/components/workspace-switcher.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["app-shell"],"type":"registry:component"},{"name":"search-command","title":"Search command","description":"Search button that opens a command palette, also with Cmd+K.","dependencies":["lucide-react"],"registryDependencies":["button","command","kbd"],"files":[{"path":"src/registry/default/components/search-command.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["app-shell"],"type":"registry:component"},{"name":"progress-list","title":"Progress list","description":"A ranked list of values with bars, for top pages, categories or budgets.","registryDependencies":["progress"],"files":[{"path":"src/registry/default/components/progress-list.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["dashboard"],"type":"registry:component"},{"name":"sparkline","title":"Sparkline","description":"A tiny trend chart to put next to a number.","dependencies":["recharts"],"registryDependencies":["chart"],"files":[{"path":"src/registry/default/components/sparkline.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["dashboard"],"type":"registry:component"},{"name":"theme-toggle","title":"Theme toggle","description":"Light, dark or system theme menu, built on next-themes.","dependencies":["lucide-react","next-themes"],"registryDependencies":["button","dropdown-menu"],"files":[{"path":"src/registry/default/components/theme-toggle.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["app-shell"],"type":"registry:component"},{"name":"oauth-buttons","title":"OAuth buttons","description":"Continue with Google or GitHub buttons, with brand icons.","dependencies":["simple-icons"],"registryDependencies":["@lib/brand-logo","button"],"files":[{"path":"src/registry/default/components/oauth-buttons.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["auth"],"type":"registry:component"},{"name":"brand-logo","title":"Brand logo","description":"Logos of 3,000+ brands from Simple Icons, in brand color or monochrome.","dependencies":["simple-icons"],"files":[{"path":"src/registry/default/components/brand-logo.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["marketing"],"type":"registry:component"},{"name":"reveal","title":"Reveal","description":"Entrance animations without JavaScript: fade and rise on scroll (CSS scroll-driven) or once on load. Still for reduced motion.","dependencies":["radix-ui"],"files":[{"path":"src/registry/default/components/reveal.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["marketing"],"type":"registry:component"},{"name":"section-frame","title":"Section frame","description":"Blueprint-style guide lines and plus marks around a section or box.","registryDependencies":["@lib/reveal"],"files":[{"path":"src/registry/default/components/section-frame.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["marketing"],"type":"registry:component"},{"name":"grid-pattern","title":"Grid pattern","description":"A fading grid or dot background that follows your theme.","files":[{"path":"src/registry/default/components/grid-pattern.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["marketing"],"type":"registry:component"},{"name":"marquee","title":"Marquee","description":"An endless scrolling row or column that pauses on hover.","files":[{"path":"src/registry/default/components/marquee.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["marketing"],"type":"registry:component"},{"name":"browser-frame","title":"Browser Frame","description":"A browser window with traffic lights and an address bar, for product screenshots and mockups.","dependencies":["lucide-react"],"files":[{"path":"src/registry/default/components/browser-frame.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["marketing"],"type":"registry:component"},{"name":"people","title":"People","description":"Demo people with portrait photos, and an avatarFor helper that finds one by name or initials.","files":[{"path":"src/registry/default/components/people.ts","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["marketing","app"],"type":"registry:component"},{"name":"mobile-nav","title":"Mobile nav","description":"The menu button and slide-in panel that replace header links on small screens.","dependencies":["lucide-react"],"registryDependencies":["button","sheet"],"files":[{"path":"src/registry/default/components/mobile-nav.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["marketing"],"type":"registry:component"},{"name":"app-shell-01","title":"App shell 01: Sidebar with breadcrumb header","description":"A collapsible sidebar with grouped navigation, user menu and a breadcrumb header.","dependencies":["lucide-react"],"registryDependencies":["@lib/nav-main","@lib/nav-user","@lib/people","breadcrumb","separator","sidebar","skeleton"],"files":[{"path":"src/registry/default/blocks/app-shell/app-shell-01/app-shell-01.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["app","app-shell"],"type":"registry:block"},{"name":"app-shell-02","title":"App shell 02: Inset sidebar","description":"The page sits in an inset panel next to the sidebar, with secondary links at the bottom.","dependencies":["lucide-react"],"registryDependencies":["@lib/nav-main","@lib/nav-user","@lib/people","breadcrumb","separator","sidebar","skeleton"],"files":[{"path":"src/registry/default/blocks/app-shell/app-shell-02/app-shell-02.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["app","app-shell"],"type":"registry:block"},{"name":"app-shell-03","title":"App shell 03: Icon sidebar","description":"A sidebar that collapses to icons with tooltips, and a header with page actions.","dependencies":["lucide-react"],"registryDependencies":["@lib/nav-main","@lib/nav-user","@lib/people","button","separator","sidebar","skeleton"],"files":[{"path":"src/registry/default/blocks/app-shell/app-shell-03/app-shell-03.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["app","app-shell"],"type":"registry:block"},{"name":"app-shell-04","title":"App shell 04: Floating sidebar","description":"A floating sidebar with search and a trial card, and a header with notifications.","dependencies":["lucide-react"],"registryDependencies":["@lib/nav-main","@lib/people","avatar","button","sidebar","skeleton"],"files":[{"path":"src/registry/default/blocks/app-shell/app-shell-04/app-shell-04.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["app","app-shell"],"type":"registry:block"},{"name":"app-shell-05","title":"App shell 05: Header above sidebar","description":"A full-width header with search and account, above the sidebar.","dependencies":["lucide-react"],"registryDependencies":["@lib/nav-main","@lib/people","@lib/search-command","avatar","separator","sidebar","skeleton"],"files":[{"path":"src/registry/default/blocks/app-shell/app-shell-05/app-shell-05.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["app","app-shell"],"type":"registry:block"},{"name":"app-shell-06","title":"App shell 06: Workspace sidebar","description":"Workspace switcher, projects with actions, and a plan usage card in the footer.","dependencies":["lucide-react"],"registryDependencies":["@lib/nav-main","@lib/nav-user","@lib/people","@lib/workspace-switcher","breadcrumb","button","dropdown-menu","progress","separator","sidebar","skeleton"],"files":[{"path":"src/registry/default/blocks/app-shell/app-shell-06/app-shell-06.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["app","app-shell"],"type":"registry:block"},{"name":"app-shell-07","title":"App shell 07: Sidebar with command search","description":"Command palette in the sidebar, nav badges and a notifications menu.","dependencies":["lucide-react"],"registryDependencies":["@lib/nav-main","@lib/nav-user","@lib/people","@lib/search-command","badge","button","dropdown-menu","sidebar","skeleton"],"files":[{"path":"src/registry/default/blocks/app-shell/app-shell-07/app-shell-07.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["app","app-shell"],"type":"registry:block"},{"name":"app-shell-08","title":"App shell 08: Icon rail with list panel","description":"An icon rail next to a list panel, like a mail or support inbox.","dependencies":["lucide-react"],"registryDependencies":["label","sidebar","skeleton","switch"],"files":[{"path":"src/registry/default/blocks/app-shell/app-shell-08/app-shell-08.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["app","app-shell"],"type":"registry:block"},{"name":"app-shell-09","title":"App shell 09: Sidebar with details panel","description":"A left navigation sidebar and a right panel with details and recent activity.","dependencies":["lucide-react"],"registryDependencies":["@lib/activity-feed","@lib/nav-main","@lib/nav-user","@lib/people","separator","sidebar","skeleton"],"files":[{"path":"src/registry/default/blocks/app-shell/app-shell-09/app-shell-09.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["app","app-shell"],"type":"registry:block"},{"name":"app-shell-10","title":"App shell 10: Top navigation","description":"No sidebar: top navigation with section tabs, search, and a sheet menu on mobile.","dependencies":["lucide-react"],"registryDependencies":["@lib/people","@lib/search-command","avatar","button","dropdown-menu","sheet","skeleton"],"files":[{"path":"src/registry/default/blocks/app-shell/app-shell-10/app-shell-10.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["app","app-shell"],"type":"registry:block"},{"name":"hero-01","title":"Hero 01: Split with product visual","description":"Framed split hero with a product window beside the headline.","dependencies":["lucide-react"],"registryDependencies":["@lib/browser-frame","@lib/reveal","@lib/section-frame","button"],"files":[{"path":"src/registry/default/blocks/hero/hero-01/hero-01.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["marketing","hero"],"type":"registry:block"},{"name":"hero-02","title":"Hero 02: Centered with app preview","description":"Announcement pill, soft glow, a live-looking app window and real customer logos.","dependencies":["lucide-react","simple-icons"],"registryDependencies":["@lib/brand-logo","@lib/browser-frame","@lib/grid-pattern","button"],"files":[{"path":"src/registry/default/blocks/hero/hero-02/hero-02.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["marketing","hero"],"type":"registry:block"},{"name":"hero-03","title":"Hero 03: Email capture","description":"Email sign up inline on a dotted grid, with avatars and rating.","dependencies":["lucide-react"],"registryDependencies":["@lib/grid-pattern","@lib/people","@lib/section-frame","avatar","input-group"],"files":[{"path":"src/registry/default/blocks/hero/hero-03/hero-03.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["marketing","hero"],"type":"registry:block"},{"name":"hero-04","title":"Hero 04: Developer with code","description":"API-first pitch next to a tabbed, copyable code window.","dependencies":["lucide-react"],"registryDependencies":["@lib/grid-pattern","button"],"files":[{"path":"src/registry/default/blocks/hero/hero-04/hero-04.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["marketing","hero"],"type":"registry:block"},{"name":"hero-05","title":"Hero 05: With stats","description":"Framed centered hero with a joined strip of key numbers.","dependencies":["lucide-react"],"registryDependencies":["@lib/grid-pattern","@lib/reveal","@lib/section-frame","button"],"files":[{"path":"src/registry/default/blocks/hero/hero-05/hero-05.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["marketing","hero"],"type":"registry:block"},{"name":"hero-06","title":"Hero 06: Tilted product","description":"Big headline over a grid, and an app shell in perspective.","dependencies":["lucide-react"],"registryDependencies":["@lib/grid-pattern","button"],"files":[{"path":"src/registry/default/blocks/hero/hero-06/hero-06.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["marketing","hero"],"type":"registry:block"},{"name":"hero-07","title":"Hero 07: Rotating word","description":"A framed headline where one word cycles through audiences.","dependencies":["lucide-react"],"registryDependencies":["@lib/grid-pattern","@lib/reveal","@lib/section-frame","button"],"files":[{"path":"src/registry/default/blocks/hero/hero-07/hero-07.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["marketing","hero"],"type":"registry:block"},{"name":"hero-08","title":"Hero 08: Video preview","description":"Product video in a browser window, with chapters, that opens in a dialog.","dependencies":["lucide-react"],"registryDependencies":["@lib/browser-frame","@lib/grid-pattern","button","dialog"],"files":[{"path":"src/registry/default/blocks/hero/hero-08/hero-08.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["marketing","hero"],"type":"registry:block"},{"name":"hero-09","title":"Hero 09: Review and logo marquee","description":"Review pill, headline and a scrolling row of real customer logos.","dependencies":["lucide-react","simple-icons"],"registryDependencies":["@lib/brand-logo","@lib/marquee","@lib/people","@lib/reveal","@lib/section-frame","avatar","button"],"files":[{"path":"src/registry/default/blocks/hero/hero-09/hero-09.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["marketing","hero"],"type":"registry:block"},{"name":"hero-10","title":"Hero 10: Live setup","description":"Headline next to an animated sync log with progress and data sources.","dependencies":["lucide-react","simple-icons"],"registryDependencies":["@lib/brand-logo","@lib/grid-pattern","button","spinner"],"files":[{"path":"src/registry/default/blocks/hero/hero-10/hero-10.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["marketing","hero"],"type":"registry:block"},{"name":"logo-cloud-01","title":"Logo cloud 01: Framed row","description":"Brand logos with names between two framed rules.","dependencies":["simple-icons"],"registryDependencies":["@lib/brand-logo","@lib/reveal","@lib/section-frame"],"files":[{"path":"src/registry/default/blocks/logo-cloud/logo-cloud-01/logo-cloud-01.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["marketing","logo-cloud"],"type":"registry:block"},{"name":"logo-cloud-02","title":"Logo cloud 02: Joined grid","description":"Logos in joined cells with plus corners and a hover state.","dependencies":["simple-icons"],"registryDependencies":["@lib/brand-logo","@lib/reveal","@lib/section-frame"],"files":[{"path":"src/registry/default/blocks/logo-cloud/logo-cloud-02/logo-cloud-02.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["marketing","logo-cloud"],"type":"registry:block"},{"name":"logo-cloud-03","title":"Logo cloud 03: Marquee","description":"An endless row of brand logos that pauses on hover.","dependencies":["simple-icons"],"registryDependencies":["@lib/brand-logo","@lib/marquee","@lib/reveal"],"files":[{"path":"src/registry/default/blocks/logo-cloud/logo-cloud-03/logo-cloud-03.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["marketing","logo-cloud"],"type":"registry:block"},{"name":"logo-cloud-04","title":"Logo cloud 04: Stat and grid","description":"A headline number next to a grid of logos.","dependencies":["simple-icons"],"registryDependencies":["@lib/brand-logo","@lib/reveal"],"files":[{"path":"src/registry/default/blocks/logo-cloud/logo-cloud-04/logo-cloud-04.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["marketing","logo-cloud"],"type":"registry:block"},{"name":"logo-cloud-05","title":"Logo cloud 05: With results","description":"Each customer logo with the result they got.","dependencies":["simple-icons"],"registryDependencies":["@lib/brand-logo","@lib/reveal","@lib/section-frame"],"files":[{"path":"src/registry/default/blocks/logo-cloud/logo-cloud-05/logo-cloud-05.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["marketing","logo-cloud"],"type":"registry:block"},{"name":"logo-cloud-06","title":"Logo cloud 06: Double marquee","description":"Two rows of logo tiles scrolling in opposite directions.","dependencies":["simple-icons"],"registryDependencies":["@lib/brand-logo","@lib/grid-pattern","@lib/marquee","@lib/reveal"],"files":[{"path":"src/registry/default/blocks/logo-cloud/logo-cloud-06/logo-cloud-06.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["marketing","logo-cloud"],"type":"registry:block"},{"name":"logo-cloud-07","title":"Logo cloud 07: Hover to story","description":"Logo cells that reveal the customer result on hover or focus.","dependencies":["lucide-react","simple-icons"],"registryDependencies":["@lib/brand-logo","@lib/reveal","@lib/section-frame"],"files":[{"path":"src/registry/default/blocks/logo-cloud/logo-cloud-07/logo-cloud-07.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["marketing","logo-cloud"],"type":"registry:block"},{"name":"logo-cloud-08","title":"Logo cloud 08: Featured quote","description":"A large customer quote above a row of logos.","dependencies":["lucide-react","simple-icons"],"registryDependencies":["@lib/brand-logo","@lib/grid-pattern","@lib/people","@lib/reveal","avatar"],"files":[{"path":"src/registry/default/blocks/logo-cloud/logo-cloud-08/logo-cloud-08.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["marketing","logo-cloud"],"type":"registry:block"},{"name":"logo-cloud-09","title":"Logo cloud 09: Bento with case study","description":"Logo tiles around one highlighted customer result.","dependencies":["lucide-react","simple-icons"],"registryDependencies":["@lib/brand-logo","@lib/grid-pattern","@lib/reveal"],"files":[{"path":"src/registry/default/blocks/logo-cloud/logo-cloud-09/logo-cloud-09.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["marketing","logo-cloud"],"type":"registry:block"},{"name":"logo-cloud-10","title":"Logo cloud 10: By industry","description":"Tabs that switch the logos shown by industry.","dependencies":["simple-icons"],"registryDependencies":["@lib/brand-logo","@lib/section-frame","tabs"],"files":[{"path":"src/registry/default/blocks/logo-cloud/logo-cloud-10/logo-cloud-10.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["marketing","logo-cloud"],"type":"registry:block"},{"name":"features-01","title":"Features 01: Divided grid","description":"Six features in a joined grid on guide lines, the first one with a visual.","dependencies":["lucide-react"],"registryDependencies":["@lib/section-frame"],"files":[{"path":"src/registry/default/blocks/features/features-01/features-01.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["marketing","features"],"type":"registry:block"},{"name":"features-02","title":"Features 02: Alternating rows","description":"Framed feature rows with product mini UIs on a dotted canvas.","dependencies":["lucide-react"],"registryDependencies":["@lib/grid-pattern","@lib/section-frame"],"files":[{"path":"src/registry/default/blocks/features/features-02/features-02.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["marketing","features"],"type":"registry:block"},{"name":"features-03","title":"Features 03: Tabs with preview","description":"Tabs that swap a feature and its live preview in a browser window.","dependencies":["lucide-react","simple-icons"],"registryDependencies":["@lib/brand-logo","@lib/browser-frame","@lib/grid-pattern","@lib/section-frame","tabs"],"files":[{"path":"src/registry/default/blocks/features/features-03/features-03.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["marketing","features"],"type":"registry:block"},{"name":"features-04","title":"Features 04: Icon grid","description":"Six linked features in joined cells with hover arrows.","dependencies":["lucide-react"],"registryDependencies":["@lib/section-frame"],"files":[{"path":"src/registry/default/blocks/features/features-04/features-04.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["marketing","features"],"type":"registry:block"},{"name":"features-05","title":"Features 05: Checklist with stats","description":"A checklist of benefits next to a stack of numbers with sparklines.","dependencies":["lucide-react"],"registryDependencies":["@lib/grid-pattern","@lib/section-frame"],"files":[{"path":"src/registry/default/blocks/features/features-05/features-05.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["marketing","features"],"type":"registry:block"},{"name":"features-06","title":"Features 06: Bento with mini UIs","description":"Joined bento where each tile shows a small piece of the product and real integrations.","dependencies":["lucide-react","simple-icons"],"registryDependencies":["@lib/brand-logo","@lib/grid-pattern","@lib/section-frame"],"files":[{"path":"src/registry/default/blocks/features/features-06/features-06.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["marketing","features"],"type":"registry:block"},{"name":"features-07","title":"Features 07: How it works","description":"Three steps, each with its own illustration.","dependencies":["lucide-react","simple-icons"],"registryDependencies":["@lib/brand-logo","@lib/grid-pattern","@lib/section-frame"],"files":[{"path":"src/registry/default/blocks/features/features-07/features-07.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["marketing","features"],"type":"registry:block"},{"name":"features-08","title":"Features 08: Comparison table","description":"Your product next to the old way, row by row, with a highlighted column.","dependencies":["lucide-react","simple-icons"],"registryDependencies":["@lib/brand-logo","@lib/section-frame"],"files":[{"path":"src/registry/default/blocks/features/features-08/features-08.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["marketing","features"],"type":"registry:block"},{"name":"features-09","title":"Features 09: Accordion with visual","description":"Opening an item updates the chart in the browser window next to it.","registryDependencies":["@lib/browser-frame","@lib/grid-pattern","@lib/section-frame","accordion"],"files":[{"path":"src/registry/default/blocks/features/features-09/features-09.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["marketing","features"],"type":"registry:block"},{"name":"features-10","title":"Features 10: Spotlight grid","description":"Joined feature cells whose borders light up around the pointer.","dependencies":["lucide-react"],"registryDependencies":["@lib/section-frame"],"files":[{"path":"src/registry/default/blocks/features/features-10/features-10.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["marketing","features"],"type":"registry:block"},{"name":"pricing-01","title":"Pricing 01: Three plans with toggle","description":"Three plans with a monthly and yearly switch.","dependencies":["lucide-react"],"registryDependencies":["@lib/section-frame","badge","button","toggle-group"],"files":[{"path":"src/registry/default/blocks/pricing/pricing-01/pricing-01.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.1.0"},"categories":["marketing","pricing"],"type":"registry:block"},{"name":"pricing-02","title":"Pricing 02: Two plans","description":"Free and paid plans side by side.","dependencies":["lucide-react"],"registryDependencies":["@lib/grid-pattern","@lib/section-frame","button"],"files":[{"path":"src/registry/default/blocks/pricing/pricing-02/pricing-02.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.1"},"categories":["marketing","pricing"],"type":"registry:block"},{"name":"pricing-03","title":"Pricing 03: Single plan","description":"One all-inclusive plan with a feature list and price panel.","dependencies":["lucide-react","simple-icons"],"registryDependencies":["@lib/brand-logo","@lib/grid-pattern","@lib/section-frame","button"],"files":[{"path":"src/registry/default/blocks/pricing/pricing-03/pricing-03.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["marketing","pricing"],"type":"registry:block"},{"name":"pricing-04","title":"Pricing 04: Usage slider","description":"A slider that sets revenue volume and updates the price.","registryDependencies":["@lib/section-frame","button","slider"],"files":[{"path":"src/registry/default/blocks/pricing/pricing-04/pricing-04.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["marketing","pricing"],"type":"registry:block"},{"name":"pricing-05","title":"Pricing 05: Comparison table","description":"Plans compared feature by feature, grouped in sections.","dependencies":["lucide-react"],"registryDependencies":["@lib/section-frame","button"],"files":[{"path":"src/registry/default/blocks/pricing/pricing-05/pricing-05.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["marketing","pricing"],"type":"registry:block"},{"name":"pricing-06","title":"Pricing 06: Plans and enterprise","description":"Three joined plan columns and an enterprise banner.","dependencies":["lucide-react","simple-icons"],"registryDependencies":["@lib/brand-logo","@lib/grid-pattern","@lib/section-frame","badge","button"],"files":[{"path":"src/registry/default/blocks/pricing/pricing-06/pricing-06.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["marketing","pricing"],"type":"registry:block"},{"name":"pricing-07","title":"Pricing 07: Seat calculator","description":"Per-seat pricing with a seat stepper and yearly switch.","dependencies":["lucide-react"],"registryDependencies":["@lib/people","@lib/section-frame","avatar","button","input-group","switch"],"files":[{"path":"src/registry/default/blocks/pricing/pricing-07/pricing-07.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["marketing","pricing"],"type":"registry:block"},{"name":"pricing-08","title":"Pricing 08: Plan list","description":"Plans as rows with description, price and action.","dependencies":["lucide-react"],"registryDependencies":["@lib/section-frame"],"files":[{"path":"src/registry/default/blocks/pricing/pricing-08/pricing-08.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["marketing","pricing"],"type":"registry:block"},{"name":"pricing-09","title":"Pricing 09: Feature tooltips","description":"Plan features with info tooltips that explain each one.","dependencies":["lucide-react"],"registryDependencies":["@lib/section-frame","button","tooltip"],"files":[{"path":"src/registry/default/blocks/pricing/pricing-09/pricing-09.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["marketing","pricing"],"type":"registry:block"},{"name":"pricing-10","title":"Pricing 10: Currency and period","description":"Currency picker and billing period, with a highlighted plan.","dependencies":["lucide-react"],"registryDependencies":["@lib/section-frame","button","select","toggle-group"],"files":[{"path":"src/registry/default/blocks/pricing/pricing-10/pricing-10.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["marketing","pricing"],"type":"registry:block"},{"name":"pricing-11","title":"Pricing 11: Yearly discount","description":"Two plans with a monthly and yearly switch, a discount badge and the amount actually billed.","dependencies":["lucide-react"],"registryDependencies":["@lib/section-frame","badge","button","toggle-group"],"files":[{"path":"src/registry/default/blocks/pricing/pricing-11/pricing-11.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["marketing","pricing"],"type":"registry:block"},{"name":"pricing-12","title":"Pricing 12: Plan icons with exclusions","description":"Three plans with icons and the same feature rows in each, missing ones struck out.","dependencies":["lucide-react"],"registryDependencies":["@lib/section-frame","button"],"files":[{"path":"src/registry/default/blocks/pricing/pricing-12/pricing-12.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["marketing","pricing"],"type":"registry:block"},{"name":"pricing-13","title":"Pricing 13: Animated prices","description":"Prices count to their new value when the billing period changes, announced once for screen readers.","dependencies":["lucide-react"],"registryDependencies":["@lib/section-frame","button","toggle-group"],"files":[{"path":"src/registry/default/blocks/pricing/pricing-13/pricing-13.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["marketing","pricing"],"type":"registry:block"},{"name":"pricing-14","title":"Pricing 14: Credit packs","description":"Buy credits in packs that get cheaper in bulk, with an automatic top-up switch.","dependencies":["lucide-react"],"registryDependencies":["@lib/section-frame","button","field","switch"],"files":[{"path":"src/registry/default/blocks/pricing/pricing-14/pricing-14.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["marketing","pricing"],"type":"registry:block"},{"name":"pricing-15","title":"Pricing 15: Best value and reassurance","description":"Monthly, yearly and lifetime options with a best value badge, guarantees and payment logos.","dependencies":["lucide-react","simple-icons"],"registryDependencies":["@lib/brand-logo","@lib/section-frame","badge","button"],"files":[{"path":"src/registry/default/blocks/pricing/pricing-15/pricing-15.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["marketing","pricing"],"type":"registry:block"},{"name":"pricing-16","title":"Pricing 16: Compare two plans","description":"Pick any two plans to compare feature by feature, readable on a phone.","dependencies":["lucide-react"],"registryDependencies":["@lib/section-frame","button","select"],"files":[{"path":"src/registry/default/blocks/pricing/pricing-16/pricing-16.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["marketing","pricing"],"type":"registry:block"},{"name":"pricing-17","title":"Pricing 17: Single plan with FAQ","description":"One all-inclusive plan with what it includes, a price panel, a guarantee and quick answers.","dependencies":["lucide-react"],"registryDependencies":["@lib/section-frame","accordion","button"],"files":[{"path":"src/registry/default/blocks/pricing/pricing-17/pricing-17.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["marketing","pricing"],"type":"registry:block"},{"name":"pricing-18","title":"Pricing 18: In-product upgrade","description":"A locked feature that opens an upgrade dialog with the current plan marked and the prorated amount.","dependencies":["lucide-react"],"registryDependencies":["badge","button","card","dialog"],"files":[{"path":"src/registry/default/blocks/pricing/pricing-18/pricing-18.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["marketing","pricing"],"type":"registry:block"},{"name":"pricing-19","title":"Pricing 19: Currency and VAT","description":"Fixed prices per currency with a VAT included or excluded switch for the region.","dependencies":["lucide-react"],"registryDependencies":["@lib/section-frame","button","select","toggle-group"],"files":[{"path":"src/registry/default/blocks/pricing/pricing-19/pricing-19.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["marketing","pricing"],"type":"registry:block"},{"name":"pricing-20","title":"Pricing 20: Usage calculator","description":"Sliders for seats and usage with a line-by-line monthly total.","registryDependencies":["@lib/section-frame","button","field","slider"],"files":[{"path":"src/registry/default/blocks/pricing/pricing-20/pricing-20.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["marketing","pricing"],"type":"registry:block"},{"name":"pricing-21","title":"Pricing 21: Volume tiers","description":"Graduated per-seat prices with the tiers your seat count falls in highlighted.","registryDependencies":["@lib/section-frame","button","field","input"],"files":[{"path":"src/registry/default/blocks/pricing/pricing-21/pricing-21.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["marketing","pricing"],"type":"registry:block"},{"name":"pricing-22","title":"Pricing 22: Plans with customer quotes","description":"Each plan paired with a customer who uses it.","dependencies":["lucide-react"],"registryDependencies":["@lib/people","@lib/section-frame","avatar","button"],"files":[{"path":"src/registry/default/blocks/pricing/pricing-22/pricing-22.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["marketing","pricing"],"type":"registry:block"},{"name":"pricing-23","title":"Pricing 23: Plan finder","description":"Three questions that recommend the plan that fits, with a way back and a restart.","dependencies":["lucide-react"],"registryDependencies":["@lib/section-frame","button","progress"],"files":[{"path":"src/registry/default/blocks/pricing/pricing-23/pricing-23.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["marketing","pricing"],"type":"registry:block"},{"name":"pricing-24","title":"Pricing 24: Expandable plan rows","description":"Plans as rows with a tagline and price, each opening to its full feature list.","dependencies":["lucide-react"],"registryDependencies":["@lib/section-frame","accordion","badge","button"],"files":[{"path":"src/registry/default/blocks/pricing/pricing-24/pricing-24.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["marketing","pricing"],"type":"registry:block"},{"name":"pricing-25","title":"Pricing 25: Self-serve and enterprise","description":"Two self-serve plans next to an enterprise card with a quote form and confirmation.","dependencies":["lucide-react"],"registryDependencies":["@lib/section-frame","button","field","input","select"],"files":[{"path":"src/registry/default/blocks/pricing/pricing-25/pricing-25.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["marketing","pricing"],"type":"registry:block"},{"name":"pricing-26","title":"Pricing 26: Lifetime deal","description":"A limited lifetime offer with a countdown, seats left and a struck-through price.","dependencies":["lucide-react"],"registryDependencies":["@lib/section-frame","badge","button","progress"],"files":[{"path":"src/registry/default/blocks/pricing/pricing-26/pricing-26.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["marketing","pricing"],"type":"registry:block"},{"name":"pricing-27","title":"Pricing 27: Plans by audience","description":"Tabs for individuals, teams and education, each with its own plans.","dependencies":["lucide-react"],"registryDependencies":["@lib/section-frame","button","tabs"],"files":[{"path":"src/registry/default/blocks/pricing/pricing-27/pricing-27.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["marketing","pricing"],"type":"registry:block"},{"name":"pricing-28","title":"Pricing 28: Add-ons","description":"A base plan with add-ons to tick and a total that follows.","dependencies":["lucide-react"],"registryDependencies":["@lib/section-frame","button","checkbox","field"],"files":[{"path":"src/registry/default/blocks/pricing/pricing-28/pricing-28.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["marketing","pricing"],"type":"registry:block"},{"name":"pricing-29","title":"Pricing 29: Compared to alternatives","description":"The price next to spreadsheets and hiring an analyst, feature by feature.","dependencies":["lucide-react"],"registryDependencies":["@lib/section-frame","button"],"files":[{"path":"src/registry/default/blocks/pricing/pricing-29/pricing-29.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["marketing","pricing"],"type":"registry:block"},{"name":"pricing-30","title":"Pricing 30: Bento","description":"The plan in a large cell, surrounded by small working pieces of the product it includes.","dependencies":["lucide-react"],"registryDependencies":["@lib/people","@lib/section-frame","@lib/sparkline","avatar","button"],"files":[{"path":"src/registry/default/blocks/pricing/pricing-30/pricing-30.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["marketing","pricing"],"type":"registry:block"},{"name":"faq-01","title":"FAQ 01: Heading and accordion","description":"Frequently asked questions in an accordion, next to a heading.","registryDependencies":["@lib/section-frame","accordion"],"files":[{"path":"src/registry/default/blocks/faq/faq-01/faq-01.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["marketing","faq"],"type":"registry:block"},{"name":"faq-02","title":"FAQ 02: Centered accordion","description":"A centered accordion with a link to support.","registryDependencies":["@lib/section-frame","accordion"],"files":[{"path":"src/registry/default/blocks/faq/faq-02/faq-02.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["marketing","faq"],"type":"registry:block"},{"name":"faq-03","title":"FAQ 03: Open grid","description":"All questions and answers visible in a grid, no clicks needed.","registryDependencies":["@lib/section-frame"],"files":[{"path":"src/registry/default/blocks/faq/faq-03/faq-03.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["marketing","faq"],"type":"registry:block"},{"name":"faq-04","title":"FAQ 04: Searchable","description":"A search field that filters questions as you type.","dependencies":["lucide-react"],"registryDependencies":["@lib/grid-pattern","@lib/section-frame","accordion","input-group","kbd"],"files":[{"path":"src/registry/default/blocks/faq/faq-04/faq-04.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["marketing","faq"],"type":"registry:block"},{"name":"faq-05","title":"FAQ 05: By category","description":"Tabs that switch between groups of questions.","dependencies":["lucide-react"],"registryDependencies":["@lib/section-frame","accordion","tabs"],"files":[{"path":"src/registry/default/blocks/faq/faq-05/faq-05.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["marketing","faq"],"type":"registry:block"},{"name":"faq-06","title":"FAQ 06: With support card","description":"Accordion next to a card for chatting with support.","dependencies":["lucide-react"],"registryDependencies":["@lib/grid-pattern","@lib/people","@lib/section-frame","accordion","avatar","button"],"files":[{"path":"src/registry/default/blocks/faq/faq-06/faq-06.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["marketing","faq"],"type":"registry:block"},{"name":"faq-07","title":"FAQ 07: Plus cards","description":"Large collapsible cards with a rotating plus icon.","dependencies":["lucide-react"],"registryDependencies":["@lib/section-frame","collapsible"],"files":[{"path":"src/registry/default/blocks/faq/faq-07/faq-07.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["marketing","faq"],"type":"registry:block"},{"name":"faq-08","title":"FAQ 08: Icon cards","description":"Short answers in cards with icons, linking to the help center.","dependencies":["lucide-react"],"registryDependencies":["@lib/section-frame"],"files":[{"path":"src/registry/default/blocks/faq/faq-08/faq-08.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["marketing","faq"],"type":"registry:block"},{"name":"faq-09","title":"FAQ 09: Sections with side navigation","description":"Questions grouped in sections with sticky side links.","registryDependencies":["@lib/section-frame","accordion"],"files":[{"path":"src/registry/default/blocks/faq/faq-09/faq-09.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["marketing","faq"],"type":"registry:block"},{"name":"faq-10","title":"FAQ 10: With feedback","description":"Answers with a was-this-helpful vote.","dependencies":["lucide-react"],"registryDependencies":["@lib/section-frame","accordion","button"],"files":[{"path":"src/registry/default/blocks/faq/faq-10/faq-10.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["marketing","faq"],"type":"registry:block"},{"name":"dashboard-01","title":"Dashboard 01: SaaS overview","description":"KPIs, revenue chart with period switch, recent activity and a customer table.","dependencies":["lucide-react"],"registryDependencies":["@lib/activity-feed","@lib/chart-card","@lib/data-table","@lib/people","@lib/stat-strip","badge","button","card","toggle-group"],"files":[{"path":"src/registry/default/blocks/dashboard/dashboard-01/dashboard-01.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["app","dashboard"],"type":"registry:block"},{"name":"dashboard-02","title":"Dashboard 02: Web analytics","description":"Visitors and sessions over time, top pages and traffic sources.","dependencies":["lucide-react","recharts"],"registryDependencies":["@lib/progress-list","@lib/stat-strip","card","chart"],"files":[{"path":"src/registry/default/blocks/dashboard/dashboard-02/dashboard-02.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["app","dashboard"],"type":"registry:block"},{"name":"dashboard-03","title":"Dashboard 03: E-commerce","description":"Revenue and orders, orders per day, best sellers and recent orders.","dependencies":["lucide-react","recharts"],"registryDependencies":["@lib/stat-strip","avatar","badge","card","chart","item","table"],"files":[{"path":"src/registry/default/blocks/dashboard/dashboard-03/dashboard-03.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["app","dashboard"],"type":"registry:block"},{"name":"dashboard-04","title":"Dashboard 04: Customer support","description":"Ticket volume, team availability and the queue waiting for a reply.","dependencies":["lucide-react","recharts"],"registryDependencies":["@lib/people","@lib/stat-strip","avatar","badge","card","chart","item","table"],"files":[{"path":"src/registry/default/blocks/dashboard/dashboard-04/dashboard-04.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["app","dashboard"],"type":"registry:block"},{"name":"dashboard-05","title":"Dashboard 05: Plan and usage","description":"Current plan, usage against limits, payment method and invoices.","dependencies":["lucide-react"],"registryDependencies":["@lib/usage-meter","badge","button","card","table"],"files":[{"path":"src/registry/default/blocks/dashboard/dashboard-05/dashboard-05.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["app","dashboard"],"type":"registry:block"},{"name":"dashboard-06","title":"Dashboard 06: Finance","description":"Cash, burn and runway, cash flow chart, budget by category and upcoming payments.","dependencies":["lucide-react","recharts"],"registryDependencies":["@lib/nav-main","@lib/nav-user","@lib/people","@lib/progress-list","@lib/stat-strip","@lib/workspace-switcher","badge","card","chart","item","separator","sidebar"],"files":[{"path":"src/registry/default/blocks/dashboard/dashboard-06/dashboard-06.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["app","dashboard"],"type":"registry:block"},{"name":"dashboard-07","title":"Dashboard 07: Marketing","description":"Lead KPIs, a conversion funnel from visit to paid, and campaigns.","dependencies":["lucide-react","recharts"],"registryDependencies":["@lib/nav-main","@lib/nav-user","@lib/people","@lib/stat-strip","@lib/workspace-switcher","badge","card","chart","separator","sidebar","table","toggle-group"],"files":[{"path":"src/registry/default/blocks/dashboard/dashboard-07/dashboard-07.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["app","dashboard"],"type":"registry:block"},{"name":"dashboard-08","title":"Dashboard 08: System status","description":"Uptime, latency and errors with sparklines, services and deployments.","dependencies":["lucide-react","recharts"],"registryDependencies":["@lib/nav-main","@lib/nav-user","@lib/people","@lib/sparkline","@lib/workspace-switcher","badge","card","chart","item","separator","sidebar"],"files":[{"path":"src/registry/default/blocks/dashboard/dashboard-08/dashboard-08.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["app","dashboard"],"type":"registry:block"},{"name":"dashboard-09","title":"Dashboard 09: Sales pipeline","description":"Pipeline by stage, today's meetings and a leaderboard of closed deals.","dependencies":["lucide-react","recharts"],"registryDependencies":["@lib/nav-main","@lib/nav-user","@lib/people","@lib/progress-list","@lib/stat-strip","@lib/workspace-switcher","avatar","badge","button","card","chart","item","separator","sidebar"],"files":[{"path":"src/registry/default/blocks/dashboard/dashboard-09/dashboard-09.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["app","dashboard"],"type":"registry:block"},{"name":"dashboard-10","title":"Dashboard 10: API usage","description":"Tokens by model, monthly limits, an hourly activity heatmap and cost by model.","dependencies":["lucide-react","recharts"],"registryDependencies":["@lib/nav-main","@lib/nav-user","@lib/people","@lib/stat-strip","@lib/usage-meter","@lib/workspace-switcher","card","chart","separator","sidebar","table","tooltip"],"files":[{"path":"src/registry/default/blocks/dashboard/dashboard-10/dashboard-10.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["app","dashboard"],"type":"registry:block"},{"name":"auth-01","title":"Auth 01: Log in card","description":"Centered log in card with Google and GitHub, email and password.","dependencies":["lucide-react"],"registryDependencies":["@lib/grid-pattern","@lib/oauth-buttons","button","card","field","input"],"files":[{"path":"src/registry/default/blocks/auth/auth-01/auth-01.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["app","auth"],"type":"registry:block"},{"name":"auth-02","title":"Auth 02: Sign up card","description":"Sign up with name, email and password, terms checkbox and social sign up.","dependencies":["lucide-react"],"registryDependencies":["@lib/grid-pattern","@lib/oauth-buttons","button","card","checkbox","field","input"],"files":[{"path":"src/registry/default/blocks/auth/auth-02/auth-02.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["app","auth"],"type":"registry:block"},{"name":"auth-03","title":"Auth 03: Split log in","description":"Log in form on one side and a customer quote on the other.","dependencies":["lucide-react"],"registryDependencies":["@lib/oauth-buttons","@lib/people","avatar","button","field","input"],"files":[{"path":"src/registry/default/blocks/auth/auth-03/auth-03.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["app","auth"],"type":"registry:block"},{"name":"auth-04","title":"Auth 04: Forgot password","description":"Request a reset link, then a confirmation state.","dependencies":["lucide-react"],"registryDependencies":["@lib/grid-pattern","button","card","field","input"],"files":[{"path":"src/registry/default/blocks/auth/auth-04/auth-04.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["app","auth"],"type":"registry:block"},{"name":"auth-05","title":"Auth 05: Verification code","description":"Six-digit one-time code with a resend timer.","dependencies":["input-otp","lucide-react"],"registryDependencies":["@lib/grid-pattern","button","card","field","input-otp"],"files":[{"path":"src/registry/default/blocks/auth/auth-05/auth-05.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["app","auth"],"type":"registry:block"},{"name":"auth-06","title":"Auth 06: Magic link","description":"Passwordless log in by email, with a check-your-inbox state.","dependencies":["lucide-react"],"registryDependencies":["@lib/grid-pattern","@lib/oauth-buttons","button","field","input"],"files":[{"path":"src/registry/default/blocks/auth/auth-06/auth-06.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["app","auth"],"type":"registry:block"},{"name":"auth-07","title":"Auth 07: Trial sign up with plan","description":"Sign up form next to a summary of the chosen plan.","dependencies":["lucide-react"],"registryDependencies":["@lib/oauth-buttons","badge","button","card","field","input","separator"],"files":[{"path":"src/registry/default/blocks/auth/auth-07/auth-07.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["app","auth"],"type":"registry:block"},{"name":"auth-08","title":"Auth 08: Two-step log in","description":"Email first, then password, with a chip to change the account.","dependencies":["lucide-react"],"registryDependencies":["@lib/grid-pattern","avatar","button","card","checkbox","field","input"],"files":[{"path":"src/registry/default/blocks/auth/auth-08/auth-08.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["app","auth"],"type":"registry:block"},{"name":"auth-09","title":"Auth 09: New password","description":"New password with a strength meter, rule checklist and confirmation.","dependencies":["lucide-react"],"registryDependencies":["@lib/grid-pattern","button","card","field","input","progress"],"files":[{"path":"src/registry/default/blocks/auth/auth-09/auth-09.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["app","auth"],"type":"registry:block"},{"name":"auth-10","title":"Auth 10: Single sign-on","description":"SSO by workspace name, then a list of matching workspaces.","dependencies":["lucide-react"],"registryDependencies":["@lib/grid-pattern","button","card","field","input-group","item"],"files":[{"path":"src/registry/default/blocks/auth/auth-10/auth-10.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["app","auth"],"type":"registry:block"},{"name":"settings-01","title":"Settings 01: Profile","description":"Photo, name, email, job title and a short bio.","dependencies":["lucide-react"],"registryDependencies":["@lib/people","avatar","button","card","field","input","textarea"],"files":[{"path":"src/registry/default/blocks/settings/settings-01/settings-01.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["app","settings"],"type":"registry:block"},{"name":"settings-02","title":"Settings 02: Settings with side navigation","description":"A settings layout with section links and an account form.","dependencies":["lucide-react"],"registryDependencies":["button","field","input","select","separator"],"files":[{"path":"src/registry/default/blocks/settings/settings-02/settings-02.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["app","settings"],"type":"registry:block"},{"name":"settings-03","title":"Settings 03: Notifications","description":"Email notification switches grouped by topic.","registryDependencies":["button","card","field","switch"],"files":[{"path":"src/registry/default/blocks/settings/settings-03/settings-03.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["app","settings"],"type":"registry:block"},{"name":"settings-04","title":"Settings 04: Team members","description":"Invite by email with a role, then manage roles and pending invites.","dependencies":["lucide-react"],"registryDependencies":["@lib/people","avatar","badge","button","card","dropdown-menu","field","input","item","select"],"files":[{"path":"src/registry/default/blocks/settings/settings-04/settings-04.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["app","settings"],"type":"registry:block"},{"name":"settings-05","title":"Settings 05: Security","description":"Change password, two-factor switch and active sessions.","dependencies":["lucide-react"],"registryDependencies":["badge","button","card","field","input","item","switch"],"files":[{"path":"src/registry/default/blocks/settings/settings-05/settings-05.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["app","settings"],"type":"registry:block"},{"name":"settings-06","title":"Settings 06: Appearance","description":"Theme cards, density and reduced motion preferences.","registryDependencies":["button","card","field","radio-group","switch","toggle-group"],"files":[{"path":"src/registry/default/blocks/settings/settings-06/settings-06.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["app","settings"],"type":"registry:block"},{"name":"settings-07","title":"Settings 07: API keys","description":"Create keys in a dialog, copy once, and revoke with confirmation.","dependencies":["lucide-react"],"registryDependencies":["alert-dialog","badge","button","card","dialog","field","input","table"],"files":[{"path":"src/registry/default/blocks/settings/settings-07/settings-07.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["app","settings"],"type":"registry:block"},{"name":"settings-08","title":"Settings 08: Integrations","description":"Filterable grid of integrations with connect switches.","dependencies":["lucide-react","simple-icons"],"registryDependencies":["@lib/brand-logo","badge","button","card","input-group","switch","toggle-group"],"files":[{"path":"src/registry/default/blocks/settings/settings-08/settings-08.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["app","settings"],"type":"registry:block"},{"name":"settings-09","title":"Settings 09: Danger zone","description":"Export, transfer ownership and delete with typed confirmation.","dependencies":["lucide-react"],"registryDependencies":["alert","alert-dialog","button","card","field","input","item"],"files":[{"path":"src/registry/default/blocks/settings/settings-09/settings-09.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["app","settings"],"type":"registry:block"},{"name":"settings-10","title":"Settings 10: Workspace settings in tabs","description":"General, reporting and access settings in tabs.","dependencies":["lucide-react"],"registryDependencies":["button","card","field","input","input-group","select","switch","tabs"],"files":[{"path":"src/registry/default/blocks/settings/settings-10/settings-10.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["app","settings"],"type":"registry:block"},{"name":"billing-01","title":"Billing 01: Change plan","description":"Plan cards with the current plan highlighted and a monthly or yearly switch.","dependencies":["lucide-react"],"registryDependencies":["badge","button","card","toggle-group"],"files":[{"path":"src/registry/default/blocks/billing/billing-01/billing-01.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["app","billing"],"type":"registry:block"},{"name":"billing-02","title":"Billing 02: Invoices","description":"Billing history filtered by year, with status and download.","dependencies":["lucide-react"],"registryDependencies":["badge","button","card","select","table"],"files":[{"path":"src/registry/default/blocks/billing/billing-02/billing-02.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["app","billing"],"type":"registry:block"},{"name":"billing-03","title":"Billing 03: Payment methods","description":"Saved cards with a default, remove action and an add-card dialog.","dependencies":["lucide-react","simple-icons"],"registryDependencies":["badge","button","card","dialog","dropdown-menu","field","input","item"],"files":[{"path":"src/registry/default/blocks/billing/billing-03/billing-03.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["app","billing"],"type":"registry:block"},{"name":"billing-04","title":"Billing 04: Subscription and next invoice","description":"Usage against plan limits next to the upcoming invoice breakdown.","registryDependencies":["@lib/usage-meter","button","card","separator"],"files":[{"path":"src/registry/default/blocks/billing/billing-04/billing-04.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["app","billing"],"type":"registry:block"},{"name":"billing-05","title":"Billing 05: Checkout","description":"Split checkout page with order summary and card payment form.","dependencies":["lucide-react"],"registryDependencies":["button","field","input","input-group","select","separator"],"files":[{"path":"src/registry/default/blocks/billing/billing-05/billing-05.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["app","billing"],"type":"registry:block"},{"name":"billing-06","title":"Billing 06: Upgrade with proration","description":"Plan change preview with prorated amount due today.","dependencies":["lucide-react"],"registryDependencies":["badge","button","card","separator"],"files":[{"path":"src/registry/default/blocks/billing/billing-06/billing-06.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["app","billing"],"type":"registry:block"},{"name":"billing-07","title":"Billing 07: Cancellation flow","description":"Reason survey with a retention offer before canceling.","dependencies":["lucide-react"],"registryDependencies":["alert","button","card","field","radio-group","textarea"],"files":[{"path":"src/registry/default/blocks/billing/billing-07/billing-07.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["app","billing"],"type":"registry:block"},{"name":"billing-08","title":"Billing 08: Billing details","description":"Company name, billing email, VAT number and address.","registryDependencies":["button","card","field","input","select"],"files":[{"path":"src/registry/default/blocks/billing/billing-08/billing-08.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["app","billing"],"type":"registry:block"},{"name":"billing-09","title":"Billing 09: Prepaid credits","description":"Credit balance, top-up amounts, auto top-up and transactions.","dependencies":["lucide-react"],"registryDependencies":["button","card","field","item","switch","toggle-group"],"files":[{"path":"src/registry/default/blocks/billing/billing-09/billing-09.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["app","billing"],"type":"registry:block"},{"name":"billing-10","title":"Billing 10: Invoice","description":"A printable invoice with line items, tax and totals.","dependencies":["lucide-react"],"registryDependencies":["badge","button","separator","table"],"files":[{"path":"src/registry/default/blocks/billing/billing-10/billing-10.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["app","billing"],"type":"registry:block"},{"name":"tables-01","title":"Table 01: Bulk selection","description":"Row checkboxes with select all and a bulk action bar.","dependencies":["lucide-react"],"registryDependencies":["badge","button","checkbox","table"],"files":[{"path":"src/registry/default/blocks/tables/tables-01/tables-01.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["app","tables"],"type":"registry:block"},{"name":"tables-02","title":"Table 02: Filters and search","description":"Sortable data table with status and plan filters in the toolbar.","registryDependencies":["@lib/data-table","badge","select"],"files":[{"path":"src/registry/default/blocks/tables/tables-02/tables-02.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["app","tables"],"type":"registry:block"},{"name":"tables-03","title":"Table 03: Expandable rows","description":"Orders that expand to show their line items.","dependencies":["lucide-react"],"registryDependencies":["badge","button","table"],"files":[{"path":"src/registry/default/blocks/tables/tables-03/tables-03.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["app","tables"],"type":"registry:block"},{"name":"tables-04","title":"Table 04: Pagination and row status","description":"Rows per page, page navigation and a status select in each row.","dependencies":["lucide-react"],"registryDependencies":["@lib/people","avatar","button","select","table"],"files":[{"path":"src/registry/default/blocks/tables/tables-04/tables-04.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["app","tables"],"type":"registry:block"},{"name":"tables-05","title":"Table 05: Contacts with tags","description":"People with avatars, tags, owner and a row action menu.","dependencies":["lucide-react"],"registryDependencies":["@lib/people","avatar","badge","button","dropdown-menu","table"],"files":[{"path":"src/registry/default/blocks/tables/tables-05/tables-05.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["app","tables"],"type":"registry:block"},{"name":"tables-06","title":"Table 06: Inline editing","description":"Click a cell to edit it in place, with keyboard save and cancel.","dependencies":["lucide-react"],"registryDependencies":["input","table"],"files":[{"path":"src/registry/default/blocks/tables/tables-06/tables-06.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["app","tables"],"type":"registry:block"},{"name":"tables-07","title":"Table 07: Grouped with subtotals","description":"Rows grouped by stage with subtotals and a grand total.","registryDependencies":["badge","table"],"files":[{"path":"src/registry/default/blocks/tables/tables-07/tables-07.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["app","tables"],"type":"registry:block"},{"name":"tables-08","title":"Table 08: Row detail sheet","description":"Clicking a row opens its details in a side sheet.","registryDependencies":["@lib/people","avatar","badge","button","separator","sheet","table"],"files":[{"path":"src/registry/default/blocks/tables/tables-08/tables-08.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["app","tables"],"type":"registry:block"},{"name":"tables-09","title":"Table 09: Faceted filters","description":"Multi-select filter popovers with counts and a reset button.","dependencies":["lucide-react"],"registryDependencies":["badge","button","checkbox","command","popover","separator","table"],"files":[{"path":"src/registry/default/blocks/tables/tables-09/tables-09.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["app","tables"],"type":"registry:block"},{"name":"tables-10","title":"Table 10: Wide table with sticky column","description":"Monthly figures that scroll sideways with a fixed first column.","registryDependencies":["table"],"files":[{"path":"src/registry/default/blocks/tables/tables-10/tables-10.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["app","tables"],"type":"registry:block"},{"name":"onboarding-01","title":"Onboarding 01: Setup wizard","description":"Three-step setup with a progress stepper, skip and back.","dependencies":["lucide-react"],"registryDependencies":["button","card","field","input","input-group","textarea"],"files":[{"path":"src/registry/default/blocks/onboarding/onboarding-01/onboarding-01.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["app","onboarding"],"type":"registry:block"},{"name":"onboarding-02","title":"Onboarding 02: Getting started checklist","description":"A dismissible checklist card with progress.","dependencies":["lucide-react"],"registryDependencies":["button","card","item","progress"],"files":[{"path":"src/registry/default/blocks/onboarding/onboarding-02/onboarding-02.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["app","onboarding"],"type":"registry:block"},{"name":"onboarding-03","title":"Onboarding 03: Choose your role","description":"Welcome screen with role cards to personalize the product.","dependencies":["lucide-react"],"registryDependencies":["button","field","radio-group"],"files":[{"path":"src/registry/default/blocks/onboarding/onboarding-03/onboarding-03.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["app","onboarding"],"type":"registry:block"},{"name":"onboarding-04","title":"Onboarding 04: Connect a data source","description":"Selectable integration tiles with a connect action.","dependencies":["lucide-react","simple-icons"],"registryDependencies":["@lib/brand-logo","badge","button"],"files":[{"path":"src/registry/default/blocks/onboarding/onboarding-04/onboarding-04.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["app","onboarding"],"type":"registry:block"},{"name":"onboarding-05","title":"Onboarding 05: Invite teammates","description":"Add email and role rows, or copy an invite link.","dependencies":["lucide-react"],"registryDependencies":["button","card","field","input","select","separator"],"files":[{"path":"src/registry/default/blocks/onboarding/onboarding-05/onboarding-05.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["app","onboarding"],"type":"registry:block"},{"name":"onboarding-06","title":"Onboarding 06: Setup with live preview","description":"Workspace name and color, previewed live next to the form.","registryDependencies":["button","field","input","skeleton"],"files":[{"path":"src/registry/default/blocks/onboarding/onboarding-06/onboarding-06.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["app","onboarding"],"type":"registry:block"},{"name":"onboarding-07","title":"Onboarding 07: Product tour","description":"Step-by-step highlights with a popover and next and back.","dependencies":["lucide-react"],"registryDependencies":["button","skeleton"],"files":[{"path":"src/registry/default/blocks/onboarding/onboarding-07/onboarding-07.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["app","onboarding"],"type":"registry:block"},{"name":"onboarding-08","title":"Onboarding 08: Vertical steps","description":"A side list of steps next to the current step's form.","dependencies":["lucide-react"],"registryDependencies":["button","field","input","select"],"files":[{"path":"src/registry/default/blocks/onboarding/onboarding-08/onboarding-08.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["app","onboarding"],"type":"registry:block"},{"name":"onboarding-09","title":"Onboarding 09: CSV column mapping","description":"Map imported columns to fields, with automatic guesses.","dependencies":["lucide-react"],"registryDependencies":["alert","badge","button","card","select","table"],"files":[{"path":"src/registry/default/blocks/onboarding/onboarding-09/onboarding-09.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["app","onboarding"],"type":"registry:block"},{"name":"onboarding-10","title":"Onboarding 10: Setup complete","description":"Success screen with a main action and suggested next steps.","dependencies":["lucide-react"],"registryDependencies":["button","item"],"files":[{"path":"src/registry/default/blocks/onboarding/onboarding-10/onboarding-10.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["app","onboarding"],"type":"registry:block"},{"name":"empty-state-01","title":"Empty state 01: No items yet","description":"First-use empty state with create and import actions.","dependencies":["lucide-react"],"registryDependencies":["@lib/grid-pattern","button","empty"],"files":[{"path":"src/registry/default/blocks/empty-state/empty-state-01/empty-state-01.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["app","empty-state"],"type":"registry:block"},{"name":"empty-state-02","title":"Empty state 02: No search results","description":"No results for a search, with clear filters and clear search.","dependencies":["lucide-react"],"registryDependencies":["badge","button","empty","input"],"files":[{"path":"src/registry/default/blocks/empty-state/empty-state-02/empty-state-02.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["app","empty-state"],"type":"registry:block"},{"name":"empty-state-03","title":"Empty state 03: Empty table","description":"A table with headers and an empty state that suggests importing data.","dependencies":["lucide-react"],"registryDependencies":["button","card","empty","table"],"files":[{"path":"src/registry/default/blocks/empty-state/empty-state-03/empty-state-03.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["app","empty-state"],"type":"registry:block"},{"name":"empty-state-04","title":"Empty state 04: First-run dashboard","description":"Welcome page with three ways to get started.","dependencies":["lucide-react"],"registryDependencies":["button","card"],"files":[{"path":"src/registry/default/blocks/empty-state/empty-state-04/empty-state-04.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["app","empty-state"],"type":"registry:block"},{"name":"empty-state-05","title":"Empty state 05: Failed to load","description":"Error state with a retry button that shows progress.","dependencies":["lucide-react"],"registryDependencies":["@lib/grid-pattern","button","empty","spinner"],"files":[{"path":"src/registry/default/blocks/empty-state/empty-state-05/empty-state-05.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["app","empty-state"],"type":"registry:block"},{"name":"empty-state-06","title":"Empty state 06: Inbox zero","description":"Notifications panel with nothing left to read.","dependencies":["lucide-react"],"registryDependencies":["button","empty","tabs"],"files":[{"path":"src/registry/default/blocks/empty-state/empty-state-06/empty-state-06.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.1"},"categories":["app","empty-state"],"type":"registry:block"},{"name":"empty-state-07","title":"Empty state 07: Ghost preview","description":"Faded preview rows that hint at what the list will look like.","dependencies":["lucide-react"],"registryDependencies":["@lib/grid-pattern","button","empty"],"files":[{"path":"src/registry/default/blocks/empty-state/empty-state-07/empty-state-07.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["app","empty-state"],"type":"registry:block"},{"name":"empty-state-08","title":"Empty state 08: Locked feature","description":"Blurred page behind an upgrade prompt for a paid feature.","dependencies":["lucide-react"],"registryDependencies":["badge","button","empty","skeleton"],"files":[{"path":"src/registry/default/blocks/empty-state/empty-state-08/empty-state-08.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["app","empty-state"],"type":"registry:block"},{"name":"empty-state-09","title":"Empty state 09: Offline","description":"Offline state with an automatic retry countdown.","dependencies":["lucide-react"],"registryDependencies":["@lib/grid-pattern","button","empty"],"files":[{"path":"src/registry/default/blocks/empty-state/empty-state-09/empty-state-09.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["app","empty-state"],"type":"registry:block"},{"name":"empty-state-10","title":"Empty state 10: Empty team","description":"Invite the first teammate from an inline email field.","dependencies":["lucide-react"],"registryDependencies":["@lib/grid-pattern","@lib/people","avatar","button","empty","input-group"],"files":[{"path":"src/registry/default/blocks/empty-state/empty-state-10/empty-state-10.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["app","empty-state"],"type":"registry:block"},{"name":"header-01","title":"Header 01: Simple","description":"Logo, links and actions, with a slide-in menu on mobile.","dependencies":["lucide-react"],"registryDependencies":["button","sheet"],"files":[{"path":"src/registry/default/blocks/header/header-01/header-01.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["marketing","header"],"type":"registry:block"},{"name":"header-02","title":"Header 02: Floating pill","description":"A rounded, blurred bar that floats above the page.","dependencies":["lucide-react"],"registryDependencies":["button"],"files":[{"path":"src/registry/default/blocks/header/header-02/header-02.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["marketing","header"],"type":"registry:block"},{"name":"header-03","title":"Header 03: With announcement","description":"A dismissible announcement bar above the navigation.","dependencies":["lucide-react"],"registryDependencies":["@lib/mobile-nav","button"],"files":[{"path":"src/registry/default/blocks/header/header-03/header-03.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["marketing","header"],"type":"registry:block"},{"name":"header-04","title":"Header 04: Product dropdown","description":"Navigation menu with a Product dropdown of features.","dependencies":["lucide-react"],"registryDependencies":["@lib/mobile-nav","button","navigation-menu"],"files":[{"path":"src/registry/default/blocks/header/header-04/header-04.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["marketing","header"],"type":"registry:block"},{"name":"header-05","title":"Header 05: Docs header","description":"Documentation header with search palette and a star button.","dependencies":["lucide-react"],"registryDependencies":["@lib/mobile-nav","@lib/search-command","button","separator"],"files":[{"path":"src/registry/default/blocks/header/header-05/header-05.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["marketing","header"],"type":"registry:block"},{"name":"header-06","title":"Header 06: Mega menu","description":"Two link columns and a featured report in one dropdown.","dependencies":["lucide-react"],"registryDependencies":["@lib/mobile-nav","button","navigation-menu"],"files":[{"path":"src/registry/default/blocks/header/header-06/header-06.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["marketing","header"],"type":"registry:block"},{"name":"header-07","title":"Header 07: Shrinks on scroll","description":"Sticky header that tightens and gets a background on scroll.","dependencies":["lucide-react"],"registryDependencies":["@lib/mobile-nav","button"],"files":[{"path":"src/registry/default/blocks/header/header-07/header-07.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["marketing","header"],"type":"registry:block"},{"name":"header-08","title":"Header 08: Signed-in","description":"Header for signed-in visitors with notifications and account menu.","dependencies":["lucide-react"],"registryDependencies":["@lib/mobile-nav","@lib/people","avatar","badge","button","dropdown-menu"],"files":[{"path":"src/registry/default/blocks/header/header-08/header-08.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["marketing","header"],"type":"registry:block"},{"name":"header-09","title":"Header 09: Language and currency","description":"Utility bar with language and currency pickers above the navigation.","dependencies":["lucide-react"],"registryDependencies":["@lib/mobile-nav","button","select"],"files":[{"path":"src/registry/default/blocks/header/header-09/header-09.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["marketing","header"],"type":"registry:block"},{"name":"header-10","title":"Header 10: Expanding island","description":"A compact floating island that expands to show links on hover.","dependencies":["lucide-react"],"registryDependencies":["button"],"files":[{"path":"src/registry/default/blocks/header/header-10/header-10.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["marketing","header"],"type":"registry:block"},{"name":"integrations-01","title":"Integrations 01: Joined grid","description":"Integration cells with brand logos in a framed grid, with a browse-all bar.","dependencies":["lucide-react","simple-icons"],"registryDependencies":["@lib/brand-logo","@lib/reveal","@lib/section-frame"],"files":[{"path":"src/registry/default/blocks/integrations/integrations-01/integrations-01.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["marketing","integrations"],"type":"registry:block"},{"name":"integrations-02","title":"Integrations 02: Hub with beams","description":"Sources and destinations linked to your logo by animated beams.","dependencies":["lucide-react","simple-icons"],"registryDependencies":["@lib/brand-logo","@lib/grid-pattern"],"files":[{"path":"src/registry/default/blocks/integrations/integrations-02/integrations-02.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["marketing","integrations"],"type":"registry:block"},{"name":"integrations-03","title":"Integrations 03: Categories and connect","description":"Category sidebar with counts and connectable integrations.","dependencies":["simple-icons"],"registryDependencies":["@lib/brand-logo","button"],"files":[{"path":"src/registry/default/blocks/integrations/integrations-03/integrations-03.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["marketing","integrations"],"type":"registry:block"},{"name":"integrations-04","title":"Integrations 04: Bento with live sync","description":"A live Stripe sync card next to logo and stat tiles.","dependencies":["lucide-react","simple-icons"],"registryDependencies":["@lib/brand-logo","@lib/grid-pattern"],"files":[{"path":"src/registry/default/blocks/integrations/integrations-04/integrations-04.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["marketing","integrations"],"type":"registry:block"},{"name":"integrations-05","title":"Integrations 05: Logo marquee","description":"Two rows of brand pills scrolling in opposite directions.","dependencies":["simple-icons"],"registryDependencies":["@lib/brand-logo","@lib/grid-pattern","@lib/marquee","@lib/reveal"],"files":[{"path":"src/registry/default/blocks/integrations/integrations-05/integrations-05.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["marketing","integrations"],"type":"registry:block"},{"name":"integrations-06","title":"Integrations 06: Orbit","description":"Brand logos orbiting your logo on two dashed rings.","dependencies":["lucide-react","simple-icons"],"registryDependencies":["@lib/brand-logo"],"files":[{"path":"src/registry/default/blocks/integrations/integrations-06/integrations-06.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["marketing","integrations"],"type":"registry:block"},{"name":"integrations-07","title":"Integrations 07: Data flow","description":"Animated beams carry data from sources to destinations.","dependencies":["lucide-react","simple-icons"],"registryDependencies":["@lib/brand-logo","@lib/section-frame"],"files":[{"path":"src/registry/default/blocks/integrations/integrations-07/integrations-07.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["marketing","integrations"],"type":"registry:block"},{"name":"integrations-08","title":"Integrations 08: Directory","description":"Searchable, filterable logo directory with tags.","dependencies":["lucide-react","simple-icons"],"registryDependencies":["@lib/brand-logo","@lib/reveal","badge","input-group","toggle-group"],"files":[{"path":"src/registry/default/blocks/integrations/integrations-08/integrations-08.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["marketing","integrations"],"type":"registry:block"},{"name":"integrations-09","title":"Integrations 09: Deep integration cards","description":"Two integrations explained with a mock of what they do.","dependencies":["lucide-react","simple-icons"],"registryDependencies":["@lib/brand-logo","@lib/reveal","@lib/section-frame","button"],"files":[{"path":"src/registry/default/blocks/integrations/integrations-09/integrations-09.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["marketing","integrations"],"type":"registry:block"},{"name":"integrations-10","title":"Integrations 10: Request an integration","description":"Request form over a fading wall of brand logos.","dependencies":["lucide-react","simple-icons"],"registryDependencies":["@lib/brand-logo","@lib/reveal","input-group"],"files":[{"path":"src/registry/default/blocks/integrations/integrations-10/integrations-10.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["marketing","integrations"],"type":"registry:block"},{"name":"testimonials-01","title":"Testimonials 01: Single quote","description":"One large customer quote with name and role.","dependencies":["lucide-react"],"registryDependencies":["@lib/grid-pattern","@lib/people","@lib/section-frame","avatar"],"files":[{"path":"src/registry/default/blocks/testimonials/testimonials-01/testimonials-01.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["marketing","testimonials"],"type":"registry:block"},{"name":"testimonials-02","title":"Testimonials 02: Three cards","description":"Three quotes in cards with avatars.","dependencies":["lucide-react"],"registryDependencies":["@lib/people","@lib/section-frame","avatar"],"files":[{"path":"src/registry/default/blocks/testimonials/testimonials-02/testimonials-02.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["marketing","testimonials"],"type":"registry:block"},{"name":"testimonials-03","title":"Testimonials 03: Masonry wall","description":"A wall of quotes of different lengths in columns.","registryDependencies":["@lib/people","@lib/section-frame","avatar"],"files":[{"path":"src/registry/default/blocks/testimonials/testimonials-03/testimonials-03.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["marketing","testimonials"],"type":"registry:block"},{"name":"testimonials-04","title":"Testimonials 04: Quote with results","description":"A customer story quote next to the results they got.","dependencies":["lucide-react"],"registryDependencies":["@lib/grid-pattern","@lib/people","@lib/section-frame","avatar"],"files":[{"path":"src/registry/default/blocks/testimonials/testimonials-04/testimonials-04.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["marketing","testimonials"],"type":"registry:block"},{"name":"testimonials-05","title":"Testimonials 05: Ratings summary","description":"Average rating, star distribution and recent reviews.","dependencies":["lucide-react"],"registryDependencies":["@lib/people","@lib/section-frame","avatar"],"files":[{"path":"src/registry/default/blocks/testimonials/testimonials-05/testimonials-05.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["marketing","testimonials"],"type":"registry:block"},{"name":"testimonials-06","title":"Testimonials 06: Carousel","description":"One quote at a time with arrows and dots.","dependencies":["lucide-react"],"registryDependencies":["@lib/people","@lib/section-frame","button"],"files":[{"path":"src/registry/default/blocks/testimonials/testimonials-06/testimonials-06.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["marketing","testimonials"],"type":"registry:block"},{"name":"testimonials-07","title":"Testimonials 07: Scrolling columns","description":"Columns of quotes that scroll vertically at different speeds.","registryDependencies":["@lib/marquee","@lib/people","@lib/section-frame","avatar"],"files":[{"path":"src/registry/default/blocks/testimonials/testimonials-07/testimonials-07.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["marketing","testimonials"],"type":"registry:block"},{"name":"testimonials-08","title":"Testimonials 08: Video stories","description":"Video testimonial cards that open a player.","dependencies":["lucide-react"],"registryDependencies":["@lib/people","@lib/section-frame","dialog"],"files":[{"path":"src/registry/default/blocks/testimonials/testimonials-08/testimonials-08.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["marketing","testimonials"],"type":"registry:block"},{"name":"testimonials-09","title":"Testimonials 09: Social posts","description":"Customer posts with handle, date and engagement counts.","dependencies":["lucide-react","simple-icons"],"registryDependencies":["@lib/brand-logo","@lib/people","@lib/section-frame","avatar"],"files":[{"path":"src/registry/default/blocks/testimonials/testimonials-09/testimonials-09.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["marketing","testimonials"],"type":"registry:block"},{"name":"testimonials-10","title":"Testimonials 10: By team","description":"Tabs for each team with a quote and a headline result.","registryDependencies":["@lib/grid-pattern","@lib/people","@lib/section-frame","avatar","tabs"],"files":[{"path":"src/registry/default/blocks/testimonials/testimonials-10/testimonials-10.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["marketing","testimonials"],"type":"registry:block"},{"name":"cta-01","title":"CTA 01: Centered panel","description":"A centered call to action on a soft panel with two buttons.","dependencies":["lucide-react"],"registryDependencies":["@lib/grid-pattern","@lib/section-frame","button"],"files":[{"path":"src/registry/default/blocks/cta/cta-01/cta-01.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["marketing","cta"],"type":"registry:block"},{"name":"cta-02","title":"CTA 02: Split line","description":"Heading on the left, actions on the right, between two rules.","dependencies":["lucide-react"],"registryDependencies":["@lib/section-frame"],"files":[{"path":"src/registry/default/blocks/cta/cta-02/cta-02.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["marketing","cta"],"type":"registry:block"},{"name":"cta-03","title":"CTA 03: Newsletter","description":"Email sign up with a confirmation state.","dependencies":["lucide-react"],"registryDependencies":["@lib/people","@lib/section-frame","avatar","input-group"],"files":[{"path":"src/registry/default/blocks/cta/cta-03/cta-03.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["marketing","cta"],"type":"registry:block"},{"name":"cta-04","title":"CTA 04: Full-width band","description":"A bold band in the primary color.","dependencies":["lucide-react","simple-icons"],"registryDependencies":["@lib/brand-logo","@lib/reveal","button"],"files":[{"path":"src/registry/default/blocks/cta/cta-04/cta-04.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["marketing","cta"],"type":"registry:block"},{"name":"cta-05","title":"CTA 05: Checklist with preview","description":"Key reassurances next to a cropped product preview.","dependencies":["lucide-react"],"registryDependencies":["@lib/browser-frame","@lib/section-frame","button"],"files":[{"path":"src/registry/default/blocks/cta/cta-05/cta-05.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["marketing","cta"],"type":"registry:block"},{"name":"cta-06","title":"CTA 06: Grid glow with stats","description":"Glowing grid background with three proof points.","registryDependencies":["@lib/grid-pattern","@lib/section-frame","button"],"files":[{"path":"src/registry/default/blocks/cta/cta-06/cta-06.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["marketing","cta"],"type":"registry:block"},{"name":"cta-07","title":"CTA 07: Book a demo","description":"Pick a day and time slot to book a call, with confirmation.","dependencies":["lucide-react"],"registryDependencies":["@lib/people","@lib/section-frame","avatar","button","toggle-group"],"files":[{"path":"src/registry/default/blocks/cta/cta-07/cta-07.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["marketing","cta"],"type":"registry:block"},{"name":"cta-08","title":"CTA 08: Terminal command","description":"A copyable command for developer sign up.","dependencies":["lucide-react","simple-icons"],"registryDependencies":["@lib/brand-logo","@lib/grid-pattern","@lib/section-frame","button"],"files":[{"path":"src/registry/default/blocks/cta/cta-08/cta-08.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["marketing","cta"],"type":"registry:block"},{"name":"cta-09","title":"CTA 09: With testimonial","description":"A customer quote next to the sign up actions.","dependencies":["lucide-react"],"registryDependencies":["@lib/people","@lib/section-frame","button"],"files":[{"path":"src/registry/default/blocks/cta/cta-09/cta-09.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["marketing","cta"],"type":"registry:block"},{"name":"cta-10","title":"CTA 10: Animated border","description":"A card with a light that travels around its border.","dependencies":["lucide-react"],"registryDependencies":["@lib/grid-pattern","@lib/section-frame","button"],"files":[{"path":"src/registry/default/blocks/cta/cta-10/cta-10.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["marketing","cta"],"type":"registry:block"},{"name":"team-01","title":"Team 01: Avatar grid","description":"Team members in a grid of avatars with roles.","registryDependencies":["@lib/people","@lib/section-frame"],"files":[{"path":"src/registry/default/blocks/team/team-01/team-01.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["marketing","team"],"type":"registry:block"},{"name":"team-02","title":"Team 02: List with bios","description":"Key people in a list with a short bio each.","registryDependencies":["@lib/people","@lib/section-frame"],"files":[{"path":"src/registry/default/blocks/team/team-02/team-02.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["marketing","team"],"type":"registry:block"},{"name":"team-03","title":"Team 03: Contact cards","description":"Cards with email, social and website links.","dependencies":["lucide-react","simple-icons"],"registryDependencies":["@lib/brand-logo","@lib/people","@lib/section-frame","button"],"files":[{"path":"src/registry/default/blocks/team/team-03/team-03.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["marketing","team"],"type":"registry:block"},{"name":"team-04","title":"Team 04: Leaders and team","description":"Large cards for founders above a row of teammates.","registryDependencies":["@lib/people","@lib/section-frame","avatar"],"files":[{"path":"src/registry/default/blocks/team/team-04/team-04.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["marketing","team"],"type":"registry:block"},{"name":"team-05","title":"Team 05: With open roles","description":"Team cards ending with a link to open positions.","dependencies":["lucide-react"],"registryDependencies":["@lib/people","@lib/section-frame"],"files":[{"path":"src/registry/default/blocks/team/team-05/team-05.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["marketing","team"],"type":"registry:block"},{"name":"team-06","title":"Team 06: Hover bios","description":"Portrait cards that reveal a bio on hover or focus.","registryDependencies":["@lib/people","@lib/section-frame"],"files":[{"path":"src/registry/default/blocks/team/team-06/team-06.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["marketing","team"],"type":"registry:block"},{"name":"team-07","title":"Team 07: Filter by team","description":"Filter teammates by department with a toggle group.","registryDependencies":["@lib/people","@lib/section-frame","toggle-group"],"files":[{"path":"src/registry/default/blocks/team/team-07/team-07.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["marketing","team"],"type":"registry:block"},{"name":"team-08","title":"Team 08: Org chart","description":"A simple chart of who reports to whom.","registryDependencies":["@lib/grid-pattern","@lib/people","@lib/section-frame","avatar"],"files":[{"path":"src/registry/default/blocks/team/team-08/team-08.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["marketing","team"],"type":"registry:block"},{"name":"team-09","title":"Team 09: Remote hubs","description":"Cities with teammates and their live local time.","registryDependencies":["@lib/people","@lib/section-frame","avatar"],"files":[{"path":"src/registry/default/blocks/team/team-09/team-09.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["marketing","team"],"type":"registry:block"},{"name":"team-10","title":"Team 10: Founders story","description":"Founders portrait with their story and milestones.","registryDependencies":["@lib/people","@lib/section-frame","button"],"files":[{"path":"src/registry/default/blocks/team/team-10/team-10.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["marketing","team"],"type":"registry:block"},{"name":"contact-01","title":"Contact 01: Simple form","description":"Name, email and message in a centered card.","registryDependencies":["@lib/section-frame","button","field","input","textarea"],"files":[{"path":"src/registry/default/blocks/contact/contact-01/contact-01.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["marketing","contact"],"type":"registry:block"},{"name":"contact-02","title":"Contact 02: Details and form","description":"Email, phone and address next to a contact form.","dependencies":["lucide-react"],"registryDependencies":["@lib/section-frame","button","field","input","textarea"],"files":[{"path":"src/registry/default/blocks/contact/contact-02/contact-02.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["marketing","contact"],"type":"registry:block"},{"name":"contact-03","title":"Contact 03: Choose a team","description":"Cards that route visitors to sales, support or press.","dependencies":["lucide-react"],"registryDependencies":["@lib/section-frame"],"files":[{"path":"src/registry/default/blocks/contact/contact-03/contact-03.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["marketing","contact"],"type":"registry:block"},{"name":"contact-04","title":"Contact 04: Form with topic","description":"A topic select that routes the message, with guidance.","registryDependencies":["@lib/section-frame","button","field","input","select","textarea"],"files":[{"path":"src/registry/default/blocks/contact/contact-04/contact-04.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["marketing","contact"],"type":"registry:block"},{"name":"contact-05","title":"Contact 05: Offices map","description":"A list of offices that highlights each one on a map.","dependencies":["lucide-react"],"registryDependencies":["@lib/section-frame"],"files":[{"path":"src/registry/default/blocks/contact/contact-05/contact-05.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["marketing","contact"],"type":"registry:block"},{"name":"contact-06","title":"Contact 06: Two-step form","description":"Pick a topic first, then write the message, then a confirmation.","dependencies":["lucide-react"],"registryDependencies":["@lib/section-frame","button","field","input","textarea"],"files":[{"path":"src/registry/default/blocks/contact/contact-06/contact-06.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["marketing","contact"],"type":"registry:block"},{"name":"contact-07","title":"Contact 07: Sales request","description":"Sales form with company size and reasons to talk.","dependencies":["lucide-react"],"registryDependencies":["@lib/section-frame","button","field","input","radio-group","textarea"],"files":[{"path":"src/registry/default/blocks/contact/contact-07/contact-07.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["marketing","contact"],"type":"registry:block"},{"name":"contact-08","title":"Contact 08: Live chat","description":"A working chat preview with typing indicator.","dependencies":["lucide-react"],"registryDependencies":["@lib/people","@lib/section-frame","avatar","input-group"],"files":[{"path":"src/registry/default/blocks/contact/contact-08/contact-08.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["marketing","contact"],"type":"registry:block"},{"name":"contact-09","title":"Contact 09: Support ticket","description":"Ticket form with system status and current reply time.","dependencies":["lucide-react"],"registryDependencies":["@lib/section-frame","badge","button","field","input","select","textarea"],"files":[{"path":"src/registry/default/blocks/contact/contact-09/contact-09.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["marketing","contact"],"type":"registry:block"},{"name":"contact-10","title":"Contact 10: Validated form","description":"Inline validation errors, sending state and success.","dependencies":["lucide-react"],"registryDependencies":["@lib/section-frame","button","field","input","spinner","textarea"],"files":[{"path":"src/registry/default/blocks/contact/contact-10/contact-10.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["marketing","contact"],"type":"registry:block"},{"name":"blog-01","title":"Blog 01: Three cards","description":"Three recent posts with cover, category and author.","registryDependencies":["@lib/people","@lib/section-frame","avatar","badge"],"files":[{"path":"src/registry/default/blocks/blog/blog-01/blog-01.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["marketing","blog"],"type":"registry:block"},{"name":"blog-02","title":"Blog 02: Featured and latest","description":"A large featured post next to a list of latest posts.","registryDependencies":["@lib/section-frame","badge"],"files":[{"path":"src/registry/default/blocks/blog/blog-02/blog-02.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["marketing","blog"],"type":"registry:block"},{"name":"blog-03","title":"Blog 03: Dated list","description":"A minimal list of posts with dates and authors.","dependencies":["lucide-react"],"registryDependencies":["@lib/section-frame"],"files":[{"path":"src/registry/default/blocks/blog/blog-03/blog-03.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["marketing","blog"],"type":"registry:block"},{"name":"blog-04","title":"Blog 04: Category filter","description":"Post cards filtered by category.","registryDependencies":["@lib/section-frame","toggle-group"],"files":[{"path":"src/registry/default/blocks/blog/blog-04/blog-04.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["marketing","blog"],"type":"registry:block"},{"name":"blog-05","title":"Blog 05: Article page","description":"A full article with meta, prose and a table of contents.","dependencies":["lucide-react"],"registryDependencies":["@lib/people","avatar","badge","separator"],"files":[{"path":"src/registry/default/blocks/blog/blog-05/blog-05.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["marketing","blog"],"type":"registry:block"},{"name":"blog-06","title":"Blog 06: With newsletter sidebar","description":"Articles next to a newsletter sign up and most-read list.","dependencies":["lucide-react"],"registryDependencies":["@lib/section-frame","input-group"],"files":[{"path":"src/registry/default/blocks/blog/blog-06/blog-06.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["marketing","blog"],"type":"registry:block"},{"name":"blog-07","title":"Blog 07: Magazine","description":"Editorial layout with a lead story, side stories and a row of links.","registryDependencies":["@lib/section-frame"],"files":[{"path":"src/registry/default/blocks/blog/blog-07/blog-07.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["marketing","blog"],"type":"registry:block"},{"name":"blog-08","title":"Blog 08: Search and tags","description":"Search field and tag filters over a list of articles.","dependencies":["lucide-react"],"registryDependencies":["@lib/section-frame","badge","input-group"],"files":[{"path":"src/registry/default/blocks/blog/blog-08/blog-08.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["marketing","blog"],"type":"registry:block"},{"name":"blog-09","title":"Blog 09: Changelog","description":"Dated release notes on a timeline with labels.","registryDependencies":["@lib/section-frame","badge"],"files":[{"path":"src/registry/default/blocks/blog/blog-09/blog-09.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["marketing","blog"],"type":"registry:block"},{"name":"blog-10","title":"Blog 10: Reading progress","description":"Article with a reading progress bar and copy link button.","dependencies":["lucide-react"],"registryDependencies":["@lib/people","avatar","button"],"files":[{"path":"src/registry/default/blocks/blog/blog-10/blog-10.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["marketing","blog"],"type":"registry:block"},{"name":"footer-01","title":"Footer 01: One line","description":"Copyright and a few legal links on one line.","dependencies":["lucide-react"],"files":[{"path":"src/registry/default/blocks/footer/footer-01/footer-01.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["marketing","footer"],"type":"registry:block"},{"name":"footer-02","title":"Footer 02: Link columns","description":"Logo, tagline and four columns of links.","dependencies":["lucide-react"],"files":[{"path":"src/registry/default/blocks/footer/footer-02/footer-02.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["marketing","footer"],"type":"registry:block"},{"name":"footer-03","title":"Footer 03: With newsletter","description":"Newsletter sign up next to link columns.","dependencies":["lucide-react"],"registryDependencies":["input-group"],"files":[{"path":"src/registry/default/blocks/footer/footer-03/footer-03.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["marketing","footer"],"type":"registry:block"},{"name":"footer-04","title":"Footer 04: With call to action","description":"A final call to action above a compact footer bar.","dependencies":["lucide-react"],"registryDependencies":["button"],"files":[{"path":"src/registry/default/blocks/footer/footer-04/footer-04.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["marketing","footer"],"type":"registry:block"},{"name":"footer-05","title":"Footer 05: Centered minimal","description":"Centered logo, links and social buttons.","dependencies":["lucide-react","simple-icons"],"registryDependencies":["@lib/brand-logo","button"],"files":[{"path":"src/registry/default/blocks/footer/footer-05/footer-05.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["marketing","footer"],"type":"registry:block"},{"name":"footer-06","title":"Footer 06: Giant wordmark","description":"Link columns above an oversized fading wordmark.","files":[{"path":"src/registry/default/blocks/footer/footer-06/footer-06.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["marketing","footer"],"type":"registry:block"},{"name":"footer-07","title":"Footer 07: Status and preferences","description":"Status indicator, language picker and theme toggle.","dependencies":["lucide-react"],"registryDependencies":["@lib/theme-toggle","select"],"files":[{"path":"src/registry/default/blocks/footer/footer-07/footer-07.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["marketing","footer"],"type":"registry:block"},{"name":"footer-08","title":"Footer 08: Full sitemap","description":"Six columns covering the whole site, with company details.","dependencies":["lucide-react"],"files":[{"path":"src/registry/default/blocks/footer/footer-08/footer-08.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["marketing","footer"],"type":"registry:block"},{"name":"footer-09","title":"Footer 09: Contact cards","description":"Sales, support and office cards above the footer links.","dependencies":["lucide-react"],"files":[{"path":"src/registry/default/blocks/footer/footer-09/footer-09.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["marketing","footer"],"type":"registry:block"},{"name":"footer-10","title":"Footer 10: Grid and trial link","description":"Link columns on a fading grid, a trial link, social icons and a faint wordmark.","dependencies":["lucide-react","simple-icons"],"registryDependencies":["@lib/brand-logo","@lib/grid-pattern","@lib/section-frame"],"files":[{"path":"src/registry/default/blocks/footer/footer-10/footer-10.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["marketing","footer"],"type":"registry:block"},{"name":"not-found-01","title":"Error page 01: Simple 404","description":"A centered not-found message with two ways out.","dependencies":["lucide-react"],"registryDependencies":["@lib/grid-pattern","@lib/reveal","@lib/section-frame","button"],"files":[{"path":"src/registry/default/blocks/not-found/not-found-01/not-found-01.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["marketing","not-found"],"type":"registry:block"},{"name":"not-found-02","title":"Error page 02: Big number and search","description":"An oversized fading 404 with a search field.","dependencies":["lucide-react"],"registryDependencies":["@lib/reveal","input-group"],"files":[{"path":"src/registry/default/blocks/not-found/not-found-02/not-found-02.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["marketing","not-found"],"type":"registry:block"},{"name":"not-found-03","title":"Error page 03: Helpful links","description":"A 404 that lists the pages people usually look for.","dependencies":["lucide-react"],"registryDependencies":["@lib/reveal"],"files":[{"path":"src/registry/default/blocks/not-found/not-found-03/not-found-03.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["marketing","not-found"],"type":"registry:block"},{"name":"not-found-04","title":"Error page 04: Broken chart","description":"A playful 404 with a chart that drops off.","registryDependencies":["@lib/reveal","button"],"files":[{"path":"src/registry/default/blocks/not-found/not-found-04/not-found-04.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["marketing","not-found"],"type":"registry:block"},{"name":"not-found-05","title":"Error page 05: Server error","description":"A 500 page with reload, status link and error reference.","dependencies":["lucide-react"],"registryDependencies":["@lib/reveal","button"],"files":[{"path":"src/registry/default/blocks/not-found/not-found-05/not-found-05.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["marketing","not-found"],"type":"registry:block"},{"name":"not-found-06","title":"Error page 06: Glitch","description":"A 404 with a glitching, color-split number.","registryDependencies":["button"],"files":[{"path":"src/registry/default/blocks/not-found/not-found-06/not-found-06.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["marketing","not-found"],"type":"registry:block"},{"name":"not-found-07","title":"Error page 07: Command palette","description":"A 404 with a searchable list of pages and actions.","dependencies":["lucide-react"],"registryDependencies":["@lib/reveal","command"],"files":[{"path":"src/registry/default/blocks/not-found/not-found-07/not-found-07.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["marketing","not-found"],"type":"registry:block"},{"name":"not-found-08","title":"Error page 08: Maintenance","description":"Maintenance page with a live countdown and progress.","dependencies":["lucide-react"],"registryDependencies":["@lib/reveal","progress"],"files":[{"path":"src/registry/default/blocks/not-found/not-found-08/not-found-08.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["marketing","not-found"],"type":"registry:block"},{"name":"not-found-09","title":"Error page 09: Floating grid","description":"A 404 on a grid with slowly floating characters.","registryDependencies":["button"],"files":[{"path":"src/registry/default/blocks/not-found/not-found-09/not-found-09.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["marketing","not-found"],"type":"registry:block"},{"name":"not-found-10","title":"Error page 10: Access denied","description":"A 403 page with a request-access form and confirmation.","dependencies":["lucide-react"],"registryDependencies":["@lib/reveal","button","field","textarea"],"files":[{"path":"src/registry/default/blocks/not-found/not-found-10/not-found-10.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["marketing","not-found"],"type":"registry:block"},{"name":"ai-chat-01","title":"AI chat 01: Chat panel","description":"A chat card with a streaming answer, a thinking marker and a stop button.","dependencies":["lucide-react"],"registryDependencies":["@lib/people","avatar","bubble","card","input-group","marker","message","message-scroller","spinner"],"files":[{"path":"src/registry/default/blocks/ai-chat/ai-chat-01/ai-chat-01.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["app","ai-chat"],"type":"registry:block"},{"name":"ai-chat-02","title":"AI chat 02: Welcome with suggestions","description":"A greeting, a large composer and suggested prompts that start the conversation.","dependencies":["lucide-react"],"registryDependencies":["@lib/grid-pattern","bubble","input-group","marker","message","spinner"],"files":[{"path":"src/registry/default/blocks/ai-chat/ai-chat-02/ai-chat-02.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["app","ai-chat"],"type":"registry:block"},{"name":"ai-chat-03","title":"AI chat 03: Chat with history","description":"Conversation list on the side, model picker and a full-height transcript.","dependencies":["lucide-react"],"registryDependencies":["bubble","button","input-group","message","message-scroller","select"],"files":[{"path":"src/registry/default/blocks/ai-chat/ai-chat-03/ai-chat-03.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["app","ai-chat"],"type":"registry:block"},{"name":"ai-chat-04","title":"AI chat 04: Rich composer","description":"Prompt box with attached files, mentions, a web toggle and a model picker.","dependencies":["lucide-react"],"registryDependencies":["attachment","input-group","select","toggle"],"files":[{"path":"src/registry/default/blocks/ai-chat/ai-chat-04/ai-chat-04.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["app","ai-chat"],"type":"registry:block"},{"name":"ai-chat-05","title":"AI chat 05: Answer with sources","description":"An answer with numbered citations, hover previews and source cards.","dependencies":["lucide-react","simple-icons"],"registryDependencies":["@lib/brand-logo","bubble","button","hover-card","message"],"files":[{"path":"src/registry/default/blocks/ai-chat/ai-chat-05/ai-chat-05.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["app","ai-chat"],"type":"registry:block"},{"name":"ai-chat-06","title":"AI chat 06: Agent steps","description":"Tool calls shown as collapsible steps that run one after the other.","dependencies":["lucide-react"],"registryDependencies":["bubble","collapsible","marker","message","spinner"],"files":[{"path":"src/registry/default/blocks/ai-chat/ai-chat-06/ai-chat-06.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["app","ai-chat"],"type":"registry:block"},{"name":"ai-chat-07","title":"AI chat 07: Support widget","description":"A floating chat launcher with quick replies and a hand-off to a person.","dependencies":["lucide-react"],"registryDependencies":["@lib/people","avatar","bubble","button","input-group","marker","message"],"files":[{"path":"src/registry/default/blocks/ai-chat/ai-chat-07/ai-chat-07.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["app","ai-chat"],"type":"registry:block"},{"name":"ai-chat-08","title":"AI chat 08: Files and reactions","description":"Messages with attachments, upload state, reactions and date separators.","dependencies":["lucide-react"],"registryDependencies":["@lib/people","attachment","avatar","bubble","button","marker","message"],"files":[{"path":"src/registry/default/blocks/ai-chat/ai-chat-08/ai-chat-08.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["app","ai-chat"],"type":"registry:block"},{"name":"ai-chat-09","title":"AI chat 09: Copilot side panel","description":"A document with an AI panel that suggests a rewrite you can apply or undo.","dependencies":["lucide-react"],"registryDependencies":["bubble","button","input-group","message"],"files":[{"path":"src/registry/default/blocks/ai-chat/ai-chat-09/ai-chat-09.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["app","ai-chat"],"type":"registry:block"},{"name":"ai-chat-10","title":"AI chat 10: Model comparison","description":"Two answers side by side with speed and cost, to pick the better one.","dependencies":["lucide-react"],"registryDependencies":["badge","bubble","button","message"],"files":[{"path":"src/registry/default/blocks/ai-chat/ai-chat-10/ai-chat-10.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["app","ai-chat"],"type":"registry:block"},{"name":"kanban-01","title":"Kanban 01: Task board","description":"Four columns with drag and drop, keyboard moves, labels and assignees.","dependencies":["lucide-react"],"registryDependencies":["@lib/people","avatar","badge","button"],"files":[{"path":"src/registry/default/blocks/kanban/kanban-01/kanban-01.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["app","kanban"],"type":"registry:block"},{"name":"kanban-02","title":"Kanban 02: Work-in-progress limits","description":"Columns warn when they go over their limit, and old cards stand out.","dependencies":["lucide-react"],"registryDependencies":["@lib/people","avatar"],"files":[{"path":"src/registry/default/blocks/kanban/kanban-02/kanban-02.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["app","kanban"],"type":"registry:block"},{"name":"kanban-03","title":"Kanban 03: Swimlanes by person","description":"One lane per teammate; drop a card in another lane to reassign it.","registryDependencies":["@lib/people","avatar"],"files":[{"path":"src/registry/default/blocks/kanban/kanban-03/kanban-03.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["app","kanban"],"type":"registry:block"},{"name":"kanban-04","title":"Kanban 04: Card detail panel","description":"Cards open a side panel with details and a working checklist.","dependencies":["lucide-react"],"registryDependencies":["@lib/people","avatar","badge","checkbox","progress","separator","sheet"],"files":[{"path":"src/registry/default/blocks/kanban/kanban-04/kanban-04.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["app","kanban"],"type":"registry:block"},{"name":"kanban-05","title":"Kanban 05: Board and list views","description":"Switch the same tasks between a board and a grouped list.","dependencies":["lucide-react"],"registryDependencies":["@lib/people","avatar","badge","toggle-group"],"files":[{"path":"src/registry/default/blocks/kanban/kanban-05/kanban-05.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["app","kanban"],"type":"registry:block"},{"name":"kanban-06","title":"Kanban 06: Public roadmap","description":"Quarters as columns, with shipped, in-progress and planned states.","dependencies":["lucide-react"],"registryDependencies":["@lib/grid-pattern"],"files":[{"path":"src/registry/default/blocks/kanban/kanban-06/kanban-06.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["app","kanban"],"type":"registry:block"},{"name":"kanban-07","title":"Kanban 07: Sales pipeline","description":"Deals with values, stage totals, win probability and a weighted total.","registryDependencies":["@lib/people","avatar"],"files":[{"path":"src/registry/default/blocks/kanban/kanban-07/kanban-07.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["app","kanban"],"type":"registry:block"},{"name":"kanban-08","title":"Kanban 08: Hiring pipeline","description":"Candidates with photos, ratings and sources, moved by drag and drop.","dependencies":["lucide-react","simple-icons"],"registryDependencies":["@lib/brand-logo","@lib/people"],"files":[{"path":"src/registry/default/blocks/kanban/kanban-08/kanban-08.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["app","kanban"],"type":"registry:block"},{"name":"kanban-09","title":"Kanban 09: Inline editing","description":"Add cards and columns in place, with a menu on each column.","dependencies":["lucide-react"],"registryDependencies":["button","dropdown-menu","textarea"],"files":[{"path":"src/registry/default/blocks/kanban/kanban-09/kanban-09.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["app","kanban"],"type":"registry:block"},{"name":"kanban-10","title":"Kanban 10: Filters","description":"Filter the board by person with avatars, and by label.","dependencies":["lucide-react"],"registryDependencies":["@lib/people","avatar","badge","button","toggle-group"],"files":[{"path":"src/registry/default/blocks/kanban/kanban-10/kanban-10.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["app","kanban"],"type":"registry:block"},{"name":"calendar-01","title":"Calendar 01: Month view","description":"A month grid with colored events, today marker and month navigation.","dependencies":["date-fns","lucide-react"],"registryDependencies":["button"],"files":[{"path":"src/registry/default/blocks/calendar/calendar-01/calendar-01.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["app","calendar"],"type":"registry:block"},{"name":"calendar-02","title":"Calendar 02: Week view","description":"A time grid with events sized by duration, attendees and a now line.","dependencies":["lucide-react"],"registryDependencies":["@lib/people","avatar"],"files":[{"path":"src/registry/default/blocks/calendar/calendar-02/calendar-02.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["app","calendar"],"type":"registry:block"},{"name":"calendar-03","title":"Calendar 03: Day agenda","description":"Today's meetings on a timeline, with the current one and a join button.","dependencies":["lucide-react","simple-icons"],"registryDependencies":["@lib/brand-logo","@lib/people","avatar","badge","button"],"files":[{"path":"src/registry/default/blocks/calendar/calendar-03/calendar-03.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["app","calendar"],"type":"registry:block"},{"name":"calendar-04","title":"Calendar 04: Booking","description":"Pick a day and a time slot, then confirm, like a scheduling page.","dependencies":["date-fns","lucide-react"],"registryDependencies":["@lib/people","avatar","button","calendar"],"files":[{"path":"src/registry/default/blocks/calendar/calendar-04/calendar-04.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["app","calendar"],"type":"registry:block"},{"name":"calendar-05","title":"Calendar 05: Date range picker","description":"Two months, preset ranges and a day count, in a popover.","dependencies":["date-fns","lucide-react","react-day-picker"],"registryDependencies":["button","calendar","popover"],"files":[{"path":"src/registry/default/blocks/calendar/calendar-05/calendar-05.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.1"},"categories":["app","calendar"],"type":"registry:block"},{"name":"calendar-06","title":"Calendar 06: Mini calendar","description":"A compact calendar with busy days and the selected day's events.","dependencies":["date-fns","simple-icons"],"registryDependencies":["@lib/brand-logo","button","calendar"],"files":[{"path":"src/registry/default/blocks/calendar/calendar-06/calendar-06.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.1"},"categories":["app","calendar"],"type":"registry:block"},{"name":"calendar-07","title":"Calendar 07: Team availability","description":"Free, busy and off hours across time zones, to find a time for everyone.","registryDependencies":["@lib/people","avatar"],"files":[{"path":"src/registry/default/blocks/calendar/calendar-07/calendar-07.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["app","calendar"],"type":"registry:block"},{"name":"calendar-08","title":"Calendar 08: Event details","description":"A month grid where each event opens a popover with details and attendees.","dependencies":["date-fns","lucide-react"],"registryDependencies":["@lib/people","avatar","button","popover"],"files":[{"path":"src/registry/default/blocks/calendar/calendar-08/calendar-08.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["app","calendar"],"type":"registry:block"},{"name":"calendar-09","title":"Calendar 09: Year heatmap","description":"A year of daily activity as a contribution graph with tooltips.","dependencies":["date-fns"],"registryDependencies":["tooltip"],"files":[{"path":"src/registry/default/blocks/calendar/calendar-09/calendar-09.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["app","calendar"],"type":"registry:block"},{"name":"calendar-10","title":"Calendar 10: Project timeline","description":"Projects as bars across weeks, with owners and progress.","registryDependencies":["@lib/people","avatar"],"files":[{"path":"src/registry/default/blocks/calendar/calendar-10/calendar-10.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["app","calendar"],"type":"registry:block"},{"name":"charts-01","title":"Charts 01: Area with date range","description":"MRR over 7, 30 or 90 days with a gradient area, change and tooltip.","dependencies":["recharts"],"registryDependencies":["card","chart","toggle-group"],"files":[{"path":"src/registry/default/blocks/charts/charts-01/charts-01.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.1"},"categories":["app","charts"],"type":"registry:block"},{"name":"charts-02","title":"Charts 02: Stacked bars","description":"Revenue by plan per month, stacked, with a legend and a takeaway.","dependencies":["recharts"],"registryDependencies":["card","chart"],"files":[{"path":"src/registry/default/blocks/charts/charts-02/charts-02.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.1"},"categories":["app","charts"],"type":"registry:block"},{"name":"charts-03","title":"Charts 03: Year over year","description":"This year against last year, with a dashed line for the past.","dependencies":["recharts"],"registryDependencies":["card","chart"],"files":[{"path":"src/registry/default/blocks/charts/charts-03/charts-03.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.1"},"categories":["app","charts"],"type":"registry:block"},{"name":"charts-04","title":"Charts 04: Donut with legend","description":"A donut with its total in the center and a legend that highlights slices.","dependencies":["recharts"],"registryDependencies":["card","chart"],"files":[{"path":"src/registry/default/blocks/charts/charts-04/charts-04.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.1"},"categories":["app","charts"],"type":"registry:block"},{"name":"charts-05","title":"Charts 05: Goal rings","description":"Radial progress rings for quarterly goals in joined cells.","dependencies":["recharts"],"registryDependencies":["card","chart"],"files":[{"path":"src/registry/default/blocks/charts/charts-05/charts-05.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.1"},"categories":["app","charts"],"type":"registry:block"},{"name":"charts-06","title":"Charts 06: Bars and line","description":"Revenue bars and a margin line on two axes.","dependencies":["recharts"],"registryDependencies":["card","chart"],"files":[{"path":"src/registry/default/blocks/charts/charts-06/charts-06.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.1"},"categories":["app","charts"],"type":"registry:block"},{"name":"charts-07","title":"Charts 07: Ranking","description":"Horizontal bars with labels, switchable between two metrics.","dependencies":["recharts"],"registryDependencies":["card","chart","toggle-group"],"files":[{"path":"src/registry/default/blocks/charts/charts-07/charts-07.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.1"},"categories":["app","charts"],"type":"registry:block"},{"name":"charts-08","title":"Charts 08: Funnel","description":"Conversion steps with step-to-step rates and a readable scale.","dependencies":["lucide-react"],"registryDependencies":["card"],"files":[{"path":"src/registry/default/blocks/charts/charts-08/charts-08.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.1"},"categories":["app","charts"],"type":"registry:block"},{"name":"charts-09","title":"Charts 09: Small multiples","description":"Eight metrics with their own sparkline, colored by good or bad news.","dependencies":["recharts"],"registryDependencies":["chart"],"files":[{"path":"src/registry/default/blocks/charts/charts-09/charts-09.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["app","charts"],"type":"registry:block"},{"name":"charts-10","title":"Charts 10: Cohort heatmap","description":"Retention by signup month as a heatmap with tooltips.","registryDependencies":["card","tooltip"],"files":[{"path":"src/registry/default/blocks/charts/charts-10/charts-10.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.1"},"categories":["app","charts"],"type":"registry:block"},{"name":"inbox-01","title":"Inbox 01: Mail client","description":"Folders, a searchable message list and a reading pane with a reply box.","dependencies":["lucide-react"],"registryDependencies":["@lib/people","avatar","badge","button","empty","input-group","separator","textarea","tooltip"],"files":[{"path":"src/registry/default/blocks/inbox/inbox-01/inbox-01.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["app","inbox"],"type":"registry:block"},{"name":"inbox-02","title":"Inbox 02: Message list","description":"Tabs, stars, select all and bulk archive, mark read or delete.","dependencies":["lucide-react"],"registryDependencies":["button","checkbox","empty","tabs"],"files":[{"path":"src/registry/default/blocks/inbox/inbox-02/inbox-02.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.1"},"categories":["app","inbox"],"type":"registry:block"},{"name":"inbox-03","title":"Inbox 03: Thread","description":"A conversation that collapses older messages, with attachments and reply modes.","dependencies":["lucide-react"],"registryDependencies":["@lib/people","attachment","avatar","badge","button","textarea","toggle-group"],"files":[{"path":"src/registry/default/blocks/inbox/inbox-03/inbox-03.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["app","inbox"],"type":"registry:block"},{"name":"inbox-04","title":"Inbox 04: Compose","description":"A compose window with recipient chips, autocomplete, attachments and send later.","dependencies":["lucide-react"],"registryDependencies":["@lib/people","attachment","avatar","button","dropdown-menu","textarea"],"files":[{"path":"src/registry/default/blocks/inbox/inbox-04/inbox-04.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["app","inbox"],"type":"registry:block"},{"name":"inbox-05","title":"Inbox 05: Support inbox","description":"A shared inbox with status, assignees, SLA timers and internal notes.","dependencies":["lucide-react"],"registryDependencies":["@lib/people","avatar","badge","bubble","button","message","message-scroller","select","textarea","toggle-group"],"files":[{"path":"src/registry/default/blocks/inbox/inbox-05/inbox-05.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["app","inbox"],"type":"registry:block"},{"name":"inbox-06","title":"Inbox 06: Keyboard triage","description":"Clear the inbox with J, K, E and friends, with undo and an inbox zero state.","dependencies":["lucide-react"],"registryDependencies":["@lib/people","avatar","button","empty","kbd","progress"],"files":[{"path":"src/registry/default/blocks/inbox/inbox-06/inbox-06.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["app","inbox"],"type":"registry:block"},{"name":"inbox-07","title":"Inbox 07: Omnichannel","description":"Email, WhatsApp, Instagram and Messenger in one place, with the customer's orders.","dependencies":["lucide-react","simple-icons"],"registryDependencies":["@lib/brand-logo","@lib/people","avatar","badge","bubble","button","input-group","message","message-scroller","separator","toggle-group"],"files":[{"path":"src/registry/default/blocks/inbox/inbox-07/inbox-07.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["app","inbox"],"type":"registry:block"},{"name":"inbox-08","title":"Inbox 08: AI reply","description":"A summary of the email and a reply drafted by AI in the tone you pick.","dependencies":["lucide-react"],"registryDependencies":["@lib/people","avatar","badge","button","separator","spinner","textarea","toggle-group"],"files":[{"path":"src/registry/default/blocks/inbox/inbox-08/inbox-08.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["app","inbox"],"type":"registry:block"},{"name":"inbox-09","title":"Inbox 09: Screener","description":"New senders wait for a yes, then land in the Imbox, the Feed or the Paper trail.","dependencies":["lucide-react","simple-icons"],"registryDependencies":["@lib/brand-logo","@lib/people","avatar","button","empty","tabs"],"files":[{"path":"src/registry/default/blocks/inbox/inbox-09/inbox-09.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["app","inbox"],"type":"registry:block"},{"name":"inbox-10","title":"Inbox 10: Search","description":"Search with filters, grouped results and highlighted matches.","dependencies":["lucide-react"],"registryDependencies":["@lib/people","avatar","badge","button","empty","input-group","select","toggle"],"files":[{"path":"src/registry/default/blocks/inbox/inbox-10/inbox-10.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["app","inbox"],"type":"registry:block"},{"name":"notifications-01","title":"Notifications 01: Bell popover","description":"A bell with an unread count, all and unread tabs, and mark all as read.","dependencies":["lucide-react"],"registryDependencies":["@lib/people","avatar","button","popover","tabs"],"files":[{"path":"src/registry/default/blocks/notifications/notifications-01/notifications-01.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.1"},"categories":["app","notifications"],"type":"registry:block"},{"name":"notifications-02","title":"Notifications 02: Notifications page","description":"Notifications grouped by day, with filters by type and quoted excerpts.","dependencies":["lucide-react"],"registryDependencies":["@lib/people","avatar","button","empty","toggle-group"],"files":[{"path":"src/registry/default/blocks/notifications/notifications-02/notifications-02.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["app","notifications"],"type":"registry:block"},{"name":"notifications-03","title":"Notifications 03: Requests","description":"Invites, access requests and expenses to answer in place, with undo.","dependencies":["lucide-react"],"registryDependencies":["@lib/people","avatar","badge","button","card"],"files":[{"path":"src/registry/default/blocks/notifications/notifications-03/notifications-03.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.1"},"categories":["app","notifications"],"type":"registry:block"},{"name":"notifications-04","title":"Notifications 04: Preferences","description":"Choose in app, email or mobile for each event, with a pause switch.","dependencies":["lucide-react"],"registryDependencies":["button","card","checkbox","field","switch"],"files":[{"path":"src/registry/default/blocks/notifications/notifications-04/notifications-04.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.1"},"categories":["app","notifications"],"type":"registry:block"},{"name":"notifications-05","title":"Notifications 05: What's new","description":"Product updates with a featured card and seen or unseen markers.","dependencies":["lucide-react"],"registryDependencies":["badge","button","card"],"files":[{"path":"src/registry/default/blocks/notifications/notifications-05/notifications-05.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.1"},"categories":["app","notifications"],"type":"registry:block"},{"name":"notifications-06","title":"Notifications 06: Notification center","description":"A side panel that groups similar events, with snooze and archive.","dependencies":["lucide-react"],"registryDependencies":["@lib/people","avatar","button","dropdown-menu","empty","sheet","tabs"],"files":[{"path":"src/registry/default/blocks/notifications/notifications-06/notifications-06.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["app","notifications"],"type":"registry:block"},{"name":"notifications-07","title":"Notifications 07: Email digest","description":"Digest settings next to a live preview of the email.","registryDependencies":["@lib/people","avatar","card","checkbox","field","select","toggle-group"],"files":[{"path":"src/registry/default/blocks/notifications/notifications-07/notifications-07.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["app","notifications"],"type":"registry:block"},{"name":"notifications-08","title":"Notifications 08: System alerts","description":"Alerts by severity with acknowledge, resolve and a timeline.","dependencies":["lucide-react"],"registryDependencies":["@lib/people","avatar","badge","button","toggle-group"],"files":[{"path":"src/registry/default/blocks/notifications/notifications-08/notifications-08.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["app","notifications"],"type":"registry:block"},{"name":"notifications-09","title":"Notifications 09: Mentions","description":"Mentions with their context and a reply box, marked done when you answer.","dependencies":["lucide-react"],"registryDependencies":["@lib/people","avatar","button","input-group"],"files":[{"path":"src/registry/default/blocks/notifications/notifications-09/notifications-09.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["app","notifications"],"type":"registry:block"},{"name":"notifications-10","title":"Notifications 10: Live activity","description":"A live stream that queues new events while you read, with pause.","dependencies":["lucide-react"],"registryDependencies":["@lib/people","avatar","button","card"],"files":[{"path":"src/registry/default/blocks/notifications/notifications-10/notifications-10.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.1"},"categories":["app","notifications"],"type":"registry:block"},{"name":"files-01","title":"Files 01: File browser","description":"Folders and files in a grid or a list, with breadcrumbs and an empty folder state.","dependencies":["lucide-react"],"registryDependencies":["breadcrumb","button","empty","toggle-group"],"files":[{"path":"src/registry/default/blocks/files/files-01/files-01.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["app","files"],"type":"registry:block"},{"name":"files-02","title":"Files 02: Upload","description":"A drop zone with progress per file, size limits, errors and retry.","dependencies":["lucide-react"],"registryDependencies":["button","card","progress"],"files":[{"path":"src/registry/default/blocks/files/files-02/files-02.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.1"},"categories":["app","files"],"type":"registry:block"},{"name":"files-03","title":"Files 03: File table","description":"Sortable columns with folders on top, owners, bulk actions and row menus.","dependencies":["lucide-react"],"registryDependencies":["@lib/people","avatar","button","checkbox","dropdown-menu","table"],"files":[{"path":"src/registry/default/blocks/files/files-03/files-03.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["app","files"],"type":"registry:block"},{"name":"files-04","title":"Files 04: Storage","description":"Space used by file type, the largest files and a nudge to upgrade.","dependencies":["lucide-react"],"registryDependencies":["button","card"],"files":[{"path":"src/registry/default/blocks/files/files-04/files-04.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.1"},"categories":["app","files"],"type":"registry:block"},{"name":"files-05","title":"Files 05: Share dialog","description":"Invite people with a role, change link access and copy the link.","dependencies":["lucide-react"],"registryDependencies":["@lib/people","avatar","button","dialog","input-group","select","separator"],"files":[{"path":"src/registry/default/blocks/files/files-05/files-05.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.1"},"categories":["app","files"],"type":"registry:block"},{"name":"files-06","title":"Files 06: Explorer","description":"A folder tree, a file grid and a details panel with sharing and activity.","dependencies":["lucide-react"],"registryDependencies":["@lib/people","avatar","button","collapsible","select","separator"],"files":[{"path":"src/registry/default/blocks/files/files-06/files-06.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["app","files"],"type":"registry:block"},{"name":"files-07","title":"Files 07: Media library","description":"A masonry grid of photos with albums, multi-select and a preview viewer.","dependencies":["lucide-react"],"registryDependencies":["button","dialog","toggle-group"],"files":[{"path":"src/registry/default/blocks/files/files-07/files-07.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["app","files"],"type":"registry:block"},{"name":"files-08","title":"Files 08: Version history","description":"Every version of a file, changes against the current one and restore.","dependencies":["lucide-react"],"registryDependencies":["@lib/people","alert-dialog","avatar","badge","button","label","switch"],"files":[{"path":"src/registry/default/blocks/files/files-08/files-08.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["app","files"],"type":"registry:block"},{"name":"files-09","title":"Files 09: Drive home","description":"Suggested files, folders and tabs for recent, shared and starred files.","dependencies":["lucide-react"],"registryDependencies":["@lib/people","avatar","button","input-group","tabs"],"files":[{"path":"src/registry/default/blocks/files/files-09/files-09.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["app","files"],"type":"registry:block"},{"name":"files-10","title":"Files 10: Trash","description":"Days left before deletion, bulk restore and a confirmed empty trash.","dependencies":["lucide-react"],"registryDependencies":["@lib/people","alert-dialog","avatar","button","checkbox","empty"],"files":[{"path":"src/registry/default/blocks/files/files-10/files-10.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["app","files"],"type":"registry:block"},{"name":"gallery-01","title":"Gallery 01: Lightbox grid","description":"A photo grid that opens a lightbox with captions and arrow-key navigation.","dependencies":["lucide-react"],"registryDependencies":["button","dialog"],"files":[{"path":"src/registry/default/blocks/gallery/gallery-01/gallery-01.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["marketing","gallery"],"type":"registry:block"},{"name":"gallery-02","title":"Gallery 02: Masonry albums","description":"A masonry layout of photos filtered by album.","registryDependencies":["toggle-group"],"files":[{"path":"src/registry/default/blocks/gallery/gallery-02/gallery-02.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["marketing","gallery"],"type":"registry:block"},{"name":"gallery-03","title":"Gallery 03: Bento stories","description":"A bento grid of photo stories, each card linking to the full story.","dependencies":["lucide-react"],"files":[{"path":"src/registry/default/blocks/gallery/gallery-03/gallery-03.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["marketing","gallery"],"type":"registry:block"},{"name":"gallery-04","title":"Gallery 04: Product gallery","description":"Product shots with thumbnails, hover zoom and the buy box beside them.","registryDependencies":["badge","button"],"files":[{"path":"src/registry/default/blocks/gallery/gallery-04/gallery-04.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["marketing","gallery"],"type":"registry:block"},{"name":"gallery-05","title":"Gallery 05: Before and after","description":"A comparison slider between two photos, usable with the mouse, touch and keyboard.","dependencies":["lucide-react"],"files":[{"path":"src/registry/default/blocks/gallery/gallery-05/gallery-05.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["marketing","gallery"],"type":"registry:block"},{"name":"gallery-06","title":"Gallery 06: Full-screen viewer","description":"A photo mosaic that opens a full-screen viewer with a filmstrip, swipe and download.","dependencies":["lucide-react"],"registryDependencies":["button","dialog"],"files":[{"path":"src/registry/default/blocks/gallery/gallery-06/gallery-06.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["marketing","gallery"],"type":"registry:block"},{"name":"gallery-07","title":"Gallery 07: Justified rows","description":"Rows of photos that keep their ratio and fill the width, with blur-in loading and likes.","dependencies":["lucide-react"],"files":[{"path":"src/registry/default/blocks/gallery/gallery-07/gallery-07.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["marketing","gallery"],"type":"registry:block"},{"name":"gallery-08","title":"Gallery 08: Portfolio","description":"Projects filtered by kind, a second photo on hover and a detail sheet per project.","dependencies":["lucide-react"],"registryDependencies":["badge","button","sheet","toggle-group"],"files":[{"path":"src/registry/default/blocks/gallery/gallery-08/gallery-08.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["marketing","gallery"],"type":"registry:block"},{"name":"gallery-09","title":"Gallery 09: Photo story","description":"An editorial story where a pinned photo changes as each chapter scrolls by.","files":[{"path":"src/registry/default/blocks/gallery/gallery-09/gallery-09.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["marketing","gallery"],"type":"registry:block"},{"name":"gallery-10","title":"Gallery 10: Photo manager","description":"Upload by drop, reorder by drag or keyboard, choose a cover and delete in bulk.","dependencies":["lucide-react"],"registryDependencies":["badge","button","card","checkbox","empty"],"files":[{"path":"src/registry/default/blocks/gallery/gallery-10/gallery-10.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["marketing","gallery"],"type":"registry:block"},{"name":"carousel-01","title":"Carousel 01: Destinations","description":"Full-width photo slides with captions, arrows and dot indicators.","registryDependencies":["carousel"],"files":[{"path":"src/registry/default/blocks/carousel/carousel-01/carousel-01.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["marketing","carousel"],"type":"registry:block"},{"name":"carousel-02","title":"Carousel 02: Product row","description":"Several product cards per view with previous and next in the header.","dependencies":["lucide-react"],"registryDependencies":["badge","button","carousel"],"files":[{"path":"src/registry/default/blocks/carousel/carousel-02/carousel-02.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["marketing","carousel"],"type":"registry:block"},{"name":"carousel-03","title":"Carousel 03: Autoplay hero","description":"A hero slider with a progress bar per slide, pause on hover and a play button. Still for reduced motion.","dependencies":["lucide-react"],"registryDependencies":["button","carousel"],"files":[{"path":"src/registry/default/blocks/carousel/carousel-03/carousel-03.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["marketing","carousel"],"type":"registry:block"},{"name":"carousel-04","title":"Carousel 04: Thumbnails","description":"A main carousel kept in sync with a draggable strip of thumbnails.","registryDependencies":["carousel"],"files":[{"path":"src/registry/default/blocks/carousel/carousel-04/carousel-04.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["marketing","carousel"],"type":"registry:block"},{"name":"carousel-05","title":"Carousel 05: Vertical updates","description":"A vertical carousel of product updates next to the heading.","dependencies":["lucide-react"],"registryDependencies":["badge","button","card","carousel"],"files":[{"path":"src/registry/default/blocks/carousel/carousel-05/carousel-05.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["marketing","carousel"],"type":"registry:block"},{"name":"carousel-06","title":"Carousel 06: Coverflow","description":"Album covers that scale and fade with their distance from the center while you drag.","registryDependencies":["carousel"],"files":[{"path":"src/registry/default/blocks/carousel/carousel-06/carousel-06.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["marketing","carousel"],"type":"registry:block"},{"name":"carousel-07","title":"Carousel 07: Plans","description":"Plans side by side on desktop, and a swipeable plan per slide with tabs on phones.","dependencies":["lucide-react"],"registryDependencies":["badge","button","card","carousel","toggle-group"],"files":[{"path":"src/registry/default/blocks/carousel/carousel-07/carousel-07.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["marketing","carousel"],"type":"registry:block"},{"name":"carousel-08","title":"Carousel 08: Stories","description":"A row of story avatars opening a player with segmented progress, tap zones and pause.","dependencies":["lucide-react"],"registryDependencies":["@lib/people","avatar","button","dialog"],"files":[{"path":"src/registry/default/blocks/carousel/carousel-08/carousel-08.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["marketing","carousel"],"type":"registry:block"},{"name":"carousel-09","title":"Carousel 09: Timeline","description":"Company milestones, one year per slide, with year tabs that follow the carousel.","registryDependencies":["card","carousel","toggle-group"],"files":[{"path":"src/registry/default/blocks/carousel/carousel-09/carousel-09.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["marketing","carousel"],"type":"registry:block"},{"name":"carousel-10","title":"Carousel 10: Testimonials loop","description":"Looping testimonials with the centered card in focus and avatars to jump to a person.","dependencies":["lucide-react"],"registryDependencies":["@lib/people","avatar","card","carousel"],"files":[{"path":"src/registry/default/blocks/carousel/carousel-10/carousel-10.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["marketing","carousel"],"type":"registry:block"},{"name":"logs-01","title":"Logs 01: Live stream","description":"Log lines arriving live, with level filters, pause and a jump back to the newest lines.","dependencies":["lucide-react"],"registryDependencies":["badge","button","card","toggle-group"],"files":[{"path":"src/registry/default/blocks/logs/logs-01/logs-01.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.1"},"categories":["app","logs"],"type":"registry:block"},{"name":"logs-02","title":"Logs 02: Search","description":"Search messages and attributes by service and level; each line opens its structured fields.","dependencies":["lucide-react"],"registryDependencies":["card","empty","input-group","select","toggle-group"],"files":[{"path":"src/registry/default/blocks/logs/logs-02/logs-02.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.0"},"categories":["app","logs"],"type":"registry:block"},{"name":"logs-03","title":"Logs 03: HTTP requests","description":"Requests with method, status, duration bars and p50/p95, and a detail sheet per request.","registryDependencies":["badge","card","sheet","table","toggle-group"],"files":[{"path":"src/registry/default/blocks/logs/logs-03/logs-03.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.1"},"categories":["app","logs"],"type":"registry:block"},{"name":"logs-04","title":"Logs 04: Audit log","description":"Who changed what and when, grouped by day, filtered by member and area, exported as CSV.","dependencies":["lucide-react"],"registryDependencies":["@lib/people","avatar","badge","button","card","select","toggle-group"],"files":[{"path":"src/registry/default/blocks/logs/logs-04/logs-04.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.1"},"categories":["app","logs"],"type":"registry:block"},{"name":"logs-05","title":"Logs 05: Deployment log","description":"Build steps with durations and terminal output, the failed step open, and a rerun that plays out.","dependencies":["lucide-react"],"registryDependencies":["@lib/people","avatar","badge","button","card","collapsible","spinner"],"files":[{"path":"src/registry/default/blocks/logs/logs-05/logs-05.tsx","type":"registry:component"}],"meta":{"tier":"free","version":"1.0.1"},"categories":["app","logs"],"type":"registry:block"},{"name":"logs-06","title":"Logs 06: Log explorer","description":"A query bar, a volume histogram by level you can click, facet counts and the matching lines.","dependencies":["lucide-react","recharts"],"registryDependencies":["button","card","chart","checkbox","input-group","label","toggle-group"],"files":[{"path":"src/registry/default/blocks/logs/logs-06/logs-06.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["app","logs"],"type":"registry:block"},{"name":"logs-07","title":"Logs 07: Error groups","description":"Errors grouped with events, users and trend, a stack trace, assignee and resolve or ignore.","dependencies":["lucide-react"],"registryDependencies":["@lib/people","@lib/sparkline","avatar","badge","button","card","select","toggle-group"],"files":[{"path":"src/registry/default/blocks/logs/logs-07/logs-07.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["app","logs"],"type":"registry:block"},{"name":"logs-08","title":"Logs 08: Trace waterfall","description":"The spans of one request on a timeline across services, collapsible, with each span's details.","dependencies":["lucide-react"],"registryDependencies":["badge","card"],"files":[{"path":"src/registry/default/blocks/logs/logs-08/logs-08.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["app","logs"],"type":"registry:block"},{"name":"logs-09","title":"Logs 09: Live tail with pins","description":"A live stream that highlights your search, shows context around a line and keeps pinned lines.","dependencies":["lucide-react"],"registryDependencies":["button","card","input-group"],"files":[{"path":"src/registry/default/blocks/logs/logs-09/logs-09.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.0"},"categories":["app","logs"],"type":"registry:block"},{"name":"logs-10","title":"Logs 10: Log alerts","description":"Alert rules with their recent counts against the threshold, firing state, mute and a new-rule form.","dependencies":["lucide-react"],"registryDependencies":["@lib/sparkline","badge","button","card","dialog","field","input","select","switch"],"files":[{"path":"src/registry/default/blocks/logs/logs-10/logs-10.tsx","type":"registry:component"}],"meta":{"tier":"pro","version":"1.0.1"},"categories":["app","logs"],"type":"registry:block"}]}