@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
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import {
|
|
2
|
+
Box,
|
|
3
|
+
Container,
|
|
4
|
+
Heading,
|
|
5
|
+
Section,
|
|
6
|
+
Typography,
|
|
7
|
+
type ILevoBlockBaseProps,
|
|
8
|
+
TabsRoot,
|
|
9
|
+
TabsList,
|
|
10
|
+
TabsTrigger,
|
|
11
|
+
TabsContent,
|
|
12
|
+
Button,
|
|
13
|
+
} from "@levo-so/studio";
|
|
14
|
+
import React from "react";
|
|
15
|
+
import { ITab2Content } from "./tab-2.schema";
|
|
16
|
+
|
|
17
|
+
const Tab2: React.FC<ILevoBlockBaseProps<ITab2Content>> = ({ content }) => {
|
|
18
|
+
return (
|
|
19
|
+
<Section elementKey="layout">
|
|
20
|
+
<Container elementKey="container">
|
|
21
|
+
<TabsRoot defaultValue="0">
|
|
22
|
+
<Box elementKey="main_content_wrapper">
|
|
23
|
+
<Box elementKey="left_container">
|
|
24
|
+
<Heading elementKey="title" />
|
|
25
|
+
<Box elementKey="tabs_levoGroup" data-levo_group>
|
|
26
|
+
<TabsList elementKey="tabs_tabList">
|
|
27
|
+
{(content.tabs ?? []).map((_: any, index: number) => (
|
|
28
|
+
<TabsTrigger
|
|
29
|
+
value={index.toString()}
|
|
30
|
+
key={index}
|
|
31
|
+
elementKey={`tabs.${index}.TabsTrigger`}
|
|
32
|
+
/>
|
|
33
|
+
))}
|
|
34
|
+
</TabsList>
|
|
35
|
+
</Box>
|
|
36
|
+
</Box>
|
|
37
|
+
<Box elementKey="right_container">
|
|
38
|
+
{(content.tabs ?? []).map((_: any, index: number) => (
|
|
39
|
+
<TabsContent
|
|
40
|
+
value={index.toString()}
|
|
41
|
+
key={index}
|
|
42
|
+
data-levo_group_item
|
|
43
|
+
elementKey={`tabs.${index}.tab_content`}
|
|
44
|
+
>
|
|
45
|
+
<Box elementKey={`tabs.${index}.card_wrapper`}>
|
|
46
|
+
<Heading elementKey={`tabs.${index}.card_title`} />
|
|
47
|
+
<Typography elementKey={`tabs.${index}.card_description`} />
|
|
48
|
+
<Button elementKey={`tabs.${index}.card_cta`} />
|
|
49
|
+
</Box>
|
|
50
|
+
</TabsContent>
|
|
51
|
+
))}
|
|
52
|
+
</Box>
|
|
53
|
+
</Box>
|
|
54
|
+
</TabsRoot>
|
|
55
|
+
</Container>
|
|
56
|
+
</Section>
|
|
57
|
+
);
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
export default Tab2;
|
|
@@ -161,7 +161,11 @@ export const Team3: IBlock = {
|
|
|
161
161
|
"Wrapper for each team member card, providing structure and spacing.",
|
|
162
162
|
},
|
|
163
163
|
},
|
|
164
|
-
|
|
164
|
+
{
|
|
165
|
+
key: "img",
|
|
166
|
+
label: "Card Image",
|
|
167
|
+
field_interface: "MediaWidget",
|
|
168
|
+
},
|
|
165
169
|
{
|
|
166
170
|
key: "info",
|
|
167
171
|
label: "Member Info",
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
1
3
|
import type { CarouselApi } from "@levo-so/studio";
|
|
2
4
|
import {
|
|
3
5
|
type ILevoBlockBaseProps,
|
|
@@ -10,6 +12,7 @@ import {
|
|
|
10
12
|
CarouselItem,
|
|
11
13
|
Box,
|
|
12
14
|
Icon,
|
|
15
|
+
Media,
|
|
13
16
|
} from "@levo-so/studio";
|
|
14
17
|
import { useEffect, useState } from "react";
|
|
15
18
|
|
|
@@ -44,6 +47,10 @@ const Team3: React.FC<ILevoBlockBaseProps<ITeam3Content>> = ({ content }) => {
|
|
|
44
47
|
{(content?.team ?? [])?.map((_: any, index: number) => (
|
|
45
48
|
<CarouselItem key={index} data-levo_group_item>
|
|
46
49
|
<Box elementKey={`team.${index}.card`}>
|
|
50
|
+
<Media
|
|
51
|
+
elementKey={`team.${index}.img`}
|
|
52
|
+
alt="Team member photo"
|
|
53
|
+
/>
|
|
47
54
|
<Box elementKey={`team.${index}.info`}>
|
|
48
55
|
<Box elementKey={`team.${index}.name-position-wrapper`}>
|
|
49
56
|
<Heading elementKey={`team.${index}.name`} />
|
|
@@ -1,16 +1,5 @@
|
|
|
1
1
|
import type { IBlock } from "@levo-so/studio";
|
|
2
2
|
|
|
3
|
-
const DUMMY_ICON = {
|
|
4
|
-
kind: "icon",
|
|
5
|
-
data: {
|
|
6
|
-
id: "linkedin",
|
|
7
|
-
label: "LinkedIn",
|
|
8
|
-
tags: ["social", "professional", "linkedin"],
|
|
9
|
-
svgCode:
|
|
10
|
-
'<svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">\n<path d="M20.4491 20.4498H16.8931V14.8798C16.8931 13.5518 16.8681 11.8438 15.0431 11.8438C13.1931 11.8438 12.9081 13.2918 12.9081 14.7838V20.4498H9.35312V8.99976H12.7651V10.5608H12.8151C13.2881 9.66176 14.4481 8.71076 16.1811 8.71076C19.7851 8.71076 20.4491 11.0828 20.4491 14.1658V20.4498ZM5.33912 7.43276C4.19312 7.43276 3.27112 6.50676 3.27112 5.36576C3.27112 4.22476 4.19312 3.29976 5.33912 3.29976C6.48012 3.29976 7.40612 4.22476 7.40612 5.36576C7.40612 6.50676 6.48012 7.43276 5.33912 7.43276ZM7.11812 20.4498H3.55812V8.99976H7.11812V20.4498ZM22.2231 0H1.77112C0.79212 0 0 0.77376 0 1.72876V22.2708C0 23.2258 0.79212 24 1.77112 24H22.2231C23.2081 24 24 23.2258 24 22.2708V1.72876C24 0.77376 23.2081 0 22.2231 0Z" fill="var(--color-icon-primary)"/>\n</svg>',
|
|
11
|
-
},
|
|
12
|
-
};
|
|
13
|
-
|
|
14
3
|
const DEFAULT_CONTENT = {
|
|
15
4
|
layout: null,
|
|
16
5
|
container: null,
|
|
@@ -161,6 +150,11 @@ export const Team4: IBlock = {
|
|
|
161
150
|
"Wrapper for each team member card, providing structure and spacing with background image.",
|
|
162
151
|
},
|
|
163
152
|
},
|
|
153
|
+
{
|
|
154
|
+
key: "img",
|
|
155
|
+
label: "Card Image",
|
|
156
|
+
field_interface: "MediaWidget",
|
|
157
|
+
},
|
|
164
158
|
{
|
|
165
159
|
key: "info",
|
|
166
160
|
label: "Member Info",
|
|
@@ -182,7 +176,18 @@ export const Team4: IBlock = {
|
|
|
182
176
|
{
|
|
183
177
|
key: "name",
|
|
184
178
|
label: "Member Name",
|
|
185
|
-
field_interface: "
|
|
179
|
+
field_interface: "TypographyWidget",
|
|
180
|
+
hint: {
|
|
181
|
+
prompt_description:
|
|
182
|
+
"Full name of the team member. Use professional, clear naming.",
|
|
183
|
+
min_characters: 8,
|
|
184
|
+
max_characters: 30,
|
|
185
|
+
},
|
|
186
|
+
},
|
|
187
|
+
{
|
|
188
|
+
key: "description",
|
|
189
|
+
label: "Description",
|
|
190
|
+
field_interface: "TypographyWidget",
|
|
186
191
|
hint: {
|
|
187
192
|
prompt_description:
|
|
188
193
|
"Full name of the team member. Use professional, clear naming.",
|
|
@@ -190,7 +195,6 @@ export const Team4: IBlock = {
|
|
|
190
195
|
max_characters: 30,
|
|
191
196
|
},
|
|
192
197
|
},
|
|
193
|
-
|
|
194
198
|
{
|
|
195
199
|
key: "social",
|
|
196
200
|
label: "Social Links",
|
|
@@ -7,6 +7,7 @@ import {
|
|
|
7
7
|
Box,
|
|
8
8
|
Icon,
|
|
9
9
|
Button,
|
|
10
|
+
Media,
|
|
10
11
|
} from "@levo-so/studio";
|
|
11
12
|
|
|
12
13
|
import type { ITeam4Content } from "./team-4.schema";
|
|
@@ -26,9 +27,11 @@ const Team4: React.FC<ILevoBlockBaseProps<ITeam4Content>> = ({ content }) => {
|
|
|
26
27
|
data-levo_group_item
|
|
27
28
|
elementKey={`team.${index}.card`}
|
|
28
29
|
>
|
|
30
|
+
<Media elementKey={`team.${index}.img`} alt="Team member photo" />
|
|
29
31
|
<Box elementKey={`team.${index}.info`}>
|
|
30
32
|
<Box elementKey={`team.${index}.name-position-wrapper`}>
|
|
31
|
-
<
|
|
33
|
+
<Typography elementKey={`team.${index}.name`} />
|
|
34
|
+
<Typography elementKey={`team.${index}.description`} />
|
|
32
35
|
</Box>
|
|
33
36
|
<Box
|
|
34
37
|
elementKey={`team.${index}.social_levoGroup`}
|
|
@@ -0,0 +1,369 @@
|
|
|
1
|
+
import type { IBlock } from "@levo-so/studio";
|
|
2
|
+
|
|
3
|
+
const DEFAULT_CONTENT = {
|
|
4
|
+
layout: null,
|
|
5
|
+
container: null,
|
|
6
|
+
header: null,
|
|
7
|
+
title: "Meet Our Leadership Team",
|
|
8
|
+
description:
|
|
9
|
+
"Discover the talented professionals driving our company's success through innovation, expertise, and unwavering commitment to excellence.",
|
|
10
|
+
main_content: null,
|
|
11
|
+
left_container: null,
|
|
12
|
+
image_wrapper: null,
|
|
13
|
+
main_image: {
|
|
14
|
+
id: "2",
|
|
15
|
+
location: "https://space.levo.so/WLZ1TXTD/defaultblue-tryFJ012mgyH.png",
|
|
16
|
+
kind: "image",
|
|
17
|
+
mimetype: "image/png",
|
|
18
|
+
srcset: {
|
|
19
|
+
"320w":
|
|
20
|
+
"https://space.levo.so/WLZ1TXTD/defaultblue-tryFJ012mgyH-320w.webp",
|
|
21
|
+
"640w":
|
|
22
|
+
"https://space.levo.so/WLZ1TXTD/defaultblue-tryFJ012mgyH-640w.webp",
|
|
23
|
+
"1080w":
|
|
24
|
+
"https://space.levo.so/WLZ1TXTD/defaultblue-tryFJ012mgyH-1080w.webp",
|
|
25
|
+
path: "https://space.levo.so/WLZ1TXTD/defaultblue-tryFJ012mgyH-320w.webp 320w, https://space.levo.so/WLZ1TXTD/defaultblue-tryFJ012mgyH-640w.webp 640w, https://space.levo.so/WLZ1TXTD/defaultblue-tryFJ012mgyH-1080w.webp 1080w",
|
|
26
|
+
},
|
|
27
|
+
},
|
|
28
|
+
overlay_container: null,
|
|
29
|
+
overlay_label: "<p>Richard Murphy</p>",
|
|
30
|
+
overlay_value: "<p>CEO, Mistify</p>",
|
|
31
|
+
right_container: null,
|
|
32
|
+
team_description:
|
|
33
|
+
"<p>Alexandra “Alex” Monroe is a strategic thinker, creative storyteller, and data-driven problem solver with over a decade of experience in brand development, digital transformation, and cross-functional leadership. Known for her ability to blend analytical insight with creative intuition, Alex has helped numerous global organizations redefine their identities, connect authentically with their audiences, and achieve measurable business growth.</p><p>After earning her Master’s degree in Communication and Media Studies from the University of Chicago, Alex began her career as a junior strategist at a boutique marketing firm. Her early exposure to a variety of industries—from consumer technology to sustainable fashion—shaped her holistic approach to brand building. She quickly rose through the ranks, taking on roles that allowed her to lead campaigns across North America, Europe, and Southeast Asia.</p><p>In 2016, Alex co-founded <strong>Maven & Co.</strong>, a creative consultancy dedicated to helping mission-driven companies scale with purpose. Under her leadership, the firm expanded to serve clients in over 15 countries, developing award-winning campaigns recognized by <em>AdWeek</em> and <em>Forbes</em>. Her work has focused on integrating storytelling with technology—leveraging social data, behavioral psychology, and digital design to create brand ecosystems that resonate deeply with modern consumers.</p>",
|
|
34
|
+
cta_wrapper: null,
|
|
35
|
+
cta: "View Profile",
|
|
36
|
+
team_members: [
|
|
37
|
+
{
|
|
38
|
+
card: null,
|
|
39
|
+
content_wrapper: null,
|
|
40
|
+
left_container: null,
|
|
41
|
+
image_wrapper: null,
|
|
42
|
+
member_image: {
|
|
43
|
+
id: "2",
|
|
44
|
+
location: "https://space.levo.so/WLZ1TXTD/defaultblue-tryFJ012mgyH.png",
|
|
45
|
+
kind: "image",
|
|
46
|
+
mimetype: "image/png",
|
|
47
|
+
srcset: {
|
|
48
|
+
"320w":
|
|
49
|
+
"https://space.levo.so/WLZ1TXTD/defaultblue-tryFJ012mgyH-320w.webp",
|
|
50
|
+
"640w":
|
|
51
|
+
"https://space.levo.so/WLZ1TXTD/defaultblue-tryFJ012mgyH-640w.webp",
|
|
52
|
+
"1080w":
|
|
53
|
+
"https://space.levo.so/WLZ1TXTD/defaultblue-tryFJ012mgyH-1080w.webp",
|
|
54
|
+
path: "https://space.levo.so/WLZ1TXTD/defaultblue-tryFJ012mgyH-320w.webp 320w, https://space.levo.so/WLZ1TXTD/defaultblue-tryFJ012mgyH-640w.webp 640w, https://space.levo.so/WLZ1TXTD/defaultblue-tryFJ012mgyH-1080w.webp 1080w",
|
|
55
|
+
},
|
|
56
|
+
},
|
|
57
|
+
overlay_container: null,
|
|
58
|
+
overlay_label: "CTO",
|
|
59
|
+
overlay_value: "Michael Chen",
|
|
60
|
+
right_container: null,
|
|
61
|
+
member_description:
|
|
62
|
+
"Michael leads our technology division with a focus on cutting-edge innovations and scalable solutions. His expertise in cloud architecture and AI integration has positioned us at the forefront of digital transformation.",
|
|
63
|
+
cta_wrapper: null,
|
|
64
|
+
cta: "Learn More",
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
card: null,
|
|
68
|
+
content_wrapper: null,
|
|
69
|
+
left_container: null,
|
|
70
|
+
image_wrapper: null,
|
|
71
|
+
member_image: {
|
|
72
|
+
id: "2",
|
|
73
|
+
location: "https://space.levo.so/WLZ1TXTD/defaultblue-tryFJ012mgyH.png",
|
|
74
|
+
kind: "image",
|
|
75
|
+
mimetype: "image/png",
|
|
76
|
+
srcset: {
|
|
77
|
+
"320w":
|
|
78
|
+
"https://space.levo.so/WLZ1TXTD/defaultblue-tryFJ012mgyH-320w.webp",
|
|
79
|
+
"640w":
|
|
80
|
+
"https://space.levo.so/WLZ1TXTD/defaultblue-tryFJ012mgyH-640w.webp",
|
|
81
|
+
"1080w":
|
|
82
|
+
"https://space.levo.so/WLZ1TXTD/defaultblue-tryFJ012mgyH-1080w.webp",
|
|
83
|
+
path: "https://space.levo.so/WLZ1TXTD/defaultblue-tryFJ012mgyH-320w.webp 320w, https://space.levo.so/WLZ1TXTD/defaultblue-tryFJ012mgyH-640w.webp 640w, https://space.levo.so/WLZ1TXTD/defaultblue-tryFJ012mgyH-1080w.webp 1080w",
|
|
84
|
+
},
|
|
85
|
+
},
|
|
86
|
+
overlay_container: null,
|
|
87
|
+
overlay_label: "CFO",
|
|
88
|
+
overlay_value: "Emily Rodriguez",
|
|
89
|
+
right_container: null,
|
|
90
|
+
member_description:
|
|
91
|
+
"Emily brings extensive financial expertise and strategic planning to our executive team. Her leadership in financial operations and investor relations has been crucial to our sustained growth and market expansion.",
|
|
92
|
+
cta_wrapper: null,
|
|
93
|
+
cta: "Learn More",
|
|
94
|
+
},
|
|
95
|
+
],
|
|
96
|
+
};
|
|
97
|
+
|
|
98
|
+
export type ITeam5Content = typeof DEFAULT_CONTENT;
|
|
99
|
+
|
|
100
|
+
export const Team5: IBlock = {
|
|
101
|
+
category_id: "team",
|
|
102
|
+
title: "Team Details",
|
|
103
|
+
key: "team-5",
|
|
104
|
+
version: "v1",
|
|
105
|
+
prompt_description:
|
|
106
|
+
"A team block with header section, featured member section with image overlay, and team member cards with left image (overlay at bottom) and right content with description and CTA",
|
|
107
|
+
content_schema: [
|
|
108
|
+
{
|
|
109
|
+
key: "layout",
|
|
110
|
+
label: "Layout",
|
|
111
|
+
field_interface: "LayoutWidget",
|
|
112
|
+
},
|
|
113
|
+
{
|
|
114
|
+
key: "container",
|
|
115
|
+
label: "Container",
|
|
116
|
+
field_interface: "ContainerWidget",
|
|
117
|
+
},
|
|
118
|
+
|
|
119
|
+
{
|
|
120
|
+
key: "main_content",
|
|
121
|
+
label: "Main Content",
|
|
122
|
+
field_interface: "LayoutWidget",
|
|
123
|
+
},
|
|
124
|
+
|
|
125
|
+
{
|
|
126
|
+
key: "image_wrapper",
|
|
127
|
+
label: "Image Wrapper",
|
|
128
|
+
field_interface: "LayoutWidget",
|
|
129
|
+
},
|
|
130
|
+
{
|
|
131
|
+
key: "main_image",
|
|
132
|
+
label: "Main Image",
|
|
133
|
+
field_interface: "ImageWidget",
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
key: "overlay_container",
|
|
137
|
+
label: "Overlay Container",
|
|
138
|
+
field_interface: "LayoutWidget",
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
key: "overlay_label",
|
|
142
|
+
label: "Overlay Label",
|
|
143
|
+
field_interface: "TypographyWidget",
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
key: "overlay_value",
|
|
147
|
+
label: "Overlay Value",
|
|
148
|
+
field_interface: "TypographyWidget",
|
|
149
|
+
},
|
|
150
|
+
{
|
|
151
|
+
key: "right_container",
|
|
152
|
+
label: "Right Container",
|
|
153
|
+
field_interface: "LayoutWidget",
|
|
154
|
+
},
|
|
155
|
+
{
|
|
156
|
+
key: "team_description",
|
|
157
|
+
label: "Team Description",
|
|
158
|
+
field_interface: "TypographyWidget",
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
key: "cta_wrapper",
|
|
162
|
+
label: "CTA Wrapper",
|
|
163
|
+
field_interface: "LayoutWidget",
|
|
164
|
+
},
|
|
165
|
+
{
|
|
166
|
+
key: "cta",
|
|
167
|
+
label: "CTA",
|
|
168
|
+
field_interface: "ButtonWidget",
|
|
169
|
+
},
|
|
170
|
+
],
|
|
171
|
+
layouts: [
|
|
172
|
+
{
|
|
173
|
+
key: "default",
|
|
174
|
+
title: "Default",
|
|
175
|
+
styles: {
|
|
176
|
+
layout: {
|
|
177
|
+
"padding-top": "3xl",
|
|
178
|
+
"padding-bottom": "3xl",
|
|
179
|
+
"padding-left": "base",
|
|
180
|
+
"padding-right": "base",
|
|
181
|
+
},
|
|
182
|
+
container: {
|
|
183
|
+
"max-width": "1280px",
|
|
184
|
+
"margin-left": "auto",
|
|
185
|
+
"margin-right": "auto",
|
|
186
|
+
"padding-left": "none",
|
|
187
|
+
"padding-right": "none",
|
|
188
|
+
},
|
|
189
|
+
header: {
|
|
190
|
+
"text-align": "center",
|
|
191
|
+
"margin-bottom": "3xl",
|
|
192
|
+
},
|
|
193
|
+
description: {
|
|
194
|
+
"font-size": "lg",
|
|
195
|
+
color: "text-2",
|
|
196
|
+
"line-height": "1.6",
|
|
197
|
+
"max-width": "800px",
|
|
198
|
+
"margin-left": "auto",
|
|
199
|
+
"margin-right": "auto",
|
|
200
|
+
mobile: {
|
|
201
|
+
"font-size": "base",
|
|
202
|
+
},
|
|
203
|
+
},
|
|
204
|
+
main_content: {
|
|
205
|
+
display: "flex",
|
|
206
|
+
"align-items": "start",
|
|
207
|
+
"column-gap": "xl",
|
|
208
|
+
"margin-bottom": "3xl",
|
|
209
|
+
mobile: {
|
|
210
|
+
"flex-direction": "column",
|
|
211
|
+
"row-gap": "xl",
|
|
212
|
+
},
|
|
213
|
+
"justify-content": "start",
|
|
214
|
+
},
|
|
215
|
+
left_container: {
|
|
216
|
+
flex: "1",
|
|
217
|
+
},
|
|
218
|
+
image_wrapper: {
|
|
219
|
+
position: "relative",
|
|
220
|
+
"border-radius": "lg",
|
|
221
|
+
overflow: "hidden",
|
|
222
|
+
width: "30%",
|
|
223
|
+
height: "100%",
|
|
224
|
+
},
|
|
225
|
+
main_image: {
|
|
226
|
+
"border-radius": "lg",
|
|
227
|
+
"object-fit": "cover",
|
|
228
|
+
width: "400px",
|
|
229
|
+
height: "400px",
|
|
230
|
+
},
|
|
231
|
+
overlay_container: {
|
|
232
|
+
position: "absolute",
|
|
233
|
+
bottom: "0",
|
|
234
|
+
left: "0",
|
|
235
|
+
right: "0",
|
|
236
|
+
"padding-top": "lg",
|
|
237
|
+
"padding-bottom": "lg",
|
|
238
|
+
"padding-left": "lg",
|
|
239
|
+
"padding-right": "lg",
|
|
240
|
+
display: "block",
|
|
241
|
+
"flex-direction": "column",
|
|
242
|
+
"row-gap": "xs",
|
|
243
|
+
},
|
|
244
|
+
overlay_label: {
|
|
245
|
+
opacity: "0.8",
|
|
246
|
+
color: "text-1",
|
|
247
|
+
"font-weight": 700,
|
|
248
|
+
"font-size": "lg",
|
|
249
|
+
},
|
|
250
|
+
overlay_value: {},
|
|
251
|
+
right_container: {
|
|
252
|
+
flex: "1",
|
|
253
|
+
display: "flex",
|
|
254
|
+
"flex-direction": "column",
|
|
255
|
+
"row-gap": "lg",
|
|
256
|
+
},
|
|
257
|
+
team_description: {
|
|
258
|
+
"font-size": "base",
|
|
259
|
+
color: "text-2",
|
|
260
|
+
"line-height": "1.6",
|
|
261
|
+
},
|
|
262
|
+
cta_wrapper: {
|
|
263
|
+
display: "flex",
|
|
264
|
+
},
|
|
265
|
+
cta: {},
|
|
266
|
+
team_members_levoGroup: {
|
|
267
|
+
display: "flex",
|
|
268
|
+
"flex-direction": "column",
|
|
269
|
+
"row-gap": "2xl",
|
|
270
|
+
},
|
|
271
|
+
"team_members.*.card": {
|
|
272
|
+
"background-color": "background-2",
|
|
273
|
+
"border-radius": "lg",
|
|
274
|
+
"border-width": "1px",
|
|
275
|
+
"border-color": "border",
|
|
276
|
+
overflow: "hidden",
|
|
277
|
+
},
|
|
278
|
+
"team_members.*.content_wrapper": {
|
|
279
|
+
display: "flex",
|
|
280
|
+
"align-items": "stretch",
|
|
281
|
+
mobile: {
|
|
282
|
+
"flex-direction": "column",
|
|
283
|
+
},
|
|
284
|
+
},
|
|
285
|
+
"team_members.*.left_container": {
|
|
286
|
+
flex: "1",
|
|
287
|
+
position: "relative",
|
|
288
|
+
},
|
|
289
|
+
"team_members.*.image_wrapper": {
|
|
290
|
+
position: "relative",
|
|
291
|
+
height: "300px",
|
|
292
|
+
mobile: {
|
|
293
|
+
height: "250px",
|
|
294
|
+
},
|
|
295
|
+
},
|
|
296
|
+
"team_members.*.member_image": {
|
|
297
|
+
width: "100%",
|
|
298
|
+
height: "100%",
|
|
299
|
+
"object-fit": "cover",
|
|
300
|
+
},
|
|
301
|
+
"team_members.*.overlay_container": {
|
|
302
|
+
position: "absolute",
|
|
303
|
+
bottom: "0",
|
|
304
|
+
left: "0",
|
|
305
|
+
right: "0",
|
|
306
|
+
"background-color": "rgba(0, 0, 0, 0.7)",
|
|
307
|
+
"padding-top": "base",
|
|
308
|
+
"padding-bottom": "base",
|
|
309
|
+
"padding-left": "base",
|
|
310
|
+
"padding-right": "base",
|
|
311
|
+
display: "flex",
|
|
312
|
+
"flex-direction": "column",
|
|
313
|
+
"row-gap": "xs",
|
|
314
|
+
},
|
|
315
|
+
"team_members.*.overlay_label": {
|
|
316
|
+
"font-size": "xs",
|
|
317
|
+
"font-weight": "500",
|
|
318
|
+
color: "text-1",
|
|
319
|
+
opacity: "0.8",
|
|
320
|
+
},
|
|
321
|
+
"team_members.*.overlay_value": {
|
|
322
|
+
"font-size": "lg",
|
|
323
|
+
"font-weight": "600",
|
|
324
|
+
color: "text-1",
|
|
325
|
+
},
|
|
326
|
+
"team_members.*.right_container": {
|
|
327
|
+
flex: "1",
|
|
328
|
+
display: "flex",
|
|
329
|
+
"flex-direction": "column",
|
|
330
|
+
"justify-content": "center",
|
|
331
|
+
"padding-top": "2xl",
|
|
332
|
+
"padding-bottom": "2xl",
|
|
333
|
+
"padding-left": "2xl",
|
|
334
|
+
"padding-right": "2xl",
|
|
335
|
+
"row-gap": "lg",
|
|
336
|
+
},
|
|
337
|
+
"team_members.*.member_description": {
|
|
338
|
+
"font-size": "base",
|
|
339
|
+
color: "text-2",
|
|
340
|
+
"line-height": "1.6",
|
|
341
|
+
flex: "1",
|
|
342
|
+
},
|
|
343
|
+
"team_members.*.cta_wrapper": {
|
|
344
|
+
display: "flex",
|
|
345
|
+
},
|
|
346
|
+
"team_members.*.cta": {
|
|
347
|
+
"background-color": "background-1",
|
|
348
|
+
color: "text-1",
|
|
349
|
+
"padding-top": "base",
|
|
350
|
+
"padding-bottom": "base",
|
|
351
|
+
"padding-left": "2xl",
|
|
352
|
+
"padding-right": "2xl",
|
|
353
|
+
"border-radius": "base",
|
|
354
|
+
"border-width": "1px",
|
|
355
|
+
"border-color": "border",
|
|
356
|
+
"align-self": "flex-start",
|
|
357
|
+
},
|
|
358
|
+
},
|
|
359
|
+
content: DEFAULT_CONTENT,
|
|
360
|
+
config: {
|
|
361
|
+
title: {
|
|
362
|
+
selectedVariants: {
|
|
363
|
+
Heading_Level: "H2",
|
|
364
|
+
},
|
|
365
|
+
},
|
|
366
|
+
},
|
|
367
|
+
},
|
|
368
|
+
],
|
|
369
|
+
};
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import {
|
|
2
|
+
type ILevoBlockBaseProps,
|
|
3
|
+
Box,
|
|
4
|
+
Button,
|
|
5
|
+
Container,
|
|
6
|
+
Image,
|
|
7
|
+
Section,
|
|
8
|
+
Typography,
|
|
9
|
+
} from "@levo-so/studio";
|
|
10
|
+
|
|
11
|
+
import type { ITeam5Content } from "./team-5.schema";
|
|
12
|
+
|
|
13
|
+
const Team5: React.FC<ILevoBlockBaseProps<ITeam5Content>> = () => {
|
|
14
|
+
return (
|
|
15
|
+
<Section elementKey="layout">
|
|
16
|
+
<Container elementKey="container">
|
|
17
|
+
<Box elementKey="main_content">
|
|
18
|
+
<Box elementKey="image_wrapper">
|
|
19
|
+
<Image elementKey="main_image" alt="Team member" />
|
|
20
|
+
<Box elementKey="overlay_container">
|
|
21
|
+
<Typography elementKey="overlay_label" />
|
|
22
|
+
<Typography elementKey="overlay_value" />
|
|
23
|
+
</Box>
|
|
24
|
+
</Box>
|
|
25
|
+
|
|
26
|
+
<Box elementKey="right_container">
|
|
27
|
+
<Typography elementKey="team_description" />
|
|
28
|
+
<Box elementKey="cta_wrapper">
|
|
29
|
+
<Button elementKey="cta" />
|
|
30
|
+
</Box>
|
|
31
|
+
</Box>
|
|
32
|
+
</Box>
|
|
33
|
+
</Container>
|
|
34
|
+
</Section>
|
|
35
|
+
);
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
export default Team5;
|