@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,473 @@
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 BLOG_CONTENT = {
15
+ blog: null,
16
+ cover_image: {
17
+ id: "7141014160938075687",
18
+ location: "https://space.levo.so/WLZ1TXTD/defaultblue-tryFJ012mgyH.png",
19
+ kind: "image",
20
+ mimetype: "image/png",
21
+ srcset: {
22
+ "1080w":
23
+ "https://space.levo.so/WLZ1TXTD/defaultblue-tryFJ012mgyH-1080w.webp",
24
+ "1200w":
25
+ "https://space.levo.so/WLZ1TXTD/defaultblue-tryFJ012mgyH-1200w.webp",
26
+ "1920w":
27
+ "https://space.levo.so/WLZ1TXTD/defaultblue-tryFJ012mgyH-1920w.webp",
28
+ "320w":
29
+ "https://space.levo.so/WLZ1TXTD/defaultblue-tryFJ012mgyH-320w.webp",
30
+ "640w":
31
+ "https://space.levo.so/WLZ1TXTD/defaultblue-tryFJ012mgyH-640w.webp",
32
+ "750w":
33
+ "https://space.levo.so/WLZ1TXTD/defaultblue-tryFJ012mgyH-750w.webp",
34
+ "828w":
35
+ "https://space.levo.so/WLZ1TXTD/defaultblue-tryFJ012mgyH-828w.webp",
36
+ path: "https://space.levo.so/WLZ1TXTD/defaultblue-tryFJ012mgyH-640w.webp 640w, https://space.levo.so/WLZ1TXTD/defaultblue-tryFJ012mgyH-1080w.webp 1080w, https://space.levo.so/WLZ1TXTD/defaultblue-tryFJ012mgyH-1200w.webp 1200w, https://space.levo.so/WLZ1TXTD/defaultblue-tryFJ012mgyH-1920w.webp 1920w, https://space.levo.so/WLZ1TXTD/defaultblue-tryFJ012mgyH-320w.webp 320w, https://space.levo.so/WLZ1TXTD/defaultblue-tryFJ012mgyH-750w.webp 750w, https://space.levo.so/WLZ1TXTD/defaultblue-tryFJ012mgyH-828w.webp 828w",
37
+ },
38
+ },
39
+ blog_content_wrapper: null,
40
+ text_content_wrapper: null,
41
+ timestamp_wrapper: null,
42
+ timestamp_icon: DUMMY_ICON,
43
+ timestamp: "Today, 12:00",
44
+ title:
45
+ "Our comprehensive financial services help you achieve your goals through expert guidance and innovative solutions.",
46
+ description:
47
+ "Our comprehensive financial services help you achieve your goals through expert guidance and innovative solutions.",
48
+ author_wrapper: null,
49
+ author_image: DUMMY_ICON,
50
+ author_name: "John Doe",
51
+ author_description: "Marketing Coordinator",
52
+ cta: "Read more",
53
+ };
54
+
55
+ const DEFAULT_CONTENT = {
56
+ layout: null,
57
+ container: null,
58
+ text_wrapper: null,
59
+ title: "Building Wealth Together",
60
+ description:
61
+ "Our comprehensive financial services help you achieve your goals through expert guidance and innovative solutions.",
62
+ blogs: Array(3)
63
+ ?.fill(0)
64
+ ?.map((_) => BLOG_CONTENT),
65
+ "pagination-wrapper": null,
66
+ "pagination-left": "Back",
67
+ "pagination-text": "",
68
+ "pagination-right": "Next",
69
+ };
70
+
71
+ const BLOG_STYLE = {
72
+ blog: {
73
+ display: "flex",
74
+ "column-gap": "lg",
75
+ "border-radius": "base",
76
+ "border-width": "1.5px",
77
+ "border-style": "solid",
78
+ "border-color": "border",
79
+ "padding-left": "xl",
80
+ "padding-right": "xl",
81
+ "padding-top": "lg",
82
+ "padding-bottom": "lg",
83
+ "box-shadow": "md",
84
+ },
85
+ cover_image: {
86
+ height: "184px",
87
+ width: "64",
88
+ "border-radius": "base",
89
+ "object-fit": "cover",
90
+ },
91
+ blog_content_wrapper: {
92
+ display: "flex",
93
+ width: "100%",
94
+ flex: "1",
95
+ "align-items": "center",
96
+ "column-gap": "lg",
97
+ },
98
+ text_content_wrapper: {
99
+ display: "flex",
100
+ flex: "1",
101
+ "flex-direction": "column",
102
+ "row-gap": "xs",
103
+ },
104
+ timestamp_icon: {},
105
+ timestamp_wrapper: {
106
+ display: "flex",
107
+ width: "fit-content",
108
+ "align-items": "center",
109
+ "column-gap": "2xs",
110
+ "border-radius": "xl",
111
+ "background-color": "#e9e9eb",
112
+ "padding-left": "xs",
113
+ "padding-right": "xs",
114
+ "padding-top": "5xs",
115
+ "padding-bottom": "5xs",
116
+ },
117
+ timestamp: {
118
+ "font-size": "sm",
119
+ "font-weight": "semibold",
120
+ color: "text-2",
121
+ },
122
+ blog_info_wrapper: {
123
+ display: "flex",
124
+ width: "100%",
125
+ "flex-direction": "column",
126
+ "row-gap": "3xs",
127
+ },
128
+ title: {
129
+ color: "text-1",
130
+ },
131
+ description: {
132
+ "font-size": "base",
133
+ color: "text-2",
134
+ },
135
+ author_wrapper: {
136
+ display: "flex",
137
+ "align-items": "center",
138
+ "column-gap": "base",
139
+ },
140
+ author_image: {
141
+ height: "36px",
142
+ width: "36px",
143
+ "border-radius": "100%",
144
+ "object-fit": "cover",
145
+ },
146
+ author_name: {
147
+ color: "text-1",
148
+ },
149
+ author_description: {
150
+ "font-size": "sm",
151
+ color: "text-2",
152
+ },
153
+ cta: {},
154
+ };
155
+
156
+ const BLOGS_STYLES = Array(3)
157
+ ?.fill(0)
158
+ ?.map((_) => BLOG_STYLE);
159
+
160
+ export type IBlogListing1Content = typeof DEFAULT_CONTENT;
161
+
162
+ export const BlogListing1: IBlock = {
163
+ category_id: "blogs",
164
+ title: "Blog Listing 1",
165
+ key: "blog-listing-1",
166
+ version: "v1",
167
+ content_schema: [
168
+ {
169
+ key: "layout",
170
+ label: "Layout",
171
+ field_interface: "LayoutWidget",
172
+ // No hint needed: acts as high-level layout wrapper
173
+ },
174
+ {
175
+ key: "container",
176
+ label: "Container",
177
+ field_interface: "ContainerWidget",
178
+ // No hint needed: visual/container only
179
+ },
180
+ {
181
+ key: "text_wrapper",
182
+ label: "Text Wrapper",
183
+ field_interface: "BoxWidget",
184
+ // No hint needed: layout grouping only
185
+ },
186
+ {
187
+ key: "title",
188
+ label: "Title",
189
+ field_interface: "HeadingWidget",
190
+ hint: {
191
+ prompt_description:
192
+ "Primary headline for the blog/news section. Should be concise, attention-grabbing, and indicate trending or popular content for this month. Use a confident, informative, energetic tone.",
193
+ min_characters: 20,
194
+ max_characters: 35,
195
+ },
196
+ },
197
+ {
198
+ key: "description",
199
+ label: "Description",
200
+ field_interface: "TypographyWidget",
201
+ hint: {
202
+ prompt_description:
203
+ "Short supporting introduction for the section, summarizing the purpose or value of the featured content. Should be informative, aspirational, and encourage browsing. 1-2 lines.",
204
+ min_characters: 60,
205
+ max_characters: 140,
206
+ },
207
+ },
208
+ {
209
+ key: "blogs",
210
+ label: "Blogs",
211
+ kind: "group",
212
+ field_interface: "BoxWidget",
213
+ hint: {
214
+ prompt_description:
215
+ "A repeating grid of featured blog article cards for the month. Each card highlights a blog with image, headline, excerpt, author, and meta info. Should feel lively and inviting.",
216
+ min_items: 6, // as per screenshot; six visible cards in a 3x2 grid
217
+ max_items: 9, // allow pagination flexibility
218
+ },
219
+ fields: [
220
+ {
221
+ key: "blog",
222
+ label: "Blog",
223
+ field_interface: "BoxWidget",
224
+ // No hint needed: just a per-card container
225
+ },
226
+ {
227
+ key: "cover_image",
228
+ label: "Cover Image",
229
+ field_interface: "ImageWidget",
230
+ hint: {
231
+ prompt_description:
232
+ "Blog post main thumbnail image. Should clearly represent the article or theme, visually engaging, and high quality. Prefer landscape orientation to fit card.",
233
+ orientation: "landscape",
234
+ size: "large",
235
+ usecase: "hero",
236
+ },
237
+ },
238
+ {
239
+ key: "blog_content_wrapper",
240
+ label: "Blog Content Wrapper",
241
+ field_interface: "BoxWidget",
242
+ // No hint needed: layout only
243
+ },
244
+ {
245
+ key: "text_content_wrapper",
246
+ label: "Text Content Wrapper",
247
+ field_interface: "BoxWidget",
248
+ // No hint needed: layout only
249
+ },
250
+ {
251
+ key: "timestamp_wrapper",
252
+ label: "Timestamp Wrapper",
253
+ field_interface: "BoxWidget",
254
+ // No hint needed: layout only
255
+ },
256
+ {
257
+ key: "timestamp_icon",
258
+ label: "Timestamp Icon",
259
+ field_interface: "IconWidget",
260
+ hint: {
261
+ prompt_description:
262
+ "Small icon representing time or date, displayed next to the timestamp. Should be simple, clear, and easily recognizable at small sizes.",
263
+ size: "icon",
264
+ orientation: "square",
265
+ usecase: "icon",
266
+ },
267
+ },
268
+ {
269
+ key: "timestamp",
270
+ label: "Timestamp",
271
+ field_interface: "TypographyWidget",
272
+ hint: {
273
+ prompt_description:
274
+ "Publish time information for the blog post. Should be brief (e.g. 'Today', '6 minutes ago', or 'June 5'). Neutral, clear style.",
275
+ min_characters: 8,
276
+ max_characters: 20,
277
+ },
278
+ },
279
+ {
280
+ key: "blog_info_wrapper",
281
+ label: "Blog Info Wrapper",
282
+ field_interface: "BoxWidget",
283
+ // No hint needed: layout only
284
+ },
285
+ {
286
+ key: "title",
287
+ label: "Title",
288
+ field_interface: "HeadingWidget",
289
+ hint: {
290
+ prompt_description:
291
+ "Blog article headline. Clear, bold, and appealing. Should entice users to read. Ideally not more than one line in the card, use a friendly, magazine-like tone.",
292
+ min_characters: 35,
293
+ max_characters: 60,
294
+ },
295
+ },
296
+ {
297
+ key: "description",
298
+ label: "Description",
299
+ field_interface: "TypographyWidget",
300
+ hint: {
301
+ prompt_description:
302
+ "Short excerpt or summary of the blog post content. Should be 1-2 sentences, informative, and prompt curiosity. Keep it concise and editorial.",
303
+ min_characters: 60,
304
+ max_characters: 130,
305
+ },
306
+ },
307
+ {
308
+ key: "author_wrapper",
309
+ label: "Author Wrapper",
310
+ field_interface: "BoxWidget",
311
+ // No hint needed: layout only
312
+ },
313
+ {
314
+ key: "author_image",
315
+ label: "Author Image",
316
+ field_interface: "IconWidget",
317
+ hint: {
318
+ prompt_description:
319
+ "Circular avatar image of the article author. Use an easily recognizable headshot.",
320
+ orientation: "square",
321
+ size: "icon",
322
+ usecase: "avatar",
323
+ },
324
+ },
325
+ {
326
+ key: "author_info_wrapper",
327
+ label: "Author Info Wrapper",
328
+ field_interface: "BoxWidget",
329
+ // No hint needed: layout only
330
+ },
331
+ {
332
+ key: "author_name",
333
+ label: "Author Name",
334
+ field_interface: "HeadingWidget",
335
+ hint: {
336
+ prompt_description:
337
+ "Author's full name, as displayed in byline. Preferably real or realistic names.",
338
+ min_characters: 5,
339
+ max_characters: 25,
340
+ },
341
+ },
342
+ {
343
+ key: "author_description",
344
+ label: "Author Description",
345
+ field_interface: "TypographyWidget",
346
+ hint: {
347
+ prompt_description:
348
+ "Short description or job title of the author, e.g., 'Content Strategist', 'Lifestyle Editor'. Keep it short and professional.",
349
+ min_characters: 10,
350
+ max_characters: 30,
351
+ },
352
+ },
353
+ {
354
+ key: "cta",
355
+ label: "CTA",
356
+ field_interface: "ButtonWidget",
357
+ hint: {
358
+ prompt_description:
359
+ "Primary action button label for each article card. Should prompt the user to read or learn more, concise (1-3 words), action-oriented.",
360
+ min_characters: 6,
361
+ max_characters: 16,
362
+ },
363
+ },
364
+ ],
365
+ },
366
+
367
+ {
368
+ key: "pagination-wrapper",
369
+ label: "Pagination Wrapper",
370
+ field_interface: "BoxWidget",
371
+ // Layout grouping only – no hint needed
372
+ },
373
+ {
374
+ key: "pagination-left",
375
+ label: "Pagination Left",
376
+ field_interface: "ButtonWidget",
377
+ hint: {
378
+ prompt_description:
379
+ "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.",
380
+ min_characters: 5,
381
+ max_characters: 12,
382
+ },
383
+ },
384
+ {
385
+ key: "pagination-text",
386
+ label: "Pagination text",
387
+ field_interface: "TypographyWidget",
388
+ hint: {
389
+ prompt_description:
390
+ "Displays current and total page number in the paginator, e.g. '1/3' or 'Page 2 of 4'. Should be minimal, clear, and unambiguous.",
391
+ min_characters: 3,
392
+ max_characters: 12,
393
+ },
394
+ },
395
+ {
396
+ key: "pagination-right",
397
+ label: "Pagination Right",
398
+ field_interface: "ButtonWidget",
399
+ hint: {
400
+ prompt_description:
401
+ "Pagination control button to navigate to the next page of blog cards. Should be concise, such as 'Next' or a right arrow. Neutral tone.",
402
+ min_characters: 4,
403
+ max_characters: 8,
404
+ },
405
+ },
406
+ ],
407
+ layouts: [
408
+ {
409
+ key: "default",
410
+ title: "Default",
411
+ styles: {
412
+ layout: {
413
+ display: "flex",
414
+ "flex-direction": "column",
415
+ "align-items": "center",
416
+ "justify-content": "center",
417
+ gap: "xl",
418
+ "border-radius": "base",
419
+ "background-color": "white",
420
+ "padding-left": "8xl",
421
+ "padding-right": "8xl",
422
+ "padding-top": "5xl",
423
+ "padding-bottom": "5xl",
424
+ "box-shadow": "lg",
425
+ },
426
+ container: {
427
+ display: "flex",
428
+ width: "100%",
429
+ "max-width": "screen-lg",
430
+ "flex-direction": "column",
431
+ "row-gap": "xl",
432
+ },
433
+ text_wrapper: {
434
+ display: "flex",
435
+ "flex-direction": "column",
436
+ "row-gap": "2xs",
437
+ },
438
+ title: {
439
+ color: "text-1",
440
+ },
441
+ description: {
442
+ "font-size": "base",
443
+ color: "text-2",
444
+ },
445
+ blogs_levoGroup: {
446
+ display: "flex",
447
+ width: "100%",
448
+ "flex-direction": "column",
449
+ "row-gap": "xl",
450
+ },
451
+ blogs: BLOGS_STYLES,
452
+ "pagination-wrapper": {
453
+ display: "flex",
454
+ width: "full",
455
+ "justify-content": "center",
456
+ "align-items": "center",
457
+ "column-gap": "md",
458
+ },
459
+ },
460
+ content: DEFAULT_CONTENT,
461
+ config: {
462
+ title: {
463
+ heading: {
464
+ level: 2,
465
+ },
466
+ selectedVariants: {
467
+ Heading_Level: "H2",
468
+ },
469
+ },
470
+ },
471
+ },
472
+ ],
473
+ };
@@ -0,0 +1,102 @@
1
+ import {
2
+ type ILevoBlockBaseProps,
3
+ Button,
4
+ Heading,
5
+ Image,
6
+ Typography,
7
+ Container,
8
+ Section,
9
+ Box,
10
+ Icon,
11
+ useContentEngine,
12
+ } from "@levo-so/studio";
13
+ import dayjs from "dayjs";
14
+
15
+ import type { IBlogListing1Content } from "./blog-listing-1.schema";
16
+
17
+ const BlogListing1: React.FC<ILevoBlockBaseProps<IBlogListing1Content>> = ({
18
+ content,
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="text_wrapper">
29
+ <Heading elementKey="title" />
30
+ <Typography elementKey="description" />
31
+ </Box>
32
+ <Box elementKey="blogs_levoGroup" data-levo_group>
33
+ {data &&
34
+ Array.isArray(data) &&
35
+ data?.map((_, index) => {
36
+ return (
37
+ <Box
38
+ data-levo_group_item
39
+ key={index}
40
+ elementKey={`blogs.${index}.blog`}
41
+ >
42
+ <Image
43
+ alt="cover_image"
44
+ elementKey={`blogs.${index}.cover_image`}
45
+ width={256}
46
+ height={184}
47
+ />
48
+ <Box elementKey={`blogs.${index}.blog_content_wrapper`}>
49
+ <Box elementKey={`blogs.${index}.text_content_wrapper`}>
50
+ <Box elementKey={`blogs.${index}.timestamp_wrapper`}>
51
+ <Icon elementKey={`blogs.${index}.timestamp_icon`} />
52
+ <Typography elementKey={`blogs.${index}.timestamp`}>
53
+ {data?.[index]?.timestamp &&
54
+ dayjs(data?.[index]?.timestamp).isValid()
55
+ ? dayjs(data?.[index]?.timestamp).format(
56
+ "DD MMM, YYYY",
57
+ )
58
+ : " "}
59
+ </Typography>
60
+ </Box>
61
+
62
+ <Box elementKey={`blogs.${index}.blog_info_wrapper`}>
63
+ <Heading elementKey={`blogs.${index}.title`} />
64
+ <Typography elementKey={`blogs.${index}.description`} />
65
+ </Box>
66
+ <Box elementKey={`blogs.${index}.author_wrapper`}>
67
+ <Icon elementKey={`blogs.${index}.author_image`} />
68
+ <Box elementKey={`blogs.${index}.author_info_wrapper`}>
69
+ <Heading elementKey={`blogs.${index}.author_name`} />
70
+ <Typography
71
+ elementKey={`blogs.${index}.author_description`}
72
+ />
73
+ </Box>
74
+ </Box>
75
+ </Box>
76
+ <Button elementKey={`blogs.${index}.cta`} />
77
+ </Box>
78
+ </Box>
79
+ );
80
+ })}
81
+ </Box>
82
+ <Box elementKey="pagination-wrapper">
83
+ <Button
84
+ elementKey="pagination-left"
85
+ disabled={query?.page === 1}
86
+ onClick={handlePrevious}
87
+ />
88
+ <Typography elementKey="pagination-text">
89
+ {`${query?.page || 0}/${meta?.pages || 0}`}
90
+ </Typography>
91
+ <Button
92
+ elementKey="pagination-right"
93
+ onClick={handleNext}
94
+ disabled={query?.page === meta?.pages}
95
+ />
96
+ </Box>
97
+ </Container>
98
+ </Section>
99
+ );
100
+ };
101
+
102
+ export default BlogListing1;