@levo-so/blocks 0.1.60 → 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 (230) hide show
  1. package/package.json +13 -14
  2. package/src/blocks/about-us/about-us-1.schema.ts +15 -30
  3. package/src/blocks/about-us/about-us-1.tsx +2 -4
  4. package/src/blocks/about-us/about-us-2.schema.ts +24 -48
  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 +10 -21
  8. package/src/blocks/blogs/blog-listing-2.schema.ts +17 -34
  9. package/src/blocks/blogs/blog-listing-2.tsx +4 -12
  10. package/src/blocks/blogs/blog-listing-3.schema.ts +32 -64
  11. package/src/blocks/blogs/blog-listing-3.tsx +4 -12
  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 +95 -6
  15. package/src/blocks/calendar/calendar-1.tsx +33 -29
  16. package/src/blocks/cards/cards-10.schema.ts +62 -124
  17. package/src/blocks/cards/cards-10.tsx +9 -14
  18. package/src/blocks/cards/cards-11.schema.ts +69 -138
  19. package/src/blocks/cards/cards-11.tsx +5 -11
  20. package/src/blocks/cards/cards-12.schema.ts +7 -14
  21. package/src/blocks/cards/cards-12.tsx +4 -10
  22. package/src/blocks/cards/cards-13.schema.ts +40 -80
  23. package/src/blocks/cards/cards-13.tsx +4 -6
  24. package/src/blocks/cards/cards-14.schema.ts +7 -14
  25. package/src/blocks/cards/cards-14.tsx +5 -11
  26. package/src/blocks/cards/cards-15.schema.ts +7 -14
  27. package/src/blocks/cards/cards-15.tsx +2 -4
  28. package/src/blocks/cards/cards-2.schema.ts +7 -14
  29. package/src/blocks/cards/cards-2.tsx +2 -15
  30. package/src/blocks/cards/cards-3.schema.ts +7 -14
  31. package/src/blocks/cards/cards-3.tsx +7 -13
  32. package/src/blocks/cards/cards-4.schema.ts +13 -26
  33. package/src/blocks/cards/cards-4.tsx +9 -15
  34. package/src/blocks/cards/cards-5.schema.ts +17 -34
  35. package/src/blocks/cards/cards-5.tsx +1 -9
  36. package/src/blocks/cards/cards-6.schema.ts +52 -104
  37. package/src/blocks/cards/cards-6.tsx +12 -20
  38. package/src/blocks/cards/cards-7.schema.ts +48 -96
  39. package/src/blocks/cards/cards-7.tsx +8 -27
  40. package/src/blocks/cards/cards-8.schema.ts +9 -20
  41. package/src/blocks/cards/cards-8.tsx +5 -11
  42. package/src/blocks/cards/cards-9.schema.ts +41 -82
  43. package/src/blocks/cards/cards-9.tsx +14 -22
  44. package/src/blocks/carousel/carousel-1.schema.ts +64 -128
  45. package/src/blocks/carousel/carousel-1.tsx +6 -8
  46. package/src/blocks/carousel/carousel-2.schema.ts +26 -52
  47. package/src/blocks/carousel/carousel-2.tsx +11 -23
  48. package/src/blocks/community/community-1.schema.ts +78 -32
  49. package/src/blocks/community/community-1.tsx +417 -550
  50. package/src/blocks/community/community-post-1.schema.ts +21 -30
  51. package/src/blocks/community/community-post-1.tsx +334 -84
  52. package/src/blocks/contact-us/contact-us-1.schema.ts +8 -16
  53. package/src/blocks/contact-us/contact-us-1.tsx +2 -12
  54. package/src/blocks/contact-us/contact-us-2.tsx +20 -31
  55. package/src/blocks/content/content-1.schema.ts +21 -42
  56. package/src/blocks/content/content-1.tsx +10 -17
  57. package/src/blocks/content/content-2.schema.ts +29 -58
  58. package/src/blocks/content/content-2.tsx +4 -4
  59. package/src/blocks/content/content-3.tsx +13 -29
  60. package/src/blocks/content/content-4.schema.ts +23 -46
  61. package/src/blocks/content/content-4.tsx +8 -17
  62. package/src/blocks/content/content-5.schema.ts +29 -24
  63. package/src/blocks/content/content-5.tsx +13 -27
  64. package/src/blocks/content/content-6.schema.ts +46 -94
  65. package/src/blocks/content/content-6.tsx +14 -31
  66. package/src/blocks/content/content-7.schema.ts +35 -72
  67. package/src/blocks/content/content-7.tsx +15 -31
  68. package/src/blocks/content/content-8.schema.ts +1 -6
  69. package/src/blocks/content/content-8.tsx +3 -3
  70. package/src/blocks/content/content-9.tsx +26 -41
  71. package/src/blocks/cta/cta-1.schema.ts +10 -20
  72. package/src/blocks/cta/cta-2.schema.ts +14 -28
  73. package/src/blocks/cta/cta-2.tsx +2 -6
  74. package/src/blocks/cta/cta-3.schema.ts +24 -50
  75. package/src/blocks/cta/cta-3.tsx +2 -6
  76. package/src/blocks/embed/embed-1.tsx +1 -9
  77. package/src/blocks/event/ClientOnly.tsx +1 -4
  78. package/src/blocks/event/event-details.schema.ts +16 -32
  79. package/src/blocks/event/event-details.tsx +8 -23
  80. package/src/blocks/event/event-listing-2.schema.ts +19 -38
  81. package/src/blocks/event/event-listing-2.tsx +12 -23
  82. package/src/blocks/event/event-listing-3.schema.ts +10 -20
  83. package/src/blocks/event/event-listing-3.tsx +9 -15
  84. package/src/blocks/event/event-listing-4.schema.ts +40 -80
  85. package/src/blocks/event/event-listing-4.tsx +5 -13
  86. package/src/blocks/event/event-listing.schema.ts +12 -24
  87. package/src/blocks/event/event-listing.tsx +9 -15
  88. package/src/blocks/faq/faq-1.schema.ts +8 -16
  89. package/src/blocks/faq/faq-1.tsx +19 -30
  90. package/src/blocks/faq/faq-2.schema.ts +8 -16
  91. package/src/blocks/faq/faq-2.tsx +11 -10
  92. package/src/blocks/faq/faq-3.schema.ts +9 -18
  93. package/src/blocks/faq/faq-3.tsx +11 -19
  94. package/src/blocks/features/features-1/features-1.tsx +2 -4
  95. package/src/blocks/features/features-1/variants/default.ts +4 -8
  96. package/src/blocks/features/features-1/variants/index.ts +1 -1
  97. package/src/blocks/features/features-2.schema.ts +32 -64
  98. package/src/blocks/features/features-2.tsx +8 -10
  99. package/src/blocks/features/features-3.schema.ts +32 -64
  100. package/src/blocks/features/features-3.tsx +7 -16
  101. package/src/blocks/features/features-4.schema.ts +16 -32
  102. package/src/blocks/features/features-4.tsx +3 -7
  103. package/src/blocks/features/features-5.schema.ts +1 -2
  104. package/src/blocks/features/features-5.tsx +6 -17
  105. package/src/blocks/features/features-6.schema.ts +32 -64
  106. package/src/blocks/features/features-6.tsx +16 -36
  107. package/src/blocks/filter-listing/filter-listing-1.tsx +12 -36
  108. package/src/blocks/floating-buttons/floating-button-1.schema.ts +5 -10
  109. package/src/blocks/floating-buttons/floating-button-1.tsx +3 -9
  110. package/src/blocks/footer/footer-1.schema.ts +8 -16
  111. package/src/blocks/footer/footer-1.tsx +15 -30
  112. package/src/blocks/footer/footer-2.schema.ts +8 -16
  113. package/src/blocks/footer/footer-2.tsx +17 -28
  114. package/src/blocks/footer/footer-3.schema.ts +1 -2
  115. package/src/blocks/footer/footer-3.tsx +9 -25
  116. package/src/blocks/footer/footer-4.schema.ts +8 -16
  117. package/src/blocks/footer/footer-4.tsx +35 -54
  118. package/src/blocks/footer/footer-5.schema.ts +10 -24
  119. package/src/blocks/footer/footer-5.tsx +14 -29
  120. package/src/blocks/footer/footer-6.schema.ts +10 -25
  121. package/src/blocks/footer/footer-6.tsx +29 -44
  122. package/src/blocks/form/form-1.schema.ts +144 -0
  123. package/src/blocks/form/form-1.tsx +33 -0
  124. package/src/blocks/hero/hero-1.schema.ts +45 -90
  125. package/src/blocks/hero/hero-1.tsx +4 -4
  126. package/src/blocks/hero/hero-10.schema.ts +1 -2
  127. package/src/blocks/hero/hero-10.tsx +4 -4
  128. package/src/blocks/hero/hero-11.schema.ts +18 -14
  129. package/src/blocks/hero/hero-11.tsx +4 -9
  130. package/src/blocks/hero/hero-12.schema.ts +18 -36
  131. package/src/blocks/hero/hero-12.tsx +3 -6
  132. package/src/blocks/hero/hero-13.schema.ts +8 -16
  133. package/src/blocks/hero/hero-13.tsx +1 -1
  134. package/src/blocks/hero/hero-2.schema.ts +3 -6
  135. package/src/blocks/hero/hero-2.tsx +3 -21
  136. package/src/blocks/hero/hero-3.schema.ts +28 -56
  137. package/src/blocks/hero/hero-3.tsx +6 -15
  138. package/src/blocks/hero/hero-4.schema.ts +22 -44
  139. package/src/blocks/hero/hero-4.tsx +16 -27
  140. package/src/blocks/hero/hero-5.schema.ts +21 -42
  141. package/src/blocks/hero/hero-5.tsx +15 -18
  142. package/src/blocks/hero/hero-6.schema.ts +35 -70
  143. package/src/blocks/hero/hero-6.tsx +6 -6
  144. package/src/blocks/hero/hero-7.schema.ts +24 -48
  145. package/src/blocks/hero/hero-7.tsx +2 -3
  146. package/src/blocks/hero/hero-8.schema.ts +24 -50
  147. package/src/blocks/hero/hero-8.tsx +5 -19
  148. package/src/blocks/hero/hero-9.schema.ts +8 -16
  149. package/src/blocks/hero/hero-9.tsx +3 -3
  150. package/src/blocks/index.ts +8 -11
  151. package/src/blocks/jobs/jobs-1.schema.ts +990 -0
  152. package/src/blocks/jobs/jobs-1.tsx +145 -0
  153. package/src/blocks/logos/logos-1.schema.ts +53 -113
  154. package/src/blocks/logos/logos-1.tsx +7 -7
  155. package/src/blocks/navbar/navbar-1.schema.ts +15 -28
  156. package/src/blocks/navbar/navbar-1.tsx +24 -60
  157. package/src/blocks/navbar/navbar-2.schema.ts +14 -28
  158. package/src/blocks/navbar/navbar-2.tsx +26 -56
  159. package/src/blocks/navbar/navbar-3.schema.ts +11 -22
  160. package/src/blocks/navbar/navbar-3.tsx +33 -82
  161. package/src/blocks/navbar/navbar-4.schema.ts +14343 -0
  162. package/src/blocks/navbar/navbar-4.tsx +546 -0
  163. package/src/blocks/polling/polling-1.schema.ts +1 -2
  164. package/src/blocks/polling/polling-1.tsx +24 -39
  165. package/src/blocks/pricing/pricing-1.schema.ts +13 -26
  166. package/src/blocks/pricing/pricing-1.tsx +20 -44
  167. package/src/blocks/products/products-listing-1.schema.ts +32 -64
  168. package/src/blocks/products/products-listing-1.tsx +6 -12
  169. package/src/blocks/products/products-listing-2.schema.ts +26 -54
  170. package/src/blocks/products/products-listing-2.tsx +8 -17
  171. package/src/blocks/products/products-listing-3.schema.ts +25 -52
  172. package/src/blocks/products/products-listing-3.tsx +87 -93
  173. package/src/blocks/profile/profile-1.schema.ts +7 -14
  174. package/src/blocks/profile/profile-1.tsx +2 -8
  175. package/src/blocks/profile/profile-2.schema.ts +9 -18
  176. package/src/blocks/profile/profile-2.tsx +4 -6
  177. package/src/blocks/profile/profile-3.schema.ts +21 -42
  178. package/src/blocks/profile/profile-3.tsx +18 -40
  179. package/src/blocks/{blogs/blog-post-2.schema.ts → profile/profile-4.schema.ts} +75 -97
  180. package/src/blocks/{blogs/blog-post-2.tsx → profile/profile-4.tsx} +32 -61
  181. package/src/blocks/{blogs/blog-post-3.schema.ts → profile/profile-5.schema.ts} +6 -6
  182. package/src/blocks/{blogs/blog-post-3.tsx → profile/profile-5.tsx} +6 -11
  183. package/src/blocks/services/service-1.schema.ts +20 -40
  184. package/src/blocks/services/service-1.tsx +45 -71
  185. package/src/blocks/services/service-2.schema.ts +8 -16
  186. package/src/blocks/services/service-2.tsx +4 -6
  187. package/src/blocks/services/service-3.schema.ts +12 -24
  188. package/src/blocks/services/service-3.tsx +4 -6
  189. package/src/blocks/stats/stats-1.tsx +3 -14
  190. package/src/blocks/stats/stats-2.tsx +3 -14
  191. package/src/blocks/stats/variants/index.ts +1 -1
  192. package/src/blocks/tabs/tab-1.schema.ts +4 -8
  193. package/src/blocks/tabs/tab-1.tsx +47 -64
  194. package/src/blocks/tabs/tab-2.schema.ts +13 -26
  195. package/src/blocks/tabs/tab-2.tsx +14 -15
  196. package/src/blocks/team/team-1.schema.ts +28 -56
  197. package/src/blocks/team/team-1.tsx +7 -21
  198. package/src/blocks/team/team-2.schema.ts +104 -208
  199. package/src/blocks/team/team-2.tsx +15 -33
  200. package/src/blocks/team/team-3.schema.ts +24 -48
  201. package/src/blocks/team/team-3.tsx +8 -14
  202. package/src/blocks/team/team-4.schema.ts +25 -50
  203. package/src/blocks/team/team-4.tsx +15 -24
  204. package/src/blocks/team/team-5.schema.ts +14 -28
  205. package/src/blocks/team/team-5.tsx +1 -1
  206. package/src/blocks/termsAndPrivacy/terms-and-conditions-1.tsx +3 -5
  207. package/src/blocks/testimonial/testimonial-1.schema.ts +1 -2
  208. package/src/blocks/testimonial/testimonial-1.tsx +10 -19
  209. package/src/blocks/testimonial/testimonial-2.schema.ts +16 -32
  210. package/src/blocks/testimonial/testimonial-2.tsx +17 -36
  211. package/src/blocks/testimonial/testimonial-3.schema.ts +8 -16
  212. package/src/blocks/testimonial/testimonial-3.tsx +13 -26
  213. package/src/blocks/testimonial/testimonial-4.schema.ts +94 -188
  214. package/src/blocks/testimonial/testimonial-4.tsx +12 -33
  215. package/src/blocks/testimonial/testimonial-5/variants/default.ts +24 -48
  216. package/src/blocks/testimonial/testimonial-5/variants/index.ts +1 -1
  217. package/src/blocks/testimonial/testimonial-5/variants/testimonialWithLogo.ts +4 -8
  218. package/src/blocks/testimonial/testimonial-5/variants/testimonialWithRatings.ts +24 -48
  219. package/src/blocks/testimonial/testimonial-5.schema.ts +2 -6
  220. package/src/blocks/testimonial/testimonial-5.tsx +15 -25
  221. package/src/blocks/testimonial/testimonial-6.schema.ts +26 -52
  222. package/src/blocks/testimonial/testimonial-6.tsx +9 -25
  223. package/src/blocks/testimonial/testimonial-7.tsx +15 -26
  224. package/src/blocks/timeline/timeline-1.schema.ts +34 -68
  225. package/src/blocks/timeline/timeline-1.tsx +2 -6
  226. package/src/blocks/users/edit-profile.tsx +10 -22
  227. package/src/constants/index.ts +3 -6
  228. package/src/index.ts +1 -1
  229. package/src/schemas/blocks.ts +14 -8
  230. package/src/schemas/categories.ts +14 -2
