@levo-so/blocks 0.1.1 → 0.1.52

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 (501) hide show
  1. package/package.json +6 -10
  2. package/src/blocks/about-us/about-us-1.schema.ts +577 -0
  3. package/src/blocks/about-us/about-us-1.tsx +53 -0
  4. package/src/blocks/about-us/about-us-2.schema.ts +269 -0
  5. package/src/blocks/about-us/about-us-2.tsx +47 -0
  6. package/src/blocks/blogs/blog-listing-1.schema.ts +473 -0
  7. package/src/blocks/blogs/blog-listing-1.tsx +102 -0
  8. package/src/blocks/blogs/blog-listing-2.schema.ts +3718 -0
  9. package/src/blocks/blogs/blog-listing-2.tsx +88 -0
  10. package/src/blocks/blogs/blog-listing-3.schema.ts +2476 -0
  11. package/src/blocks/blogs/blog-listing-3.tsx +84 -0
  12. package/src/blocks/blogs/blog-post-1.schema.ts +400 -0
  13. package/src/blocks/blogs/blog-post-1.tsx +52 -0
  14. package/src/blocks/blogs/blog-post-2.schema.ts +791 -0
  15. package/src/blocks/blogs/blog-post-2.tsx +131 -0
  16. package/src/blocks/blogs/blog-post-3.schema.ts +284 -0
  17. package/src/blocks/blogs/blog-post-3.tsx +58 -0
  18. package/src/blocks/cards/cards-10.schema.ts +1012 -0
  19. package/src/blocks/cards/cards-10.tsx +48 -0
  20. package/src/blocks/cards/cards-11.schema.ts +918 -0
  21. package/src/blocks/cards/cards-11.tsx +50 -0
  22. package/src/blocks/cards/cards-12.schema.ts +578 -0
  23. package/src/blocks/cards/cards-12.tsx +54 -0
  24. package/src/blocks/cards/cards-13.schema.ts +615 -0
  25. package/src/blocks/cards/cards-13.tsx +67 -0
  26. package/src/blocks/cards/cards-2.schema.ts +290 -0
  27. package/src/blocks/cards/cards-2.tsx +42 -0
  28. package/src/blocks/cards/cards-3.schema.ts +355 -0
  29. package/src/blocks/cards/cards-3.tsx +49 -0
  30. package/src/blocks/cards/cards-4.schema.ts +655 -0
  31. package/src/blocks/cards/cards-4.tsx +50 -0
  32. package/src/blocks/cards/cards-5.schema.ts +245 -0
  33. package/src/blocks/cards/cards-5.tsx +34 -0
  34. package/src/blocks/cards/cards-6.schema.ts +2139 -0
  35. package/src/blocks/cards/cards-6.tsx +140 -0
  36. package/src/blocks/cards/cards-7.schema.ts +3538 -0
  37. package/src/blocks/cards/cards-7.tsx +197 -0
  38. package/src/blocks/cards/cards-8.schema.ts +691 -0
  39. package/src/blocks/cards/cards-8.tsx +43 -0
  40. package/src/blocks/cards/cards-9.schema.ts +827 -0
  41. package/src/blocks/cards/cards-9.tsx +54 -0
  42. package/src/blocks/carousel/carousel-1.schema.ts +250 -0
  43. package/src/blocks/carousel/carousel-1.tsx +79 -0
  44. package/src/blocks/contact-us/contact-us-1.schema.ts +233 -0
  45. package/src/blocks/contact-us/contact-us-1.tsx +39 -0
  46. package/src/blocks/contact-us/contact-us-2.schema.ts +524 -0
  47. package/src/blocks/contact-us/contact-us-2.tsx +71 -0
  48. package/src/blocks/content/content-1.schema.ts +862 -0
  49. package/src/blocks/content/content-1.tsx +69 -0
  50. package/src/blocks/content/content-2.schema.ts +212 -0
  51. package/src/blocks/content/content-2.tsx +32 -0
  52. package/src/blocks/content/content-3.schema.ts +766 -0
  53. package/src/blocks/content/content-3.tsx +55 -0
  54. package/src/blocks/content/content-4.schema.ts +287 -0
  55. package/src/blocks/content/content-4.tsx +47 -0
  56. package/src/blocks/content/content-5.schema.ts +944 -0
  57. package/src/blocks/content/content-5.tsx +59 -0
  58. package/src/blocks/content/content-6.schema.ts +991 -0
  59. package/src/blocks/content/content-6.tsx +62 -0
  60. package/src/blocks/content/content-7.schema.ts +723 -0
  61. package/src/blocks/content/content-7.tsx +53 -0
  62. package/src/blocks/cta/cta-1.schema.ts +353 -0
  63. package/src/blocks/cta/cta-1.tsx +33 -0
  64. package/src/blocks/cta/cta-2.schema.ts +209 -0
  65. package/src/blocks/cta/cta-2.tsx +28 -0
  66. package/src/blocks/cta/cta-3.schema.ts +216 -0
  67. package/src/blocks/cta/cta-3.tsx +48 -0
  68. package/src/blocks/embed/embed-1.schema.ts +153 -0
  69. package/src/blocks/embed/embed-1.tsx +38 -0
  70. package/src/blocks/event/event-details.schema.ts +732 -0
  71. package/src/blocks/event/event-details.tsx +102 -0
  72. package/src/blocks/event/event-listing-2.schema.ts +555 -0
  73. package/src/blocks/event/event-listing-2.tsx +94 -0
  74. package/src/blocks/event/event-listing-3.schema.ts +621 -0
  75. package/src/blocks/event/event-listing-3.tsx +90 -0
  76. package/src/blocks/event/event-listing-4.schema.ts +3528 -0
  77. package/src/blocks/event/event-listing-4.tsx +97 -0
  78. package/src/blocks/event/event-listing.schema.ts +1353 -0
  79. package/src/blocks/event/event-listing.tsx +88 -0
  80. package/src/blocks/faq/faq-1.schema.ts +360 -0
  81. package/src/blocks/faq/faq-1.tsx +65 -0
  82. package/src/blocks/faq/faq-2.schema.ts +358 -0
  83. package/src/blocks/faq/faq-2.tsx +84 -0
  84. package/src/blocks/faq/faq-3.schema.ts +475 -0
  85. package/src/blocks/faq/faq-3.tsx +70 -0
  86. package/src/blocks/features/features-1/features-1.schema.ts +165 -0
  87. package/src/blocks/features/features-1/features-1.tsx +48 -0
  88. package/src/blocks/features/features-1/variants/default.ts +206 -0
  89. package/{dist/blocks/features/features-1/variants/index.js → src/blocks/features/features-1/variants/index.ts} +7 -1
  90. package/src/blocks/features/features-1/variants/stylized-cards-v1.ts +138 -0
  91. package/src/blocks/features/features-1/variants/stylized-cards-v2.ts +487 -0
  92. package/src/blocks/features/features-2.schema.ts +471 -0
  93. package/src/blocks/features/features-2.tsx +66 -0
  94. package/src/blocks/features/features-3.schema.ts +424 -0
  95. package/src/blocks/features/features-3.tsx +56 -0
  96. package/src/blocks/features/features-4.schema.ts +616 -0
  97. package/src/blocks/features/features-4.tsx +75 -0
  98. package/src/blocks/features/features-5.schema.ts +728 -0
  99. package/src/blocks/features/features-5.tsx +49 -0
  100. package/src/blocks/features/features-6.schema.ts +849 -0
  101. package/src/blocks/features/features-6.tsx +125 -0
  102. package/src/blocks/footer/footer-1.schema.ts +612 -0
  103. package/src/blocks/footer/footer-1.tsx +90 -0
  104. package/src/blocks/footer/footer-2.schema.ts +913 -0
  105. package/src/blocks/footer/footer-2.tsx +77 -0
  106. package/src/blocks/footer/footer-3.schema.ts +412 -0
  107. package/src/blocks/footer/footer-3.tsx +99 -0
  108. package/src/blocks/footer/footer-4.schema.ts +649 -0
  109. package/src/blocks/footer/footer-4.tsx +97 -0
  110. package/src/blocks/footer/footer-5.schema.ts +435 -0
  111. package/src/blocks/footer/footer-5.tsx +99 -0
  112. package/src/blocks/footer/footer-6.schema.ts +730 -0
  113. package/src/blocks/footer/footer-6.tsx +100 -0
  114. package/src/blocks/hero/hero-1.schema.ts +746 -0
  115. package/src/blocks/hero/hero-1.tsx +52 -0
  116. package/src/blocks/hero/hero-10.schema.ts +175 -0
  117. package/src/blocks/hero/hero-10.tsx +35 -0
  118. package/src/blocks/hero/hero-2.schema.ts +272 -0
  119. package/src/blocks/hero/hero-2.tsx +57 -0
  120. package/src/blocks/hero/hero-3.schema.ts +419 -0
  121. package/src/blocks/hero/hero-3.tsx +50 -0
  122. package/src/blocks/hero/hero-4.schema.ts +425 -0
  123. package/src/blocks/hero/hero-4.tsx +89 -0
  124. package/src/blocks/hero/hero-5.schema.ts +198 -0
  125. package/src/blocks/hero/hero-5.tsx +86 -0
  126. package/src/blocks/hero/hero-6.schema.ts +665 -0
  127. package/src/blocks/hero/hero-6.tsx +62 -0
  128. package/src/blocks/hero/hero-7.schema.ts +505 -0
  129. package/src/blocks/hero/hero-7.tsx +115 -0
  130. package/src/blocks/hero/hero-8.schema.ts +376 -0
  131. package/src/blocks/hero/hero-8.tsx +113 -0
  132. package/src/blocks/hero/hero-9.schema.ts +379 -0
  133. package/src/blocks/hero/hero-9.tsx +49 -0
  134. package/src/blocks/index.ts +89 -0
  135. package/src/blocks/logos/logos-1.schema.ts +270 -0
  136. package/src/blocks/logos/logos-1.tsx +60 -0
  137. package/src/blocks/navbar/navbar-1.schema.ts +959 -0
  138. package/src/blocks/navbar/navbar-1.tsx +384 -0
  139. package/src/blocks/navbar/navbar-2.schema.ts +1224 -0
  140. package/src/blocks/navbar/navbar-2.tsx +403 -0
  141. package/src/blocks/navbar/navbar-3.schema.ts +6834 -0
  142. package/src/blocks/navbar/navbar-3.tsx +551 -0
  143. package/src/blocks/pricing/pricing-1.schema.ts +988 -0
  144. package/src/blocks/pricing/pricing-1.tsx +88 -0
  145. package/src/blocks/products/products-listing-1.schema.ts +271 -0
  146. package/src/blocks/products/products-listing-1.tsx +48 -0
  147. package/src/blocks/profile/profile-1.schema.ts +399 -0
  148. package/src/blocks/profile/profile-1.tsx +64 -0
  149. package/src/blocks/stats/stats-1.schema.ts +262 -0
  150. package/src/blocks/stats/stats-1.tsx +38 -0
  151. package/src/blocks/stats/stats-2.schema.ts +111 -0
  152. package/src/blocks/stats/stats-2.tsx +52 -0
  153. package/src/blocks/stats/variants/default.ts +189 -0
  154. package/src/blocks/stats/variants/hero.ts +142 -0
  155. package/{dist/blocks/stats/variants/index.js → src/blocks/stats/variants/index.ts} +1 -0
  156. package/src/blocks/team/team-1.schema.ts +544 -0
  157. package/src/blocks/team/team-1.tsx +86 -0
  158. package/src/blocks/team/team-2.schema.ts +2742 -0
  159. package/src/blocks/team/team-2.tsx +74 -0
  160. package/src/blocks/team/team-3.schema.ts +690 -0
  161. package/src/blocks/team/team-3.tsx +103 -0
  162. package/src/blocks/team/team-4.schema.ts +551 -0
  163. package/src/blocks/team/team-4.tsx +59 -0
  164. package/src/blocks/termsAndPrivacy/terms-and-conditions-1.schema.ts +158 -0
  165. package/src/blocks/termsAndPrivacy/terms-and-conditions-1.tsx +29 -0
  166. package/src/blocks/testimonial/testimonial-1.schema.ts +351 -0
  167. package/src/blocks/testimonial/testimonial-1.tsx +79 -0
  168. package/src/blocks/testimonial/testimonial-2.schema.ts +816 -0
  169. package/src/blocks/testimonial/testimonial-2.tsx +161 -0
  170. package/src/blocks/testimonial/testimonial-3.schema.ts +273 -0
  171. package/src/blocks/testimonial/testimonial-3.tsx +128 -0
  172. package/src/blocks/testimonial/testimonial-4.schema.ts +3378 -0
  173. package/src/blocks/testimonial/testimonial-4.tsx +202 -0
  174. package/src/blocks/testimonial/testimonial-5/variants/default.ts +510 -0
  175. package/src/blocks/testimonial/testimonial-5/variants/index.ts +4 -0
  176. package/src/blocks/testimonial/testimonial-5/variants/testimonialWithLogo.ts +887 -0
  177. package/src/blocks/testimonial/testimonial-5/variants/testimonialWithRatings.ts +923 -0
  178. package/src/blocks/testimonial/testimonial-5.schema.ts +250 -0
  179. package/src/blocks/testimonial/testimonial-5.tsx +130 -0
  180. package/src/blocks/testimonial/testimonial-6.schema.ts +1672 -0
  181. package/src/blocks/testimonial/testimonial-6.tsx +178 -0
  182. package/{dist/index.js → src/index.ts} +5 -2
  183. package/{dist/schemas/blocks.js → src/schemas/blocks.ts} +97 -72
  184. package/src/schemas/categories.ts +140 -0
  185. package/src/styles.d.ts +4 -0
  186. package/dist/blocks/about-us/about-us-1.d.ts +0 -5
  187. package/dist/blocks/about-us/about-us-1.js +0 -5
  188. package/dist/blocks/about-us/about-us-1.schema.d.ts +0 -38
  189. package/dist/blocks/about-us/about-us-1.schema.js +0 -537
  190. package/dist/blocks/blogs/blog-listing-1.d.ts +0 -5
  191. package/dist/blocks/blogs/blog-listing-1.js +0 -12
  192. package/dist/blocks/blogs/blog-listing-1.schema.d.ts +0 -59
  193. package/dist/blocks/blogs/blog-listing-1.schema.js +0 -387
  194. package/dist/blocks/blogs/blog-listing-2.d.ts +0 -5
  195. package/dist/blocks/blogs/blog-listing-2.js +0 -9
  196. package/dist/blocks/blogs/blog-listing-2.schema.d.ts +0 -104
  197. package/dist/blocks/blogs/blog-listing-2.schema.js +0 -572
  198. package/dist/blocks/blogs/blog-post-1.d.ts +0 -6
  199. package/dist/blocks/blogs/blog-post-1.js +0 -8
  200. package/dist/blocks/blogs/blog-post-1.schema.d.ts +0 -48
  201. package/dist/blocks/blogs/blog-post-1.schema.js +0 -358
  202. package/dist/blocks/blogs/blog-post-2.d.ts +0 -6
  203. package/dist/blocks/blogs/blog-post-2.js +0 -8
  204. package/dist/blocks/blogs/blog-post-2.schema.d.ts +0 -74
  205. package/dist/blocks/blogs/blog-post-2.schema.js +0 -779
  206. package/dist/blocks/cards/cards-10.d.ts +0 -6
  207. package/dist/blocks/cards/cards-10.js +0 -4
  208. package/dist/blocks/cards/cards-10.schema.d.ts +0 -44
  209. package/dist/blocks/cards/cards-10.schema.js +0 -405
  210. package/dist/blocks/cards/cards-11.d.ts +0 -6
  211. package/dist/blocks/cards/cards-11.js +0 -4
  212. package/dist/blocks/cards/cards-11.schema.d.ts +0 -58
  213. package/dist/blocks/cards/cards-11.schema.js +0 -406
  214. package/dist/blocks/cards/cards-12.d.ts +0 -6
  215. package/dist/blocks/cards/cards-12.js +0 -4
  216. package/dist/blocks/cards/cards-12.schema.d.ts +0 -38
  217. package/dist/blocks/cards/cards-12.schema.js +0 -545
  218. package/dist/blocks/cards/cards-2.d.ts +0 -5
  219. package/dist/blocks/cards/cards-2.js +0 -4
  220. package/dist/blocks/cards/cards-2.schema.d.ts +0 -46
  221. package/dist/blocks/cards/cards-2.schema.js +0 -260
  222. package/dist/blocks/cards/cards-3.d.ts +0 -6
  223. package/dist/blocks/cards/cards-3.js +0 -5
  224. package/dist/blocks/cards/cards-3.schema.d.ts +0 -36
  225. package/dist/blocks/cards/cards-3.schema.js +0 -351
  226. package/dist/blocks/cards/cards-4.d.ts +0 -6
  227. package/dist/blocks/cards/cards-4.js +0 -4
  228. package/dist/blocks/cards/cards-4.schema.d.ts +0 -40
  229. package/dist/blocks/cards/cards-4.schema.js +0 -648
  230. package/dist/blocks/cards/cards-5.d.ts +0 -5
  231. package/dist/blocks/cards/cards-5.js +0 -4
  232. package/dist/blocks/cards/cards-5.schema.d.ts +0 -48
  233. package/dist/blocks/cards/cards-5.schema.js +0 -238
  234. package/dist/blocks/cards/cards-6.d.ts +0 -5
  235. package/dist/blocks/cards/cards-6.js +0 -45
  236. package/dist/blocks/cards/cards-6.schema.d.ts +0 -50
  237. package/dist/blocks/cards/cards-6.schema.js +0 -608
  238. package/dist/blocks/cards/cards-7.d.ts +0 -5
  239. package/dist/blocks/cards/cards-7.js +0 -45
  240. package/dist/blocks/cards/cards-7.schema.d.ts +0 -87
  241. package/dist/blocks/cards/cards-7.schema.js +0 -1732
  242. package/dist/blocks/cards/cards-8.d.ts +0 -6
  243. package/dist/blocks/cards/cards-8.js +0 -4
  244. package/dist/blocks/cards/cards-8.schema.d.ts +0 -40
  245. package/dist/blocks/cards/cards-8.schema.js +0 -660
  246. package/dist/blocks/cards/cards-9.d.ts +0 -5
  247. package/dist/blocks/cards/cards-9.js +0 -4
  248. package/dist/blocks/cards/cards-9.schema.d.ts +0 -55
  249. package/dist/blocks/cards/cards-9.schema.js +0 -798
  250. package/dist/blocks/carousel/carousel-1.d.ts +0 -5
  251. package/dist/blocks/carousel/carousel-1.js +0 -12
  252. package/dist/blocks/carousel/carousel-1.schema.d.ts +0 -51
  253. package/dist/blocks/carousel/carousel-1.schema.js +0 -236
  254. package/dist/blocks/contact-us/contact-us-1.d.ts +0 -5
  255. package/dist/blocks/contact-us/contact-us-1.js +0 -4
  256. package/dist/blocks/contact-us/contact-us-1.schema.d.ts +0 -31
  257. package/dist/blocks/contact-us/contact-us-1.schema.js +0 -202
  258. package/dist/blocks/contact-us/contact-us-2.d.ts +0 -5
  259. package/dist/blocks/contact-us/contact-us-2.js +0 -4
  260. package/dist/blocks/contact-us/contact-us-2.schema.d.ts +0 -59
  261. package/dist/blocks/contact-us/contact-us-2.schema.js +0 -512
  262. package/dist/blocks/content/content-1.d.ts +0 -6
  263. package/dist/blocks/content/content-1.js +0 -4
  264. package/dist/blocks/content/content-1.schema.d.ts +0 -56
  265. package/dist/blocks/content/content-1.schema.js +0 -807
  266. package/dist/blocks/content/content-2.d.ts +0 -5
  267. package/dist/blocks/content/content-2.js +0 -4
  268. package/dist/blocks/content/content-2.schema.d.ts +0 -78
  269. package/dist/blocks/content/content-2.schema.js +0 -200
  270. package/dist/blocks/content/content-3.d.ts +0 -6
  271. package/dist/blocks/content/content-3.js +0 -5
  272. package/dist/blocks/content/content-3.schema.d.ts +0 -23
  273. package/dist/blocks/content/content-3.schema.js +0 -850
  274. package/dist/blocks/content/content-4.d.ts +0 -6
  275. package/dist/blocks/content/content-4.js +0 -6
  276. package/dist/blocks/content/content-4.schema.d.ts +0 -33
  277. package/dist/blocks/content/content-4.schema.js +0 -252
  278. package/dist/blocks/content/content-5.d.ts +0 -6
  279. package/dist/blocks/content/content-5.js +0 -5
  280. package/dist/blocks/content/content-5.schema.d.ts +0 -37
  281. package/dist/blocks/content/content-5.schema.js +0 -932
  282. package/dist/blocks/content/content-6.d.ts +0 -6
  283. package/dist/blocks/content/content-6.js +0 -5
  284. package/dist/blocks/content/content-6.schema.d.ts +0 -41
  285. package/dist/blocks/content/content-6.schema.js +0 -976
  286. package/dist/blocks/cta/cta-1.d.ts +0 -5
  287. package/dist/blocks/cta/cta-1.js +0 -4
  288. package/dist/blocks/cta/cta-1.schema.d.ts +0 -40
  289. package/dist/blocks/cta/cta-1.schema.js +0 -339
  290. package/dist/blocks/cta/cta-2.d.ts +0 -5
  291. package/dist/blocks/cta/cta-2.js +0 -4
  292. package/dist/blocks/cta/cta-2.schema.d.ts +0 -45
  293. package/dist/blocks/cta/cta-2.schema.js +0 -183
  294. package/dist/blocks/cta/cta-3.d.ts +0 -5
  295. package/dist/blocks/cta/cta-3.js +0 -4
  296. package/dist/blocks/cta/cta-3.schema.d.ts +0 -34
  297. package/dist/blocks/cta/cta-3.schema.js +0 -137
  298. package/dist/blocks/embed/embed-1.d.ts +0 -5
  299. package/dist/blocks/embed/embed-1.js +0 -5
  300. package/dist/blocks/embed/embed-1.schema.d.ts +0 -13
  301. package/dist/blocks/embed/embed-1.schema.js +0 -146
  302. package/dist/blocks/event/event-details.d.ts +0 -5
  303. package/dist/blocks/event/event-details.js +0 -9
  304. package/dist/blocks/event/event-details.schema.d.ts +0 -112
  305. package/dist/blocks/event/event-details.schema.js +0 -685
  306. package/dist/blocks/event/event-listing-2.d.ts +0 -5
  307. package/dist/blocks/event/event-listing-2.js +0 -4
  308. package/dist/blocks/event/event-listing-2.schema.d.ts +0 -84
  309. package/dist/blocks/event/event-listing-2.schema.js +0 -455
  310. package/dist/blocks/event/event-listing-3.d.ts +0 -5
  311. package/dist/blocks/event/event-listing-3.js +0 -10
  312. package/dist/blocks/event/event-listing-3.schema.d.ts +0 -77
  313. package/dist/blocks/event/event-listing-3.schema.js +0 -570
  314. package/dist/blocks/event/event-listing.d.ts +0 -5
  315. package/dist/blocks/event/event-listing.js +0 -10
  316. package/dist/blocks/event/event-listing.schema.d.ts +0 -51
  317. package/dist/blocks/event/event-listing.schema.js +0 -1297
  318. package/dist/blocks/faq/faq-1.d.ts +0 -5
  319. package/dist/blocks/faq/faq-1.js +0 -4
  320. package/dist/blocks/faq/faq-1.schema.d.ts +0 -47
  321. package/dist/blocks/faq/faq-1.schema.js +0 -325
  322. package/dist/blocks/faq/faq-2.d.ts +0 -6
  323. package/dist/blocks/faq/faq-2.js +0 -19
  324. package/dist/blocks/faq/faq-2.schema.d.ts +0 -47
  325. package/dist/blocks/faq/faq-2.schema.js +0 -329
  326. package/dist/blocks/faq/faq-3.d.ts +0 -5
  327. package/dist/blocks/faq/faq-3.js +0 -4
  328. package/dist/blocks/faq/faq-3.schema.d.ts +0 -40
  329. package/dist/blocks/faq/faq-3.schema.js +0 -444
  330. package/dist/blocks/features/features-1/features-1.d.ts +0 -5
  331. package/dist/blocks/features/features-1/features-1.js +0 -4
  332. package/dist/blocks/features/features-1/features-1.schema.d.ts +0 -5
  333. package/dist/blocks/features/features-1/features-1.schema.js +0 -142
  334. package/dist/blocks/features/features-1/variants/default.d.ts +0 -37
  335. package/dist/blocks/features/features-1/variants/default.js +0 -185
  336. package/dist/blocks/features/features-1/variants/index.d.ts +0 -5
  337. package/dist/blocks/features/features-1/variants/stylized-cards-v1.d.ts +0 -3
  338. package/dist/blocks/features/features-1/variants/stylized-cards-v1.js +0 -132
  339. package/dist/blocks/features/features-1/variants/stylized-cards-v2.d.ts +0 -3
  340. package/dist/blocks/features/features-1/variants/stylized-cards-v2.js +0 -484
  341. package/dist/blocks/features/features-2.d.ts +0 -5
  342. package/dist/blocks/features/features-2.js +0 -8
  343. package/dist/blocks/features/features-2.schema.d.ts +0 -41
  344. package/dist/blocks/features/features-2.schema.js +0 -321
  345. package/dist/blocks/features/features-3.d.ts +0 -5
  346. package/dist/blocks/features/features-3.js +0 -4
  347. package/dist/blocks/features/features-3.schema.d.ts +0 -40
  348. package/dist/blocks/features/features-3.schema.js +0 -424
  349. package/dist/blocks/features/features-4.d.ts +0 -5
  350. package/dist/blocks/features/features-4.js +0 -4
  351. package/dist/blocks/features/features-4.schema.d.ts +0 -60
  352. package/dist/blocks/features/features-4.schema.js +0 -594
  353. package/dist/blocks/features/features-5.d.ts +0 -6
  354. package/dist/blocks/features/features-5.js +0 -5
  355. package/dist/blocks/features/features-5.schema.d.ts +0 -28
  356. package/dist/blocks/features/features-5.schema.js +0 -727
  357. package/dist/blocks/features/features-6.d.ts +0 -5
  358. package/dist/blocks/features/features-6.js +0 -31
  359. package/dist/blocks/features/features-6.schema.d.ts +0 -74
  360. package/dist/blocks/features/features-6.schema.js +0 -814
  361. package/dist/blocks/footer/footer-1.d.ts +0 -6
  362. package/dist/blocks/footer/footer-1.js +0 -5
  363. package/dist/blocks/footer/footer-1.schema.d.ts +0 -62
  364. package/dist/blocks/footer/footer-1.schema.js +0 -565
  365. package/dist/blocks/footer/footer-2.d.ts +0 -5
  366. package/dist/blocks/footer/footer-2.js +0 -4
  367. package/dist/blocks/footer/footer-2.schema.d.ts +0 -76
  368. package/dist/blocks/footer/footer-2.schema.js +0 -876
  369. package/dist/blocks/footer/footer-3.d.ts +0 -6
  370. package/dist/blocks/footer/footer-3.js +0 -15
  371. package/dist/blocks/footer/footer-3.schema.d.ts +0 -48
  372. package/dist/blocks/footer/footer-3.schema.js +0 -475
  373. package/dist/blocks/footer/footer-4.d.ts +0 -6
  374. package/dist/blocks/footer/footer-4.js +0 -5
  375. package/dist/blocks/footer/footer-4.schema.d.ts +0 -71
  376. package/dist/blocks/footer/footer-4.schema.js +0 -620
  377. package/dist/blocks/footer/footer-5.d.ts +0 -6
  378. package/dist/blocks/footer/footer-5.js +0 -5
  379. package/dist/blocks/footer/footer-5.schema.d.ts +0 -52
  380. package/dist/blocks/footer/footer-5.schema.js +0 -400
  381. package/dist/blocks/hero/hero-1.d.ts +0 -5
  382. package/dist/blocks/hero/hero-1.js +0 -4
  383. package/dist/blocks/hero/hero-1.schema.d.ts +0 -35
  384. package/dist/blocks/hero/hero-1.schema.js +0 -742
  385. package/dist/blocks/hero/hero-2.d.ts +0 -5
  386. package/dist/blocks/hero/hero-2.js +0 -4
  387. package/dist/blocks/hero/hero-2.schema.d.ts +0 -46
  388. package/dist/blocks/hero/hero-2.schema.js +0 -282
  389. package/dist/blocks/hero/hero-3.d.ts +0 -5
  390. package/dist/blocks/hero/hero-3.js +0 -4
  391. package/dist/blocks/hero/hero-3.schema.d.ts +0 -54
  392. package/dist/blocks/hero/hero-3.schema.js +0 -378
  393. package/dist/blocks/hero/hero-4.d.ts +0 -5
  394. package/dist/blocks/hero/hero-4.js +0 -30
  395. package/dist/blocks/hero/hero-4.schema.d.ts +0 -33
  396. package/dist/blocks/hero/hero-4.schema.js +0 -316
  397. package/dist/blocks/hero/hero-5.d.ts +0 -5
  398. package/dist/blocks/hero/hero-5.js +0 -30
  399. package/dist/blocks/hero/hero-5.schema.d.ts +0 -32
  400. package/dist/blocks/hero/hero-5.schema.js +0 -183
  401. package/dist/blocks/hero/hero-6.d.ts +0 -5
  402. package/dist/blocks/hero/hero-6.js +0 -8
  403. package/dist/blocks/hero/hero-6.schema.d.ts +0 -36
  404. package/dist/blocks/hero/hero-6.schema.js +0 -617
  405. package/dist/blocks/hero/hero-7.d.ts +0 -5
  406. package/dist/blocks/hero/hero-7.js +0 -40
  407. package/dist/blocks/hero/hero-7.schema.d.ts +0 -12
  408. package/dist/blocks/hero/hero-7.schema.js +0 -471
  409. package/dist/blocks/hero/hero-8.d.ts +0 -5
  410. package/dist/blocks/hero/hero-8.js +0 -39
  411. package/dist/blocks/hero/hero-8.schema.d.ts +0 -17
  412. package/dist/blocks/hero/hero-8.schema.js +0 -343
  413. package/dist/blocks/hero/hero-9.d.ts +0 -6
  414. package/dist/blocks/hero/hero-9.js +0 -4
  415. package/dist/blocks/hero/hero-9.schema.d.ts +0 -39
  416. package/dist/blocks/hero/hero-9.schema.js +0 -355
  417. package/dist/blocks/index.d.ts +0 -3
  418. package/dist/blocks/index.js +0 -74
  419. package/dist/blocks/logos/logos-1.d.ts +0 -5
  420. package/dist/blocks/logos/logos-1.js +0 -10
  421. package/dist/blocks/logos/logos-1.schema.d.ts +0 -34
  422. package/dist/blocks/logos/logos-1.schema.js +0 -239
  423. package/dist/blocks/navbar/navbar-1.d.ts +0 -6
  424. package/dist/blocks/navbar/navbar-1.js +0 -100
  425. package/dist/blocks/navbar/navbar-1.schema.d.ts +0 -117
  426. package/dist/blocks/navbar/navbar-1.schema.js +0 -938
  427. package/dist/blocks/navbar/navbar-2.d.ts +0 -6
  428. package/dist/blocks/navbar/navbar-2.js +0 -99
  429. package/dist/blocks/navbar/navbar-2.schema.d.ts +0 -134
  430. package/dist/blocks/navbar/navbar-2.schema.js +0 -1200
  431. package/dist/blocks/pricing/pricing-1.d.ts +0 -5
  432. package/dist/blocks/pricing/pricing-1.js +0 -4
  433. package/dist/blocks/pricing/pricing-1.schema.d.ts +0 -87
  434. package/dist/blocks/pricing/pricing-1.schema.js +0 -976
  435. package/dist/blocks/products/products-listing-1.d.ts +0 -5
  436. package/dist/blocks/products/products-listing-1.js +0 -4
  437. package/dist/blocks/products/products-listing-1.schema.d.ts +0 -36
  438. package/dist/blocks/products/products-listing-1.schema.js +0 -264
  439. package/dist/blocks/stats/stats-1.d.ts +0 -6
  440. package/dist/blocks/stats/stats-1.js +0 -6
  441. package/dist/blocks/stats/stats-1.schema.d.ts +0 -25
  442. package/dist/blocks/stats/stats-1.schema.js +0 -213
  443. package/dist/blocks/stats/stats-2.d.ts +0 -6
  444. package/dist/blocks/stats/stats-2.js +0 -6
  445. package/dist/blocks/stats/stats-2.schema.d.ts +0 -5
  446. package/dist/blocks/stats/stats-2.schema.js +0 -104
  447. package/dist/blocks/stats/variants/default.d.ts +0 -22
  448. package/dist/blocks/stats/variants/default.js +0 -185
  449. package/dist/blocks/stats/variants/hero.d.ts +0 -3
  450. package/dist/blocks/stats/variants/hero.js +0 -151
  451. package/dist/blocks/stats/variants/index.d.ts +0 -4
  452. package/dist/blocks/team/team-1.d.ts +0 -6
  453. package/dist/blocks/team/team-1.js +0 -6
  454. package/dist/blocks/team/team-1.schema.d.ts +0 -65
  455. package/dist/blocks/team/team-1.schema.js +0 -476
  456. package/dist/blocks/team/team-2.d.ts +0 -6
  457. package/dist/blocks/team/team-2.js +0 -6
  458. package/dist/blocks/team/team-2.schema.d.ts +0 -52
  459. package/dist/blocks/team/team-2.schema.js +0 -2732
  460. package/dist/blocks/team/team-3.d.ts +0 -5
  461. package/dist/blocks/team/team-3.js +0 -30
  462. package/dist/blocks/team/team-3.schema.d.ts +0 -32
  463. package/dist/blocks/team/team-3.schema.js +0 -679
  464. package/dist/blocks/termsAndPrivacy/terms-and-conditions-1.d.ts +0 -6
  465. package/dist/blocks/termsAndPrivacy/terms-and-conditions-1.js +0 -4
  466. package/dist/blocks/termsAndPrivacy/terms-and-conditions-1.schema.d.ts +0 -14
  467. package/dist/blocks/termsAndPrivacy/terms-and-conditions-1.schema.js +0 -154
  468. package/dist/blocks/testimonial/testimonial-1.d.ts +0 -5
  469. package/dist/blocks/testimonial/testimonial-1.js +0 -10
  470. package/dist/blocks/testimonial/testimonial-1.schema.d.ts +0 -16
  471. package/dist/blocks/testimonial/testimonial-1.schema.js +0 -314
  472. package/dist/blocks/testimonial/testimonial-2.d.ts +0 -5
  473. package/dist/blocks/testimonial/testimonial-2.js +0 -42
  474. package/dist/blocks/testimonial/testimonial-2.schema.d.ts +0 -54
  475. package/dist/blocks/testimonial/testimonial-2.schema.js +0 -771
  476. package/dist/blocks/testimonial/testimonial-3.d.ts +0 -5
  477. package/dist/blocks/testimonial/testimonial-3.js +0 -38
  478. package/dist/blocks/testimonial/testimonial-3.schema.d.ts +0 -56
  479. package/dist/blocks/testimonial/testimonial-3.schema.js +0 -260
  480. package/dist/blocks/testimonial/testimonial-4.d.ts +0 -5
  481. package/dist/blocks/testimonial/testimonial-4.js +0 -51
  482. package/dist/blocks/testimonial/testimonial-4.schema.d.ts +0 -145
  483. package/dist/blocks/testimonial/testimonial-4.schema.js +0 -3214
  484. package/dist/blocks/testimonial/testimonial-5.d.ts +0 -5
  485. package/dist/blocks/testimonial/testimonial-5.js +0 -31
  486. package/dist/blocks/testimonial/testimonial-5.schema.d.ts +0 -33
  487. package/dist/blocks/testimonial/testimonial-5.schema.js +0 -401
  488. package/dist/blocks/testimonial/testimonial-6.d.ts +0 -5
  489. package/dist/blocks/testimonial/testimonial-6.js +0 -39
  490. package/dist/blocks/testimonial/testimonial-6.schema.d.ts +0 -60
  491. package/dist/blocks/testimonial/testimonial-6.schema.js +0 -695
  492. package/dist/blocks.d.ts +0 -3
  493. package/dist/blocks.js +0 -74
  494. package/dist/index.d.ts +0 -6
  495. package/dist/schemas/blocks.d.ts +0 -3
  496. package/dist/schemas/categories.d.ts +0 -3
  497. package/dist/schemas/categories.js +0 -129
  498. package/dist/schemas/index.d.ts +0 -3
  499. package/dist/schemas.d.ts +0 -3
  500. package/dist/schemas.js +0 -2
  501. /package/{dist/schemas/index.js → src/schemas/index.ts} +0 -0
