@electroplix/components 0.3.1 → 0.5.0-alpha.2

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 (175) hide show
  1. package/CHANGELOG.md +66 -0
  2. package/LICENSE +21 -0
  3. package/README.md +130 -516
  4. package/SECURITY.md +19 -0
  5. package/cli.cjs +510 -485
  6. package/dist/config.d.ts +73 -0
  7. package/dist/config.esm.js +229 -0
  8. package/dist/index.d.ts +1 -1
  9. package/dist/index.esm.js +8644 -7781
  10. package/dist/package.json +97 -0
  11. package/dist/src/components/blog/index.d.ts +5 -5
  12. package/dist/src/components/blog/index.d.ts.map +1 -1
  13. package/dist/src/components/buttons/index.d.ts +19 -15
  14. package/dist/src/components/buttons/index.d.ts.map +1 -1
  15. package/dist/src/components/content/BlockquoteTestimonial.d.ts +1 -1
  16. package/dist/src/components/content/BlockquoteTestimonial.d.ts.map +1 -1
  17. package/dist/src/components/content/CalloutBox.d.ts +4 -3
  18. package/dist/src/components/content/CalloutBox.d.ts.map +1 -1
  19. package/dist/src/components/content/HeadingSection.d.ts +2 -2
  20. package/dist/src/components/content/HeadingSection.d.ts.map +1 -1
  21. package/dist/src/components/content/InlineCodeText.d.ts +4 -3
  22. package/dist/src/components/content/InlineCodeText.d.ts.map +1 -1
  23. package/dist/src/components/content/ParagraphBlock.d.ts +5 -4
  24. package/dist/src/components/content/ParagraphBlock.d.ts.map +1 -1
  25. package/dist/src/components/content/RichMarkdown.d.ts +4 -3
  26. package/dist/src/components/content/RichMarkdown.d.ts.map +1 -1
  27. package/dist/src/components/content/TeamGrid.d.ts +1 -1
  28. package/dist/src/components/content/TeamGrid.d.ts.map +1 -1
  29. package/dist/src/components/content/index.d.ts +7 -7
  30. package/dist/src/components/content/index.d.ts.map +1 -1
  31. package/dist/src/components/data-display/Badge.d.ts +5 -4
  32. package/dist/src/components/data-display/Badge.d.ts.map +1 -1
  33. package/dist/src/components/data-display/BadgeGroup.d.ts +4 -3
  34. package/dist/src/components/data-display/BadgeGroup.d.ts.map +1 -1
  35. package/dist/src/components/data-display/BarChart.d.ts.map +1 -1
  36. package/dist/src/components/data-display/CalendarGrid.d.ts +1 -1
  37. package/dist/src/components/data-display/CalendarGrid.d.ts.map +1 -1
  38. package/dist/src/components/data-display/DataTable.d.ts +3 -3
  39. package/dist/src/components/data-display/DataTable.d.ts.map +1 -1
  40. package/dist/src/components/data-display/LineChart.d.ts.map +1 -1
  41. package/dist/src/components/data-display/PieChart.d.ts +1 -1
  42. package/dist/src/components/data-display/PieChart.d.ts.map +1 -1
  43. package/dist/src/components/data-display/ProgressBar.d.ts.map +1 -1
  44. package/dist/src/components/data-display/RatingStars.d.ts.map +1 -1
  45. package/dist/src/components/data-display/Sparkline.d.ts.map +1 -1
  46. package/dist/src/components/data-display/Timeline.d.ts +1 -1
  47. package/dist/src/components/data-display/Timeline.d.ts.map +1 -1
  48. package/dist/src/components/data-display/index.d.ts +11 -11
  49. package/dist/src/components/data-display/index.d.ts.map +1 -1
  50. package/dist/src/components/ecommerce/index.d.ts +10 -10
  51. package/dist/src/components/ecommerce/index.d.ts.map +1 -1
  52. package/dist/src/components/forms/AddressAutocomplete.d.ts +1 -1
  53. package/dist/src/components/forms/AddressAutocomplete.d.ts.map +1 -1
  54. package/dist/src/components/forms/Captcha.d.ts +2 -2
  55. package/dist/src/components/forms/Captcha.d.ts.map +1 -1
  56. package/dist/src/components/forms/ContactForm.d.ts +1 -1
  57. package/dist/src/components/forms/ContactForm.d.ts.map +1 -1
  58. package/dist/src/components/forms/DateTimePicker.d.ts +2 -2
  59. package/dist/src/components/forms/DateTimePicker.d.ts.map +1 -1
  60. package/dist/src/components/forms/FileUploader.d.ts +1 -1
  61. package/dist/src/components/forms/FileUploader.d.ts.map +1 -1
  62. package/dist/src/components/forms/FormShell.d.ts +1 -1
  63. package/dist/src/components/forms/FormShell.d.ts.map +1 -1
  64. package/dist/src/components/forms/InputField.d.ts +1 -1
  65. package/dist/src/components/forms/InputField.d.ts.map +1 -1
  66. package/dist/src/components/forms/MultiStepWizard.d.ts +1 -1
  67. package/dist/src/components/forms/MultiStepWizard.d.ts.map +1 -1
  68. package/dist/src/components/forms/NewsletterSignup.d.ts +1 -1
  69. package/dist/src/components/forms/NewsletterSignup.d.ts.map +1 -1
  70. package/dist/src/components/forms/RadioGroup.d.ts +1 -1
  71. package/dist/src/components/forms/RadioGroup.d.ts.map +1 -1
  72. package/dist/src/components/forms/SelectDropdown.d.ts +1 -1
  73. package/dist/src/components/forms/SelectDropdown.d.ts.map +1 -1
  74. package/dist/src/components/forms/TextAreaField.d.ts +1 -1
  75. package/dist/src/components/forms/TextAreaField.d.ts.map +1 -1
  76. package/dist/src/components/forms/ToggleSwitch.d.ts +1 -1
  77. package/dist/src/components/forms/ToggleSwitch.d.ts.map +1 -1
  78. package/dist/src/components/forms/ValidationWrapper.d.ts +1 -1
  79. package/dist/src/components/forms/ValidationWrapper.d.ts.map +1 -1
  80. package/dist/src/components/forms/index.d.ts +28 -28
  81. package/dist/src/components/forms/index.d.ts.map +1 -1
  82. package/dist/src/components/hero/CTAOverlayHero.d.ts +1 -1
  83. package/dist/src/components/hero/CTAOverlayHero.d.ts.map +1 -1
  84. package/dist/src/components/hero/CarouselHero.d.ts +1 -1
  85. package/dist/src/components/hero/CarouselHero.d.ts.map +1 -1
  86. package/dist/src/components/hero/HeroShell.d.ts +1 -1
  87. package/dist/src/components/hero/HeroShell.d.ts.map +1 -1
  88. package/dist/src/components/hero/PatternedHero.d.ts +2 -2
  89. package/dist/src/components/hero/PatternedHero.d.ts.map +1 -1
  90. package/dist/src/components/hero/SplitHero.d.ts +1 -1
  91. package/dist/src/components/hero/SplitHero.d.ts.map +1 -1
  92. package/dist/src/components/hero/StaticHero.d.ts +2 -2
  93. package/dist/src/components/hero/StaticHero.d.ts.map +1 -1
  94. package/dist/src/components/hero/VideoHeaderHero.d.ts +1 -1
  95. package/dist/src/components/hero/VideoHeaderHero.d.ts.map +1 -1
  96. package/dist/src/components/hero/index.d.ts +14 -14
  97. package/dist/src/components/hero/index.d.ts.map +1 -1
  98. package/dist/src/components/lists-cards/index.d.ts +5 -5
  99. package/dist/src/components/lists-cards/index.d.ts.map +1 -1
  100. package/dist/src/components/marketing/index.d.ts +10 -10
  101. package/dist/src/components/marketing/index.d.ts.map +1 -1
  102. package/dist/src/components/media/index.d.ts +12 -12
  103. package/dist/src/components/media/index.d.ts.map +1 -1
  104. package/dist/src/components/miscellaneous/index.d.ts +4 -4
  105. package/dist/src/components/miscellaneous/index.d.ts.map +1 -1
  106. package/dist/src/components/modals/index.d.ts +12 -12
  107. package/dist/src/components/modals/index.d.ts.map +1 -1
  108. package/dist/src/components/navigation/AnchorLinks.d.ts +2 -2
  109. package/dist/src/components/navigation/AnchorLinks.d.ts.map +1 -1
  110. package/dist/src/components/navigation/Breadcrumbs.d.ts +1 -1
  111. package/dist/src/components/navigation/Breadcrumbs.d.ts.map +1 -1
  112. package/dist/src/components/navigation/Footer.d.ts +1 -1
  113. package/dist/src/components/navigation/Footer.d.ts.map +1 -1
  114. package/dist/src/components/navigation/LanguageSelector.d.ts +1 -1
  115. package/dist/src/components/navigation/LanguageSelector.d.ts.map +1 -1
  116. package/dist/src/components/navigation/MegaMenu.d.ts +1 -1
  117. package/dist/src/components/navigation/MegaMenu.d.ts.map +1 -1
  118. package/dist/src/components/navigation/Pagination.d.ts.map +1 -1
  119. package/dist/src/components/navigation/PrimaryNav.d.ts.map +1 -1
  120. package/dist/src/components/navigation/SideDrawerNav.d.ts +2 -2
  121. package/dist/src/components/navigation/SideDrawerNav.d.ts.map +1 -1
  122. package/dist/src/components/navigation/SidebarMenu.d.ts +1 -1
  123. package/dist/src/components/navigation/SidebarMenu.d.ts.map +1 -1
  124. package/dist/src/components/navigation/Stepper.d.ts +1 -1
  125. package/dist/src/components/navigation/Stepper.d.ts.map +1 -1
  126. package/dist/src/components/navigation/Tabs.d.ts +2 -2
  127. package/dist/src/components/navigation/Tabs.d.ts.map +1 -1
  128. package/dist/src/components/navigation/index.d.ts +22 -22
  129. package/dist/src/components/navigation/index.d.ts.map +1 -1
  130. package/dist/src/components/onboarding/index.d.ts +9 -9
  131. package/dist/src/components/onboarding/index.d.ts.map +1 -1
  132. package/dist/src/components/search/index.d.ts +2 -2
  133. package/dist/src/components/search/index.d.ts.map +1 -1
  134. package/dist/src/components/site-identity/index.d.ts +4 -4
  135. package/dist/src/components/site-identity/index.d.ts.map +1 -1
  136. package/dist/src/components/social/index.d.ts +7 -7
  137. package/dist/src/components/social/index.d.ts.map +1 -1
  138. package/dist/src/components/user-accounts/index.d.ts +7 -7
  139. package/dist/src/components/user-accounts/index.d.ts.map +1 -1
  140. package/dist/src/core/config.d.ts +1 -1
  141. package/dist/src/core/config.d.ts.map +1 -1
  142. package/dist/src/core/icons.d.ts +1 -1
  143. package/dist/src/core/icons.d.ts.map +1 -1
  144. package/dist/src/core/index.d.ts +7 -7
  145. package/dist/src/core/index.d.ts.map +1 -1
  146. package/dist/src/core/provider.d.ts +20 -20
  147. package/dist/src/core/provider.d.ts.map +1 -1
  148. package/dist/src/core/types.d.ts +4 -4
  149. package/dist/src/core/types.d.ts.map +1 -1
  150. package/dist/src/core/utils.d.ts +1 -1
  151. package/dist/src/core/utils.d.ts.map +1 -1
  152. package/dist/src/index.d.ts +19 -19
  153. package/dist/src/index.d.ts.map +1 -1
  154. package/metadata/blog.json +807 -0
  155. package/metadata/buttons.json +2186 -0
  156. package/metadata/content.json +1152 -0
  157. package/metadata/data-display.json +822 -0
  158. package/metadata/ecommerce.json +1059 -0
  159. package/metadata/forms.json +2637 -0
  160. package/metadata/hero.json +1401 -0
  161. package/metadata/lists-cards.json +848 -0
  162. package/metadata/marketing.json +1235 -0
  163. package/metadata/media.json +800 -0
  164. package/metadata/miscellaneous.json +778 -0
  165. package/metadata/modals.json +954 -0
  166. package/metadata/navigation.json +1348 -0
  167. package/metadata/onboarding.json +615 -0
  168. package/metadata/search.json +559 -0
  169. package/metadata/site-identity.json +555 -0
  170. package/metadata/social.json +654 -0
  171. package/metadata/user-accounts.json +727 -0
  172. package/package.json +97 -85
  173. package/dist/README.md +0 -35
  174. package/dist/src/__tests__/test-utils.d.ts +0 -8
  175. package/dist/src/__tests__/test-utils.d.ts.map +0 -1
