@levo-so/blocks 0.1.58 → 0.1.60
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 +16 -15
- package/src/blocks/about-us/about-us-1.schema.ts +75 -58
- package/src/blocks/about-us/about-us-2.schema.ts +186 -39
- package/src/blocks/blogs/blog-listing-1.tsx +17 -15
- package/src/blocks/blogs/blog-listing-2.tsx +17 -15
- package/src/blocks/blogs/blog-listing-3.tsx +17 -15
- package/src/blocks/calendar/calendar-1.schema.ts +263 -181
- package/src/blocks/calendar/calendar-1.tsx +42 -11
- package/src/blocks/cards/cards-10.schema.ts +322 -313
- package/src/blocks/cards/cards-10.tsx +9 -1
- package/src/blocks/cards/cards-11.schema.ts +139 -248
- package/src/blocks/cards/cards-12.schema.ts +117 -196
- package/src/blocks/cards/cards-13.schema.ts +107 -56
- package/src/blocks/cards/cards-14.schema.ts +58 -154
- package/src/blocks/cards/cards-15.schema.ts +54 -31
- package/src/blocks/cards/cards-15.tsx +13 -2
- package/src/blocks/cards/cards-2.schema.ts +83 -88
- package/src/blocks/cards/cards-2.tsx +10 -2
- package/src/blocks/cards/cards-3.schema.ts +75 -70
- package/src/blocks/cards/cards-4.schema.ts +149 -91
- package/src/blocks/cards/cards-4.tsx +13 -2
- package/src/blocks/cards/cards-5.schema.ts +91 -68
- package/src/blocks/cards/cards-5.tsx +9 -1
- package/src/blocks/cards/cards-6.schema.ts +794 -972
- package/src/blocks/cards/cards-6.tsx +18 -2
- package/src/blocks/cards/cards-7.schema.ts +802 -2250
- package/src/blocks/cards/cards-7.tsx +14 -1
- package/src/blocks/cards/cards-8.schema.ts +166 -347
- package/src/blocks/cards/cards-8.tsx +14 -1
- package/src/blocks/cards/cards-9.schema.ts +300 -305
- package/src/blocks/cards/cards-9.tsx +27 -3
- package/src/blocks/carousel/carousel-1.schema.ts +479 -46
- package/src/blocks/carousel/carousel-1.tsx +2 -0
- package/src/blocks/carousel/carousel-2.schema.ts +170 -118
- package/src/blocks/carousel/carousel-2.tsx +10 -2
- package/src/blocks/community/community-1.schema.ts +566 -0
- package/src/blocks/community/community-1.tsx +690 -0
- package/src/blocks/community/community-post-1.schema.ts +417 -0
- package/src/blocks/community/community-post-1.tsx +155 -0
- package/src/blocks/contact-us/contact-us-1.schema.ts +33 -43
- package/src/blocks/contact-us/contact-us-2.schema.ts +39 -17
- package/src/blocks/contact-us/contact-us-2.tsx +1 -1
- package/src/blocks/content/content-1.schema.ts +184 -234
- package/src/blocks/content/content-1.tsx +48 -38
- package/src/blocks/content/content-2.schema.ts +143 -32
- package/src/blocks/content/content-2.tsx +15 -3
- package/src/blocks/content/content-3.schema.ts +215 -205
- package/src/blocks/content/content-3.tsx +13 -1
- package/src/blocks/content/content-4.schema.ts +124 -85
- package/src/blocks/content/content-4.tsx +2 -1
- package/src/blocks/content/content-5.schema.ts +296 -278
- package/src/blocks/content/content-5.tsx +23 -2
- package/src/blocks/content/content-6.schema.ts +474 -244
- package/src/blocks/content/content-6.tsx +23 -1
- package/src/blocks/content/content-7.schema.ts +173 -133
- package/src/blocks/content/content-7.tsx +27 -3
- package/src/blocks/content/content-8.schema.ts +27 -17
- package/src/blocks/content/content-9.schema.ts +64 -2208
- package/src/blocks/content/content-9.tsx +6 -3
- package/src/blocks/cta/cta-1.schema.ts +13 -108
- package/src/blocks/cta/cta-2.schema.ts +60 -69
- package/src/blocks/cta/cta-3.schema.ts +97 -66
- package/src/blocks/embed/embed-1.schema.ts +30 -52
- package/src/blocks/event/event-details.schema.ts +7 -0
- package/src/blocks/event/event-details.tsx +1 -0
- package/src/blocks/event/event-listing-2.tsx +17 -15
- package/src/blocks/event/event-listing-3.tsx +17 -15
- package/src/blocks/event/event-listing-4.tsx +17 -15
- package/src/blocks/event/event-listing.tsx +17 -15
- package/src/blocks/faq/faq-1.schema.ts +158 -112
- package/src/blocks/faq/faq-1.tsx +12 -3
- package/src/blocks/faq/faq-2.schema.ts +137 -74
- package/src/blocks/faq/faq-2.tsx +10 -1
- package/src/blocks/faq/faq-3.schema.ts +185 -105
- package/src/blocks/faq/faq-3.tsx +19 -3
- package/src/blocks/features/features-1/features-1.schema.ts +11 -3
- package/src/blocks/features/features-1/features-1.tsx +10 -1
- package/src/blocks/features/features-1/variants/default.ts +172 -54
- package/src/blocks/features/features-1/variants/stylized-cards-v1.ts +392 -54
- package/src/blocks/features/features-1/variants/stylized-cards-v2.ts +119 -103
- package/src/blocks/features/features-1/variants/stylized-cards-v3.ts +16 -199
- package/src/blocks/features/features-2.schema.ts +178 -45
- package/src/blocks/features/features-2.tsx +10 -2
- package/src/blocks/features/features-3.schema.ts +284 -65
- package/src/blocks/features/features-3.tsx +22 -3
- package/src/blocks/features/features-4.schema.ts +380 -185
- package/src/blocks/features/features-4.tsx +9 -1
- package/src/blocks/features/features-5.schema.ts +194 -198
- package/src/blocks/features/features-5.tsx +12 -1
- package/src/blocks/features/features-6.schema.ts +240 -193
- package/src/blocks/features/features-6.tsx +16 -2
- package/src/blocks/floating-buttons/floating-button-1.schema.ts +105 -0
- package/src/blocks/floating-buttons/floating-button-1.tsx +20 -0
- package/src/blocks/footer/footer-1.schema.ts +118 -48
- package/src/blocks/footer/footer-1.tsx +2 -1
- package/src/blocks/footer/footer-2.schema.ts +235 -31
- package/src/blocks/footer/footer-2.tsx +2 -1
- package/src/blocks/footer/footer-3.schema.ts +334 -57
- package/src/blocks/footer/footer-3.tsx +2 -1
- package/src/blocks/footer/footer-4.schema.ts +147 -76
- package/src/blocks/footer/footer-4.tsx +2 -1
- package/src/blocks/footer/footer-5.schema.ts +144 -52
- package/src/blocks/footer/footer-5.tsx +2 -1
- package/src/blocks/footer/footer-6.schema.ts +68 -140
- package/src/blocks/footer/footer-6.tsx +2 -1
- package/src/blocks/hero/hero-1.schema.ts +184 -87
- package/src/blocks/hero/hero-10.schema.ts +8 -29
- package/src/blocks/hero/hero-11.schema.ts +192 -89
- package/src/blocks/hero/hero-11.tsx +1 -1
- package/src/blocks/hero/hero-12.schema.ts +107 -170
- package/src/blocks/hero/hero-12.tsx +1 -1
- package/src/blocks/hero/hero-13.schema.ts +42 -28
- package/src/blocks/hero/hero-2.schema.ts +33 -58
- package/src/blocks/hero/hero-3.schema.ts +42 -34
- package/src/blocks/hero/hero-4.schema.ts +265 -70
- package/src/blocks/hero/hero-4.tsx +19 -2
- package/src/blocks/hero/hero-5.schema.ts +122 -44
- package/src/blocks/hero/hero-5.tsx +14 -2
- package/src/blocks/hero/hero-6.schema.ts +159 -255
- package/src/blocks/hero/hero-7.schema.ts +105 -34
- package/src/blocks/hero/hero-7.tsx +4 -1
- package/src/blocks/hero/hero-8.schema.ts +363 -133
- package/src/blocks/hero/hero-8.tsx +27 -3
- package/src/blocks/hero/hero-9.schema.ts +116 -83
- package/src/blocks/hero/hero-9.tsx +9 -1
- package/src/blocks/index.ts +7 -0
- package/src/blocks/logos/logos-1.schema.ts +424 -30
- package/src/blocks/polling/polling-1.schema.ts +1 -19
- package/src/blocks/pricing/pricing-1.schema.ts +296 -266
- package/src/blocks/pricing/pricing-1.tsx +16 -2
- package/src/blocks/products/products-listing-1.schema.ts +144 -33
- package/src/blocks/products/products-listing-1.tsx +9 -1
- package/src/blocks/products/products-listing-2.schema.ts +199 -213
- package/src/blocks/products/products-listing-2.tsx +25 -3
- package/src/blocks/products/products-listing-3.schema.ts +439 -154
- package/src/blocks/products/products-listing-3.tsx +43 -8
- package/src/blocks/profile/profile-1.schema.ts +67 -49
- package/src/blocks/profile/profile-1.tsx +3 -2
- package/src/blocks/profile/profile-2.schema.ts +73 -85
- package/src/blocks/profile/profile-2.tsx +2 -1
- package/src/blocks/profile/profile-3.schema.ts +162 -529
- package/src/blocks/profile/profile-3.tsx +2 -2
- package/src/blocks/services/service-1.schema.ts +204 -804
- package/src/blocks/services/service-1.tsx +15 -2
- package/src/blocks/services/service-2.schema.ts +95 -75
- package/src/blocks/services/service-2.tsx +9 -1
- package/src/blocks/services/service-3.schema.ts +73 -73
- package/src/blocks/services/service-3.tsx +40 -39
- package/src/blocks/stats/stats-1.schema.ts +225 -21
- package/src/blocks/stats/stats-1.tsx +4 -0
- package/src/blocks/stats/stats-2.schema.ts +13 -5
- package/src/blocks/stats/stats-2.tsx +9 -1
- package/src/blocks/stats/variants/default.ts +59 -41
- package/src/blocks/stats/variants/hero.ts +64 -31
- package/src/blocks/tabs/tab-1.schema.ts +105 -407
- package/src/blocks/tabs/tab-1.tsx +15 -4
- package/src/blocks/tabs/tab-2.schema.ts +208 -278
- package/src/blocks/tabs/tab-2.tsx +14 -2
- package/src/blocks/team/team-1.schema.ts +621 -76
- package/src/blocks/team/team-1.tsx +9 -1
- package/src/blocks/team/team-2.schema.ts +693 -1421
- package/src/blocks/team/team-2.tsx +4 -1
- package/src/blocks/team/team-3.schema.ts +147 -74
- package/src/blocks/team/team-3.tsx +1 -0
- package/src/blocks/team/team-4.schema.ts +216 -57
- package/src/blocks/team/team-4.tsx +10 -2
- package/src/blocks/team/team-5.schema.ts +67 -42
- package/src/blocks/team/team-5.tsx +12 -3
- package/src/blocks/termsAndPrivacy/terms-and-conditions-1.schema.ts +9 -26
- package/src/blocks/termsAndPrivacy/terms-and-conditions-1.tsx +1 -1
- package/src/blocks/testimonial/testimonial-1.schema.ts +712 -63
- package/src/blocks/testimonial/testimonial-1.tsx +2 -4
- package/src/blocks/testimonial/testimonial-2.schema.ts +1332 -354
- package/src/blocks/testimonial/testimonial-2.tsx +4 -1
- package/src/blocks/testimonial/testimonial-3.schema.ts +215 -71
- package/src/blocks/testimonial/testimonial-3.tsx +5 -2
- package/src/blocks/testimonial/testimonial-4.schema.ts +331 -933
- package/src/blocks/testimonial/testimonial-4.tsx +4 -1
- package/src/blocks/testimonial/testimonial-5/variants/default.ts +179 -171
- package/src/blocks/testimonial/testimonial-5/variants/testimonialWithLogo.ts +205 -501
- package/src/blocks/testimonial/testimonial-5/variants/testimonialWithRatings.ts +190 -316
- package/src/blocks/testimonial/testimonial-6.schema.ts +204 -267
- package/src/blocks/testimonial/testimonial-7.schema.ts +74 -45
- package/src/blocks/testimonial/testimonial-7.tsx +2 -2
- package/src/blocks/timeline/timeline-1.schema.ts +196 -149
- package/src/blocks/timeline/timeline-1.tsx +4 -1
- package/src/blocks/users/edit-profile.schema.ts +56 -44
- package/src/blocks/users/edit-profile.tsx +13 -6
- package/src/constants/index.ts +19 -0
- package/src/schemas/blocks.ts +6 -0
- package/src/schemas/categories.ts +12 -0
|
@@ -45,7 +45,7 @@ const Service1: React.FC<ILevoBlockBaseProps<IService1Content>> = ({
|
|
|
45
45
|
<Box
|
|
46
46
|
elementKey={`services-accordion.${index}.iconQuestionWrapper`}
|
|
47
47
|
>
|
|
48
|
-
<
|
|
48
|
+
<Heading
|
|
49
49
|
elementKey={`services-accordion.${index}.question`}
|
|
50
50
|
/>
|
|
51
51
|
</Box>
|
|
@@ -91,7 +91,20 @@ const Service1: React.FC<ILevoBlockBaseProps<IService1Content>> = ({
|
|
|
91
91
|
<Typography
|
|
92
92
|
elementKey={`service-cards.${cardIndex}.description`}
|
|
93
93
|
/>
|
|
94
|
-
<
|
|
94
|
+
<Box
|
|
95
|
+
elementKey={`service-cards.${cardIndex}.ctas_levoGroup`}
|
|
96
|
+
data-levo_group
|
|
97
|
+
>
|
|
98
|
+
{(content?.["service-cards"]?.[cardIndex]?.ctas ?? []).map(
|
|
99
|
+
(_, ctaIndex) => (
|
|
100
|
+
<Button
|
|
101
|
+
key={`service-cards.${cardIndex}.ctas.${ctaIndex}.cta`}
|
|
102
|
+
elementKey={`service-cards.${cardIndex}.ctas.${ctaIndex}.cta`}
|
|
103
|
+
data-levo_group_item
|
|
104
|
+
/>
|
|
105
|
+
)
|
|
106
|
+
)}
|
|
107
|
+
</Box>
|
|
95
108
|
|
|
96
109
|
{content?.["service-cards"]?.[cardIndex]?.[
|
|
97
110
|
"service-features"
|
|
@@ -1,23 +1,30 @@
|
|
|
1
1
|
import type { IBlock } from "@levo-so/studio";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
2
|
+
|
|
3
|
+
const MEDIA = {
|
|
4
|
+
id: "pKkmltJTMHQl",
|
|
5
|
+
filename: "services-2.png",
|
|
5
6
|
kind: "image",
|
|
6
|
-
|
|
7
|
+
location: "https://static.levocdn.com/WLZ1TXTD/services-2-n3qJfSsRwAGw.png",
|
|
7
8
|
srcset: {
|
|
8
9
|
"1080w":
|
|
9
|
-
"https://
|
|
10
|
+
"https://static.levocdn.com/WLZ1TXTD/services-2-n3qJfSsRwAGw-1080w.webp",
|
|
10
11
|
"1200w":
|
|
11
|
-
"https://
|
|
12
|
+
"https://static.levocdn.com/WLZ1TXTD/services-2-n3qJfSsRwAGw-1200w.webp",
|
|
12
13
|
"1920w":
|
|
13
|
-
"https://
|
|
14
|
-
"320w":
|
|
15
|
-
|
|
16
|
-
"
|
|
17
|
-
|
|
18
|
-
|
|
14
|
+
"https://static.levocdn.com/WLZ1TXTD/services-2-n3qJfSsRwAGw-1920w.webp",
|
|
15
|
+
"320w":
|
|
16
|
+
"https://static.levocdn.com/WLZ1TXTD/services-2-n3qJfSsRwAGw-320w.webp",
|
|
17
|
+
"640w":
|
|
18
|
+
"https://static.levocdn.com/WLZ1TXTD/services-2-n3qJfSsRwAGw-640w.webp",
|
|
19
|
+
"750w":
|
|
20
|
+
"https://static.levocdn.com/WLZ1TXTD/services-2-n3qJfSsRwAGw-750w.webp",
|
|
21
|
+
"828w":
|
|
22
|
+
"https://static.levocdn.com/WLZ1TXTD/services-2-n3qJfSsRwAGw-828w.webp",
|
|
23
|
+
path: "https://static.levocdn.com/WLZ1TXTD/services-2-n3qJfSsRwAGw-640w.webp 640w, https://static.levocdn.com/WLZ1TXTD/services-2-n3qJfSsRwAGw-750w.webp 750w, https://static.levocdn.com/WLZ1TXTD/services-2-n3qJfSsRwAGw-828w.webp 828w, https://static.levocdn.com/WLZ1TXTD/services-2-n3qJfSsRwAGw-1080w.webp 1080w, https://static.levocdn.com/WLZ1TXTD/services-2-n3qJfSsRwAGw-1200w.webp 1200w, https://static.levocdn.com/WLZ1TXTD/services-2-n3qJfSsRwAGw-1920w.webp 1920w, https://static.levocdn.com/WLZ1TXTD/services-2-n3qJfSsRwAGw-320w.webp 320w",
|
|
19
24
|
},
|
|
25
|
+
mimetype: "image/png",
|
|
20
26
|
};
|
|
27
|
+
|
|
21
28
|
const DEFAULT_CONTENT = {
|
|
22
29
|
layout: null,
|
|
23
30
|
container: null,
|
|
@@ -28,7 +35,15 @@ const DEFAULT_CONTENT = {
|
|
|
28
35
|
title: "Expert Business Consulting Solutions",
|
|
29
36
|
description:
|
|
30
37
|
"Strategic consulting services that drive growth and innovation for your business. Our expert team delivers tailored solutions for sustainable success.",
|
|
31
|
-
|
|
38
|
+
ctas_levoGroup: null,
|
|
39
|
+
ctas: [
|
|
40
|
+
{
|
|
41
|
+
cta: "Get Started",
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
cta: "Learn More",
|
|
45
|
+
},
|
|
46
|
+
],
|
|
32
47
|
stats_container: null,
|
|
33
48
|
stats: [
|
|
34
49
|
{
|
|
@@ -50,7 +65,7 @@ const DEFAULT_CONTENT = {
|
|
|
50
65
|
search_input_wrapper: null,
|
|
51
66
|
search_button: "Search",
|
|
52
67
|
right_container: null,
|
|
53
|
-
hero_image:
|
|
68
|
+
hero_image: MEDIA,
|
|
54
69
|
};
|
|
55
70
|
|
|
56
71
|
export type IService2Content = typeof DEFAULT_CONTENT;
|
|
@@ -136,15 +151,23 @@ export const Service2: IBlock = {
|
|
|
136
151
|
},
|
|
137
152
|
},
|
|
138
153
|
{
|
|
139
|
-
key: "
|
|
140
|
-
label: "
|
|
141
|
-
field_interface: "
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
154
|
+
key: "ctas",
|
|
155
|
+
label: "CTA Buttons Group",
|
|
156
|
+
field_interface: "BoxWidget",
|
|
157
|
+
kind: "group",
|
|
158
|
+
fields: [
|
|
159
|
+
{
|
|
160
|
+
key: "cta",
|
|
161
|
+
label: "Call to Action",
|
|
162
|
+
field_interface: "ButtonWidget",
|
|
163
|
+
hint: {
|
|
164
|
+
prompt_description:
|
|
165
|
+
"Primary action button that encourages user engagement. Should be clear and action-oriented.",
|
|
166
|
+
min_characters: 8,
|
|
167
|
+
max_characters: 20,
|
|
168
|
+
},
|
|
169
|
+
},
|
|
170
|
+
],
|
|
148
171
|
},
|
|
149
172
|
{
|
|
150
173
|
key: "stats_container",
|
|
@@ -266,30 +289,8 @@ export const Service2: IBlock = {
|
|
|
266
289
|
title: "Default",
|
|
267
290
|
key: "default",
|
|
268
291
|
styles: {
|
|
269
|
-
layout: {
|
|
270
|
-
|
|
271
|
-
"padding-bottom": "5xl",
|
|
272
|
-
"padding-left": "xl",
|
|
273
|
-
"padding-right": "xl",
|
|
274
|
-
"background-color": "oklch(0.9643 0.0169 61.9599)",
|
|
275
|
-
tablet: {
|
|
276
|
-
"padding-top": "4xl",
|
|
277
|
-
"padding-bottom": "4xl",
|
|
278
|
-
"padding-left": "lg",
|
|
279
|
-
"padding-right": "lg",
|
|
280
|
-
},
|
|
281
|
-
mobile: {
|
|
282
|
-
"padding-top": "3xl",
|
|
283
|
-
"padding-bottom": "3xl",
|
|
284
|
-
"padding-left": "base",
|
|
285
|
-
"padding-right": "base",
|
|
286
|
-
},
|
|
287
|
-
},
|
|
288
|
-
container: {
|
|
289
|
-
"max-width": "1280px",
|
|
290
|
-
"margin-left": "auto",
|
|
291
|
-
"margin-right": "auto",
|
|
292
|
-
},
|
|
292
|
+
layout: {},
|
|
293
|
+
container: {},
|
|
293
294
|
main_wrapper: {
|
|
294
295
|
display: "flex",
|
|
295
296
|
"align-items": "center",
|
|
@@ -321,23 +322,24 @@ export const Service2: IBlock = {
|
|
|
321
322
|
"padding-right": "2xs",
|
|
322
323
|
"padding-top": "4xs",
|
|
323
324
|
"padding-bottom": "4xs",
|
|
324
|
-
color: "
|
|
325
|
+
color: "brandForeground",
|
|
325
326
|
},
|
|
326
|
-
title: {
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
"
|
|
334
|
-
|
|
335
|
-
"padding-top": "sm",
|
|
336
|
-
"padding-bottom": "sm",
|
|
337
|
-
"padding-left": "lg",
|
|
338
|
-
"padding-right": "lg",
|
|
327
|
+
title: {},
|
|
328
|
+
description: {},
|
|
329
|
+
ctas_levoGroup: {
|
|
330
|
+
display: "flex",
|
|
331
|
+
"flex-direction": "row",
|
|
332
|
+
"column-gap": "md",
|
|
333
|
+
"row-gap": "md",
|
|
334
|
+
"flex-wrap": "wrap",
|
|
335
|
+
"align-items": "center",
|
|
339
336
|
"align-self": "flex-start",
|
|
340
337
|
},
|
|
338
|
+
ctas: Array(2)
|
|
339
|
+
.fill(0)
|
|
340
|
+
.map(() => ({
|
|
341
|
+
cta: {},
|
|
342
|
+
})),
|
|
341
343
|
stats_container: {
|
|
342
344
|
display: "flex",
|
|
343
345
|
"flex-direction": "column",
|
|
@@ -372,12 +374,8 @@ export const Service2: IBlock = {
|
|
|
372
374
|
"flex-direction": "column",
|
|
373
375
|
"row-gap": "xs",
|
|
374
376
|
},
|
|
375
|
-
value: {
|
|
376
|
-
|
|
377
|
-
},
|
|
378
|
-
label: {
|
|
379
|
-
color: "text-2",
|
|
380
|
-
},
|
|
377
|
+
value: {},
|
|
378
|
+
label: {},
|
|
381
379
|
},
|
|
382
380
|
{
|
|
383
381
|
stat_wrapper: {
|
|
@@ -385,9 +383,7 @@ export const Service2: IBlock = {
|
|
|
385
383
|
"flex-direction": "column",
|
|
386
384
|
"row-gap": "xs",
|
|
387
385
|
},
|
|
388
|
-
value: {
|
|
389
|
-
color: "text-1",
|
|
390
|
-
},
|
|
386
|
+
value: {},
|
|
391
387
|
label: {
|
|
392
388
|
color: "text-2",
|
|
393
389
|
},
|
|
@@ -398,9 +394,7 @@ export const Service2: IBlock = {
|
|
|
398
394
|
"flex-direction": "column",
|
|
399
395
|
"row-gap": "xs",
|
|
400
396
|
},
|
|
401
|
-
value: {
|
|
402
|
-
color: "text-1",
|
|
403
|
-
},
|
|
397
|
+
value: {},
|
|
404
398
|
label: {
|
|
405
399
|
color: "text-2",
|
|
406
400
|
},
|
|
@@ -411,10 +405,10 @@ export const Service2: IBlock = {
|
|
|
411
405
|
config: {
|
|
412
406
|
title: {
|
|
413
407
|
heading: {
|
|
414
|
-
level:
|
|
408
|
+
level: "2",
|
|
415
409
|
},
|
|
416
410
|
selectedVariants: {
|
|
417
|
-
Heading_Level: "
|
|
411
|
+
Heading_Level: "H2",
|
|
418
412
|
},
|
|
419
413
|
},
|
|
420
414
|
cta: {
|
|
@@ -427,6 +421,32 @@ export const Service2: IBlock = {
|
|
|
427
421
|
Button_Variants: "Secondary",
|
|
428
422
|
},
|
|
429
423
|
},
|
|
424
|
+
stats: [
|
|
425
|
+
{
|
|
426
|
+
value: {
|
|
427
|
+
heading: {
|
|
428
|
+
level: "4",
|
|
429
|
+
},
|
|
430
|
+
selectedVariants: {
|
|
431
|
+
Heading_Level: "H3",
|
|
432
|
+
},
|
|
433
|
+
},
|
|
434
|
+
},
|
|
435
|
+
{
|
|
436
|
+
value: {
|
|
437
|
+
selectedVariants: {
|
|
438
|
+
Heading_Level: "H3",
|
|
439
|
+
},
|
|
440
|
+
},
|
|
441
|
+
},
|
|
442
|
+
{
|
|
443
|
+
value: {
|
|
444
|
+
selectedVariants: {
|
|
445
|
+
Heading_Level: "H3",
|
|
446
|
+
},
|
|
447
|
+
},
|
|
448
|
+
},
|
|
449
|
+
],
|
|
430
450
|
},
|
|
431
451
|
},
|
|
432
452
|
],
|
|
@@ -29,7 +29,15 @@ const Service2: React.FC<ILevoBlockBaseProps<IService2Content>> = ({
|
|
|
29
29
|
<Typography elementKey="label" />
|
|
30
30
|
<Heading elementKey="title" />
|
|
31
31
|
<Typography elementKey="description" />
|
|
32
|
-
<
|
|
32
|
+
<Box elementKey="ctas_levoGroup" data-levo_group>
|
|
33
|
+
{(content?.ctas ?? []).map((_: any, index: number) => (
|
|
34
|
+
<Button
|
|
35
|
+
key={`ctas.${index}.cta`}
|
|
36
|
+
elementKey={`ctas.${index}.cta`}
|
|
37
|
+
data-levo_group_item
|
|
38
|
+
/>
|
|
39
|
+
))}
|
|
40
|
+
</Box>
|
|
33
41
|
</Box>
|
|
34
42
|
<Box elementKey="stats_container">
|
|
35
43
|
<Box elementKey="stats_levoGroup" data-levo_group>
|
|
@@ -1,23 +1,28 @@
|
|
|
1
1
|
import type { IBlock } from "@levo-so/studio";
|
|
2
2
|
|
|
3
|
-
const
|
|
4
|
-
id: "
|
|
5
|
-
|
|
3
|
+
const MEDIA = {
|
|
4
|
+
id: "oilirpqbBMhi",
|
|
5
|
+
filename: "services-3.png",
|
|
6
6
|
kind: "image",
|
|
7
|
-
|
|
7
|
+
location: "https://static.levocdn.com/WLZ1TXTD/services-3-KQ59QXeCBwMY.png",
|
|
8
8
|
srcset: {
|
|
9
9
|
"1080w":
|
|
10
|
-
"https://
|
|
10
|
+
"https://static.levocdn.com/WLZ1TXTD/services-3-KQ59QXeCBwMY-1080w.webp",
|
|
11
11
|
"1200w":
|
|
12
|
-
"https://
|
|
12
|
+
"https://static.levocdn.com/WLZ1TXTD/services-3-KQ59QXeCBwMY-1200w.webp",
|
|
13
13
|
"1920w":
|
|
14
|
-
"https://
|
|
15
|
-
"320w":
|
|
16
|
-
|
|
17
|
-
"
|
|
18
|
-
|
|
19
|
-
|
|
14
|
+
"https://static.levocdn.com/WLZ1TXTD/services-3-KQ59QXeCBwMY-1920w.webp",
|
|
15
|
+
"320w":
|
|
16
|
+
"https://static.levocdn.com/WLZ1TXTD/services-3-KQ59QXeCBwMY-320w.webp",
|
|
17
|
+
"640w":
|
|
18
|
+
"https://static.levocdn.com/WLZ1TXTD/services-3-KQ59QXeCBwMY-640w.webp",
|
|
19
|
+
"750w":
|
|
20
|
+
"https://static.levocdn.com/WLZ1TXTD/services-3-KQ59QXeCBwMY-750w.webp",
|
|
21
|
+
"828w":
|
|
22
|
+
"https://static.levocdn.com/WLZ1TXTD/services-3-KQ59QXeCBwMY-828w.webp",
|
|
23
|
+
path: "https://static.levocdn.com/WLZ1TXTD/services-3-KQ59QXeCBwMY-1920w.webp 1920w, https://static.levocdn.com/WLZ1TXTD/services-3-KQ59QXeCBwMY-320w.webp 320w, https://static.levocdn.com/WLZ1TXTD/services-3-KQ59QXeCBwMY-640w.webp 640w, https://static.levocdn.com/WLZ1TXTD/services-3-KQ59QXeCBwMY-750w.webp 750w, https://static.levocdn.com/WLZ1TXTD/services-3-KQ59QXeCBwMY-828w.webp 828w, https://static.levocdn.com/WLZ1TXTD/services-3-KQ59QXeCBwMY-1200w.webp 1200w, https://static.levocdn.com/WLZ1TXTD/services-3-KQ59QXeCBwMY-1080w.webp 1080w",
|
|
20
24
|
},
|
|
25
|
+
mimetype: "image/png",
|
|
21
26
|
};
|
|
22
27
|
|
|
23
28
|
const DUMMY_ICON = {
|
|
@@ -36,7 +41,7 @@ const DEFAULT_CONTENT = {
|
|
|
36
41
|
container: null,
|
|
37
42
|
main_wrapper: null,
|
|
38
43
|
left_container: null,
|
|
39
|
-
profile_image:
|
|
44
|
+
profile_image: MEDIA,
|
|
40
45
|
right_container: null,
|
|
41
46
|
content_wrapper: null,
|
|
42
47
|
title: "Professional Service Package",
|
|
@@ -208,10 +213,11 @@ export const Service3: IBlock = {
|
|
|
208
213
|
"Wrapper for the main content elements (title, stats, pricing) with proper vertical spacing.",
|
|
209
214
|
},
|
|
210
215
|
},
|
|
216
|
+
|
|
211
217
|
{
|
|
212
218
|
key: "title",
|
|
213
219
|
label: "Service Title",
|
|
214
|
-
field_interface: "
|
|
220
|
+
field_interface: "TypographyWidget",
|
|
215
221
|
hint: {
|
|
216
222
|
prompt_description:
|
|
217
223
|
"Main service headline that communicates the primary offering. Should be professional and clear.",
|
|
@@ -219,17 +225,7 @@ export const Service3: IBlock = {
|
|
|
219
225
|
max_characters: 60,
|
|
220
226
|
},
|
|
221
227
|
},
|
|
222
|
-
|
|
223
|
-
key: "statswrapper",
|
|
224
|
-
label: "Stats Wrapper",
|
|
225
|
-
field_interface: "BoxWidget",
|
|
226
|
-
hint: {
|
|
227
|
-
prompt_description:
|
|
228
|
-
"Wrapper for the service features or benefits with icons that build credibility and showcase capabilities.",
|
|
229
|
-
min_items: 2,
|
|
230
|
-
max_items: 4,
|
|
231
|
-
},
|
|
232
|
-
},
|
|
228
|
+
|
|
233
229
|
{
|
|
234
230
|
key: "stats",
|
|
235
231
|
label: "Service Features",
|
|
@@ -359,7 +355,7 @@ export const Service3: IBlock = {
|
|
|
359
355
|
{
|
|
360
356
|
key: "actual_price",
|
|
361
357
|
label: "Actual Price",
|
|
362
|
-
field_interface: "
|
|
358
|
+
field_interface: "HeadingWidget",
|
|
363
359
|
hint: {
|
|
364
360
|
prompt_description:
|
|
365
361
|
"Current promotional price that customers will pay (e.g., '$299').",
|
|
@@ -435,29 +431,9 @@ export const Service3: IBlock = {
|
|
|
435
431
|
key: "default",
|
|
436
432
|
styles: {
|
|
437
433
|
layout: {
|
|
438
|
-
"padding-top": "5xl",
|
|
439
|
-
"padding-bottom": "5xl",
|
|
440
|
-
"padding-left": "xl",
|
|
441
|
-
"padding-right": "xl",
|
|
442
|
-
tablet: {
|
|
443
|
-
"padding-top": "4xl",
|
|
444
|
-
"padding-bottom": "4xl",
|
|
445
|
-
"padding-left": "lg",
|
|
446
|
-
"padding-right": "lg",
|
|
447
|
-
},
|
|
448
|
-
mobile: {
|
|
449
|
-
"padding-top": "3xl",
|
|
450
|
-
"padding-bottom": "3xl",
|
|
451
|
-
"padding-left": "base",
|
|
452
|
-
"padding-right": "base",
|
|
453
|
-
},
|
|
454
434
|
"background-color": "oklch(0.9413 0.0138 46.228)",
|
|
455
435
|
},
|
|
456
|
-
container: {
|
|
457
|
-
"max-width": "1280px",
|
|
458
|
-
"margin-left": "auto",
|
|
459
|
-
"margin-right": "auto",
|
|
460
|
-
},
|
|
436
|
+
container: {},
|
|
461
437
|
main_wrapper: {
|
|
462
438
|
display: "flex",
|
|
463
439
|
"align-items": "center",
|
|
@@ -488,14 +464,10 @@ export const Service3: IBlock = {
|
|
|
488
464
|
content_wrapper: {
|
|
489
465
|
display: "flex",
|
|
490
466
|
"flex-direction": "column",
|
|
491
|
-
"row-gap": "
|
|
467
|
+
"row-gap": "sm",
|
|
492
468
|
},
|
|
493
469
|
title: {
|
|
494
470
|
"margin-bottom": "lg",
|
|
495
|
-
"font-size": "4xl",
|
|
496
|
-
tablet: {
|
|
497
|
-
"font-size": "2xl",
|
|
498
|
-
},
|
|
499
471
|
},
|
|
500
472
|
stats_levoGroup: {
|
|
501
473
|
display: "grid",
|
|
@@ -517,24 +489,20 @@ export const Service3: IBlock = {
|
|
|
517
489
|
"column-gap": "base",
|
|
518
490
|
},
|
|
519
491
|
actual_price: {
|
|
520
|
-
"font-
|
|
521
|
-
"font-weight": "700",
|
|
522
|
-
color: "text-1",
|
|
492
|
+
"font-weight": 700,
|
|
523
493
|
},
|
|
524
494
|
discount_price: {
|
|
525
|
-
"font-size": "sm",
|
|
526
495
|
color: "text-3",
|
|
527
496
|
"text-decoration": "line-through",
|
|
528
497
|
},
|
|
529
498
|
off_percent: {
|
|
530
|
-
"font-
|
|
531
|
-
"font-weight": "600",
|
|
532
|
-
color: "success",
|
|
499
|
+
"font-weight": 600,
|
|
533
500
|
},
|
|
534
501
|
search_input_wrapper: {
|
|
535
502
|
display: "flex",
|
|
536
503
|
"flex-direction": "column",
|
|
537
504
|
"row-gap": "base",
|
|
505
|
+
"margin-top": "base",
|
|
538
506
|
},
|
|
539
507
|
stats: [
|
|
540
508
|
{
|
|
@@ -543,9 +511,7 @@ export const Service3: IBlock = {
|
|
|
543
511
|
"align-items": "center",
|
|
544
512
|
"column-gap": "sm",
|
|
545
513
|
},
|
|
546
|
-
label: {
|
|
547
|
-
color: "text-2",
|
|
548
|
-
},
|
|
514
|
+
label: {},
|
|
549
515
|
},
|
|
550
516
|
{
|
|
551
517
|
stat_wrapper: {
|
|
@@ -553,9 +519,7 @@ export const Service3: IBlock = {
|
|
|
553
519
|
"align-items": "center",
|
|
554
520
|
"column-gap": "sm",
|
|
555
521
|
},
|
|
556
|
-
label: {
|
|
557
|
-
color: "text-2",
|
|
558
|
-
},
|
|
522
|
+
label: {},
|
|
559
523
|
},
|
|
560
524
|
{
|
|
561
525
|
stat_wrapper: {
|
|
@@ -563,9 +527,7 @@ export const Service3: IBlock = {
|
|
|
563
527
|
"align-items": "center",
|
|
564
528
|
"column-gap": "sm",
|
|
565
529
|
},
|
|
566
|
-
label: {
|
|
567
|
-
color: "text-2",
|
|
568
|
-
},
|
|
530
|
+
label: {},
|
|
569
531
|
},
|
|
570
532
|
{
|
|
571
533
|
stat_wrapper: {
|
|
@@ -573,9 +535,7 @@ export const Service3: IBlock = {
|
|
|
573
535
|
"align-items": "center",
|
|
574
536
|
"column-gap": "sm",
|
|
575
537
|
},
|
|
576
|
-
label: {
|
|
577
|
-
color: "text-2",
|
|
578
|
-
},
|
|
538
|
+
label: {},
|
|
579
539
|
},
|
|
580
540
|
],
|
|
581
541
|
breadcrumbs: [
|
|
@@ -614,10 +574,10 @@ export const Service3: IBlock = {
|
|
|
614
574
|
config: {
|
|
615
575
|
title: {
|
|
616
576
|
heading: {
|
|
617
|
-
level:
|
|
577
|
+
level: "3",
|
|
618
578
|
},
|
|
619
579
|
selectedVariants: {
|
|
620
|
-
Heading_Level: "
|
|
580
|
+
Heading_Level: "H3",
|
|
621
581
|
},
|
|
622
582
|
},
|
|
623
583
|
search_button: {
|
|
@@ -625,6 +585,46 @@ export const Service3: IBlock = {
|
|
|
625
585
|
Button_Variants: "Primary",
|
|
626
586
|
},
|
|
627
587
|
},
|
|
588
|
+
stats: [
|
|
589
|
+
{
|
|
590
|
+
label: {
|
|
591
|
+
selectedVariants: {},
|
|
592
|
+
},
|
|
593
|
+
},
|
|
594
|
+
{
|
|
595
|
+
label: {
|
|
596
|
+
selectedVariants: {},
|
|
597
|
+
},
|
|
598
|
+
},
|
|
599
|
+
{
|
|
600
|
+
label: {
|
|
601
|
+
selectedVariants: {},
|
|
602
|
+
},
|
|
603
|
+
},
|
|
604
|
+
{
|
|
605
|
+
label: {
|
|
606
|
+
selectedVariants: {},
|
|
607
|
+
},
|
|
608
|
+
},
|
|
609
|
+
],
|
|
610
|
+
actual_price: {
|
|
611
|
+
heading: {
|
|
612
|
+
level: "4",
|
|
613
|
+
},
|
|
614
|
+
selectedVariants: {
|
|
615
|
+
Heading_Level: "H5",
|
|
616
|
+
},
|
|
617
|
+
},
|
|
618
|
+
off_percent: {
|
|
619
|
+
selectedVariants: {
|
|
620
|
+
Typography_Variants: "Large",
|
|
621
|
+
},
|
|
622
|
+
},
|
|
623
|
+
discount_price: {
|
|
624
|
+
selectedVariants: {
|
|
625
|
+
Typography_Variants: "Small",
|
|
626
|
+
},
|
|
627
|
+
},
|
|
628
628
|
},
|
|
629
629
|
},
|
|
630
630
|
],
|
|
@@ -41,47 +41,48 @@ const Service3: React.FC<ILevoBlockBaseProps<IService3Content>> = ({
|
|
|
41
41
|
</Box>
|
|
42
42
|
<Box elementKey="right_container">
|
|
43
43
|
<Box elementKey="content_wrapper">
|
|
44
|
-
<
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
<Box elementKey="stats_3_levoGroup" data-levo_group>
|
|
71
|
-
{(content?.stats_3 ?? []).map((_: any, index: number) => (
|
|
72
|
-
<Box
|
|
73
|
-
key={`stat-${index}`}
|
|
74
|
-
data-levo_group_item
|
|
75
|
-
elementKey={`stats_3.${index}.stat_wrapper`}
|
|
76
|
-
>
|
|
77
|
-
<Icon elementKey={`stats_3.${index}.icon`} />
|
|
78
|
-
<Typography elementKey={`stats_3.${index}.label`} />
|
|
79
|
-
</Box>
|
|
80
|
-
))}
|
|
81
|
-
</Box>
|
|
44
|
+
<Typography elementKey="title" />
|
|
45
|
+
|
|
46
|
+
<Box elementKey="stats_levoGroup" data-levo_group>
|
|
47
|
+
{(content?.stats ?? []).map((_, index: number) => (
|
|
48
|
+
<Box
|
|
49
|
+
key={`stat-${index}`}
|
|
50
|
+
data-levo_group_item
|
|
51
|
+
elementKey={`stats.${index}.stat_wrapper`}
|
|
52
|
+
>
|
|
53
|
+
<Icon elementKey={`stats.${index}.icon`} />
|
|
54
|
+
<Typography elementKey={`stats.${index}.label`} />
|
|
55
|
+
</Box>
|
|
56
|
+
))}
|
|
57
|
+
</Box>
|
|
58
|
+
|
|
59
|
+
<Box elementKey="stats_2_levoGroup" data-levo_group>
|
|
60
|
+
{(content?.stats_2 ?? []).map((_: any, index: number) => (
|
|
61
|
+
<Box
|
|
62
|
+
key={`stat-${index}`}
|
|
63
|
+
data-levo_group_item
|
|
64
|
+
elementKey={`stats_2.${index}.stat_wrapper`}
|
|
65
|
+
>
|
|
66
|
+
<Icon elementKey={`stats_2.${index}.icon`} />
|
|
67
|
+
<Typography elementKey={`stats_2.${index}.label`} />
|
|
68
|
+
</Box>
|
|
69
|
+
))}
|
|
82
70
|
</Box>
|
|
71
|
+
<Box elementKey="stats_3_levoGroup" data-levo_group>
|
|
72
|
+
{(content?.stats_3 ?? []).map((_: any, index: number) => (
|
|
73
|
+
<Box
|
|
74
|
+
key={`stat-${index}`}
|
|
75
|
+
data-levo_group_item
|
|
76
|
+
elementKey={`stats_3.${index}.stat_wrapper`}
|
|
77
|
+
>
|
|
78
|
+
<Icon elementKey={`stats_3.${index}.icon`} />
|
|
79
|
+
<Typography elementKey={`stats_3.${index}.label`} />
|
|
80
|
+
</Box>
|
|
81
|
+
))}
|
|
82
|
+
</Box>
|
|
83
|
+
|
|
83
84
|
<Box elementKey="price_container">
|
|
84
|
-
<
|
|
85
|
+
<Heading elementKey="actual_price" />
|
|
85
86
|
<Typography elementKey="discount_price" />
|
|
86
87
|
<Typography elementKey="off_percent" />
|
|
87
88
|
</Box>
|