@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
@@ -2,26 +2,24 @@
2
2
 
3
3
  import type { CarouselApi } from "@levo-so/studio";
4
4
  import {
5
- type ILevoBlockBaseProps,
6
- Heading,
7
- Typography,
8
- Container,
9
- Section,
5
+ Box,
10
6
  Carousel,
11
7
  CarouselContent,
12
8
  CarouselItem,
13
- Box,
14
- Media,
15
- Iframe,
9
+ Container,
10
+ Heading,
16
11
  Icon,
12
+ Iframe,
13
+ type ILevoBlockBaseProps,
14
+ Media,
15
+ Section,
16
+ Typography,
17
17
  } from "@levo-so/studio";
18
18
  import { useEffect, useState } from "react";
19
19
 
20
20
  import type { ITestimonial2Content } from "./testimonial-2.schema";
21
21
 
22
- const Testimonial2: React.FC<ILevoBlockBaseProps<ITestimonial2Content>> = ({
23
- content,
24
- }) => {
22
+ const Testimonial2: React.FC<ILevoBlockBaseProps<ITestimonial2Content>> = ({ content }) => {
25
23
  const [api, setApi] = useState<CarouselApi>();
26
24
  const [current, setCurrent] = useState(0);
27
25
  const [count, setCount] = useState(0);
@@ -47,7 +45,10 @@ const Testimonial2: React.FC<ILevoBlockBaseProps<ITestimonial2Content>> = ({
47
45
  <Box elementKey="badge-container">
48
46
  <Typography elementKey="badge-text" />
49
47
  </Box>
50
- <Heading elementKey="title" />
48
+ <Box elementKey="text-container">
49
+ <Heading elementKey="title" />
50
+ <Typography elementKey="description" />
51
+ </Box>
51
52
  </Box>
52
53
  {count > 0 && (
53
54
  <Box elementKey="carousel-navigation-top-container">
@@ -88,35 +89,18 @@ const Testimonial2: React.FC<ILevoBlockBaseProps<ITestimonial2Content>> = ({
88
89
  <CarouselItem key={index} data-levo_group_item>
89
90
  <Box elementKey={`testimonials.${index}.testimonial`}>
90
91
  <Box elementKey={`testimonials.${index}.cover-container`}>
91
- <Media
92
- elementKey={`testimonials.${index}.cover`}
93
- alt="cover"
94
- />
92
+ <Media elementKey={`testimonials.${index}.cover`} alt="cover" />
95
93
  <Iframe elementKey={`testimonials.${index}.cover_embed`} />
96
94
  </Box>
97
- <Box
98
- elementKey={`testimonials.${index}.testimonial-content-wrapper`}
99
- >
100
- <Box
101
- elementKey={`testimonials.${index}.testimonial-content`}
102
- >
95
+ <Box elementKey={`testimonials.${index}.testimonial-content-wrapper`}>
96
+ <Box elementKey={`testimonials.${index}.testimonial-content`}>
103
97
  <Icon elementKey={`testimonials.${index}.icon`} />
104
- <Box
105
- elementKey={`testimonials.${index}.testimonial-info`}
106
- >
107
- <Typography
108
- elementKey={`testimonials.${index}.testimonial-text`}
109
- />
98
+ <Box elementKey={`testimonials.${index}.testimonial-info`}>
99
+ <Typography elementKey={`testimonials.${index}.testimonial-text`} />
110
100
 
111
- <Box
112
- elementKey={`testimonials.${index}.author-wrapper`}
113
- >
114
- <Heading
115
- elementKey={`testimonials.${index}.author-name`}
116
- />
117
- <Typography
118
- elementKey={`testimonials.${index}.author-position`}
119
- />
101
+ <Box elementKey={`testimonials.${index}.author-wrapper`}>
102
+ <Heading elementKey={`testimonials.${index}.author-name`} />
103
+ <Typography elementKey={`testimonials.${index}.author-position`} />
120
104
  </Box>
121
105
  </Box>
122
106
  </Box>
@@ -2,23 +2,21 @@ import type { IBlock } from "@levo-so/studio";
2
2
 
3
3
  // Extract image object into a constant for reusability
4
4
  const CLIENT_IMAGE = {
5
- id: "7141014160938075687",
6
- location: "https://space.levo.so/WLZ1TXTD/defaultblue-tryFJ012mgyH.png",
5
+ id: "moxjZ3I3wRz93",
6
+ filename: "testimonial-3.png",
7
7
  kind: "image",
8
- mimetype: "image/png",
8
+ location: "https://static.levocdn.com/WLZ1TXTD/testimonial-3-try8SJ6V5hI6s.png",
9
9
  srcset: {
10
- "1080w":
11
- "https://space.levo.so/WLZ1TXTD/defaultblue-tryFJ012mgyH-1080w.webp",
12
- "1200w":
13
- "https://space.levo.so/WLZ1TXTD/defaultblue-tryFJ012mgyH-1200w.webp",
14
- "1920w":
15
- "https://space.levo.so/WLZ1TXTD/defaultblue-tryFJ012mgyH-1920w.webp",
16
- "320w": "https://space.levo.so/WLZ1TXTD/defaultblue-tryFJ012mgyH-320w.webp",
17
- "640w": "https://space.levo.so/WLZ1TXTD/defaultblue-tryFJ012mgyH-640w.webp",
18
- "750w": "https://space.levo.so/WLZ1TXTD/defaultblue-tryFJ012mgyH-750w.webp",
19
- "828w": "https://space.levo.so/WLZ1TXTD/defaultblue-tryFJ012mgyH-828w.webp",
20
- path: "https://space.levo.so/WLZ1TXTD/defaultblue-tryFJ012mgyH-640w.webp 640w, https://space.levo.so/WLZ1TXTD/defaultblue-tryFJ012mgyH-1080w.webp 1080w, https://space.levo.so/WLZ1TXTD/defaultblue-tryFJ012mgyH-1200w.webp 1200w, https://space.levo.so/WLZ1TXTD/defaultblue-tryFJ012mgyH-1920w.webp 1920w, https://space.levo.so/WLZ1TXTD/defaultblue-tryFJ012mgyH-320w.webp 320w, https://space.levo.so/WLZ1TXTD/defaultblue-tryFJ012mgyH-750w.webp 750w, https://space.levo.so/WLZ1TXTD/defaultblue-tryFJ012mgyH-828w.webp 828w",
10
+ "1080w": "https://static.levocdn.com/WLZ1TXTD/testimonial-3-try8SJ6V5hI6s-1080w.webp",
11
+ "1200w": "https://static.levocdn.com/WLZ1TXTD/testimonial-3-try8SJ6V5hI6s-1200w.webp",
12
+ "1920w": "https://static.levocdn.com/WLZ1TXTD/testimonial-3-try8SJ6V5hI6s-1920w.webp",
13
+ "320w": "https://static.levocdn.com/WLZ1TXTD/testimonial-3-try8SJ6V5hI6s-320w.webp",
14
+ "640w": "https://static.levocdn.com/WLZ1TXTD/testimonial-3-try8SJ6V5hI6s-640w.webp",
15
+ "750w": "https://static.levocdn.com/WLZ1TXTD/testimonial-3-try8SJ6V5hI6s-750w.webp",
16
+ "828w": "https://static.levocdn.com/WLZ1TXTD/testimonial-3-try8SJ6V5hI6s-828w.webp",
17
+ path: "https://static.levocdn.com/WLZ1TXTD/testimonial-3-try8SJ6V5hI6s-320w.webp 320w, https://static.levocdn.com/WLZ1TXTD/testimonial-3-try8SJ6V5hI6s-640w.webp 640w, https://static.levocdn.com/WLZ1TXTD/testimonial-3-try8SJ6V5hI6s-750w.webp 750w, https://static.levocdn.com/WLZ1TXTD/testimonial-3-try8SJ6V5hI6s-828w.webp 828w, https://static.levocdn.com/WLZ1TXTD/testimonial-3-try8SJ6V5hI6s-1080w.webp 1080w, https://static.levocdn.com/WLZ1TXTD/testimonial-3-try8SJ6V5hI6s-1200w.webp 1200w, https://static.levocdn.com/WLZ1TXTD/testimonial-3-try8SJ6V5hI6s-1920w.webp 1920w",
21
18
  },
19
+ mimetype: "image/png",
22
20
  };
23
21
 
24
22
  // Array of testimonials content
@@ -65,6 +63,8 @@ const DEFAULT_CONTENT = {
65
63
  layout: null,
66
64
  container: null,
67
65
  title: "What Our Clients Say",
66
+ description:
67
+ "What Our Clients Say What Our Clients Say What Our Clients Say What Our Clients Say What Our Clients Say",
68
68
  button_prev: " ",
69
69
  button_next: " ",
70
70
  testimonials: TESTIMONIALS_CONTENT,
@@ -92,59 +92,6 @@ const DEFAULT_CONTENT = {
92
92
 
93
93
  export type ITestimonial3Content = typeof DEFAULT_CONTENT;
94
94
 
95
- // Testimonial field styles
96
- const TESTIMONIAL_STYLE = {
97
- testimonial_wrapper: {
98
- display: "flex",
99
- "flex-direction": "row",
100
- "align-items": "center",
101
- gap: "10xl",
102
- mobile: {
103
- "flex-direction": "column",
104
- },
105
- },
106
- testimonial_content: {
107
- flex: "1 1 0%",
108
- },
109
- author_box: {
110
- "margin-bottom": "6xl",
111
- },
112
- author_name: {
113
- "font-weight": "600",
114
- "font-size": "lg",
115
- color: "text-1",
116
- "margin-bottom": "2xs",
117
- },
118
- author_role: {
119
- color: "text-2",
120
- "font-size": "sm",
121
- },
122
- testimonial_text: {
123
- "font-size": "xl",
124
- "line-height": "1.625",
125
- color: "text-1",
126
- "margin-bottom": "8xl",
127
- },
128
- testimonial_controls: {
129
- display: "flex",
130
- gap: "base",
131
- },
132
- image_box: {
133
- flex: "1 1 0%",
134
- display: "flex",
135
- "justify-content": "center",
136
- },
137
- client_image: {
138
- height: "18rem",
139
- "object-fit": "cover",
140
- "border-radius": "base",
141
- },
142
- };
143
-
144
- const TESTIMONIALS_STYLES = Array.from({ length: 3 }, () =>
145
- JSON.parse(JSON.stringify(TESTIMONIAL_STYLE)),
146
- );
147
-
148
95
  export const Testimonial3: IBlock = {
149
96
  category_id: "testimonial",
150
97
  title: "Testimonial 3",
@@ -161,11 +108,21 @@ export const Testimonial3: IBlock = {
161
108
  label: "Container",
162
109
  field_interface: "ContainerWidget",
163
110
  },
111
+ {
112
+ key: "header",
113
+ label: "Header",
114
+ field_interface: "BoxWidget",
115
+ },
164
116
  {
165
117
  key: "title",
166
118
  label: "Title",
167
119
  field_interface: "HeadingWidget",
168
120
  },
121
+ {
122
+ key: "description",
123
+ label: "Description",
124
+ field_interface: "TypographyWidget",
125
+ },
169
126
  {
170
127
  key: "testimonials",
171
128
  label: "Testimonials",
@@ -189,7 +146,7 @@ export const Testimonial3: IBlock = {
189
146
  {
190
147
  key: "author_name",
191
148
  label: "Author Name",
192
- field_interface: "TypographyWidget",
149
+ field_interface: "HeadingWidget",
193
150
  },
194
151
  {
195
152
  key: "author_role",
@@ -234,17 +191,134 @@ export const Testimonial3: IBlock = {
234
191
  key: "default",
235
192
  title: "Default",
236
193
  styles: {
237
- container: {
238
- "padding-top": "10xl",
239
- "padding-bottom": "10xl",
240
- },
194
+ container: {},
241
195
  title: {
242
- "margin-bottom": "5xl",
243
196
  tablet: {
244
197
  "text-align": "center",
245
198
  },
246
199
  },
247
- testimonials: TESTIMONIALS_STYLES,
200
+ testimonials: [
201
+ {
202
+ testimonial_wrapper: {
203
+ display: "flex",
204
+ "flex-direction": "row",
205
+ "align-items": "center",
206
+ gap: "10xl",
207
+ mobile: {
208
+ "flex-direction": "column",
209
+ },
210
+ },
211
+ testimonial_content: {
212
+ flex: "1 1 0%",
213
+ },
214
+ author_box: {
215
+ "margin-bottom": "6xl",
216
+ },
217
+ author_name: {
218
+ "font-weight": 600,
219
+ "margin-bottom": "4xs",
220
+ },
221
+ author_role: {},
222
+ testimonial_text: {
223
+ "margin-bottom": "8xl",
224
+ },
225
+ testimonial_controls: {
226
+ display: "flex",
227
+ gap: "base",
228
+ },
229
+ image_box: {
230
+ flex: "1 1 0%",
231
+ display: "flex",
232
+ "justify-content": "center",
233
+ },
234
+ client_image: {
235
+ height: "18rem",
236
+ "object-fit": "cover",
237
+ "border-radius": "base",
238
+ },
239
+ },
240
+ {
241
+ testimonial_wrapper: {
242
+ display: "flex",
243
+ "flex-direction": "row",
244
+ "align-items": "center",
245
+ gap: "10xl",
246
+ mobile: {
247
+ "flex-direction": "column",
248
+ },
249
+ },
250
+ testimonial_content: {
251
+ flex: "1 1 0%",
252
+ },
253
+ author_box: {
254
+ "margin-bottom": "6xl",
255
+ },
256
+ author_name: {
257
+ "font-weight": 600,
258
+ "margin-bottom": "4xs",
259
+ },
260
+ author_role: {},
261
+ testimonial_text: {
262
+ "margin-bottom": "8xl",
263
+ },
264
+ testimonial_controls: {
265
+ display: "flex",
266
+ gap: "base",
267
+ },
268
+ image_box: {
269
+ flex: "1 1 0%",
270
+ display: "flex",
271
+ "justify-content": "center",
272
+ },
273
+ client_image: {
274
+ height: "18rem",
275
+ "object-fit": "cover",
276
+ "border-radius": "base",
277
+ },
278
+ },
279
+ {
280
+ testimonial_wrapper: {
281
+ display: "flex",
282
+ "flex-direction": "row",
283
+ "align-items": "center",
284
+ gap: "10xl",
285
+ mobile: {
286
+ "flex-direction": "column",
287
+ },
288
+ },
289
+ testimonial_content: {
290
+ flex: "1 1 0%",
291
+ },
292
+ author_box: {
293
+ "margin-bottom": "6xl",
294
+ },
295
+ author_name: {
296
+ "font-weight": 600,
297
+ "margin-bottom": "4xs",
298
+ },
299
+ author_role: {},
300
+ testimonial_text: {
301
+ "margin-bottom": "8xl",
302
+ },
303
+ testimonial_controls: {
304
+ display: "flex",
305
+ gap: "base",
306
+ },
307
+ image_box: {
308
+ flex: "1 1 0%",
309
+ display: "flex",
310
+ "justify-content": "center",
311
+ },
312
+ client_image: {
313
+ height: "18rem",
314
+ "object-fit": "cover",
315
+ "border-radius": "base",
316
+ },
317
+ },
318
+ ],
319
+ header: {
320
+ "margin-bottom": "5xl",
321
+ },
248
322
  },
249
323
  content: DEFAULT_CONTENT,
250
324
  config: {
@@ -267,6 +341,68 @@ export const Testimonial3: IBlock = {
267
341
  Heading_Level: "H2",
268
342
  },
269
343
  },
344
+ testimonials: [
345
+ {
346
+ testimonial_text: {
347
+ selectedVariants: {
348
+ Typography_Variants: "Lead",
349
+ },
350
+ },
351
+ author_role: {
352
+ selectedVariants: {
353
+ Typography_Variants: "Small",
354
+ },
355
+ },
356
+ author_name: {
357
+ heading: {
358
+ level: "4",
359
+ },
360
+ selectedVariants: {
361
+ Heading_Level: "H5",
362
+ },
363
+ },
364
+ },
365
+ {
366
+ author_role: {
367
+ selectedVariants: {
368
+ Typography_Variants: "Small",
369
+ },
370
+ },
371
+ testimonial_text: {
372
+ selectedVariants: {
373
+ Typography_Variants: "Lead",
374
+ },
375
+ },
376
+ author_name: {
377
+ selectedVariants: {
378
+ Heading_Level: "H5",
379
+ },
380
+ heading: {
381
+ level: "4",
382
+ },
383
+ },
384
+ },
385
+ {
386
+ author_role: {
387
+ selectedVariants: {
388
+ Typography_Variants: "Small",
389
+ },
390
+ },
391
+ testimonial_text: {
392
+ selectedVariants: {
393
+ Typography_Variants: "Lead",
394
+ },
395
+ },
396
+ author_name: {
397
+ selectedVariants: {
398
+ Heading_Level: "H5",
399
+ },
400
+ heading: {
401
+ level: "4",
402
+ },
403
+ },
404
+ },
405
+ ],
270
406
  },
271
407
  },
272
408
  ],
@@ -2,25 +2,23 @@
2
2
 
3
3
  import type { CarouselApi } from "@levo-so/studio";
4
4
  import {
5
- type ILevoBlockBaseProps,
5
+ Box,
6
6
  Button,
7
- Heading,
8
- Image,
9
- Typography,
10
- Container,
11
- Section,
12
7
  Carousel,
13
8
  CarouselContent,
14
9
  CarouselItem,
15
- Box,
10
+ Container,
11
+ Heading,
12
+ type ILevoBlockBaseProps,
13
+ Image,
14
+ Section,
15
+ Typography,
16
16
  } from "@levo-so/studio";
17
17
  import { useEffect, useState } from "react";
18
18
 
19
19
  import type { ITestimonial3Content } from "./testimonial-3.schema";
20
20
 
21
- const Testimonial3: React.FC<ILevoBlockBaseProps<ITestimonial3Content>> = ({
22
- content,
23
- }) => {
21
+ const Testimonial3: React.FC<ILevoBlockBaseProps<ITestimonial3Content>> = ({ content }) => {
24
22
  const [api, setApi] = useState<CarouselApi>();
25
23
  const [current, setCurrent] = useState(0);
26
24
  const [count, setCount] = useState(0);
@@ -56,7 +54,10 @@ const Testimonial3: React.FC<ILevoBlockBaseProps<ITestimonial3Content>> = ({
56
54
  return (
57
55
  <Section elementKey="layout">
58
56
  <Container elementKey="container">
59
- <Heading elementKey="title" />
57
+ <Box elementKey="header">
58
+ <Heading elementKey="title" />
59
+ <Typography elementKey="description" />
60
+ </Box>
60
61
  <Carousel
61
62
  elementKey="testimonials_levoGroup"
62
63
  className="w-full"
@@ -66,25 +67,14 @@ const Testimonial3: React.FC<ILevoBlockBaseProps<ITestimonial3Content>> = ({
66
67
  <CarouselContent>
67
68
  {(content?.testimonials ?? [])?.map((_, index) => (
68
69
  <CarouselItem key={index} className="flex w-full">
69
- <Box
70
- elementKey={`testimonials.${index}.testimonial_wrapper`}
71
- data-levo_group_item
72
- >
70
+ <Box elementKey={`testimonials.${index}.testimonial_wrapper`} data-levo_group_item>
73
71
  <Box elementKey={`testimonials.${index}.testimonial_content`}>
74
72
  <Box elementKey={`testimonials.${index}.author_box`}>
75
- <Typography
76
- elementKey={`testimonials.${index}.author_name`}
77
- />
78
- <Typography
79
- elementKey={`testimonials.${index}.author_role`}
80
- />
73
+ <Heading elementKey={`testimonials.${index}.author_name`} />
74
+ <Typography elementKey={`testimonials.${index}.author_role`} />
81
75
  </Box>
82
- <Typography
83
- elementKey={`testimonials.${index}.testimonial_text`}
84
- />
85
- <Box
86
- elementKey={`testimonials.${index}.testimonial_controls`}
87
- >
76
+ <Typography elementKey={`testimonials.${index}.testimonial_text`} />
77
+ <Box elementKey={`testimonials.${index}.testimonial_controls`}>
88
78
  <Button
89
79
  elementKey="button_prev"
90
80
  onClick={handlePrevious}