@levo-so/blocks 0.1.0 → 0.1.2

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 (471) hide show
  1. package/package.json +5 -9
  2. package/src/blocks/about-us/about-us-1.schema.ts +563 -0
  3. package/src/blocks/about-us/about-us-1.tsx +53 -0
  4. package/src/blocks/blogs/blog-listing-1.schema.ts +419 -0
  5. package/src/blocks/blogs/blog-listing-1.tsx +79 -0
  6. package/src/blocks/blogs/blog-listing-2.schema.ts +608 -0
  7. package/src/blocks/blogs/blog-listing-2.tsx +83 -0
  8. package/src/blocks/blogs/blog-post-1.schema.ts +392 -0
  9. package/src/blocks/blogs/blog-post-1.tsx +52 -0
  10. package/src/blocks/blogs/blog-post-2.schema.ts +834 -0
  11. package/src/blocks/blogs/blog-post-2.tsx +131 -0
  12. package/src/blocks/cards/cards-10.schema.ts +433 -0
  13. package/src/blocks/cards/cards-10.tsx +46 -0
  14. package/src/blocks/cards/cards-11.schema.ts +440 -0
  15. package/src/blocks/cards/cards-11.tsx +50 -0
  16. package/src/blocks/cards/cards-12.schema.ts +578 -0
  17. package/src/blocks/cards/cards-12.tsx +54 -0
  18. package/src/blocks/cards/cards-2.schema.ts +293 -0
  19. package/src/blocks/cards/cards-2.tsx +42 -0
  20. package/src/blocks/cards/cards-3.schema.ts +365 -0
  21. package/src/blocks/cards/cards-3.tsx +49 -0
  22. package/src/blocks/cards/cards-4.schema.ts +677 -0
  23. package/src/blocks/cards/cards-4.tsx +50 -0
  24. package/src/blocks/cards/cards-5.schema.ts +264 -0
  25. package/src/blocks/cards/cards-5.tsx +34 -0
  26. package/src/blocks/cards/cards-6.schema.ts +639 -0
  27. package/src/blocks/cards/cards-6.tsx +136 -0
  28. package/src/blocks/cards/cards-7.schema.ts +1793 -0
  29. package/src/blocks/cards/cards-7.tsx +165 -0
  30. package/src/blocks/cards/cards-8.schema.ts +691 -0
  31. package/src/blocks/cards/cards-8.tsx +43 -0
  32. package/src/blocks/cards/cards-9.schema.ts +827 -0
  33. package/src/blocks/cards/cards-9.tsx +54 -0
  34. package/src/blocks/carousel/carousel-1.schema.ts +250 -0
  35. package/src/blocks/carousel/carousel-1.tsx +79 -0
  36. package/src/blocks/contact-us/contact-us-1.schema.ts +226 -0
  37. package/src/blocks/contact-us/contact-us-1.tsx +39 -0
  38. package/src/blocks/contact-us/contact-us-2.schema.ts +524 -0
  39. package/src/blocks/contact-us/contact-us-2.tsx +71 -0
  40. package/src/blocks/content/content-1.schema.ts +884 -0
  41. package/src/blocks/content/content-1.tsx +69 -0
  42. package/src/blocks/content/content-2.schema.ts +209 -0
  43. package/src/blocks/content/content-2.tsx +32 -0
  44. package/src/blocks/content/content-3.schema.ts +864 -0
  45. package/src/blocks/content/content-3.tsx +54 -0
  46. package/src/blocks/content/content-4.schema.ts +287 -0
  47. package/src/blocks/content/content-4.tsx +47 -0
  48. package/src/blocks/content/content-5.schema.ts +944 -0
  49. package/src/blocks/content/content-5.tsx +58 -0
  50. package/src/blocks/content/content-6.schema.ts +991 -0
  51. package/src/blocks/content/content-6.tsx +61 -0
  52. package/src/blocks/cta/cta-1.schema.ts +361 -0
  53. package/src/blocks/cta/cta-1.tsx +33 -0
  54. package/src/blocks/cta/cta-2.schema.ts +209 -0
  55. package/src/blocks/cta/cta-2.tsx +28 -0
  56. package/src/blocks/cta/cta-3.schema.ts +156 -0
  57. package/src/blocks/cta/cta-3.tsx +48 -0
  58. package/src/blocks/embed/embed-1.schema.ts +153 -0
  59. package/src/blocks/embed/embed-1.tsx +38 -0
  60. package/src/blocks/event/event-details.schema.ts +737 -0
  61. package/src/blocks/event/event-details.tsx +107 -0
  62. package/src/blocks/event/event-listing-2.schema.ts +496 -0
  63. package/src/blocks/event/event-listing-2.tsx +70 -0
  64. package/src/blocks/event/event-listing-3.schema.ts +605 -0
  65. package/src/blocks/event/event-listing-3.tsx +95 -0
  66. package/src/blocks/event/event-listing.schema.ts +1358 -0
  67. package/src/blocks/event/event-listing.tsx +90 -0
  68. package/src/blocks/faq/faq-1.schema.ts +357 -0
  69. package/src/blocks/faq/faq-1.tsx +65 -0
  70. package/src/blocks/faq/faq-2.schema.ts +356 -0
  71. package/src/blocks/faq/faq-2.tsx +84 -0
  72. package/src/blocks/faq/faq-3.schema.ts +475 -0
  73. package/src/blocks/faq/faq-3.tsx +70 -0
  74. package/src/blocks/features/features-1/features-1.schema.ts +165 -0
  75. package/src/blocks/features/features-1/features-1.tsx +48 -0
  76. package/src/blocks/features/features-1/variants/default.ts +197 -0
  77. package/{dist/blocks/features/features-1/variants/index.js → src/blocks/features/features-1/variants/index.ts} +7 -1
  78. package/src/blocks/features/features-1/variants/stylized-cards-v1.ts +138 -0
  79. package/src/blocks/features/features-1/variants/stylized-cards-v2.ts +487 -0
  80. package/src/blocks/features/features-2.schema.ts +338 -0
  81. package/src/blocks/features/features-2.tsx +66 -0
  82. package/src/blocks/features/features-3.schema.ts +438 -0
  83. package/src/blocks/features/features-3.tsx +56 -0
  84. package/src/blocks/features/features-4.schema.ts +631 -0
  85. package/src/blocks/features/features-4.tsx +75 -0
  86. package/src/blocks/features/features-5.schema.ts +747 -0
  87. package/src/blocks/features/features-5.tsx +49 -0
  88. package/src/blocks/features/features-6.schema.ts +849 -0
  89. package/src/blocks/features/features-6.tsx +125 -0
  90. package/src/blocks/footer/footer-1.schema.ts +589 -0
  91. package/src/blocks/footer/footer-1.tsx +90 -0
  92. package/src/blocks/footer/footer-2.schema.ts +898 -0
  93. package/src/blocks/footer/footer-2.tsx +77 -0
  94. package/src/blocks/footer/footer-3.schema.ts +487 -0
  95. package/src/blocks/footer/footer-3.tsx +100 -0
  96. package/src/blocks/footer/footer-4.schema.ts +644 -0
  97. package/src/blocks/footer/footer-4.tsx +97 -0
  98. package/src/blocks/footer/footer-5.schema.ts +425 -0
  99. package/src/blocks/footer/footer-5.tsx +91 -0
  100. package/src/blocks/hero/hero-1.schema.ts +766 -0
  101. package/src/blocks/hero/hero-1.tsx +52 -0
  102. package/src/blocks/hero/hero-2.schema.ts +316 -0
  103. package/src/blocks/hero/hero-2.tsx +49 -0
  104. package/src/blocks/hero/hero-3.schema.ts +415 -0
  105. package/src/blocks/hero/hero-3.tsx +50 -0
  106. package/src/blocks/hero/hero-4.schema.ts +325 -0
  107. package/src/blocks/hero/hero-4.tsx +89 -0
  108. package/src/blocks/hero/hero-5.schema.ts +192 -0
  109. package/src/blocks/hero/hero-5.tsx +86 -0
  110. package/src/blocks/hero/hero-6.schema.ts +703 -0
  111. package/src/blocks/hero/hero-6.tsx +62 -0
  112. package/src/blocks/hero/hero-7.schema.ts +508 -0
  113. package/src/blocks/hero/hero-7.tsx +115 -0
  114. package/src/blocks/hero/hero-8.schema.ts +372 -0
  115. package/src/blocks/hero/hero-8.tsx +113 -0
  116. package/src/blocks/hero/hero-9.schema.ts +379 -0
  117. package/src/blocks/hero/hero-9.tsx +49 -0
  118. package/src/blocks/index.ts +78 -0
  119. package/src/blocks/logos/logos-1.schema.ts +264 -0
  120. package/src/blocks/logos/logos-1.tsx +60 -0
  121. package/src/blocks/navbar/navbar-1.schema.ts +961 -0
  122. package/src/blocks/navbar/navbar-1.tsx +398 -0
  123. package/src/blocks/navbar/navbar-2.schema.ts +1226 -0
  124. package/src/blocks/navbar/navbar-2.tsx +417 -0
  125. package/src/blocks/pricing/pricing-1.schema.ts +1002 -0
  126. package/src/blocks/pricing/pricing-1.tsx +88 -0
  127. package/src/blocks/products/products-listing-1.schema.ts +274 -0
  128. package/src/blocks/products/products-listing-1.tsx +48 -0
  129. package/src/blocks/stats/stats-1.schema.ts +231 -0
  130. package/src/blocks/stats/stats-1.tsx +38 -0
  131. package/src/blocks/stats/stats-2.schema.ts +111 -0
  132. package/src/blocks/stats/stats-2.tsx +52 -0
  133. package/src/blocks/stats/variants/default.ts +190 -0
  134. package/src/blocks/stats/variants/hero.ts +153 -0
  135. package/{dist/blocks/stats/variants/index.js → src/blocks/stats/variants/index.ts} +1 -0
  136. package/src/blocks/team/team-1.schema.ts +516 -0
  137. package/src/blocks/team/team-1.tsx +80 -0
  138. package/src/blocks/team/team-2.schema.ts +2813 -0
  139. package/src/blocks/team/team-2.tsx +74 -0
  140. package/src/blocks/team/team-3.schema.ts +707 -0
  141. package/src/blocks/team/team-3.tsx +103 -0
  142. package/src/blocks/termsAndPrivacy/terms-and-conditions-1.schema.ts +168 -0
  143. package/src/blocks/termsAndPrivacy/terms-and-conditions-1.tsx +29 -0
  144. package/src/blocks/testimonial/testimonial-1.schema.ts +345 -0
  145. package/src/blocks/testimonial/testimonial-1.tsx +79 -0
  146. package/src/blocks/testimonial/testimonial-2.schema.ts +816 -0
  147. package/src/blocks/testimonial/testimonial-2.tsx +161 -0
  148. package/src/blocks/testimonial/testimonial-3.schema.ts +279 -0
  149. package/src/blocks/testimonial/testimonial-3.tsx +128 -0
  150. package/src/blocks/testimonial/testimonial-4.schema.ts +3373 -0
  151. package/src/blocks/testimonial/testimonial-4.tsx +202 -0
  152. package/src/blocks/testimonial/testimonial-5.schema.ts +434 -0
  153. package/src/blocks/testimonial/testimonial-5.tsx +106 -0
  154. package/src/blocks/testimonial/testimonial-6.schema.ts +709 -0
  155. package/src/blocks/testimonial/testimonial-6.tsx +128 -0
  156. package/{dist/index.js → src/index.ts} +5 -2
  157. package/{dist/schemas/blocks.js → src/schemas/blocks.ts} +75 -72
  158. package/src/schemas/categories.ts +134 -0
  159. package/src/styles.d.ts +4 -0
  160. package/dist/blocks/about-us/about-us-1.d.ts +0 -5
  161. package/dist/blocks/about-us/about-us-1.js +0 -5
  162. package/dist/blocks/about-us/about-us-1.schema.d.ts +0 -38
  163. package/dist/blocks/about-us/about-us-1.schema.js +0 -537
  164. package/dist/blocks/blogs/blog-listing-1.d.ts +0 -5
  165. package/dist/blocks/blogs/blog-listing-1.js +0 -12
  166. package/dist/blocks/blogs/blog-listing-1.schema.d.ts +0 -59
  167. package/dist/blocks/blogs/blog-listing-1.schema.js +0 -387
  168. package/dist/blocks/blogs/blog-listing-2.d.ts +0 -5
  169. package/dist/blocks/blogs/blog-listing-2.js +0 -9
  170. package/dist/blocks/blogs/blog-listing-2.schema.d.ts +0 -104
  171. package/dist/blocks/blogs/blog-listing-2.schema.js +0 -572
  172. package/dist/blocks/blogs/blog-post-1.d.ts +0 -6
  173. package/dist/blocks/blogs/blog-post-1.js +0 -8
  174. package/dist/blocks/blogs/blog-post-1.schema.d.ts +0 -48
  175. package/dist/blocks/blogs/blog-post-1.schema.js +0 -358
  176. package/dist/blocks/blogs/blog-post-2.d.ts +0 -6
  177. package/dist/blocks/blogs/blog-post-2.js +0 -8
  178. package/dist/blocks/blogs/blog-post-2.schema.d.ts +0 -74
  179. package/dist/blocks/blogs/blog-post-2.schema.js +0 -779
  180. package/dist/blocks/cards/cards-10.d.ts +0 -6
  181. package/dist/blocks/cards/cards-10.js +0 -4
  182. package/dist/blocks/cards/cards-10.schema.d.ts +0 -44
  183. package/dist/blocks/cards/cards-10.schema.js +0 -405
  184. package/dist/blocks/cards/cards-11.d.ts +0 -6
  185. package/dist/blocks/cards/cards-11.js +0 -4
  186. package/dist/blocks/cards/cards-11.schema.d.ts +0 -58
  187. package/dist/blocks/cards/cards-11.schema.js +0 -406
  188. package/dist/blocks/cards/cards-12.d.ts +0 -6
  189. package/dist/blocks/cards/cards-12.js +0 -4
  190. package/dist/blocks/cards/cards-12.schema.d.ts +0 -38
  191. package/dist/blocks/cards/cards-12.schema.js +0 -545
  192. package/dist/blocks/cards/cards-2.d.ts +0 -5
  193. package/dist/blocks/cards/cards-2.js +0 -4
  194. package/dist/blocks/cards/cards-2.schema.d.ts +0 -46
  195. package/dist/blocks/cards/cards-2.schema.js +0 -260
  196. package/dist/blocks/cards/cards-3.d.ts +0 -6
  197. package/dist/blocks/cards/cards-3.js +0 -5
  198. package/dist/blocks/cards/cards-3.schema.d.ts +0 -36
  199. package/dist/blocks/cards/cards-3.schema.js +0 -351
  200. package/dist/blocks/cards/cards-4.d.ts +0 -6
  201. package/dist/blocks/cards/cards-4.js +0 -4
  202. package/dist/blocks/cards/cards-4.schema.d.ts +0 -40
  203. package/dist/blocks/cards/cards-4.schema.js +0 -648
  204. package/dist/blocks/cards/cards-5.d.ts +0 -5
  205. package/dist/blocks/cards/cards-5.js +0 -4
  206. package/dist/blocks/cards/cards-5.schema.d.ts +0 -48
  207. package/dist/blocks/cards/cards-5.schema.js +0 -238
  208. package/dist/blocks/cards/cards-6.d.ts +0 -5
  209. package/dist/blocks/cards/cards-6.js +0 -45
  210. package/dist/blocks/cards/cards-6.schema.d.ts +0 -50
  211. package/dist/blocks/cards/cards-6.schema.js +0 -608
  212. package/dist/blocks/cards/cards-7.d.ts +0 -5
  213. package/dist/blocks/cards/cards-7.js +0 -45
  214. package/dist/blocks/cards/cards-7.schema.d.ts +0 -87
  215. package/dist/blocks/cards/cards-7.schema.js +0 -1732
  216. package/dist/blocks/cards/cards-8.d.ts +0 -6
  217. package/dist/blocks/cards/cards-8.js +0 -4
  218. package/dist/blocks/cards/cards-8.schema.d.ts +0 -40
  219. package/dist/blocks/cards/cards-8.schema.js +0 -660
  220. package/dist/blocks/cards/cards-9.d.ts +0 -5
  221. package/dist/blocks/cards/cards-9.js +0 -4
  222. package/dist/blocks/cards/cards-9.schema.d.ts +0 -55
  223. package/dist/blocks/cards/cards-9.schema.js +0 -798
  224. package/dist/blocks/carousel/carousel-1.d.ts +0 -5
  225. package/dist/blocks/carousel/carousel-1.js +0 -12
  226. package/dist/blocks/carousel/carousel-1.schema.d.ts +0 -51
  227. package/dist/blocks/carousel/carousel-1.schema.js +0 -236
  228. package/dist/blocks/contact-us/contact-us-1.d.ts +0 -5
  229. package/dist/blocks/contact-us/contact-us-1.js +0 -4
  230. package/dist/blocks/contact-us/contact-us-1.schema.d.ts +0 -31
  231. package/dist/blocks/contact-us/contact-us-1.schema.js +0 -202
  232. package/dist/blocks/contact-us/contact-us-2.d.ts +0 -5
  233. package/dist/blocks/contact-us/contact-us-2.js +0 -4
  234. package/dist/blocks/contact-us/contact-us-2.schema.d.ts +0 -59
  235. package/dist/blocks/contact-us/contact-us-2.schema.js +0 -512
  236. package/dist/blocks/content/content-1.d.ts +0 -6
  237. package/dist/blocks/content/content-1.js +0 -4
  238. package/dist/blocks/content/content-1.schema.d.ts +0 -56
  239. package/dist/blocks/content/content-1.schema.js +0 -807
  240. package/dist/blocks/content/content-2.d.ts +0 -5
  241. package/dist/blocks/content/content-2.js +0 -4
  242. package/dist/blocks/content/content-2.schema.d.ts +0 -78
  243. package/dist/blocks/content/content-2.schema.js +0 -200
  244. package/dist/blocks/content/content-3.d.ts +0 -6
  245. package/dist/blocks/content/content-3.js +0 -5
  246. package/dist/blocks/content/content-3.schema.d.ts +0 -23
  247. package/dist/blocks/content/content-3.schema.js +0 -850
  248. package/dist/blocks/content/content-4.d.ts +0 -6
  249. package/dist/blocks/content/content-4.js +0 -6
  250. package/dist/blocks/content/content-4.schema.d.ts +0 -33
  251. package/dist/blocks/content/content-4.schema.js +0 -252
  252. package/dist/blocks/content/content-5.d.ts +0 -6
  253. package/dist/blocks/content/content-5.js +0 -5
  254. package/dist/blocks/content/content-5.schema.d.ts +0 -37
  255. package/dist/blocks/content/content-5.schema.js +0 -932
  256. package/dist/blocks/content/content-6.d.ts +0 -6
  257. package/dist/blocks/content/content-6.js +0 -5
  258. package/dist/blocks/content/content-6.schema.d.ts +0 -41
  259. package/dist/blocks/content/content-6.schema.js +0 -976
  260. package/dist/blocks/cta/cta-1.d.ts +0 -5
  261. package/dist/blocks/cta/cta-1.js +0 -4
  262. package/dist/blocks/cta/cta-1.schema.d.ts +0 -40
  263. package/dist/blocks/cta/cta-1.schema.js +0 -339
  264. package/dist/blocks/cta/cta-2.d.ts +0 -5
  265. package/dist/blocks/cta/cta-2.js +0 -4
  266. package/dist/blocks/cta/cta-2.schema.d.ts +0 -45
  267. package/dist/blocks/cta/cta-2.schema.js +0 -183
  268. package/dist/blocks/cta/cta-3.d.ts +0 -5
  269. package/dist/blocks/cta/cta-3.js +0 -4
  270. package/dist/blocks/cta/cta-3.schema.d.ts +0 -34
  271. package/dist/blocks/cta/cta-3.schema.js +0 -137
  272. package/dist/blocks/embed/embed-1.d.ts +0 -5
  273. package/dist/blocks/embed/embed-1.js +0 -5
  274. package/dist/blocks/embed/embed-1.schema.d.ts +0 -13
  275. package/dist/blocks/embed/embed-1.schema.js +0 -146
  276. package/dist/blocks/event/event-details.d.ts +0 -5
  277. package/dist/blocks/event/event-details.js +0 -9
  278. package/dist/blocks/event/event-details.schema.d.ts +0 -112
  279. package/dist/blocks/event/event-details.schema.js +0 -685
  280. package/dist/blocks/event/event-listing-2.d.ts +0 -5
  281. package/dist/blocks/event/event-listing-2.js +0 -4
  282. package/dist/blocks/event/event-listing-2.schema.d.ts +0 -84
  283. package/dist/blocks/event/event-listing-2.schema.js +0 -455
  284. package/dist/blocks/event/event-listing-3.d.ts +0 -5
  285. package/dist/blocks/event/event-listing-3.js +0 -10
  286. package/dist/blocks/event/event-listing-3.schema.d.ts +0 -77
  287. package/dist/blocks/event/event-listing-3.schema.js +0 -570
  288. package/dist/blocks/event/event-listing.d.ts +0 -5
  289. package/dist/blocks/event/event-listing.js +0 -10
  290. package/dist/blocks/event/event-listing.schema.d.ts +0 -51
  291. package/dist/blocks/event/event-listing.schema.js +0 -1297
  292. package/dist/blocks/faq/faq-1.d.ts +0 -5
  293. package/dist/blocks/faq/faq-1.js +0 -4
  294. package/dist/blocks/faq/faq-1.schema.d.ts +0 -47
  295. package/dist/blocks/faq/faq-1.schema.js +0 -325
  296. package/dist/blocks/faq/faq-2.d.ts +0 -6
  297. package/dist/blocks/faq/faq-2.js +0 -19
  298. package/dist/blocks/faq/faq-2.schema.d.ts +0 -47
  299. package/dist/blocks/faq/faq-2.schema.js +0 -329
  300. package/dist/blocks/faq/faq-3.d.ts +0 -5
  301. package/dist/blocks/faq/faq-3.js +0 -4
  302. package/dist/blocks/faq/faq-3.schema.d.ts +0 -40
  303. package/dist/blocks/faq/faq-3.schema.js +0 -444
  304. package/dist/blocks/features/features-1/features-1.d.ts +0 -5
  305. package/dist/blocks/features/features-1/features-1.js +0 -4
  306. package/dist/blocks/features/features-1/features-1.schema.d.ts +0 -5
  307. package/dist/blocks/features/features-1/features-1.schema.js +0 -142
  308. package/dist/blocks/features/features-1/variants/default.d.ts +0 -37
  309. package/dist/blocks/features/features-1/variants/default.js +0 -185
  310. package/dist/blocks/features/features-1/variants/index.d.ts +0 -5
  311. package/dist/blocks/features/features-1/variants/stylized-cards-v1.d.ts +0 -3
  312. package/dist/blocks/features/features-1/variants/stylized-cards-v1.js +0 -132
  313. package/dist/blocks/features/features-1/variants/stylized-cards-v2.d.ts +0 -3
  314. package/dist/blocks/features/features-1/variants/stylized-cards-v2.js +0 -484
  315. package/dist/blocks/features/features-2.d.ts +0 -5
  316. package/dist/blocks/features/features-2.js +0 -8
  317. package/dist/blocks/features/features-2.schema.d.ts +0 -41
  318. package/dist/blocks/features/features-2.schema.js +0 -321
  319. package/dist/blocks/features/features-3.d.ts +0 -5
  320. package/dist/blocks/features/features-3.js +0 -4
  321. package/dist/blocks/features/features-3.schema.d.ts +0 -40
  322. package/dist/blocks/features/features-3.schema.js +0 -424
  323. package/dist/blocks/features/features-4.d.ts +0 -5
  324. package/dist/blocks/features/features-4.js +0 -4
  325. package/dist/blocks/features/features-4.schema.d.ts +0 -60
  326. package/dist/blocks/features/features-4.schema.js +0 -594
  327. package/dist/blocks/features/features-5.d.ts +0 -6
  328. package/dist/blocks/features/features-5.js +0 -5
  329. package/dist/blocks/features/features-5.schema.d.ts +0 -28
  330. package/dist/blocks/features/features-5.schema.js +0 -727
  331. package/dist/blocks/features/features-6.d.ts +0 -5
  332. package/dist/blocks/features/features-6.js +0 -31
  333. package/dist/blocks/features/features-6.schema.d.ts +0 -74
  334. package/dist/blocks/features/features-6.schema.js +0 -814
  335. package/dist/blocks/footer/footer-1.d.ts +0 -6
  336. package/dist/blocks/footer/footer-1.js +0 -5
  337. package/dist/blocks/footer/footer-1.schema.d.ts +0 -62
  338. package/dist/blocks/footer/footer-1.schema.js +0 -565
  339. package/dist/blocks/footer/footer-2.d.ts +0 -5
  340. package/dist/blocks/footer/footer-2.js +0 -4
  341. package/dist/blocks/footer/footer-2.schema.d.ts +0 -76
  342. package/dist/blocks/footer/footer-2.schema.js +0 -876
  343. package/dist/blocks/footer/footer-3.d.ts +0 -6
  344. package/dist/blocks/footer/footer-3.js +0 -15
  345. package/dist/blocks/footer/footer-3.schema.d.ts +0 -48
  346. package/dist/blocks/footer/footer-3.schema.js +0 -475
  347. package/dist/blocks/footer/footer-4.d.ts +0 -6
  348. package/dist/blocks/footer/footer-4.js +0 -5
  349. package/dist/blocks/footer/footer-4.schema.d.ts +0 -71
  350. package/dist/blocks/footer/footer-4.schema.js +0 -620
  351. package/dist/blocks/footer/footer-5.d.ts +0 -6
  352. package/dist/blocks/footer/footer-5.js +0 -5
  353. package/dist/blocks/footer/footer-5.schema.d.ts +0 -52
  354. package/dist/blocks/footer/footer-5.schema.js +0 -400
  355. package/dist/blocks/hero/hero-1.d.ts +0 -5
  356. package/dist/blocks/hero/hero-1.js +0 -4
  357. package/dist/blocks/hero/hero-1.schema.d.ts +0 -35
  358. package/dist/blocks/hero/hero-1.schema.js +0 -742
  359. package/dist/blocks/hero/hero-2.d.ts +0 -5
  360. package/dist/blocks/hero/hero-2.js +0 -4
  361. package/dist/blocks/hero/hero-2.schema.d.ts +0 -46
  362. package/dist/blocks/hero/hero-2.schema.js +0 -282
  363. package/dist/blocks/hero/hero-3.d.ts +0 -5
  364. package/dist/blocks/hero/hero-3.js +0 -4
  365. package/dist/blocks/hero/hero-3.schema.d.ts +0 -54
  366. package/dist/blocks/hero/hero-3.schema.js +0 -378
  367. package/dist/blocks/hero/hero-4.d.ts +0 -5
  368. package/dist/blocks/hero/hero-4.js +0 -30
  369. package/dist/blocks/hero/hero-4.schema.d.ts +0 -33
  370. package/dist/blocks/hero/hero-4.schema.js +0 -316
  371. package/dist/blocks/hero/hero-5.d.ts +0 -5
  372. package/dist/blocks/hero/hero-5.js +0 -30
  373. package/dist/blocks/hero/hero-5.schema.d.ts +0 -32
  374. package/dist/blocks/hero/hero-5.schema.js +0 -183
  375. package/dist/blocks/hero/hero-6.d.ts +0 -5
  376. package/dist/blocks/hero/hero-6.js +0 -8
  377. package/dist/blocks/hero/hero-6.schema.d.ts +0 -36
  378. package/dist/blocks/hero/hero-6.schema.js +0 -617
  379. package/dist/blocks/hero/hero-7.d.ts +0 -5
  380. package/dist/blocks/hero/hero-7.js +0 -40
  381. package/dist/blocks/hero/hero-7.schema.d.ts +0 -12
  382. package/dist/blocks/hero/hero-7.schema.js +0 -471
  383. package/dist/blocks/hero/hero-8.d.ts +0 -5
  384. package/dist/blocks/hero/hero-8.js +0 -39
  385. package/dist/blocks/hero/hero-8.schema.d.ts +0 -17
  386. package/dist/blocks/hero/hero-8.schema.js +0 -343
  387. package/dist/blocks/hero/hero-9.d.ts +0 -6
  388. package/dist/blocks/hero/hero-9.js +0 -4
  389. package/dist/blocks/hero/hero-9.schema.d.ts +0 -39
  390. package/dist/blocks/hero/hero-9.schema.js +0 -355
  391. package/dist/blocks/index.d.ts +0 -3
  392. package/dist/blocks/index.js +0 -74
  393. package/dist/blocks/logos/logos-1.d.ts +0 -5
  394. package/dist/blocks/logos/logos-1.js +0 -10
  395. package/dist/blocks/logos/logos-1.schema.d.ts +0 -34
  396. package/dist/blocks/logos/logos-1.schema.js +0 -239
  397. package/dist/blocks/navbar/navbar-1.d.ts +0 -6
  398. package/dist/blocks/navbar/navbar-1.js +0 -100
  399. package/dist/blocks/navbar/navbar-1.schema.d.ts +0 -117
  400. package/dist/blocks/navbar/navbar-1.schema.js +0 -938
  401. package/dist/blocks/navbar/navbar-2.d.ts +0 -6
  402. package/dist/blocks/navbar/navbar-2.js +0 -99
  403. package/dist/blocks/navbar/navbar-2.schema.d.ts +0 -134
  404. package/dist/blocks/navbar/navbar-2.schema.js +0 -1200
  405. package/dist/blocks/pricing/pricing-1.d.ts +0 -5
  406. package/dist/blocks/pricing/pricing-1.js +0 -4
  407. package/dist/blocks/pricing/pricing-1.schema.d.ts +0 -87
  408. package/dist/blocks/pricing/pricing-1.schema.js +0 -976
  409. package/dist/blocks/products/products-listing-1.d.ts +0 -5
  410. package/dist/blocks/products/products-listing-1.js +0 -4
  411. package/dist/blocks/products/products-listing-1.schema.d.ts +0 -36
  412. package/dist/blocks/products/products-listing-1.schema.js +0 -264
  413. package/dist/blocks/stats/stats-1.d.ts +0 -6
  414. package/dist/blocks/stats/stats-1.js +0 -6
  415. package/dist/blocks/stats/stats-1.schema.d.ts +0 -25
  416. package/dist/blocks/stats/stats-1.schema.js +0 -213
  417. package/dist/blocks/stats/stats-2.d.ts +0 -6
  418. package/dist/blocks/stats/stats-2.js +0 -6
  419. package/dist/blocks/stats/stats-2.schema.d.ts +0 -5
  420. package/dist/blocks/stats/stats-2.schema.js +0 -104
  421. package/dist/blocks/stats/variants/default.d.ts +0 -22
  422. package/dist/blocks/stats/variants/default.js +0 -185
  423. package/dist/blocks/stats/variants/hero.d.ts +0 -3
  424. package/dist/blocks/stats/variants/hero.js +0 -151
  425. package/dist/blocks/stats/variants/index.d.ts +0 -4
  426. package/dist/blocks/team/team-1.d.ts +0 -6
  427. package/dist/blocks/team/team-1.js +0 -6
  428. package/dist/blocks/team/team-1.schema.d.ts +0 -65
  429. package/dist/blocks/team/team-1.schema.js +0 -476
  430. package/dist/blocks/team/team-2.d.ts +0 -6
  431. package/dist/blocks/team/team-2.js +0 -6
  432. package/dist/blocks/team/team-2.schema.d.ts +0 -52
  433. package/dist/blocks/team/team-2.schema.js +0 -2732
  434. package/dist/blocks/team/team-3.d.ts +0 -5
  435. package/dist/blocks/team/team-3.js +0 -30
  436. package/dist/blocks/team/team-3.schema.d.ts +0 -32
  437. package/dist/blocks/team/team-3.schema.js +0 -679
  438. package/dist/blocks/termsAndPrivacy/terms-and-conditions-1.d.ts +0 -6
  439. package/dist/blocks/termsAndPrivacy/terms-and-conditions-1.js +0 -4
  440. package/dist/blocks/termsAndPrivacy/terms-and-conditions-1.schema.d.ts +0 -14
  441. package/dist/blocks/termsAndPrivacy/terms-and-conditions-1.schema.js +0 -154
  442. package/dist/blocks/testimonial/testimonial-1.d.ts +0 -5
  443. package/dist/blocks/testimonial/testimonial-1.js +0 -10
  444. package/dist/blocks/testimonial/testimonial-1.schema.d.ts +0 -16
  445. package/dist/blocks/testimonial/testimonial-1.schema.js +0 -314
  446. package/dist/blocks/testimonial/testimonial-2.d.ts +0 -5
  447. package/dist/blocks/testimonial/testimonial-2.js +0 -42
  448. package/dist/blocks/testimonial/testimonial-2.schema.d.ts +0 -54
  449. package/dist/blocks/testimonial/testimonial-2.schema.js +0 -771
  450. package/dist/blocks/testimonial/testimonial-3.d.ts +0 -5
  451. package/dist/blocks/testimonial/testimonial-3.js +0 -38
  452. package/dist/blocks/testimonial/testimonial-3.schema.d.ts +0 -56
  453. package/dist/blocks/testimonial/testimonial-3.schema.js +0 -260
  454. package/dist/blocks/testimonial/testimonial-4.d.ts +0 -5
  455. package/dist/blocks/testimonial/testimonial-4.js +0 -51
  456. package/dist/blocks/testimonial/testimonial-4.schema.d.ts +0 -145
  457. package/dist/blocks/testimonial/testimonial-4.schema.js +0 -3214
  458. package/dist/blocks/testimonial/testimonial-5.d.ts +0 -5
  459. package/dist/blocks/testimonial/testimonial-5.js +0 -31
  460. package/dist/blocks/testimonial/testimonial-5.schema.d.ts +0 -33
  461. package/dist/blocks/testimonial/testimonial-5.schema.js +0 -401
  462. package/dist/blocks/testimonial/testimonial-6.d.ts +0 -5
  463. package/dist/blocks/testimonial/testimonial-6.js +0 -39
  464. package/dist/blocks/testimonial/testimonial-6.schema.d.ts +0 -60
  465. package/dist/blocks/testimonial/testimonial-6.schema.js +0 -695
  466. package/dist/index.d.ts +0 -6
  467. package/dist/schemas/blocks.d.ts +0 -3
  468. package/dist/schemas/categories.d.ts +0 -3
  469. package/dist/schemas/categories.js +0 -129
  470. package/dist/schemas/index.d.ts +0 -3
  471. /package/{dist/schemas/index.js → src/schemas/index.ts} +0 -0
