Files
bbf72c0b-a095-4fae-87f9-06c…/registry.json
2026-04-10 03:20:23 +03:00

267 lines
13 KiB
JSON

{
"componentRegistry": {
"navbar": [
{
"name": "NavbarCentered",
"import": "import NavbarCentered from '@/components/ui/NavbarCentered';",
"path": "@/components/ui/NavbarCentered",
"description": "Centered navigation bar with logo, links and buttons",
"propsSchema": {
"logo": "string",
"navItems": "{ name: string; href: string }[]",
"ctaButton": "{ text: string; href: string }"
}
}
]
},
"sectionRegistry": {
"hero": [
{
"name": "HeroBillboard",
"import": "import HeroBillboard from '@/components/sections/hero/HeroBillboard';",
"path": "@/components/sections/hero/HeroBillboard",
"description": "Full-width centered hero with media below text content",
"propsSchema": {
"tag": "string",
"title": "string",
"description": "string",
"primaryButton": "{ text: string; href: string }",
"secondaryButton": "{ text: string; href: string }",
"imageSrc": "string \u2014 image URL (provide imageSrc OR videoSrc, not both)",
"videoSrc": "string \u2014 video URL (provide imageSrc OR videoSrc, not both)"
}
},
{
"name": "HeroBillboardGallery",
"import": "import HeroBillboardGallery from '@/components/sections/hero/HeroBillboardGallery';",
"path": "@/components/sections/hero/HeroBillboardGallery",
"description": "Full-width centered hero with image gallery below",
"propsSchema": {
"tag": "string",
"title": "string",
"description": "string",
"primaryButton": "{ text: string; href: string }",
"secondaryButton": "{ text: string; href: string }",
"items": "({ imageSrc: string; videoSrc?: never } | { videoSrc: string; imageSrc?: never })[]"
}
},
{
"name": "HeroSplit",
"import": "import HeroSplit from '@/components/sections/hero/HeroSplit';",
"path": "@/components/sections/hero/HeroSplit",
"description": "Split layout hero with text on left, media on right",
"propsSchema": {
"tag": "string",
"title": "string",
"description": "string",
"primaryButton": "{ text: string; href: string }",
"secondaryButton": "{ text: string; href: string }",
"imageSrc": "string \u2014 image URL (provide imageSrc OR videoSrc, not both)",
"videoSrc": "string \u2014 video URL (provide imageSrc OR videoSrc, not both)"
}
}
],
"about": [
{
"name": "AboutFeaturesSplit",
"import": "import AboutFeaturesSplit from '@/components/sections/about/AboutFeaturesSplit';",
"path": "@/components/sections/about/AboutFeaturesSplit",
"description": "About section with feature list on left, media on right",
"propsSchema": {
"tag": "string",
"title": "string",
"description": "string",
"primaryButton?": "{ text: string; href: string }",
"secondaryButton?": "{ text: string; href: string }",
"items": "{ icon: LucideIcon (import from lucide-react, pass as component reference e.g. icon={Star} not icon=\"Star\"); title: string; description: string }[]",
"imageSrc": "string \u2014 image URL (provide imageSrc OR videoSrc, not both)",
"videoSrc": "string \u2014 video URL (provide imageSrc OR videoSrc, not both)"
}
},
{
"name": "AboutMediaOverlay",
"import": "import AboutMediaOverlay from '@/components/sections/about/AboutMediaOverlay';",
"path": "@/components/sections/about/AboutMediaOverlay",
"description": "About section with text overlaid on media background",
"propsSchema": {
"tag": "string",
"title": "string",
"description": "string",
"primaryButton?": "{ text: string; href: string }",
"secondaryButton?": "{ text: string; href: string }",
"imageSrc": "string \u2014 image URL (provide imageSrc OR videoSrc, not both)",
"videoSrc": "string \u2014 video URL (provide imageSrc OR videoSrc, not both)"
}
},
{
"name": "AboutTestimonial",
"import": "import AboutTestimonial from '@/components/sections/about/AboutTestimonial';",
"path": "@/components/sections/about/AboutTestimonial",
"description": "Testimonial section with quote and author info",
"propsSchema": {
"tag": "string",
"quote": "string",
"author": "string",
"role": "string",
"imageSrc": "string \u2014 image URL (provide imageSrc OR videoSrc, not both)",
"videoSrc": "string \u2014 video URL (provide imageSrc OR videoSrc, not both)"
}
},
{
"name": "AboutTextSplit",
"import": "import AboutTextSplit from '@/components/sections/about/AboutTextSplit';",
"path": "@/components/sections/about/AboutTextSplit",
"description": "Text-only about section with title on left, descriptions on right",
"propsSchema": {
"title": "string",
"descriptions": "string[]",
"primaryButton?": "{ text: string; href: string }",
"secondaryButton?": "{ text: string; href: string }"
}
}
],
"features": [
{
"name": "FeaturesMediaCards",
"import": "import FeaturesMediaCards from '@/components/sections/features/FeaturesMediaCards';",
"path": "@/components/sections/features/FeaturesMediaCards",
"description": "Features section with media cards in grid or carousel",
"propsSchema": {
"tag": "string",
"title": "string",
"description": "string",
"primaryButton?": "{ text: string; href: string }",
"secondaryButton?": "{ text: string; href: string }",
"items": "({ title: string; description: string } & ({ imageSrc: string; videoSrc?: never } | { videoSrc: string; imageSrc?: never }))[]"
}
},
{
"name": "FeaturesAlternatingSplit",
"import": "import FeaturesAlternatingSplit from '@/components/sections/features/FeaturesAlternatingSplit';",
"path": "@/components/sections/features/FeaturesAlternatingSplit",
"description": "Features section with numbered alternating left/right split cards",
"propsSchema": {
"tag": "string",
"title": "string",
"description": "string",
"primaryButton?": "{ text: string; href: string }",
"secondaryButton?": "{ text: string; href: string }",
"items": "({ title: string; description: string; primaryButton?: { text: string; href: string }; secondaryButton?: { text: string; href: string } } & ({ imageSrc: string; videoSrc?: never } | { videoSrc: string; imageSrc?: never }))[]"
}
},
{
"name": "FeaturesLabeledList",
"import": "import FeaturesLabeledList from '@/components/sections/features/FeaturesLabeledList';",
"path": "@/components/sections/features/FeaturesLabeledList",
"description": "Features section with large labels and bullet-separated item lists",
"propsSchema": {
"tag": "string",
"title": "string",
"description": "string",
"primaryButton?": "{ text: string; href: string }",
"secondaryButton?": "{ text: string; href: string }",
"items": "{ label: string; title: string; bullets: string[]; primaryButton: { text: string; href: string }; secondaryButton: { text: string; href: string } }[]"
}
},
{
"name": "FeaturesComparison",
"import": "import FeaturesComparison from '@/components/sections/features/FeaturesComparison';",
"path": "@/components/sections/features/FeaturesComparison",
"description": "Features comparison section with negative and positive lists side by side",
"propsSchema": {
"tag": "string",
"title": "string",
"description": "string",
"primaryButton?": "{ text: string; href: string }",
"secondaryButton?": "{ text: string; href: string }",
"negativeItems": "string[]",
"positiveItems": "string[]"
}
},
{
"name": "FeaturesDetailedSteps",
"import": "import FeaturesDetailedSteps from '@/components/sections/features/FeaturesDetailedSteps';",
"path": "@/components/sections/features/FeaturesDetailedSteps",
"description": "Features section with detailed step cards including tag, title, subtitle, description, and tilted media",
"propsSchema": {
"tag": "string",
"title": "string",
"description": "string",
"primaryButton?": "{ text: string; href: string }",
"secondaryButton?": "{ text: string; href: string }",
"steps": "({ tag: string; title: string; subtitle: string; description: string } & ({ imageSrc: string; videoSrc?: never } | { videoSrc: string; imageSrc?: never }))[]"
}
},
{
"name": "FeaturesTaggedCards",
"import": "import FeaturesTaggedCards from '@/components/sections/features/FeaturesTaggedCards';",
"path": "@/components/sections/features/FeaturesTaggedCards",
"description": "Features section with media cards featuring tag overlay on image and content card below",
"propsSchema": {
"tag": "string",
"title": "string",
"description": "string",
"primaryButton?": "{ text: string; href: string }",
"secondaryButton?": "{ text: string; href: string }",
"items": "({ tag: string; title: string; description: string; primaryButton?: { text: string; href: string }; secondaryButton?: { text: string; href: string } } & ({ imageSrc: string; videoSrc?: never } | { videoSrc: string; imageSrc?: never }))[]"
}
},
{
"name": "FeaturesArrowCards",
"import": "import FeaturesArrowCards from '@/components/sections/features/FeaturesArrowCards';",
"path": "@/components/sections/features/FeaturesArrowCards",
"description": "Features section with media cards featuring title, tags, and arrow icon for navigation",
"propsSchema": {
"tag": "string",
"title": "string",
"description": "string",
"primaryButton?": "{ text: string; href: string }",
"secondaryButton?": "{ text: string; href: string }",
"items": "({ title: string; tags: string[] } & ({ imageSrc: string; videoSrc?: never } | { videoSrc: string; imageSrc?: never }))[]"
}
},
{
"name": "FeaturesDetailedCards",
"import": "import FeaturesDetailedCards from '@/components/sections/features/FeaturesDetailedCards';",
"path": "@/components/sections/features/FeaturesDetailedCards",
"description": "Features section with horizontal split cards featuring title, author, tags, description, and media",
"propsSchema": {
"tag": "string",
"title": "string",
"description": "string",
"primaryButton?": "{ text: string; href: string }",
"secondaryButton?": "{ text: string; href: string }",
"items": "({ title: string; description: string; tags: string[] } & ({ imageSrc: string; videoSrc?: never } | { videoSrc: string; imageSrc?: never }))[]"
}
},
{
"name": "FeaturesDualMedia",
"import": "import FeaturesDualMedia from '@/components/sections/features/FeaturesDualMedia';",
"path": "@/components/sections/features/FeaturesDualMedia",
"description": "Features section with icon cards featuring two media items side by side",
"propsSchema": {
"tag": "string",
"title": "string",
"description": "string",
"primaryButton?": "{ text: string; href: string }",
"secondaryButton?": "{ text: string; href: string }",
"items": "{ icon: LucideIcon (import from lucide-react, pass as component reference e.g. icon={Star} not icon=\"Star\"); title: string; description: string; mediaItems: [({ imageSrc: string; videoSrc?: never } | { videoSrc: string; imageSrc?: never }), ({ imageSrc: string; videoSrc?: never } | { videoSrc: string; imageSrc?: never })] }[]"
}
},
{
"name": "FeaturesMediaCarousel",
"import": "import FeaturesMediaCarousel from '@/components/sections/features/FeaturesMediaCarousel';",
"path": "@/components/sections/features/FeaturesMediaCarousel",
"description": "Carousel of cards with media background and text overlay at bottom",
"propsSchema": {
"tag": "string",
"title": "string",
"description": "string",
"primaryButton?": "{ text: string; href: string }",
"secondaryButton?": "{ text: string; href: string }",
"items": "({ title: string; description: string; buttonIcon: LucideIcon (import from lucide-react, pass as component reference e.g. icon={Star} not icon=\"Star\"); buttonHref?: string; buttonOnClick?: () => void } & ({ imageSrc: string; videoSrc?: never } | { videoSrc: string; imageSrc?: never }))[]"
}
}
]
}
}