@levo-so/blocks 0.1.75 → 0.1.77

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 (58) hide show
  1. package/package.json +4 -4
  2. package/src/blocks/about-us/about-us-1.schema.ts +0 -3
  3. package/src/blocks/blogs/ClientOnly.tsx +24 -0
  4. package/src/blocks/blogs/blog-listing-1.schema.ts +750 -111
  5. package/src/blocks/blogs/blog-listing-1.tsx +123 -41
  6. package/src/blocks/blogs/blog-listing-2.schema.ts +1127 -2640
  7. package/src/blocks/blogs/blog-listing-2.tsx +110 -23
  8. package/src/blocks/blogs/blog-listing-3.schema.ts +713 -2010
  9. package/src/blocks/blogs/blog-listing-3.tsx +118 -20
  10. package/src/blocks/blogs/blog-post-1.schema.ts +262 -32
  11. package/src/blocks/blogs/blog-post-1.tsx +217 -28
  12. package/src/blocks/cards/cards-16.schema.ts +947 -0
  13. package/src/blocks/cards/cards-16.tsx +106 -0
  14. package/src/blocks/cards/cards-17.schema.ts +1945 -0
  15. package/src/blocks/cards/cards-17.tsx +112 -0
  16. package/src/blocks/cards/cards-18.schema.ts +1040 -0
  17. package/src/blocks/cards/cards-18.tsx +102 -0
  18. package/src/blocks/cards/cards-2.schema.ts +2 -2
  19. package/src/blocks/cards/cards-3.schema.ts +3 -16
  20. package/src/blocks/cards/cards-4.schema.ts +3 -28
  21. package/src/blocks/cards/cards-7.schema.ts +4 -7
  22. package/src/blocks/cards/cards-8.schema.ts +1 -10
  23. package/src/blocks/carousel/carousel-2.schema.ts +1 -2
  24. package/src/blocks/content/content-10.schema.ts +450 -0
  25. package/src/blocks/content/content-10.tsx +43 -0
  26. package/src/blocks/content/content-3.schema.ts +22 -28
  27. package/src/blocks/content/content-5.schema.ts +0 -4
  28. package/src/blocks/cta/cta-1.schema.ts +0 -3
  29. package/src/blocks/event/event-details.schema.ts +41 -175
  30. package/src/blocks/event/event-details.tsx +45 -50
  31. package/src/blocks/event/event-listing-2.schema.ts +437 -202
  32. package/src/blocks/event/event-listing-2.tsx +86 -22
  33. package/src/blocks/event/event-listing-3.schema.ts +232 -196
  34. package/src/blocks/event/event-listing-3.tsx +62 -29
  35. package/src/blocks/event/event-listing-4.schema.ts +314 -2824
  36. package/src/blocks/event/event-listing-4.tsx +68 -32
  37. package/src/blocks/event/event-listing.schema.ts +176 -1032
  38. package/src/blocks/event/event-listing.tsx +59 -25
  39. package/src/blocks/features/features-1/variants/stylized-cards-v2.ts +0 -1
  40. package/src/blocks/features/features-4.schema.ts +4 -14
  41. package/src/blocks/features/features-5.schema.ts +30 -51
  42. package/src/blocks/features/features-6.schema.ts +0 -1
  43. package/src/blocks/filter-listing/filter-listing-1.schema.ts +1 -3
  44. package/src/blocks/footer/footer-3.schema.ts +6 -14
  45. package/src/blocks/hero/hero-11.schema.ts +25 -54
  46. package/src/blocks/hero/hero-5.schema.ts +2 -6
  47. package/src/blocks/hero/hero-6.schema.ts +1 -10
  48. package/src/blocks/index.ts +4 -0
  49. package/src/blocks/logos/logos-1.schema.ts +0 -30
  50. package/src/blocks/pricing/pricing-1.schema.ts +0 -3
  51. package/src/blocks/stats/variants/default.ts +4 -5
  52. package/src/blocks/team/team-2.schema.ts +57 -154
  53. package/src/blocks/team/team-3.schema.ts +14 -31
  54. package/src/blocks/testimonial/testimonial-4.schema.ts +67 -152
  55. package/src/blocks/testimonial/testimonial-5/variants/default.ts +0 -1
  56. package/src/blocks/testimonial/testimonial-5/variants/testimonialWithLogo.ts +0 -1
  57. package/src/blocks/testimonial/testimonial-5/variants/testimonialWithRatings.ts +0 -1
  58. package/src/schemas/blocks.ts +8 -0
