@levo-so/blocks 0.1.59 → 0.1.61

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (245) hide show
  1. package/package.json +6 -6
  2. package/src/blocks/about-us/about-us-1.schema.ts +60 -58
  3. package/src/blocks/about-us/about-us-1.tsx +2 -4
  4. package/src/blocks/about-us/about-us-2.schema.ts +165 -42
  5. package/src/blocks/about-us/about-us-2.tsx +7 -13
  6. package/src/blocks/blogs/blog-listing-1.schema.ts +7 -14
  7. package/src/blocks/blogs/blog-listing-1.tsx +27 -36
  8. package/src/blocks/blogs/blog-listing-2.schema.ts +17 -34
  9. package/src/blocks/blogs/blog-listing-2.tsx +21 -27
  10. package/src/blocks/blogs/blog-listing-3.schema.ts +32 -64
  11. package/src/blocks/blogs/blog-listing-3.tsx +21 -27
  12. package/src/blocks/blogs/blog-post-1.schema.ts +9 -18
  13. package/src/blocks/blogs/blog-post-1.tsx +3 -14
  14. package/src/blocks/calendar/calendar-1.schema.ts +351 -180
  15. package/src/blocks/calendar/calendar-1.tsx +60 -25
  16. package/src/blocks/cards/cards-10.schema.ts +278 -331
  17. package/src/blocks/cards/cards-10.tsx +18 -15
  18. package/src/blocks/cards/cards-11.schema.ts +178 -356
  19. package/src/blocks/cards/cards-11.tsx +5 -11
  20. package/src/blocks/cards/cards-12.schema.ts +110 -196
  21. package/src/blocks/cards/cards-12.tsx +4 -10
  22. package/src/blocks/cards/cards-13.schema.ts +131 -120
  23. package/src/blocks/cards/cards-13.tsx +4 -6
  24. package/src/blocks/cards/cards-14.schema.ts +51 -154
  25. package/src/blocks/cards/cards-14.tsx +5 -11
  26. package/src/blocks/cards/cards-15.schema.ts +48 -32
  27. package/src/blocks/cards/cards-15.tsx +15 -6
  28. package/src/blocks/cards/cards-2.schema.ts +76 -88
  29. package/src/blocks/cards/cards-2.tsx +12 -17
  30. package/src/blocks/cards/cards-3.schema.ts +68 -70
  31. package/src/blocks/cards/cards-3.tsx +7 -13
  32. package/src/blocks/cards/cards-4.schema.ts +160 -115
  33. package/src/blocks/cards/cards-4.tsx +22 -17
  34. package/src/blocks/cards/cards-5.schema.ts +76 -70
  35. package/src/blocks/cards/cards-5.tsx +10 -10
  36. package/src/blocks/cards/cards-6.schema.ts +755 -985
  37. package/src/blocks/cards/cards-6.tsx +17 -9
  38. package/src/blocks/cards/cards-7.schema.ts +754 -2250
  39. package/src/blocks/cards/cards-7.tsx +18 -24
  40. package/src/blocks/cards/cards-8.schema.ts +171 -363
  41. package/src/blocks/cards/cards-8.tsx +15 -8
  42. package/src/blocks/cards/cards-9.schema.ts +283 -329
  43. package/src/blocks/cards/cards-9.tsx +28 -12
  44. package/src/blocks/carousel/carousel-1.schema.ts +418 -49
  45. package/src/blocks/carousel/carousel-1.tsx +8 -8
  46. package/src/blocks/carousel/carousel-2.schema.ts +153 -127
  47. package/src/blocks/carousel/carousel-2.tsx +16 -20
  48. package/src/blocks/community/community-1.schema.ts +612 -0
  49. package/src/blocks/community/community-1.tsx +557 -0
  50. package/src/blocks/community/community-post-1.schema.ts +408 -0
  51. package/src/blocks/community/community-post-1.tsx +405 -0
  52. package/src/blocks/contact-us/contact-us-1.schema.ts +25 -43
  53. package/src/blocks/contact-us/contact-us-1.tsx +2 -12
  54. package/src/blocks/contact-us/contact-us-2.schema.ts +39 -17
  55. package/src/blocks/contact-us/contact-us-2.tsx +21 -32
  56. package/src/blocks/content/content-1.schema.ts +163 -234
  57. package/src/blocks/content/content-1.tsx +46 -43
  58. package/src/blocks/content/content-2.schema.ts +117 -35
  59. package/src/blocks/content/content-2.tsx +19 -7
  60. package/src/blocks/content/content-3.schema.ts +215 -205
  61. package/src/blocks/content/content-3.tsx +14 -18
  62. package/src/blocks/content/content-4.schema.ts +105 -89
  63. package/src/blocks/content/content-4.tsx +10 -18
  64. package/src/blocks/content/content-5.schema.ts +301 -278
  65. package/src/blocks/content/content-5.tsx +23 -16
  66. package/src/blocks/content/content-6.schema.ts +432 -250
  67. package/src/blocks/content/content-6.tsx +24 -19
  68. package/src/blocks/content/content-7.schema.ts +200 -197
  69. package/src/blocks/content/content-7.tsx +29 -21
  70. package/src/blocks/content/content-8.schema.ts +28 -23
  71. package/src/blocks/content/content-8.tsx +3 -3
  72. package/src/blocks/content/content-9.schema.ts +64 -2208
  73. package/src/blocks/content/content-9.tsx +31 -43
  74. package/src/blocks/cta/cta-1.schema.ts +23 -128
  75. package/src/blocks/cta/cta-2.schema.ts +46 -69
  76. package/src/blocks/cta/cta-2.tsx +2 -6
  77. package/src/blocks/cta/cta-3.schema.ts +77 -72
  78. package/src/blocks/cta/cta-3.tsx +2 -6
  79. package/src/blocks/embed/embed-1.schema.ts +30 -52
  80. package/src/blocks/embed/embed-1.tsx +1 -9
  81. package/src/blocks/event/ClientOnly.tsx +1 -4
  82. package/src/blocks/event/event-details.schema.ts +23 -32
  83. package/src/blocks/event/event-details.tsx +9 -23
  84. package/src/blocks/event/event-listing-2.schema.ts +19 -38
  85. package/src/blocks/event/event-listing-2.tsx +29 -38
  86. package/src/blocks/event/event-listing-3.schema.ts +10 -20
  87. package/src/blocks/event/event-listing-3.tsx +26 -30
  88. package/src/blocks/event/event-listing-4.schema.ts +40 -80
  89. package/src/blocks/event/event-listing-4.tsx +22 -28
  90. package/src/blocks/event/event-listing.schema.ts +12 -24
  91. package/src/blocks/event/event-listing.tsx +26 -30
  92. package/src/blocks/faq/faq-1.schema.ts +150 -112
  93. package/src/blocks/faq/faq-1.tsx +31 -33
  94. package/src/blocks/faq/faq-2.schema.ts +132 -77
  95. package/src/blocks/faq/faq-2.tsx +21 -11
  96. package/src/blocks/faq/faq-3.schema.ts +178 -107
  97. package/src/blocks/faq/faq-3.tsx +30 -22
  98. package/src/blocks/features/features-1/features-1.schema.ts +11 -3
  99. package/src/blocks/features/features-1/features-1.tsx +12 -5
  100. package/src/blocks/features/features-1/variants/default.ts +176 -62
  101. package/src/blocks/features/features-1/variants/index.ts +1 -1
  102. package/src/blocks/features/features-1/variants/stylized-cards-v1.ts +392 -54
  103. package/src/blocks/features/features-1/variants/stylized-cards-v2.ts +119 -103
  104. package/src/blocks/features/features-1/variants/stylized-cards-v3.ts +16 -199
  105. package/src/blocks/features/features-2.schema.ts +149 -48
  106. package/src/blocks/features/features-2.tsx +18 -12
  107. package/src/blocks/features/features-3.schema.ts +255 -68
  108. package/src/blocks/features/features-3.tsx +25 -15
  109. package/src/blocks/features/features-4.schema.ts +367 -188
  110. package/src/blocks/features/features-4.tsx +12 -8
  111. package/src/blocks/features/features-5.schema.ts +195 -200
  112. package/src/blocks/features/features-5.tsx +14 -14
  113. package/src/blocks/features/features-6.schema.ts +230 -215
  114. package/src/blocks/features/features-6.tsx +28 -34
  115. package/src/blocks/filter-listing/filter-listing-1.tsx +12 -36
  116. package/src/blocks/floating-buttons/floating-button-1.schema.ts +100 -0
  117. package/src/blocks/floating-buttons/floating-button-1.tsx +14 -0
  118. package/src/blocks/footer/footer-1.schema.ts +110 -48
  119. package/src/blocks/footer/footer-1.tsx +17 -31
  120. package/src/blocks/footer/footer-2.schema.ts +230 -34
  121. package/src/blocks/footer/footer-2.tsx +19 -29
  122. package/src/blocks/footer/footer-3.schema.ts +335 -59
  123. package/src/blocks/footer/footer-3.tsx +11 -26
  124. package/src/blocks/footer/footer-4.schema.ts +139 -76
  125. package/src/blocks/footer/footer-4.tsx +37 -55
  126. package/src/blocks/footer/footer-5.schema.ts +138 -60
  127. package/src/blocks/footer/footer-5.tsx +16 -30
  128. package/src/blocks/footer/footer-6.schema.ts +62 -149
  129. package/src/blocks/footer/footer-6.tsx +30 -44
  130. package/src/blocks/form/form-1.schema.ts +144 -0
  131. package/src/blocks/form/form-1.tsx +33 -0
  132. package/src/blocks/hero/hero-1.schema.ts +153 -101
  133. package/src/blocks/hero/hero-1.tsx +4 -4
  134. package/src/blocks/hero/hero-10.schema.ts +9 -31
  135. package/src/blocks/hero/hero-10.tsx +4 -4
  136. package/src/blocks/hero/hero-11.schema.ts +196 -89
  137. package/src/blocks/hero/hero-11.tsx +5 -10
  138. package/src/blocks/hero/hero-12.schema.ts +111 -192
  139. package/src/blocks/hero/hero-12.tsx +4 -7
  140. package/src/blocks/hero/hero-13.schema.ts +36 -30
  141. package/src/blocks/hero/hero-13.tsx +1 -1
  142. package/src/blocks/hero/hero-2.schema.ts +30 -58
  143. package/src/blocks/hero/hero-2.tsx +3 -21
  144. package/src/blocks/hero/hero-3.schema.ts +70 -90
  145. package/src/blocks/hero/hero-3.tsx +6 -15
  146. package/src/blocks/hero/hero-4.schema.ts +246 -73
  147. package/src/blocks/hero/hero-4.tsx +22 -16
  148. package/src/blocks/hero/hero-5.schema.ts +104 -47
  149. package/src/blocks/hero/hero-5.tsx +21 -12
  150. package/src/blocks/hero/hero-6.schema.ts +127 -258
  151. package/src/blocks/hero/hero-6.tsx +6 -6
  152. package/src/blocks/hero/hero-7.schema.ts +90 -43
  153. package/src/blocks/hero/hero-7.tsx +6 -4
  154. package/src/blocks/hero/hero-8.schema.ts +342 -138
  155. package/src/blocks/hero/hero-8.tsx +23 -13
  156. package/src/blocks/hero/hero-9.schema.ts +111 -86
  157. package/src/blocks/hero/hero-9.tsx +12 -4
  158. package/src/blocks/index.ts +12 -8
  159. package/src/blocks/jobs/jobs-1.schema.ts +990 -0
  160. package/src/blocks/jobs/jobs-1.tsx +145 -0
  161. package/src/blocks/logos/logos-1.schema.ts +370 -36
  162. package/src/blocks/logos/logos-1.tsx +7 -7
  163. package/src/blocks/navbar/navbar-1.schema.ts +15 -28
  164. package/src/blocks/navbar/navbar-1.tsx +24 -60
  165. package/src/blocks/navbar/navbar-2.schema.ts +14 -28
  166. package/src/blocks/navbar/navbar-2.tsx +26 -56
  167. package/src/blocks/navbar/navbar-3.schema.ts +11 -22
  168. package/src/blocks/navbar/navbar-3.tsx +33 -82
  169. package/src/blocks/navbar/navbar-4.schema.ts +14343 -0
  170. package/src/blocks/navbar/navbar-4.tsx +546 -0
  171. package/src/blocks/polling/polling-1.schema.ts +2 -21
  172. package/src/blocks/polling/polling-1.tsx +24 -39
  173. package/src/blocks/pricing/pricing-1.schema.ts +307 -290
  174. package/src/blocks/pricing/pricing-1.tsx +32 -42
  175. package/src/blocks/products/products-listing-1.schema.ts +115 -36
  176. package/src/blocks/products/products-listing-1.tsx +15 -13
  177. package/src/blocks/products/products-listing-2.schema.ts +178 -220
  178. package/src/blocks/products/products-listing-2.tsx +29 -16
  179. package/src/blocks/products/products-listing-3.schema.ts +412 -154
  180. package/src/blocks/products/products-listing-3.tsx +102 -73
  181. package/src/blocks/profile/profile-1.schema.ts +60 -49
  182. package/src/blocks/profile/profile-1.tsx +5 -10
  183. package/src/blocks/profile/profile-2.schema.ts +71 -92
  184. package/src/blocks/profile/profile-2.tsx +6 -7
  185. package/src/blocks/profile/profile-3.schema.ts +141 -529
  186. package/src/blocks/profile/profile-3.tsx +19 -41
  187. package/src/blocks/{blogs/blog-post-2.schema.ts → profile/profile-4.schema.ts} +75 -97
  188. package/src/blocks/{blogs/blog-post-2.tsx → profile/profile-4.tsx} +32 -61
  189. package/src/blocks/{blogs/blog-post-3.schema.ts → profile/profile-5.schema.ts} +6 -6
  190. package/src/blocks/{blogs/blog-post-3.tsx → profile/profile-5.tsx} +6 -11
  191. package/src/blocks/services/service-1.schema.ts +210 -830
  192. package/src/blocks/services/service-1.tsx +46 -59
  193. package/src/blocks/services/service-2.schema.ts +92 -80
  194. package/src/blocks/services/service-2.tsx +13 -7
  195. package/src/blocks/services/service-3.schema.ts +74 -86
  196. package/src/blocks/services/service-3.tsx +44 -45
  197. package/src/blocks/stats/stats-1.schema.ts +225 -21
  198. package/src/blocks/stats/stats-1.tsx +7 -14
  199. package/src/blocks/stats/stats-2.schema.ts +13 -5
  200. package/src/blocks/stats/stats-2.tsx +12 -15
  201. package/src/blocks/stats/variants/default.ts +59 -41
  202. package/src/blocks/stats/variants/hero.ts +64 -31
  203. package/src/blocks/stats/variants/index.ts +1 -1
  204. package/src/blocks/tabs/tab-1.schema.ts +103 -409
  205. package/src/blocks/tabs/tab-1.tsx +47 -53
  206. package/src/blocks/tabs/tab-2.schema.ts +207 -290
  207. package/src/blocks/tabs/tab-2.tsx +20 -9
  208. package/src/blocks/team/team-1.schema.ts +593 -76
  209. package/src/blocks/team/team-1.tsx +16 -22
  210. package/src/blocks/team/team-2.schema.ts +621 -1453
  211. package/src/blocks/team/team-2.tsx +19 -34
  212. package/src/blocks/team/team-3.schema.ts +127 -78
  213. package/src/blocks/team/team-3.tsx +9 -14
  214. package/src/blocks/team/team-4.schema.ts +197 -63
  215. package/src/blocks/team/team-4.tsx +25 -26
  216. package/src/blocks/team/team-5.schema.ts +65 -54
  217. package/src/blocks/team/team-5.tsx +13 -4
  218. package/src/blocks/termsAndPrivacy/terms-and-conditions-1.schema.ts +9 -26
  219. package/src/blocks/termsAndPrivacy/terms-and-conditions-1.tsx +4 -6
  220. package/src/blocks/testimonial/testimonial-1.schema.ts +713 -65
  221. package/src/blocks/testimonial/testimonial-1.tsx +12 -23
  222. package/src/blocks/testimonial/testimonial-2.schema.ts +1316 -354
  223. package/src/blocks/testimonial/testimonial-2.tsx +21 -37
  224. package/src/blocks/testimonial/testimonial-3.schema.ts +210 -74
  225. package/src/blocks/testimonial/testimonial-3.tsx +17 -27
  226. package/src/blocks/testimonial/testimonial-4.schema.ts +353 -1049
  227. package/src/blocks/testimonial/testimonial-4.tsx +16 -34
  228. package/src/blocks/testimonial/testimonial-5/variants/default.ts +155 -171
  229. package/src/blocks/testimonial/testimonial-5/variants/index.ts +1 -1
  230. package/src/blocks/testimonial/testimonial-5/variants/testimonialWithLogo.ts +201 -501
  231. package/src/blocks/testimonial/testimonial-5/variants/testimonialWithRatings.ts +166 -316
  232. package/src/blocks/testimonial/testimonial-5.schema.ts +2 -6
  233. package/src/blocks/testimonial/testimonial-5.tsx +15 -25
  234. package/src/blocks/testimonial/testimonial-6.schema.ts +226 -315
  235. package/src/blocks/testimonial/testimonial-6.tsx +9 -25
  236. package/src/blocks/testimonial/testimonial-7.schema.ts +74 -45
  237. package/src/blocks/testimonial/testimonial-7.tsx +16 -27
  238. package/src/blocks/timeline/timeline-1.schema.ts +166 -153
  239. package/src/blocks/timeline/timeline-1.tsx +6 -7
  240. package/src/blocks/users/edit-profile.schema.ts +56 -44
  241. package/src/blocks/users/edit-profile.tsx +23 -28
  242. package/src/constants/index.ts +16 -0
  243. package/src/index.ts +1 -1
  244. package/src/schemas/blocks.ts +17 -5
  245. package/src/schemas/categories.ts +26 -2
