Initial commit
This commit is contained in:
70
registry/components/ContactFaq.json
Normal file
70
registry/components/ContactFaq.json
Normal file
@@ -0,0 +1,70 @@
|
||||
{
|
||||
"name": "ContactFaq",
|
||||
"description": "Split-panel contact section with CTA card on left and FAQ accordions on right.",
|
||||
"constraints": {
|
||||
"textRules": {
|
||||
"ctaTitle": {
|
||||
"required": true,
|
||||
"example": "Book an intro call",
|
||||
"minChars": 2,
|
||||
"maxChars": 50
|
||||
},
|
||||
"ctaDescription": {
|
||||
"required": true,
|
||||
"example": "Let's get started with a brief intro call.",
|
||||
"minChars": 5,
|
||||
"maxChars": 100
|
||||
}
|
||||
},
|
||||
"faqRules": {
|
||||
"id": {
|
||||
"required": true,
|
||||
"example": "1",
|
||||
"minChars": 1,
|
||||
"maxChars": 20
|
||||
},
|
||||
"title": {
|
||||
"required": true,
|
||||
"example": "What's included in the subscription?",
|
||||
"minChars": 5,
|
||||
"maxChars": 100
|
||||
},
|
||||
"content": {
|
||||
"required": true,
|
||||
"example": "Your subscription covers end-to-end digital design services...",
|
||||
"minChars": 10,
|
||||
"maxChars": 500,
|
||||
"note": "Supports HTML content"
|
||||
}
|
||||
}
|
||||
},
|
||||
"propsSchema": {
|
||||
"faqs": "Array<{ id: string, title: string, content: string }>",
|
||||
"ctaTitle": "string",
|
||||
"ctaDescription": "string",
|
||||
"ctaButton": "{text: string, onClick?: () => void, href?: string}",
|
||||
"ctaIcon": "LucideIcon (required)",
|
||||
"useInvertedBackground": "'noInvert' | 'invertDefault'",
|
||||
"animationType": "'none' | 'opacity' | 'slide-up' | 'scale-rotate' | 'blur-reveal' (required - controls GSAP scroll animations with stagger effect on panels)",
|
||||
"accordionAnimationType?": "'smooth' | 'instant' (default: 'smooth')",
|
||||
"showCard?": "boolean (default: true - controls accordion card styling)",
|
||||
"ariaLabel?": "string (default: 'Contact and FAQ section')",
|
||||
"className?": "string"
|
||||
},
|
||||
"usageExample": "<ContactFaq faqs={[{ id: '1', title: \"What's included?\", content: 'Your subscription covers...' }]} ctaTitle=\"Book an intro call\" ctaDescription=\"Let's get started with a brief intro call.\" ctaButton={{ text: 'Book a Free Call', href: '#contact' }} ctaIcon={Phone} useInvertedBackground=\"noInvert\" animationType=\"slide-up\" />",
|
||||
"do": [
|
||||
"Use for contact pages",
|
||||
"Use for lead generation",
|
||||
"Use for help pages",
|
||||
"Use for support sections",
|
||||
"Requires faqs[]"
|
||||
],
|
||||
"dont": [
|
||||
"Do not use more than 4 items"
|
||||
],
|
||||
"editRules": {
|
||||
"textOnly": true,
|
||||
"layoutLocked": true,
|
||||
"styleLocked": true
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user