@levo-so/blocks 0.1.54 → 0.1.59
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.
- package/package.json +2 -2
- package/src/blocks/about-us/about-us-1.schema.ts +14 -0
- package/src/blocks/about-us/about-us-1.tsx +4 -2
- package/src/blocks/about-us/about-us-2.schema.ts +48 -0
- package/src/blocks/about-us/about-us-2.tsx +6 -0
- package/src/blocks/blogs/blog-listing-1.schema.ts +10 -0
- package/src/blocks/blogs/blog-listing-2.schema.ts +42 -162
- package/src/blocks/blogs/blog-listing-2.tsx +7 -0
- package/src/blocks/blogs/blog-listing-3.schema.ts +9 -0
- package/src/blocks/blogs/blog-post-1.schema.ts +7 -1
- package/src/blocks/blogs/blog-post-1.tsx +1 -1
- package/src/blocks/blogs/blog-post-2.schema.ts +464 -28
- package/src/blocks/blogs/blog-post-2.tsx +6 -13
- package/src/blocks/blogs/blog-post-3.schema.ts +42 -0
- package/src/blocks/blogs/blog-post-3.tsx +4 -1
- package/src/blocks/calendar/calendar-1.schema.ts +537 -0
- package/src/blocks/calendar/calendar-1.tsx +145 -0
- package/src/blocks/cards/cards-10.schema.ts +52 -4
- package/src/blocks/cards/cards-10.tsx +13 -1
- package/src/blocks/cards/cards-14.schema.ts +532 -0
- package/src/blocks/cards/cards-14.tsx +54 -0
- package/src/blocks/cards/cards-15.schema.ts +277 -0
- package/src/blocks/cards/cards-15.tsx +40 -0
- package/src/blocks/cards/cards-6.schema.ts +46 -0
- package/src/blocks/cards/cards-6.tsx +27 -1
- package/src/blocks/cards/cards-7.tsx +2 -0
- package/src/blocks/carousel/carousel-2.schema.ts +1128 -0
- package/src/blocks/carousel/carousel-2.tsx +159 -0
- package/src/blocks/content/content-5.schema.ts +112 -6
- package/src/blocks/content/content-5.tsx +19 -3
- package/src/blocks/content/content-6.schema.ts +16 -3
- package/src/blocks/content/content-6.tsx +1 -0
- package/src/blocks/content/content-8.schema.ts +125 -0
- package/src/blocks/content/content-8.tsx +27 -0
- package/src/blocks/content/content-9.schema.ts +2729 -0
- package/src/blocks/content/content-9.tsx +91 -0
- package/src/blocks/cta/cta-2.schema.ts +46 -4
- package/src/blocks/cta/cta-2.tsx +9 -1
- package/src/blocks/embed/embed-1.schema.ts +100 -0
- package/src/blocks/event/ClientOnly.tsx +27 -0
- package/src/blocks/event/event-details.tsx +10 -3
- package/src/blocks/event/event-listing-3.tsx +9 -2
- package/src/blocks/event/event-listing-4.tsx +11 -2
- package/src/blocks/event/event-listing.tsx +11 -4
- package/src/blocks/faq/faq-1.schema.ts +58 -1
- package/src/blocks/faq/faq-1.tsx +18 -1
- package/src/blocks/faq/faq-2.tsx +2 -1
- package/src/blocks/faq/faq-3.schema.ts +6 -1
- package/src/blocks/faq/faq-3.tsx +1 -0
- package/src/blocks/features/features-1/features-1.schema.ts +2 -0
- package/src/blocks/features/features-1/variants/index.ts +2 -0
- package/src/blocks/features/features-1/variants/stylized-cards-v3.ts +451 -0
- package/src/blocks/features/features-4.schema.ts +358 -20
- package/src/blocks/features/features-4.tsx +3 -1
- package/src/blocks/features/features-6.tsx +2 -0
- package/src/blocks/filter-listing/filter-listing-1.schema.ts +614 -0
- package/src/blocks/filter-listing/filter-listing-1.tsx +128 -0
- package/src/blocks/footer/footer-6.schema.ts +2 -2
- package/src/blocks/hero/hero-11.schema.ts +849 -0
- package/src/blocks/hero/hero-11.tsx +59 -0
- package/src/blocks/hero/hero-12.schema.ts +712 -0
- package/src/blocks/hero/hero-12.tsx +76 -0
- package/src/blocks/hero/hero-13.schema.ts +238 -0
- package/src/blocks/hero/hero-13.tsx +31 -0
- package/src/blocks/hero/hero-4.tsx +2 -0
- package/src/blocks/hero/hero-5.tsx +2 -0
- package/src/blocks/hero/hero-7.tsx +2 -1
- package/src/blocks/hero/hero-8.tsx +2 -0
- package/src/blocks/hero/hero-9.schema.ts +5 -0
- package/src/blocks/hero/hero-9.tsx +2 -0
- package/src/blocks/index.ts +27 -0
- package/src/blocks/navbar/navbar-1.schema.ts +6 -6
- package/src/blocks/navbar/navbar-1.tsx +6 -7
- package/src/blocks/navbar/navbar-2.schema.ts +9 -9
- package/src/blocks/navbar/navbar-2.tsx +7 -8
- package/src/blocks/navbar/navbar-3.schema.ts +9 -9
- package/src/blocks/navbar/navbar-3.tsx +139 -114
- package/src/blocks/polling/polling-1.schema.ts +134 -0
- package/src/blocks/polling/polling-1.tsx +466 -0
- package/src/blocks/products/products-listing-2.schema.ts +596 -0
- package/src/blocks/products/products-listing-2.tsx +56 -0
- package/src/blocks/products/products-listing-3.schema.ts +818 -0
- package/src/blocks/products/products-listing-3.tsx +125 -0
- package/src/blocks/profile/profile-2.schema.ts +505 -0
- package/src/blocks/profile/profile-2.tsx +64 -0
- package/src/blocks/profile/profile-3.schema.ts +867 -0
- package/src/blocks/profile/profile-3.tsx +98 -0
- package/src/blocks/services/service-1.schema.ts +1743 -0
- package/src/blocks/services/service-1.tsx +139 -0
- package/src/blocks/services/service-2.schema.ts +433 -0
- package/src/blocks/services/service-2.tsx +98 -0
- package/src/blocks/services/service-3.schema.ts +631 -0
- package/src/blocks/services/service-3.tsx +135 -0
- package/src/blocks/tabs/tab-1.schema.ts +831 -0
- package/src/blocks/tabs/tab-1.tsx +126 -0
- package/src/blocks/tabs/tab-2.schema.ts +767 -0
- package/src/blocks/tabs/tab-2.tsx +60 -0
- package/src/blocks/team/team-3.schema.ts +5 -1
- package/src/blocks/team/team-3.tsx +7 -0
- package/src/blocks/team/team-4.schema.ts +17 -13
- package/src/blocks/team/team-4.tsx +4 -1
- package/src/blocks/team/team-5.schema.ts +369 -0
- package/src/blocks/team/team-5.tsx +38 -0
- package/src/blocks/testimonial/testimonial-1.tsx +0 -1
- package/src/blocks/testimonial/testimonial-2.tsx +2 -1
- package/src/blocks/testimonial/testimonial-3.tsx +2 -0
- package/src/blocks/testimonial/testimonial-4.tsx +2 -1
- package/src/blocks/testimonial/testimonial-5.tsx +2 -0
- package/src/blocks/testimonial/testimonial-6.tsx +2 -1
- package/src/blocks/testimonial/testimonial-7.schema.ts +438 -0
- package/src/blocks/testimonial/testimonial-7.tsx +125 -0
- package/src/blocks/timeline/timeline-1.schema.ts +741 -0
- package/src/blocks/timeline/timeline-1.tsx +52 -0
- package/src/blocks/users/edit-profile.schema.ts +294 -0
- package/src/blocks/users/edit-profile.tsx +184 -0
- package/src/schemas/blocks.ts +64 -12
- package/src/schemas/categories.ts +36 -0
|
@@ -10,6 +10,7 @@ import {
|
|
|
10
10
|
Typography,
|
|
11
11
|
useContentEngine,
|
|
12
12
|
} from "@levo-so/studio";
|
|
13
|
+
import dayjs from "dayjs";
|
|
13
14
|
|
|
14
15
|
import type { IBlogListing2Content } from "./blog-listing-2.schema";
|
|
15
16
|
|
|
@@ -45,6 +46,12 @@ const BlogListing2: React.FC<
|
|
|
45
46
|
<Icon elementKey={`blogs.${index}.header-icon`} />
|
|
46
47
|
<Typography elementKey={`blogs.${index}.blog-type`} />
|
|
47
48
|
</Box>
|
|
49
|
+
<Box elementKey={`blogs.${index}.dateWrapper`}>
|
|
50
|
+
<Icon elementKey={`blogs.${index}.dateIcon`} />
|
|
51
|
+
<Typography elementKey={`blogs.${index}.date`}>
|
|
52
|
+
{dayjs(item?.date).format("MMM D, YYYY")}
|
|
53
|
+
</Typography>
|
|
54
|
+
</Box>
|
|
48
55
|
<Heading elementKey={`blogs.${index}.title`} />
|
|
49
56
|
<Typography elementKey={`blogs.${index}.description`} />
|
|
50
57
|
<Box elementKey={`blogs.${index}.blog-footer`}>
|
|
@@ -402,6 +402,7 @@ export const BlogListing3: IBlock = {
|
|
|
402
402
|
hint: {
|
|
403
403
|
prompt_description:
|
|
404
404
|
"Section heading introducing featured or trending blog articles for this month. Make it concise, bold, and inviting. Use a confident and energetic tone.",
|
|
405
|
+
usecase: "main_title",
|
|
405
406
|
min_characters: 16,
|
|
406
407
|
max_characters: 30,
|
|
407
408
|
},
|
|
@@ -413,6 +414,7 @@ export const BlogListing3: IBlock = {
|
|
|
413
414
|
hint: {
|
|
414
415
|
prompt_description:
|
|
415
416
|
"Primary call-to-action button next to the section heading, inviting users to view all news or blogs. Text should be short (2-4 words), action-oriented, and clear.",
|
|
417
|
+
usecase: "button",
|
|
416
418
|
min_characters: 10,
|
|
417
419
|
max_characters: 20,
|
|
418
420
|
},
|
|
@@ -484,6 +486,7 @@ export const BlogListing3: IBlock = {
|
|
|
484
486
|
hint: {
|
|
485
487
|
prompt_description:
|
|
486
488
|
"Blog post category or topic, e.g., 'Article / Lifestyle'. Should be short, informative, use sentence case, and highlight the type of content.",
|
|
489
|
+
usecase: "date",
|
|
487
490
|
min_characters: 10,
|
|
488
491
|
max_characters: 27,
|
|
489
492
|
},
|
|
@@ -495,6 +498,7 @@ export const BlogListing3: IBlock = {
|
|
|
495
498
|
hint: {
|
|
496
499
|
prompt_description:
|
|
497
500
|
"Headline for the blog post card, designed to attract attention and encourage clicks. Should be clear, engaging, and fit on 1 or 2 lines. Use an editorial, inviting tone.",
|
|
501
|
+
usecase: "title",
|
|
498
502
|
min_characters: 28,
|
|
499
503
|
max_characters: 60,
|
|
500
504
|
},
|
|
@@ -506,6 +510,7 @@ export const BlogListing3: IBlock = {
|
|
|
506
510
|
hint: {
|
|
507
511
|
prompt_description:
|
|
508
512
|
"Short excerpt or summary of the article, displayed on the card. It should generate curiosity and briefly explain the blog's theme or story in 1-2 concise sentences.",
|
|
513
|
+
usecase: "description",
|
|
509
514
|
min_characters: 60,
|
|
510
515
|
max_characters: 130,
|
|
511
516
|
},
|
|
@@ -541,6 +546,7 @@ export const BlogListing3: IBlock = {
|
|
|
541
546
|
hint: {
|
|
542
547
|
prompt_description:
|
|
543
548
|
"Author's display name for the card byline. Should feel authentic and natural.",
|
|
549
|
+
usecase: "author",
|
|
544
550
|
min_characters: 5,
|
|
545
551
|
max_characters: 25,
|
|
546
552
|
},
|
|
@@ -570,6 +576,7 @@ export const BlogListing3: IBlock = {
|
|
|
570
576
|
hint: {
|
|
571
577
|
prompt_description:
|
|
572
578
|
"Estimated reading duration for the article, such as '6 Minutes' or '3 min'. Keep it simple and brief.",
|
|
579
|
+
usecase: "reading_time",
|
|
573
580
|
min_characters: 6,
|
|
574
581
|
max_characters: 15,
|
|
575
582
|
},
|
|
@@ -594,6 +601,7 @@ export const BlogListing3: IBlock = {
|
|
|
594
601
|
hint: {
|
|
595
602
|
prompt_description:
|
|
596
603
|
"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.",
|
|
604
|
+
usecase: "button",
|
|
597
605
|
min_characters: 5,
|
|
598
606
|
max_characters: 12,
|
|
599
607
|
},
|
|
@@ -616,6 +624,7 @@ export const BlogListing3: IBlock = {
|
|
|
616
624
|
hint: {
|
|
617
625
|
prompt_description:
|
|
618
626
|
"Pagination control button to navigate to the next page of blog cards. Should be concise, such as 'Next' or a right arrow. Neutral tone.",
|
|
627
|
+
usecase: "button",
|
|
619
628
|
min_characters: 4,
|
|
620
629
|
max_characters: 8,
|
|
621
630
|
},
|
|
@@ -121,6 +121,7 @@ export const BlogPost1: IBlock = {
|
|
|
121
121
|
hint: {
|
|
122
122
|
prompt_description:
|
|
123
123
|
"A short, descriptive blog post tag or category, such as 'Financial Planning'. Use 1–3 words. Neutral and factual.",
|
|
124
|
+
usecase: "category",
|
|
124
125
|
min_characters: 7,
|
|
125
126
|
max_characters: 28,
|
|
126
127
|
},
|
|
@@ -141,6 +142,7 @@ export const BlogPost1: IBlock = {
|
|
|
141
142
|
hint: {
|
|
142
143
|
prompt_description:
|
|
143
144
|
"Main headline for the blog post. Clear, compelling, and professional. Use sentence case. Aim for strong impact; avoid jargon.",
|
|
145
|
+
usecase: "main_title",
|
|
144
146
|
min_characters: 28,
|
|
145
147
|
max_characters: 60,
|
|
146
148
|
},
|
|
@@ -181,7 +183,8 @@ export const BlogPost1: IBlock = {
|
|
|
181
183
|
field_interface: "HeadingWidget",
|
|
182
184
|
hint: {
|
|
183
185
|
prompt_description:
|
|
184
|
-
"Author
|
|
186
|
+
"Author's full name. Use proper capitalization, 2–3 words, simple formality.",
|
|
187
|
+
usecase: "author",
|
|
185
188
|
min_characters: 5,
|
|
186
189
|
max_characters: 28,
|
|
187
190
|
},
|
|
@@ -193,6 +196,7 @@ export const BlogPost1: IBlock = {
|
|
|
193
196
|
hint: {
|
|
194
197
|
prompt_description:
|
|
195
198
|
"Date the article was published. Human-readable, e.g., 'April 25, 2025'. Month spelled out.",
|
|
199
|
+
usecase: "date",
|
|
196
200
|
min_characters: 10,
|
|
197
201
|
max_characters: 20,
|
|
198
202
|
},
|
|
@@ -204,6 +208,7 @@ export const BlogPost1: IBlock = {
|
|
|
204
208
|
hint: {
|
|
205
209
|
prompt_description:
|
|
206
210
|
"Estimated reading time in minutes. Use short format: '10 Minutes' or '8 Min'.",
|
|
211
|
+
usecase: "reading_time",
|
|
207
212
|
min_characters: 6,
|
|
208
213
|
max_characters: 13,
|
|
209
214
|
},
|
|
@@ -236,6 +241,7 @@ export const BlogPost1: IBlock = {
|
|
|
236
241
|
hint: {
|
|
237
242
|
prompt_description:
|
|
238
243
|
"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.",
|
|
244
|
+
usecase: "description",
|
|
239
245
|
min_characters: 800,
|
|
240
246
|
max_characters: 12000,
|
|
241
247
|
},
|
|
@@ -43,7 +43,7 @@ const BlogPost1: React.FC<ILevoBlockBaseProps<IBlogPost1Content>> = ({
|
|
|
43
43
|
<Media elementKey="blog-cover" alt="Blog Cover" />
|
|
44
44
|
</Box>
|
|
45
45
|
<Box elementKey="content-section">
|
|
46
|
-
<Typography elementKey="content" className="
|
|
46
|
+
<Typography elementKey="content" className="LevoProseMirror" />
|
|
47
47
|
</Box>
|
|
48
48
|
</Container>
|
|
49
49
|
</Section>
|