@@ -1,14 +1,14 @@
1
1
  import {
2
- type ILevoBlockBaseProps,
3
- AccordionRoot,
2
+ AccordionContent,
4
3
  AccordionItem,
4
+ AccordionRoot,
5
5
  AccordionTrigger,
6
- AccordionContent,
7
6
  Box,
8
7
  Button,
9
8
  Container,
10
9
  Heading,
11
10
  Icon,
11
+ type ILevoBlockBaseProps,
12
12
  IntegrationFilters,
13
13
  Media,
14
14
  Section,
@@ -18,9 +18,7 @@ import {
18
18
 
19
19
  import type { IFilterListing1Content } from "./filter-listing-1.schema";
20
20
 
21
- const FilterListing1: React.FC<ILevoBlockBaseProps<IFilterListing1Content>> = ({
22
- config,
23
- }) => {
21
+ const FilterListing1: React.FC<ILevoBlockBaseProps<IFilterListing1Content>> = ({ config }) => {
24
22
  const { data, query, setQuery, meta } = useContentEngine("listing");
25
23
 
26
24
  const handleNext = () => setQuery({ page: (query?.page || 0) + 1 });
@@ -33,19 +31,10 @@ const FilterListing1: React.FC<ILevoBlockBaseProps<IFilterListing1Content>> = ({
33
31
  </Box>
34
32
  <Box elementKey="listing_wrapper">
35
33
  {config?.listing_levoGroup?.filters?.schema && (
36
- <AccordionRoot
37
- type="single"
38
- elementKey="filters_accordion"
39
- defaultValue="filters"
40
- >
41
- <AccordionItem
42
- value="filters"
43
- elementKey="filters_accordion_item"
44
- >
34
+ <AccordionRoot type="single" elementKey="filters_accordion" defaultValue="filters">
35
+ <AccordionItem value="filters" elementKey="filters_accordion_item">
45
36
  <AccordionTrigger elementKey="filters_accordion_trigger">
46
- <Typography elementKey="filters_accordion_title">
47
- Filters
48
- </Typography>
37
+ <Typography elementKey="filters_accordion_title">Filters</Typography>
49
38
  </AccordionTrigger>
50
39
  <AccordionContent elementKey="filters_accordion_content">
51
40
  <Box elementKey="filters_box">
@@ -53,10 +42,7 @@ const FilterListing1: React.FC<ILevoBlockBaseProps<IFilterListing1Content>> = ({
53
42
  query={query}
54
43
  setQuery={setQuery}
55
44
  schema={config?.listing_levoGroup?.filters?.schema}
56
- selectedFields={
57
- config?.listing_levoGroup?.filters?.selected_fields ??
58
- []
59
- }
45
+ selectedFields={config?.listing_levoGroup?.filters?.selected_fields ?? []}
60
46
  />
61
47
  </Box>
62
48
  </AccordionContent>
@@ -70,29 +56,19 @@ const FilterListing1: React.FC<ILevoBlockBaseProps<IFilterListing1Content>> = ({
70
56
  data-levo_group_item
71
57
  elementKey={`listing.${index}.card`}
72
58
  >
73
- <Media
74
- elementKey={`listing.${index}.media`}
75
- alt="Filter Media"
76
- />
59
+ <Media elementKey={`listing.${index}.media`} alt="Filter Media" />
77
60
  <Box elementKey={`listing.${index}.filter_info_wrapper`}>
78
61
  <Box elementKey={`listing.${index}.filter_content`}>
79
62
  <Heading elementKey={`listing.${index}.title`} />
80
- <Box
81
- elementKey={`listing.${index}.points_levoGroup`}
82
- data-levo_group
83
- >
63
+ <Box elementKey={`listing.${index}.points_levoGroup`} data-levo_group>
84
64
  {(item.points || [])?.map((_: any, pIndex: number) => (
85
65
  <Box
86
66
  key={pIndex}
87
67
  elementKey={`listing.${index}.points.${pIndex}.container`}
88
68
  data-levo_group_item
89
69
  >
90
- <Icon
91
- elementKey={`listing.${index}.points.${pIndex}.icon`}
92
- />
93
- <Typography
94
- elementKey={`listing.${index}.points.${pIndex}.text`}
95
- />
70
+ <Icon elementKey={`listing.${index}.points.${pIndex}.icon`} />
71
+ <Typography elementKey={`listing.${index}.points.${pIndex}.text`} />
96
72
  </Box>
97
73
  ))}
98
74
  </Box>
@@ -8,8 +8,7 @@ const DEFAULT_CONTENT = {
8
8
  kind: "custom",
9
9
  data: {
10
10
  id: "R6ervNbOZfcD9",
11
- location:
12
- "https://static.levocdn.com/WLZ1TXTD/whatsapp-logopng4-2EYM5YIjokcd.png",
11
+ location: "https://static.levocdn.com/WLZ1TXTD/whatsapp-logopng4-2EYM5YIjokcd.png",
13
12
  mimetype: "image/png",
14
13
  kind: "image",
15
14
  srcset: {
@@ -19,14 +18,10 @@ const DEFAULT_CONTENT = {
19
18
  "https://static.levocdn.com/WLZ1TXTD/whatsapp-logopng4-2EYM5YIjokcd-1200w.webp",
20
19
  "1920w":
21
20
  "https://static.levocdn.com/WLZ1TXTD/whatsapp-logopng4-2EYM5YIjokcd-1920w.webp",
22
- "320w":
23
- "https://static.levocdn.com/WLZ1TXTD/whatsapp-logopng4-2EYM5YIjokcd-320w.webp",
24
- "640w":
25
- "https://static.levocdn.com/WLZ1TXTD/whatsapp-logopng4-2EYM5YIjokcd-640w.webp",
26
- "750w":
27
- "https://static.levocdn.com/WLZ1TXTD/whatsapp-logopng4-2EYM5YIjokcd-750w.webp",
28
- "828w":
29
- "https://static.levocdn.com/WLZ1TXTD/whatsapp-logopng4-2EYM5YIjokcd-828w.webp",
21
+ "320w": "https://static.levocdn.com/WLZ1TXTD/whatsapp-logopng4-2EYM5YIjokcd-320w.webp",
22
+ "640w": "https://static.levocdn.com/WLZ1TXTD/whatsapp-logopng4-2EYM5YIjokcd-640w.webp",
23
+ "750w": "https://static.levocdn.com/WLZ1TXTD/whatsapp-logopng4-2EYM5YIjokcd-750w.webp",
24
+ "828w": "https://static.levocdn.com/WLZ1TXTD/whatsapp-logopng4-2EYM5YIjokcd-828w.webp",
30
25
  path: "https://static.levocdn.com/WLZ1TXTD/whatsapp-logopng4-2EYM5YIjokcd-828w.webp 828w, https://static.levocdn.com/WLZ1TXTD/whatsapp-logopng4-2EYM5YIjokcd-750w.webp 750w, https://static.levocdn.com/WLZ1TXTD/whatsapp-logopng4-2EYM5YIjokcd-1080w.webp 1080w, https://static.levocdn.com/WLZ1TXTD/whatsapp-logopng4-2EYM5YIjokcd-1200w.webp 1200w, https://static.levocdn.com/WLZ1TXTD/whatsapp-logopng4-2EYM5YIjokcd-1920w.webp 1920w, https://static.levocdn.com/WLZ1TXTD/whatsapp-logopng4-2EYM5YIjokcd-320w.webp 320w, https://static.levocdn.com/WLZ1TXTD/whatsapp-logopng4-2EYM5YIjokcd-640w.webp 640w",
31
26
  },
32
27
  },
@@ -1,18 +1,12 @@
1
- import React from "react";
2
1
  import { Box, Button, type ILevoBlockBaseProps } from "@levo-so/studio";
2
+ import type React from "react";
3
3
 
4
4
  import type { IFloatingButton1Content } from "./floating-button-1.schema";
5
5
 
6
- const FloatingButton1: React.FC<
7
- ILevoBlockBaseProps<IFloatingButton1Content>
8
- > = ({ content }) => (
6
+ const FloatingButton1: React.FC<ILevoBlockBaseProps<IFloatingButton1Content>> = ({ content }) => (
9
7
  <Box elementKey="button_group_levoGroup" data-levo_group>
10
8
  {(content?.button_group ?? []).map((_, index) => (
11
- <Button
12
- key={index}
13
- elementKey={`button_group.${index}.button`}
14
- data-levo_group_item
15
- />
9
+ <Button key={index} elementKey={`button_group.${index}.button`} data-levo_group_item />
16
10
  ))}
17
11
  </Box>
18
12
  );
@@ -15,23 +15,15 @@ const MEDIA = {
15
15
  id: "A8sG1BvgdtgE",
16
16
  filename: "footer-1-logo.png",
17
17
  kind: "image",
18
- location:
19
- "https://static.levocdn.com/WLZ1TXTD/footer-1-logo-w9fpJutzREEV.png",
18
+ location: "https://static.levocdn.com/WLZ1TXTD/footer-1-logo-w9fpJutzREEV.png",
20
19
  srcset: {
21
- "1080w":
22
- "https://static.levocdn.com/WLZ1TXTD/footer-1-logo-w9fpJutzREEV-1080w.webp",
23
- "1200w":
24
- "https://static.levocdn.com/WLZ1TXTD/footer-1-logo-w9fpJutzREEV-1200w.webp",
25
- "1920w":
26
- "https://static.levocdn.com/WLZ1TXTD/footer-1-logo-w9fpJutzREEV-1920w.webp",
27
- "320w":
28
- "https://static.levocdn.com/WLZ1TXTD/footer-1-logo-w9fpJutzREEV-320w.webp",
29
- "640w":
30
- "https://static.levocdn.com/WLZ1TXTD/footer-1-logo-w9fpJutzREEV-640w.webp",
31
- "750w":
32
- "https://static.levocdn.com/WLZ1TXTD/footer-1-logo-w9fpJutzREEV-750w.webp",
33
- "828w":
34
- "https://static.levocdn.com/WLZ1TXTD/footer-1-logo-w9fpJutzREEV-828w.webp",
20
+ "1080w": "https://static.levocdn.com/WLZ1TXTD/footer-1-logo-w9fpJutzREEV-1080w.webp",
21
+ "1200w": "https://static.levocdn.com/WLZ1TXTD/footer-1-logo-w9fpJutzREEV-1200w.webp",
22
+ "1920w": "https://static.levocdn.com/WLZ1TXTD/footer-1-logo-w9fpJutzREEV-1920w.webp",
23
+ "320w": "https://static.levocdn.com/WLZ1TXTD/footer-1-logo-w9fpJutzREEV-320w.webp",
24
+ "640w": "https://static.levocdn.com/WLZ1TXTD/footer-1-logo-w9fpJutzREEV-640w.webp",
25
+ "750w": "https://static.levocdn.com/WLZ1TXTD/footer-1-logo-w9fpJutzREEV-750w.webp",
26
+ "828w": "https://static.levocdn.com/WLZ1TXTD/footer-1-logo-w9fpJutzREEV-828w.webp",
35
27
  path: "https://static.levocdn.com/WLZ1TXTD/footer-1-logo-w9fpJutzREEV-750w.webp 750w, https://static.levocdn.com/WLZ1TXTD/footer-1-logo-w9fpJutzREEV-640w.webp 640w, https://static.levocdn.com/WLZ1TXTD/footer-1-logo-w9fpJutzREEV-828w.webp 828w, https://static.levocdn.com/WLZ1TXTD/footer-1-logo-w9fpJutzREEV-1080w.webp 1080w, https://static.levocdn.com/WLZ1TXTD/footer-1-logo-w9fpJutzREEV-1200w.webp 1200w, https://static.levocdn.com/WLZ1TXTD/footer-1-logo-w9fpJutzREEV-1920w.webp 1920w, https://static.levocdn.com/WLZ1TXTD/footer-1-logo-w9fpJutzREEV-320w.webp 320w",
36
28
  },
37
29
  mimetype: "image/png",
@@ -1,20 +1,18 @@
1
- import React from "react";
2
1
  import {
3
2
  Box,
4
3
  Container,
5
4
  Heading,
6
5
  Icon,
6
+ type ILevoBlockBaseProps,
7
7
  Image,
8
8
  Section,
9
9
  Typography,
10
- type ILevoBlockBaseProps,
11
10
  } from "@levo-so/studio";
11
+ import React from "react";
12
12
 
13
- import { type IFooter1Content } from "./footer-1.schema";
13
+ import type { IFooter1Content } from "./footer-1.schema";
14
14
 
15
- const Footer1: React.FC<ILevoBlockBaseProps<IFooter1Content>> = ({
16
- content,
17
- }) => (
15
+ const Footer1: React.FC<ILevoBlockBaseProps<IFooter1Content>> = ({ content }) => (
18
16
  <Section elementKey="layout">
19
17
  <Container elementKey="container">
20
18
  <Box elementKey="contentWrapper">
@@ -22,15 +20,13 @@ const Footer1: React.FC<ILevoBlockBaseProps<IFooter1Content>> = ({
22
20
  <Image elementKey="logo" height={26} width={26} alt="footer-logo" />
23
21
  <Typography elementKey="logoDescription" />
24
22
  <Box elementKey="icon_links_levoGroup" data-levo_group>
25
- {((content as any)?.icon_links ?? [])?.map(
26
- (_: any, index: number) => (
27
- <Icon
28
- key={`footer-1-icon-${index}`}
29
- data-levo_group_item
30
- elementKey={`icon_links.${index}.icon`}
31
- />
32
- ),
33
- )}
23
+ {((content as any)?.icon_links ?? [])?.map((_: any, index: number) => (
24
+ <Icon
25
+ key={`footer-1-icon-${index}`}
26
+ data-levo_group_item
27
+ elementKey={`icon_links.${index}.icon`}
28
+ />
29
+ ))}
34
30
  </Box>
35
31
  </Box>
36
32
  <Box data-levo_group elementKey="links_levoGroup">
@@ -41,19 +37,14 @@ const Footer1: React.FC<ILevoBlockBaseProps<IFooter1Content>> = ({
41
37
  data-levo_group_item
42
38
  >
43
39
  <Heading elementKey={`links.${index}.category`} />
44
- <Box
45
- elementKey={`links.${index}.links_levoGroup`}
46
- data-levo_group
47
- >
40
+ <Box elementKey={`links.${index}.links_levoGroup`} data-levo_group>
48
41
  {(content?.links?.[index]?.links ?? [])?.map((_, subIndex) => (
49
42
  <Box
50
43
  elementKey={`links.${index}.links.${subIndex}.iconCtaWrapper`}
51
44
  key={`footer-1-links-${index}-${subIndex}`}
52
45
  data-levo_group_item
53
46
  >
54
- <Icon
55
- elementKey={`links.${index}.links.${subIndex}.icon`}
56
- />
47
+ <Icon elementKey={`links.${index}.links.${subIndex}.icon`} />
57
48
  <Typography
58
49
  elementKey={`links.${index}.links.${subIndex}.cta`}
59
50
  key={`footer-1-links-${index}-${subIndex}`}
@@ -70,15 +61,9 @@ const Footer1: React.FC<ILevoBlockBaseProps<IFooter1Content>> = ({
70
61
  <Box elementKey="footerBottomRightArea_levoGroup" data-levo_group>
71
62
  {(content?.footerBottomRightArea ?? [])?.map((_, index) => (
72
63
  <React.Fragment key={`footer-1-right-area-${index}`}>
73
- <Typography
74
- data-levo_group_item
75
- elementKey={`footerBottomRightArea.${index}.cta`}
76
- />
64
+ <Typography data-levo_group_item elementKey={`footerBottomRightArea.${index}.cta`} />
77
65
  {index < (content?.footerBottomRightArea?.length ?? 0) - 1 && (
78
- <Box
79
- elementKey={`footerBottomRightArea.${index}.separator`}
80
- data-levo_group_item
81
- />
66
+ <Box elementKey={`footerBottomRightArea.${index}.separator`} data-levo_group_item />
82
67
  )}
83
68
  </React.Fragment>
84
69
  ))}
@@ -15,23 +15,15 @@ const MEDIA = {
15
15
  id: "6Hg5xxyErnEM",
16
16
  filename: "footer-2-logo.png",
17
17
  kind: "image",
18
- location:
19
- "https://static.levocdn.com/WLZ1TXTD/footer-2-logo-sR8ojjdBVGGW.png",
18
+ location: "https://static.levocdn.com/WLZ1TXTD/footer-2-logo-sR8ojjdBVGGW.png",
20
19
  srcset: {
21
- "1080w":
22
- "https://static.levocdn.com/WLZ1TXTD/footer-2-logo-sR8ojjdBVGGW-1080w.webp",
23
- "1200w":
24
- "https://static.levocdn.com/WLZ1TXTD/footer-2-logo-sR8ojjdBVGGW-1200w.webp",
25
- "1920w":
26
- "https://static.levocdn.com/WLZ1TXTD/footer-2-logo-sR8ojjdBVGGW-1920w.webp",
27
- "320w":
28
- "https://static.levocdn.com/WLZ1TXTD/footer-2-logo-sR8ojjdBVGGW-320w.webp",
29
- "640w":
30
- "https://static.levocdn.com/WLZ1TXTD/footer-2-logo-sR8ojjdBVGGW-640w.webp",
31
- "750w":
32
- "https://static.levocdn.com/WLZ1TXTD/footer-2-logo-sR8ojjdBVGGW-750w.webp",
33
- "828w":
34
- "https://static.levocdn.com/WLZ1TXTD/footer-2-logo-sR8ojjdBVGGW-828w.webp",
20
+ "1080w": "https://static.levocdn.com/WLZ1TXTD/footer-2-logo-sR8ojjdBVGGW-1080w.webp",
21
+ "1200w": "https://static.levocdn.com/WLZ1TXTD/footer-2-logo-sR8ojjdBVGGW-1200w.webp",
22
+ "1920w": "https://static.levocdn.com/WLZ1TXTD/footer-2-logo-sR8ojjdBVGGW-1920w.webp",
23
+ "320w": "https://static.levocdn.com/WLZ1TXTD/footer-2-logo-sR8ojjdBVGGW-320w.webp",
24
+ "640w": "https://static.levocdn.com/WLZ1TXTD/footer-2-logo-sR8ojjdBVGGW-640w.webp",
25
+ "750w": "https://static.levocdn.com/WLZ1TXTD/footer-2-logo-sR8ojjdBVGGW-750w.webp",
26
+ "828w": "https://static.levocdn.com/WLZ1TXTD/footer-2-logo-sR8ojjdBVGGW-828w.webp",
35
27
  path: "https://static.levocdn.com/WLZ1TXTD/footer-2-logo-sR8ojjdBVGGW-750w.webp 750w, https://static.levocdn.com/WLZ1TXTD/footer-2-logo-sR8ojjdBVGGW-828w.webp 828w, https://static.levocdn.com/WLZ1TXTD/footer-2-logo-sR8ojjdBVGGW-1080w.webp 1080w, https://static.levocdn.com/WLZ1TXTD/footer-2-logo-sR8ojjdBVGGW-1200w.webp 1200w, https://static.levocdn.com/WLZ1TXTD/footer-2-logo-sR8ojjdBVGGW-1920w.webp 1920w, https://static.levocdn.com/WLZ1TXTD/footer-2-logo-sR8ojjdBVGGW-320w.webp 320w, https://static.levocdn.com/WLZ1TXTD/footer-2-logo-sR8ojjdBVGGW-640w.webp 640w",
36
28
  },
37
29
  mimetype: "image/png",
@@ -3,17 +3,15 @@ import {
3
3
  Container,
4
4
  Heading,
5
5
  Icon,
6
+ type ILevoBlockBaseProps,
6
7
  Image,
7
8
  Section,
8
9
  Typography,
9
- type ILevoBlockBaseProps,
10
10
  } from "@levo-so/studio";
11
11
 
12
- import { type IFooter2Content } from "./footer-2.schema";
12
+ import type { IFooter2Content } from "./footer-2.schema";
13
13
 
14
- const Footer2: React.FC<ILevoBlockBaseProps<IFooter2Content>> = ({
15
- content,
16
- }) => (
14
+ const Footer2: React.FC<ILevoBlockBaseProps<IFooter2Content>> = ({ content }) => (
17
15
  <Section elementKey="layout">
18
16
  <Container elementKey="container">
19
17
  <Box elementKey="contentWrapper">
@@ -30,39 +28,30 @@ const Footer2: React.FC<ILevoBlockBaseProps<IFooter2Content>> = ({
30
28
  data-levo_group_item
31
29
  >
32
30
  <Heading elementKey={`links.${index}.category`} />
33
- <Box
34
- elementKey={`links.${index}.links_levoGroup`}
35
- data-levo_group
36
- >
31
+ <Box elementKey={`links.${index}.links_levoGroup`} data-levo_group>
37
32
  {(link?.links ?? [])?.map((subLink: any, subIndex: number) => (
38
33
  <Box
39
34
  elementKey={`links.${index}.links.${subIndex}.wrapper`}
40
35
  key={`footer-2-links-${index}-${subIndex}`}
41
36
  data-levo_group_item
42
37
  >
43
- <Icon
44
- elementKey={`links.${index}.links.${subIndex}.icon`}
45
- />
46
- <Typography
47
- elementKey={`links.${index}.links.${subIndex}.cta`}
48
- />
38
+ <Icon elementKey={`links.${index}.links.${subIndex}.icon`} />
39
+ <Typography elementKey={`links.${index}.links.${subIndex}.cta`} />
49
40
  <Box
50
41
  data-levo_group
51
42
  elementKey={`links.${index}.links.${subIndex}.icon_links_levoGroup`}
52
43
  >
53
- {(subLink?.icon_links ?? []).map(
54
- (_: unknown, linkIndex: number) => (
55
- <Box
56
- data-levo_group_item
57
- elementKey={`links.${index}.links.${subIndex}.icon_links.${linkIndex}.wrapper`}
58
- key={`footer-2-icon-links-${index}-${subIndex}-${linkIndex}`}
59
- >
60
- <Icon
61
- elementKey={`links.${index}.links.${subIndex}.icon_links.${linkIndex}.icon`}
62
- />
63
- </Box>
64
- ),
65
- )}
44
+ {(subLink?.icon_links ?? []).map((_: unknown, linkIndex: number) => (
45
+ <Box
46
+ data-levo_group_item
47
+ elementKey={`links.${index}.links.${subIndex}.icon_links.${linkIndex}.wrapper`}
48
+ key={`footer-2-icon-links-${index}-${subIndex}-${linkIndex}`}
49
+ >
50
+ <Icon
51
+ elementKey={`links.${index}.links.${subIndex}.icon_links.${linkIndex}.icon`}
52
+ />
53
+ </Box>
54
+ ))}
66
55
  </Box>
67
56
  </Box>
68
57
  ))}
@@ -135,8 +135,7 @@ export const Footer3: IBlock = {
135
135
  title: "Footer 3",
136
136
  key: "footer-3",
137
137
  version: "v1",
138
- prompt_description:
139
- "Professional footer with company info, service links, and contact details",
138
+ prompt_description: "Professional footer with company info, service links, and contact details",
140
139
  content_schema: [
141
140
  {
142
141
  key: "layout",
@@ -3,17 +3,15 @@ import {
3
3
  Container,
4
4
  Heading,
5
5
  Icon,
6
+ type ILevoBlockBaseProps,
6
7
  Section,
7
8
  Typography,
8
- type ILevoBlockBaseProps,
9
9
  } from "@levo-so/studio";
10
10
  import React from "react";
11
11
 
12
- import { type IFooter3Content } from "./footer-3.schema";
12
+ import type { IFooter3Content } from "./footer-3.schema";
13
13
 
14
- const Footer3: React.FC<ILevoBlockBaseProps<IFooter3Content>> = ({
15
- content,
16
- }) => (
14
+ const Footer3: React.FC<ILevoBlockBaseProps<IFooter3Content>> = ({ content }) => (
17
15
  <Section elementKey="layout">
18
16
  <Container elementKey="container">
19
17
  <Box elementKey="mainFooterWrapper">
@@ -25,14 +23,10 @@ const Footer3: React.FC<ILevoBlockBaseProps<IFooter3Content>> = ({
25
23
  data-levo_group_item
26
24
  >
27
25
  <Heading elementKey={`links.${sectionIndex}.category`} />
28
- <Box
29
- elementKey={`links.${sectionIndex}.links_levoGroup`}
30
- data-levo_group
31
- >
26
+ <Box elementKey={`links.${sectionIndex}.links_levoGroup`} data-levo_group>
32
27
  {(section?.links ?? [])?.map((link, linkIndex) => {
33
28
  // Check if this is a contact item (has icon and contactWrapper)
34
- const isContactItem =
35
- "icon" in link && "contactWrapper" in link;
29
+ const isContactItem = "icon" in link && "contactWrapper" in link;
36
30
 
37
31
  if (isContactItem) {
38
32
  return (
@@ -41,12 +35,8 @@ const Footer3: React.FC<ILevoBlockBaseProps<IFooter3Content>> = ({
41
35
  key={`footer-3-contact-${sectionIndex}-${linkIndex}`}
42
36
  data-levo_group_item
43
37
  >
44
- <Icon
45
- elementKey={`links.${sectionIndex}.links.${linkIndex}.icon`}
46
- />
47
- <Typography
48
- elementKey={`links.${sectionIndex}.links.${linkIndex}.text`}
49
- />
38
+ <Icon elementKey={`links.${sectionIndex}.links.${linkIndex}.icon`} />
39
+ <Typography elementKey={`links.${sectionIndex}.links.${linkIndex}.text`} />
50
40
  </Box>
51
41
  );
52
42
  } else {
@@ -70,15 +60,9 @@ const Footer3: React.FC<ILevoBlockBaseProps<IFooter3Content>> = ({
70
60
  <Box elementKey="bottomLinks_levoGroup" data-levo_group>
71
61
  {(content?.bottomLinks ?? [])?.map((_, index) => (
72
62
  <React.Fragment key={`footer-3-bottom-${index}`}>
73
- <Typography
74
- data-levo_group_item
75
- elementKey={`bottomLinks.${index}.text`}
76
- />
63
+ <Typography data-levo_group_item elementKey={`bottomLinks.${index}.text`} />
77
64
  {index < (content?.bottomLinks?.length ?? 0) - 1 && (
78
- <Box
79
- elementKey={`bottomLinks.${index}.separator`}
80
- data-levo_group_item
81
- />
65
+ <Box elementKey={`bottomLinks.${index}.separator`} data-levo_group_item />
82
66
  )}
83
67
  </React.Fragment>
84
68
  ))}
@@ -15,23 +15,15 @@ const MEDIA = {
15
15
  id: "xlotCSMGiB8T",
16
16
  filename: "footer-4-logo.png",
17
17
  kind: "image",
18
- location:
19
- "https://static.levocdn.com/WLZ1TXTD/footer-4-logo-30Wfpd1Qp22h.png",
18
+ location: "https://static.levocdn.com/WLZ1TXTD/footer-4-logo-30Wfpd1Qp22h.png",
20
19
  srcset: {
21
- "1080w":
22
- "https://static.levocdn.com/WLZ1TXTD/footer-4-logo-30Wfpd1Qp22h-1080w.webp",
23
- "1200w":
24
- "https://static.levocdn.com/WLZ1TXTD/footer-4-logo-30Wfpd1Qp22h-1200w.webp",
25
- "1920w":
26
- "https://static.levocdn.com/WLZ1TXTD/footer-4-logo-30Wfpd1Qp22h-1920w.webp",
27
- "320w":
28
- "https://static.levocdn.com/WLZ1TXTD/footer-4-logo-30Wfpd1Qp22h-320w.webp",
29
- "640w":
30
- "https://static.levocdn.com/WLZ1TXTD/footer-4-logo-30Wfpd1Qp22h-640w.webp",
31
- "750w":
32
- "https://static.levocdn.com/WLZ1TXTD/footer-4-logo-30Wfpd1Qp22h-750w.webp",
33
- "828w":
34
- "https://static.levocdn.com/WLZ1TXTD/footer-4-logo-30Wfpd1Qp22h-828w.webp",
20
+ "1080w": "https://static.levocdn.com/WLZ1TXTD/footer-4-logo-30Wfpd1Qp22h-1080w.webp",
21
+ "1200w": "https://static.levocdn.com/WLZ1TXTD/footer-4-logo-30Wfpd1Qp22h-1200w.webp",
22
+ "1920w": "https://static.levocdn.com/WLZ1TXTD/footer-4-logo-30Wfpd1Qp22h-1920w.webp",
23
+ "320w": "https://static.levocdn.com/WLZ1TXTD/footer-4-logo-30Wfpd1Qp22h-320w.webp",
24
+ "640w": "https://static.levocdn.com/WLZ1TXTD/footer-4-logo-30Wfpd1Qp22h-640w.webp",
25
+ "750w": "https://static.levocdn.com/WLZ1TXTD/footer-4-logo-30Wfpd1Qp22h-750w.webp",
26
+ "828w": "https://static.levocdn.com/WLZ1TXTD/footer-4-logo-30Wfpd1Qp22h-828w.webp",
35
27
  path: "https://static.levocdn.com/WLZ1TXTD/footer-4-logo-30Wfpd1Qp22h-1200w.webp 1200w, https://static.levocdn.com/WLZ1TXTD/footer-4-logo-30Wfpd1Qp22h-1920w.webp 1920w, https://static.levocdn.com/WLZ1TXTD/footer-4-logo-30Wfpd1Qp22h-320w.webp 320w, https://static.levocdn.com/WLZ1TXTD/footer-4-logo-30Wfpd1Qp22h-750w.webp 750w, https://static.levocdn.com/WLZ1TXTD/footer-4-logo-30Wfpd1Qp22h-828w.webp 828w, https://static.levocdn.com/WLZ1TXTD/footer-4-logo-30Wfpd1Qp22h-1080w.webp 1080w, https://static.levocdn.com/WLZ1TXTD/footer-4-logo-30Wfpd1Qp22h-640w.webp 640w",
36
28
  },
37
29
  mimetype: "image/png",
@@ -1,20 +1,18 @@
1
- import React from "react";
2
1
  import {
3
2
  Box,
4
3
  Container,
5
4
  Heading,
6
5
  Icon,
6
+ type ILevoBlockBaseProps,
7
7
  Image,
8
8
  Section,
9
9
  Typography,
10
- type ILevoBlockBaseProps,
11
10
  } from "@levo-so/studio";
11
+ import React from "react";
12
12
 
13
- import { type IFooter4Content } from "./footer-4.schema";
13
+ import type { IFooter4Content } from "./footer-4.schema";
14
14
 
15
- const Footer4: React.FC<ILevoBlockBaseProps<IFooter4Content>> = ({
16
- content,
17
- }) => (
15
+ const Footer4: React.FC<ILevoBlockBaseProps<IFooter4Content>> = ({ content }) => (
18
16
  <Section elementKey="layout">
19
17
  <Container elementKey="container">
20
18
  <Box elementKey="contentWrapper">
@@ -22,18 +20,16 @@ const Footer4: React.FC<ILevoBlockBaseProps<IFooter4Content>> = ({
22
20
  <Image elementKey="logo" height={26} width={26} alt="footer-logo" />
23
21
  <Typography elementKey="logoDescription" />
24
22
  <Box elementKey="icon_links_levoGroup" data-levo_group>
25
- {((content as any)?.icon_links ?? [])?.map(
26
- (_: any, index: number) => (
27
- <Box
28
- key={`footer-4-icon-${index}`}
29
- data-levo_group_item
30
- elementKey={`icon_links.${index}.iconWrapper`}
31
- >
32
- <Icon elementKey={`icon_links.${index}.icon`} />
33
- <Typography elementKey={`icon_links.${index}.description`} />
34
- </Box>
35
- ),
36
- )}
23
+ {((content as any)?.icon_links ?? [])?.map((_: any, index: number) => (
24
+ <Box
25
+ key={`footer-4-icon-${index}`}
26
+ data-levo_group_item
27
+ elementKey={`icon_links.${index}.iconWrapper`}
28
+ >
29
+ <Icon elementKey={`icon_links.${index}.icon`} />
30
+ <Typography elementKey={`icon_links.${index}.description`} />
31
+ </Box>
32
+ ))}
37
33
  </Box>
38
34
  </Box>
39
35
  <Box data-levo_group elementKey="links_levoGroup">
@@ -44,27 +40,20 @@ const Footer4: React.FC<ILevoBlockBaseProps<IFooter4Content>> = ({
44
40
  data-levo_group_item
45
41
  >
46
42
  <Heading elementKey={`links.${index}.category`} />
47
- <Box
48
- elementKey={`links.${index}.links_levoGroup`}
49
- data-levo_group
50
- >
51
- {(content?.links?.[index]?.links ?? [])?.map(
52
- (_: any, subIndex: number) => (
53
- <Box
54
- elementKey={`links.${index}.links.${subIndex}.iconWrapper`}
43
+ <Box elementKey={`links.${index}.links_levoGroup`} data-levo_group>
44
+ {(content?.links?.[index]?.links ?? [])?.map((_: any, subIndex: number) => (
45
+ <Box
46
+ elementKey={`links.${index}.links.${subIndex}.iconWrapper`}
47
+ key={`footer-4-links-${index}-${subIndex}`}
48
+ data-levo_group_item
49
+ >
50
+ <Icon elementKey={`links.${index}.links.${subIndex}.icon`} />
51
+ <Typography
52
+ elementKey={`links.${index}.links.${subIndex}.cta`}
55
53
  key={`footer-4-links-${index}-${subIndex}`}
56
- data-levo_group_item
57
- >
58
- <Icon
59
- elementKey={`links.${index}.links.${subIndex}.icon`}
60
- />
61
- <Typography
62
- elementKey={`links.${index}.links.${subIndex}.cta`}
63
- key={`footer-4-links-${index}-${subIndex}`}
64
- />
65
- </Box>
66
- ),
67
- )}
54
+ />
55
+ </Box>
56
+ ))}
68
57
  </Box>
69
58
  </Box>
70
59
  ))}
@@ -73,22 +62,14 @@ const Footer4: React.FC<ILevoBlockBaseProps<IFooter4Content>> = ({
73
62
  <Box elementKey="footerBottomWrapper">
74
63
  <Typography elementKey="copyright" />
75
64
  <Box elementKey="footerBottomRightArea_levoGroup" data-levo_group>
76
- {(content?.footerBottomRightArea ?? [])?.map(
77
- (_: any, index: number) => (
78
- <React.Fragment key={`footer-4-right-area-${index}`}>
79
- <Typography
80
- data-levo_group_item
81
- elementKey={`footerBottomRightArea.${index}.cta`}
82
- />
83
- {index < (content?.footerBottomRightArea?.length ?? 0) - 1 && (
84
- <Box
85
- elementKey={`footerBottomRightArea.${index}.separator`}
86
- data-levo_group_item
87
- />
88
- )}
89
- </React.Fragment>
90
- ),
91
- )}
65
+ {(content?.footerBottomRightArea ?? [])?.map((_: any, index: number) => (
66
+ <React.Fragment key={`footer-4-right-area-${index}`}>
67
+ <Typography data-levo_group_item elementKey={`footerBottomRightArea.${index}.cta`} />
68
+ {index < (content?.footerBottomRightArea?.length ?? 0) - 1 && (
69
+ <Box elementKey={`footerBottomRightArea.${index}.separator`} data-levo_group_item />
70
+ )}
71
+ </React.Fragment>
72
+ ))}
92
73
  </Box>
93
74
  </Box>
94
75
  </Container>