@levo-so/blocks 0.1.1 → 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 (475) 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/blocks.d.ts +0 -3
  467. package/dist/blocks.js +0 -74
  468. package/dist/index.d.ts +0 -6
  469. package/dist/schemas/blocks.d.ts +0 -3
  470. package/dist/schemas/categories.d.ts +0 -3
  471. package/dist/schemas/categories.js +0 -129
  472. package/dist/schemas/index.d.ts +0 -3
  473. package/dist/schemas.d.ts +0 -3
  474. package/dist/schemas.js +0 -2
  475. /package/{dist/schemas/index.js → src/schemas/index.ts} +0 -0
@@ -0,0 +1,608 @@
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 MEDIA = {
15
+ arrow: {
16
+ object: "media",
17
+ id: "NczdXHUK7b1J",
18
+ workspace_id: "WLZ1TXTD",
19
+ filename: "icons.svg",
20
+ kind: "image",
21
+ path: "WLZ1TXTD/icons-ImvoBQBYpU7f.svg",
22
+ location: "https://space.levo.in.net/WLZ1TXTD/icons-ImvoBQBYpU7f.svg",
23
+ metadata: {
24
+ etag: '"629d0f3d4861cce442cf074b341088ec"',
25
+ mimetype: "image/svg+xml",
26
+ size: 359,
27
+ },
28
+ srcset: {},
29
+ created_at: "2025-04-26T08:45:45.360Z",
30
+ updated_at: "2025-04-26T08:45:45.360Z",
31
+ created_by: null,
32
+ updated_by: null,
33
+ },
34
+ article: {
35
+ object: "media",
36
+ id: "A8sa1FGEQyvw",
37
+ workspace_id: "WLZ1TXTD",
38
+ filename: "icons copy 4.svg",
39
+ kind: "image",
40
+ path: "WLZ1TXTD/iconscopy4-rSC4lH4e0QFB.svg",
41
+ location: "https://space.levo.in.net/WLZ1TXTD/iconscopy4-rSC4lH4e0QFB.svg",
42
+ metadata: {
43
+ etag: '"9d4baa51fb176f2edb5c89f785d7a018"',
44
+ mimetype: "image/svg+xml",
45
+ size: 754,
46
+ },
47
+ srcset: {},
48
+ created_at: "2025-04-25T09:24:43.410Z",
49
+ updated_at: "2025-04-25T09:24:43.410Z",
50
+ created_by: null,
51
+ updated_by: null,
52
+ },
53
+ clock: {
54
+ object: "media",
55
+ id: "PzNDMe376Hb2",
56
+ workspace_id: "WLZ1TXTD",
57
+ filename: "icons copy 5.svg",
58
+ kind: "image",
59
+ path: "WLZ1TXTD/iconscopy5-R6exN52A9lz1.svg",
60
+ location: "https://space.levo.in.net/WLZ1TXTD/iconscopy5-R6exN52A9lz1.svg",
61
+ metadata: {
62
+ etag: '"2e33826fc7828bb2be1e7d3117756eb1"',
63
+ mimetype: "image/svg+xml",
64
+ size: 713,
65
+ },
66
+ srcset: {},
67
+ created_at: "2025-04-25T09:25:12.863Z",
68
+ updated_at: "2025-04-25T09:25:12.863Z",
69
+ created_by: null,
70
+ updated_by: null,
71
+ },
72
+ blog_cover: {
73
+ object: "media",
74
+ id: "9GFLqRMjHAvm",
75
+ workspace_id: "WLZ1TXTD",
76
+ filename: "pexels-2147499152-29632553.jpg",
77
+ kind: "image",
78
+ path: "WLZ1TXTD/pexels-2147499152-29632553-WT0prjeW1uuo.jpg",
79
+ location:
80
+ "https://space.levo.in.net/WLZ1TXTD/pexels-2147499152-29632553-WT0prjeW1uuo.jpg",
81
+ metadata: {
82
+ etag: '"d2ab426d617eec426c1e6ba5605ab5d6"',
83
+ mimetype: "image/jpeg",
84
+ size: 2688667,
85
+ },
86
+ srcset: {
87
+ "1080w":
88
+ "https://space.levo.in.net/WLZ1TXTD/pexels-2147499152-29632553-WT0prjeW1uuo-1080w.webp",
89
+ "1200w":
90
+ "https://space.levo.in.net/WLZ1TXTD/pexels-2147499152-29632553-WT0prjeW1uuo-1200w.webp",
91
+ "1920w":
92
+ "https://space.levo.in.net/WLZ1TXTD/pexels-2147499152-29632553-WT0prjeW1uuo-1920w.webp",
93
+ "320w":
94
+ "https://space.levo.in.net/WLZ1TXTD/pexels-2147499152-29632553-WT0prjeW1uuo-320w.webp",
95
+ "640w":
96
+ "https://space.levo.in.net/WLZ1TXTD/pexels-2147499152-29632553-WT0prjeW1uuo-640w.webp",
97
+ "750w":
98
+ "https://space.levo.in.net/WLZ1TXTD/pexels-2147499152-29632553-WT0prjeW1uuo-750w.webp",
99
+ "828w":
100
+ "https://space.levo.in.net/WLZ1TXTD/pexels-2147499152-29632553-WT0prjeW1uuo-828w.webp",
101
+ path: "https://space.levo.in.net/WLZ1TXTD/pexels-2147499152-29632553-WT0prjeW1uuo-1920w.webp 1920w, https://space.levo.in.net/WLZ1TXTD/pexels-2147499152-29632553-WT0prjeW1uuo-320w.webp 320w, https://space.levo.in.net/WLZ1TXTD/pexels-2147499152-29632553-WT0prjeW1uuo-640w.webp 640w, https://space.levo.in.net/WLZ1TXTD/pexels-2147499152-29632553-WT0prjeW1uuo-750w.webp 750w, https://space.levo.in.net/WLZ1TXTD/pexels-2147499152-29632553-WT0prjeW1uuo-828w.webp 828w, https://space.levo.in.net/WLZ1TXTD/pexels-2147499152-29632553-WT0prjeW1uuo-1080w.webp 1080w, https://space.levo.in.net/WLZ1TXTD/pexels-2147499152-29632553-WT0prjeW1uuo-1200w.webp 1200w",
102
+ },
103
+ created_at: "2025-04-25T09:26:00.096Z",
104
+ updated_at: "2025-04-25T09:26:00.096Z",
105
+ created_by: null,
106
+ updated_by: null,
107
+ },
108
+ };
109
+
110
+ const BLOG_CONTENT = {
111
+ blog: null,
112
+ media: MEDIA.blog_cover,
113
+ "blog-content-wrapper": null,
114
+ "blog-header": null,
115
+ "header-icon": DUMMY_ICON,
116
+ "blog-type": "Article / Lifestyle",
117
+ "blog-content": null,
118
+ title: "A glimpse of the world's heart",
119
+ description:
120
+ "I wanted to visit Colombia’s sacred mountains. But there are some places we cannot go – and some things we cannot know.",
121
+ "blog-footer": null,
122
+ "author-image": DUMMY_ICON,
123
+ "author-name": "Floyd miles",
124
+ "blog-reading-time-wrapper": null,
125
+ "reading-time-icon": DUMMY_ICON,
126
+ "reading-time": "6 Minutes",
127
+ };
128
+
129
+ const DEFAULT_CONTENT = {
130
+ layout: null,
131
+ container: null,
132
+ "header-wrapper": null,
133
+ header: "Popular this month",
134
+ "header-cta": "View all News",
135
+ "header-cta-icon": MEDIA.arrow,
136
+ blogs_levoGroup: null,
137
+ "pagination-wrapper": null,
138
+ "pagination-left": "Previous",
139
+ "pagination-text": "",
140
+ "pagination-right": "Next",
141
+ blogs: Array(9)
142
+ ?.fill(0)
143
+ ?.map((_) => BLOG_CONTENT),
144
+ };
145
+
146
+ export type IBlogListing2Content = typeof DEFAULT_CONTENT;
147
+
148
+ const BLOG_STYLE = {
149
+ blog: {
150
+ display: "flex",
151
+ width: "full",
152
+ "flex-direction": "column",
153
+ "row-gap": "xl",
154
+ "media:max:768px": {
155
+ "row-gap": "md",
156
+ },
157
+ "media:max:480px": {},
158
+ },
159
+ media: {
160
+ height: "240px",
161
+ width: "full",
162
+ "object-fit": "cover",
163
+ },
164
+ "blog-info-wrapper": {
165
+ display: "flex",
166
+ width: "full",
167
+ "flex-direction": "column",
168
+ "row-gap": "base",
169
+ "media:max:768px": {
170
+ "row-gap": "xs",
171
+ },
172
+ "media:max:480px": {},
173
+ },
174
+ "blog-content": {
175
+ display: "flex",
176
+ width: "full",
177
+ "flex-direction": "column",
178
+ "row-gap": "xs",
179
+ "media:max:768px": {
180
+ "row-gap": "2xs",
181
+ },
182
+ "media:max:480px": {},
183
+ },
184
+ "blog-header": {
185
+ display: "flex",
186
+ width: "full",
187
+ "align-items": "center",
188
+ "column-gap": "xs",
189
+ "media:max:768px": {
190
+ "column-gap": "2xs",
191
+ },
192
+ "media:max:480px": {},
193
+ },
194
+ "header-icon": {
195
+ height: "20px",
196
+ width: "20px",
197
+ "object-fit": "contain",
198
+ "media:max:768px": {
199
+ height: "18px",
200
+ width: "18px",
201
+ },
202
+ "media:max:480px": {},
203
+ },
204
+ "blog-type": {
205
+ "font-size": "base",
206
+ "font-weight": "normal",
207
+ "media:max:768px": {
208
+ "font-size": "sm",
209
+ },
210
+ "media:max:480px": {},
211
+ },
212
+ title: {
213
+ "font-size": "2xl",
214
+ "font-weight": "bold",
215
+ color: "var(--color-text-1)",
216
+ "media:max:768px": {
217
+ "font-size": "xl",
218
+ },
219
+ "media:max:480px": {},
220
+ },
221
+ description: {
222
+ "font-size": "sm",
223
+ "font-weight": "normal",
224
+ color: "var(--color-text-2)",
225
+ "media:max:768px": {},
226
+ "media:max:480px": {},
227
+ },
228
+ "blog-footer": {
229
+ display: "flex",
230
+ width: "full",
231
+ "align-items": "center",
232
+ "column-gap": "md",
233
+ },
234
+ "blog-author": {
235
+ display: "flex",
236
+ "align-items": "center",
237
+ "column-gap": "2xs",
238
+ },
239
+ "author-image": {
240
+ height: "24px",
241
+ width: "24px",
242
+ "border-radius": "100%",
243
+ },
244
+ "author-name": {
245
+ "font-size": "sm",
246
+ "font-weight": "normal",
247
+ color: "var(--color-text-2)",
248
+ },
249
+ "blog-reading-time-wrapper": {
250
+ display: "flex",
251
+ "align-items": "center",
252
+ "column-gap": "3xs",
253
+ },
254
+ "reading-time-icon": {
255
+ height: "16px",
256
+ width: "16px",
257
+ "object-fit": "contain",
258
+ },
259
+ "reading-time": {
260
+ "font-size": "sm",
261
+ "font-weight": "normal",
262
+ color: "var(--color-text-2)",
263
+ },
264
+ };
265
+
266
+ const BLOGS_STYLES = Array(9)
267
+ ?.fill(0)
268
+ ?.map((_) => BLOG_STYLE);
269
+
270
+ export const BlogListing2: IBlock = {
271
+ category_id: "blogs",
272
+ title: "Blog Listing 2",
273
+ key: "blog-listing-2",
274
+ version: "v1",
275
+ prompt_description:
276
+ "Three-column grid of news or blog cards, each with a large image, headline, summary text, and info row; section headline and a top-right “View all” button, plus pagination controls below.",
277
+ content_schema: [
278
+ {
279
+ key: "layout",
280
+ label: "Layout",
281
+ field_interface: "LayoutWidget",
282
+ // Layout only – no hint needed
283
+ },
284
+ {
285
+ key: "container",
286
+ label: "Container",
287
+ field_interface: "ContainerWidget",
288
+ // Layout only – no hint needed
289
+ },
290
+ {
291
+ key: "header-wrapper",
292
+ label: "Header Wrapper",
293
+ field_interface: "BoxWidget",
294
+ // Visual grouping – no hint needed
295
+ },
296
+ {
297
+ key: "header",
298
+ label: "Header",
299
+ field_interface: "HeadingWidget",
300
+ hint: {
301
+ prompt_description:
302
+ "Section heading introducing featured or trending blog articles for this month. Make it concise, bold, and inviting. Use a confident and energetic tone.",
303
+ min_characters: 16,
304
+ max_characters: 30,
305
+ },
306
+ },
307
+ {
308
+ key: "header-cta",
309
+ label: "Header Cta",
310
+ field_interface: "ButtonWidget",
311
+ hint: {
312
+ prompt_description:
313
+ "Primary call-to-action button next to the section heading, inviting users to view all news or blogs. Text should be short (2-4 words), action-oriented, and clear.",
314
+ min_characters: 10,
315
+ max_characters: 20,
316
+ },
317
+ },
318
+ {
319
+ key: "blogs",
320
+ label: "Blogs",
321
+ kind: "group",
322
+ field_interface: "BoxWidget",
323
+ hint: {
324
+ prompt_description:
325
+ "Repeating list of blog article cards displayed in a grid. Each card should showcase a featured blog post with image, headline, excerpt, type, author, and reading time. The content should be diverse, engaging, and visually consistent.",
326
+ min_items: 6, // 6 visible in grid at a time
327
+ max_items: 9, // allows for paginated dataset
328
+ },
329
+ fields: [
330
+ {
331
+ key: "blog",
332
+ label: "Blog",
333
+ field_interface: "BoxWidget",
334
+ // Card container – no hint needed
335
+ },
336
+ {
337
+ key: "media",
338
+ label: "Media",
339
+ field_interface: "MediaWidget",
340
+ hint: {
341
+ prompt_description:
342
+ "Featured image for the blog post card, visually representing the article. Should be high-quality, visually engaging, and align with the blog's topic. Landscape orientation, fits the top portion of the card.",
343
+ orientation: "landscape",
344
+ size: "large",
345
+ usecase: "hero",
346
+ },
347
+ },
348
+ {
349
+ key: "blog-info-wrapper",
350
+ label: "Blog Info Wrapper",
351
+ field_interface: "BoxWidget",
352
+ // Layout grouping – no hint needed
353
+ },
354
+ {
355
+ key: "blog-content",
356
+ label: "Blog Content",
357
+ field_interface: "BoxWidget",
358
+ // Layout grouping – no hint needed
359
+ },
360
+ {
361
+ key: "blog-header",
362
+ label: "Blog Header",
363
+ field_interface: "BoxWidget",
364
+ // Layout grouping – no hint needed
365
+ },
366
+ {
367
+ key: "header-icon",
368
+ label: "Header Icon",
369
+ field_interface: "IconWidget",
370
+ hint: {
371
+ prompt_description:
372
+ "Small icon visually indicating the blog type or category next to the blog type text, such as a newspaper or tag. Should be stylish, clear, and monochrome if possible.",
373
+ orientation: "square",
374
+ size: "icon",
375
+ usecase: "icon",
376
+ },
377
+ },
378
+ {
379
+ key: "blog-type",
380
+ label: "Blog Type",
381
+ field_interface: "TypographyWidget",
382
+ hint: {
383
+ prompt_description:
384
+ "Blog post category or topic, e.g., 'Article / Lifestyle'. Should be short, informative, use sentence case, and highlight the type of content.",
385
+ min_characters: 10,
386
+ max_characters: 27,
387
+ },
388
+ },
389
+ {
390
+ key: "title",
391
+ label: "Title",
392
+ field_interface: "HeadingWidget",
393
+ hint: {
394
+ prompt_description:
395
+ "Headline for the blog post card, designed to attract attention and encourage clicks. Should be clear, engaging, and fit on 1 or 2 lines. Use an editorial, inviting tone.",
396
+ min_characters: 28,
397
+ max_characters: 60,
398
+ },
399
+ },
400
+ {
401
+ key: "description",
402
+ label: "Description",
403
+ field_interface: "TypographyWidget",
404
+ hint: {
405
+ prompt_description:
406
+ "Short excerpt or summary of the article, displayed on the card. It should generate curiosity and briefly explain the blog's theme or story in 1-2 concise sentences.",
407
+ min_characters: 60,
408
+ max_characters: 130,
409
+ },
410
+ },
411
+ {
412
+ key: "blog-footer",
413
+ label: "Blog Footer",
414
+ field_interface: "BoxWidget",
415
+ // Layout only – no hint needed
416
+ },
417
+ {
418
+ key: "blog-author",
419
+ label: "Blog Author",
420
+ field_interface: "BoxWidget",
421
+ // Layout only – no hint needed
422
+ },
423
+ {
424
+ key: "author-image",
425
+ label: "Author Image",
426
+ field_interface: "IconWidget",
427
+ hint: {
428
+ prompt_description:
429
+ "Circular avatar image of the blog post author. Shows a headshot with a neutral background that is easily identifiable at a small size.",
430
+ orientation: "square",
431
+ size: "icon",
432
+ usecase: "avatar",
433
+ },
434
+ },
435
+ {
436
+ key: "author-name",
437
+ label: "Author Name",
438
+ field_interface: "TypographyWidget",
439
+ hint: {
440
+ prompt_description:
441
+ "Author's display name for the card byline. Should feel authentic and natural.",
442
+ min_characters: 5,
443
+ max_characters: 25,
444
+ },
445
+ },
446
+ {
447
+ key: "blog-reading-time-wrapper",
448
+ label: "Blog Reading Time Wrapper",
449
+ field_interface: "BoxWidget",
450
+ // Layout only – no hint needed
451
+ },
452
+ {
453
+ key: "reading-time-icon",
454
+ label: "Reading Time Icon",
455
+ field_interface: "IconWidget",
456
+ hint: {
457
+ prompt_description:
458
+ "Small icon placed next to the blog reading time, visually indicating time (e.g., clock or stopwatch). Minimalistic style preferred.",
459
+ orientation: "square",
460
+ size: "icon",
461
+ usecase: "icon",
462
+ },
463
+ },
464
+ {
465
+ key: "reading-time",
466
+ label: "Reading Time",
467
+ field_interface: "TypographyWidget",
468
+ hint: {
469
+ prompt_description:
470
+ "Estimated reading duration for the article, such as '6 Minutes' or '3 min'. Keep it simple and brief.",
471
+ min_characters: 6,
472
+ max_characters: 15,
473
+ },
474
+ },
475
+ ],
476
+ },
477
+ {
478
+ key: "pagination-wrapper",
479
+ label: "Pagination Wrapper",
480
+ field_interface: "BoxWidget",
481
+ // Layout grouping only – no hint needed
482
+ },
483
+ {
484
+ key: "pagination-left",
485
+ label: "Pagination Left",
486
+ field_interface: "ButtonWidget",
487
+ hint: {
488
+ prompt_description:
489
+ "Pagination control button to navigate to the previous page of blog cards. Keep the label brief, such as 'Previous' or a left arrow. Tone should be neutral and functional.",
490
+ min_characters: 5,
491
+ max_characters: 12,
492
+ },
493
+ },
494
+ {
495
+ key: "pagination-text",
496
+ label: "Pagination text",
497
+ field_interface: "TypographyWidget",
498
+ hint: {
499
+ prompt_description:
500
+ "Displays current and total page number in the paginator, e.g. '1/3' or 'Page 2 of 4'. Should be minimal, clear, and unambiguous.",
501
+ min_characters: 3,
502
+ max_characters: 12,
503
+ },
504
+ },
505
+ {
506
+ key: "pagination-right",
507
+ label: "Pagination Right",
508
+ field_interface: "ButtonWidget",
509
+ hint: {
510
+ prompt_description:
511
+ "Pagination control button to navigate to the next page of blog cards. Should be concise, such as 'Next' or a right arrow. Neutral tone.",
512
+ min_characters: 4,
513
+ max_characters: 8,
514
+ },
515
+ },
516
+ ],
517
+ layouts: [
518
+ {
519
+ key: "default",
520
+ title: "Default",
521
+ styles: {
522
+ layout: {
523
+ width: "100%",
524
+ "padding-top": "10xl",
525
+ "padding-bottom": "10xl",
526
+ "padding-right": "8xl",
527
+ "padding-left": "8xl",
528
+ "media:max:768px": {
529
+ "padding-top": "5xl",
530
+ "padding-bottom": "5xl",
531
+ "padding-right": "5xl",
532
+ "padding-left": "5xl",
533
+ },
534
+ "media:max:480px": {
535
+ "padding-top": "2xl",
536
+ "padding-bottom": "2xl",
537
+ "padding-right": "2xl",
538
+ "padding-left": "2xl",
539
+ },
540
+ },
541
+ container: {
542
+ width: "100%",
543
+ display: "flex",
544
+ "flex-direction": "column",
545
+ "row-gap": "7xl",
546
+ "media:max:768px": {
547
+ "row-gap": "3xl",
548
+ },
549
+ "media:max:480px": {
550
+ "row-gap": "4xl",
551
+ },
552
+ },
553
+ "header-wrapper": {
554
+ display: "flex",
555
+ width: "full",
556
+ "align-items": "center",
557
+ "justify-content": "space-between",
558
+ "media:max:768px": {},
559
+ "media:max:480px": {
560
+ "row-gap": "2xs",
561
+ "flex-direction": "column",
562
+ "align-items": "flex-start",
563
+ "justify-content": "flex-start",
564
+ },
565
+ },
566
+ header: {
567
+ flex: "1",
568
+ "font-size": "4xl",
569
+ "font-weight": "bold",
570
+ "line-height": 1.625,
571
+ "media:max:768px": {
572
+ "font-size": "2xl",
573
+ },
574
+ },
575
+ "header-cta": {},
576
+ blogs_levoGroup: {
577
+ display: "grid",
578
+ width: "full",
579
+ "grid-template-columns": "repeat(3, minmax(0, 1fr))",
580
+ "row-gap": "2xl",
581
+ "column-gap": "2xl",
582
+ "media:max:768px": {
583
+ "grid-template-columns": "repeat(2, minmax(0, 1fr))",
584
+ "row-gap": "xl",
585
+ "column-gap": "xl",
586
+ },
587
+ "media:max:480px": {
588
+ "grid-template-columns": "repeat(1, minmax(0, 1fr))",
589
+ "row-gap": "2xl",
590
+ },
591
+ },
592
+ blogs: BLOGS_STYLES,
593
+ "pagination-wrapper": {
594
+ display: "flex",
595
+ width: "full",
596
+ "justify-content": "center",
597
+ "align-items": "center",
598
+ "column-gap": "md",
599
+ },
600
+ "pagination-left": {},
601
+ "pagination-text": {},
602
+ "pagination-right": {},
603
+ },
604
+ content: DEFAULT_CONTENT,
605
+ config: {},
606
+ },
607
+ ],
608
+ };
@@ -0,0 +1,83 @@
1
+ import {
2
+ type ILevoBlockBaseProps,
3
+ Box,
4
+ Button,
5
+ Container,
6
+ Heading,
7
+ Icon,
8
+ Image,
9
+ Media,
10
+ Section,
11
+ Typography,
12
+ useContentEngine,
13
+ } from "@levo-so/studio";
14
+
15
+ import type { IBlogListing2Content } from "./blog-listing-2.schema";
16
+
17
+ const BlogListing2: React.FC<
18
+ ILevoBlockBaseProps<IBlogListing2Content>
19
+ > = () => {
20
+ const { data, query, setQuery, meta } = useContentEngine("blogs");
21
+
22
+ const handleNext = () => setQuery({ page: (query?.page || 0) + 1 });
23
+ const handlePrevious = () => setQuery({ page: (query?.page || 0) - 1 });
24
+
25
+ return (
26
+ <Section elementKey="layout">
27
+ <Container elementKey="container">
28
+ <Box elementKey="header-wrapper">
29
+ <Heading elementKey="header" />
30
+ <Button elementKey="header-cta" />
31
+ </Box>
32
+ <Box elementKey="blogs_levoGroup" data-levo_group>
33
+ {(data || [])?.map((item: any, index: number) => (
34
+ <Box
35
+ key={`blogs.${index}`}
36
+ data-levo_group_item
37
+ elementKey={`blogs.${index}.blog`}
38
+ >
39
+ <Media elementKey={`blogs.${index}.media`} alt="Blog Media" />
40
+ <Box elementKey={`blogs.${index}.blog-info-wrapper`}>
41
+ <Box elementKey={`blogs.${index}.blog-content`}>
42
+ <Box elementKey={`blogs.${index}.blog-header`}>
43
+ <Icon elementKey={`blogs.${index}.header-icon`} />
44
+ <Typography elementKey={`blogs.${index}.blog-type`} />
45
+ </Box>
46
+ <Heading elementKey={`blogs.${index}.title`} />
47
+ <Typography elementKey={`blogs.${index}.description`} />
48
+ </Box>
49
+ <Box elementKey={`blogs.${index}.blog-footer`}>
50
+ <Box elementKey={`blogs.${index}.blog-author`}>
51
+ <Icon elementKey={`blogs.${index}.author-image`} />
52
+ <Typography elementKey={`blogs.${index}.author-name`} />
53
+ </Box>
54
+ <Box elementKey={`blogs.${index}.blog-reading-time-wrapper`}>
55
+ <Icon elementKey={`blogs.${index}.reading-time-icon`} />
56
+ <Typography elementKey={`blogs.${index}.reading-time`} />
57
+ </Box>
58
+ </Box>
59
+ </Box>
60
+ </Box>
61
+ ))}
62
+ </Box>
63
+ <Box elementKey="pagination-wrapper">
64
+ <Button
65
+ elementKey="pagination-left"
66
+ disabled={query?.page === 1}
67
+ onClick={handlePrevious}
68
+ />
69
+ <Typography elementKey="pagination-text">
70
+ {`${query?.page || 0}/${meta?.pages || 0}`}
71
+ </Typography>
72
+ <Button
73
+ elementKey="pagination-right"
74
+ onClick={handleNext}
75
+ disabled={query?.page === meta?.pages}
76
+ />
77
+ </Box>
78
+ </Container>
79
+ </Section>
80
+ );
81
+ };
82
+
83
+ export default BlogListing2;