@electroplix/components 0.4.1 → 0.5.0-alpha.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (185) hide show
  1. package/CHANGELOG.md +154 -0
  2. package/LICENSE +21 -0
  3. package/README.md +88 -474
  4. package/SECURITY.md +19 -0
  5. package/cli.cjs +544 -485
  6. package/dist/config.d.ts +73 -0
  7. package/dist/config.esm.js +229 -0
  8. package/dist/index.esm.js +10195 -8528
  9. package/dist/package.json +100 -0
  10. package/dist/src/components/blog/index.d.ts +21 -21
  11. package/dist/src/components/blog/index.d.ts.map +1 -1
  12. package/dist/src/components/buttons/index.d.ts +41 -16
  13. package/dist/src/components/buttons/index.d.ts.map +1 -1
  14. package/dist/src/components/content/BlockquoteTestimonial.d.ts +3 -5
  15. package/dist/src/components/content/BlockquoteTestimonial.d.ts.map +1 -1
  16. package/dist/src/components/content/CalloutBox.d.ts +4 -6
  17. package/dist/src/components/content/CalloutBox.d.ts.map +1 -1
  18. package/dist/src/components/content/HeadingSection.d.ts +4 -6
  19. package/dist/src/components/content/HeadingSection.d.ts.map +1 -1
  20. package/dist/src/components/content/InlineCodeText.d.ts +5 -6
  21. package/dist/src/components/content/InlineCodeText.d.ts.map +1 -1
  22. package/dist/src/components/content/ParagraphBlock.d.ts +5 -7
  23. package/dist/src/components/content/ParagraphBlock.d.ts.map +1 -1
  24. package/dist/src/components/content/RichMarkdown.d.ts +5 -6
  25. package/dist/src/components/content/RichMarkdown.d.ts.map +1 -1
  26. package/dist/src/components/content/TeamGrid.d.ts +3 -2
  27. package/dist/src/components/content/TeamGrid.d.ts.map +1 -1
  28. package/dist/src/components/content/index.d.ts +7 -7
  29. package/dist/src/components/content/index.d.ts.map +1 -1
  30. package/dist/src/components/data-display/Badge.d.ts +6 -5
  31. package/dist/src/components/data-display/Badge.d.ts.map +1 -1
  32. package/dist/src/components/data-display/BadgeGroup.d.ts +6 -4
  33. package/dist/src/components/data-display/BadgeGroup.d.ts.map +1 -1
  34. package/dist/src/components/data-display/BarChart.d.ts +3 -2
  35. package/dist/src/components/data-display/BarChart.d.ts.map +1 -1
  36. package/dist/src/components/data-display/CalendarGrid.d.ts +4 -3
  37. package/dist/src/components/data-display/CalendarGrid.d.ts.map +1 -1
  38. package/dist/src/components/data-display/DataTable.d.ts +5 -5
  39. package/dist/src/components/data-display/DataTable.d.ts.map +1 -1
  40. package/dist/src/components/data-display/LineChart.d.ts +3 -2
  41. package/dist/src/components/data-display/LineChart.d.ts.map +1 -1
  42. package/dist/src/components/data-display/PieChart.d.ts +3 -2
  43. package/dist/src/components/data-display/PieChart.d.ts.map +1 -1
  44. package/dist/src/components/data-display/ProgressBar.d.ts +3 -2
  45. package/dist/src/components/data-display/ProgressBar.d.ts.map +1 -1
  46. package/dist/src/components/data-display/RatingStars.d.ts +3 -2
  47. package/dist/src/components/data-display/RatingStars.d.ts.map +1 -1
  48. package/dist/src/components/data-display/Sparkline.d.ts +3 -2
  49. package/dist/src/components/data-display/Sparkline.d.ts.map +1 -1
  50. package/dist/src/components/data-display/Timeline.d.ts +4 -3
  51. package/dist/src/components/data-display/Timeline.d.ts.map +1 -1
  52. package/dist/src/components/data-display/index.d.ts +11 -11
  53. package/dist/src/components/data-display/index.d.ts.map +1 -1
  54. package/dist/src/components/ecommerce/index.d.ts +24 -21
  55. package/dist/src/components/ecommerce/index.d.ts.map +1 -1
  56. package/dist/src/components/forms/AddressAutocomplete.d.ts +2 -4
  57. package/dist/src/components/forms/AddressAutocomplete.d.ts.map +1 -1
  58. package/dist/src/components/forms/Captcha.d.ts +3 -5
  59. package/dist/src/components/forms/Captcha.d.ts.map +1 -1
  60. package/dist/src/components/forms/ContactForm.d.ts +2 -4
  61. package/dist/src/components/forms/ContactForm.d.ts.map +1 -1
  62. package/dist/src/components/forms/DateTimePicker.d.ts +3 -5
  63. package/dist/src/components/forms/DateTimePicker.d.ts.map +1 -1
  64. package/dist/src/components/forms/FileUploader.d.ts +2 -4
  65. package/dist/src/components/forms/FileUploader.d.ts.map +1 -1
  66. package/dist/src/components/forms/FormShell.d.ts +2 -5
  67. package/dist/src/components/forms/FormShell.d.ts.map +1 -1
  68. package/dist/src/components/forms/InputField.d.ts +2 -4
  69. package/dist/src/components/forms/InputField.d.ts.map +1 -1
  70. package/dist/src/components/forms/MultiStepWizard.d.ts +2 -4
  71. package/dist/src/components/forms/MultiStepWizard.d.ts.map +1 -1
  72. package/dist/src/components/forms/NewsletterSignup.d.ts +2 -4
  73. package/dist/src/components/forms/NewsletterSignup.d.ts.map +1 -1
  74. package/dist/src/components/forms/RadioGroup.d.ts +2 -4
  75. package/dist/src/components/forms/RadioGroup.d.ts.map +1 -1
  76. package/dist/src/components/forms/SelectDropdown.d.ts +2 -4
  77. package/dist/src/components/forms/SelectDropdown.d.ts.map +1 -1
  78. package/dist/src/components/forms/TextAreaField.d.ts +2 -4
  79. package/dist/src/components/forms/TextAreaField.d.ts.map +1 -1
  80. package/dist/src/components/forms/ToggleSwitch.d.ts +2 -4
  81. package/dist/src/components/forms/ToggleSwitch.d.ts.map +1 -1
  82. package/dist/src/components/forms/ValidationWrapper.d.ts +2 -4
  83. package/dist/src/components/forms/ValidationWrapper.d.ts.map +1 -1
  84. package/dist/src/components/forms/index.d.ts +28 -28
  85. package/dist/src/components/forms/index.d.ts.map +1 -1
  86. package/dist/src/components/hero/CTAOverlayHero.d.ts +2 -4
  87. package/dist/src/components/hero/CTAOverlayHero.d.ts.map +1 -1
  88. package/dist/src/components/hero/CarouselHero.d.ts +2 -4
  89. package/dist/src/components/hero/CarouselHero.d.ts.map +1 -1
  90. package/dist/src/components/hero/HeroShell.d.ts +2 -5
  91. package/dist/src/components/hero/HeroShell.d.ts.map +1 -1
  92. package/dist/src/components/hero/ImageHero.d.ts +35 -0
  93. package/dist/src/components/hero/ImageHero.d.ts.map +1 -0
  94. package/dist/src/components/hero/PatternedHero.d.ts +3 -5
  95. package/dist/src/components/hero/PatternedHero.d.ts.map +1 -1
  96. package/dist/src/components/hero/SplitHero.d.ts +2 -4
  97. package/dist/src/components/hero/SplitHero.d.ts.map +1 -1
  98. package/dist/src/components/hero/StaticHero.d.ts +3 -5
  99. package/dist/src/components/hero/StaticHero.d.ts.map +1 -1
  100. package/dist/src/components/hero/VideoHeaderHero.d.ts +2 -4
  101. package/dist/src/components/hero/VideoHeaderHero.d.ts.map +1 -1
  102. package/dist/src/components/hero/index.d.ts +16 -14
  103. package/dist/src/components/hero/index.d.ts.map +1 -1
  104. package/dist/src/components/lists-cards/index.d.ts +17 -20
  105. package/dist/src/components/lists-cards/index.d.ts.map +1 -1
  106. package/dist/src/components/marketing/index.d.ts +22 -22
  107. package/dist/src/components/marketing/index.d.ts.map +1 -1
  108. package/dist/src/components/media/index.d.ts +27 -29
  109. package/dist/src/components/media/index.d.ts.map +1 -1
  110. package/dist/src/components/miscellaneous/index.d.ts +18 -17
  111. package/dist/src/components/miscellaneous/index.d.ts.map +1 -1
  112. package/dist/src/components/modals/index.d.ts +23 -34
  113. package/dist/src/components/modals/index.d.ts.map +1 -1
  114. package/dist/src/components/navigation/AnchorLinks.d.ts +4 -6
  115. package/dist/src/components/navigation/AnchorLinks.d.ts.map +1 -1
  116. package/dist/src/components/navigation/Breadcrumbs.d.ts +3 -5
  117. package/dist/src/components/navigation/Breadcrumbs.d.ts.map +1 -1
  118. package/dist/src/components/navigation/Footer.d.ts +3 -4
  119. package/dist/src/components/navigation/Footer.d.ts.map +1 -1
  120. package/dist/src/components/navigation/LanguageSelector.d.ts +3 -5
  121. package/dist/src/components/navigation/LanguageSelector.d.ts.map +1 -1
  122. package/dist/src/components/navigation/MegaMenu.d.ts +3 -5
  123. package/dist/src/components/navigation/MegaMenu.d.ts.map +1 -1
  124. package/dist/src/components/navigation/Pagination.d.ts +3 -2
  125. package/dist/src/components/navigation/Pagination.d.ts.map +1 -1
  126. package/dist/src/components/navigation/PrimaryNav.d.ts +3 -2
  127. package/dist/src/components/navigation/PrimaryNav.d.ts.map +1 -1
  128. package/dist/src/components/navigation/SideDrawerNav.d.ts +5 -4
  129. package/dist/src/components/navigation/SideDrawerNav.d.ts.map +1 -1
  130. package/dist/src/components/navigation/SidebarMenu.d.ts +4 -3
  131. package/dist/src/components/navigation/SidebarMenu.d.ts.map +1 -1
  132. package/dist/src/components/navigation/Stepper.d.ts +4 -3
  133. package/dist/src/components/navigation/Stepper.d.ts.map +1 -1
  134. package/dist/src/components/navigation/Tabs.d.ts +5 -4
  135. package/dist/src/components/navigation/Tabs.d.ts.map +1 -1
  136. package/dist/src/components/navigation/index.d.ts +22 -22
  137. package/dist/src/components/navigation/index.d.ts.map +1 -1
  138. package/dist/src/components/onboarding/index.d.ts +17 -17
  139. package/dist/src/components/onboarding/index.d.ts.map +1 -1
  140. package/dist/src/components/search/index.d.ts +13 -12
  141. package/dist/src/components/search/index.d.ts.map +1 -1
  142. package/dist/src/components/site-identity/index.d.ts +13 -14
  143. package/dist/src/components/site-identity/index.d.ts.map +1 -1
  144. package/dist/src/components/social/index.d.ts +19 -18
  145. package/dist/src/components/social/index.d.ts.map +1 -1
  146. package/dist/src/components/user-accounts/index.d.ts +17 -17
  147. package/dist/src/components/user-accounts/index.d.ts.map +1 -1
  148. package/dist/src/core/config.d.ts +1 -1
  149. package/dist/src/core/config.d.ts.map +1 -1
  150. package/dist/src/core/icons.d.ts +1 -1
  151. package/dist/src/core/icons.d.ts.map +1 -1
  152. package/dist/src/core/index.d.ts +7 -7
  153. package/dist/src/core/index.d.ts.map +1 -1
  154. package/dist/src/core/provider.d.ts +20 -20
  155. package/dist/src/core/provider.d.ts.map +1 -1
  156. package/dist/src/core/styles.d.ts +2 -0
  157. package/dist/src/core/styles.d.ts.map +1 -0
  158. package/dist/src/core/types.d.ts +4 -4
  159. package/dist/src/core/types.d.ts.map +1 -1
  160. package/dist/src/core/utils.d.ts +1 -1
  161. package/dist/src/core/utils.d.ts.map +1 -1
  162. package/dist/src/index.d.ts +19 -19
  163. package/dist/src/index.d.ts.map +1 -1
  164. package/metadata/blog.json +807 -0
  165. package/metadata/buttons.json +2186 -0
  166. package/metadata/content.json +1152 -0
  167. package/metadata/data-display.json +822 -0
  168. package/metadata/ecommerce.json +1059 -0
  169. package/metadata/forms.json +2637 -0
  170. package/metadata/hero.json +1401 -0
  171. package/metadata/lists-cards.json +848 -0
  172. package/metadata/marketing.json +1235 -0
  173. package/metadata/media.json +800 -0
  174. package/metadata/miscellaneous.json +778 -0
  175. package/metadata/modals.json +954 -0
  176. package/metadata/navigation.json +1348 -0
  177. package/metadata/onboarding.json +615 -0
  178. package/metadata/search.json +559 -0
  179. package/metadata/site-identity.json +555 -0
  180. package/metadata/social.json +654 -0
  181. package/metadata/user-accounts.json +727 -0
  182. package/package.json +22 -7
  183. package/dist/README.md +0 -35
  184. package/dist/src/__tests__/test-utils.d.ts +0 -8
  185. package/dist/src/__tests__/test-utils.d.ts.map +0 -1
