@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,1152 @@
1
+ {
2
+ "$schema": "electroplix-component-metadata-v1",
3
+ "category": "content",
4
+ "label": "Content",
5
+ "description": "Text content components for rich text, headings, quotes, callouts, and markdown rendering",
6
+ "themeKey": "content",
7
+ "icon": "type",
8
+ "sortOrder": 5,
9
+ "components": [
10
+ {
11
+ "id": "content.BlockquoteTestimonial",
12
+ "name": "BlockquoteTestimonial",
13
+ "description": "Styled testimonial/quote block with author attribution, role, and optional avatar. Perfect for social proof sections.",
14
+ "whenToUse": "Use to highlight customer testimonials, expert quotes, or endorsements. Ideal for landing pages, marketing sections, and ecommerce product pages.",
15
+ "isShell": false,
16
+ "props": [
17
+ {
18
+ "name": "as",
19
+ "type": "ElementType",
20
+ "required": false,
21
+ "default": "\"blockquote\"",
22
+ "description": "HTML element or component to render as"
23
+ },
24
+ {
25
+ "name": "quote",
26
+ "type": "string",
27
+ "required": false,
28
+ "default": "\"This product changed everything for our team.\"",
29
+ "description": "The testimonial or quote text"
30
+ },
31
+ {
32
+ "name": "author",
33
+ "type": "string",
34
+ "required": false,
35
+ "default": "\"Jane Cooper\"",
36
+ "description": "Name of the person being quoted"
37
+ },
38
+ {
39
+ "name": "role",
40
+ "type": "string",
41
+ "required": false,
42
+ "default": "\"CEO at Acme Corp\"",
43
+ "description": "Role or title of the quoted person"
44
+ },
45
+ {
46
+ "name": "avatarUrl",
47
+ "type": "string",
48
+ "required": false,
49
+ "default": null,
50
+ "description": "URL to the author's avatar image"
51
+ },
52
+ {
53
+ "name": "quoteSize",
54
+ "type": "number",
55
+ "required": false,
56
+ "default": "18",
57
+ "description": "Font size for the quote text in pixels"
58
+ },
59
+ {
60
+ "name": "authorSize",
61
+ "type": "number",
62
+ "required": false,
63
+ "default": "14",
64
+ "description": "Font size for the author name in pixels"
65
+ },
66
+ {
67
+ "name": "maxW",
68
+ "type": "number",
69
+ "required": false,
70
+ "default": "900",
71
+ "description": "Maximum width of the component"
72
+ },
73
+ {
74
+ "name": "px",
75
+ "type": "number",
76
+ "required": false,
77
+ "default": "24",
78
+ "description": "Horizontal padding"
79
+ },
80
+ {
81
+ "name": "py",
82
+ "type": "number",
83
+ "required": false,
84
+ "default": "32",
85
+ "description": "Vertical padding"
86
+ },
87
+ {
88
+ "name": "radius",
89
+ "type": "number",
90
+ "required": false,
91
+ "default": "16",
92
+ "description": "Border radius"
93
+ },
94
+ {
95
+ "name": "gap",
96
+ "type": "number",
97
+ "required": false,
98
+ "default": "16",
99
+ "description": "Gap between quote and attribution"
100
+ },
101
+ {
102
+ "name": "bgColor",
103
+ "type": "string",
104
+ "required": false,
105
+ "default": "theme",
106
+ "description": "Background color override"
107
+ },
108
+ {
109
+ "name": "textColor",
110
+ "type": "string",
111
+ "required": false,
112
+ "default": "theme",
113
+ "description": "Text color override"
114
+ },
115
+ {
116
+ "name": "accentColor",
117
+ "type": "string",
118
+ "required": false,
119
+ "default": "theme",
120
+ "description": "Accent color override for decorative elements"
121
+ },
122
+ {
123
+ "name": "borderColor",
124
+ "type": "string",
125
+ "required": false,
126
+ "default": "theme",
127
+ "description": "Border color override"
128
+ },
129
+ {
130
+ "name": "fontFamily",
131
+ "type": "string",
132
+ "required": false,
133
+ "default": "theme",
134
+ "description": "Font family override"
135
+ },
136
+ {
137
+ "name": "style",
138
+ "type": "CSSProperties",
139
+ "required": false,
140
+ "default": null,
141
+ "description": "Custom inline styles"
142
+ },
143
+ {
144
+ "name": "className",
145
+ "type": "string",
146
+ "required": false,
147
+ "default": null,
148
+ "description": "Custom CSS class"
149
+ }
150
+ ],
151
+ "themeTokens": [
152
+ "bgColor",
153
+ "textColor",
154
+ "accentColor",
155
+ "borderColor",
156
+ "fontFamily",
157
+ "radius",
158
+ "spacing",
159
+ "cardBg",
160
+ "cardRadius",
161
+ "cardBorder",
162
+ "maxW",
163
+ "px",
164
+ "py",
165
+ "gap"
166
+ ],
167
+ "aiHints": {
168
+ "pageTypes": ["landing", "marketing", "ecommerce"],
169
+ "placement": "body",
170
+ "priority": 7,
171
+ "sequenceOrder": 6,
172
+ "pairsWellWith": ["marketing.TestimonialsCarousel"],
173
+ "maxPerPage": 3,
174
+ "isContainer": false
175
+ }
176
+ },
177
+ {
178
+ "id": "content.CalloutBox",
179
+ "name": "CalloutBox",
180
+ "description": "Alert/callout box with semantic variants for info, success, warning, and danger messages. Supports dismissible behavior.",
181
+ "whenToUse": "Use to draw attention to important information, tips, warnings, or errors. Ideal for documentation, blog posts, and any page needing contextual alerts.",
182
+ "isShell": false,
183
+ "props": [
184
+ {
185
+ "name": "as",
186
+ "type": "ElementType",
187
+ "required": false,
188
+ "default": "\"div\"",
189
+ "description": "HTML element or component to render as"
190
+ },
191
+ {
192
+ "name": "variant",
193
+ "type": "\"info\" | \"success\" | \"warning\" | \"danger\"",
194
+ "required": false,
195
+ "default": "\"info\"",
196
+ "description": "Semantic variant controlling color scheme"
197
+ },
198
+ {
199
+ "name": "title",
200
+ "type": "string",
201
+ "required": false,
202
+ "default": "\"Note\"",
203
+ "description": "Title text displayed at the top of the callout"
204
+ },
205
+ {
206
+ "name": "message",
207
+ "type": "string",
208
+ "required": false,
209
+ "default": "\"This is an important message.\"",
210
+ "description": "Body message of the callout"
211
+ },
212
+ {
213
+ "name": "icon",
214
+ "type": "ReactNode",
215
+ "required": false,
216
+ "default": null,
217
+ "description": "Custom icon element to display"
218
+ },
219
+ {
220
+ "name": "titleSize",
221
+ "type": "number",
222
+ "required": false,
223
+ "default": "16",
224
+ "description": "Font size for the title in pixels"
225
+ },
226
+ {
227
+ "name": "messageSize",
228
+ "type": "number",
229
+ "required": false,
230
+ "default": "14",
231
+ "description": "Font size for the message in pixels"
232
+ },
233
+ {
234
+ "name": "border",
235
+ "type": "boolean",
236
+ "required": false,
237
+ "default": "true",
238
+ "description": "Whether to show a border"
239
+ },
240
+ {
241
+ "name": "dismissible",
242
+ "type": "boolean",
243
+ "required": false,
244
+ "default": "false",
245
+ "description": "Whether the callout can be dismissed"
246
+ },
247
+ {
248
+ "name": "onDismiss",
249
+ "type": "() => void",
250
+ "required": false,
251
+ "default": null,
252
+ "description": "Callback when the callout is dismissed"
253
+ },
254
+ {
255
+ "name": "maxW",
256
+ "type": "number",
257
+ "required": false,
258
+ "default": "900",
259
+ "description": "Maximum width of the component"
260
+ },
261
+ {
262
+ "name": "px",
263
+ "type": "number",
264
+ "required": false,
265
+ "default": "0",
266
+ "description": "Horizontal padding"
267
+ },
268
+ {
269
+ "name": "py",
270
+ "type": "number",
271
+ "required": false,
272
+ "default": "0",
273
+ "description": "Vertical padding"
274
+ },
275
+ {
276
+ "name": "radius",
277
+ "type": "number",
278
+ "required": false,
279
+ "default": "0",
280
+ "description": "Border radius"
281
+ },
282
+ {
283
+ "name": "gap",
284
+ "type": "number",
285
+ "required": false,
286
+ "default": "16",
287
+ "description": "Gap between icon, title, and message"
288
+ },
289
+ {
290
+ "name": "bgColor",
291
+ "type": "string",
292
+ "required": false,
293
+ "default": "theme",
294
+ "description": "Background color override"
295
+ },
296
+ {
297
+ "name": "textColor",
298
+ "type": "string",
299
+ "required": false,
300
+ "default": "theme",
301
+ "description": "Text color override"
302
+ },
303
+ {
304
+ "name": "fontFamily",
305
+ "type": "string",
306
+ "required": false,
307
+ "default": "theme",
308
+ "description": "Font family override"
309
+ },
310
+ {
311
+ "name": "style",
312
+ "type": "CSSProperties",
313
+ "required": false,
314
+ "default": null,
315
+ "description": "Custom inline styles"
316
+ },
317
+ {
318
+ "name": "className",
319
+ "type": "string",
320
+ "required": false,
321
+ "default": null,
322
+ "description": "Custom CSS class"
323
+ }
324
+ ],
325
+ "themeTokens": [
326
+ "bgColor",
327
+ "textColor",
328
+ "accentColor",
329
+ "borderColor",
330
+ "fontFamily",
331
+ "radius",
332
+ "spacing",
333
+ "cardBg",
334
+ "cardRadius",
335
+ "cardBorder",
336
+ "maxW",
337
+ "px",
338
+ "py",
339
+ "gap"
340
+ ],
341
+ "aiHints": {
342
+ "pageTypes": ["documentation", "blog", "any"],
343
+ "placement": "body",
344
+ "priority": 6,
345
+ "sequenceOrder": 5,
346
+ "pairsWellWith": [
347
+ "content.ParagraphBlock",
348
+ "content.RichMarkdown",
349
+ "content.HeadingSection"
350
+ ],
351
+ "maxPerPage": 5,
352
+ "isContainer": false
353
+ }
354
+ },
355
+ {
356
+ "id": "content.HeadingSection",
357
+ "name": "HeadingSection",
358
+ "description": "Section heading with optional eyebrow text, title, subtitle, and decorative underline accent. Versatile section introducer.",
359
+ "whenToUse": "Use to introduce any content section on a page. Works on all page types as a universal section header with eyebrow, title, and subtitle.",
360
+ "isShell": false,
361
+ "props": [
362
+ {
363
+ "name": "as",
364
+ "type": "ElementType",
365
+ "required": false,
366
+ "default": "\"header\"",
367
+ "description": "HTML element or component to render as"
368
+ },
369
+ {
370
+ "name": "eyebrow",
371
+ "type": "string",
372
+ "required": false,
373
+ "default": "\"Featured\"",
374
+ "description": "Small text displayed above the title"
375
+ },
376
+ {
377
+ "name": "title",
378
+ "type": "string",
379
+ "required": false,
380
+ "default": "\"Section Title\"",
381
+ "description": "Main heading text"
382
+ },
383
+ {
384
+ "name": "subtitle",
385
+ "type": "string",
386
+ "required": false,
387
+ "default": "\"A brief description of this section.\"",
388
+ "description": "Supporting text below the title"
389
+ },
390
+ {
391
+ "name": "align",
392
+ "type": "\"left\" | \"center\" | \"right\"",
393
+ "required": false,
394
+ "default": "\"left\"",
395
+ "description": "Text alignment"
396
+ },
397
+ {
398
+ "name": "eyebrowSize",
399
+ "type": "number",
400
+ "required": false,
401
+ "default": "13",
402
+ "description": "Font size for the eyebrow text in pixels"
403
+ },
404
+ {
405
+ "name": "titleSize",
406
+ "type": "number",
407
+ "required": false,
408
+ "default": "36",
409
+ "description": "Font size for the title in pixels"
410
+ },
411
+ {
412
+ "name": "subtitleSize",
413
+ "type": "number",
414
+ "required": false,
415
+ "default": "16",
416
+ "description": "Font size for the subtitle in pixels"
417
+ },
418
+ {
419
+ "name": "spacing",
420
+ "type": "number",
421
+ "required": false,
422
+ "default": "12",
423
+ "description": "Spacing between eyebrow, title, and subtitle in pixels"
424
+ },
425
+ {
426
+ "name": "showDecoration",
427
+ "type": "boolean",
428
+ "required": false,
429
+ "default": "true",
430
+ "description": "Whether to show the decorative underline accent"
431
+ },
432
+ {
433
+ "name": "accentColor",
434
+ "type": "string",
435
+ "required": false,
436
+ "default": "theme",
437
+ "description": "Accent color for the decorative underline"
438
+ },
439
+ {
440
+ "name": "maxW",
441
+ "type": "number",
442
+ "required": false,
443
+ "default": "900",
444
+ "description": "Maximum width of the component"
445
+ },
446
+ {
447
+ "name": "px",
448
+ "type": "number",
449
+ "required": false,
450
+ "default": "24",
451
+ "description": "Horizontal padding"
452
+ },
453
+ {
454
+ "name": "py",
455
+ "type": "number",
456
+ "required": false,
457
+ "default": "32",
458
+ "description": "Vertical padding"
459
+ },
460
+ {
461
+ "name": "radius",
462
+ "type": "number",
463
+ "required": false,
464
+ "default": "16",
465
+ "description": "Border radius"
466
+ },
467
+ {
468
+ "name": "gap",
469
+ "type": "number",
470
+ "required": false,
471
+ "default": "16",
472
+ "description": "Gap between elements"
473
+ },
474
+ {
475
+ "name": "bgColor",
476
+ "type": "string",
477
+ "required": false,
478
+ "default": "theme",
479
+ "description": "Background color override"
480
+ },
481
+ {
482
+ "name": "textColor",
483
+ "type": "string",
484
+ "required": false,
485
+ "default": "theme",
486
+ "description": "Text color override"
487
+ },
488
+ {
489
+ "name": "fontFamily",
490
+ "type": "string",
491
+ "required": false,
492
+ "default": "theme",
493
+ "description": "Font family override"
494
+ },
495
+ {
496
+ "name": "style",
497
+ "type": "CSSProperties",
498
+ "required": false,
499
+ "default": null,
500
+ "description": "Custom inline styles"
501
+ },
502
+ {
503
+ "name": "className",
504
+ "type": "string",
505
+ "required": false,
506
+ "default": null,
507
+ "description": "Custom CSS class"
508
+ }
509
+ ],
510
+ "themeTokens": [
511
+ "bgColor",
512
+ "textColor",
513
+ "accentColor",
514
+ "borderColor",
515
+ "fontFamily",
516
+ "radius",
517
+ "spacing",
518
+ "cardBg",
519
+ "cardRadius",
520
+ "cardBorder",
521
+ "maxW",
522
+ "px",
523
+ "py",
524
+ "gap"
525
+ ],
526
+ "aiHints": {
527
+ "pageTypes": [
528
+ "landing",
529
+ "marketing",
530
+ "dashboard",
531
+ "blog",
532
+ "ecommerce",
533
+ "portfolio",
534
+ "saas",
535
+ "documentation",
536
+ "any"
537
+ ],
538
+ "placement": "body",
539
+ "priority": 8,
540
+ "sequenceOrder": 3,
541
+ "pairsWellWith": [
542
+ "content.ParagraphBlock",
543
+ "content.RichMarkdown",
544
+ "content.BlockquoteTestimonial",
545
+ "content.CalloutBox",
546
+ "content.InlineCodeText",
547
+ "hero.StaticHero",
548
+ "marketing.TestimonialsCarousel",
549
+ "navigation.PrimaryNav"
550
+ ],
551
+ "maxPerPage": 10,
552
+ "isContainer": false
553
+ }
554
+ },
555
+ {
556
+ "id": "content.InlineCodeText",
557
+ "name": "InlineCodeText",
558
+ "description": "Text block with inline code highlighting and optional copy-to-clipboard functionality. Renders code spans with distinct styling.",
559
+ "whenToUse": "Use when displaying text that contains inline code references, technical terms, or CLI commands. Ideal for documentation and technical blog posts.",
560
+ "isShell": false,
561
+ "props": [
562
+ {
563
+ "name": "as",
564
+ "type": "ElementType",
565
+ "required": false,
566
+ "default": "\"div\"",
567
+ "description": "HTML element or component to render as"
568
+ },
569
+ {
570
+ "name": "text",
571
+ "type": "string",
572
+ "required": true,
573
+ "default": null,
574
+ "description": "Text content with inline code marked by backticks"
575
+ },
576
+ {
577
+ "name": "codeBg",
578
+ "type": "string",
579
+ "required": false,
580
+ "default": null,
581
+ "description": "Background color for inline code spans"
582
+ },
583
+ {
584
+ "name": "codeColor",
585
+ "type": "string",
586
+ "required": false,
587
+ "default": null,
588
+ "description": "Text color for inline code spans"
589
+ },
590
+ {
591
+ "name": "codePx",
592
+ "type": "string",
593
+ "required": false,
594
+ "default": "\"4px 8px\"",
595
+ "description": "Padding for inline code spans"
596
+ },
597
+ {
598
+ "name": "codeRadius",
599
+ "type": "number",
600
+ "required": false,
601
+ "default": "6",
602
+ "description": "Border radius for inline code spans"
603
+ },
604
+ {
605
+ "name": "size",
606
+ "type": "number",
607
+ "required": false,
608
+ "default": "16",
609
+ "description": "Base font size in pixels"
610
+ },
611
+ {
612
+ "name": "copyable",
613
+ "type": "boolean",
614
+ "required": false,
615
+ "default": "true",
616
+ "description": "Whether code spans are copyable on click"
617
+ },
618
+ {
619
+ "name": "accentColor",
620
+ "type": "string",
621
+ "required": false,
622
+ "default": "theme",
623
+ "description": "Accent color override"
624
+ },
625
+ {
626
+ "name": "maxW",
627
+ "type": "number",
628
+ "required": false,
629
+ "default": "900",
630
+ "description": "Maximum width of the component"
631
+ },
632
+ {
633
+ "name": "px",
634
+ "type": "number",
635
+ "required": false,
636
+ "default": "24",
637
+ "description": "Horizontal padding"
638
+ },
639
+ {
640
+ "name": "py",
641
+ "type": "number",
642
+ "required": false,
643
+ "default": "24",
644
+ "description": "Vertical padding"
645
+ },
646
+ {
647
+ "name": "radius",
648
+ "type": "number",
649
+ "required": false,
650
+ "default": "16",
651
+ "description": "Border radius"
652
+ },
653
+ {
654
+ "name": "gap",
655
+ "type": "number",
656
+ "required": false,
657
+ "default": "16",
658
+ "description": "Gap between elements"
659
+ },
660
+ {
661
+ "name": "bgColor",
662
+ "type": "string",
663
+ "required": false,
664
+ "default": "theme",
665
+ "description": "Background color override"
666
+ },
667
+ {
668
+ "name": "textColor",
669
+ "type": "string",
670
+ "required": false,
671
+ "default": "theme",
672
+ "description": "Text color override"
673
+ },
674
+ {
675
+ "name": "fontFamily",
676
+ "type": "string",
677
+ "required": false,
678
+ "default": "theme",
679
+ "description": "Font family override"
680
+ },
681
+ {
682
+ "name": "style",
683
+ "type": "CSSProperties",
684
+ "required": false,
685
+ "default": null,
686
+ "description": "Custom inline styles"
687
+ },
688
+ {
689
+ "name": "className",
690
+ "type": "string",
691
+ "required": false,
692
+ "default": null,
693
+ "description": "Custom CSS class"
694
+ }
695
+ ],
696
+ "themeTokens": [
697
+ "bgColor",
698
+ "textColor",
699
+ "accentColor",
700
+ "borderColor",
701
+ "fontFamily",
702
+ "radius",
703
+ "spacing",
704
+ "cardBg",
705
+ "cardRadius",
706
+ "cardBorder",
707
+ "maxW",
708
+ "px",
709
+ "py",
710
+ "gap"
711
+ ],
712
+ "aiHints": {
713
+ "pageTypes": ["documentation", "blog"],
714
+ "placement": "body",
715
+ "priority": 4,
716
+ "sequenceOrder": 5,
717
+ "pairsWellWith": [
718
+ "content.ParagraphBlock",
719
+ "content.RichMarkdown",
720
+ "content.HeadingSection"
721
+ ],
722
+ "maxPerPage": 10,
723
+ "isContainer": false
724
+ }
725
+ },
726
+ {
727
+ "id": "content.ParagraphBlock",
728
+ "name": "ParagraphBlock",
729
+ "description": "Multi-paragraph text block with configurable typography, optional drop cap, title, and alignment controls.",
730
+ "whenToUse": "Use for body text sections on blog posts, landing pages, about pages, or any page requiring multi-paragraph content. Supports drop cap for editorial flair.",
731
+ "isShell": false,
732
+ "props": [
733
+ {
734
+ "name": "as",
735
+ "type": "ElementType",
736
+ "required": false,
737
+ "default": "\"div\"",
738
+ "description": "HTML element or component to render as"
739
+ },
740
+ {
741
+ "name": "paragraphs",
742
+ "type": "string[]",
743
+ "required": true,
744
+ "default": null,
745
+ "description": "Array of paragraph strings to render"
746
+ },
747
+ {
748
+ "name": "size",
749
+ "type": "number",
750
+ "required": false,
751
+ "default": "16",
752
+ "description": "Base font size in pixels"
753
+ },
754
+ {
755
+ "name": "leading",
756
+ "type": "number",
757
+ "required": false,
758
+ "default": "1.75",
759
+ "description": "Line height multiplier"
760
+ },
761
+ {
762
+ "name": "align",
763
+ "type": "\"left\" | \"center\" | \"right\"",
764
+ "required": false,
765
+ "default": "\"left\"",
766
+ "description": "Text alignment for all paragraphs"
767
+ },
768
+ {
769
+ "name": "showDropCap",
770
+ "type": "boolean",
771
+ "required": false,
772
+ "default": "false",
773
+ "description": "Show a decorative drop cap on the first paragraph"
774
+ },
775
+ {
776
+ "name": "title",
777
+ "type": "string",
778
+ "required": false,
779
+ "default": null,
780
+ "description": "Optional title displayed above the paragraphs"
781
+ },
782
+ {
783
+ "name": "accentColor",
784
+ "type": "string",
785
+ "required": false,
786
+ "default": "theme",
787
+ "description": "Accent color for drop cap and title"
788
+ },
789
+ {
790
+ "name": "maxW",
791
+ "type": "number",
792
+ "required": false,
793
+ "default": "900",
794
+ "description": "Maximum width of the component"
795
+ },
796
+ {
797
+ "name": "px",
798
+ "type": "number",
799
+ "required": false,
800
+ "default": "24",
801
+ "description": "Horizontal padding"
802
+ },
803
+ {
804
+ "name": "py",
805
+ "type": "number",
806
+ "required": false,
807
+ "default": "24",
808
+ "description": "Vertical padding"
809
+ },
810
+ {
811
+ "name": "radius",
812
+ "type": "number",
813
+ "required": false,
814
+ "default": "16",
815
+ "description": "Border radius"
816
+ },
817
+ {
818
+ "name": "gap",
819
+ "type": "number",
820
+ "required": false,
821
+ "default": "16",
822
+ "description": "Gap between paragraphs"
823
+ },
824
+ {
825
+ "name": "bgColor",
826
+ "type": "string",
827
+ "required": false,
828
+ "default": "theme",
829
+ "description": "Background color override"
830
+ },
831
+ {
832
+ "name": "textColor",
833
+ "type": "string",
834
+ "required": false,
835
+ "default": "theme",
836
+ "description": "Text color override"
837
+ },
838
+ {
839
+ "name": "fontFamily",
840
+ "type": "string",
841
+ "required": false,
842
+ "default": "theme",
843
+ "description": "Font family override"
844
+ },
845
+ {
846
+ "name": "style",
847
+ "type": "CSSProperties",
848
+ "required": false,
849
+ "default": null,
850
+ "description": "Custom inline styles"
851
+ },
852
+ {
853
+ "name": "className",
854
+ "type": "string",
855
+ "required": false,
856
+ "default": null,
857
+ "description": "Custom CSS class"
858
+ }
859
+ ],
860
+ "themeTokens": [
861
+ "bgColor",
862
+ "textColor",
863
+ "accentColor",
864
+ "borderColor",
865
+ "fontFamily",
866
+ "radius",
867
+ "spacing",
868
+ "cardBg",
869
+ "cardRadius",
870
+ "cardBorder",
871
+ "maxW",
872
+ "px",
873
+ "py",
874
+ "gap"
875
+ ],
876
+ "aiHints": {
877
+ "pageTypes": [
878
+ "blog",
879
+ "landing",
880
+ "marketing",
881
+ "education",
882
+ "nonprofit",
883
+ "agency",
884
+ "restaurant",
885
+ "fitness",
886
+ "health"
887
+ ],
888
+ "placement": "body",
889
+ "priority": 7,
890
+ "sequenceOrder": 5,
891
+ "pairsWellWith": [
892
+ "content.HeadingSection",
893
+ "content.BlockquoteTestimonial",
894
+ "content.CalloutBox",
895
+ "content.InlineCodeText"
896
+ ],
897
+ "maxPerPage": 10,
898
+ "isContainer": false
899
+ }
900
+ },
901
+ {
902
+ "id": "content.RichMarkdown",
903
+ "name": "RichMarkdown",
904
+ "description": "Render markdown content as styled HTML with full typography support. Handles headings, lists, code blocks, links, and more.",
905
+ "whenToUse": "Use when content is authored in markdown format. Ideal for blog posts, documentation pages, README displays, and any CMS-driven content.",
906
+ "isShell": false,
907
+ "props": [
908
+ {
909
+ "name": "as",
910
+ "type": "ElementType",
911
+ "required": false,
912
+ "default": "\"article\"",
913
+ "description": "HTML element or component to render as"
914
+ },
915
+ {
916
+ "name": "markdown",
917
+ "type": "string",
918
+ "required": true,
919
+ "default": null,
920
+ "description": "Raw markdown string to render as styled HTML"
921
+ },
922
+ {
923
+ "name": "baseSize",
924
+ "type": "number",
925
+ "required": false,
926
+ "default": "16",
927
+ "description": "Base font size in pixels for body text"
928
+ },
929
+ {
930
+ "name": "title",
931
+ "type": "string",
932
+ "required": false,
933
+ "default": null,
934
+ "description": "Optional title displayed above the rendered markdown"
935
+ },
936
+ {
937
+ "name": "accentColor",
938
+ "type": "string",
939
+ "required": false,
940
+ "default": "theme",
941
+ "description": "Accent color for links and highlights"
942
+ },
943
+ {
944
+ "name": "maxW",
945
+ "type": "number",
946
+ "required": false,
947
+ "default": "900",
948
+ "description": "Maximum width of the component"
949
+ },
950
+ {
951
+ "name": "px",
952
+ "type": "number",
953
+ "required": false,
954
+ "default": "24",
955
+ "description": "Horizontal padding"
956
+ },
957
+ {
958
+ "name": "py",
959
+ "type": "number",
960
+ "required": false,
961
+ "default": "24",
962
+ "description": "Vertical padding"
963
+ },
964
+ {
965
+ "name": "radius",
966
+ "type": "number",
967
+ "required": false,
968
+ "default": "16",
969
+ "description": "Border radius"
970
+ },
971
+ {
972
+ "name": "gap",
973
+ "type": "number",
974
+ "required": false,
975
+ "default": "16",
976
+ "description": "Gap between elements"
977
+ },
978
+ {
979
+ "name": "bgColor",
980
+ "type": "string",
981
+ "required": false,
982
+ "default": "theme",
983
+ "description": "Background color override"
984
+ },
985
+ {
986
+ "name": "textColor",
987
+ "type": "string",
988
+ "required": false,
989
+ "default": "theme",
990
+ "description": "Text color override"
991
+ },
992
+ {
993
+ "name": "fontFamily",
994
+ "type": "string",
995
+ "required": false,
996
+ "default": "theme",
997
+ "description": "Font family override"
998
+ },
999
+ {
1000
+ "name": "style",
1001
+ "type": "CSSProperties",
1002
+ "required": false,
1003
+ "default": null,
1004
+ "description": "Custom inline styles"
1005
+ },
1006
+ {
1007
+ "name": "className",
1008
+ "type": "string",
1009
+ "required": false,
1010
+ "default": null,
1011
+ "description": "Custom CSS class"
1012
+ }
1013
+ ],
1014
+ "themeTokens": [
1015
+ "bgColor",
1016
+ "textColor",
1017
+ "accentColor",
1018
+ "borderColor",
1019
+ "fontFamily",
1020
+ "radius",
1021
+ "spacing",
1022
+ "cardBg",
1023
+ "cardRadius",
1024
+ "cardBorder",
1025
+ "maxW",
1026
+ "px",
1027
+ "py",
1028
+ "gap"
1029
+ ],
1030
+ "aiHints": {
1031
+ "pageTypes": ["blog", "documentation"],
1032
+ "placement": "body",
1033
+ "priority": 7,
1034
+ "sequenceOrder": 5,
1035
+ "pairsWellWith": [
1036
+ "content.HeadingSection",
1037
+ "content.CalloutBox",
1038
+ "content.InlineCodeText",
1039
+ "content.ParagraphBlock"
1040
+ ],
1041
+ "maxPerPage": 5,
1042
+ "isContainer": false
1043
+ }
1044
+ },
1045
+ {
1046
+ "id": "content.TeamGrid",
1047
+ "name": "TeamGrid",
1048
+ "description": "Responsive grid of team member cards displaying avatar, name, role, bio, and social links. Supports configurable columns.",
1049
+ "whenToUse": "Use to showcase team members, staff profiles, instructor bios, speaker lineups, therapist profiles, partner headshots, or any people-focused section.",
1050
+ "isShell": false,
1051
+ "props": [
1052
+ {
1053
+ "name": "members",
1054
+ "type": "TeamMember[]",
1055
+ "required": true,
1056
+ "default": null,
1057
+ "description": "Array of team members: {id, name, role?, image?, bio?, socials?: {icon, href}[]}"
1058
+ },
1059
+ {
1060
+ "name": "columns",
1061
+ "type": "number",
1062
+ "required": false,
1063
+ "default": "3",
1064
+ "description": "Number of grid columns"
1065
+ },
1066
+ {
1067
+ "name": "title",
1068
+ "type": "string",
1069
+ "required": false,
1070
+ "default": null,
1071
+ "description": "Section heading above the grid"
1072
+ },
1073
+ {
1074
+ "name": "subtitle",
1075
+ "type": "string",
1076
+ "required": false,
1077
+ "default": null,
1078
+ "description": "Section subheading"
1079
+ },
1080
+ {
1081
+ "name": "bgColor",
1082
+ "type": "string",
1083
+ "required": false,
1084
+ "default": "theme",
1085
+ "description": "Background color override"
1086
+ },
1087
+ {
1088
+ "name": "textColor",
1089
+ "type": "string",
1090
+ "required": false,
1091
+ "default": "theme",
1092
+ "description": "Text color override"
1093
+ },
1094
+ {
1095
+ "name": "accentColor",
1096
+ "type": "string",
1097
+ "required": false,
1098
+ "default": "theme",
1099
+ "description": "Accent color override"
1100
+ },
1101
+ {
1102
+ "name": "borderColor",
1103
+ "type": "string",
1104
+ "required": false,
1105
+ "default": "theme",
1106
+ "description": "Border color override"
1107
+ },
1108
+ {
1109
+ "name": "fontFamily",
1110
+ "type": "string",
1111
+ "required": false,
1112
+ "default": "theme",
1113
+ "description": "Font family override"
1114
+ }
1115
+ ],
1116
+ "themeTokens": [
1117
+ "bgColor",
1118
+ "textColor",
1119
+ "accentColor",
1120
+ "borderColor",
1121
+ "fontFamily",
1122
+ "radius",
1123
+ "spacing",
1124
+ "cardBg",
1125
+ "cardRadius",
1126
+ "cardBorder"
1127
+ ],
1128
+ "aiHints": {
1129
+ "pageTypes": [
1130
+ "landing",
1131
+ "marketing",
1132
+ "agency",
1133
+ "education",
1134
+ "fitness",
1135
+ "restaurant",
1136
+ "health",
1137
+ "event",
1138
+ "community",
1139
+ "nonprofit",
1140
+ "realestate",
1141
+ "about"
1142
+ ],
1143
+ "placement": "body",
1144
+ "priority": 7,
1145
+ "sequenceOrder": 6,
1146
+ "pairsWellWith": ["content.HeadingSection", "media.AvatarProfile", "social.SocialShareBar"],
1147
+ "maxPerPage": 1,
1148
+ "isContainer": false
1149
+ }
1150
+ }
1151
+ ]
1152
+ }