@@ -0,0 +1,77 @@
1
+ import {
2
+ Box,
3
+ Container,
4
+ Icon,
5
+ Image,
6
+ Section,
7
+ Typography,
8
+ type ILevoBlockBaseProps,
9
+ } from "@levo-so/studio";
10
+
11
+ import { type IFooter2Content } from "./footer-2.schema";
12
+
13
+ const Footer2: React.FC<ILevoBlockBaseProps<IFooter2Content>> = ({
14
+ content,
15
+ }) => (
16
+ <Section elementKey="layout">
17
+ <Container elementKey="container">
18
+ <Box elementKey="contentWrapper">
19
+ <Box elementKey="logoTextWrapper">
20
+ <Image elementKey="logo" height={26} width={26} alt="footer-logo" />
21
+ <Typography elementKey="logoDescription" />
22
+ <Typography elementKey="copyright" />
23
+ </Box>
24
+ <Box data-levo_group elementKey="links_levoGroup">
25
+ {(content?.links ?? [])?.map((link: any, index: number) => (
26
+ <Box
27
+ elementKey={`links.${index}.links`}
28
+ key={`footer-2-links-${index}`}
29
+ data-levo_group_item
30
+ >
31
+ <Typography elementKey={`links.${index}.category`} />
32
+ <Box
33
+ elementKey={`links.${index}.links_levoGroup`}
34
+ data-levo_group
35
+ >
36
+ {(link?.links ?? [])?.map((subLink: any, subIndex: number) => (
37
+ <Box
38
+ elementKey={`links.${index}.links.${subIndex}.wrapper`}
39
+ key={`footer-2-links-${index}-${subIndex}`}
40
+ data-levo_group_item
41
+ >
42
+ <Icon
43
+ elementKey={`links.${index}.links.${subIndex}.icon`}
44
+ />
45
+ <Typography
46
+ elementKey={`links.${index}.links.${subIndex}.cta`}
47
+ />
48
+ <Box
49
+ data-levo_group
50
+ elementKey={`links.${index}.links.${subIndex}.icon_links_levoGroup`}
51
+ >
52
+ {(subLink?.icon_links ?? []).map(
53
+ (_: unknown, linkIndex: number) => (
54
+ <Box
55
+ data-levo_group_item
56
+ elementKey={`links.${index}.links.${subIndex}.icon_links.${linkIndex}.wrapper`}
57
+ key={`footer-2-icon-links-${index}-${subIndex}-${linkIndex}`}
58
+ >
59
+ <Icon
60
+ elementKey={`links.${index}.links.${subIndex}.icon_links.${linkIndex}.icon`}
61
+ />
62
+ </Box>
63
+ ),
64
+ )}
65
+ </Box>
66
+ </Box>
67
+ ))}
68
+ </Box>
69
+ </Box>
70
+ ))}
71
+ </Box>
72
+ </Box>
73
+ </Container>
74
+ </Section>
75
+ );
76
+
77
+ export default Footer2;
@@ -0,0 +1,487 @@
1
+ import type { IBlock } from "@levo-so/studio";
2
+
3
+ const DUMMY_ICON = {
4
+ kind: "icon",
5
+ data: {
6
+ id: "archive-minus",
7
+ label: "Archive Minus",
8
+ tags: ["archive", "custom", "directional", "minus"],
9
+ svgCode:
10
+ '<svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">\n<path d="M14.5 11.4H9.5C9.09 11.4 8.75 11.06 8.75 10.65C8.75 10.24 9.09 9.90002 9.5 9.90002H14.5C14.91 9.90002 15.25 10.24 15.25 10.65C15.25 11.06 14.91 11.4 14.5 11.4Z" fill="var(--color-icon-primary)"/>\n<path d="M4.92957 22.75C4.50957 22.75 4.11957 22.65 3.76957 22.45C2.99957 22 2.55957 21.09 2.55957 19.96V5.86C2.55957 3.32 4.62957 1.25 7.16957 1.25H16.8196C19.3596 1.25 21.4296 3.32 21.4296 5.86V19.95C21.4296 21.08 20.9896 21.99 20.2196 22.44C19.4496 22.89 18.4396 22.84 17.4496 22.29L12.5696 19.58C12.2796 19.42 11.7096 19.42 11.4196 19.58L6.53957 22.29C5.99957 22.59 5.44957 22.75 4.92957 22.75ZM7.17957 2.75C5.46957 2.75 4.06957 4.15 4.06957 5.86V19.95C4.06957 20.54 4.23957 20.98 4.53957 21.15C4.83957 21.33 5.30957 21.27 5.81957 20.98L10.6996 18.27C11.4396 17.86 12.5596 17.86 13.2996 18.27L18.1796 20.98C18.6896 21.27 19.1596 21.33 19.4596 21.15C19.7596 20.97 19.9296 20.53 19.9296 19.95V5.86C19.9296 4.15 18.5296 2.75 16.8196 2.75H7.17957Z" fill="var(--color-icon-primary)"/>\n</svg>',
11
+ },
12
+ };
13
+
14
+ const DEFAULT_CONTENT = {
15
+ layout: null,
16
+ container: null,
17
+ mainFooterWrapper: null,
18
+
19
+ // All sections unified under links array (like Footer2)
20
+ links: [
21
+ {
22
+ category: "Real Estate Services",
23
+ links: [
24
+ { text: "Property Development" },
25
+ { text: "Investment Advisory" },
26
+ { text: "Land Acquisition" },
27
+ { text: "Urban Planning" },
28
+ { text: "Property Management" },
29
+ { text: "Smart Infrastructure" },
30
+ ],
31
+ },
32
+ {
33
+ category: "Company",
34
+ links: [
35
+ { text: "About Us" },
36
+ { text: "Leadership" },
37
+ { text: "Careers" },
38
+ { text: "Contact" },
39
+ ],
40
+ },
41
+ {
42
+ category: "Resources",
43
+ links: [
44
+ { text: "Blog" },
45
+ { text: "Market Reports" },
46
+ { text: "Case Studies" },
47
+ { text: "FAQs" },
48
+ { text: "Help Center" },
49
+ ],
50
+ },
51
+ {
52
+ category: "Contact Us",
53
+ links: [
54
+ {
55
+ contactWrapper: null,
56
+ icon: DUMMY_ICON,
57
+ text: "(555) 123-4567",
58
+ },
59
+ {
60
+ contactWrapper: null,
61
+ icon: DUMMY_ICON,
62
+ text: "info@dreamscape.com",
63
+ },
64
+ {
65
+ contactWrapper: null,
66
+ icon: DUMMY_ICON,
67
+ text: "120, Part Avenue, New York, NY 213232, USA",
68
+ },
69
+ ],
70
+ },
71
+ ],
72
+
73
+ // Bottom section
74
+ bottomSection: null,
75
+ copyright: "Copyright © 2025",
76
+ bottomLinks: [
77
+ { text: "Privacy", separator: null },
78
+ { text: "Terms", separator: null },
79
+ { text: "Cookie", separator: null },
80
+ { text: "Security", separator: null },
81
+ { text: "Status", separator: null },
82
+ ],
83
+
84
+ // Social icons
85
+ socialIcons: [
86
+ {
87
+ icon: DUMMY_ICON,
88
+ },
89
+ {
90
+ icon: DUMMY_ICON,
91
+ },
92
+ {
93
+ icon: DUMMY_ICON,
94
+ },
95
+ {
96
+ icon: DUMMY_ICON,
97
+ },
98
+ ],
99
+ };
100
+
101
+ export type IFooter3Content = typeof DEFAULT_CONTENT;
102
+
103
+ export const Footer3: IBlock = {
104
+ category_id: "footer",
105
+ title: "Footer 3",
106
+ key: "footer-3",
107
+ version: "v1",
108
+ prompt_description:
109
+ "Professional footer with company info, service links, and contact details",
110
+ content_schema: [
111
+ {
112
+ key: "layout",
113
+ label: "Layout",
114
+ field_interface: "LayoutWidget",
115
+ },
116
+ {
117
+ key: "container",
118
+ label: "Container",
119
+ field_interface: "ContainerWidget",
120
+ },
121
+ {
122
+ key: "mainFooterWrapper",
123
+ label: "Main Footer Wrapper",
124
+ field_interface: "BoxWidget",
125
+ },
126
+
127
+ // Unified links structure (like Footer2)
128
+ {
129
+ key: "links",
130
+ label: "Links Sections",
131
+ field_interface: "BoxWidget",
132
+ kind: "group",
133
+ fields: [
134
+ {
135
+ key: "category",
136
+ label: "Section Title",
137
+ field_interface: "TypographyWidget",
138
+ },
139
+ {
140
+ key: "links",
141
+ label: "Links",
142
+ field_interface: "BoxWidget",
143
+ kind: "group",
144
+ fields: [
145
+ {
146
+ key: "text",
147
+ label: "Link Text",
148
+ field_interface: "TypographyWidget",
149
+ },
150
+ {
151
+ key: "contactWrapper",
152
+ label: "Contact Item Wrapper",
153
+ field_interface: "BoxWidget",
154
+ },
155
+ {
156
+ key: "icon",
157
+ label: "Contact Icon",
158
+ field_interface: "IconWidget",
159
+ },
160
+ ],
161
+ },
162
+ ],
163
+ },
164
+ {
165
+ key: "bottomSection",
166
+ label: "Bottom Section",
167
+ field_interface: "BoxWidget",
168
+ },
169
+ {
170
+ key: "copyright",
171
+ label: "Copyright Text",
172
+ field_interface: "TypographyWidget",
173
+ },
174
+ {
175
+ key: "bottomLinks",
176
+ label: "Bottom Links",
177
+ field_interface: "BoxWidget",
178
+ kind: "group",
179
+ fields: [
180
+ {
181
+ key: "text",
182
+ label: "Link Text",
183
+ field_interface: "TypographyWidget",
184
+ },
185
+ {
186
+ key: "separator",
187
+ label: "Separator",
188
+ field_interface: "BoxWidget",
189
+ },
190
+ ],
191
+ },
192
+ {
193
+ key: "socialIcons",
194
+ label: "Social Icons",
195
+ field_interface: "BoxWidget",
196
+ kind: "group",
197
+ fields: [
198
+ {
199
+ key: "icon",
200
+ label: "Social Icon",
201
+ field_interface: "IconWidget",
202
+ },
203
+ ],
204
+ },
205
+ ],
206
+ layouts: [
207
+ {
208
+ title: "Default",
209
+ key: "default",
210
+ content: DEFAULT_CONTENT,
211
+ config: {},
212
+ styles: {
213
+ layout: {
214
+ "background-color": "background-1",
215
+ "padding-top": "3xl",
216
+ "padding-bottom": "none",
217
+ },
218
+ container: {
219
+ "max-width": "1280px",
220
+ "margin-left": "auto",
221
+ "margin-right": "auto",
222
+ "padding-left": "xl",
223
+ "padding-right": "xl",
224
+ filter: "none",
225
+ "padding-bottom": "none",
226
+ mobile: {
227
+ filter: "none",
228
+ },
229
+ tablet: {
230
+ filter: "none",
231
+ display: "block",
232
+ },
233
+ },
234
+ mainFooterWrapper: {
235
+ display: "flex",
236
+ "grid-template-columns": "repeat(4, minmax(0, 1fr))",
237
+ "column-gap": "2xl",
238
+ "row-gap": "xl",
239
+ "margin-bottom": "none",
240
+ "padding-bottom": "2xl",
241
+ "border-bottom-width": "1px",
242
+ "border-color": "border",
243
+ tablet: {
244
+ "grid-template-columns": "repeat(2, minmax(0, 1fr))",
245
+ filter: "none",
246
+ },
247
+ mobile: {
248
+ "grid-template-columns": "repeat(1, minmax(0, 1fr))",
249
+ filter: "none",
250
+ "flex-direction": "column",
251
+ },
252
+ filter: "none",
253
+ width: "100%",
254
+ "align-items": "start",
255
+ "justify-content": "space-between",
256
+ },
257
+ links_levoGroup: {
258
+ display: "flex",
259
+ "column-gap": "2xl",
260
+ "row-gap": "xl",
261
+ tablet: {
262
+ filter: "none",
263
+ "flex-direction": "column",
264
+ display: "flex",
265
+ "justify-content": "start",
266
+ "align-items": "start",
267
+ },
268
+ mobile: {
269
+ filter: "none",
270
+ "flex-direction": "column",
271
+ width: "100%",
272
+ },
273
+ filter: "none",
274
+ "justify-content": "space-between",
275
+ "align-items": "start",
276
+ width: "100%",
277
+ },
278
+ links: [
279
+ {
280
+ category: {
281
+ "font-size": "base",
282
+ "font-weight": "600",
283
+ color: "text-1",
284
+ "margin-bottom": "xs",
285
+ filter: "none",
286
+ tablet: {
287
+ filter: "none",
288
+ },
289
+ },
290
+ links_levoGroup: {
291
+ display: "flex",
292
+ "flex-direction": "column",
293
+ "row-gap": "xs",
294
+ filter: "none",
295
+ },
296
+ links: [
297
+ {
298
+ text: {
299
+ "font-size": "sm",
300
+ color: "text-2",
301
+ "line-height": "1.5",
302
+ filter: "none",
303
+ },
304
+ },
305
+ ],
306
+ },
307
+ {
308
+ category: {
309
+ "font-size": "base",
310
+ "font-weight": "600",
311
+ color: "text-1",
312
+ "margin-bottom": "xs",
313
+ filter: "none",
314
+ },
315
+ links_levoGroup: {
316
+ display: "flex",
317
+ "flex-direction": "column",
318
+ "row-gap": "xs",
319
+ filter: "none",
320
+ },
321
+ links: [
322
+ {
323
+ text: {
324
+ "font-size": "sm",
325
+ color: "text-2",
326
+ "line-height": "1.5",
327
+ filter: "none",
328
+ },
329
+ },
330
+ ],
331
+ },
332
+ {
333
+ category: {
334
+ "font-size": "base",
335
+ "font-weight": "600",
336
+ color: "text-1",
337
+ "margin-bottom": "xs",
338
+ filter: "none",
339
+ },
340
+ links_levoGroup: {
341
+ display: "flex",
342
+ "flex-direction": "column",
343
+ "row-gap": "xs",
344
+ filter: "none",
345
+ },
346
+ links: [
347
+ {
348
+ text: {
349
+ "font-size": "sm",
350
+ color: "text-2",
351
+ "line-height": "1.5",
352
+ filter: "none",
353
+ },
354
+ },
355
+ ],
356
+ },
357
+ {
358
+ category: {
359
+ "font-size": "base",
360
+ "font-weight": "600",
361
+ color: "text-1",
362
+ "margin-bottom": "xs",
363
+ filter: "none",
364
+ },
365
+ links_levoGroup: {
366
+ display: "flex",
367
+ "flex-direction": "column",
368
+ "row-gap": "md",
369
+ filter: "none",
370
+ },
371
+ links: [
372
+ {
373
+ contactWrapper: {
374
+ display: "flex",
375
+ "align-items": "center",
376
+ "column-gap": "xs",
377
+ filter: "none",
378
+ },
379
+ icon: {
380
+ "object-fit": "contain",
381
+ "flex-shrink": "0",
382
+ filter: "none",
383
+ width: "20px",
384
+ height: "20px",
385
+ },
386
+ text: {
387
+ "font-size": "sm",
388
+ color: "text-2",
389
+ "line-height": "1.5",
390
+ filter: "none",
391
+ },
392
+ },
393
+ {
394
+ contactWrapper: {
395
+ filter: "none",
396
+ display: "flex",
397
+ "column-gap": "xs",
398
+ "align-items": "center",
399
+ },
400
+ icon: {
401
+ filter: "none",
402
+ },
403
+ },
404
+ {
405
+ contactWrapper: {
406
+ filter: "none",
407
+ mobile: {
408
+ filter: "none",
409
+ },
410
+ display: "flex",
411
+ "flex-shrink": "0",
412
+ "column-gap": "xs",
413
+ width: "100%",
414
+ "align-items": "center",
415
+ },
416
+ text: {
417
+ filter: "none",
418
+ "max-width": "250px",
419
+ },
420
+ },
421
+ ],
422
+ },
423
+ ],
424
+ bottomSection: {
425
+ display: "flex",
426
+ "justify-content": "space-between",
427
+ "align-items": "center",
428
+ "flex-wrap": "wrap",
429
+ "row-gap": "base",
430
+ mobile: {
431
+ "flex-direction": "column",
432
+ "align-items": "center",
433
+ filter: "none",
434
+ "justify-content": "center",
435
+ display: "flex",
436
+ },
437
+ filter: "none",
438
+ "margin-top": "base",
439
+ "margin-bottom": "none",
440
+ "padding-bottom": "base",
441
+ tablet: {
442
+ filter: "none",
443
+ "flex-direction": "column",
444
+ },
445
+ },
446
+ copyright: {
447
+ "font-size": "sm",
448
+ color: "text-2",
449
+ },
450
+ bottomLinks_levoGroup: {
451
+ display: "flex",
452
+ "align-items": "center",
453
+ "column-gap": "base",
454
+ "flex-wrap": "wrap",
455
+ mobile: {
456
+ filter: "none",
457
+ display: "flex",
458
+ "justify-content": "center",
459
+ "align-items": "center",
460
+ "row-gap": "md",
461
+ },
462
+ tablet: {
463
+ filter: "none",
464
+ },
465
+ },
466
+ "bottomLinks.$.text": {
467
+ "font-size": "sm",
468
+ color: "text-2",
469
+ },
470
+ "bottomLinks.$.separator": {
471
+ width: "1px",
472
+ height: "16px",
473
+ "background-color": "border",
474
+ },
475
+ socialIcons_levoGroup: {
476
+ display: "flex",
477
+ "align-items": "center",
478
+ "column-gap": "xs",
479
+ filter: "none",
480
+ },
481
+ "socialIcons.$.icon": {
482
+ "object-fit": "contain",
483
+ },
484
+ },
485
+ },
486
+ ],
487
+ };
@@ -0,0 +1,100 @@
1
+ import React from "react";
2
+ import {
3
+ Box,
4
+ Container,
5
+ Icon,
6
+ Image,
7
+ Section,
8
+ Typography,
9
+ type ILevoBlockBaseProps,
10
+ } from "@levo-so/studio";
11
+
12
+ import { type IFooter3Content } from "./footer-3.schema";
13
+
14
+ const Footer3: React.FC<ILevoBlockBaseProps<IFooter3Content>> = ({
15
+ content,
16
+ }) => (
17
+ <Section elementKey="layout">
18
+ <Container elementKey="container">
19
+ <Box elementKey="mainFooterWrapper">
20
+ <Box elementKey="links_levoGroup" data-levo_group>
21
+ {(content?.links ?? [])?.map((section, sectionIndex) => (
22
+ <Box
23
+ elementKey={`links.${sectionIndex}`}
24
+ key={`footer-3-section-${sectionIndex}`}
25
+ data-levo_group_item
26
+ >
27
+ <Typography elementKey={`links.${sectionIndex}.category`} />
28
+ <Box
29
+ elementKey={`links.${sectionIndex}.links_levoGroup`}
30
+ data-levo_group
31
+ >
32
+ {(section?.links ?? [])?.map((link, linkIndex) => {
33
+ // Check if this is a contact item (has icon and contactWrapper)
34
+ const isContactItem =
35
+ "icon" in link && "contactWrapper" in link;
36
+
37
+ if (isContactItem) {
38
+ return (
39
+ <Box
40
+ elementKey={`links.${sectionIndex}.links.${linkIndex}.contactWrapper`}
41
+ key={`footer-3-contact-${sectionIndex}-${linkIndex}`}
42
+ data-levo_group_item
43
+ >
44
+ <Icon
45
+ elementKey={`links.${sectionIndex}.links.${linkIndex}.icon`}
46
+ />
47
+ <Typography
48
+ elementKey={`links.${sectionIndex}.links.${linkIndex}.text`}
49
+ />
50
+ </Box>
51
+ );
52
+ } else {
53
+ // Regular link item
54
+ return (
55
+ <Typography
56
+ elementKey={`links.${sectionIndex}.links.${linkIndex}.text`}
57
+ key={`footer-3-link-${sectionIndex}-${linkIndex}`}
58
+ data-levo_group_item
59
+ />
60
+ );
61
+ }
62
+ })}
63
+ </Box>
64
+ </Box>
65
+ ))}
66
+ </Box>
67
+ </Box>
68
+ <Box elementKey="bottomSection">
69
+ <Typography elementKey="copyright" />
70
+ <Box elementKey="bottomLinks_levoGroup" data-levo_group>
71
+ {(content?.bottomLinks ?? [])?.map((_, index) => (
72
+ <React.Fragment key={`footer-3-bottom-${index}`}>
73
+ <Typography
74
+ data-levo_group_item
75
+ elementKey={`bottomLinks.${index}.text`}
76
+ />
77
+ {index < (content?.bottomLinks?.length ?? 0) - 1 && (
78
+ <Box
79
+ elementKey={`bottomLinks.${index}.separator`}
80
+ data-levo_group_item
81
+ />
82
+ )}
83
+ </React.Fragment>
84
+ ))}
85
+ </Box>
86
+ <Box elementKey="socialIcons_levoGroup" data-levo_group>
87
+ {(content?.socialIcons ?? [])?.map((_, index) => (
88
+ <Icon
89
+ key={`footer-3-social-${index}`}
90
+ data-levo_group_item
91
+ elementKey={`socialIcons.${index}.icon`}
92
+ />
93
+ ))}
94
+ </Box>
95
+ </Box>
96
+ </Container>
97
+ </Section>
98
+ );
99
+
100
+ export default Footer3;