@@ -0,0 +1,654 @@
1
+ {
2
+ "$schema": "electroplix-component-metadata-v1",
3
+ "category": "social",
4
+ "label": "Social",
5
+ "description": "Social interaction components for sharing, login, embeds, reactions, comments, and reviews",
6
+ "themeKey": "social",
7
+ "icon": "share-2",
8
+ "sortOrder": 16,
9
+ "components": [
10
+ {
11
+ "id": "social.SocialShareBar",
12
+ "name": "SocialShareBar",
13
+ "description": "Social media share buttons for distributing content across popular platforms. Supports Twitter, Facebook, LinkedIn, Reddit, email, and copy-to-clipboard.",
14
+ "whenToUse": "Use on blog posts, articles, marketing pages, and landing pages to let users share content across social networks.",
15
+ "isShell": false,
16
+ "props": [
17
+ {
18
+ "name": "url",
19
+ "type": "string",
20
+ "required": true,
21
+ "default": null,
22
+ "description": "The URL to share"
23
+ },
24
+ {
25
+ "name": "title",
26
+ "type": "string",
27
+ "required": false,
28
+ "default": "\"\"",
29
+ "description": "Title text to include with the shared link"
30
+ },
31
+ {
32
+ "name": "networks",
33
+ "type": "ShareNetwork[]",
34
+ "required": false,
35
+ "default": "[\"twitter\",\"facebook\",\"linkedin\",\"email\",\"copy\"]",
36
+ "description": "Array of networks to display: (\"twitter\" | \"facebook\" | \"linkedin\" | \"reddit\" | \"email\" | \"copy\")"
37
+ },
38
+ {
39
+ "name": "compact",
40
+ "type": "boolean",
41
+ "required": false,
42
+ "default": "false",
43
+ "description": "Whether to render compact icon-only buttons without labels"
44
+ },
45
+ {
46
+ "name": "bgColor",
47
+ "type": "string",
48
+ "required": false,
49
+ "default": "theme",
50
+ "description": "Background color override"
51
+ },
52
+ {
53
+ "name": "textColor",
54
+ "type": "string",
55
+ "required": false,
56
+ "default": "theme",
57
+ "description": "Text color override"
58
+ },
59
+ {
60
+ "name": "accentColor",
61
+ "type": "string",
62
+ "required": false,
63
+ "default": "theme",
64
+ "description": "Accent color override"
65
+ },
66
+ {
67
+ "name": "borderColor",
68
+ "type": "string",
69
+ "required": false,
70
+ "default": "theme",
71
+ "description": "Border color override"
72
+ },
73
+ {
74
+ "name": "fontFamily",
75
+ "type": "string",
76
+ "required": false,
77
+ "default": "theme",
78
+ "description": "Font family override"
79
+ }
80
+ ],
81
+ "themeTokens": [
82
+ "bgColor",
83
+ "textColor",
84
+ "accentColor",
85
+ "borderColor",
86
+ "fontFamily",
87
+ "radius",
88
+ "spacing",
89
+ "mutedText",
90
+ "buttonText"
91
+ ],
92
+ "aiHints": {
93
+ "pageTypes": [
94
+ "blog",
95
+ "marketing",
96
+ "landing",
97
+ "restaurant",
98
+ "education",
99
+ "community",
100
+ "event"
101
+ ],
102
+ "placement": "body",
103
+ "priority": 7,
104
+ "sequenceOrder": 8,
105
+ "pairsWellWith": ["content.HeadingSection", "social.CommentsBox", "social.ReactionsBar"],
106
+ "maxPerPage": 1,
107
+ "isContainer": false
108
+ }
109
+ },
110
+ {
111
+ "id": "social.SocialLoginButtons",
112
+ "name": "SocialLoginButtons",
113
+ "description": "OAuth provider login buttons supporting major social platforms. Renders branded buttons for each provider with horizontal or vertical layout.",
114
+ "whenToUse": "Use on authentication pages, login modals, and landing pages where social sign-in is offered alongside traditional email/password.",
115
+ "isShell": false,
116
+ "props": [
117
+ {
118
+ "name": "providers",
119
+ "type": "SocialProvider[]",
120
+ "required": true,
121
+ "default": null,
122
+ "description": "Array of OAuth providers to display: (\"google\" | \"github\" | \"twitter\" | \"facebook\" | \"discord\")"
123
+ },
124
+ {
125
+ "name": "onLogin",
126
+ "type": "(provider: SocialProvider) => void",
127
+ "required": false,
128
+ "default": null,
129
+ "description": "Callback invoked when a provider button is clicked"
130
+ },
131
+ {
132
+ "name": "layout",
133
+ "type": "\"horizontal\" | \"vertical\"",
134
+ "required": false,
135
+ "default": "\"vertical\"",
136
+ "description": "Layout direction of the provider buttons"
137
+ },
138
+ {
139
+ "name": "bgColor",
140
+ "type": "string",
141
+ "required": false,
142
+ "default": "theme",
143
+ "description": "Background color override"
144
+ },
145
+ {
146
+ "name": "textColor",
147
+ "type": "string",
148
+ "required": false,
149
+ "default": "theme",
150
+ "description": "Text color override"
151
+ },
152
+ {
153
+ "name": "accentColor",
154
+ "type": "string",
155
+ "required": false,
156
+ "default": "theme",
157
+ "description": "Accent color override"
158
+ },
159
+ {
160
+ "name": "borderColor",
161
+ "type": "string",
162
+ "required": false,
163
+ "default": "theme",
164
+ "description": "Border color override"
165
+ },
166
+ {
167
+ "name": "fontFamily",
168
+ "type": "string",
169
+ "required": false,
170
+ "default": "theme",
171
+ "description": "Font family override"
172
+ }
173
+ ],
174
+ "themeTokens": [
175
+ "bgColor",
176
+ "textColor",
177
+ "accentColor",
178
+ "borderColor",
179
+ "fontFamily",
180
+ "radius",
181
+ "spacing",
182
+ "mutedText",
183
+ "buttonText"
184
+ ],
185
+ "aiHints": {
186
+ "pageTypes": ["auth", "landing"],
187
+ "placement": "body",
188
+ "priority": 8,
189
+ "sequenceOrder": 5,
190
+ "pairsWellWith": ["forms.FormShell", "content.HeadingSection"],
191
+ "maxPerPage": 1,
192
+ "isContainer": false
193
+ }
194
+ },
195
+ {
196
+ "id": "social.SocialEmbed",
197
+ "name": "SocialEmbed",
198
+ "description": "Embed social media content from YouTube, Twitter, Instagram, Spotify, or custom sources. Renders responsive iframes with configurable dimensions.",
199
+ "whenToUse": "Use on blog posts, portfolio pages, and landing pages to embed external social media content like videos, tweets, or playlists.",
200
+ "isShell": false,
201
+ "props": [
202
+ {
203
+ "name": "type",
204
+ "type": "EmbedType",
205
+ "required": true,
206
+ "default": null,
207
+ "description": "Type of embed: (\"youtube\" | \"twitter\" | \"instagram\" | \"spotify\" | \"custom\")"
208
+ },
209
+ {
210
+ "name": "url",
211
+ "type": "string",
212
+ "required": true,
213
+ "default": null,
214
+ "description": "URL of the content to embed"
215
+ },
216
+ {
217
+ "name": "width",
218
+ "type": "string",
219
+ "required": false,
220
+ "default": "\"100%\"",
221
+ "description": "Width of the embed container"
222
+ },
223
+ {
224
+ "name": "height",
225
+ "type": "number",
226
+ "required": false,
227
+ "default": "400",
228
+ "description": "Height of the embed container in pixels"
229
+ },
230
+ {
231
+ "name": "title",
232
+ "type": "string",
233
+ "required": false,
234
+ "default": null,
235
+ "description": "Accessible title for the embedded iframe"
236
+ },
237
+ {
238
+ "name": "bgColor",
239
+ "type": "string",
240
+ "required": false,
241
+ "default": "theme",
242
+ "description": "Background color override"
243
+ },
244
+ {
245
+ "name": "textColor",
246
+ "type": "string",
247
+ "required": false,
248
+ "default": "theme",
249
+ "description": "Text color override"
250
+ },
251
+ {
252
+ "name": "accentColor",
253
+ "type": "string",
254
+ "required": false,
255
+ "default": "theme",
256
+ "description": "Accent color override"
257
+ },
258
+ {
259
+ "name": "borderColor",
260
+ "type": "string",
261
+ "required": false,
262
+ "default": "theme",
263
+ "description": "Border color override"
264
+ },
265
+ {
266
+ "name": "fontFamily",
267
+ "type": "string",
268
+ "required": false,
269
+ "default": "theme",
270
+ "description": "Font family override"
271
+ }
272
+ ],
273
+ "themeTokens": [
274
+ "bgColor",
275
+ "textColor",
276
+ "accentColor",
277
+ "borderColor",
278
+ "fontFamily",
279
+ "radius",
280
+ "spacing",
281
+ "mutedText",
282
+ "buttonText"
283
+ ],
284
+ "aiHints": {
285
+ "pageTypes": ["blog", "portfolio", "landing"],
286
+ "placement": "body",
287
+ "priority": 6,
288
+ "sequenceOrder": 5,
289
+ "pairsWellWith": [
290
+ "content.HeadingSection",
291
+ "content.RichMarkdown",
292
+ "social.SocialShareBar"
293
+ ],
294
+ "maxPerPage": 3,
295
+ "isContainer": false
296
+ }
297
+ },
298
+ {
299
+ "id": "social.FollowLike",
300
+ "name": "FollowLike",
301
+ "description": "Follow and like action buttons with live counts. Supports toggling follow/unfollow and like states with callback handlers.",
302
+ "whenToUse": "Use on blog posts, social feeds, and user profile pages to allow follow and like interactions with visible engagement counts.",
303
+ "isShell": false,
304
+ "props": [
305
+ {
306
+ "name": "isFollowed",
307
+ "type": "boolean",
308
+ "required": false,
309
+ "default": "false",
310
+ "description": "Whether the current user is following"
311
+ },
312
+ {
313
+ "name": "followerCount",
314
+ "type": "number",
315
+ "required": false,
316
+ "default": null,
317
+ "description": "Number of followers to display"
318
+ },
319
+ {
320
+ "name": "onFollow",
321
+ "type": "() => void",
322
+ "required": false,
323
+ "default": null,
324
+ "description": "Callback invoked when the follow button is clicked"
325
+ },
326
+ {
327
+ "name": "onUnfollow",
328
+ "type": "() => void",
329
+ "required": false,
330
+ "default": null,
331
+ "description": "Callback invoked when the unfollow button is clicked"
332
+ },
333
+ {
334
+ "name": "isLiked",
335
+ "type": "boolean",
336
+ "required": false,
337
+ "default": "false",
338
+ "description": "Whether the current user has liked the content"
339
+ },
340
+ {
341
+ "name": "likeCount",
342
+ "type": "number",
343
+ "required": false,
344
+ "default": null,
345
+ "description": "Number of likes to display"
346
+ },
347
+ {
348
+ "name": "onLike",
349
+ "type": "() => void",
350
+ "required": false,
351
+ "default": null,
352
+ "description": "Callback invoked when the like button is clicked"
353
+ },
354
+ {
355
+ "name": "bgColor",
356
+ "type": "string",
357
+ "required": false,
358
+ "default": "theme",
359
+ "description": "Background color override"
360
+ },
361
+ {
362
+ "name": "textColor",
363
+ "type": "string",
364
+ "required": false,
365
+ "default": "theme",
366
+ "description": "Text color override"
367
+ },
368
+ {
369
+ "name": "accentColor",
370
+ "type": "string",
371
+ "required": false,
372
+ "default": "theme",
373
+ "description": "Accent color override"
374
+ },
375
+ {
376
+ "name": "borderColor",
377
+ "type": "string",
378
+ "required": false,
379
+ "default": "theme",
380
+ "description": "Border color override"
381
+ },
382
+ {
383
+ "name": "fontFamily",
384
+ "type": "string",
385
+ "required": false,
386
+ "default": "theme",
387
+ "description": "Font family override"
388
+ }
389
+ ],
390
+ "themeTokens": [
391
+ "bgColor",
392
+ "textColor",
393
+ "accentColor",
394
+ "borderColor",
395
+ "fontFamily",
396
+ "radius",
397
+ "spacing",
398
+ "mutedText",
399
+ "buttonText"
400
+ ],
401
+ "aiHints": {
402
+ "pageTypes": ["blog", "social", "profile"],
403
+ "placement": "body",
404
+ "priority": 5,
405
+ "sequenceOrder": 7,
406
+ "pairsWellWith": ["social.ReactionsBar", "social.CommentsBox", "social.SocialShareBar"],
407
+ "maxPerPage": 2,
408
+ "isContainer": false
409
+ }
410
+ },
411
+ {
412
+ "id": "social.ReactionsBar",
413
+ "name": "ReactionsBar",
414
+ "description": "Emoji reaction bar allowing users to express reactions with emoji buttons. Displays reaction counts and active state for each emoji.",
415
+ "whenToUse": "Use on blog posts and social feeds to provide lightweight emoji-based feedback as an alternative or supplement to comments.",
416
+ "isShell": false,
417
+ "props": [
418
+ {
419
+ "name": "reactions",
420
+ "type": "Reaction[]",
421
+ "required": true,
422
+ "default": null,
423
+ "description": "Array of reactions: {emoji: string, label: string, count: number, active?: boolean}"
424
+ },
425
+ {
426
+ "name": "onReact",
427
+ "type": "(label: string) => void",
428
+ "required": false,
429
+ "default": null,
430
+ "description": "Callback invoked when a reaction emoji is clicked, receives the reaction label"
431
+ },
432
+ {
433
+ "name": "bgColor",
434
+ "type": "string",
435
+ "required": false,
436
+ "default": "theme",
437
+ "description": "Background color override"
438
+ },
439
+ {
440
+ "name": "textColor",
441
+ "type": "string",
442
+ "required": false,
443
+ "default": "theme",
444
+ "description": "Text color override"
445
+ },
446
+ {
447
+ "name": "accentColor",
448
+ "type": "string",
449
+ "required": false,
450
+ "default": "theme",
451
+ "description": "Accent color override"
452
+ },
453
+ {
454
+ "name": "borderColor",
455
+ "type": "string",
456
+ "required": false,
457
+ "default": "theme",
458
+ "description": "Border color override"
459
+ },
460
+ {
461
+ "name": "fontFamily",
462
+ "type": "string",
463
+ "required": false,
464
+ "default": "theme",
465
+ "description": "Font family override"
466
+ }
467
+ ],
468
+ "themeTokens": [
469
+ "bgColor",
470
+ "textColor",
471
+ "accentColor",
472
+ "borderColor",
473
+ "fontFamily",
474
+ "radius",
475
+ "spacing",
476
+ "mutedText",
477
+ "buttonText"
478
+ ],
479
+ "aiHints": {
480
+ "pageTypes": ["blog", "social"],
481
+ "placement": "body",
482
+ "priority": 5,
483
+ "sequenceOrder": 8,
484
+ "pairsWellWith": ["social.CommentsBox", "social.FollowLike", "social.SocialShareBar"],
485
+ "maxPerPage": 1,
486
+ "isContainer": false
487
+ }
488
+ },
489
+ {
490
+ "id": "social.CommentsBox",
491
+ "name": "CommentsBox",
492
+ "description": "Comments section with threaded replies. Displays a list of comments with author info, avatars, timestamps, and like counts, plus a submission form.",
493
+ "whenToUse": "Use on blog posts and social content pages to enable user discussions and threaded comment replies.",
494
+ "isShell": false,
495
+ "props": [
496
+ {
497
+ "name": "comments",
498
+ "type": "SocialComment[]",
499
+ "required": true,
500
+ "default": null,
501
+ "description": "Array of comments: {id: string, author: string, avatar?: string, text: string, time?: string, likes?: number}"
502
+ },
503
+ {
504
+ "name": "onSubmit",
505
+ "type": "(text: string) => void",
506
+ "required": false,
507
+ "default": null,
508
+ "description": "Callback invoked when a new comment is submitted"
509
+ },
510
+ {
511
+ "name": "title",
512
+ "type": "string",
513
+ "required": false,
514
+ "default": "\"Comments\"",
515
+ "description": "Heading text displayed above the comments section"
516
+ },
517
+ {
518
+ "name": "bgColor",
519
+ "type": "string",
520
+ "required": false,
521
+ "default": "theme",
522
+ "description": "Background color override"
523
+ },
524
+ {
525
+ "name": "textColor",
526
+ "type": "string",
527
+ "required": false,
528
+ "default": "theme",
529
+ "description": "Text color override"
530
+ },
531
+ {
532
+ "name": "accentColor",
533
+ "type": "string",
534
+ "required": false,
535
+ "default": "theme",
536
+ "description": "Accent color override"
537
+ },
538
+ {
539
+ "name": "borderColor",
540
+ "type": "string",
541
+ "required": false,
542
+ "default": "theme",
543
+ "description": "Border color override"
544
+ },
545
+ {
546
+ "name": "fontFamily",
547
+ "type": "string",
548
+ "required": false,
549
+ "default": "theme",
550
+ "description": "Font family override"
551
+ }
552
+ ],
553
+ "themeTokens": [
554
+ "bgColor",
555
+ "textColor",
556
+ "accentColor",
557
+ "borderColor",
558
+ "fontFamily",
559
+ "radius",
560
+ "spacing",
561
+ "mutedText",
562
+ "buttonText"
563
+ ],
564
+ "aiHints": {
565
+ "pageTypes": ["blog", "social"],
566
+ "placement": "body",
567
+ "priority": 7,
568
+ "sequenceOrder": 8,
569
+ "pairsWellWith": ["social.ReactionsBar", "social.FollowLike", "social.SocialShareBar"],
570
+ "maxPerPage": 1,
571
+ "isContainer": false
572
+ }
573
+ },
574
+ {
575
+ "id": "social.ReviewsForm",
576
+ "name": "ReviewsForm",
577
+ "description": "Submit a review with star rating, name, and review text. Provides a complete review submission form with validation.",
578
+ "whenToUse": "Use on ecommerce product pages and review/testimonial sections to collect user reviews with star ratings.",
579
+ "isShell": false,
580
+ "props": [
581
+ {
582
+ "name": "onSubmit",
583
+ "type": "(data: { rating: number, name: string, review: string }) => void",
584
+ "required": false,
585
+ "default": null,
586
+ "description": "Callback invoked when the review form is submitted with rating, name, and review text"
587
+ },
588
+ {
589
+ "name": "bgColor",
590
+ "type": "string",
591
+ "required": false,
592
+ "default": "theme",
593
+ "description": "Background color override"
594
+ },
595
+ {
596
+ "name": "textColor",
597
+ "type": "string",
598
+ "required": false,
599
+ "default": "theme",
600
+ "description": "Text color override"
601
+ },
602
+ {
603
+ "name": "accentColor",
604
+ "type": "string",
605
+ "required": false,
606
+ "default": "theme",
607
+ "description": "Accent color override"
608
+ },
609
+ {
610
+ "name": "borderColor",
611
+ "type": "string",
612
+ "required": false,
613
+ "default": "theme",
614
+ "description": "Border color override"
615
+ },
616
+ {
617
+ "name": "fontFamily",
618
+ "type": "string",
619
+ "required": false,
620
+ "default": "theme",
621
+ "description": "Font family override"
622
+ }
623
+ ],
624
+ "themeTokens": [
625
+ "bgColor",
626
+ "textColor",
627
+ "accentColor",
628
+ "borderColor",
629
+ "fontFamily",
630
+ "radius",
631
+ "spacing",
632
+ "mutedText",
633
+ "buttonText"
634
+ ],
635
+ "aiHints": {
636
+ "pageTypes": [
637
+ "ecommerce",
638
+ "reviews",
639
+ "restaurant",
640
+ "marketplace",
641
+ "agency",
642
+ "fitness",
643
+ "education"
644
+ ],
645
+ "placement": "body",
646
+ "priority": 6,
647
+ "sequenceOrder": 8,
648
+ "pairsWellWith": ["social.CommentsBox", "ecommerce.ProductDetail"],
649
+ "maxPerPage": 1,
650
+ "isContainer": false
651
+ }
652
+ }
653
+ ]
654
+ }