@@ -1,19 +1,18 @@
1
1
  import {
2
2
  Box,
3
3
  Container,
4
+ Form,
5
+ Heading,
4
6
  Icon,
7
+ type ILevoBlockBaseProps,
5
8
  Image,
6
9
  Section,
7
10
  Typography,
8
- Form,
9
- type ILevoBlockBaseProps,
10
11
  } from "@levo-so/studio";
11
12
 
12
- import { type IFooter6Content } from "./footer-6.schema";
13
+ import type { IFooter6Content } from "./footer-6.schema";
13
14
 
14
- const Footer6: React.FC<ILevoBlockBaseProps<IFooter6Content>> = ({
15
- content,
16
- }) => (
15
+ const Footer6: React.FC<ILevoBlockBaseProps<IFooter6Content>> = ({ content }) => (
17
16
  <Section elementKey="layout">
18
17
  <Container elementKey="container">
19
18
  <Box elementKey="contentWrapper">
@@ -21,23 +20,19 @@ const Footer6: React.FC<ILevoBlockBaseProps<IFooter6Content>> = ({
21
20
  <Image elementKey="logo" height={26} width={26} alt="footer-logo" />
22
21
  <Typography elementKey="logoDescription" />
23
22
  <Box elementKey="icon_links_levoGroup" data-levo_group>
24
- {((content as any)?.icon_links ?? [])?.map(
25
- (_: any, index: number) => (
26
- <Box
27
- key={`footer-6-icon-${index}`}
28
- data-levo_group_item
29
- elementKey={`icon_links.${index}.content_wrapper`}
30
- >
31
- <Icon elementKey={`icon_links.${index}.icon`} />
32
- <Box elementKey={`icon_links.${index}.text_wrapper`}>
33
- <Typography elementKey={`icon_links.${index}.label`} />
34
- <Typography
35
- elementKey={`icon_links.${index}.description`}
36
- />
37
- </Box>
23
+ {((content as any)?.icon_links ?? [])?.map((_: any, index: number) => (
24
+ <Box
25
+ key={`footer-6-icon-${index}`}
26
+ data-levo_group_item
27
+ elementKey={`icon_links.${index}.content_wrapper`}
28
+ >
29
+ <Icon elementKey={`icon_links.${index}.icon`} />
30
+ <Box elementKey={`icon_links.${index}.text_wrapper`}>
31
+ <Typography elementKey={`icon_links.${index}.label`} />
32
+ <Typography elementKey={`icon_links.${index}.description`} />
38
33
  </Box>
39
- ),
40
- )}
34
+ </Box>
35
+ ))}
41
36
  </Box>
42
37
  </Box>
43
38
 
@@ -48,23 +43,16 @@ const Footer6: React.FC<ILevoBlockBaseProps<IFooter6Content>> = ({
48
43
  key={`footer-6-links-${index}`}
49
44
  data-levo_group_item
50
45
  >
51
- <Typography elementKey={`links.${index}.category`} />
52
- <Box
53
- elementKey={`links.${index}.links_levoGroup`}
54
- data-levo_group
55
- >
46
+ <Heading elementKey={`links.${index}.category`} />
47
+ <Box elementKey={`links.${index}.links_levoGroup`} data-levo_group>
56
48
  {(link?.links ?? [])?.map((subLink: any, subIndex: number) => (
57
49
  <Box
58
50
  elementKey={`links.${index}.links.${subIndex}.wrapper`}
59
51
  key={`footer-6-links-${index}-${subIndex}`}
60
52
  data-levo_group_item
61
53
  >
62
- <Icon
63
- elementKey={`links.${index}.links.${subIndex}.icon`}
64
- />
65
- <Typography
66
- elementKey={`links.${index}.links.${subIndex}.cta`}
67
- />
54
+ <Icon elementKey={`links.${index}.links.${subIndex}.icon`} />
55
+ <Typography elementKey={`links.${index}.links.${subIndex}.cta`} />
68
56
  </Box>
69
57
  ))}
70
58
  </Box>
@@ -75,17 +63,15 @@ const Footer6: React.FC<ILevoBlockBaseProps<IFooter6Content>> = ({
75
63
  <Form elementKey="contact_form" />
76
64
  <Typography elementKey="social_icons_title" />
77
65
  <Box data-levo_group elementKey={`social_icon_links_levoGroup`}>
78
- {(content?.social_icon_links ?? []).map(
79
- (_: unknown, linkIndex: number) => (
80
- <Box
81
- data-levo_group_item
82
- elementKey={`social_icon_links.${linkIndex}.wrapper`}
83
- key={`footer-6-social-icon-${linkIndex}`}
84
- >
85
- <Icon elementKey={`social_icon_links.${linkIndex}.icon`} />
86
- </Box>
87
- ),
88
- )}
66
+ {(content?.social_icon_links ?? []).map((_: unknown, linkIndex: number) => (
67
+ <Box
68
+ data-levo_group_item
69
+ elementKey={`social_icon_links.${linkIndex}.wrapper`}
70
+ key={`footer-6-social-icon-${linkIndex}`}
71
+ >
72
+ <Icon elementKey={`social_icon_links.${linkIndex}.icon`} />
73
+ </Box>
74
+ ))}
89
75
  </Box>
90
76
  </Box>
91
77
  </Box>
@@ -0,0 +1,144 @@
1
+ import type { IBlock } from "@levo-so/studio";
2
+
3
+ const DEFAULT_CONTENT = {
4
+ layout: null,
5
+ container: null,
6
+ title: "Survey Form",
7
+ description:
8
+ "Ready to discuss your financial ambitions? Connect with our team and let's build your future together.",
9
+ ctas: [{ cta: "Learn More" }, { cta: "Contact Us" }],
10
+ form: null,
11
+ };
12
+
13
+ export type IForm1Content = typeof DEFAULT_CONTENT;
14
+
15
+ export const Form1: IBlock = {
16
+ category_id: "form",
17
+ title: "Form 1",
18
+ key: "form-1",
19
+ version: "v1",
20
+ content_schema: [
21
+ {
22
+ key: "layout",
23
+ label: "Layout",
24
+ field_interface: "LayoutWidget",
25
+ },
26
+ {
27
+ key: "container",
28
+ label: "Container",
29
+ field_interface: "ContainerWidget",
30
+ },
31
+ {
32
+ key: "header",
33
+ label: "Layout Content Wrapper",
34
+ field_interface: "BoxWidget",
35
+ },
36
+ {
37
+ key: "text-wrapper",
38
+ label: "Text Wrapper",
39
+ field_interface: "BoxWidget",
40
+ },
41
+ {
42
+ key: "title",
43
+ label: "Title",
44
+ field_interface: "HeadingWidget",
45
+ },
46
+ {
47
+ key: "description",
48
+ label: "Description",
49
+ field_interface: "TypographyWidget",
50
+ },
51
+ {
52
+ key: "ctas",
53
+ label: "CTAs",
54
+ field_interface: "BoxWidget",
55
+ kind: "group",
56
+ fields: [
57
+ {
58
+ key: "cta",
59
+ label: "CTA",
60
+ field_interface: "ButtonWidget",
61
+ },
62
+ ],
63
+ },
64
+ {
65
+ key: "form",
66
+ label: "Form",
67
+ field_interface: "FormWidget",
68
+ },
69
+ ],
70
+ layouts: [
71
+ {
72
+ key: "default",
73
+ title: "Default",
74
+ styles: {
75
+ layout: {},
76
+ container: {},
77
+ title: {
78
+ tablet: {
79
+ "text-align": "center",
80
+ },
81
+ },
82
+ description: {
83
+ tablet: {
84
+ "text-align": "center",
85
+ },
86
+ },
87
+ ctas_levoGroup: {
88
+ display: "flex",
89
+ gap: "3xl",
90
+ "column-gap": "md",
91
+ },
92
+ form: {
93
+ "border-style": "solid",
94
+ "border-width": "1px",
95
+ "border-color": "var(--color-border)",
96
+ "border-radius": "xl",
97
+ },
98
+ header: {
99
+ display: "flex",
100
+ "align-items": "center",
101
+ "justify-content": "space-between",
102
+ "margin-bottom": "7xl",
103
+ tablet: {
104
+ "flex-direction": "column",
105
+ "row-gap": "md",
106
+ },
107
+ mobile: {
108
+ "row-gap": "base",
109
+ },
110
+ },
111
+ },
112
+ content: DEFAULT_CONTENT,
113
+ config: {
114
+ title: {
115
+ heading: {
116
+ level: 2,
117
+ },
118
+ selectedVariants: {
119
+ Heading_Level: "H4",
120
+ },
121
+ },
122
+ ctas: [
123
+ {
124
+ cta: {
125
+ selectedVariants: {},
126
+ },
127
+ },
128
+ {
129
+ cta: {
130
+ selectedVariants: {
131
+ Button_Variants: "Secondary",
132
+ },
133
+ },
134
+ },
135
+ ],
136
+ description: {
137
+ selectedVariants: {
138
+ Typography_Variants: "Small",
139
+ },
140
+ },
141
+ },
142
+ },
143
+ ],
144
+ };
@@ -0,0 +1,33 @@
1
+ import {
2
+ Box,
3
+ Button,
4
+ Container,
5
+ Form,
6
+ Heading,
7
+ type ILevoBlockBaseProps,
8
+ Section,
9
+ Typography,
10
+ } from "@levo-so/studio";
11
+
12
+ import type { IForm1Content } from "./form-1.schema";
13
+
14
+ const Form1: React.FC<ILevoBlockBaseProps<IForm1Content>> = ({ content }) => (
15
+ <Section elementKey="layout">
16
+ <Container elementKey="container">
17
+ <Box elementKey="header">
18
+ <Box elementKey="text-wrapper">
19
+ <Heading elementKey="title" />
20
+ <Typography elementKey="description" />
21
+ </Box>
22
+ <Box elementKey="ctas_levoGroup" data-levo_group>
23
+ {(content.ctas ?? []).map((_, index) => (
24
+ <Button elementKey={`ctas.${index}.cta`} key={`cta-${index}`} data-levo_group_item />
25
+ ))}
26
+ </Box>
27
+ </Box>
28
+ <Form elementKey="form" />
29
+ </Container>
30
+ </Section>
31
+ );
32
+
33
+ export default Form1;