{ "name": "HeroLogoBillboardSplit", "description": "Hero section with split layout (description left, buttons right), large text logo that scales to fill container width, and single framed media at bottom. Supports flex-col or flex-col-reverse layout order.", "constraints": { "textRules": { "logoText": { "required": true, "example": "ACME", "minChars": 2, "maxChars": 30 }, "description": { "required": true, "example": "Create stunning, responsive websites with our comprehensive component library", "minChars": 5, "maxChars": 300 } }, "layoutRules": { "layoutOrder": { "required": true, "options": [ "default", "reverse" ], "note": "'default' displays split section (description/buttons) then logo (flex-col). 'reverse' displays logo then split section (flex-col-reverse)." } }, "buttonRules": { "buttons": { "required": true, "minItems": 1, "maxItems": 2, "note": "Only first 2 buttons are displayed using slice(0, 2). Uses theme.defaultButtonVariant for styling." } }, "mediaRules": { "imageSrc": { "required": false, "example": "/hero-image.jpg", "note": "Supports external URLs with unoptimized prop" }, "videoSrc": { "required": false, "example": "/hero-video.mp4", "note": "Takes precedence over imageSrc if both provided" }, "imageAlt": { "required": false, "example": "Product showcase", "note": "Empty string marks image as decorative (aria-hidden)" }, "frameStyle": { "required": false, "options": [ "card", "browser" ], "default": "card", "note": "'card' displays media in simple card with padding. 'browser' wraps media in browser mockup with address bar and window controls." } } }, "propsSchema": { "logoText": "string", "description": "string", "background": "{ variant: 'plain' | 'animated-grid' | 'canvas-reveal' | 'cell-wave' | 'downward-rays-animated' | 'downward-rays-animated-grid' | 'downward-rays-static' | 'downward-rays-static-grid' | 'glowing-orb' | 'gradient-bars' | 'radial-gradient' | 'rotated-rays-animated' | 'rotated-rays-animated-grid' | 'rotated-rays-static' | 'rotated-rays-static-grid' | 'sparkles-gradient' } (required)", "buttons": "Array<{text: string, onClick?: () => void, href?: string}>", "layoutOrder": "'default' | 'reverse'", "imageSrc?": "string", "videoSrc?": "string", "imageAlt?": "string (default: '')", "videoAriaLabel?": "string (default: 'Hero video')", "frameStyle?": "'card' | 'browser' (default: 'card')", "logoLineHeight?": "number (default: 1.1)", "ariaLabel?": "string (default: 'Hero section')", "className?": "string" }, "usageExample": "\n \n", "do": [ "Use for landing pages", "Use for feature showcases", "Use for capability displays", "Requires buttons[]" ], "dont": [], "editRules": { "textOnly": true, "layoutLocked": true, "styleLocked": true } }