@ui8kit/blocks
Version:
A collection of 50+ blocks for state and UI management for buildy
111 lines (98 loc) • 3.17 kB
text/typescript
// Atomic components
export * from "./ui";
// Composite components
export * from "./components";
// Ready-to-use presets
export * from "./presets";
// Types, content, and schema
export * from "./types";
export * from "./content";
export * from "./schema";
// Templates for integration with existing system
import { GridBlog } from "./presets/grid-blog";
import { SplitBlog } from "./presets/split-blog";
import { blogContent } from "./content";
import { blogSchema } from "./schema";
export const blogTemplates = {
gridCards: {
id: "gridBlogCards",
name: "Blog Cards Grid",
description: "Grid layout with blog post cards",
component: GridBlog,
defaultProps: { variant: "cards" as const },
defaults: blogContent.cards,
schema: blogSchema
},
gridFiltered: {
id: "gridBlogFiltered",
name: "Filtered Blog Grid",
description: "Grid layout with category filters",
component: GridBlog,
defaultProps: { variant: "filtered" as const },
defaults: blogContent.filtered,
schema: blogSchema
},
gridCompact: {
id: "gridBlogCompact",
name: "Compact Blog List",
description: "Compact list layout for blog posts",
component: GridBlog,
defaultProps: { variant: "compact" as const, cols: "1" as const },
defaults: blogContent.cards,
schema: blogSchema
},
gridFeatured: {
id: "gridBlogFeatured",
name: "Featured Blog Grid",
description: "Grid layout with featured post highlight",
component: GridBlog,
defaultProps: { variant: "featured" as const, cols: "1-2-4" as const },
defaults: blogContent.cards,
schema: blogSchema
},
splitNews: {
id: "splitBlogNews",
name: "Blog News Split",
description: "Split layout with main content and related posts",
component: SplitBlog,
defaultProps: { variant: "news" as const },
defaults: blogContent.news,
schema: blogSchema
},
splitSlider: {
id: "splitBlogSlider",
name: "Blog Slider Split",
description: "Split layout with post navigation",
component: SplitBlog,
defaultProps: { variant: "slider" as const },
defaults: blogContent.news,
schema: blogSchema
},
splitFeatured: {
id: "splitBlogFeatured",
name: "Featured Blog Split",
description: "Split layout highlighting one main post",
component: SplitBlog,
defaultProps: { variant: "featured" as const },
defaults: blogContent.news,
schema: blogSchema
},
splitNewsletter: {
id: "splitBlogNewsletter",
name: "Newsletter Blog Split",
description: "Split layout focused on newsletter subscription",
component: SplitBlog,
defaultProps: { variant: "newsletter" as const },
defaults: blogContent.newsletter,
schema: blogSchema
},
splitTimeline: {
id: "splitBlogTimeline",
name: "Timeline Blog Split",
description: "Split layout with chronological post timeline",
component: SplitBlog,
defaultProps: { variant: "timeline" as const },
defaults: blogContent.news,
schema: blogSchema
}
};