@levo-so/blocks 0.1.74 → 0.1.76

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,450 @@
1
+ import type { IBlock } from "@levo-so/studio";
2
+
3
+ const MEDIA = {
4
+ id: "7141014160938075687",
5
+ location: "https://space.levo.so/WLZ1TXTD/defaultblue-tryFJ012mgyH.png",
6
+ kind: "image",
7
+ mimetype: "image/png",
8
+ srcset: {
9
+ "1080w": "https://space.levo.so/WLZ1TXTD/defaultblue-tryFJ012mgyH-1080w.webp",
10
+ "1200w": "https://space.levo.so/WLZ1TXTD/defaultblue-tryFJ012mgyH-1200w.webp",
11
+ "1920w": "https://space.levo.so/WLZ1TXTD/defaultblue-tryFJ012mgyH-1920w.webp",
12
+ "320w": "https://space.levo.so/WLZ1TXTD/defaultblue-tryFJ012mgyH-320w.webp",
13
+ "640w": "https://space.levo.so/WLZ1TXTD/defaultblue-tryFJ012mgyH-640w.webp",
14
+ "750w": "https://space.levo.so/WLZ1TXTD/defaultblue-tryFJ012mgyH-750w.webp",
15
+ "828w": "https://space.levo.so/WLZ1TXTD/defaultblue-tryFJ012mgyH-828w.webp",
16
+ 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",
17
+ },
18
+ };
19
+
20
+ const DEFAULT_CONTENT = {
21
+ layout: null,
22
+ container: null,
23
+ "header-section": null,
24
+ "header-content": null,
25
+ "tag-container": null,
26
+ tag: "<p>Financial Planning</p>",
27
+ "title-section": null,
28
+ title: "How to Get from 0 to 100 Customers for your SaaS startup",
29
+ "meta-info": null,
30
+ "author-container": null,
31
+ "author-image-container": null,
32
+ "author-image": {
33
+ kind: "custom",
34
+ data: MEDIA,
35
+ },
36
+ "author-name": "John Doe",
37
+ "publish-date": "2025-12-29T14:03:50.371Z",
38
+ "reading-time": "<p>4 mins</p>",
39
+ "blog-cover": MEDIA,
40
+ "content-section": null,
41
+ content: `<p><span>Identifying an industry problem and building a user-friendly software product to solve that problem is just one part of the battle. The real test is whether you’re able to get your first set of customers and grow them in order to sustain your business.</span></p><p><span>With the growing number of software developers in the market, it is easy for anyone to build a product. But how do you crack into the market and get reliable business traction?</span></p><p><a target="_blank" rel="noopener noreferrer nofollow" class="link" href="https://www.linkedin.com/in/trivediravi/"><span><strong>Ravi Trivedi</strong></span></a><span>, Founder of </span><a target="_blank" rel="noopener noreferrer nofollow" class="link" href="https://www.pushengage.com/"><span><strong>PushEngage</strong></span></a><span> – a platform enables website owners to send push notifications to its customers, was a speaker at Startup Saturday, Bangalore, where he took us through the journey of getting from 0 to 100 customers.</span></p><p><span>With hands-on experience running different companies in India and the US, over the past few years, he has been working closely with early-stage startups to help them with customer acquisitions, growth and analytics.</span></p><p><span>Read through some of the interesting short-term tactics that Ravi shared to help SaaS startups get their first 100 customers.</span></p><img src="${MEDIA.location}" srcset="${MEDIA.srcset.path}" data-width="100%" data-align="center"><img src="${MEDIA.location}" srcset="${MEDIA.srcset.path}" data-width="100%" data-align="center"><p><strong>3- Step Marketing Process:</strong></p><p><strong>Step 1 – Identify Your Target Market</strong></p><p><span>The first step in your marketing plan should be about identifying your target customer. In order to do this, first try and explain what it is that your business is offering in 140 characters. Keeping your answer short and precise will give you direction and also help your customers understand what you’re offering quickly.<br><br>Spend time in chalking out a detailed description of your customer, the more focused the target the lesser will be the cost per acquisition. However, don’t make it so targeted that there isn’t a large enough audience.</span></p><p><span>“At PushEngage, Ravi and his team targeted Shopify, an upcoming e-commerce platform and pitched their email marketing service to them. They knew that Shopify would benefit directly from their service, and went after them specifically.”</span></p><p><strong>Step 2 – Hone The Messaging On Your Landing Page</strong></p><p><span>As the website is the main point of engagement with your customers, keep the messaging focused on a particular set of audience. In the early stage, it is okay to ignore the smaller audience segments in order to capture the attention of the more lucrative segment. You can check out the websites of Groove or Freshdesk for some really interesting website content ideas.</span></p><p><span>Ideally, the first-fold of your website should explain what your company does, and there should also be a section that offers social proof – this could be either news coverage, customer reviews or certificates and awards. &nbsp;</span></p><p><span>Finally, use </span><a target="_blank" rel="noopener noreferrer nofollow" class="link" href="https://www.levo.so/analytics"><span><strong>analytics to track the traffic on your page</strong></span></a><span> and tweak messaging and user experience accordingly.</span></p><p><strong>Step 3 – Use Marketing Tools For Fast Growth</strong></p><p><span>There are many marketing tools that’ll help you find your target customers online.</span></p><p><span>From competitor analysis tools like SimilarWeb and Buzzsumo that tell you what your competition is up to, to advertising tools like AdWords and AdSpy, there are a lot of free tools available to get initial traction.</span></p><p><span>Additionally, you can join industry-specific online communities and affiliate marketing sites to further grow your customers. It is important to leverage these aspects of the digital medium to meet your first set of customers.</span></p><p><span>Here are a few tips to get your </span><strong>first 10 customers:</strong></p><ol><li><p><span>Talk to potential customers while developing your product.</span></p><ul><li><p><span>Use their inputs to tweak your offering, as they’re your first leads.</span></p></li><li><p><span>Start advertising your service through AdWords and Facebook ads with a minimum budget.</span></p></li><li><p><span>Reach out to your personal network.<br>“Export your LinkedIn contact list and send them a holiday message instead of direct selling (Make it a habit to send at least 1 or 2 such messages every year)”</span></p></li><li><p><span><strong>Speak to your online customers directly and listen to their suggestions – If you’re selling globally, as a founder you need to interact directly with your customers in order to get practical feedback of your service.</strong></span></p></li></ul></li></ol><p><span>Here are a few tips to get</span> <span>from </span><strong>10 -100 customers:</strong></p><ol><li><p><span>Find influencers in your sector and offer them a deal to get referrals. PushEngage found 5 influencers and offered them a lifetime free plan. These influencers helped them improve their product and also gave a lot of referred customers.</span></p></li><li><p><span>Connect with the best affiliates and bloggers in your field and build a good relationship with them. Only the top 10 matter, as they’re the ones that will give you the desired traction.</span></p></li><li><p><span>‘Powered By’ words are like gold for SAAS startups. Try and get this type of branding in the early days to get indirect branding benefits.</span></p></li><li><p><span>Communities and marketplaces like Quora, Facebook groups and Reddit are easy targets for sector-specific topics. Be present and genuine in these platforms to witness organic interest in your service.</span></p></li><li><p><span>Create content and showcase your expertise through a blog. You can use tools like Content Analyzer, Buzzsumo or become a guest blogger to grow your organic audience.</span></p></li><li><p><span>Collect reviews from your employees, customers and vendors in marketplaces like G2Crowd, Capterra, and others.</span></p></li><li><p><span>Select one of these marketing activities that work for you and go deep to get maximum leverage.</span></p></li></ol><p></p>`,
42
+ "author-description": "<p>Lead Editor</p>",
43
+ };
44
+
45
+ export type IContent10Content = typeof DEFAULT_CONTENT;
46
+
47
+ export const Content10: IBlock = {
48
+ category_id: "content",
49
+ title: "Content 10",
50
+ key: "content-10",
51
+ version: "v1",
52
+ prompt_description:
53
+ "Centered layout with a category label above a large headline, author and details underneath, a wide featured image, and a brief supporting text at the bottom left.",
54
+ content_schema: [
55
+ {
56
+ key: "layout",
57
+ label: "Layout",
58
+ field_interface: "LayoutWidget",
59
+ hint: {
60
+ prompt_description: "Defines the overall page structure and layout. No content needed.",
61
+ },
62
+ },
63
+ {
64
+ key: "container",
65
+ label: "Container",
66
+ field_interface: "ContainerWidget",
67
+ hint: {
68
+ prompt_description:
69
+ "Wraps the central content and ensures proper spacing on the page. No content needed.",
70
+ },
71
+ },
72
+ {
73
+ key: "header-section",
74
+ label: "Header Section",
75
+ field_interface: "BoxWidget",
76
+ hint: {
77
+ prompt_description:
78
+ "Section grouping the blog post header information—tag, title, meta, and cover image. No content needed.",
79
+ },
80
+ },
81
+ {
82
+ key: "header-content",
83
+ label: "Header Content",
84
+ field_interface: "BoxWidget",
85
+ hint: {
86
+ prompt_description:
87
+ "Groups elements within the header: tag, title, meta, before the cover image. For structural use.",
88
+ },
89
+ },
90
+ {
91
+ key: "tag-container",
92
+ label: "Tag Container",
93
+ field_interface: "BoxWidget",
94
+ hint: {
95
+ prompt_description:
96
+ "Holds the category or tag label for the article. No content needed in this container.",
97
+ },
98
+ },
99
+ {
100
+ key: "tag",
101
+ label: "Tag",
102
+ field_interface: "TypographyWidget",
103
+ hint: {
104
+ prompt_description:
105
+ "A short, descriptive blog post tag or category, such as 'Financial Planning'. Use 1–3 words. Neutral and factual.",
106
+ usecase: "category",
107
+ min_characters: 7,
108
+ max_characters: 28,
109
+ },
110
+ },
111
+ {
112
+ key: "title-section",
113
+ label: "Title Section",
114
+ field_interface: "BoxWidget",
115
+ hint: {
116
+ prompt_description: "Container for the main blog post headline. No content needed here.",
117
+ },
118
+ },
119
+ {
120
+ key: "title",
121
+ label: "Title",
122
+ field_interface: "HeadingWidget",
123
+ hint: {
124
+ prompt_description:
125
+ "Main headline for the blog post. Clear, compelling, and professional. Use sentence case. Aim for strong impact; avoid jargon.",
126
+ usecase: "main_title",
127
+ min_characters: 28,
128
+ max_characters: 60,
129
+ },
130
+ },
131
+ {
132
+ key: "meta-info",
133
+ label: "Meta Info",
134
+ field_interface: "BoxWidget",
135
+ hint: {
136
+ prompt_description:
137
+ "Holds author’s name, publication date, and estimated reading time. No content needed here.",
138
+ },
139
+ },
140
+ {
141
+ key: "author-container",
142
+ label: "Author Container",
143
+ field_interface: "BoxWidget",
144
+ hint: {
145
+ prompt_description:
146
+ "Groups the author’s profile image and information. No direct content needed.",
147
+ },
148
+ },
149
+ {
150
+ key: "author-info-wrapper",
151
+ label: "Author Info Wrapper",
152
+ field_interface: "BoxWidget",
153
+ },
154
+
155
+ {
156
+ key: "author-image",
157
+ label: "Author Image",
158
+ field_interface: "IconWidget",
159
+ hint: {
160
+ prompt_description:
161
+ "Author avatar or profile image; describe the facial features, style, background, and any clothing/accessories",
162
+ orientation: "square",
163
+ size: "icon",
164
+ usecase: "avatar",
165
+ },
166
+ },
167
+ {
168
+ key: "author-name",
169
+ label: "Author Name",
170
+ field_interface: "HeadingWidget",
171
+ hint: {
172
+ prompt_description:
173
+ "Author's full name. Use proper capitalization, 2–3 words, simple formality.",
174
+ usecase: "author",
175
+ min_characters: 5,
176
+ max_characters: 28,
177
+ },
178
+ },
179
+ {
180
+ key: "author-description",
181
+ label: "Author Description",
182
+ field_interface: "TypographyWidget",
183
+ hint: {
184
+ prompt_description:
185
+ "Author's description. Use proper capitalization, 2–3 words, simple formality.",
186
+ usecase: "author",
187
+ min_characters: 5,
188
+ max_characters: 28,
189
+ },
190
+ },
191
+ {
192
+ key: "publish-date",
193
+ label: "Publish Date",
194
+ field_interface: "TypographyWidget",
195
+ hint: {
196
+ prompt_description:
197
+ "Date the article was published. Human-readable, e.g., 'April 25, 2025'. Month spelled out.",
198
+ usecase: "date",
199
+ min_characters: 10,
200
+ max_characters: 20,
201
+ },
202
+ },
203
+ {
204
+ key: "reading-time",
205
+ label: "Reading Time",
206
+ field_interface: "TypographyWidget",
207
+ hint: {
208
+ prompt_description:
209
+ "Estimated reading time in minutes. Use short format: '10 Minutes' or '8 Min'.",
210
+ usecase: "reading_time",
211
+ min_characters: 6,
212
+ max_characters: 13,
213
+ },
214
+ },
215
+ {
216
+ key: "blog-cover",
217
+ label: "Block Cover",
218
+ field_interface: "MediaWidget",
219
+ hint: {
220
+ prompt_description:
221
+ "Large, visually engaging banner illustrating the article's theme. Use abstract, thematic, or relevant imagery. Should be clear and unobtrusive for a blog hero.",
222
+ orientation: "landscape",
223
+ size: "large",
224
+ usecase: "hero",
225
+ },
226
+ },
227
+ {
228
+ key: "content-wrapper",
229
+ label: "Content Wrapper",
230
+ field_interface: "BoxWidget",
231
+ hint: {
232
+ prompt_description:
233
+ "Main body container for the blog content. No direct content needed here.",
234
+ },
235
+ },
236
+ {
237
+ key: "content-section",
238
+ label: "Content Section",
239
+ field_interface: "BoxWidget",
240
+ hint: {
241
+ prompt_description:
242
+ "Main body container for the blog content. No direct content needed here.",
243
+ },
244
+ },
245
+ {
246
+ key: "content",
247
+ label: "Content",
248
+ field_interface: "TypographyWidget",
249
+ hint: {
250
+ prompt_description:
251
+ "Full blog article body. Use formal, professional tone suitable for financial topics. Include headings, paragraphs, and clear explanations. Length should be 800–2000 words for a comprehensive post.",
252
+ usecase: "description",
253
+ min_characters: 800,
254
+ max_characters: 12000,
255
+ },
256
+ },
257
+ ],
258
+ layouts: [
259
+ {
260
+ key: "default",
261
+ title: "Default",
262
+ styles: {
263
+ layout: {
264
+ width: "100%",
265
+ "padding-top": "10xl",
266
+ "padding-bottom": "10xl",
267
+ "padding-right": "8xl",
268
+ "padding-left": "8xl",
269
+ tablet: {
270
+ "padding-top": "5xl",
271
+ "padding-bottom": "5xl",
272
+ "padding-right": "5xl",
273
+ "padding-left": "5xl",
274
+ },
275
+ mobile: {
276
+ "padding-right": "2xl",
277
+ "padding-left": "2xl",
278
+ "padding-top": "7xl",
279
+ "padding-bottom": "7xl",
280
+ },
281
+ },
282
+ container: {
283
+ width: "100%",
284
+ display: "flex",
285
+ "flex-direction": "column",
286
+ "row-gap": "3xl",
287
+ },
288
+ "header-section": {
289
+ display: "flex",
290
+ width: "full",
291
+ "flex-direction": "column",
292
+ "row-gap": "3xl",
293
+ "column-gap": "3xl",
294
+ },
295
+ "header-content": {
296
+ display: "flex",
297
+ "flex-direction": "column",
298
+ "align-items": "center",
299
+ "row-gap": "sm",
300
+ },
301
+ "tag-container": {
302
+ width: "fit-content",
303
+ "border-radius": "md",
304
+ border: "1px solid",
305
+ "border-color": "var(--color-border)",
306
+ "background-color": "#E9E9EB",
307
+ "padding-bottom": "2xs",
308
+ "padding-left": "base",
309
+ "padding-right": "base",
310
+ "padding-top": "2xs",
311
+ },
312
+ tag: {
313
+ "font-size": "xs",
314
+ "font-weight": "semibold",
315
+ color: "var(--color-text-1)",
316
+ },
317
+ "title-section": {
318
+ display: "flex",
319
+ "flex-direction": "column",
320
+ "row-gap": "lg",
321
+ },
322
+ title: {
323
+ "text-align": "center",
324
+ "font-size": "3xl",
325
+ "font-weight": "bold",
326
+ mobile: {
327
+ "font-size": "2xl",
328
+ "max-width": "none",
329
+ },
330
+ tablet: {
331
+ "font-size": "4xl",
332
+ },
333
+ },
334
+ "meta-info": {
335
+ display: "flex",
336
+ "flex-wrap": "wrap",
337
+ "align-items": "center",
338
+ "justify-content": "center",
339
+ "column-gap": "sm",
340
+ "row-gap": "xs",
341
+ "font-size": "sm",
342
+ "font-weight": "normal",
343
+ color: "var(--color-text-2)",
344
+ },
345
+ "author-container": {
346
+ display: "none",
347
+ "align-items": "center",
348
+ "column-gap": "2xs",
349
+ "row-gap": "2xs",
350
+ },
351
+ "author-image": {
352
+ "border-radius": "full",
353
+ height: "40px",
354
+ width: "40px",
355
+ "font-size": "40px",
356
+ "object-fit": "cover",
357
+ },
358
+ "author-name": {
359
+ "font-size": "base",
360
+ },
361
+ "publish-date": {},
362
+ "reading-time": {},
363
+ "blog-cover": {
364
+ height: "472px",
365
+ width: "100%",
366
+ "object-fit": "cover",
367
+ "border-radius": "xl",
368
+ tablet: {
369
+ height: "314px",
370
+ },
371
+ mobile: {
372
+ height: "164px",
373
+ },
374
+ },
375
+ "content-wrapper": {
376
+ display: "flex",
377
+ "column-gap": "3xl",
378
+ "align-items": "start",
379
+ tablet: {
380
+ "row-gap": "xl",
381
+ },
382
+ mobile: {},
383
+ },
384
+ "content-section": {
385
+ display: "flex",
386
+ width: "100%",
387
+ "flex-direction": "column",
388
+ "justify-content": "between",
389
+ "row-gap": "3xl",
390
+ "padding-bottom": "xl",
391
+ tablet: {
392
+ "padding-bottom": "xl",
393
+ },
394
+ mobile: {
395
+ "padding-bottom": "xl",
396
+ },
397
+ },
398
+ content: {
399
+ display: "flex",
400
+ "flex-direction": "column",
401
+ "row-gap": "xl",
402
+ "font-size": "base",
403
+ "line-height": 1.625,
404
+ width: "100%",
405
+ "padding-left": "none",
406
+ "padding-right": "none",
407
+ "justify-content": "start",
408
+ "align-items": "start",
409
+ },
410
+ "author-description": {
411
+ "font-size": "sm",
412
+ },
413
+ },
414
+ content: DEFAULT_CONTENT,
415
+ config: {
416
+ title: {
417
+ heading: {
418
+ level: "1",
419
+ },
420
+ selectedVariants: {
421
+ Heading_Level: "H4",
422
+ },
423
+ },
424
+ "author-name": {
425
+ selectedVariants: {
426
+ Heading_Level: "H6",
427
+ },
428
+ heading: {
429
+ level: "4",
430
+ },
431
+ },
432
+ "author-description": {
433
+ selectedVariants: {
434
+ Typography_Variants: "Small",
435
+ },
436
+ },
437
+ "reading-time": {
438
+ selectedVariants: {
439
+ Typography_Variants: "Small",
440
+ },
441
+ },
442
+ "publish-date": {
443
+ selectedVariants: {
444
+ Typography_Variants: "Small",
445
+ },
446
+ },
447
+ },
448
+ },
449
+ ],
450
+ };
@@ -0,0 +1,43 @@
1
+ import type { ILevoBlockBaseProps } from "@levo-so/studio";
2
+ import { Box, Container, Heading, Icon, Media, Section, Typography } from "@levo-so/studio";
3
+ import type React from "react";
4
+
5
+ import type { IContent10Content } from "./content-10.schema";
6
+
7
+ const Content10: React.FC<ILevoBlockBaseProps<IContent10Content>> = ({ content }) => {
8
+ return (
9
+ <Section elementKey="layout">
10
+ <Container elementKey="container">
11
+ <Box elementKey="header-section">
12
+ <Box elementKey="header-content">
13
+ <Box elementKey="tag-container">
14
+ <Typography elementKey="tag" />
15
+ </Box>
16
+ <Box elementKey="title-section">
17
+ <Heading elementKey="title" />
18
+ <Box elementKey="meta-info">
19
+ <Box elementKey="author-container">
20
+ <Icon elementKey="author-image" />
21
+ <Box elementKey="author-info-wrapper">
22
+ <Heading elementKey="author-name" />
23
+ <Typography elementKey="author-description" />
24
+ </Box>
25
+ </Box>
26
+ <Typography elementKey="publish-date" />
27
+ <Typography elementKey="reading-time" />
28
+ </Box>
29
+ </Box>
30
+ </Box>
31
+ <Media elementKey="blog-cover" alt="Blog Cover" />
32
+ </Box>
33
+ <Box elementKey="content-wrapper">
34
+ <Box elementKey="content-section">
35
+ <Typography elementKey="content" className="LevoProseMirror" />
36
+ </Box>
37
+ </Box>
38
+ </Container>
39
+ </Section>
40
+ );
41
+ };
42
+
43
+ export default Content10;