@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,25 +1,59 @@
1
1
  import type { IBlock } from "@levo-so/studio";
2
2
 
3
- const DUMMY_IMAGE = {
4
- id: "7141014160938075687",
5
- location: "https://space.levo.so/WLZ1TXTD/defaultblue-tryFJ012mgyH.png",
3
+ const MEDIA_1 = {
4
+ id: "74dGgDI5SuDxp",
5
+ filename: "hero-8-1.png",
6
6
  kind: "image",
7
+ location: "https://static.levocdn.com/WLZ1TXTD/hero-8-1-eg6wFl4GZxLtF.png",
8
+ srcset: {
9
+ "1080w": "https://static.levocdn.com/WLZ1TXTD/hero-8-1-eg6wFl4GZxLtF-1080w.webp",
10
+ "1200w": "https://static.levocdn.com/WLZ1TXTD/hero-8-1-eg6wFl4GZxLtF-1200w.webp",
11
+ "1920w": "https://static.levocdn.com/WLZ1TXTD/hero-8-1-eg6wFl4GZxLtF-1920w.webp",
12
+ "320w": "https://static.levocdn.com/WLZ1TXTD/hero-8-1-eg6wFl4GZxLtF-320w.webp",
13
+ "640w": "https://static.levocdn.com/WLZ1TXTD/hero-8-1-eg6wFl4GZxLtF-640w.webp",
14
+ "750w": "https://static.levocdn.com/WLZ1TXTD/hero-8-1-eg6wFl4GZxLtF-750w.webp",
15
+ "828w": "https://static.levocdn.com/WLZ1TXTD/hero-8-1-eg6wFl4GZxLtF-828w.webp",
16
+ path: "https://static.levocdn.com/WLZ1TXTD/hero-8-1-eg6wFl4GZxLtF-1080w.webp 1080w, https://static.levocdn.com/WLZ1TXTD/hero-8-1-eg6wFl4GZxLtF-1200w.webp 1200w, https://static.levocdn.com/WLZ1TXTD/hero-8-1-eg6wFl4GZxLtF-1920w.webp 1920w, https://static.levocdn.com/WLZ1TXTD/hero-8-1-eg6wFl4GZxLtF-320w.webp 320w, https://static.levocdn.com/WLZ1TXTD/hero-8-1-eg6wFl4GZxLtF-640w.webp 640w, https://static.levocdn.com/WLZ1TXTD/hero-8-1-eg6wFl4GZxLtF-750w.webp 750w, https://static.levocdn.com/WLZ1TXTD/hero-8-1-eg6wFl4GZxLtF-828w.webp 828w",
17
+ },
18
+ mimetype: "image/png",
19
+ };
20
+ const MEDIA_2 = {
21
+ id: "pKkevltJxha9k",
22
+ filename: "hero-8-2.png",
23
+ kind: "image",
24
+ location: "https://static.levocdn.com/WLZ1TXTD/hero-8-2-DNP35s1aEu6ho.png",
25
+ srcset: {
26
+ "1080w": "https://static.levocdn.com/WLZ1TXTD/hero-8-2-DNP35s1aEu6ho-1080w.webp",
27
+ "1200w": "https://static.levocdn.com/WLZ1TXTD/hero-8-2-DNP35s1aEu6ho-1200w.webp",
28
+ "1920w": "https://static.levocdn.com/WLZ1TXTD/hero-8-2-DNP35s1aEu6ho-1920w.webp",
29
+ "320w": "https://static.levocdn.com/WLZ1TXTD/hero-8-2-DNP35s1aEu6ho-320w.webp",
30
+ "640w": "https://static.levocdn.com/WLZ1TXTD/hero-8-2-DNP35s1aEu6ho-640w.webp",
31
+ "750w": "https://static.levocdn.com/WLZ1TXTD/hero-8-2-DNP35s1aEu6ho-750w.webp",
32
+ "828w": "https://static.levocdn.com/WLZ1TXTD/hero-8-2-DNP35s1aEu6ho-828w.webp",
33
+ path: "https://static.levocdn.com/WLZ1TXTD/hero-8-2-DNP35s1aEu6ho-640w.webp 640w, https://static.levocdn.com/WLZ1TXTD/hero-8-2-DNP35s1aEu6ho-828w.webp 828w, https://static.levocdn.com/WLZ1TXTD/hero-8-2-DNP35s1aEu6ho-1080w.webp 1080w, https://static.levocdn.com/WLZ1TXTD/hero-8-2-DNP35s1aEu6ho-1200w.webp 1200w, https://static.levocdn.com/WLZ1TXTD/hero-8-2-DNP35s1aEu6ho-1920w.webp 1920w, https://static.levocdn.com/WLZ1TXTD/hero-8-2-DNP35s1aEu6ho-320w.webp 320w, https://static.levocdn.com/WLZ1TXTD/hero-8-2-DNP35s1aEu6ho-750w.webp 750w",
34
+ },
7
35
  mimetype: "image/png",
36
+ };
37
+ const MEDIA_3 = {
38
+ id: "rSCtjlLkzA4Ps",
39
+ filename: "hero-8-3.png",
40
+ kind: "image",
41
+ location: "https://static.levocdn.com/WLZ1TXTD/hero-8-3-1d791LgEXOxKz.png",
8
42
  srcset: {
9
- "1080w":
10
- "https://space.levo.so/WLZ1TXTD/defaultblue-tryFJ012mgyH-1080w.webp",
11
- "1200w":
12
- "https://space.levo.so/WLZ1TXTD/defaultblue-tryFJ012mgyH-1200w.webp",
13
- "1920w":
14
- "https://space.levo.so/WLZ1TXTD/defaultblue-tryFJ012mgyH-1920w.webp",
15
- "320w": "https://space.levo.so/WLZ1TXTD/defaultblue-tryFJ012mgyH-320w.webp",
16
- "640w": "https://space.levo.so/WLZ1TXTD/defaultblue-tryFJ012mgyH-640w.webp",
17
- "750w": "https://space.levo.so/WLZ1TXTD/defaultblue-tryFJ012mgyH-750w.webp",
18
- "828w": "https://space.levo.so/WLZ1TXTD/defaultblue-tryFJ012mgyH-828w.webp",
19
- 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",
43
+ "1080w": "https://static.levocdn.com/WLZ1TXTD/hero-8-3-1d791LgEXOxKz-1080w.webp",
44
+ "1200w": "https://static.levocdn.com/WLZ1TXTD/hero-8-3-1d791LgEXOxKz-1200w.webp",
45
+ "1920w": "https://static.levocdn.com/WLZ1TXTD/hero-8-3-1d791LgEXOxKz-1920w.webp",
46
+ "320w": "https://static.levocdn.com/WLZ1TXTD/hero-8-3-1d791LgEXOxKz-320w.webp",
47
+ "640w": "https://static.levocdn.com/WLZ1TXTD/hero-8-3-1d791LgEXOxKz-640w.webp",
48
+ "750w": "https://static.levocdn.com/WLZ1TXTD/hero-8-3-1d791LgEXOxKz-750w.webp",
49
+ "828w": "https://static.levocdn.com/WLZ1TXTD/hero-8-3-1d791LgEXOxKz-828w.webp",
50
+ path: "https://static.levocdn.com/WLZ1TXTD/hero-8-3-1d791LgEXOxKz-1080w.webp 1080w, https://static.levocdn.com/WLZ1TXTD/hero-8-3-1d791LgEXOxKz-1200w.webp 1200w, https://static.levocdn.com/WLZ1TXTD/hero-8-3-1d791LgEXOxKz-1920w.webp 1920w, https://static.levocdn.com/WLZ1TXTD/hero-8-3-1d791LgEXOxKz-320w.webp 320w, https://static.levocdn.com/WLZ1TXTD/hero-8-3-1d791LgEXOxKz-640w.webp 640w, https://static.levocdn.com/WLZ1TXTD/hero-8-3-1d791LgEXOxKz-750w.webp 750w, https://static.levocdn.com/WLZ1TXTD/hero-8-3-1d791LgEXOxKz-828w.webp 828w",
20
51
  },
52
+ mimetype: "image/png",
21
53
  };
22
54
 
55
+ const MEDIA_ARR = [MEDIA_1, MEDIA_2, MEDIA_3];
56
+
23
57
  const DEFAULT_SLIDES_COUNT = 3;
24
58
 
25
59
  const DEFAULT_CONTENT = {
@@ -27,21 +61,26 @@ const DEFAULT_CONTENT = {
27
61
  container: null,
28
62
  header_section: null,
29
63
  title: "Dream homes Delivered",
30
- cta: "Contact Us",
64
+ description:
65
+ "Dream homes Delivered Dream homes Delivered Dream homes Delivered Dream homes Delivered Dream homes Delivered",
66
+ ctas_levoGroup: null,
67
+ ctas: [{ cta: "Contact Us" }, { cta: "Learn More" }],
31
68
  carousel_main_container: null,
32
69
  carousel_navigation: null,
33
70
  carousel_navigation_arrow_left: "←",
34
71
  carousel_navigation_arrow_right: "→",
35
72
 
36
- slides: Array(DEFAULT_SLIDES_COUNT).fill({
37
- slide_wrapper: null,
38
- left_container: null,
39
- description:
40
- "Discover stunning properties in prime locations tailored to your lifestyle.",
41
- slide_cta: "Explore Projects",
42
- right_container: null,
43
- image: DUMMY_IMAGE,
44
- }),
73
+ slides: Array(DEFAULT_SLIDES_COUNT)
74
+ .fill(0)
75
+ .map((_, index) => ({
76
+ slide_wrapper: null,
77
+ left_container: null,
78
+ description: "Discover stunning properties in prime locations tailored to your lifestyle.",
79
+ slide_ctas_levoGroup: null,
80
+ slide_ctas: [{ slide_cta: "Explore Projects" }, { slide_cta: "View Gallery" }],
81
+ right_container: null,
82
+ image: MEDIA_ARR[index],
83
+ })),
45
84
  };
46
85
 
47
86
  export type IHero8Content = typeof DEFAULT_CONTENT;
@@ -81,6 +120,11 @@ export const Hero8: IBlock = {
81
120
  "Container for the main title and CTA button at the top. No content—structural only.",
82
121
  },
83
122
  },
123
+ {
124
+ key: "header_content",
125
+ label: "Header Content",
126
+ field_interface: "BoxWidget",
127
+ },
84
128
  {
85
129
  key: "title",
86
130
  label: "Main Title",
@@ -93,15 +137,28 @@ export const Hero8: IBlock = {
93
137
  },
94
138
  },
95
139
  {
96
- key: "cta",
97
- label: "Main CTA",
98
- field_interface: "ButtonWidget",
99
- hint: {
100
- prompt_description:
101
- "Primary call-to-action button for the hero section. Use action-oriented text like 'Get Started', 'Learn More', 'Contact Us'.",
102
- min_characters: 8,
103
- max_characters: 20,
104
- },
140
+ key: "description",
141
+ label: "Main Description",
142
+ field_interface: "TypographyWidget",
143
+ },
144
+ {
145
+ key: "ctas",
146
+ label: "Main CTAs",
147
+ field_interface: "BoxWidget",
148
+ kind: "group",
149
+ fields: [
150
+ {
151
+ key: "cta",
152
+ label: "Main CTA",
153
+ field_interface: "ButtonWidget",
154
+ hint: {
155
+ prompt_description:
156
+ "Primary call-to-action button for the hero section. Use action-oriented text like 'Get Started', 'Learn More', 'Contact Us'.",
157
+ min_characters: 8,
158
+ max_characters: 20,
159
+ },
160
+ },
161
+ ],
105
162
  },
106
163
  {
107
164
  key: "carousel_main_container",
@@ -117,8 +174,7 @@ export const Hero8: IBlock = {
117
174
  label: "Carousel Navigation",
118
175
  field_interface: "BoxWidget",
119
176
  hint: {
120
- prompt_description:
121
- "Container for carousel navigation arrows. No content—structural only.",
177
+ prompt_description: "Container for carousel navigation arrows. No content—structural only.",
122
178
  },
123
179
  },
124
180
  {
@@ -179,15 +235,17 @@ export const Hero8: IBlock = {
179
235
  },
180
236
  },
181
237
  {
182
- key: "slide_cta",
183
- label: "Slide CTA",
184
- field_interface: "ButtonWidget",
185
- hint: {
186
- prompt_description:
187
- "Call-to-action button for each slide. Use action-oriented text that relates to the slide content.",
188
- min_characters: 8,
189
- max_characters: 20,
190
- },
238
+ key: "slide_ctas",
239
+ label: "Slide CTA Buttons Group",
240
+ field_interface: "BoxWidget",
241
+ kind: "group",
242
+ fields: [
243
+ {
244
+ key: "slide_cta",
245
+ label: "Slide CTA Button",
246
+ field_interface: "ButtonWidget",
247
+ },
248
+ ],
191
249
  },
192
250
  {
193
251
  key: "right_container",
@@ -224,17 +282,8 @@ export const Hero8: IBlock = {
224
282
  title: "Default",
225
283
  key: "default",
226
284
  styles: {
227
- layout: {
228
- "padding-top": "3xl",
229
- "padding-bottom": "3xl",
230
- },
231
- container: {
232
- "max-width": "1280px",
233
- "margin-left": "auto",
234
- "margin-right": "auto",
235
- "padding-left": "xl",
236
- "padding-right": "xl",
237
- },
285
+ layout: {},
286
+ container: {},
238
287
  header_section: {
239
288
  display: "flex",
240
289
  "justify-content": "space-between",
@@ -247,20 +296,17 @@ export const Hero8: IBlock = {
247
296
  },
248
297
  },
249
298
  title: {
250
- color: "text-1",
251
299
  mobile: {
252
300
  "text-align": "center",
253
301
  },
254
302
  },
255
- cta: {
256
- "background-color": "background-2",
257
- color: "text-1",
258
- "padding-top": "base",
259
- "padding-bottom": "base",
260
- "padding-left": "xl",
261
- "padding-right": "xl",
262
- "border-color": "border",
303
+ ctas_levoGroup: {
304
+ display: "flex",
305
+ "flex-direction": "row",
306
+ "align-items": "center",
307
+ gap: "sm",
263
308
  },
309
+ ctas: Array(2).map(() => ({})),
264
310
  carousel_main_container: {
265
311
  "margin-bottom": "xl",
266
312
  },
@@ -271,89 +317,193 @@ export const Hero8: IBlock = {
271
317
  "align-items": "center",
272
318
  "margin-top": "lg",
273
319
  },
274
- carousel_navigation_arrow_left: {
275
- "background-color": "background-2",
276
- color: "text-1",
277
- "padding-top": "sm",
278
- "padding-bottom": "sm",
279
- "padding-left": "base",
280
- "padding-right": "base",
281
- "border-color": "border",
282
- "border-radius": "base",
283
- },
284
- carousel_navigation_arrow_right: {
285
- "background-color": "background-2",
286
- color: "text-1",
287
- "padding-top": "sm",
288
- "padding-bottom": "sm",
289
- "padding-left": "base",
290
- "padding-right": "base",
291
- "border-color": "border",
292
- "border-radius": "base",
293
- },
294
- slides: Array(DEFAULT_SLIDES_COUNT).fill({
295
- slide_wrapper: {
296
- display: "grid",
297
- "grid-template-columns": "1fr 1fr",
298
- "column-gap": "2xl",
299
- "align-items": "center",
300
- "min-height": "400px",
301
- mobile: {
302
- "grid-template-columns": "1fr",
303
- "row-gap": "xl",
304
- "min-height": "auto",
320
+ carousel_navigation_arrow_left: {},
321
+ carousel_navigation_arrow_right: {},
322
+ slides: [
323
+ {
324
+ slide_wrapper: {
325
+ display: "grid",
326
+ "grid-template-columns": "1fr 1fr",
327
+ "column-gap": "2xl",
328
+ "align-items": "center",
329
+ "min-height": "400px",
330
+ mobile: {
331
+ "grid-template-columns": "1fr",
332
+ "row-gap": "xl",
333
+ "min-height": "auto",
334
+ },
305
335
  },
306
- },
307
- left_container: {
308
- display: "flex",
309
- "flex-direction": "column",
310
- "row-gap": "lg",
311
- mobile: {
312
- "text-align": "center",
313
- "row-gap": "base",
336
+ left_container: {
337
+ display: "flex",
338
+ "flex-direction": "column",
339
+ "row-gap": "lg",
340
+ mobile: {
341
+ "text-align": "center",
342
+ "row-gap": "base",
343
+ },
314
344
  },
315
- },
316
- description: {
317
- "font-size": "lg",
318
- "line-height": "1.6",
319
- color: "text-1",
320
- "max-width": "500px",
321
- mobile: {
322
- "font-size": "base",
323
- "max-width": "100%",
345
+ description: {
346
+ "max-width": "500px",
347
+ mobile: {
348
+ "max-width": "100%",
349
+ },
324
350
  },
325
- },
326
- slide_cta: {
327
- "background-color": "background-2",
328
- color: "text-1",
329
- "padding-top": "sm",
330
- "padding-bottom": "sm",
331
- "padding-left": "lg",
332
- "padding-right": "lg",
333
- "border-color": "border",
334
- "align-self": "flex-start",
335
- mobile: {
336
- "align-self": "center",
351
+ slide_ctas_levoGroup: {
352
+ display: "flex",
353
+ "flex-direction": "row",
354
+ "column-gap": "md",
355
+ "row-gap": "md",
356
+ "flex-wrap": "wrap",
357
+ "align-items": "center",
358
+ "align-self": "flex-start",
359
+ mobile: {
360
+ "align-self": "center",
361
+ },
362
+ },
363
+ slide_ctas: Array(2)
364
+ .fill(0)
365
+ .map(() => ({ slide_cta: {} })),
366
+ right_container: {
367
+ display: "flex",
368
+ "justify-content": "center",
369
+ "align-items": "center",
370
+ mobile: {
371
+ order: "-1",
372
+ },
373
+ },
374
+ image: {
375
+ width: "100%",
376
+ height: "300px",
377
+ "object-fit": "cover",
378
+ "border-radius": "base",
379
+ mobile: {
380
+ height: "250px",
381
+ },
337
382
  },
338
383
  },
339
- right_container: {
340
- display: "flex",
341
- "justify-content": "center",
342
- "align-items": "center",
343
- mobile: {
344
- order: "-1",
384
+ {
385
+ slide_wrapper: {
386
+ display: "grid",
387
+ "grid-template-columns": "1fr 1fr",
388
+ "column-gap": "2xl",
389
+ "align-items": "center",
390
+ "min-height": "400px",
391
+ mobile: {
392
+ "grid-template-columns": "1fr",
393
+ "row-gap": "xl",
394
+ "min-height": "auto",
395
+ },
396
+ },
397
+ left_container: {
398
+ display: "flex",
399
+ "flex-direction": "column",
400
+ "row-gap": "lg",
401
+ mobile: {
402
+ "text-align": "center",
403
+ "row-gap": "base",
404
+ },
405
+ },
406
+ description: {
407
+ "max-width": "500px",
408
+ mobile: {
409
+ "max-width": "100%",
410
+ },
411
+ },
412
+ slide_ctas_levoGroup: {
413
+ display: "flex",
414
+ "flex-direction": "row",
415
+ "column-gap": "md",
416
+ "row-gap": "md",
417
+ "flex-wrap": "wrap",
418
+ "align-items": "center",
419
+ "align-self": "flex-start",
420
+ mobile: {
421
+ "align-self": "center",
422
+ },
423
+ },
424
+ slide_ctas: Array(2)
425
+ .fill(0)
426
+ .map(() => ({ slide_cta: {} })),
427
+ right_container: {
428
+ display: "flex",
429
+ "justify-content": "center",
430
+ "align-items": "center",
431
+ mobile: {
432
+ order: "-1",
433
+ },
434
+ },
435
+ image: {
436
+ width: "100%",
437
+ height: "300px",
438
+ "object-fit": "cover",
439
+ "border-radius": "base",
440
+ mobile: {
441
+ height: "250px",
442
+ },
345
443
  },
346
444
  },
347
- image: {
348
- width: "100%",
349
- height: "300px",
350
- "object-fit": "cover",
351
- "border-radius": "base",
352
- mobile: {
353
- height: "250px",
445
+ {
446
+ slide_wrapper: {
447
+ display: "grid",
448
+ "grid-template-columns": "1fr 1fr",
449
+ "column-gap": "2xl",
450
+ "align-items": "center",
451
+ "min-height": "400px",
452
+ mobile: {
453
+ "grid-template-columns": "1fr",
454
+ "row-gap": "xl",
455
+ "min-height": "auto",
456
+ },
457
+ },
458
+ left_container: {
459
+ display: "flex",
460
+ "flex-direction": "column",
461
+ "row-gap": "lg",
462
+ mobile: {
463
+ "text-align": "center",
464
+ "row-gap": "base",
465
+ },
466
+ },
467
+ description: {
468
+ "max-width": "500px",
469
+ mobile: {
470
+ "max-width": "100%",
471
+ },
472
+ },
473
+ slide_ctas_levoGroup: {
474
+ display: "flex",
475
+ "flex-direction": "row",
476
+ "column-gap": "md",
477
+ "row-gap": "md",
478
+ "flex-wrap": "wrap",
479
+ "align-items": "center",
480
+ "align-self": "flex-start",
481
+ mobile: {
482
+ "align-self": "center",
483
+ },
484
+ },
485
+ slide_ctas: Array(2)
486
+ .fill(0)
487
+ .map(() => ({ slide_cta: {} })),
488
+ right_container: {
489
+ display: "flex",
490
+ "justify-content": "center",
491
+ "align-items": "center",
492
+ mobile: {
493
+ order: "-1",
494
+ },
495
+ },
496
+ image: {
497
+ width: "100%",
498
+ height: "300px",
499
+ "object-fit": "cover",
500
+ "border-radius": "base",
501
+ mobile: {
502
+ height: "250px",
503
+ },
354
504
  },
355
505
  },
356
- }),
506
+ ],
357
507
  },
358
508
  content: DEFAULT_CONTENT,
359
509
  config: {
@@ -370,6 +520,60 @@ export const Hero8: IBlock = {
370
520
  Heading_Level: "H1",
371
521
  },
372
522
  },
523
+ slides: [
524
+ {
525
+ description: {
526
+ selectedVariants: {
527
+ Typography_Variants: "Lead",
528
+ },
529
+ },
530
+ slide_ctas: Array(2)
531
+ .fill(0)
532
+ .map(() => ({
533
+ slide_cta: {
534
+ selectedVariants: {},
535
+ },
536
+ })),
537
+ },
538
+ {
539
+ slide_ctas: Array(2)
540
+ .fill(0)
541
+ .map(() => ({
542
+ slide_cta: {
543
+ selectedVariants: {},
544
+ },
545
+ })),
546
+ description: {
547
+ selectedVariants: {
548
+ Typography_Variants: "Lead",
549
+ },
550
+ },
551
+ },
552
+ {
553
+ slide_ctas: Array(2)
554
+ .fill(0)
555
+ .map(() => ({
556
+ slide_cta: {
557
+ selectedVariants: {},
558
+ },
559
+ })),
560
+ description: {
561
+ selectedVariants: {
562
+ Typography_Variants: "Lead",
563
+ },
564
+ },
565
+ },
566
+ ],
567
+ carousel_navigation_arrow_right: {
568
+ selectedVariants: {
569
+ Button_Variants: "Secondary",
570
+ },
571
+ },
572
+ carousel_navigation_arrow_left: {
573
+ selectedVariants: {
574
+ Button_Variants: "Secondary",
575
+ },
576
+ },
373
577
  },
374
578
  },
375
579
  ],
@@ -2,7 +2,6 @@
2
2
 
3
3
  import type { CarouselApi } from "@levo-so/studio";
4
4
  import {
5
- type ILevoBlockBaseProps,
6
5
  Box,
7
6
  Button,
8
7
  Carousel,
@@ -10,6 +9,7 @@ import {
10
9
  CarouselItem,
11
10
  Container,
12
11
  Heading,
12
+ type ILevoBlockBaseProps,
13
13
  Image,
14
14
  Section,
15
15
  Typography,
@@ -56,22 +56,35 @@ const Hero8: React.FC<ILevoBlockBaseProps<IHero8Content>> = ({ content }) => {
56
56
  <Section elementKey="layout">
57
57
  <Container elementKey="container">
58
58
  <Box elementKey="header_section">
59
- <Heading elementKey="title" />
60
- <Button elementKey="cta" />
59
+ <Box elementKey="header_content">
60
+ <Heading elementKey="title" />
61
+ <Typography elementKey="description" />
62
+ </Box>
63
+ <Box elementKey="ctas_levoGroup" data-levo_group>
64
+ {(content?.ctas ?? []).map((_: any, ctaIndex: number) => (
65
+ <Button key={ctaIndex} elementKey={`ctas.${ctaIndex}.cta`} data-levo_group_item />
66
+ ))}
67
+ </Box>
61
68
  </Box>
62
69
  <Box elementKey="carousel_main_container">
63
- <Carousel
64
- elementKey="slides_levoGroup"
65
- setApi={setApi}
66
- data-levo_group
67
- >
70
+ <Carousel elementKey="slides_levoGroup" setApi={setApi} data-levo_group>
68
71
  <CarouselContent>
69
72
  {(content?.slides ?? []).map((_: any, index: number) => (
70
73
  <CarouselItem key={index} data-levo_group_item>
71
74
  <Box elementKey={`slides.${index}.slide_wrapper`}>
72
75
  <Box elementKey={`slides.${index}.left_container`}>
73
76
  <Typography elementKey={`slides.${index}.description`} />
74
- <Button elementKey={`slides.${index}.slide_cta`} />
77
+ <Box elementKey={`slides.${index}.slide_ctas_levoGroup`} data-levo_group>
78
+ {(content?.slides?.[index]?.slide_ctas ?? []).map(
79
+ (_: any, ctaIndex: number) => (
80
+ <Button
81
+ key={`slides.${index}.slide_ctas.${ctaIndex}.slide_cta`}
82
+ elementKey={`slides.${index}.slide_ctas.${ctaIndex}.slide_cta`}
83
+ data-levo_group_item
84
+ />
85
+ ),
86
+ )}
87
+ </Box>
75
88
  {count > 0 && index === current && (
76
89
  <Box elementKey="carousel_navigation">
77
90
  <Button
@@ -96,10 +109,7 @@ const Hero8: React.FC<ILevoBlockBaseProps<IHero8Content>> = ({ content }) => {
96
109
  )}
97
110
  </Box>
98
111
  <Box elementKey={`slides.${index}.right_container`}>
99
- <Image
100
- elementKey={`slides.${index}.image`}
101
- alt="Slide image"
102
- />
112
+ <Image elementKey={`slides.${index}.image`} alt="Slide image" />
103
113
  </Box>
104
114
  </Box>
105
115
  </CarouselItem>