@@ -0,0 +1,947 @@
1
+ import type { IBlock } from "@levo-so/studio";
2
+
3
+ const DUMMY_ICON = {
4
+ kind: "icon",
5
+ data: {
6
+ id: "calendar-1",
7
+ label: "Calendar 1",
8
+ tags: ["calendar", "custom", "time"],
9
+ svgCode:
10
+ '<svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">\n<path d="M8 5.75C7.59 5.75 7.25 5.41 7.25 5V2C7.25 1.59 7.59 1.25 8 1.25C8.41 1.25 8.75 1.59 8.75 2V5C8.75 5.41 8.41 5.75 8 5.75Z" fill="var(--color-icon-primary)"/>\n<path d="M16 5.75C15.59 5.75 15.25 5.41 15.25 5V2C15.25 1.59 15.59 1.25 16 1.25C16.41 1.25 16.75 1.59 16.75 2V5C16.75 5.41 16.41 5.75 16 5.75Z" fill="var(--color-icon-primary)"/>\n<path d="M8.5 14.5001C8.37 14.5001 8.24 14.4701 8.12 14.4201C7.99 14.3701 7.89 14.3001 7.79 14.2101C7.61 14.0201 7.5 13.7701 7.5 13.5001C7.5 13.3701 7.53 13.2401 7.58 13.1201C7.63 13.0001 7.7 12.8901 7.79 12.7901C7.89 12.7001 7.99 12.6301 8.12 12.5801C8.48 12.4301 8.93 12.5101 9.21 12.7901C9.39 12.9801 9.5 13.2401 9.5 13.5001C9.5 13.5601 9.49 13.6301 9.48 13.7001C9.47 13.7601 9.45 13.8201 9.42 13.8801C9.4 13.9401 9.37 14.0001 9.33 14.0601C9.3 14.1101 9.25 14.1601 9.21 14.2101C9.02 14.3901 8.76 14.5001 8.5 14.5001Z" fill="var(--color-icon-primary)"/>\n<path d="M12 14.5C11.87 14.5 11.74 14.47 11.62 14.42C11.49 14.37 11.39 14.3 11.29 14.21C11.11 14.02 11 13.77 11 13.5C11 13.37 11.03 13.24 11.08 13.12C11.13 13 11.2 12.89 11.29 12.79C11.39 12.7 11.49 12.63 11.62 12.58C11.98 12.42 12.43 12.51 12.71 12.79C12.89 12.98 13 13.24 13 13.5C13 13.56 12.99 13.63 12.98 13.7C12.97 13.76 12.95 13.82 12.92 13.88C12.9 13.94 12.87 14 12.83 14.06C12.8 14.11 12.75 14.16 12.71 14.21C12.52 14.39 12.26 14.5 12 14.5Z" fill="var(--color-icon-primary)"/>\n<path d="M15.5 14.5C15.37 14.5 15.24 14.47 15.12 14.42C14.99 14.37 14.89 14.3 14.79 14.21C14.75 14.16 14.71 14.11 14.67 14.06C14.63 14 14.6 13.94 14.58 13.88C14.55 13.82 14.53 13.76 14.52 13.7C14.51 13.63 14.5 13.56 14.5 13.5C14.5 13.24 14.61 12.98 14.79 12.79C14.89 12.7 14.99 12.63 15.12 12.58C15.49 12.42 15.93 12.51 16.21 12.79C16.39 12.98 16.5 13.24 16.5 13.5C16.5 13.56 16.49 13.63 16.48 13.7C16.47 13.76 16.45 13.82 16.42 13.88C16.4 13.94 16.37 14 16.33 14.06C16.3 14.11 16.25 14.16 16.21 14.21C16.02 14.39 15.76 14.5 15.5 14.5Z" fill="var(--color-icon-primary)"/>\n<path d="M8.5 17.9999C8.37 17.9999 8.24 17.97 8.12 17.92C8 17.87 7.89 17.7999 7.79 17.7099C7.61 17.5199 7.5 17.2599 7.5 16.9999C7.5 16.8699 7.53 16.7399 7.58 16.6199C7.63 16.4899 7.7 16.38 7.79 16.29C8.16 15.92 8.84 15.92 9.21 16.29C9.39 16.48 9.5 16.7399 9.5 16.9999C9.5 17.2599 9.39 17.5199 9.21 17.7099C9.02 17.8899 8.76 17.9999 8.5 17.9999Z" fill="var(--color-icon-primary)"/>\n<path d="M12 17.9999C11.74 17.9999 11.48 17.8899 11.29 17.7099C11.11 17.5199 11 17.2599 11 16.9999C11 16.8699 11.03 16.7399 11.08 16.6199C11.13 16.4899 11.2 16.38 11.29 16.29C11.66 15.92 12.34 15.92 12.71 16.29C12.8 16.38 12.87 16.4899 12.92 16.6199C12.97 16.7399 13 16.8699 13 16.9999C13 17.2599 12.89 17.5199 12.71 17.7099C12.52 17.8899 12.26 17.9999 12 17.9999Z" fill="var(--color-icon-primary)"/>\n<path d="M15.5 18C15.24 18 14.98 17.89 14.79 17.71C14.7 17.62 14.63 17.51 14.58 17.38C14.53 17.26 14.5 17.13 14.5 17C14.5 16.87 14.53 16.74 14.58 16.62C14.63 16.49 14.7 16.38 14.79 16.29C15.02 16.06 15.37 15.95 15.69 16.02C15.76 16.03 15.82 16.05 15.88 16.08C15.94 16.1 16 16.13 16.06 16.17C16.11 16.2 16.16 16.25 16.21 16.29C16.39 16.48 16.5 16.74 16.5 17C16.5 17.26 16.39 17.52 16.21 17.71C16.02 17.89 15.76 18 15.5 18Z" fill="var(--color-icon-primary)"/>\n<path d="M20.5 9.83997H3.5C3.09 9.83997 2.75 9.49997 2.75 9.08997C2.75 8.67997 3.09 8.33997 3.5 8.33997H20.5C20.91 8.33997 21.25 8.67997 21.25 9.08997C21.25 9.49997 20.91 9.83997 20.5 9.83997Z" fill="var(--color-icon-primary)"/>\n<path d="M16 22.75H8C4.35 22.75 2.25 20.65 2.25 17V8.5C2.25 4.85 4.35 2.75 8 2.75H16C19.65 2.75 21.75 4.85 21.75 8.5V17C21.75 20.65 19.65 22.75 16 22.75ZM8 4.25C5.14 4.25 3.75 5.64 3.75 8.5V17C3.75 19.86 5.14 21.25 8 21.25H16C18.86 21.25 20.25 19.86 20.25 17V8.5C20.25 5.64 18.86 4.25 16 4.25H8Z" fill="var(--color-icon-primary)"/>\n</svg>',
11
+ },
12
+ };
13
+
14
+ const MEDIA = {
15
+ id: "7141014160938075687",
16
+ location: "https://space.levo.so/WLZ1TXTD/defaultblue-tryFJ012mgyH.png",
17
+ kind: "image",
18
+ mimetype: "image/png",
19
+ srcset: {
20
+ "1080w": "https://space.levo.so/WLZ1TXTD/defaultblue-tryFJ012mgyH-1080w.webp",
21
+ "1200w": "https://space.levo.so/WLZ1TXTD/defaultblue-tryFJ012mgyH-1200w.webp",
22
+ "1920w": "https://space.levo.so/WLZ1TXTD/defaultblue-tryFJ012mgyH-1920w.webp",
23
+ "320w": "https://space.levo.so/WLZ1TXTD/defaultblue-tryFJ012mgyH-320w.webp",
24
+ "640w": "https://space.levo.so/WLZ1TXTD/defaultblue-tryFJ012mgyH-640w.webp",
25
+ "750w": "https://space.levo.so/WLZ1TXTD/defaultblue-tryFJ012mgyH-750w.webp",
26
+ "828w": "https://space.levo.so/WLZ1TXTD/defaultblue-tryFJ012mgyH-828w.webp",
27
+ path: "https://space.levo.so/WLZ1TXTD/defaultblue-tryFJ012mgyH-640w.webp 640w, https://space.levo.so/WLZ1TXTD/defaultblue-tryFJ012mgyH-1080w.webp 1080w, https://space.levo.so/WLZ1TXTD/defaultblue-tryFJ012mgyH-1200w.webp 1200w, https://space.levo.so/WLZ1TXTD/defaultblue-tryFJ012mgyH-1920w.webp 1920w, https://space.levo.so/WLZ1TXTD/defaultblue-tryFJ012mgyH-320w.webp 320w, https://space.levo.so/WLZ1TXTD/defaultblue-tryFJ012mgyH-750w.webp 750w, https://space.levo.so/WLZ1TXTD/defaultblue-tryFJ012mgyH-828w.webp 828w",
28
+ },
29
+ };
30
+
31
+ const CARD_CONTENT = {
32
+ card: null,
33
+ cover_image: MEDIA,
34
+ card_content_wrapper: null,
35
+ text_content_wrapper: null,
36
+ timestamp_wrapper: null,
37
+ timestamp_icon: DUMMY_ICON,
38
+ timestamp: "Today, 12:00",
39
+ category: "Article",
40
+ title:
41
+ "Our comprehensive financial services help you achieve your goals through expert guidance and innovative solutions.",
42
+ description:
43
+ "Our comprehensive financial services help you achieve your goals through expert guidance and innovative solutions.",
44
+ author_wrapper: null,
45
+ author_image: MEDIA,
46
+ author_name: "John Doe",
47
+ author_description: "Marketing Coordinator",
48
+ cta: "Read more",
49
+ };
50
+
51
+ const DEFAULT_CONTENT = {
52
+ layout: null,
53
+ container: null,
54
+ text_wrapper: null,
55
+ title: "Building Wealth Together",
56
+ description:
57
+ "Our comprehensive financial services help you achieve your goals through expert guidance and innovative solutions.",
58
+ ctas_LevoGroup: null,
59
+ ctas: [{ cta: "Learn More" }, { cta: "View All" }],
60
+ cards: Array(3)
61
+ ?.fill(0)
62
+ ?.map((_) => CARD_CONTENT),
63
+ "pagination-wrapper": null,
64
+ "pagination-left": "Back",
65
+ "pagination-text": "",
66
+ "pagination-right": "Next",
67
+ };
68
+
69
+ const DEFAULT_CONTENT_NO_BORDER = {
70
+ layout: null,
71
+ container: null,
72
+ text_wrapper: null,
73
+ title: "Building Wealth Together",
74
+ description:
75
+ "Our comprehensive financial services help you achieve your goals through expert guidance and innovative solutions.",
76
+ ctas_LevoGroup: null,
77
+ ctas: [
78
+ {
79
+ cta: "Learn More",
80
+ },
81
+ {
82
+ cta: "View All",
83
+ },
84
+ ],
85
+ cards: Array(3)
86
+ ?.fill(0)
87
+ ?.map((_) => CARD_CONTENT),
88
+ "pagination-wrapper": null,
89
+ "pagination-left": "Back",
90
+ "pagination-text": "",
91
+ "pagination-right": "Next",
92
+ };
93
+
94
+ export type ICards16Content = typeof DEFAULT_CONTENT;
95
+
96
+ export const Cards16: IBlock = {
97
+ category_id: "cards",
98
+ title: "Cards 16",
99
+ key: "cards-16",
100
+ version: "v1",
101
+ content_schema: [
102
+ {
103
+ key: "layout",
104
+ label: "Layout",
105
+ field_interface: "LayoutWidget",
106
+ // No hint needed: acts as high-level layout wrapper
107
+ },
108
+ {
109
+ key: "container",
110
+ label: "Container",
111
+ field_interface: "ContainerWidget",
112
+ // No hint needed: visual/container only
113
+ },
114
+ {
115
+ key: "header",
116
+ label: "Header",
117
+ field_interface: "BoxWidget",
118
+ // No hint needed: layout grouping only
119
+ },
120
+ {
121
+ key: "text_wrapper",
122
+ label: "Text Wrapper",
123
+ field_interface: "BoxWidget",
124
+ // No hint needed: layout grouping only
125
+ },
126
+ {
127
+ key: "title",
128
+ label: "Title",
129
+ field_interface: "HeadingWidget",
130
+ hint: {
131
+ prompt_description:
132
+ "Primary headline for the blog/news section. Should be concise, attention-grabbing, and indicate trending or popular content for this month. Use a confident, informative, energetic tone.",
133
+ usecase: "main_title",
134
+ min_characters: 20,
135
+ max_characters: 35,
136
+ },
137
+ },
138
+ {
139
+ key: "description",
140
+ label: "Description",
141
+ field_interface: "TypographyWidget",
142
+ hint: {
143
+ prompt_description:
144
+ "Short supporting introduction for the section, summarizing the purpose or value of the featured content. Should be informative, aspirational, and encourage browsing. 1-2 lines.",
145
+ usecase: "description",
146
+ min_characters: 60,
147
+ max_characters: 140,
148
+ },
149
+ },
150
+ {
151
+ key: "ctas",
152
+ label: "CTAs",
153
+ kind: "group",
154
+ field_interface: "BoxWidget",
155
+ fields: [
156
+ {
157
+ key: "cta",
158
+ label: "CTA",
159
+ field_interface: "ButtonWidget",
160
+ },
161
+ ],
162
+ // No hint needed: layout grouping only
163
+ },
164
+ {
165
+ key: "cards",
166
+ label: "Cards",
167
+ kind: "group",
168
+ field_interface: "BoxWidget",
169
+ hint: {
170
+ prompt_description:
171
+ "Auto-populated grid of blog article cards. Each card displays real blog data (cover image, title, excerpt, published date, author info) with automatic click handling. Styling remains configurable.",
172
+ min_items: 6,
173
+ max_items: 9,
174
+ },
175
+ fields: [
176
+ {
177
+ key: "card",
178
+ label: "Card",
179
+ field_interface: "BoxWidget",
180
+ // No hint needed: just a per-card container
181
+ },
182
+ {
183
+ key: "cover_image",
184
+ label: "Cover Image",
185
+ field_interface: "ImageWidget",
186
+ hint: {
187
+ prompt_description:
188
+ "Automatically populated from blog cover_image. Styling remains configurable.",
189
+ orientation: "landscape",
190
+ size: "large",
191
+ usecase: "hero",
192
+ },
193
+ },
194
+ {
195
+ key: "card_content_wrapper",
196
+ label: "Card Content Wrapper",
197
+ field_interface: "BoxWidget",
198
+ // No hint needed: layout only
199
+ },
200
+ {
201
+ key: "text_content_wrapper",
202
+ label: "Text Content Wrapper",
203
+ field_interface: "BoxWidget",
204
+ // No hint needed: layout only
205
+ },
206
+ {
207
+ key: "content_header",
208
+ label: "Content Header",
209
+ field_interface: "BoxWidget",
210
+ // No hint needed: layout only
211
+ },
212
+ {
213
+ key: "timestamp_wrapper",
214
+ label: "Timestamp Wrapper",
215
+ field_interface: "BoxWidget",
216
+ // No hint needed: layout only
217
+ },
218
+ {
219
+ key: "timestamp_icon",
220
+ label: "Timestamp Icon",
221
+ field_interface: "IconWidget",
222
+ hint: {
223
+ prompt_description:
224
+ "Small icon representing time or date, displayed next to the timestamp. Should be simple, clear, and easily recognizable at small sizes.",
225
+ size: "icon",
226
+ orientation: "square",
227
+ usecase: "icon",
228
+ },
229
+ },
230
+ {
231
+ key: "timestamp",
232
+ label: "Timestamp",
233
+ field_interface: "TypographyWidget",
234
+ hint: {
235
+ prompt_description:
236
+ "Automatically populated from blog published_at date in 'DD MMM, YYYY' format. Styling remains configurable.",
237
+ usecase: "date",
238
+ min_characters: 8,
239
+ max_characters: 20,
240
+ },
241
+ },
242
+ {
243
+ key: "category_wrapper",
244
+ label: "Category Wrapper",
245
+ field_interface: "BoxWidget",
246
+ // No hint needed: layout only
247
+ },
248
+ {
249
+ key: "category_icon",
250
+ label: "Category Icon",
251
+ field_interface: "IconWidget",
252
+ hint: {
253
+ prompt_description:
254
+ "Small icon representing time or date, displayed next to the category. Should be simple, clear, and easily recognizable at small sizes.",
255
+ size: "icon",
256
+ orientation: "square",
257
+ usecase: "icon",
258
+ },
259
+ },
260
+ {
261
+ key: "category",
262
+ label: "Timestamp",
263
+ field_interface: "TypographyWidget",
264
+ },
265
+ {
266
+ key: "card_info_wrapper",
267
+ label: "Card Info Wrapper",
268
+ field_interface: "BoxWidget",
269
+ // No hint needed: layout only
270
+ },
271
+ {
272
+ key: "title",
273
+ label: "Title",
274
+ field_interface: "HeadingWidget",
275
+ hint: {
276
+ prompt_description:
277
+ "Automatically populated from blog title. Styling remains configurable.",
278
+ usecase: "title",
279
+ min_characters: 35,
280
+ max_characters: 60,
281
+ },
282
+ },
283
+ {
284
+ key: "description",
285
+ label: "Description",
286
+ field_interface: "TypographyWidget",
287
+ hint: {
288
+ prompt_description:
289
+ "Automatically populated from blog excerpt. Styling remains configurable.",
290
+ usecase: "description",
291
+ min_characters: 60,
292
+ max_characters: 130,
293
+ },
294
+ },
295
+ {
296
+ key: "author_wrapper",
297
+ label: "Author Wrapper",
298
+ field_interface: "BoxWidget",
299
+ // No hint needed: layout only
300
+ },
301
+ {
302
+ key: "author_image",
303
+ label: "Author Image",
304
+ field_interface: "MediaWidget",
305
+ hint: {
306
+ prompt_description:
307
+ "Circular avatar image of the article author. Use an easily recognizable headshot.",
308
+ orientation: "square",
309
+ size: "icon",
310
+ usecase: "avatar",
311
+ },
312
+ },
313
+ {
314
+ key: "author_info_wrapper",
315
+ label: "Author Info Wrapper",
316
+ field_interface: "BoxWidget",
317
+ // No hint needed: layout only
318
+ },
319
+ {
320
+ key: "author_name",
321
+ label: "Author Name",
322
+ field_interface: "HeadingWidget",
323
+ hint: {
324
+ prompt_description:
325
+ "Automatically populated from blog author data. Styling remains configurable.",
326
+ usecase: "author",
327
+ min_characters: 5,
328
+ max_characters: 25,
329
+ },
330
+ },
331
+ {
332
+ key: "author_description",
333
+ label: "Author Description",
334
+ field_interface: "TypographyWidget",
335
+ hint: {
336
+ prompt_description:
337
+ "Short description or job title of the author, e.g., 'Content Strategist', 'Lifestyle Editor'. Keep it short and professional. Automatically populated from blog author data.",
338
+ usecase: "designation",
339
+ min_characters: 10,
340
+ max_characters: 30,
341
+ },
342
+ },
343
+ {
344
+ key: "cta",
345
+ label: "CTA",
346
+ field_interface: "ButtonWidget",
347
+ hint: {
348
+ prompt_description:
349
+ "Call-to-action button for manual user interaction. Can be configured to link to blog details or other actions.",
350
+ usecase: "button",
351
+ min_characters: 6,
352
+ max_characters: 16,
353
+ },
354
+ },
355
+ ],
356
+ },
357
+ {
358
+ key: "pagination-wrapper",
359
+ label: "Pagination Wrapper",
360
+ field_interface: "BoxWidget",
361
+ // Layout grouping only – no hint needed
362
+ },
363
+ {
364
+ key: "pagination-left",
365
+ label: "Pagination Left",
366
+ field_interface: "ButtonWidget",
367
+ hint: {
368
+ prompt_description:
369
+ "Pagination control button to navigate to the previous page of blog cards. Keep the label brief, such as 'Previous' or a left arrow. Tone should be neutral and functional.",
370
+ usecase: "button",
371
+ min_characters: 5,
372
+ max_characters: 12,
373
+ },
374
+ },
375
+ {
376
+ key: "pagination-text",
377
+ label: "Pagination text",
378
+ field_interface: "TypographyWidget",
379
+ hint: {
380
+ prompt_description:
381
+ "Displays current and total page number in the paginator, e.g. '1/3' or 'Page 2 of 4'. Should be minimal, clear, and unambiguous.",
382
+ min_characters: 3,
383
+ max_characters: 12,
384
+ },
385
+ },
386
+ {
387
+ key: "pagination-right",
388
+ label: "Pagination Right",
389
+ field_interface: "ButtonWidget",
390
+ hint: {
391
+ prompt_description:
392
+ "Pagination control button to navigate to the next page of blog cards. Should be concise, such as 'Next' or a right arrow. Neutral tone.",
393
+ usecase: "button",
394
+ min_characters: 4,
395
+ max_characters: 8,
396
+ },
397
+ },
398
+ ],
399
+ layouts: [
400
+ {
401
+ key: "default",
402
+ title: "Default",
403
+ styles: {
404
+ layout: {
405
+ display: "flex",
406
+ "flex-direction": "column",
407
+ "align-items": "center",
408
+ "justify-content": "center",
409
+ gap: "xl",
410
+ "border-radius": "base",
411
+ "box-shadow": "lg",
412
+ },
413
+ container: {
414
+ display: "flex",
415
+ "flex-direction": "column",
416
+ "row-gap": "xl",
417
+ },
418
+ text_wrapper: {
419
+ display: "flex",
420
+ "flex-direction": "column",
421
+ "row-gap": "none",
422
+ },
423
+ ctas_levoGroup: {
424
+ display: "flex",
425
+ "column-gap": "md",
426
+ "align-items": "center",
427
+ },
428
+ ctas: [],
429
+ title: {
430
+ mobile: {
431
+ "text-align": "center",
432
+ },
433
+ },
434
+ description: {
435
+ mobile: {
436
+ "text-align": "center",
437
+ },
438
+ },
439
+ cards_levoGroup: {
440
+ display: "flex",
441
+ width: "100%",
442
+ "flex-direction": "column",
443
+ "row-gap": "9xl",
444
+ },
445
+ cards_levoGroupItem: {
446
+ card: {
447
+ display: "flex",
448
+ "column-gap": "4xl",
449
+ "border-radius": "base",
450
+ "align-items": "stretch",
451
+ },
452
+ cover_image: {
453
+ height: "auto",
454
+ "border-radius": "xl",
455
+ "object-fit": "cover",
456
+ tablet: {
457
+ width: "100%",
458
+ },
459
+ width: "100%",
460
+ "max-width": "256px",
461
+ },
462
+ card_content_wrapper: {
463
+ display: "flex",
464
+ width: "100%",
465
+ flex: "1 1 0",
466
+ "align-items": "start",
467
+ "column-gap": "lg",
468
+ tablet: {
469
+ "flex-direction": "column",
470
+ "align-items": "start",
471
+ "row-gap": "sm",
472
+ },
473
+ },
474
+ text_content_wrapper: {
475
+ display: "flex",
476
+ flex: "1",
477
+ "flex-direction": "column",
478
+ "row-gap": "none",
479
+ width: "auto",
480
+ },
481
+ timestamp_icon: {
482
+ display: "block",
483
+ },
484
+ timestamp_wrapper: {
485
+ display: "flex",
486
+ "align-items": "center",
487
+ "column-gap": "2xs",
488
+ },
489
+ timestamp: {
490
+ "font-weight": 600,
491
+ color: "text-2",
492
+ "font-size": "xs",
493
+ "margin-top": "5xs",
494
+ },
495
+ category_wrapper: {
496
+ display: "flex",
497
+ width: "fit-content",
498
+ "align-items": "center",
499
+ "column-gap": "2px",
500
+ "border-radius": "36px",
501
+ "background-color": "brandSecondary",
502
+ color: "brandSecondaryForeground",
503
+ "padding-left": "12px",
504
+ "padding-right": "12px",
505
+ "padding-top": "6px",
506
+ "padding-bottom": "6px",
507
+ },
508
+ category_icon: {
509
+ display: "none",
510
+ },
511
+ card_info_wrapper: {
512
+ display: "flex",
513
+ width: "100%",
514
+ "flex-direction": "column",
515
+ "row-gap": "2xs",
516
+ "margin-top": "sm",
517
+ },
518
+ title: {
519
+ "font-weight": 600,
520
+ "font-size": "lg",
521
+ },
522
+ description: {},
523
+ author_wrapper: {
524
+ display: "flex",
525
+ "align-items": "center",
526
+ "column-gap": "base",
527
+ "margin-top": "xl",
528
+ "padding-top": "md",
529
+ "border-right-width": "0px",
530
+ "border-bottom-width": "0px",
531
+ "border-left-width": "0px",
532
+ "border-top-width": "1.5px",
533
+ },
534
+ author_image: {
535
+ "border-radius": "100%",
536
+ "object-fit": "cover",
537
+ width: "40px",
538
+ height: "40px",
539
+ },
540
+ author_name: {
541
+ "font-size": "sm",
542
+ "font-weight": 600,
543
+ },
544
+ author_description: {},
545
+ cta: {
546
+ display: "none",
547
+ },
548
+ content_header: {
549
+ display: "flex",
550
+ "align-items": "center",
551
+ "column-gap": "sm",
552
+ },
553
+ category: {
554
+ "font-size": "xs",
555
+ "font-weight": 600,
556
+ color: "brandSecondaryForeground",
557
+ },
558
+ },
559
+ "pagination-wrapper": {
560
+ display: "flex",
561
+ width: "full",
562
+ "justify-content": "center",
563
+ "align-items": "center",
564
+ "column-gap": "md",
565
+ },
566
+ header: {
567
+ display: "flex",
568
+ "column-gap": "base",
569
+ "justify-content": "space-between",
570
+ "align-items": "center",
571
+ tablet: {
572
+ "flex-direction": "column",
573
+ "align-items": "start",
574
+ "row-gap": "sm",
575
+ },
576
+ mobile: {
577
+ "align-items": "center",
578
+ },
579
+ "background-image": 'url("")',
580
+ "background-position": "50% 50%",
581
+ "background-size": "cover",
582
+ "margin-bottom": "4xl",
583
+ },
584
+ },
585
+ content: DEFAULT_CONTENT,
586
+ config: {
587
+ title: {
588
+ heading: {
589
+ level: 2,
590
+ },
591
+ selectedVariants: {
592
+ Heading_Level: "H4",
593
+ },
594
+ },
595
+ cards: [
596
+ {
597
+ title: {
598
+ heading: {
599
+ level: "4",
600
+ },
601
+ selectedVariants: {
602
+ Heading_Level: "H6",
603
+ },
604
+ },
605
+ description: {
606
+ selectedVariants: {
607
+ Typography_Variants: "Small",
608
+ },
609
+ },
610
+ author_name: {
611
+ heading: {
612
+ level: "4",
613
+ },
614
+ selectedVariants: {
615
+ Heading_Level: "H6",
616
+ },
617
+ },
618
+ author_description: {
619
+ selectedVariants: {
620
+ Typography_Variants: "Small",
621
+ },
622
+ },
623
+ cover_image: {
624
+ image: {
625
+ width: 256,
626
+ },
627
+ },
628
+ timestamp: {
629
+ selectedVariants: {
630
+ Typography_Variants: "Small",
631
+ },
632
+ },
633
+ category: {
634
+ selectedVariants: {
635
+ Typography_Variants: "Small",
636
+ },
637
+ },
638
+ },
639
+ {
640
+ author_name: {
641
+ selectedVariants: {
642
+ Heading_Level: "H6",
643
+ },
644
+ },
645
+ },
646
+ {
647
+ author_name: {
648
+ selectedVariants: {
649
+ Heading_Level: "H6",
650
+ },
651
+ },
652
+ },
653
+ ],
654
+ ctas: [
655
+ {
656
+ cta: {
657
+ selectedVariants: {},
658
+ },
659
+ },
660
+ {
661
+ cta: {
662
+ selectedVariants: {
663
+ Button_Variants: "Secondary",
664
+ },
665
+ },
666
+ },
667
+ ],
668
+ },
669
+ },
670
+ {
671
+ key: "cards_with_border",
672
+ title: "Cards With Border",
673
+ styles: {
674
+ layout: {
675
+ display: "flex",
676
+ "flex-direction": "column",
677
+ "align-items": "center",
678
+ "justify-content": "center",
679
+ gap: "xl",
680
+ "border-radius": "base",
681
+ "box-shadow": "lg",
682
+ },
683
+ container: {
684
+ display: "flex",
685
+ "flex-direction": "column",
686
+ "row-gap": "xl",
687
+ },
688
+ text_wrapper: {
689
+ display: "flex",
690
+ "flex-direction": "column",
691
+ "row-gap": "none",
692
+ },
693
+ ctas_levoGroup: {
694
+ display: "flex",
695
+ "column-gap": "md",
696
+ "align-items": "center",
697
+ },
698
+ ctas: [],
699
+ title: {
700
+ mobile: {
701
+ "text-align": "center",
702
+ },
703
+ },
704
+ description: {
705
+ mobile: {
706
+ "text-align": "center",
707
+ },
708
+ },
709
+ cards_levoGroup: {
710
+ display: "flex",
711
+ width: "100%",
712
+ "flex-direction": "column",
713
+ "row-gap": "9xl",
714
+ },
715
+ cards_levoGroupItem: {
716
+ card: {
717
+ display: "flex",
718
+ "border-radius": "lg",
719
+ "align-items": "stretch",
720
+ "padding-left": "base",
721
+ "padding-right": "base",
722
+ "padding-top": "base",
723
+ "padding-bottom": "base",
724
+ "border-style": "solid",
725
+ "border-width": "1px",
726
+ "column-gap": "lg",
727
+ },
728
+ cover_image: {
729
+ height: "auto",
730
+ "border-radius": "xl",
731
+ "object-fit": "cover",
732
+ tablet: {
733
+ width: "100%",
734
+ },
735
+ width: "100%",
736
+ "max-width": "256px",
737
+ },
738
+ card_content_wrapper: {
739
+ display: "flex",
740
+ width: "100%",
741
+ flex: "1 1 0",
742
+ "align-items": "start",
743
+ "column-gap": "lg",
744
+ tablet: {
745
+ "flex-direction": "column",
746
+ "align-items": "start",
747
+ "row-gap": "sm",
748
+ },
749
+ },
750
+ text_content_wrapper: {
751
+ display: "flex",
752
+ flex: "1",
753
+ "flex-direction": "column",
754
+ "row-gap": "none",
755
+ width: "auto",
756
+ },
757
+ timestamp_icon: {
758
+ display: "block",
759
+ },
760
+ timestamp_wrapper: {
761
+ display: "flex",
762
+ "align-items": "center",
763
+ "column-gap": "2xs",
764
+ },
765
+ timestamp: {
766
+ "font-weight": 600,
767
+ color: "text-2",
768
+ "font-size": "xs",
769
+ "margin-top": "5xs",
770
+ },
771
+ category_wrapper: {
772
+ display: "flex",
773
+ width: "fit-content",
774
+ "align-items": "center",
775
+ "column-gap": "2px",
776
+ "border-radius": "36px",
777
+ "background-color": "brandSecondary",
778
+ color: "brandSecondaryForeground",
779
+ "padding-left": "12px",
780
+ "padding-right": "12px",
781
+ "padding-top": "6px",
782
+ "padding-bottom": "6px",
783
+ },
784
+ category_icon: {
785
+ display: "none",
786
+ },
787
+ card_info_wrapper: {
788
+ display: "flex",
789
+ width: "100%",
790
+ "flex-direction": "column",
791
+ "row-gap": "2xs",
792
+ "margin-top": "sm",
793
+ },
794
+ title: {
795
+ "font-weight": 600,
796
+ "font-size": "lg",
797
+ },
798
+ description: {},
799
+ author_wrapper: {
800
+ display: "flex",
801
+ "align-items": "center",
802
+ "column-gap": "base",
803
+ "margin-top": "xl",
804
+ "padding-top": "md",
805
+ "border-right-width": "0px",
806
+ "border-bottom-width": "0px",
807
+ "border-left-width": "0px",
808
+ "border-top-width": "1.5px",
809
+ },
810
+ author_image: {
811
+ "border-radius": "100%",
812
+ "object-fit": "cover",
813
+ width: "40px",
814
+ height: "40px",
815
+ },
816
+ author_name: {
817
+ "font-size": "sm",
818
+ "font-weight": 600,
819
+ },
820
+ author_description: {},
821
+ cta: {
822
+ display: "none",
823
+ },
824
+ content_header: {
825
+ display: "flex",
826
+ "align-items": "center",
827
+ "column-gap": "sm",
828
+ },
829
+ category: {
830
+ "font-size": "xs",
831
+ "font-weight": 600,
832
+ color: "brandSecondaryForeground",
833
+ },
834
+ },
835
+ "pagination-wrapper": {
836
+ display: "flex",
837
+ width: "full",
838
+ "justify-content": "center",
839
+ "align-items": "center",
840
+ "column-gap": "md",
841
+ },
842
+ header: {
843
+ display: "flex",
844
+ "column-gap": "base",
845
+ "justify-content": "space-between",
846
+ "align-items": "center",
847
+ tablet: {
848
+ "flex-direction": "column",
849
+ "align-items": "start",
850
+ "row-gap": "sm",
851
+ },
852
+ mobile: {
853
+ "align-items": "center",
854
+ },
855
+ "background-image": 'url("")',
856
+ "background-position": "50% 50%",
857
+ "background-size": "cover",
858
+ "margin-bottom": "4xl",
859
+ },
860
+ },
861
+ content: DEFAULT_CONTENT_NO_BORDER,
862
+ config: {
863
+ title: {
864
+ heading: {
865
+ level: 2,
866
+ },
867
+ selectedVariants: {
868
+ Heading_Level: "H4",
869
+ },
870
+ },
871
+ cards: [
872
+ {
873
+ title: {
874
+ heading: {
875
+ level: "4",
876
+ },
877
+ selectedVariants: {
878
+ Heading_Level: "H6",
879
+ },
880
+ },
881
+ description: {
882
+ selectedVariants: {
883
+ Typography_Variants: "Small",
884
+ },
885
+ },
886
+ author_name: {
887
+ heading: {
888
+ level: "4",
889
+ },
890
+ selectedVariants: {
891
+ Heading_Level: "H6",
892
+ },
893
+ },
894
+ author_description: {
895
+ selectedVariants: {
896
+ Typography_Variants: "Small",
897
+ },
898
+ },
899
+ cover_image: {
900
+ image: {
901
+ width: 256,
902
+ },
903
+ },
904
+ timestamp: {
905
+ selectedVariants: {
906
+ Typography_Variants: "Small",
907
+ },
908
+ },
909
+ category: {
910
+ selectedVariants: {
911
+ Typography_Variants: "Small",
912
+ },
913
+ },
914
+ },
915
+ {
916
+ author_name: {
917
+ selectedVariants: {
918
+ Heading_Level: "H6",
919
+ },
920
+ },
921
+ },
922
+ {
923
+ author_name: {
924
+ selectedVariants: {
925
+ Heading_Level: "H6",
926
+ },
927
+ },
928
+ },
929
+ ],
930
+ ctas: [
931
+ {
932
+ cta: {
933
+ selectedVariants: {},
934
+ },
935
+ },
936
+ {
937
+ cta: {
938
+ selectedVariants: {
939
+ Button_Variants: "Secondary",
940
+ },
941
+ },
942
+ },
943
+ ],
944
+ },
945
+ },
946
+ ],
947
+ };