@levo-so/blocks 0.1.54 → 0.1.58
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
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import type { CarouselApi } from "@levo-so/studio";
|
|
4
|
+
import {
|
|
5
|
+
type ILevoBlockBaseProps,
|
|
6
|
+
Heading,
|
|
7
|
+
Typography,
|
|
8
|
+
Container,
|
|
9
|
+
Section,
|
|
10
|
+
Carousel,
|
|
11
|
+
CarouselContent,
|
|
12
|
+
CarouselItem,
|
|
13
|
+
Box,
|
|
14
|
+
Icon,
|
|
15
|
+
Button,
|
|
16
|
+
Media,
|
|
17
|
+
} from "@levo-so/studio";
|
|
18
|
+
import { useEffect, useState } from "react";
|
|
19
|
+
|
|
20
|
+
import type { ICarousel2Content } from "./carousel-2.schema";
|
|
21
|
+
|
|
22
|
+
const Carousel2: React.FC<ILevoBlockBaseProps<ICarousel2Content>> = ({
|
|
23
|
+
content,
|
|
24
|
+
}) => {
|
|
25
|
+
const [api, setApi] = useState<CarouselApi>();
|
|
26
|
+
const [current, setCurrent] = useState(0);
|
|
27
|
+
const [count, setCount] = useState(0);
|
|
28
|
+
|
|
29
|
+
useEffect(() => {
|
|
30
|
+
if (!api) {
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
setCount(api.scrollSnapList().length);
|
|
35
|
+
setCurrent(api.selectedScrollSnap() + 1);
|
|
36
|
+
|
|
37
|
+
api.on("select", () => {
|
|
38
|
+
setCurrent(api.selectedScrollSnap() + 1);
|
|
39
|
+
});
|
|
40
|
+
}, [api]);
|
|
41
|
+
|
|
42
|
+
// Add disabled state logic
|
|
43
|
+
const isFirstSlide = current === 1; // current is 1-based index from logic above
|
|
44
|
+
const isLastSlide = current === count;
|
|
45
|
+
|
|
46
|
+
const handlePrevious = () => {
|
|
47
|
+
if (api && !isFirstSlide) {
|
|
48
|
+
api.scrollPrev();
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
const handleNext = () => {
|
|
53
|
+
if (api && !isLastSlide) {
|
|
54
|
+
api.scrollNext();
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
return (
|
|
59
|
+
<Section elementKey="layout">
|
|
60
|
+
<Container elementKey="container">
|
|
61
|
+
<Box elementKey="header">
|
|
62
|
+
<Box elementKey="header-content">
|
|
63
|
+
<Heading elementKey="title" />
|
|
64
|
+
<Typography elementKey="description" />
|
|
65
|
+
</Box>
|
|
66
|
+
{count > 0 && (
|
|
67
|
+
<Box elementKey="carousel-navigation-top-container">
|
|
68
|
+
<Button
|
|
69
|
+
elementKey="carousel-navigation-arrow-left"
|
|
70
|
+
onClick={handlePrevious}
|
|
71
|
+
disabled={isFirstSlide}
|
|
72
|
+
style={{
|
|
73
|
+
opacity: isFirstSlide ? 0.5 : 1,
|
|
74
|
+
cursor: isFirstSlide ? "not-allowed" : "pointer",
|
|
75
|
+
}}
|
|
76
|
+
/>
|
|
77
|
+
|
|
78
|
+
<Button
|
|
79
|
+
elementKey="carousel-navigation-arrow-right"
|
|
80
|
+
onClick={handleNext}
|
|
81
|
+
disabled={isLastSlide}
|
|
82
|
+
style={{
|
|
83
|
+
opacity: isLastSlide ? 0.5 : 1,
|
|
84
|
+
cursor: isLastSlide ? "not-allowed" : "pointer",
|
|
85
|
+
}}
|
|
86
|
+
/>
|
|
87
|
+
</Box>
|
|
88
|
+
)}
|
|
89
|
+
</Box>
|
|
90
|
+
<Carousel elementKey="team_levoGroup" setApi={setApi} data-levo_group>
|
|
91
|
+
<CarouselContent>
|
|
92
|
+
{(content?.team ?? [])?.map((_: any, index: number) => (
|
|
93
|
+
<CarouselItem key={index} data-levo_group_item>
|
|
94
|
+
<Box elementKey={`team.${index}.card`}>
|
|
95
|
+
<Media
|
|
96
|
+
elementKey={`team.${index}.img`}
|
|
97
|
+
alt="Team member photo"
|
|
98
|
+
/>
|
|
99
|
+
<Box elementKey={`team.${index}.info`}>
|
|
100
|
+
<Box elementKey={`team.${index}.name-position-wrapper`}>
|
|
101
|
+
<Typography elementKey={`team.${index}.name`} />
|
|
102
|
+
<Typography elementKey={`team.${index}.description`} />
|
|
103
|
+
</Box>
|
|
104
|
+
<Box
|
|
105
|
+
elementKey={`team.${index}.social_levoGroup`}
|
|
106
|
+
data-levo_group
|
|
107
|
+
>
|
|
108
|
+
{(content?.team?.[index]?.social ?? [])?.map(
|
|
109
|
+
(_: any, socialIndex: number) => (
|
|
110
|
+
<Icon
|
|
111
|
+
key={socialIndex}
|
|
112
|
+
data-levo_group_item
|
|
113
|
+
elementKey={`team.${index}.social.${socialIndex}.icon`}
|
|
114
|
+
/>
|
|
115
|
+
),
|
|
116
|
+
)}
|
|
117
|
+
</Box>
|
|
118
|
+
</Box>
|
|
119
|
+
</Box>
|
|
120
|
+
</CarouselItem>
|
|
121
|
+
))}
|
|
122
|
+
</CarouselContent>
|
|
123
|
+
</Carousel>
|
|
124
|
+
{count > 0 && (
|
|
125
|
+
<Box elementKey="carousel-navigation-container">
|
|
126
|
+
<Box elementKey="carousel-navigation">
|
|
127
|
+
{Array(count)
|
|
128
|
+
?.fill(0)
|
|
129
|
+
?.map((_, index) => (
|
|
130
|
+
<Box
|
|
131
|
+
key={index}
|
|
132
|
+
elementKey="carousel-navigation-pill"
|
|
133
|
+
style={
|
|
134
|
+
index + 1 === current
|
|
135
|
+
? {
|
|
136
|
+
backgroundColor: "var(--color-brand)",
|
|
137
|
+
width: "24px",
|
|
138
|
+
}
|
|
139
|
+
: {}
|
|
140
|
+
}
|
|
141
|
+
onClick={() => {
|
|
142
|
+
if (api) {
|
|
143
|
+
api?.scrollTo(index);
|
|
144
|
+
}
|
|
145
|
+
}}
|
|
146
|
+
/>
|
|
147
|
+
))}
|
|
148
|
+
</Box>
|
|
149
|
+
</Box>
|
|
150
|
+
)}
|
|
151
|
+
<Box elementKey="cta_wrapper">
|
|
152
|
+
<Button elementKey="cta" />
|
|
153
|
+
</Box>
|
|
154
|
+
</Container>
|
|
155
|
+
</Section>
|
|
156
|
+
);
|
|
157
|
+
};
|
|
158
|
+
|
|
159
|
+
export default Carousel2;
|
|
@@ -107,6 +107,9 @@ const DEFAULT_CONTENT = {
|
|
|
107
107
|
},
|
|
108
108
|
},
|
|
109
109
|
],
|
|
110
|
+
bottom_description:
|
|
111
|
+
"<p>You can also send your application on email here<br>Email id - jobs@xyz.com.</p>",
|
|
112
|
+
label: "CurrentJob Openings",
|
|
110
113
|
};
|
|
111
114
|
|
|
112
115
|
export type IContent5Content = typeof DEFAULT_CONTENT;
|
|
@@ -135,6 +138,27 @@ export const Content5: IBlock = {
|
|
|
135
138
|
label: "Header Wrapper",
|
|
136
139
|
field_interface: "BoxWidget",
|
|
137
140
|
},
|
|
141
|
+
{
|
|
142
|
+
key: "label_container",
|
|
143
|
+
label: "Label Container",
|
|
144
|
+
field_interface: "BoxWidget",
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
key: "label_left_divider",
|
|
148
|
+
label: "Label Left Divider",
|
|
149
|
+
field_interface: "BoxWidget",
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
key: "label_right_divider",
|
|
153
|
+
label: "Label Right Divider",
|
|
154
|
+
field_interface: "BoxWidget",
|
|
155
|
+
},
|
|
156
|
+
|
|
157
|
+
{
|
|
158
|
+
key: "label",
|
|
159
|
+
label: "Label",
|
|
160
|
+
field_interface: "TypographyWidget",
|
|
161
|
+
},
|
|
138
162
|
{
|
|
139
163
|
key: "title",
|
|
140
164
|
label: "Title",
|
|
@@ -155,6 +179,11 @@ export const Content5: IBlock = {
|
|
|
155
179
|
label: "Bottom CTA",
|
|
156
180
|
field_interface: "ButtonWidget",
|
|
157
181
|
},
|
|
182
|
+
{
|
|
183
|
+
key: "bottom_description",
|
|
184
|
+
label: "Bottom Description",
|
|
185
|
+
field_interface: "TypographyWidget",
|
|
186
|
+
},
|
|
158
187
|
{
|
|
159
188
|
key: "jobs",
|
|
160
189
|
label: "Jobs",
|
|
@@ -171,6 +200,16 @@ export const Content5: IBlock = {
|
|
|
171
200
|
label: "Designation Wrapper",
|
|
172
201
|
field_interface: "BoxWidget",
|
|
173
202
|
},
|
|
203
|
+
{
|
|
204
|
+
key: "designation_header_wrapper",
|
|
205
|
+
label: "Designation Header Wrapper",
|
|
206
|
+
field_interface: "BoxWidget",
|
|
207
|
+
},
|
|
208
|
+
{
|
|
209
|
+
key: "designation_icon",
|
|
210
|
+
label: "Designation Icon",
|
|
211
|
+
field_interface: "IconWidget",
|
|
212
|
+
},
|
|
174
213
|
{
|
|
175
214
|
key: "designation_header",
|
|
176
215
|
label: "Designation Header",
|
|
@@ -186,6 +225,16 @@ export const Content5: IBlock = {
|
|
|
186
225
|
label: "Work Wrapper",
|
|
187
226
|
field_interface: "BoxWidget",
|
|
188
227
|
},
|
|
228
|
+
{
|
|
229
|
+
key: "work_header_wrapper",
|
|
230
|
+
label: "Work Header Wrapper",
|
|
231
|
+
field_interface: "BoxWidget",
|
|
232
|
+
},
|
|
233
|
+
{
|
|
234
|
+
key: "work_icon",
|
|
235
|
+
label: "Work Icon",
|
|
236
|
+
field_interface: "IconWidget",
|
|
237
|
+
},
|
|
189
238
|
{
|
|
190
239
|
key: "work_header",
|
|
191
240
|
label: "Work Header",
|
|
@@ -201,6 +250,16 @@ export const Content5: IBlock = {
|
|
|
201
250
|
label: "Location Wrapper",
|
|
202
251
|
field_interface: "BoxWidget",
|
|
203
252
|
},
|
|
253
|
+
{
|
|
254
|
+
key: "location_header_wrapper",
|
|
255
|
+
label: "Location Header Wrapper",
|
|
256
|
+
field_interface: "BoxWidget",
|
|
257
|
+
},
|
|
258
|
+
{
|
|
259
|
+
key: "location_icon",
|
|
260
|
+
label: "Location Icon",
|
|
261
|
+
field_interface: "IconWidget",
|
|
262
|
+
},
|
|
204
263
|
{
|
|
205
264
|
key: "location_header",
|
|
206
265
|
label: "Location Header",
|
|
@@ -247,10 +306,12 @@ export const Content5: IBlock = {
|
|
|
247
306
|
},
|
|
248
307
|
title: {
|
|
249
308
|
"margin-bottom": "base",
|
|
309
|
+
"text-align": "center",
|
|
250
310
|
},
|
|
251
311
|
description: {
|
|
252
312
|
color: "text-2",
|
|
253
|
-
|
|
313
|
+
display: "block",
|
|
314
|
+
"text-align": "center",
|
|
254
315
|
},
|
|
255
316
|
jobs_levoGroup: {
|
|
256
317
|
display: "flex",
|
|
@@ -259,10 +320,6 @@ export const Content5: IBlock = {
|
|
|
259
320
|
"margin-bottom": "2xl",
|
|
260
321
|
},
|
|
261
322
|
bottom_cta: {
|
|
262
|
-
"padding-left": "none",
|
|
263
|
-
"padding-top": "none",
|
|
264
|
-
"padding-bottom": "none",
|
|
265
|
-
"padding-right": "none",
|
|
266
323
|
"margin-left": "auto",
|
|
267
324
|
"margin-right": "auto",
|
|
268
325
|
},
|
|
@@ -297,6 +354,15 @@ export const Content5: IBlock = {
|
|
|
297
354
|
"flex-direction": "column",
|
|
298
355
|
"row-gap": "xs",
|
|
299
356
|
},
|
|
357
|
+
designation_header_wrapper: {
|
|
358
|
+
display: "flex",
|
|
359
|
+
"align-items": "center",
|
|
360
|
+
"column-gap": "2xs",
|
|
361
|
+
},
|
|
362
|
+
designation_icon: {
|
|
363
|
+
width: "16px",
|
|
364
|
+
height: "16px",
|
|
365
|
+
},
|
|
300
366
|
designation_header: {
|
|
301
367
|
color: "text-2",
|
|
302
368
|
"font-size": "sm",
|
|
@@ -318,6 +384,15 @@ export const Content5: IBlock = {
|
|
|
318
384
|
"align-items": "center",
|
|
319
385
|
},
|
|
320
386
|
},
|
|
387
|
+
work_header_wrapper: {
|
|
388
|
+
display: "flex",
|
|
389
|
+
"align-items": "center",
|
|
390
|
+
"column-gap": "2xs",
|
|
391
|
+
},
|
|
392
|
+
work_icon: {
|
|
393
|
+
width: "16px",
|
|
394
|
+
height: "16px",
|
|
395
|
+
},
|
|
321
396
|
work_header: {
|
|
322
397
|
color: "text-2",
|
|
323
398
|
"font-size": "sm",
|
|
@@ -343,6 +418,15 @@ export const Content5: IBlock = {
|
|
|
343
418
|
"align-items": "start",
|
|
344
419
|
},
|
|
345
420
|
},
|
|
421
|
+
location_header_wrapper: {
|
|
422
|
+
display: "flex",
|
|
423
|
+
"align-items": "center",
|
|
424
|
+
"column-gap": "2xs",
|
|
425
|
+
},
|
|
426
|
+
location_icon: {
|
|
427
|
+
width: "16px",
|
|
428
|
+
height: "16px",
|
|
429
|
+
},
|
|
346
430
|
location_header: {
|
|
347
431
|
color: "text-2",
|
|
348
432
|
"font-size": "sm",
|
|
@@ -433,11 +517,11 @@ export const Content5: IBlock = {
|
|
|
433
517
|
},
|
|
434
518
|
},
|
|
435
519
|
work_header: {
|
|
436
|
-
color: "text-2",
|
|
437
520
|
"font-size": "sm",
|
|
438
521
|
"font-weight": "500",
|
|
439
522
|
"text-transform": "uppercase",
|
|
440
523
|
"letter-spacing": "0.05em",
|
|
524
|
+
color: "brand",
|
|
441
525
|
},
|
|
442
526
|
work_value: {
|
|
443
527
|
color: "text-1",
|
|
@@ -930,6 +1014,28 @@ export const Content5: IBlock = {
|
|
|
930
1014
|
},
|
|
931
1015
|
},
|
|
932
1016
|
],
|
|
1017
|
+
bottom_description: {
|
|
1018
|
+
"margin-left": "auto",
|
|
1019
|
+
"margin-right": "auto",
|
|
1020
|
+
"text-align": "center",
|
|
1021
|
+
"margin-top": "base",
|
|
1022
|
+
},
|
|
1023
|
+
label_left_divider: {
|
|
1024
|
+
height: "2px",
|
|
1025
|
+
width: "30px",
|
|
1026
|
+
"background-color": "brand",
|
|
1027
|
+
},
|
|
1028
|
+
label_right_divider: {
|
|
1029
|
+
height: "2px",
|
|
1030
|
+
width: "30px",
|
|
1031
|
+
"background-color": "brand",
|
|
1032
|
+
},
|
|
1033
|
+
label_container: {
|
|
1034
|
+
display: "flex",
|
|
1035
|
+
"align-items": "center",
|
|
1036
|
+
"column-gap": "3xs",
|
|
1037
|
+
"justify-content": "center",
|
|
1038
|
+
},
|
|
933
1039
|
},
|
|
934
1040
|
content: DEFAULT_CONTENT,
|
|
935
1041
|
config: {
|
|
@@ -3,6 +3,7 @@ import {
|
|
|
3
3
|
Button,
|
|
4
4
|
Container,
|
|
5
5
|
Heading,
|
|
6
|
+
Icon,
|
|
6
7
|
Section,
|
|
7
8
|
Typography,
|
|
8
9
|
type ILevoBlockBaseProps,
|
|
@@ -17,6 +18,11 @@ const Content5: React.FC<ILevoBlockBaseProps<IContent5Content>> = ({
|
|
|
17
18
|
<Section elementKey="layout">
|
|
18
19
|
<Container elementKey="container">
|
|
19
20
|
<Box elementKey="header_wrapper">
|
|
21
|
+
<Box elementKey="label_container">
|
|
22
|
+
<Box elementKey="label_left_divider" />
|
|
23
|
+
<Typography elementKey="label" />
|
|
24
|
+
<Box elementKey="label_right_divider" />
|
|
25
|
+
</Box>
|
|
20
26
|
<Heading elementKey="title" />
|
|
21
27
|
<Typography elementKey="description" />
|
|
22
28
|
</Box>
|
|
@@ -29,15 +35,24 @@ const Content5: React.FC<ILevoBlockBaseProps<IContent5Content>> = ({
|
|
|
29
35
|
elementKey={`jobs.${index}.job_item`}
|
|
30
36
|
>
|
|
31
37
|
<Box elementKey={`jobs.${index}.designation_wrapper`}>
|
|
32
|
-
<
|
|
38
|
+
<Box elementKey={`jobs.${index}.designation_header_wrapper`}>
|
|
39
|
+
<Icon elementKey={`jobs.${index}.designation_icon`} />
|
|
40
|
+
<Typography elementKey={`jobs.${index}.designation_header`} />
|
|
41
|
+
</Box>
|
|
33
42
|
<Typography elementKey={`jobs.${index}.designation_value`} />
|
|
34
43
|
</Box>
|
|
35
44
|
<Box elementKey={`jobs.${index}.work_wrapper`}>
|
|
36
|
-
<
|
|
45
|
+
<Box elementKey={`jobs.${index}.work_header_wrapper`}>
|
|
46
|
+
<Icon elementKey={`jobs.${index}.work_icon`} />
|
|
47
|
+
<Typography elementKey={`jobs.${index}.work_header`} />
|
|
48
|
+
</Box>
|
|
37
49
|
<Typography elementKey={`jobs.${index}.work_value`} />
|
|
38
50
|
</Box>
|
|
39
51
|
<Box elementKey={`jobs.${index}.location_wrapper`}>
|
|
40
|
-
<
|
|
52
|
+
<Box elementKey={`jobs.${index}.location_header_wrapper`}>
|
|
53
|
+
<Icon elementKey={`jobs.${index}.location_icon`} />
|
|
54
|
+
<Typography elementKey={`jobs.${index}.location_header`} />
|
|
55
|
+
</Box>
|
|
41
56
|
<Typography elementKey={`jobs.${index}.location_value`} />
|
|
42
57
|
</Box>
|
|
43
58
|
<Button elementKey={`jobs.${index}.cta`} />
|
|
@@ -52,6 +67,7 @@ const Content5: React.FC<ILevoBlockBaseProps<IContent5Content>> = ({
|
|
|
52
67
|
))}
|
|
53
68
|
</Box>
|
|
54
69
|
<Button elementKey="bottom_cta" />
|
|
70
|
+
<Typography elementKey="bottom_description" />
|
|
55
71
|
</Container>
|
|
56
72
|
</Section>
|
|
57
73
|
);
|
|
@@ -32,7 +32,9 @@ const DEFAULT_CONTENT = {
|
|
|
32
32
|
companies: [
|
|
33
33
|
{
|
|
34
34
|
company_item: null,
|
|
35
|
+
image_wrapper: null,
|
|
35
36
|
company_image: DEFAULT_IMAGE,
|
|
37
|
+
company_name: null,
|
|
36
38
|
work_wrapper: null,
|
|
37
39
|
work_header: "Stage",
|
|
38
40
|
work_value: "Seed",
|
|
@@ -44,7 +46,9 @@ const DEFAULT_CONTENT = {
|
|
|
44
46
|
},
|
|
45
47
|
{
|
|
46
48
|
company_item: null,
|
|
49
|
+
image_wrapper: null,
|
|
47
50
|
company_image: DEFAULT_IMAGE,
|
|
51
|
+
company_name: null,
|
|
48
52
|
work_wrapper: null,
|
|
49
53
|
work_header: "Stage",
|
|
50
54
|
work_value: "Growth",
|
|
@@ -56,8 +60,9 @@ const DEFAULT_CONTENT = {
|
|
|
56
60
|
},
|
|
57
61
|
{
|
|
58
62
|
company_item: null,
|
|
63
|
+
image_wrapper: null,
|
|
59
64
|
company_image: DEFAULT_IMAGE,
|
|
60
|
-
|
|
65
|
+
company_name: null,
|
|
61
66
|
work_wrapper: null,
|
|
62
67
|
work_header: "Stage",
|
|
63
68
|
work_value: "Series A",
|
|
@@ -106,7 +111,6 @@ export const Content6: IBlock = {
|
|
|
106
111
|
label: "Description",
|
|
107
112
|
field_interface: "TypographyWidget",
|
|
108
113
|
},
|
|
109
|
-
|
|
110
114
|
{
|
|
111
115
|
key: "companies",
|
|
112
116
|
label: "Companies",
|
|
@@ -118,12 +122,21 @@ export const Content6: IBlock = {
|
|
|
118
122
|
label: "Company Item",
|
|
119
123
|
field_interface: "BoxWidget",
|
|
120
124
|
},
|
|
125
|
+
{
|
|
126
|
+
key: "image_wrapper",
|
|
127
|
+
label: "Image Wrapper",
|
|
128
|
+
field_interface: "BoxWidget",
|
|
129
|
+
},
|
|
121
130
|
{
|
|
122
131
|
key: "company_image",
|
|
123
132
|
label: "Company Image",
|
|
124
133
|
field_interface: "ImageWidget",
|
|
125
134
|
},
|
|
126
|
-
|
|
135
|
+
{
|
|
136
|
+
key: "company_name",
|
|
137
|
+
label: "Company Name",
|
|
138
|
+
field_interface: "TypographyWidget",
|
|
139
|
+
},
|
|
127
140
|
{
|
|
128
141
|
key: "work_wrapper",
|
|
129
142
|
label: "Work Wrapper",
|
|
@@ -34,6 +34,7 @@ const Content6: React.FC<ILevoBlockBaseProps<IContent6Content>> = ({
|
|
|
34
34
|
elementKey={`companies.${index}.company_image`}
|
|
35
35
|
alt="Company logo"
|
|
36
36
|
/>
|
|
37
|
+
<Typography elementKey={`companies.${index}.company_name`} />
|
|
37
38
|
</Box>
|
|
38
39
|
|
|
39
40
|
<Box elementKey={`companies.${index}.work_wrapper`}>
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
import type { IBlock } from "@levo-so/studio";
|
|
2
|
+
|
|
3
|
+
const DEFAULT_CONTENT = {
|
|
4
|
+
layout: null,
|
|
5
|
+
container: null,
|
|
6
|
+
inner_container: null,
|
|
7
|
+
icon_wrapper: null,
|
|
8
|
+
description:
|
|
9
|
+
"Transform your business with our comprehensive platform designed for modern enterprises seeking growth and efficiency.",
|
|
10
|
+
cta: "Get Started",
|
|
11
|
+
icon: {
|
|
12
|
+
kind: "icon",
|
|
13
|
+
data: {
|
|
14
|
+
id: "simcard-2",
|
|
15
|
+
label: "Simcard 2",
|
|
16
|
+
tags: [
|
|
17
|
+
"computers-devices-electronics",
|
|
18
|
+
"custom",
|
|
19
|
+
"directional",
|
|
20
|
+
"simcard",
|
|
21
|
+
],
|
|
22
|
+
svgCode:
|
|
23
|
+
'<svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">\n<path d="M12.11 22.72H5.89C3.16 22.72 1.25 20.81 1.25 18.08V10.31C1.25 7.58004 3.16 5.67004 5.89 5.67004H9.72C10.94 5.67004 12.14 6.17004 13 7.03004L15.39 9.41004C16.26 10.28 16.75 11.47 16.75 12.69V18.08C16.75 20.81 14.84 22.72 12.11 22.72ZM5.89 7.17004C3.98 7.17004 2.75 8.40004 2.75 10.31V18.08C2.75 19.99 3.98 21.22 5.89 21.22H12.11C14.02 21.22 15.25 19.99 15.25 18.08V12.69C15.25 11.86 14.91 11.06 14.33 10.47L11.94 8.09004C11.35 7.50004 10.54 7.17004 9.72 7.17004H5.89Z" fill="var(--color-icon-primary)"/>\n<path d="M18.11 18.28H16C15.59 18.28 15.25 17.94 15.25 17.53V12.69C15.25 11.86 14.91 11.06 14.33 10.47L11.94 8.08997C11.35 7.49997 10.54 7.16997 9.72 7.16997H8C7.59 7.16997 7.25 6.82997 7.25 6.41997V5.85997C7.25 3.12997 9.16 1.21997 11.89 1.21997H15.72C16.94 1.21997 18.14 1.71997 19 2.57997L21.39 4.96997C22.27 5.84997 22.75 7.00997 22.75 8.24997V13.64C22.75 16.37 20.84 18.28 18.11 18.28ZM16.75 16.78H18.11C20.02 16.78 21.25 15.55 21.25 13.64V8.24997C21.25 7.40997 20.92 6.61997 20.33 6.02997L17.94 3.63997C17.36 3.05997 16.55 2.71997 15.72 2.71997H11.89C10.05 2.71997 8.83 3.86997 8.75 5.66997H9.72C10.94 5.66997 12.14 6.16997 13 7.02997L15.39 9.40997C16.26 10.28 16.75 11.47 16.75 12.69V16.78Z" fill="var(--color-icon-primary)"/>\n</svg>',
|
|
24
|
+
},
|
|
25
|
+
},
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
export type IContent8Content = typeof DEFAULT_CONTENT;
|
|
29
|
+
|
|
30
|
+
export const Content8: IBlock = {
|
|
31
|
+
category_id: "content",
|
|
32
|
+
title: "Content 8",
|
|
33
|
+
key: "content-8",
|
|
34
|
+
version: "v1",
|
|
35
|
+
prompt_description:
|
|
36
|
+
"Simple feature block with icon, description text, and call-to-action button in a clean centered layout.",
|
|
37
|
+
|
|
38
|
+
content_schema: [
|
|
39
|
+
{
|
|
40
|
+
key: "layout",
|
|
41
|
+
label: "Layout",
|
|
42
|
+
field_interface: "LayoutWidget",
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
key: "container",
|
|
46
|
+
label: "Container",
|
|
47
|
+
field_interface: "ContainerWidget",
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
key: "inner_container",
|
|
51
|
+
label: "Inner Container",
|
|
52
|
+
field_interface: "BoxWidget",
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
key: "icon",
|
|
56
|
+
label: "Icon",
|
|
57
|
+
field_interface: "IconWidget",
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
key: "description",
|
|
61
|
+
label: "Description",
|
|
62
|
+
field_interface: "TypographyWidget",
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
key: "cta",
|
|
66
|
+
label: "CTA Button",
|
|
67
|
+
field_interface: "ButtonWidget",
|
|
68
|
+
},
|
|
69
|
+
],
|
|
70
|
+
layouts: [
|
|
71
|
+
{
|
|
72
|
+
key: "default",
|
|
73
|
+
title: "Default",
|
|
74
|
+
styles: {
|
|
75
|
+
layout: {
|
|
76
|
+
"padding-top": "base",
|
|
77
|
+
"padding-bottom": "base",
|
|
78
|
+
"padding-left": "none",
|
|
79
|
+
"padding-right": "none",
|
|
80
|
+
"background-color": "background-2",
|
|
81
|
+
},
|
|
82
|
+
container: {
|
|
83
|
+
"margin-left": "auto",
|
|
84
|
+
"margin-right": "auto",
|
|
85
|
+
display: "flex",
|
|
86
|
+
"justify-content": "space-between",
|
|
87
|
+
"align-items": "center",
|
|
88
|
+
"padding-left": "none",
|
|
89
|
+
"padding-right": "none",
|
|
90
|
+
},
|
|
91
|
+
inner_container: {
|
|
92
|
+
display: "flex",
|
|
93
|
+
"flex-direction": "row",
|
|
94
|
+
"align-items": "center",
|
|
95
|
+
"row-gap": "lg",
|
|
96
|
+
"margin-bottom": "none",
|
|
97
|
+
"justify-content": "center",
|
|
98
|
+
"column-gap": "base",
|
|
99
|
+
},
|
|
100
|
+
icon_wrapper: {
|
|
101
|
+
display: "flex",
|
|
102
|
+
"align-items": "center",
|
|
103
|
+
"justify-content": "center",
|
|
104
|
+
"margin-bottom": "base",
|
|
105
|
+
},
|
|
106
|
+
icon: {
|
|
107
|
+
width: "48px",
|
|
108
|
+
height: "48px",
|
|
109
|
+
"object-fit": "contain",
|
|
110
|
+
},
|
|
111
|
+
description: {
|
|
112
|
+
color: "text-1",
|
|
113
|
+
"font-size": "lg",
|
|
114
|
+
"line-height": "1.6",
|
|
115
|
+
"max-width": "600px",
|
|
116
|
+
"margin-left": "auto",
|
|
117
|
+
"margin-right": "auto",
|
|
118
|
+
},
|
|
119
|
+
cta: {},
|
|
120
|
+
},
|
|
121
|
+
content: DEFAULT_CONTENT,
|
|
122
|
+
config: {},
|
|
123
|
+
},
|
|
124
|
+
],
|
|
125
|
+
};
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import {
|
|
2
|
+
Box,
|
|
3
|
+
Button,
|
|
4
|
+
Container,
|
|
5
|
+
Icon,
|
|
6
|
+
Section,
|
|
7
|
+
Typography,
|
|
8
|
+
type ILevoBlockBaseProps,
|
|
9
|
+
} from "@levo-so/studio";
|
|
10
|
+
import React from "react";
|
|
11
|
+
|
|
12
|
+
import { type IContent8Content } from "./content-8.schema";
|
|
13
|
+
|
|
14
|
+
const Content8: React.FC<ILevoBlockBaseProps<IContent8Content>> = ({}) => (
|
|
15
|
+
<Section elementKey="layout">
|
|
16
|
+
<Container elementKey="container">
|
|
17
|
+
<Box elementKey="inner_container">
|
|
18
|
+
<Icon elementKey="icon" />
|
|
19
|
+
|
|
20
|
+
<Typography elementKey="description" />
|
|
21
|
+
</Box>
|
|
22
|
+
<Button elementKey="cta" />
|
|
23
|
+
</Container>
|
|
24
|
+
</Section>
|
|
25
|
+
);
|
|
26
|
+
|
|
27
|
+
export default Content8;
|