@@ -0,0 +1,59 @@
1
+ import {
2
+ type ILevoBlockBaseProps,
3
+ Heading,
4
+ Typography,
5
+ Container,
6
+ Section,
7
+ Box,
8
+ Icon,
9
+ Button,
10
+ } from "@levo-so/studio";
11
+
12
+ import type { ITeam4Content } from "./team-4.schema";
13
+
14
+ const Team4: React.FC<ILevoBlockBaseProps<ITeam4Content>> = ({ content }) => {
15
+ return (
16
+ <Section elementKey="layout">
17
+ <Container elementKey="container">
18
+ <Box elementKey="header">
19
+ <Heading elementKey="title" />
20
+ <Typography elementKey="description" />
21
+ </Box>
22
+ <Box elementKey="team_levoGroup" data-levo_group>
23
+ {(content?.team ?? [])?.map((_: any, index: number) => (
24
+ <Box
25
+ key={index}
26
+ data-levo_group_item
27
+ elementKey={`team.${index}.card`}
28
+ >
29
+ <Box elementKey={`team.${index}.info`}>
30
+ <Box elementKey={`team.${index}.name-position-wrapper`}>
31
+ <Heading elementKey={`team.${index}.name`} />
32
+ </Box>
33
+ <Box
34
+ elementKey={`team.${index}.social_levoGroup`}
35
+ data-levo_group
36
+ >
37
+ {(content?.team?.[index]?.social ?? [])?.map(
38
+ (_: any, socialIndex: number) => (
39
+ <Icon
40
+ key={socialIndex}
41
+ data-levo_group_item
42
+ elementKey={`team.${index}.social.${socialIndex}.icon`}
43
+ />
44
+ ),
45
+ )}
46
+ </Box>
47
+ </Box>
48
+ </Box>
49
+ ))}
50
+ </Box>
51
+ <Box elementKey="cta_wrapper">
52
+ <Button elementKey="cta" />
53
+ </Box>
54
+ </Container>
55
+ </Section>
56
+ );
57
+ };
58
+
59
+ export default Team4;
@@ -0,0 +1,158 @@
1
+ import type { IBlock } from "@levo-so/studio";
2
+
3
+ const DEFAULT_CONTENT = {
4
+ layout: null,
5
+ container: null,
6
+ header_content: null,
7
+ title: "Terms and Conditions",
8
+ subtitle: "Enterprise Legal Documentation - Effective from January 1, 2025",
9
+ content_wrapper: null,
10
+ content:
11
+ "<h2>1. Agreement to Terms</h2><p>By accessing and using our enterprise platform, you confirm your acceptance of these Terms and Conditions. These terms apply to all users, including clients, partners, and service providers who access our business solutions.</p><h2>2. Service Description</h2><p>Our platform provides comprehensive business technology solutions designed to streamline operations, enhance productivity, and drive growth for enterprises of all sizes. We offer scalable infrastructure, data analytics, and integration services.</p><h2>3. User Responsibilities</h2><p>Users are responsible for maintaining the confidentiality of their account credentials and for all activities that occur under their account. You agree to use our services in compliance with all applicable laws and regulations.</p><h2>4. Data Privacy and Protection</h2><p>We are committed to protecting your data privacy. Our data processing practices comply with industry standards and applicable privacy regulations. We implement robust security measures to safeguard your business information.</p><h2>5. Intellectual Property</h2><p>All content, features, and functionality of our platform are owned by us and are protected by international copyright, trademark, and other intellectual property laws.</p><h2>6. Limitation of Liability</h2><p>Our liability is limited to the maximum extent permitted by law. We provide our services on an 'as is' basis and make no warranties regarding uninterrupted or error-free operation.</p><h2>7. Contact Information</h2><p>For questions regarding these terms, please contact our legal team at legal@company.com or through our official support channels.</p>",
12
+ };
13
+
14
+ export type ITermsAndConditions1Content = typeof DEFAULT_CONTENT;
15
+
16
+ export const TermsAndConditions1: IBlock = {
17
+ category_id: "termsAndPrivacy",
18
+ title: "Terms and Conditions 1",
19
+ key: "terms-and-conditions-1",
20
+ version: "v1",
21
+ prompt_description:
22
+ "A comprehensive terms and conditions page with header section containing title and subtitle, followed by detailed legal content in rich text format.",
23
+ content_schema: [
24
+ {
25
+ key: "layout",
26
+ label: "Layout",
27
+ field_interface: "LayoutWidget",
28
+ hint: {
29
+ prompt_description:
30
+ "Provides the overall page layout with proper spacing and alignment for legal document presentation.",
31
+ },
32
+ },
33
+ {
34
+ key: "container",
35
+ label: "Container",
36
+ field_interface: "ContainerWidget",
37
+ hint: {
38
+ prompt_description:
39
+ "Main content container that ensures proper width constraints and center alignment for readability.",
40
+ },
41
+ },
42
+ {
43
+ key: "header_content",
44
+ label: "Header Content",
45
+ field_interface: "BoxWidget",
46
+ hint: {
47
+ prompt_description:
48
+ "Header section wrapper that groups the main title and subtitle with consistent spacing.",
49
+ },
50
+ },
51
+ {
52
+ key: "title",
53
+ label: "Title",
54
+ field_interface: "HeadingWidget",
55
+ hint: {
56
+ prompt_description:
57
+ "Main page title for the legal document. Should be clear and professional. Tone: formal, authoritative.",
58
+ min_characters: 10,
59
+ max_characters: 60,
60
+ },
61
+ },
62
+ {
63
+ key: "subtitle",
64
+ label: "Subtitle",
65
+ field_interface: "TypographyWidget",
66
+ hint: {
67
+ prompt_description:
68
+ "Subtitle providing additional context such as effective date or document description. Tone: informative, professional.",
69
+ min_characters: 20,
70
+ max_characters: 120,
71
+ },
72
+ },
73
+ {
74
+ key: "content_wrapper",
75
+ label: "Content Wrapper",
76
+ field_interface: "BoxWidget",
77
+ hint: {
78
+ prompt_description:
79
+ "Wrapper for the main legal content area with appropriate spacing and typography styles.",
80
+ },
81
+ },
82
+ {
83
+ key: "content",
84
+ label: "Content",
85
+ field_interface: "TypographyWidget",
86
+ hint: {
87
+ prompt_description:
88
+ "Main legal document content with structured sections, headings, and paragraphs. Should include comprehensive terms covering service usage, responsibilities, privacy, and legal compliance. Tone: formal, clear, legally compliant.",
89
+ min_characters: 500,
90
+ max_characters: 10000,
91
+ },
92
+ },
93
+ ],
94
+ layouts: [
95
+ {
96
+ key: "default",
97
+ title: "Default",
98
+ styles: {
99
+ layout: {
100
+ width: "100%",
101
+ "padding-top": "8xl",
102
+ "padding-bottom": "8xl",
103
+ "background-color": "white",
104
+ },
105
+ container: {
106
+ width: "100%",
107
+ "margin-left": "auto",
108
+ "margin-right": "auto",
109
+ "padding-left": "none",
110
+ "padding-right": "none",
111
+ "media:max:768px": {
112
+ "padding-left": "xl",
113
+ "padding-right": "xl",
114
+ },
115
+ "max-width": "1200px",
116
+ "padding-top": "none",
117
+ "padding-bottom": "none",
118
+ },
119
+ header_content: {
120
+ display: "flex",
121
+ "flex-direction": "column",
122
+ "align-items": "center",
123
+ "text-align": "center",
124
+ "margin-bottom": "6xl",
125
+ "row-gap": "lg",
126
+ },
127
+ title: {
128
+ color: "text-1",
129
+ },
130
+ subtitle: {
131
+ color: "text-2",
132
+ "max-width": "2xl",
133
+ },
134
+ content_wrapper: {
135
+ width: "100%",
136
+ },
137
+ content: {
138
+ color: "text-1",
139
+ "text-align": "justify",
140
+ "media:max:768px": {
141
+ "text-align": "left",
142
+ },
143
+ },
144
+ },
145
+ content: DEFAULT_CONTENT,
146
+ config: {
147
+ title: {
148
+ selectedVariants: {
149
+ Heading_Level: "H2",
150
+ },
151
+ heading: {
152
+ level: 2,
153
+ },
154
+ },
155
+ },
156
+ },
157
+ ],
158
+ };
@@ -0,0 +1,29 @@
1
+ import React from "react";
2
+ import {
3
+ Box,
4
+ Container,
5
+ Heading,
6
+ Section,
7
+ Typography,
8
+ type ILevoBlockBaseProps,
9
+ } from "@levo-so/studio";
10
+
11
+ import type { ITermsAndConditions1Content } from "./terms-and-conditions-1.schema";
12
+
13
+ const TermsAndConditions1: React.FC<
14
+ ILevoBlockBaseProps<ITermsAndConditions1Content>
15
+ > = () => (
16
+ <Section elementKey="layout">
17
+ <Container elementKey="container">
18
+ <Box elementKey="header_content">
19
+ <Heading elementKey="title" />
20
+ <Typography elementKey="subtitle" />
21
+ </Box>
22
+ <Box elementKey="content_wrapper">
23
+ <Typography elementKey="content" />
24
+ </Box>
25
+ </Container>
26
+ </Section>
27
+ );
28
+
29
+ export default TermsAndConditions1;
@@ -0,0 +1,351 @@
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_TESTIMONIALS_COUNT = 8;
15
+
16
+ const DEFAULT_CONTENT = {
17
+ layout: null,
18
+ container: null,
19
+
20
+ // title, description and CTA
21
+ textWrapper: null,
22
+ title: "What Our Clients Say",
23
+ description:
24
+ "Hear from our satisfied clients about their experience working with our team.",
25
+ ctas: [
26
+ {
27
+ cta: "View All Testimonials",
28
+ },
29
+ ],
30
+
31
+ testimonials: Array(DEFAULT_TESTIMONIALS_COUNT).fill({
32
+ wrapper: null,
33
+
34
+ profileWrapper: null,
35
+ image: DUMMY_ICON,
36
+ namePositionWrapper: null,
37
+ name: "John Smith",
38
+ position: "CEO",
39
+
40
+ testimonial:
41
+ "Navigate complex markets confidently with our expert financial advisory services.",
42
+ }),
43
+ };
44
+
45
+ export type ITestimonial1Content = typeof DEFAULT_CONTENT;
46
+
47
+ export const Testimonial1: IBlock = {
48
+ category_id: "testimonial",
49
+ title: "Testimonial 1",
50
+ key: "testimonial-1",
51
+ version: "v1",
52
+ prompt_description:
53
+ "Centered headline, subheadline, and button above a horizontally auto-scrolling carousel of testimonial cards with client photos, names, roles, and brief quotes.",
54
+ content_schema: [
55
+ {
56
+ key: "layout",
57
+ label: "Layout",
58
+ field_interface: "LayoutWidget",
59
+ hint: {
60
+ prompt_description:
61
+ "Defines the overall layout structure of the testimonial section block, keeping content centered and spaced for visual emphasis. No content generation required—used for layout only.",
62
+ },
63
+ },
64
+ {
65
+ key: "container",
66
+ label: "Container",
67
+ field_interface: "ContainerWidget",
68
+ hint: {
69
+ prompt_description:
70
+ "Main outer container to provide padding and alignment for testimonial section. Not for content, but for spacing and organizational structure only.",
71
+ },
72
+ },
73
+ // Title, description and CTA
74
+ {
75
+ key: "textCTAWrapper",
76
+ label: "Text CTA Wrapper",
77
+ field_interface: "BoxWidget",
78
+ hint: {
79
+ prompt_description:
80
+ "Container that vertically stacks the section heading, description, and the call-to-action button in the top center of the block. No content generation—structural use.",
81
+ },
82
+ },
83
+ {
84
+ key: "textWrapper",
85
+ label: "Text Wrapper",
86
+ field_interface: "BoxWidget",
87
+ hint: {
88
+ prompt_description:
89
+ "Groups the heading and subheading text, ensuring central alignment and consistent spacing. No content—structural use.",
90
+ },
91
+ },
92
+ {
93
+ key: "title",
94
+ label: "Title",
95
+ field_interface: "HeadingWidget",
96
+ hint: {
97
+ prompt_description:
98
+ "Primary headline introducing the testimonial section. Write a clear, inviting headline that builds trust—example: 'What Our Clients Say'. Use a confident, aspirational but neutral tone.",
99
+ min_characters: 16,
100
+ max_characters: 40,
101
+ },
102
+ },
103
+ {
104
+ key: "description",
105
+ label: "Description",
106
+ field_interface: "TypographyWidget",
107
+ hint: {
108
+ prompt_description:
109
+ "Short subheadline that explains the purpose of this section (sharing positive client experiences). Use a friendly, inviting, and concise tone.",
110
+ min_characters: 40,
111
+ max_characters: 120,
112
+ },
113
+ },
114
+ {
115
+ key: "ctas",
116
+ label: "CTAs",
117
+ field_interface: "BoxWidget",
118
+ kind: "group",
119
+ fields: [
120
+ {
121
+ key: "cta",
122
+ label: "CTA",
123
+ field_interface: "ButtonWidget",
124
+ hint: {
125
+ prompt_description:
126
+ "Main call-to-action button below the description, encouraging visitors to read more testimonials. Text should be direct, action-oriented, and brief (e.g., 'View All Testimonials').",
127
+ min_characters: 8,
128
+ max_characters: 32,
129
+ },
130
+ },
131
+ ],
132
+ hint: {
133
+ prompt_description:
134
+ "Wrapper for call-to-action buttons (typically one). The button prompts users to view all testimonials.",
135
+ min_items: 1,
136
+ max_items: 2,
137
+ },
138
+ },
139
+ {
140
+ key: "testimonials",
141
+ label: "Testimonials",
142
+ field_interface: "CarouselWidget",
143
+ kind: "group",
144
+ fields: [
145
+ {
146
+ key: "wrapper",
147
+ label: "Wrapper",
148
+ field_interface: "BoxWidget",
149
+ hint: {
150
+ prompt_description:
151
+ "Card container for individual testimonial, used for visual grouping and spacing. No content—structural only.",
152
+ },
153
+ },
154
+ {
155
+ key: "profileWrapper",
156
+ label: "Profile Wrapper",
157
+ field_interface: "BoxWidget",
158
+ hint: {
159
+ prompt_description:
160
+ "Groups together the client avatar, name, and position for layout purposes inside the card. Structural only.",
161
+ },
162
+ },
163
+ {
164
+ key: "image",
165
+ label: "Image",
166
+ field_interface: "IconWidget",
167
+ hint: {
168
+ prompt_description:
169
+ "Client avatar displayed as a small, circular portrait to the left of their name. Use a neutral or professional style avatar if not available.",
170
+ orientation: "square",
171
+ size: "small",
172
+ usecase: "icon",
173
+ },
174
+ },
175
+ {
176
+ key: "namePositionWrapper",
177
+ label: "Name Position Wrapper",
178
+ field_interface: "BoxWidget",
179
+ hint: {
180
+ prompt_description:
181
+ "Holds the client's name and position, keeping them visually grouped next to the avatar. No content—structural only.",
182
+ },
183
+ },
184
+ {
185
+ key: "name",
186
+ label: "Name",
187
+ field_interface: "TypographyWidget",
188
+ hint: {
189
+ prompt_description:
190
+ "The full name of the client giving the testimonial. Use a realistic, professional-sounding name.",
191
+ min_characters: 5,
192
+ max_characters: 24,
193
+ },
194
+ },
195
+ {
196
+ key: "position",
197
+ label: "Position",
198
+ field_interface: "TypographyWidget",
199
+ hint: {
200
+ prompt_description:
201
+ "The professional title or position of the client listed under their name. Keep it concise (e.g., CEO, Founder, Marketing Director).",
202
+ min_characters: 2,
203
+ max_characters: 32,
204
+ },
205
+ },
206
+ {
207
+ key: "testimonial",
208
+ label: "Testimonial",
209
+ field_interface: "TypographyWidget",
210
+ hint: {
211
+ prompt_description:
212
+ "A brief, authentic-sounding client quote describing their positive experience. Write in first-person and keep the tone genuine and professional.",
213
+ min_characters: 60,
214
+ max_characters: 150,
215
+ },
216
+ },
217
+ ],
218
+ hint: {
219
+ prompt_description:
220
+ "A horizontally scrollable group of testimonial cards, each showing a client avatar, name, position, and a brief quote. Use for displaying client feedback in a visually appealing carousel.",
221
+ min_items: 4,
222
+ max_items: 10,
223
+ },
224
+ },
225
+ ],
226
+ layouts: [
227
+ {
228
+ title: "Default",
229
+ key: "default",
230
+ styles: {
231
+ testimonials_levoGroup: {
232
+ number_of_slides: 4,
233
+ tablet: {
234
+ number_of_slides: 2,
235
+ },
236
+ mobile: {
237
+ number_of_slides: 1,
238
+ },
239
+ },
240
+ textCTAWrapper: {
241
+ display: "flex",
242
+ "flex-direction": "column",
243
+ "align-items": "center",
244
+ "row-gap": "2xl",
245
+ tablet: {
246
+ "row-gap": "lg",
247
+ },
248
+ mobile: {
249
+ "row-gap": "sm",
250
+ },
251
+ },
252
+ textWrapper: {
253
+ display: "flex",
254
+ "flex-direction": "column",
255
+ "align-items": "center",
256
+ "row-gap": "4xs",
257
+ },
258
+ layout: {
259
+ "padding-top": "2xl",
260
+ "padding-bottom": "2xl",
261
+ "padding-right": "6xl",
262
+ "padding-left": "6xl",
263
+ tablet: {
264
+ "padding-top": "lg",
265
+ "padding-bottom": "lg",
266
+ "padding-right": "3xl",
267
+ "padding-left": "3xl",
268
+ },
269
+ mobile: {
270
+ "padding-top": "base",
271
+ "padding-bottom": "base",
272
+ "padding-right": "xl",
273
+ "padding-left": "xl",
274
+ },
275
+ },
276
+ title: {
277
+ "text-align": "center",
278
+ color: "text-1",
279
+ },
280
+ description: {
281
+ "text-align": "center",
282
+ color: "text-2",
283
+ },
284
+ container: {
285
+ display: "flex",
286
+ "flex-direction": "column",
287
+ "row-gap": "6xl",
288
+ tablet: {
289
+ "row-gap": "3xl",
290
+ },
291
+ mobile: {
292
+ "row-gap": "xl",
293
+ },
294
+ },
295
+ testimonials: Array(DEFAULT_TESTIMONIALS_COUNT).fill({
296
+ wrapper: {
297
+ "border-solid": "solid",
298
+ "border-width": "1px",
299
+ "border-color": "var(--color-border)",
300
+ "border-radius": "base",
301
+ padding: "xl",
302
+ display: "flex",
303
+ "flex-direction": "column",
304
+ "row-gap": "xs",
305
+ },
306
+ profileWrapper: {
307
+ display: "flex",
308
+ "column-gap": "2xs",
309
+ },
310
+ image: {
311
+ height: "40px",
312
+ width: "40px",
313
+ "border-radius": "base",
314
+ "object-fit": "cover",
315
+ "border-solid": "solid",
316
+ "border-width": "1px",
317
+ "border-color": "var(--color-border)",
318
+ },
319
+ name: {
320
+ color: "text-1",
321
+ },
322
+ testimonial: {
323
+ color: "text-2",
324
+ overflow: "hidden",
325
+ display: "-webkit-box",
326
+ "-webkit-box-orient": "vertical",
327
+ "-webkit-line-clamp": 2,
328
+ },
329
+ }),
330
+ },
331
+ content: DEFAULT_CONTENT,
332
+ config: {
333
+ testimonials_levoGroup: {
334
+ carousel: {
335
+ loop: true,
336
+ autoScroll: true,
337
+ speed: 2,
338
+ },
339
+ },
340
+ title: {
341
+ selectedVariants: {
342
+ Heading_Level: "H2",
343
+ },
344
+ heading: {
345
+ level: 2,
346
+ },
347
+ },
348
+ },
349
+ },
350
+ ],
351
+ };
@@ -0,0 +1,79 @@
1
+ import {
2
+ type ILevoBlockBaseProps,
3
+ Button,
4
+ Heading,
5
+ Typography,
6
+ Container,
7
+ Section,
8
+ Box,
9
+ Image,
10
+ Carousel,
11
+ CarouselContent,
12
+ CarouselItem,
13
+ Icon,
14
+ } from "@levo-so/studio";
15
+
16
+ import type { ITestimonial1Content } from "./testimonial-1.schema";
17
+
18
+ const Testimonial1: React.FC<ILevoBlockBaseProps<ITestimonial1Content>> = ({
19
+ content,
20
+ }) => {
21
+ return (
22
+ <Section elementKey="layout">
23
+ <Container elementKey="container">
24
+ <Box elementKey="textCTAWrapper">
25
+ <Box elementKey="textWrapper">
26
+ <Heading elementKey="title" />
27
+ <Typography elementKey="description" />
28
+ </Box>
29
+ <Box elementKey="ctas_levoGroup" data-levo_group>
30
+ {(content.ctas ?? []).map((_, index) => (
31
+ <Button
32
+ elementKey={`ctas.${index}.cta`}
33
+ key={`testimonial-1-cta-${index}`}
34
+ data-levo_group_item
35
+ />
36
+ ))}
37
+ </Box>
38
+ </Box>
39
+ <Carousel
40
+ elementKey="testimonials_levoGroup"
41
+ data-levo_group
42
+ opts={{
43
+ watchDrag: false,
44
+ watchResize: true,
45
+ watchSlides: true,
46
+ }}
47
+ >
48
+ <CarouselContent>
49
+ {(content?.testimonials ?? []).map((_, index) => (
50
+ <CarouselItem
51
+ key={`testimonial-1-item-${index}`}
52
+ data-levo_group_item
53
+ >
54
+ <Box elementKey={`testimonials.${index}.wrapper`}>
55
+ <Box elementKey={`testimonials.${index}.profileWrapper`}>
56
+ <Icon elementKey={`testimonials.${index}.image`} />
57
+ <Box
58
+ elementKey={`testimonials.${index}.namePositionWrapper`}
59
+ >
60
+ <Typography elementKey={`testimonials.${index}.name`} />
61
+ <Typography
62
+ elementKey={`testimonials.${index}.position`}
63
+ />
64
+ </Box>
65
+ </Box>
66
+ <Typography
67
+ elementKey={`testimonials.${index}.testimonial`}
68
+ />
69
+ </Box>
70
+ </CarouselItem>
71
+ ))}
72
+ </CarouselContent>
73
+ </Carousel>
74
+ </Container>
75
+ </Section>
76
+ );
77
+ };
78
+
79
+ export default Testimonial1;