You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
svelte-kit-vice/web/routes/blocks/_lib/catalog.ts

81 lines
3.1 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

/**
* The blocks catalog — one source for the section rail and the gallery index,
* so a block that lands does not have to be remembered in two places.
* Mirrors `docs/process/PLAN-blocks.md` (F2–F4).
*/
export interface BlockEntry {
slug: string;
label: string;
/** A live demo exists at `/blocks/{slug}`. */
shipped: boolean;
/**
* What lives behind the slug. `block` (the default) means a block of the tier
* and `npm run blocks:check` demands one at `src/uix/blocks/{slug}`; `page` is
* a COMPOSED page — a route with no block behind it, which the rail publishes
* all the same because it is the artefact that proves the blocks assemble.
* @default 'block'
*/
kind?: 'block' | 'page';
}
export interface BlockGroup {
title: string;
items: BlockEntry[];
}
export const BLOCK_CATALOG: BlockGroup[] = [
{
// The composed page goes FIRST because it is the one artefact that proves
// what a block-by-block gallery cannot: that they assemble. Every reference
// catalog ships one for the same reason.
title: 'Compuesto',
items: [{ slug: 'landing', label: 'Landing (14 blocks)', shipped: true, kind: 'page' }]
},
{
title: 'Site',
items: [
{ slug: 'site-header', label: 'Site header', shipped: true },
{ slug: 'hero', label: 'Hero', shipped: true },
{ slug: 'feature-grid', label: 'Feature grid', shipped: true },
{ slug: 'feature-split', label: 'Feature split', shipped: true },
{ slug: 'pricing', label: 'Pricing', shipped: true },
{ slug: 'testimonials', label: 'Testimonials', shipped: true },
{ slug: 'faq', label: 'FAQ', shipped: true },
{ slug: 'stats-band', label: 'Stats band', shipped: true },
{ slug: 'logo-cloud', label: 'Logo cloud', shipped: true },
{ slug: 'article-grid', label: 'Article grid (blog)', shipped: true },
{ slug: 'cta', label: 'CTA', shipped: true },
{ slug: 'newsletter', label: 'Newsletter', shipped: true },
{ slug: 'site-footer', label: 'Site footer', shipped: true },
{ slug: 'banner', label: 'Banner', shipped: true },
{ slug: 'team', label: 'Team', shipped: true },
{ slug: 'contact', label: 'Contact', shipped: true },
{ slug: 'content-section', label: 'Content section', shipped: true },
{ slug: 'cookie-consent', label: 'Cookie consent', shipped: true }
]
},
{
title: 'App',
items: [
{ slug: 'app-shell', label: 'App shell', shipped: true },
{ slug: 'auth', label: 'Auth', shipped: false },
{ slug: 'data-table', label: 'Data table', shipped: false },
{ slug: 'dashboard', label: 'Dashboard', shipped: false },
{ slug: 'settings', label: 'Settings', shipped: false },
{ slug: 'user-menu', label: 'User menu', shipped: false },
{ slug: 'notifications', label: 'Notifications', shipped: false },
{ slug: 'wizard', label: 'Wizard', shipped: false },
{ slug: 'error-page', label: 'Error page', shipped: false },
{ slug: 'kanban', label: 'Kanban', shipped: false }
]
},
{
title: 'Docs',
items: [
{ slug: 'docs-shell', label: 'Docs shell', shipped: false },
{ slug: 'code-showcase', label: 'Code showcase', shipped: false },
{ slug: 'props-table', label: 'Props table', shipped: false }
]
}
];

Powered by TurnKey Linux.