From adbea10119c349333c4509cc80cb488ce6800a0a Mon Sep 17 00:00:00 2001 From: bender Date: Fri, 17 Apr 2026 21:18:10 +0000 Subject: [PATCH] Switch to version 2: added registry/components/FaqSplitText.json --- registry/components/FaqSplitText.json | 89 +++++++++++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100644 registry/components/FaqSplitText.json diff --git a/registry/components/FaqSplitText.json b/registry/components/FaqSplitText.json new file mode 100644 index 0000000..90dadff --- /dev/null +++ b/registry/components/FaqSplitText.json @@ -0,0 +1,89 @@ +{ + "name": "FaqSplitText", + "description": "FAQ section with split layout featuring animated text on one side and accordion list on the other.", + "details": "Use for displaying FAQs with a prominent title and optional description. Layout: Animated Title + Description (2/5 width) | Accordions (3/5 width). Text can be positioned left or right via textPosition prop. Text animations are controlled by ThemeProvider's defaultTextAnimation. Only one accordion item can be open at a time. Supports two animation types for accordions: 'smooth' (height transition) and 'instant' (immediate show/hide). Each FAQ requires unique id, title (question), and content (answer with HTML support). Best for FAQ pages with emphasis on section branding or when media isn't needed.", + "constraints": { + "textRules": { + "sideTitle": { + "required": true, + "example": "Frequently Asked Questions", + "minChars": 2, + "maxChars": 100 + }, + "sideDescription": { + "required": false, + "example": "Everything you need to know", + "minChars": 5, + "maxChars": 250 + } + }, + "faqRules": { + "faqs": { + "required": true, + "minItems": 1, + "example": "[{\"id\": \"1\", \"title\": \"What is your return policy?\", \"content\": \"We offer a 30-day money-back guarantee.\"}]", + "note": "Array of FAQ items. Each item requires unique id, title (question), and content (answer with HTML support)." + }, + "animationType": { + "required": false, + "default": "smooth", + "options": [ + "smooth", + "instant" + ], + "note": "Animation type for accordion open/close. 'smooth' uses height transition, 'instant' shows/hides immediately." + }, + "textPosition": { + "required": false, + "default": "left", + "options": [ + "left", + "right" + ], + "note": "Position of title/description text relative to FAQ list." + } + } + }, + "propsSchema": { + "faqs": "Array<{ id: string, title: string, content: string }> - FAQ items", + "sideTitle": "string", + "sideDescription?": "string", + "buttons?": "Array<{text: string, onClick?: () => void, href?: string}>", + "buttonAnimation?": "'none' | 'opacity' | 'slide-up' | 'blur-reveal'", + "faqsAnimation": "'none' | 'opacity' | 'slide-up' | 'blur-reveal' (required)", + "textPosition?": "'left' | 'right' (default: 'left')", + "useInvertedBackground": "boolean", + "animationType?": "'smooth' | 'instant' (default: 'smooth')", + "showCard?": "boolean (default: true)", + "ariaLabel?": "string (default: 'FAQ section')", + "className?": "string", + "containerClassName?": "string", + "contentClassName?": "string", + "textContainerClassName?": "string", + "sideTitleClassName?": "string", + "sideDescriptionClassName?": "string", + "buttonContainerClassName?": "string", + "buttonClassName?": "string", + "buttonTextClassName?": "string", + "faqsContainerClassName?": "string", + "accordionClassName?": "string", + "accordionTitleClassName?": "string", + "accordionIconContainerClassName?": "string", + "accordionIconClassName?": "string", + "accordionContentClassName?": "string", + "separatorClassName?": "string" + }, + "usageExample": "", + "do": [ + "Use for help pages", + "Use for support sections", + "Requires faqs[]", + "Requires buttons?[]" + ], + "dont": [], + "editRules": { + "textOnly": true, + "layoutLocked": true, + "styleLocked": true + } +}