@@ -0,0 +1,1401 @@
1
+ {
2
+ "$schema": "electroplix-component-metadata-v1",
3
+ "category": "hero",
4
+ "label": "Hero",
5
+ "description": "Components for hero sections, landing banners, split layouts, video backgrounds, carousels, and call-to-action overlays",
6
+ "themeKey": "hero",
7
+ "icon": "zap",
8
+ "sortOrder": 2,
9
+ "components": [
10
+ {
11
+ "id": "hero.HeroShell",
12
+ "name": "HeroShell",
13
+ "description": "Container/layout shell for hero content. Provides consistent spacing, background, and sizing for composing custom hero sections.",
14
+ "whenToUse": "Use as a foundational wrapper when building custom hero layouts from smaller primitives. Ideal when the pre-built hero variants don't match your design and you need full compositional control.",
15
+ "isShell": true,
16
+ "props": [
17
+ {
18
+ "name": "as",
19
+ "type": "ElementType",
20
+ "required": false,
21
+ "default": "\"section\"",
22
+ "description": "HTML element or component to render as"
23
+ },
24
+ {
25
+ "name": "bgColor",
26
+ "type": "string",
27
+ "required": false,
28
+ "default": "theme",
29
+ "description": "Background color override"
30
+ },
31
+ {
32
+ "name": "textColor",
33
+ "type": "string",
34
+ "required": false,
35
+ "default": "theme",
36
+ "description": "Text color override"
37
+ },
38
+ {
39
+ "name": "fontFamily",
40
+ "type": "string",
41
+ "required": false,
42
+ "default": "theme",
43
+ "description": "Font family override"
44
+ },
45
+ {
46
+ "name": "minH",
47
+ "type": "string",
48
+ "required": false,
49
+ "default": "\"60vh\"",
50
+ "description": "Minimum height of the hero shell"
51
+ },
52
+ {
53
+ "name": "maxW",
54
+ "type": "number",
55
+ "required": false,
56
+ "default": "1200",
57
+ "description": "Maximum width in pixels"
58
+ },
59
+ {
60
+ "name": "px",
61
+ "type": "number",
62
+ "required": false,
63
+ "default": "24",
64
+ "description": "Horizontal padding in pixels"
65
+ },
66
+ {
67
+ "name": "py",
68
+ "type": "number",
69
+ "required": false,
70
+ "default": "48",
71
+ "description": "Vertical padding in pixels"
72
+ },
73
+ {
74
+ "name": "radius",
75
+ "type": "number",
76
+ "required": false,
77
+ "default": "20",
78
+ "description": "Border radius in pixels"
79
+ },
80
+ {
81
+ "name": "gap",
82
+ "type": "number",
83
+ "required": false,
84
+ "default": "16",
85
+ "description": "Gap between child elements in pixels"
86
+ },
87
+ {
88
+ "name": "style",
89
+ "type": "CSSProperties",
90
+ "required": false,
91
+ "default": null,
92
+ "description": "Custom inline styles"
93
+ },
94
+ {
95
+ "name": "className",
96
+ "type": "string",
97
+ "required": false,
98
+ "default": null,
99
+ "description": "Custom CSS class"
100
+ },
101
+ {
102
+ "name": "children",
103
+ "type": "ReactNode",
104
+ "required": false,
105
+ "default": null,
106
+ "description": "Child content to render inside the shell"
107
+ }
108
+ ],
109
+ "themeTokens": [
110
+ "bgColor",
111
+ "textColor",
112
+ "accentColor",
113
+ "borderColor",
114
+ "fontFamily",
115
+ "radius",
116
+ "spacing",
117
+ "cardBg",
118
+ "cardRadius",
119
+ "cardBorder",
120
+ "minH",
121
+ "maxW",
122
+ "px",
123
+ "py",
124
+ "gap"
125
+ ],
126
+ "aiHints": {
127
+ "pageTypes": [
128
+ "landing",
129
+ "marketing",
130
+ "dashboard",
131
+ "blog",
132
+ "ecommerce",
133
+ "portfolio",
134
+ "saas",
135
+ "restaurant",
136
+ "fitness",
137
+ "education",
138
+ "event",
139
+ "nonprofit",
140
+ "realestate",
141
+ "agency",
142
+ "health",
143
+ "community"
144
+ ],
145
+ "placement": "header",
146
+ "priority": 4,
147
+ "sequenceOrder": 2,
148
+ "pairsWellWith": [
149
+ "content.HeadingSection",
150
+ "content.ParagraphBlock",
151
+ "listsCards.FeatureGrid",
152
+ "forms.FormShell"
153
+ ],
154
+ "maxPerPage": 1,
155
+ "isContainer": true
156
+ }
157
+ },
158
+ {
159
+ "id": "hero.StaticHero",
160
+ "name": "StaticHero",
161
+ "description": "Classic hero section with a prominent title, subtitle, and call-to-action button. Supports configurable text alignment and sizing.",
162
+ "whenToUse": "Use as the primary hero on landing pages, marketing sites, SaaS homepages, or portfolio sites when you need a clean, text-focused hero with a single CTA.",
163
+ "isShell": false,
164
+ "props": [
165
+ {
166
+ "name": "as",
167
+ "type": "ElementType",
168
+ "required": false,
169
+ "default": "\"section\"",
170
+ "description": "HTML element or component to render as"
171
+ },
172
+ {
173
+ "name": "title",
174
+ "type": "string",
175
+ "required": false,
176
+ "default": "\"Build Something Amazing\"",
177
+ "description": "Main headline text"
178
+ },
179
+ {
180
+ "name": "subtitle",
181
+ "type": "string",
182
+ "required": false,
183
+ "default": "\"Launch your next project with blazing-fast performance, beautiful design, and effortless scalability.\"",
184
+ "description": "Subtitle/description text below the title"
185
+ },
186
+ {
187
+ "name": "ctaLabel",
188
+ "type": "string",
189
+ "required": false,
190
+ "default": "\"Get Started\"",
191
+ "description": "Label text for the call-to-action button"
192
+ },
193
+ {
194
+ "name": "onCta",
195
+ "type": "() => void",
196
+ "required": false,
197
+ "default": null,
198
+ "description": "Callback fired when the CTA button is clicked"
199
+ },
200
+ {
201
+ "name": "titleSize",
202
+ "type": "number",
203
+ "required": false,
204
+ "default": "56",
205
+ "description": "Font size of the title in pixels"
206
+ },
207
+ {
208
+ "name": "subtitleSize",
209
+ "type": "number",
210
+ "required": false,
211
+ "default": "20",
212
+ "description": "Font size of the subtitle in pixels"
213
+ },
214
+ {
215
+ "name": "align",
216
+ "type": "\"left\" | \"center\" | \"right\"",
217
+ "required": false,
218
+ "default": "\"center\"",
219
+ "description": "Text alignment of the hero content"
220
+ },
221
+ {
222
+ "name": "minH",
223
+ "type": "string",
224
+ "required": false,
225
+ "default": "\"70vh\"",
226
+ "description": "Minimum height of the hero section"
227
+ },
228
+ {
229
+ "name": "maxW",
230
+ "type": "number",
231
+ "required": false,
232
+ "default": "1200",
233
+ "description": "Maximum width in pixels"
234
+ },
235
+ {
236
+ "name": "px",
237
+ "type": "number",
238
+ "required": false,
239
+ "default": "24",
240
+ "description": "Horizontal padding in pixels"
241
+ },
242
+ {
243
+ "name": "py",
244
+ "type": "number",
245
+ "required": false,
246
+ "default": "64",
247
+ "description": "Vertical padding in pixels"
248
+ },
249
+ {
250
+ "name": "radius",
251
+ "type": "number",
252
+ "required": false,
253
+ "default": "20",
254
+ "description": "Border radius in pixels"
255
+ },
256
+ {
257
+ "name": "gap",
258
+ "type": "number",
259
+ "required": false,
260
+ "default": "24",
261
+ "description": "Gap between content elements in pixels"
262
+ },
263
+ {
264
+ "name": "bgColor",
265
+ "type": "string",
266
+ "required": false,
267
+ "default": "theme",
268
+ "description": "Background color override"
269
+ },
270
+ {
271
+ "name": "textColor",
272
+ "type": "string",
273
+ "required": false,
274
+ "default": "theme",
275
+ "description": "Text color override"
276
+ },
277
+ {
278
+ "name": "accentColor",
279
+ "type": "string",
280
+ "required": false,
281
+ "default": "theme",
282
+ "description": "Accent/CTA color override"
283
+ },
284
+ {
285
+ "name": "borderColor",
286
+ "type": "string",
287
+ "required": false,
288
+ "default": "theme",
289
+ "description": "Border color override"
290
+ },
291
+ {
292
+ "name": "fontFamily",
293
+ "type": "string",
294
+ "required": false,
295
+ "default": "theme",
296
+ "description": "Font family override"
297
+ },
298
+ {
299
+ "name": "style",
300
+ "type": "CSSProperties",
301
+ "required": false,
302
+ "default": null,
303
+ "description": "Custom inline styles"
304
+ },
305
+ {
306
+ "name": "className",
307
+ "type": "string",
308
+ "required": false,
309
+ "default": null,
310
+ "description": "Custom CSS class"
311
+ }
312
+ ],
313
+ "themeTokens": [
314
+ "bgColor",
315
+ "textColor",
316
+ "accentColor",
317
+ "borderColor",
318
+ "fontFamily",
319
+ "radius",
320
+ "spacing",
321
+ "cardBg",
322
+ "cardRadius",
323
+ "cardBorder",
324
+ "minH",
325
+ "maxW",
326
+ "px",
327
+ "py",
328
+ "gap"
329
+ ],
330
+ "aiHints": {
331
+ "pageTypes": [
332
+ "landing",
333
+ "marketing",
334
+ "saas",
335
+ "portfolio",
336
+ "restaurant",
337
+ "fitness",
338
+ "education",
339
+ "event",
340
+ "nonprofit",
341
+ "agency"
342
+ ],
343
+ "placement": "header",
344
+ "priority": 9,
345
+ "sequenceOrder": 2,
346
+ "pairsWellWith": [
347
+ "navigation.PrimaryNav",
348
+ "content.HeadingSection",
349
+ "listsCards.FeatureGrid",
350
+ "content.ParagraphBlock"
351
+ ],
352
+ "maxPerPage": 1,
353
+ "isContainer": false
354
+ }
355
+ },
356
+ {
357
+ "id": "hero.SplitHero",
358
+ "name": "SplitHero",
359
+ "description": "Two-column hero with text content on one side and an image on the other. Supports reversible layout, feature badges, and a feature list.",
360
+ "whenToUse": "Use when you want to showcase a product image or illustration alongside your hero copy. Perfect for SaaS product pages, ecommerce landing pages, or marketing sites with visual assets.",
361
+ "isShell": false,
362
+ "props": [
363
+ {
364
+ "name": "as",
365
+ "type": "ElementType",
366
+ "required": false,
367
+ "default": "\"section\"",
368
+ "description": "HTML element or component to render as"
369
+ },
370
+ {
371
+ "name": "title",
372
+ "type": "string",
373
+ "required": false,
374
+ "default": "\"Everything You Need to Build & Scale\"",
375
+ "description": "Main headline text"
376
+ },
377
+ {
378
+ "name": "subtitle",
379
+ "type": "string",
380
+ "required": false,
381
+ "default": "\"A complete platform for building, deploying, and scaling modern web applications.\"",
382
+ "description": "Subtitle/description text"
383
+ },
384
+ {
385
+ "name": "ctaLabel",
386
+ "type": "string",
387
+ "required": false,
388
+ "default": "\"Start Building\"",
389
+ "description": "Label text for the CTA button"
390
+ },
391
+ {
392
+ "name": "onCta",
393
+ "type": "() => void",
394
+ "required": false,
395
+ "default": null,
396
+ "description": "Callback fired when the CTA button is clicked"
397
+ },
398
+ {
399
+ "name": "image",
400
+ "type": "string",
401
+ "required": false,
402
+ "default": null,
403
+ "description": "URL of the hero image"
404
+ },
405
+ {
406
+ "name": "imageAlt",
407
+ "type": "string",
408
+ "required": false,
409
+ "default": "\"Hero image\"",
410
+ "description": "Alt text for the hero image"
411
+ },
412
+ {
413
+ "name": "reverse",
414
+ "type": "boolean",
415
+ "required": false,
416
+ "default": "false",
417
+ "description": "Reverse the column order (image on left, text on right)"
418
+ },
419
+ {
420
+ "name": "features",
421
+ "type": "string[]",
422
+ "required": false,
423
+ "default": "[\"Lightning-fast performance\", \"Built-in analytics\", \"Enterprise security\"]",
424
+ "description": "Array of feature bullet strings displayed below the subtitle"
425
+ },
426
+ {
427
+ "name": "badge",
428
+ "type": "string",
429
+ "required": false,
430
+ "default": "\"New Features\"",
431
+ "description": "Badge label displayed above the title"
432
+ },
433
+ {
434
+ "name": "titleSize",
435
+ "type": "number",
436
+ "required": false,
437
+ "default": "44",
438
+ "description": "Font size of the title in pixels"
439
+ },
440
+ {
441
+ "name": "subtitleSize",
442
+ "type": "number",
443
+ "required": false,
444
+ "default": "18",
445
+ "description": "Font size of the subtitle in pixels"
446
+ },
447
+ {
448
+ "name": "mediaHeight",
449
+ "type": "number",
450
+ "required": false,
451
+ "default": "400",
452
+ "description": "Height of the media/image column in pixels"
453
+ },
454
+ {
455
+ "name": "minH",
456
+ "type": "string",
457
+ "required": false,
458
+ "default": "\"auto\"",
459
+ "description": "Minimum height of the hero section"
460
+ },
461
+ {
462
+ "name": "maxW",
463
+ "type": "number",
464
+ "required": false,
465
+ "default": "1200",
466
+ "description": "Maximum width in pixels"
467
+ },
468
+ {
469
+ "name": "px",
470
+ "type": "number",
471
+ "required": false,
472
+ "default": "24",
473
+ "description": "Horizontal padding in pixels"
474
+ },
475
+ {
476
+ "name": "py",
477
+ "type": "number",
478
+ "required": false,
479
+ "default": "48",
480
+ "description": "Vertical padding in pixels"
481
+ },
482
+ {
483
+ "name": "radius",
484
+ "type": "number",
485
+ "required": false,
486
+ "default": "20",
487
+ "description": "Border radius in pixels"
488
+ },
489
+ {
490
+ "name": "gap",
491
+ "type": "number",
492
+ "required": false,
493
+ "default": "24",
494
+ "description": "Gap between columns in pixels"
495
+ },
496
+ {
497
+ "name": "bgColor",
498
+ "type": "string",
499
+ "required": false,
500
+ "default": "theme",
501
+ "description": "Background color override"
502
+ },
503
+ {
504
+ "name": "textColor",
505
+ "type": "string",
506
+ "required": false,
507
+ "default": "theme",
508
+ "description": "Text color override"
509
+ },
510
+ {
511
+ "name": "accentColor",
512
+ "type": "string",
513
+ "required": false,
514
+ "default": "theme",
515
+ "description": "Accent/CTA color override"
516
+ },
517
+ {
518
+ "name": "borderColor",
519
+ "type": "string",
520
+ "required": false,
521
+ "default": "theme",
522
+ "description": "Border color override"
523
+ },
524
+ {
525
+ "name": "fontFamily",
526
+ "type": "string",
527
+ "required": false,
528
+ "default": "theme",
529
+ "description": "Font family override"
530
+ },
531
+ {
532
+ "name": "style",
533
+ "type": "CSSProperties",
534
+ "required": false,
535
+ "default": null,
536
+ "description": "Custom inline styles"
537
+ },
538
+ {
539
+ "name": "className",
540
+ "type": "string",
541
+ "required": false,
542
+ "default": null,
543
+ "description": "Custom CSS class"
544
+ }
545
+ ],
546
+ "themeTokens": [
547
+ "bgColor",
548
+ "textColor",
549
+ "accentColor",
550
+ "borderColor",
551
+ "fontFamily",
552
+ "radius",
553
+ "spacing",
554
+ "cardBg",
555
+ "cardRadius",
556
+ "cardBorder",
557
+ "minH",
558
+ "maxW",
559
+ "px",
560
+ "py",
561
+ "gap"
562
+ ],
563
+ "aiHints": {
564
+ "pageTypes": [
565
+ "landing",
566
+ "marketing",
567
+ "saas",
568
+ "ecommerce",
569
+ "restaurant",
570
+ "fitness",
571
+ "education",
572
+ "agency",
573
+ "health"
574
+ ],
575
+ "placement": "header",
576
+ "priority": 9,
577
+ "sequenceOrder": 2,
578
+ "pairsWellWith": [
579
+ "navigation.PrimaryNav",
580
+ "listsCards.FeatureGrid",
581
+ "content.HeadingSection",
582
+ "marketing.TestimonialsCarousel"
583
+ ],
584
+ "maxPerPage": 1,
585
+ "isContainer": false
586
+ }
587
+ },
588
+ {
589
+ "id": "hero.VideoHeaderHero",
590
+ "name": "VideoHeaderHero",
591
+ "description": "Hero section with a background video, semi-transparent overlay, and text content. Supports autoplay, looping, and poster fallback.",
592
+ "whenToUse": "Use when you want an immersive, cinematic hero experience. Ideal for portfolio sites, creative agencies, product launches, or marketing pages where video content enhances the message.",
593
+ "isShell": false,
594
+ "props": [
595
+ {
596
+ "name": "as",
597
+ "type": "ElementType",
598
+ "required": false,
599
+ "default": "\"section\"",
600
+ "description": "HTML element or component to render as"
601
+ },
602
+ {
603
+ "name": "videoSrc",
604
+ "type": "string",
605
+ "required": false,
606
+ "default": null,
607
+ "description": "URL of the background video source"
608
+ },
609
+ {
610
+ "name": "poster",
611
+ "type": "string",
612
+ "required": false,
613
+ "default": null,
614
+ "description": "Poster image displayed before the video loads"
615
+ },
616
+ {
617
+ "name": "overlay",
618
+ "type": "number",
619
+ "required": false,
620
+ "default": "0.5",
621
+ "description": "Opacity of the dark overlay (0 to 1)"
622
+ },
623
+ {
624
+ "name": "title",
625
+ "type": "string",
626
+ "required": false,
627
+ "default": "\"See It in Action\"",
628
+ "description": "Main headline text"
629
+ },
630
+ {
631
+ "name": "subtitle",
632
+ "type": "string",
633
+ "required": false,
634
+ "default": null,
635
+ "description": "Subtitle/description text"
636
+ },
637
+ {
638
+ "name": "titleSize",
639
+ "type": "number",
640
+ "required": false,
641
+ "default": "48",
642
+ "description": "Font size of the title in pixels"
643
+ },
644
+ {
645
+ "name": "subtitleSize",
646
+ "type": "number",
647
+ "required": false,
648
+ "default": "20",
649
+ "description": "Font size of the subtitle in pixels"
650
+ },
651
+ {
652
+ "name": "controls",
653
+ "type": "boolean",
654
+ "required": false,
655
+ "default": "false",
656
+ "description": "Whether to show native video controls"
657
+ },
658
+ {
659
+ "name": "loop",
660
+ "type": "boolean",
661
+ "required": false,
662
+ "default": "true",
663
+ "description": "Whether the video loops continuously"
664
+ },
665
+ {
666
+ "name": "autoPlay",
667
+ "type": "boolean",
668
+ "required": false,
669
+ "default": "true",
670
+ "description": "Whether the video starts playing automatically"
671
+ },
672
+ {
673
+ "name": "muted",
674
+ "type": "boolean",
675
+ "required": false,
676
+ "default": "true",
677
+ "description": "Whether the video is muted (required for autoplay in most browsers)"
678
+ },
679
+ {
680
+ "name": "minH",
681
+ "type": "string",
682
+ "required": false,
683
+ "default": "\"70vh\"",
684
+ "description": "Minimum height of the hero section"
685
+ },
686
+ {
687
+ "name": "maxW",
688
+ "type": "number",
689
+ "required": false,
690
+ "default": "1200",
691
+ "description": "Maximum width in pixels"
692
+ },
693
+ {
694
+ "name": "px",
695
+ "type": "number",
696
+ "required": false,
697
+ "default": "24",
698
+ "description": "Horizontal padding in pixels"
699
+ },
700
+ {
701
+ "name": "py",
702
+ "type": "number",
703
+ "required": false,
704
+ "default": "48",
705
+ "description": "Vertical padding in pixels"
706
+ },
707
+ {
708
+ "name": "radius",
709
+ "type": "number",
710
+ "required": false,
711
+ "default": "20",
712
+ "description": "Border radius in pixels"
713
+ },
714
+ {
715
+ "name": "bgColor",
716
+ "type": "string",
717
+ "required": false,
718
+ "default": "theme",
719
+ "description": "Background color override"
720
+ },
721
+ {
722
+ "name": "textColor",
723
+ "type": "string",
724
+ "required": false,
725
+ "default": "theme",
726
+ "description": "Text color override"
727
+ },
728
+ {
729
+ "name": "accentColor",
730
+ "type": "string",
731
+ "required": false,
732
+ "default": "theme",
733
+ "description": "Accent color override"
734
+ },
735
+ {
736
+ "name": "borderColor",
737
+ "type": "string",
738
+ "required": false,
739
+ "default": "theme",
740
+ "description": "Border color override"
741
+ },
742
+ {
743
+ "name": "fontFamily",
744
+ "type": "string",
745
+ "required": false,
746
+ "default": "theme",
747
+ "description": "Font family override"
748
+ },
749
+ {
750
+ "name": "style",
751
+ "type": "CSSProperties",
752
+ "required": false,
753
+ "default": null,
754
+ "description": "Custom inline styles"
755
+ },
756
+ {
757
+ "name": "className",
758
+ "type": "string",
759
+ "required": false,
760
+ "default": null,
761
+ "description": "Custom CSS class"
762
+ }
763
+ ],
764
+ "themeTokens": [
765
+ "bgColor",
766
+ "textColor",
767
+ "accentColor",
768
+ "borderColor",
769
+ "fontFamily",
770
+ "radius",
771
+ "spacing",
772
+ "cardBg",
773
+ "cardRadius",
774
+ "cardBorder",
775
+ "minH",
776
+ "maxW",
777
+ "px",
778
+ "py",
779
+ "gap"
780
+ ],
781
+ "aiHints": {
782
+ "pageTypes": [
783
+ "landing",
784
+ "marketing",
785
+ "portfolio",
786
+ "restaurant",
787
+ "event",
788
+ "agency",
789
+ "fitness"
790
+ ],
791
+ "placement": "header",
792
+ "priority": 8,
793
+ "sequenceOrder": 2,
794
+ "pairsWellWith": [
795
+ "navigation.PrimaryNav",
796
+ "content.HeadingSection",
797
+ "listsCards.FeatureGrid"
798
+ ],
799
+ "maxPerPage": 1,
800
+ "isContainer": false
801
+ }
802
+ },
803
+ {
804
+ "id": "hero.CarouselHero",
805
+ "name": "CarouselHero",
806
+ "description": "Auto-playing image carousel hero with optional slide titles and subtitles. Cycles through multiple slides with configurable timing.",
807
+ "whenToUse": "Use when you want to showcase multiple images, products, or messages in a rotating hero. Great for ecommerce storefronts, portfolio showcases, or marketing pages with multiple value propositions.",
808
+ "isShell": false,
809
+ "props": [
810
+ {
811
+ "name": "as",
812
+ "type": "ElementType",
813
+ "required": false,
814
+ "default": "\"section\"",
815
+ "description": "HTML element or component to render as"
816
+ },
817
+ {
818
+ "name": "slides",
819
+ "type": "Slide[]",
820
+ "required": true,
821
+ "default": null,
822
+ "description": "Array of slides: {image: string, title?: string, subtitle?: string}"
823
+ },
824
+ {
825
+ "name": "autoplay",
826
+ "type": "boolean",
827
+ "required": false,
828
+ "default": "true",
829
+ "description": "Whether the carousel auto-advances"
830
+ },
831
+ {
832
+ "name": "intervalMs",
833
+ "type": "number",
834
+ "required": false,
835
+ "default": "4000",
836
+ "description": "Time in milliseconds between slide transitions"
837
+ },
838
+ {
839
+ "name": "titleSize",
840
+ "type": "number",
841
+ "required": false,
842
+ "default": "42",
843
+ "description": "Font size of slide titles in pixels"
844
+ },
845
+ {
846
+ "name": "subtitleSize",
847
+ "type": "number",
848
+ "required": false,
849
+ "default": "18",
850
+ "description": "Font size of slide subtitles in pixels"
851
+ },
852
+ {
853
+ "name": "minH",
854
+ "type": "string",
855
+ "required": false,
856
+ "default": "\"70vh\"",
857
+ "description": "Minimum height of the hero section"
858
+ },
859
+ {
860
+ "name": "maxW",
861
+ "type": "number",
862
+ "required": false,
863
+ "default": "1200",
864
+ "description": "Maximum width in pixels"
865
+ },
866
+ {
867
+ "name": "px",
868
+ "type": "number",
869
+ "required": false,
870
+ "default": "24",
871
+ "description": "Horizontal padding in pixels"
872
+ },
873
+ {
874
+ "name": "py",
875
+ "type": "number",
876
+ "required": false,
877
+ "default": "48",
878
+ "description": "Vertical padding in pixels"
879
+ },
880
+ {
881
+ "name": "radius",
882
+ "type": "number",
883
+ "required": false,
884
+ "default": "20",
885
+ "description": "Border radius in pixels"
886
+ },
887
+ {
888
+ "name": "gap",
889
+ "type": "number",
890
+ "required": false,
891
+ "default": "16",
892
+ "description": "Gap between content elements in pixels"
893
+ },
894
+ {
895
+ "name": "bgColor",
896
+ "type": "string",
897
+ "required": false,
898
+ "default": "theme",
899
+ "description": "Background color override"
900
+ },
901
+ {
902
+ "name": "textColor",
903
+ "type": "string",
904
+ "required": false,
905
+ "default": "theme",
906
+ "description": "Text color override"
907
+ },
908
+ {
909
+ "name": "accentColor",
910
+ "type": "string",
911
+ "required": false,
912
+ "default": "theme",
913
+ "description": "Accent color override"
914
+ },
915
+ {
916
+ "name": "borderColor",
917
+ "type": "string",
918
+ "required": false,
919
+ "default": "theme",
920
+ "description": "Border color override"
921
+ },
922
+ {
923
+ "name": "fontFamily",
924
+ "type": "string",
925
+ "required": false,
926
+ "default": "theme",
927
+ "description": "Font family override"
928
+ },
929
+ {
930
+ "name": "style",
931
+ "type": "CSSProperties",
932
+ "required": false,
933
+ "default": null,
934
+ "description": "Custom inline styles"
935
+ },
936
+ {
937
+ "name": "className",
938
+ "type": "string",
939
+ "required": false,
940
+ "default": null,
941
+ "description": "Custom CSS class"
942
+ }
943
+ ],
944
+ "themeTokens": [
945
+ "bgColor",
946
+ "textColor",
947
+ "accentColor",
948
+ "borderColor",
949
+ "fontFamily",
950
+ "radius",
951
+ "spacing",
952
+ "cardBg",
953
+ "cardRadius",
954
+ "cardBorder",
955
+ "minH",
956
+ "maxW",
957
+ "px",
958
+ "py",
959
+ "gap"
960
+ ],
961
+ "aiHints": {
962
+ "pageTypes": [
963
+ "landing",
964
+ "marketing",
965
+ "ecommerce",
966
+ "portfolio",
967
+ "restaurant",
968
+ "fitness",
969
+ "event",
970
+ "realestate"
971
+ ],
972
+ "placement": "header",
973
+ "priority": 7,
974
+ "sequenceOrder": 2,
975
+ "pairsWellWith": [
976
+ "navigation.PrimaryNav",
977
+ "content.HeadingSection",
978
+ "ecommerce.ProductGrid"
979
+ ],
980
+ "maxPerPage": 1,
981
+ "isContainer": false
982
+ }
983
+ },
984
+ {
985
+ "id": "hero.CTAOverlayHero",
986
+ "name": "CTAOverlayHero",
987
+ "description": "Hero section with a background image, dark overlay, and an email capture form. Combines visual impact with lead generation.",
988
+ "whenToUse": "Use when you need a visually striking hero that also captures user input (email signups, waitlists). Ideal for SaaS launch pages, marketing campaigns, and newsletter-driven landing pages.",
989
+ "isShell": false,
990
+ "props": [
991
+ {
992
+ "name": "as",
993
+ "type": "ElementType",
994
+ "required": false,
995
+ "default": "\"section\"",
996
+ "description": "HTML element or component to render as"
997
+ },
998
+ {
999
+ "name": "title",
1000
+ "type": "string",
1001
+ "required": false,
1002
+ "default": "\"Transform Your Ideas Into Reality\"",
1003
+ "description": "Main headline text"
1004
+ },
1005
+ {
1006
+ "name": "subtitle",
1007
+ "type": "string",
1008
+ "required": false,
1009
+ "default": null,
1010
+ "description": "Subtitle/description text"
1011
+ },
1012
+ {
1013
+ "name": "bgImage",
1014
+ "type": "string",
1015
+ "required": false,
1016
+ "default": null,
1017
+ "description": "URL of the background image"
1018
+ },
1019
+ {
1020
+ "name": "overlay",
1021
+ "type": "number",
1022
+ "required": false,
1023
+ "default": "0.6",
1024
+ "description": "Opacity of the dark overlay (0 to 1)"
1025
+ },
1026
+ {
1027
+ "name": "form",
1028
+ "type": "boolean",
1029
+ "required": false,
1030
+ "default": "true",
1031
+ "description": "Whether to show the email capture form"
1032
+ },
1033
+ {
1034
+ "name": "buttonText",
1035
+ "type": "string",
1036
+ "required": false,
1037
+ "default": "\"Get Started\"",
1038
+ "description": "Text for the form submit button"
1039
+ },
1040
+ {
1041
+ "name": "onSubmit",
1042
+ "type": "(email: string) => void",
1043
+ "required": false,
1044
+ "default": null,
1045
+ "description": "Callback fired when the email form is submitted"
1046
+ },
1047
+ {
1048
+ "name": "inputPlaceholder",
1049
+ "type": "string",
1050
+ "required": false,
1051
+ "default": "\"Enter your email\"",
1052
+ "description": "Placeholder text for the email input field"
1053
+ },
1054
+ {
1055
+ "name": "titleSize",
1056
+ "type": "number",
1057
+ "required": false,
1058
+ "default": "52",
1059
+ "description": "Font size of the title in pixels"
1060
+ },
1061
+ {
1062
+ "name": "subtitleSize",
1063
+ "type": "number",
1064
+ "required": false,
1065
+ "default": "20",
1066
+ "description": "Font size of the subtitle in pixels"
1067
+ },
1068
+ {
1069
+ "name": "minH",
1070
+ "type": "string",
1071
+ "required": false,
1072
+ "default": "\"70vh\"",
1073
+ "description": "Minimum height of the hero section"
1074
+ },
1075
+ {
1076
+ "name": "maxW",
1077
+ "type": "number",
1078
+ "required": false,
1079
+ "default": "1200",
1080
+ "description": "Maximum width in pixels"
1081
+ },
1082
+ {
1083
+ "name": "px",
1084
+ "type": "number",
1085
+ "required": false,
1086
+ "default": "24",
1087
+ "description": "Horizontal padding in pixels"
1088
+ },
1089
+ {
1090
+ "name": "py",
1091
+ "type": "number",
1092
+ "required": false,
1093
+ "default": "48",
1094
+ "description": "Vertical padding in pixels"
1095
+ },
1096
+ {
1097
+ "name": "radius",
1098
+ "type": "number",
1099
+ "required": false,
1100
+ "default": "20",
1101
+ "description": "Border radius in pixels"
1102
+ },
1103
+ {
1104
+ "name": "gap",
1105
+ "type": "number",
1106
+ "required": false,
1107
+ "default": "24",
1108
+ "description": "Gap between content elements in pixels"
1109
+ },
1110
+ {
1111
+ "name": "bgColor",
1112
+ "type": "string",
1113
+ "required": false,
1114
+ "default": "theme",
1115
+ "description": "Background color override"
1116
+ },
1117
+ {
1118
+ "name": "textColor",
1119
+ "type": "string",
1120
+ "required": false,
1121
+ "default": "theme",
1122
+ "description": "Text color override"
1123
+ },
1124
+ {
1125
+ "name": "accentColor",
1126
+ "type": "string",
1127
+ "required": false,
1128
+ "default": "theme",
1129
+ "description": "Accent/button color override"
1130
+ },
1131
+ {
1132
+ "name": "borderColor",
1133
+ "type": "string",
1134
+ "required": false,
1135
+ "default": "theme",
1136
+ "description": "Border color override"
1137
+ },
1138
+ {
1139
+ "name": "fontFamily",
1140
+ "type": "string",
1141
+ "required": false,
1142
+ "default": "theme",
1143
+ "description": "Font family override"
1144
+ },
1145
+ {
1146
+ "name": "style",
1147
+ "type": "CSSProperties",
1148
+ "required": false,
1149
+ "default": null,
1150
+ "description": "Custom inline styles"
1151
+ },
1152
+ {
1153
+ "name": "className",
1154
+ "type": "string",
1155
+ "required": false,
1156
+ "default": null,
1157
+ "description": "Custom CSS class"
1158
+ }
1159
+ ],
1160
+ "themeTokens": [
1161
+ "bgColor",
1162
+ "textColor",
1163
+ "accentColor",
1164
+ "borderColor",
1165
+ "fontFamily",
1166
+ "radius",
1167
+ "spacing",
1168
+ "cardBg",
1169
+ "cardRadius",
1170
+ "cardBorder",
1171
+ "minH",
1172
+ "maxW",
1173
+ "px",
1174
+ "py",
1175
+ "gap"
1176
+ ],
1177
+ "aiHints": {
1178
+ "pageTypes": ["landing", "marketing", "saas", "fitness", "education", "nonprofit", "event"],
1179
+ "placement": "header",
1180
+ "priority": 8,
1181
+ "sequenceOrder": 2,
1182
+ "pairsWellWith": [
1183
+ "navigation.PrimaryNav",
1184
+ "content.HeadingSection",
1185
+ "listsCards.FeatureGrid",
1186
+ "marketing.TestimonialsCarousel"
1187
+ ],
1188
+ "maxPerPage": 1,
1189
+ "isContainer": false
1190
+ }
1191
+ },
1192
+ {
1193
+ "id": "hero.PatternedHero",
1194
+ "name": "PatternedHero",
1195
+ "description": "Hero section with decorative pattern backgrounds (dots, grid, or diagonal lines), optional badge, stats row, and CTA button.",
1196
+ "whenToUse": "Use when you want a visually interesting hero without requiring images or video. The pattern backgrounds add texture and depth. Great for SaaS dashboards, developer tools, and tech-focused landing pages.",
1197
+ "isShell": false,
1198
+ "props": [
1199
+ {
1200
+ "name": "as",
1201
+ "type": "ElementType",
1202
+ "required": false,
1203
+ "default": "\"section\"",
1204
+ "description": "HTML element or component to render as"
1205
+ },
1206
+ {
1207
+ "name": "title",
1208
+ "type": "string",
1209
+ "required": false,
1210
+ "default": "\"Build the Future\"",
1211
+ "description": "Main headline text"
1212
+ },
1213
+ {
1214
+ "name": "subtitle",
1215
+ "type": "string",
1216
+ "required": false,
1217
+ "default": null,
1218
+ "description": "Subtitle/description text"
1219
+ },
1220
+ {
1221
+ "name": "pattern",
1222
+ "type": "\"dots\" | \"grid\" | \"diagonal\"",
1223
+ "required": false,
1224
+ "default": "\"dots\"",
1225
+ "description": "Decorative background pattern style"
1226
+ },
1227
+ {
1228
+ "name": "intensity",
1229
+ "type": "number",
1230
+ "required": false,
1231
+ "default": "0.5",
1232
+ "description": "Intensity/visibility of the background pattern (0 to 1)"
1233
+ },
1234
+ {
1235
+ "name": "badge",
1236
+ "type": "string",
1237
+ "required": false,
1238
+ "default": "\"New Release\"",
1239
+ "description": "Badge label displayed above the title"
1240
+ },
1241
+ {
1242
+ "name": "ctaLabel",
1243
+ "type": "string",
1244
+ "required": false,
1245
+ "default": "\"Get Started\"",
1246
+ "description": "Label text for the CTA button"
1247
+ },
1248
+ {
1249
+ "name": "onCta",
1250
+ "type": "() => void",
1251
+ "required": false,
1252
+ "default": null,
1253
+ "description": "Callback fired when the CTA button is clicked"
1254
+ },
1255
+ {
1256
+ "name": "stats",
1257
+ "type": "{label: string, value: string}[]",
1258
+ "required": false,
1259
+ "default": "[{\"label\": \"Active Users\", \"value\": \"10K+\"}, {\"label\": \"Projects\", \"value\": \"50K+\"}, {\"label\": \"Uptime\", \"value\": \"99.9%\"}]",
1260
+ "description": "Array of stat items displayed in a row below the hero content"
1261
+ },
1262
+ {
1263
+ "name": "titleSize",
1264
+ "type": "number",
1265
+ "required": false,
1266
+ "default": "52",
1267
+ "description": "Font size of the title in pixels"
1268
+ },
1269
+ {
1270
+ "name": "subtitleSize",
1271
+ "type": "number",
1272
+ "required": false,
1273
+ "default": "20",
1274
+ "description": "Font size of the subtitle in pixels"
1275
+ },
1276
+ {
1277
+ "name": "minH",
1278
+ "type": "string",
1279
+ "required": false,
1280
+ "default": "\"70vh\"",
1281
+ "description": "Minimum height of the hero section"
1282
+ },
1283
+ {
1284
+ "name": "maxW",
1285
+ "type": "number",
1286
+ "required": false,
1287
+ "default": "1200",
1288
+ "description": "Maximum width in pixels"
1289
+ },
1290
+ {
1291
+ "name": "px",
1292
+ "type": "number",
1293
+ "required": false,
1294
+ "default": "24",
1295
+ "description": "Horizontal padding in pixels"
1296
+ },
1297
+ {
1298
+ "name": "py",
1299
+ "type": "number",
1300
+ "required": false,
1301
+ "default": "48",
1302
+ "description": "Vertical padding in pixels"
1303
+ },
1304
+ {
1305
+ "name": "radius",
1306
+ "type": "number",
1307
+ "required": false,
1308
+ "default": "20",
1309
+ "description": "Border radius in pixels"
1310
+ },
1311
+ {
1312
+ "name": "gap",
1313
+ "type": "number",
1314
+ "required": false,
1315
+ "default": "24",
1316
+ "description": "Gap between content elements in pixels"
1317
+ },
1318
+ {
1319
+ "name": "bgColor",
1320
+ "type": "string",
1321
+ "required": false,
1322
+ "default": "theme",
1323
+ "description": "Background color override"
1324
+ },
1325
+ {
1326
+ "name": "textColor",
1327
+ "type": "string",
1328
+ "required": false,
1329
+ "default": "theme",
1330
+ "description": "Text color override"
1331
+ },
1332
+ {
1333
+ "name": "accentColor",
1334
+ "type": "string",
1335
+ "required": false,
1336
+ "default": "theme",
1337
+ "description": "Accent/CTA color override"
1338
+ },
1339
+ {
1340
+ "name": "borderColor",
1341
+ "type": "string",
1342
+ "required": false,
1343
+ "default": "theme",
1344
+ "description": "Border color override"
1345
+ },
1346
+ {
1347
+ "name": "fontFamily",
1348
+ "type": "string",
1349
+ "required": false,
1350
+ "default": "theme",
1351
+ "description": "Font family override"
1352
+ },
1353
+ {
1354
+ "name": "style",
1355
+ "type": "CSSProperties",
1356
+ "required": false,
1357
+ "default": null,
1358
+ "description": "Custom inline styles"
1359
+ },
1360
+ {
1361
+ "name": "className",
1362
+ "type": "string",
1363
+ "required": false,
1364
+ "default": null,
1365
+ "description": "Custom CSS class"
1366
+ }
1367
+ ],
1368
+ "themeTokens": [
1369
+ "bgColor",
1370
+ "textColor",
1371
+ "accentColor",
1372
+ "borderColor",
1373
+ "fontFamily",
1374
+ "radius",
1375
+ "spacing",
1376
+ "cardBg",
1377
+ "cardRadius",
1378
+ "cardBorder",
1379
+ "minH",
1380
+ "maxW",
1381
+ "px",
1382
+ "py",
1383
+ "gap"
1384
+ ],
1385
+ "aiHints": {
1386
+ "pageTypes": ["landing", "marketing", "saas", "event", "agency", "education", "nonprofit"],
1387
+ "placement": "header",
1388
+ "priority": 7,
1389
+ "sequenceOrder": 2,
1390
+ "pairsWellWith": [
1391
+ "navigation.PrimaryNav",
1392
+ "content.HeadingSection",
1393
+ "listsCards.FeatureGrid",
1394
+ "dataDisplay.Badge"
1395
+ ],
1396
+ "maxPerPage": 1,
1397
+ "isContainer": false
1398
+ }
1399
+ }
1400
+ ]
1401
+ }