@levo-so/blocks 0.1.59 → 0.1.61

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (245) hide show
  1. package/package.json +6 -6
  2. package/src/blocks/about-us/about-us-1.schema.ts +60 -58
  3. package/src/blocks/about-us/about-us-1.tsx +2 -4
  4. package/src/blocks/about-us/about-us-2.schema.ts +165 -42
  5. package/src/blocks/about-us/about-us-2.tsx +7 -13
  6. package/src/blocks/blogs/blog-listing-1.schema.ts +7 -14
  7. package/src/blocks/blogs/blog-listing-1.tsx +27 -36
  8. package/src/blocks/blogs/blog-listing-2.schema.ts +17 -34
  9. package/src/blocks/blogs/blog-listing-2.tsx +21 -27
  10. package/src/blocks/blogs/blog-listing-3.schema.ts +32 -64
  11. package/src/blocks/blogs/blog-listing-3.tsx +21 -27
  12. package/src/blocks/blogs/blog-post-1.schema.ts +9 -18
  13. package/src/blocks/blogs/blog-post-1.tsx +3 -14
  14. package/src/blocks/calendar/calendar-1.schema.ts +351 -180
  15. package/src/blocks/calendar/calendar-1.tsx +60 -25
  16. package/src/blocks/cards/cards-10.schema.ts +278 -331
  17. package/src/blocks/cards/cards-10.tsx +18 -15
  18. package/src/blocks/cards/cards-11.schema.ts +178 -356
  19. package/src/blocks/cards/cards-11.tsx +5 -11
  20. package/src/blocks/cards/cards-12.schema.ts +110 -196
  21. package/src/blocks/cards/cards-12.tsx +4 -10
  22. package/src/blocks/cards/cards-13.schema.ts +131 -120
  23. package/src/blocks/cards/cards-13.tsx +4 -6
  24. package/src/blocks/cards/cards-14.schema.ts +51 -154
  25. package/src/blocks/cards/cards-14.tsx +5 -11
  26. package/src/blocks/cards/cards-15.schema.ts +48 -32
  27. package/src/blocks/cards/cards-15.tsx +15 -6
  28. package/src/blocks/cards/cards-2.schema.ts +76 -88
  29. package/src/blocks/cards/cards-2.tsx +12 -17
  30. package/src/blocks/cards/cards-3.schema.ts +68 -70
  31. package/src/blocks/cards/cards-3.tsx +7 -13
  32. package/src/blocks/cards/cards-4.schema.ts +160 -115
  33. package/src/blocks/cards/cards-4.tsx +22 -17
  34. package/src/blocks/cards/cards-5.schema.ts +76 -70
  35. package/src/blocks/cards/cards-5.tsx +10 -10
  36. package/src/blocks/cards/cards-6.schema.ts +755 -985
  37. package/src/blocks/cards/cards-6.tsx +17 -9
  38. package/src/blocks/cards/cards-7.schema.ts +754 -2250
  39. package/src/blocks/cards/cards-7.tsx +18 -24
  40. package/src/blocks/cards/cards-8.schema.ts +171 -363
  41. package/src/blocks/cards/cards-8.tsx +15 -8
  42. package/src/blocks/cards/cards-9.schema.ts +283 -329
  43. package/src/blocks/cards/cards-9.tsx +28 -12
  44. package/src/blocks/carousel/carousel-1.schema.ts +418 -49
  45. package/src/blocks/carousel/carousel-1.tsx +8 -8
  46. package/src/blocks/carousel/carousel-2.schema.ts +153 -127
  47. package/src/blocks/carousel/carousel-2.tsx +16 -20
  48. package/src/blocks/community/community-1.schema.ts +612 -0
  49. package/src/blocks/community/community-1.tsx +557 -0
  50. package/src/blocks/community/community-post-1.schema.ts +408 -0
  51. package/src/blocks/community/community-post-1.tsx +405 -0
  52. package/src/blocks/contact-us/contact-us-1.schema.ts +25 -43
  53. package/src/blocks/contact-us/contact-us-1.tsx +2 -12
  54. package/src/blocks/contact-us/contact-us-2.schema.ts +39 -17
  55. package/src/blocks/contact-us/contact-us-2.tsx +21 -32
  56. package/src/blocks/content/content-1.schema.ts +163 -234
  57. package/src/blocks/content/content-1.tsx +46 -43
  58. package/src/blocks/content/content-2.schema.ts +117 -35
  59. package/src/blocks/content/content-2.tsx +19 -7
  60. package/src/blocks/content/content-3.schema.ts +215 -205
  61. package/src/blocks/content/content-3.tsx +14 -18
  62. package/src/blocks/content/content-4.schema.ts +105 -89
  63. package/src/blocks/content/content-4.tsx +10 -18
  64. package/src/blocks/content/content-5.schema.ts +301 -278
  65. package/src/blocks/content/content-5.tsx +23 -16
  66. package/src/blocks/content/content-6.schema.ts +432 -250
  67. package/src/blocks/content/content-6.tsx +24 -19
  68. package/src/blocks/content/content-7.schema.ts +200 -197
  69. package/src/blocks/content/content-7.tsx +29 -21
  70. package/src/blocks/content/content-8.schema.ts +28 -23
  71. package/src/blocks/content/content-8.tsx +3 -3
  72. package/src/blocks/content/content-9.schema.ts +64 -2208
  73. package/src/blocks/content/content-9.tsx +31 -43
  74. package/src/blocks/cta/cta-1.schema.ts +23 -128
  75. package/src/blocks/cta/cta-2.schema.ts +46 -69
  76. package/src/blocks/cta/cta-2.tsx +2 -6
  77. package/src/blocks/cta/cta-3.schema.ts +77 -72
  78. package/src/blocks/cta/cta-3.tsx +2 -6
  79. package/src/blocks/embed/embed-1.schema.ts +30 -52
  80. package/src/blocks/embed/embed-1.tsx +1 -9
  81. package/src/blocks/event/ClientOnly.tsx +1 -4
  82. package/src/blocks/event/event-details.schema.ts +23 -32
  83. package/src/blocks/event/event-details.tsx +9 -23
  84. package/src/blocks/event/event-listing-2.schema.ts +19 -38
  85. package/src/blocks/event/event-listing-2.tsx +29 -38
  86. package/src/blocks/event/event-listing-3.schema.ts +10 -20
  87. package/src/blocks/event/event-listing-3.tsx +26 -30
  88. package/src/blocks/event/event-listing-4.schema.ts +40 -80
  89. package/src/blocks/event/event-listing-4.tsx +22 -28
  90. package/src/blocks/event/event-listing.schema.ts +12 -24
  91. package/src/blocks/event/event-listing.tsx +26 -30
  92. package/src/blocks/faq/faq-1.schema.ts +150 -112
  93. package/src/blocks/faq/faq-1.tsx +31 -33
  94. package/src/blocks/faq/faq-2.schema.ts +132 -77
  95. package/src/blocks/faq/faq-2.tsx +21 -11
  96. package/src/blocks/faq/faq-3.schema.ts +178 -107
  97. package/src/blocks/faq/faq-3.tsx +30 -22
  98. package/src/blocks/features/features-1/features-1.schema.ts +11 -3
  99. package/src/blocks/features/features-1/features-1.tsx +12 -5
  100. package/src/blocks/features/features-1/variants/default.ts +176 -62
  101. package/src/blocks/features/features-1/variants/index.ts +1 -1
  102. package/src/blocks/features/features-1/variants/stylized-cards-v1.ts +392 -54
  103. package/src/blocks/features/features-1/variants/stylized-cards-v2.ts +119 -103
  104. package/src/blocks/features/features-1/variants/stylized-cards-v3.ts +16 -199
  105. package/src/blocks/features/features-2.schema.ts +149 -48
  106. package/src/blocks/features/features-2.tsx +18 -12
  107. package/src/blocks/features/features-3.schema.ts +255 -68
  108. package/src/blocks/features/features-3.tsx +25 -15
  109. package/src/blocks/features/features-4.schema.ts +367 -188
  110. package/src/blocks/features/features-4.tsx +12 -8
  111. package/src/blocks/features/features-5.schema.ts +195 -200
  112. package/src/blocks/features/features-5.tsx +14 -14
  113. package/src/blocks/features/features-6.schema.ts +230 -215
  114. package/src/blocks/features/features-6.tsx +28 -34
  115. package/src/blocks/filter-listing/filter-listing-1.tsx +12 -36
  116. package/src/blocks/floating-buttons/floating-button-1.schema.ts +100 -0
  117. package/src/blocks/floating-buttons/floating-button-1.tsx +14 -0
  118. package/src/blocks/footer/footer-1.schema.ts +110 -48
  119. package/src/blocks/footer/footer-1.tsx +17 -31
  120. package/src/blocks/footer/footer-2.schema.ts +230 -34
  121. package/src/blocks/footer/footer-2.tsx +19 -29
  122. package/src/blocks/footer/footer-3.schema.ts +335 -59
  123. package/src/blocks/footer/footer-3.tsx +11 -26
  124. package/src/blocks/footer/footer-4.schema.ts +139 -76
  125. package/src/blocks/footer/footer-4.tsx +37 -55
  126. package/src/blocks/footer/footer-5.schema.ts +138 -60
  127. package/src/blocks/footer/footer-5.tsx +16 -30
  128. package/src/blocks/footer/footer-6.schema.ts +62 -149
  129. package/src/blocks/footer/footer-6.tsx +30 -44
  130. package/src/blocks/form/form-1.schema.ts +144 -0
  131. package/src/blocks/form/form-1.tsx +33 -0
  132. package/src/blocks/hero/hero-1.schema.ts +153 -101
  133. package/src/blocks/hero/hero-1.tsx +4 -4
  134. package/src/blocks/hero/hero-10.schema.ts +9 -31
  135. package/src/blocks/hero/hero-10.tsx +4 -4
  136. package/src/blocks/hero/hero-11.schema.ts +196 -89
  137. package/src/blocks/hero/hero-11.tsx +5 -10
  138. package/src/blocks/hero/hero-12.schema.ts +111 -192
  139. package/src/blocks/hero/hero-12.tsx +4 -7
  140. package/src/blocks/hero/hero-13.schema.ts +36 -30
  141. package/src/blocks/hero/hero-13.tsx +1 -1
  142. package/src/blocks/hero/hero-2.schema.ts +30 -58
  143. package/src/blocks/hero/hero-2.tsx +3 -21
  144. package/src/blocks/hero/hero-3.schema.ts +70 -90
  145. package/src/blocks/hero/hero-3.tsx +6 -15
  146. package/src/blocks/hero/hero-4.schema.ts +246 -73
  147. package/src/blocks/hero/hero-4.tsx +22 -16
  148. package/src/blocks/hero/hero-5.schema.ts +104 -47
  149. package/src/blocks/hero/hero-5.tsx +21 -12
  150. package/src/blocks/hero/hero-6.schema.ts +127 -258
  151. package/src/blocks/hero/hero-6.tsx +6 -6
  152. package/src/blocks/hero/hero-7.schema.ts +90 -43
  153. package/src/blocks/hero/hero-7.tsx +6 -4
  154. package/src/blocks/hero/hero-8.schema.ts +342 -138
  155. package/src/blocks/hero/hero-8.tsx +23 -13
  156. package/src/blocks/hero/hero-9.schema.ts +111 -86
  157. package/src/blocks/hero/hero-9.tsx +12 -4
  158. package/src/blocks/index.ts +12 -8
  159. package/src/blocks/jobs/jobs-1.schema.ts +990 -0
  160. package/src/blocks/jobs/jobs-1.tsx +145 -0
  161. package/src/blocks/logos/logos-1.schema.ts +370 -36
  162. package/src/blocks/logos/logos-1.tsx +7 -7
  163. package/src/blocks/navbar/navbar-1.schema.ts +15 -28
  164. package/src/blocks/navbar/navbar-1.tsx +24 -60
  165. package/src/blocks/navbar/navbar-2.schema.ts +14 -28
  166. package/src/blocks/navbar/navbar-2.tsx +26 -56
  167. package/src/blocks/navbar/navbar-3.schema.ts +11 -22
  168. package/src/blocks/navbar/navbar-3.tsx +33 -82
  169. package/src/blocks/navbar/navbar-4.schema.ts +14343 -0
  170. package/src/blocks/navbar/navbar-4.tsx +546 -0
  171. package/src/blocks/polling/polling-1.schema.ts +2 -21
  172. package/src/blocks/polling/polling-1.tsx +24 -39
  173. package/src/blocks/pricing/pricing-1.schema.ts +307 -290
  174. package/src/blocks/pricing/pricing-1.tsx +32 -42
  175. package/src/blocks/products/products-listing-1.schema.ts +115 -36
  176. package/src/blocks/products/products-listing-1.tsx +15 -13
  177. package/src/blocks/products/products-listing-2.schema.ts +178 -220
  178. package/src/blocks/products/products-listing-2.tsx +29 -16
  179. package/src/blocks/products/products-listing-3.schema.ts +412 -154
  180. package/src/blocks/products/products-listing-3.tsx +102 -73
  181. package/src/blocks/profile/profile-1.schema.ts +60 -49
  182. package/src/blocks/profile/profile-1.tsx +5 -10
  183. package/src/blocks/profile/profile-2.schema.ts +71 -92
  184. package/src/blocks/profile/profile-2.tsx +6 -7
  185. package/src/blocks/profile/profile-3.schema.ts +141 -529
  186. package/src/blocks/profile/profile-3.tsx +19 -41
  187. package/src/blocks/{blogs/blog-post-2.schema.ts → profile/profile-4.schema.ts} +75 -97
  188. package/src/blocks/{blogs/blog-post-2.tsx → profile/profile-4.tsx} +32 -61
  189. package/src/blocks/{blogs/blog-post-3.schema.ts → profile/profile-5.schema.ts} +6 -6
  190. package/src/blocks/{blogs/blog-post-3.tsx → profile/profile-5.tsx} +6 -11
  191. package/src/blocks/services/service-1.schema.ts +210 -830
  192. package/src/blocks/services/service-1.tsx +46 -59
  193. package/src/blocks/services/service-2.schema.ts +92 -80
  194. package/src/blocks/services/service-2.tsx +13 -7
  195. package/src/blocks/services/service-3.schema.ts +74 -86
  196. package/src/blocks/services/service-3.tsx +44 -45
  197. package/src/blocks/stats/stats-1.schema.ts +225 -21
  198. package/src/blocks/stats/stats-1.tsx +7 -14
  199. package/src/blocks/stats/stats-2.schema.ts +13 -5
  200. package/src/blocks/stats/stats-2.tsx +12 -15
  201. package/src/blocks/stats/variants/default.ts +59 -41
  202. package/src/blocks/stats/variants/hero.ts +64 -31
  203. package/src/blocks/stats/variants/index.ts +1 -1
  204. package/src/blocks/tabs/tab-1.schema.ts +103 -409
  205. package/src/blocks/tabs/tab-1.tsx +47 -53
  206. package/src/blocks/tabs/tab-2.schema.ts +207 -290
  207. package/src/blocks/tabs/tab-2.tsx +20 -9
  208. package/src/blocks/team/team-1.schema.ts +593 -76
  209. package/src/blocks/team/team-1.tsx +16 -22
  210. package/src/blocks/team/team-2.schema.ts +621 -1453
  211. package/src/blocks/team/team-2.tsx +19 -34
  212. package/src/blocks/team/team-3.schema.ts +127 -78
  213. package/src/blocks/team/team-3.tsx +9 -14
  214. package/src/blocks/team/team-4.schema.ts +197 -63
  215. package/src/blocks/team/team-4.tsx +25 -26
  216. package/src/blocks/team/team-5.schema.ts +65 -54
  217. package/src/blocks/team/team-5.tsx +13 -4
  218. package/src/blocks/termsAndPrivacy/terms-and-conditions-1.schema.ts +9 -26
  219. package/src/blocks/termsAndPrivacy/terms-and-conditions-1.tsx +4 -6
  220. package/src/blocks/testimonial/testimonial-1.schema.ts +713 -65
  221. package/src/blocks/testimonial/testimonial-1.tsx +12 -23
  222. package/src/blocks/testimonial/testimonial-2.schema.ts +1316 -354
  223. package/src/blocks/testimonial/testimonial-2.tsx +21 -37
  224. package/src/blocks/testimonial/testimonial-3.schema.ts +210 -74
  225. package/src/blocks/testimonial/testimonial-3.tsx +17 -27
  226. package/src/blocks/testimonial/testimonial-4.schema.ts +353 -1049
  227. package/src/blocks/testimonial/testimonial-4.tsx +16 -34
  228. package/src/blocks/testimonial/testimonial-5/variants/default.ts +155 -171
  229. package/src/blocks/testimonial/testimonial-5/variants/index.ts +1 -1
  230. package/src/blocks/testimonial/testimonial-5/variants/testimonialWithLogo.ts +201 -501
  231. package/src/blocks/testimonial/testimonial-5/variants/testimonialWithRatings.ts +166 -316
  232. package/src/blocks/testimonial/testimonial-5.schema.ts +2 -6
  233. package/src/blocks/testimonial/testimonial-5.tsx +15 -25
  234. package/src/blocks/testimonial/testimonial-6.schema.ts +226 -315
  235. package/src/blocks/testimonial/testimonial-6.tsx +9 -25
  236. package/src/blocks/testimonial/testimonial-7.schema.ts +74 -45
  237. package/src/blocks/testimonial/testimonial-7.tsx +16 -27
  238. package/src/blocks/timeline/timeline-1.schema.ts +166 -153
  239. package/src/blocks/timeline/timeline-1.tsx +6 -7
  240. package/src/blocks/users/edit-profile.schema.ts +56 -44
  241. package/src/blocks/users/edit-profile.tsx +23 -28
  242. package/src/constants/index.ts +16 -0
  243. package/src/index.ts +1 -1
  244. package/src/schemas/blocks.ts +17 -5
  245. package/src/schemas/categories.ts +26 -2
@@ -1,29 +1,18 @@
1
1
  import type { ILevoBlockBaseProps } from "@levo-so/studio";
2
- import {
3
- Box,
4
- Button,
5
- Container,
6
- Heading,
7
- Icon,
8
- Section,
9
- Typography,
10
- } from "@levo-so/studio";
2
+ import { Box, Button, Container, Heading, Icon, Section, Typography } from "@levo-so/studio";
11
3
 
12
4
  import type { IPricing1Content } from "./pricing-1.schema";
13
5
 
14
- const Pricing1: React.FC<ILevoBlockBaseProps<IPricing1Content>> = ({
15
- content,
16
- }) => (
6
+ const Pricing1: React.FC<ILevoBlockBaseProps<IPricing1Content>> = ({ content }) => (
17
7
  <Section elementKey="layout">
18
8
  <Container elementKey="container">
19
- <Heading elementKey="title" />
9
+ <Box elementKey="header">
10
+ <Heading elementKey="title" />
11
+ <Typography elementKey="description" />
12
+ </Box>
20
13
  <Box elementKey="pricing_cards_levoGroup" data-levo_group>
21
14
  {(content.pricing_cards ?? []).map((_, index) => (
22
- <Box
23
- key={index}
24
- data-levo_group_item
25
- elementKey={`pricing_cards.${index}.card`}
26
- >
15
+ <Box key={index} data-levo_group_item elementKey={`pricing_cards.${index}.card`}>
27
16
  {/* Title and Badge Container */}
28
17
  <Box elementKey={`pricing_cards.${index}.title_badge_container`}>
29
18
  {/* Badge for popular plans */}
@@ -35,9 +24,7 @@ const Pricing1: React.FC<ILevoBlockBaseProps<IPricing1Content>> = ({
35
24
  </Box>
36
25
 
37
26
  {/* Primary Content Container */}
38
- <Box
39
- elementKey={`pricing_cards.${index}.primary_content_container`}
40
- >
27
+ <Box elementKey={`pricing_cards.${index}.primary_content_container`}>
41
28
  {/* Plan description */}
42
29
  <Typography elementKey={`pricing_cards.${index}.description`} />
43
30
 
@@ -50,32 +37,35 @@ const Pricing1: React.FC<ILevoBlockBaseProps<IPricing1Content>> = ({
50
37
  </Box>
51
38
 
52
39
  {/* CTA Button */}
53
- <Button elementKey={`pricing_cards.${index}.cta`} />
40
+ <Box elementKey={`pricing_cards.${index}.ctas_levoGroup`} data-levo_group>
41
+ {content.pricing_cards?.[index]?.ctas?.map((_, ctaIndex) => (
42
+ <Button
43
+ key={ctaIndex}
44
+ elementKey={`pricing_cards.${index}.ctas.${ctaIndex}.cta`}
45
+ data-levo_group_item
46
+ />
47
+ ))}
48
+ </Box>
54
49
  </Box>
55
50
 
56
51
  {/* Features section */}
57
52
  <Box elementKey={`pricing_cards.${index}.features_wrapper`}>
58
53
  <Heading elementKey={`pricing_cards.${index}.features_title`} />
59
- <Box
60
- elementKey={`pricing_cards.${index}.features_levoGroup`}
61
- data-levo_group
62
- >
63
- {(content.pricing_cards?.[index]?.features ?? []).map(
64
- (_, featureIndex) => (
65
- <Box
66
- key={featureIndex}
67
- data-levo_group_item
68
- elementKey={`pricing_cards.${index}.features.${featureIndex}.feature_container`}
69
- >
70
- <Icon
71
- elementKey={`pricing_cards.${index}.features.${featureIndex}.feature_item`}
72
- />
73
- <Typography
74
- elementKey={`pricing_cards.${index}.features.${featureIndex}.feature_text`}
75
- />
76
- </Box>
77
- ),
78
- )}
54
+ <Box elementKey={`pricing_cards.${index}.features_levoGroup`} data-levo_group>
55
+ {(content.pricing_cards?.[index]?.features ?? []).map((_, featureIndex) => (
56
+ <Box
57
+ key={featureIndex}
58
+ data-levo_group_item
59
+ elementKey={`pricing_cards.${index}.features.${featureIndex}.feature_container`}
60
+ >
61
+ <Icon
62
+ elementKey={`pricing_cards.${index}.features.${featureIndex}.feature_item`}
63
+ />
64
+ <Typography
65
+ elementKey={`pricing_cards.${index}.features.${featureIndex}.feature_text`}
66
+ />
67
+ </Box>
68
+ ))}
79
69
  </Box>
80
70
  </Box>
81
71
  </Box>
@@ -1,23 +1,72 @@
1
1
  import type { IBlock } from "@levo-so/studio";
2
2
 
3
- const DEFAULT_IMAGE = {
4
- id: "7141014160938075687",
5
- location: "https://space.levo.so/WLZ1TXTD/defaultblue-tryFJ012mgyH.png",
3
+ const MEDIA_1 = {
4
+ id: "iPDjefZlgPh1M",
5
+ filename: "product-listing-1-1.png",
6
6
  kind: "image",
7
+ location: "https://static.levocdn.com/WLZ1TXTD/product-listing-1-1-R6ertNbOMvUa0.png",
8
+ srcset: {
9
+ "1080w": "https://static.levocdn.com/WLZ1TXTD/product-listing-1-1-R6ertNbOMvUa0-1080w.webp",
10
+ "1200w": "https://static.levocdn.com/WLZ1TXTD/product-listing-1-1-R6ertNbOMvUa0-1200w.webp",
11
+ "1920w": "https://static.levocdn.com/WLZ1TXTD/product-listing-1-1-R6ertNbOMvUa0-1920w.webp",
12
+ "320w": "https://static.levocdn.com/WLZ1TXTD/product-listing-1-1-R6ertNbOMvUa0-320w.webp",
13
+ "640w": "https://static.levocdn.com/WLZ1TXTD/product-listing-1-1-R6ertNbOMvUa0-640w.webp",
14
+ "750w": "https://static.levocdn.com/WLZ1TXTD/product-listing-1-1-R6ertNbOMvUa0-750w.webp",
15
+ "828w": "https://static.levocdn.com/WLZ1TXTD/product-listing-1-1-R6ertNbOMvUa0-828w.webp",
16
+ path: "https://static.levocdn.com/WLZ1TXTD/product-listing-1-1-R6ertNbOMvUa0-1920w.webp 1920w, https://static.levocdn.com/WLZ1TXTD/product-listing-1-1-R6ertNbOMvUa0-320w.webp 320w, https://static.levocdn.com/WLZ1TXTD/product-listing-1-1-R6ertNbOMvUa0-750w.webp 750w, https://static.levocdn.com/WLZ1TXTD/product-listing-1-1-R6ertNbOMvUa0-640w.webp 640w, https://static.levocdn.com/WLZ1TXTD/product-listing-1-1-R6ertNbOMvUa0-828w.webp 828w, https://static.levocdn.com/WLZ1TXTD/product-listing-1-1-R6ertNbOMvUa0-1080w.webp 1080w, https://static.levocdn.com/WLZ1TXTD/product-listing-1-1-R6ertNbOMvUa0-1200w.webp 1200w",
17
+ },
18
+ mimetype: "image/png",
19
+ };
20
+ const MEDIA_2 = {
21
+ id: "XZbHubcwuDQuO",
22
+ filename: "product-listing-1-2.png",
23
+ kind: "image",
24
+ location: "https://static.levocdn.com/WLZ1TXTD/product-listing-1-2-OaJNDLqfjAZ3o.png",
25
+ srcset: {
26
+ "1080w": "https://static.levocdn.com/WLZ1TXTD/product-listing-1-2-OaJNDLqfjAZ3o-1080w.webp",
27
+ "1200w": "https://static.levocdn.com/WLZ1TXTD/product-listing-1-2-OaJNDLqfjAZ3o-1200w.webp",
28
+ "1920w": "https://static.levocdn.com/WLZ1TXTD/product-listing-1-2-OaJNDLqfjAZ3o-1920w.webp",
29
+ "320w": "https://static.levocdn.com/WLZ1TXTD/product-listing-1-2-OaJNDLqfjAZ3o-320w.webp",
30
+ "640w": "https://static.levocdn.com/WLZ1TXTD/product-listing-1-2-OaJNDLqfjAZ3o-640w.webp",
31
+ "750w": "https://static.levocdn.com/WLZ1TXTD/product-listing-1-2-OaJNDLqfjAZ3o-750w.webp",
32
+ "828w": "https://static.levocdn.com/WLZ1TXTD/product-listing-1-2-OaJNDLqfjAZ3o-828w.webp",
33
+ path: "https://static.levocdn.com/WLZ1TXTD/product-listing-1-2-OaJNDLqfjAZ3o-320w.webp 320w, https://static.levocdn.com/WLZ1TXTD/product-listing-1-2-OaJNDLqfjAZ3o-640w.webp 640w, https://static.levocdn.com/WLZ1TXTD/product-listing-1-2-OaJNDLqfjAZ3o-750w.webp 750w, https://static.levocdn.com/WLZ1TXTD/product-listing-1-2-OaJNDLqfjAZ3o-828w.webp 828w, https://static.levocdn.com/WLZ1TXTD/product-listing-1-2-OaJNDLqfjAZ3o-1080w.webp 1080w, https://static.levocdn.com/WLZ1TXTD/product-listing-1-2-OaJNDLqfjAZ3o-1200w.webp 1200w, https://static.levocdn.com/WLZ1TXTD/product-listing-1-2-OaJNDLqfjAZ3o-1920w.webp 1920w",
34
+ },
7
35
  mimetype: "image/png",
36
+ };
37
+ const MEDIA_3 = {
38
+ id: "oildArpqXyWvw",
39
+ filename: "product-listing-1-3.png",
40
+ kind: "image",
41
+ location: "https://static.levocdn.com/WLZ1TXTD/product-listing-1-3-k5KMbTxRrITlf.png",
8
42
  srcset: {
9
- "1080w":
10
- "https://space.levo.so/WLZ1TXTD/defaultblue-tryFJ012mgyH-1080w.webp",
11
- "1200w":
12
- "https://space.levo.so/WLZ1TXTD/defaultblue-tryFJ012mgyH-1200w.webp",
13
- "1920w":
14
- "https://space.levo.so/WLZ1TXTD/defaultblue-tryFJ012mgyH-1920w.webp",
15
- "320w": "https://space.levo.so/WLZ1TXTD/defaultblue-tryFJ012mgyH-320w.webp",
16
- "640w": "https://space.levo.so/WLZ1TXTD/defaultblue-tryFJ012mgyH-640w.webp",
17
- "750w": "https://space.levo.so/WLZ1TXTD/defaultblue-tryFJ012mgyH-750w.webp",
18
- "828w": "https://space.levo.so/WLZ1TXTD/defaultblue-tryFJ012mgyH-828w.webp",
19
- path: "https://space.levo.so/WLZ1TXTD/defaultblue-tryFJ012mgyH-640w.webp 640w, https://space.levo.so/WLZ1TXTD/defaultblue-tryFJ012mgyH-1080w.webp 1080w, https://space.levo.so/WLZ1TXTD/defaultblue-tryFJ012mgyH-1200w.webp 1200w, https://space.levo.so/WLZ1TXTD/defaultblue-tryFJ012mgyH-1920w.webp 1920w, https://space.levo.so/WLZ1TXTD/defaultblue-tryFJ012mgyH-320w.webp 320w, https://space.levo.so/WLZ1TXTD/defaultblue-tryFJ012mgyH-750w.webp 750w, https://space.levo.so/WLZ1TXTD/defaultblue-tryFJ012mgyH-828w.webp 828w",
43
+ "1080w": "https://static.levocdn.com/WLZ1TXTD/product-listing-1-3-k5KMbTxRrITlf-1080w.webp",
44
+ "1200w": "https://static.levocdn.com/WLZ1TXTD/product-listing-1-3-k5KMbTxRrITlf-1200w.webp",
45
+ "1920w": "https://static.levocdn.com/WLZ1TXTD/product-listing-1-3-k5KMbTxRrITlf-1920w.webp",
46
+ "320w": "https://static.levocdn.com/WLZ1TXTD/product-listing-1-3-k5KMbTxRrITlf-320w.webp",
47
+ "640w": "https://static.levocdn.com/WLZ1TXTD/product-listing-1-3-k5KMbTxRrITlf-640w.webp",
48
+ "750w": "https://static.levocdn.com/WLZ1TXTD/product-listing-1-3-k5KMbTxRrITlf-750w.webp",
49
+ "828w": "https://static.levocdn.com/WLZ1TXTD/product-listing-1-3-k5KMbTxRrITlf-828w.webp",
50
+ path: "https://static.levocdn.com/WLZ1TXTD/product-listing-1-3-k5KMbTxRrITlf-1920w.webp 1920w, https://static.levocdn.com/WLZ1TXTD/product-listing-1-3-k5KMbTxRrITlf-320w.webp 320w, https://static.levocdn.com/WLZ1TXTD/product-listing-1-3-k5KMbTxRrITlf-640w.webp 640w, https://static.levocdn.com/WLZ1TXTD/product-listing-1-3-k5KMbTxRrITlf-750w.webp 750w, https://static.levocdn.com/WLZ1TXTD/product-listing-1-3-k5KMbTxRrITlf-828w.webp 828w, https://static.levocdn.com/WLZ1TXTD/product-listing-1-3-k5KMbTxRrITlf-1080w.webp 1080w, https://static.levocdn.com/WLZ1TXTD/product-listing-1-3-k5KMbTxRrITlf-1200w.webp 1200w",
20
51
  },
52
+ mimetype: "image/png",
53
+ };
54
+ const MEDIA_4 = {
55
+ id: "6HgbtxxyDY0T7",
56
+ filename: "product-listing-1-4.png",
57
+ kind: "image",
58
+ location: "https://static.levocdn.com/WLZ1TXTD/product-listing-1-4-T71RynwUbPcTF.png",
59
+ srcset: {
60
+ "1080w": "https://static.levocdn.com/WLZ1TXTD/product-listing-1-4-T71RynwUbPcTF-1080w.webp",
61
+ "1200w": "https://static.levocdn.com/WLZ1TXTD/product-listing-1-4-T71RynwUbPcTF-1200w.webp",
62
+ "1920w": "https://static.levocdn.com/WLZ1TXTD/product-listing-1-4-T71RynwUbPcTF-1920w.webp",
63
+ "320w": "https://static.levocdn.com/WLZ1TXTD/product-listing-1-4-T71RynwUbPcTF-320w.webp",
64
+ "640w": "https://static.levocdn.com/WLZ1TXTD/product-listing-1-4-T71RynwUbPcTF-640w.webp",
65
+ "750w": "https://static.levocdn.com/WLZ1TXTD/product-listing-1-4-T71RynwUbPcTF-750w.webp",
66
+ "828w": "https://static.levocdn.com/WLZ1TXTD/product-listing-1-4-T71RynwUbPcTF-828w.webp",
67
+ path: "https://static.levocdn.com/WLZ1TXTD/product-listing-1-4-T71RynwUbPcTF-1920w.webp 1920w, https://static.levocdn.com/WLZ1TXTD/product-listing-1-4-T71RynwUbPcTF-320w.webp 320w, https://static.levocdn.com/WLZ1TXTD/product-listing-1-4-T71RynwUbPcTF-640w.webp 640w, https://static.levocdn.com/WLZ1TXTD/product-listing-1-4-T71RynwUbPcTF-828w.webp 828w, https://static.levocdn.com/WLZ1TXTD/product-listing-1-4-T71RynwUbPcTF-750w.webp 750w, https://static.levocdn.com/WLZ1TXTD/product-listing-1-4-T71RynwUbPcTF-1080w.webp 1080w, https://static.levocdn.com/WLZ1TXTD/product-listing-1-4-T71RynwUbPcTF-1200w.webp 1200w",
68
+ },
69
+ mimetype: "image/png",
21
70
  };
22
71
 
23
72
  const DEFAULT_CONTENT = {
@@ -28,30 +77,31 @@ const DEFAULT_CONTENT = {
28
77
  cta_box: null,
29
78
  description:
30
79
  "Our intelligent, scalable, and user-friendly products leverage AI to enhance performance, automation, and user engagement.",
31
- cta: "View More",
80
+ buttons_levoGroup: null,
81
+ buttons: [{ button: "View More" }, { button: "Learn More" }],
32
82
  products_levoGroup: null,
33
83
  products: [
34
84
  {
35
85
  card: null,
36
- image: DEFAULT_IMAGE,
86
+ image: MEDIA_1,
37
87
  title: "Websites",
38
88
  price: "$25.00",
39
89
  },
40
90
  {
41
91
  card: null,
42
- image: DEFAULT_IMAGE,
92
+ image: MEDIA_2,
43
93
  title: "Mobile Apps",
44
94
  price: "$25.00",
45
95
  },
46
96
  {
47
97
  card: null,
48
- image: DEFAULT_IMAGE,
98
+ image: MEDIA_3,
49
99
  title: "Chatbots",
50
100
  price: "$25.00",
51
101
  },
52
102
  {
53
103
  card: null,
54
- image: DEFAULT_IMAGE,
104
+ image: MEDIA_4,
55
105
  title: "Platforms",
56
106
  price: "$25.00",
57
107
  },
@@ -97,9 +147,17 @@ export const ProductsListing1: IBlock = {
97
147
  field_interface: "TypographyWidget",
98
148
  },
99
149
  {
100
- key: "button_1",
101
- label: "Button 1",
102
- field_interface: "ButtonWidget",
150
+ key: "buttons",
151
+ label: "Buttons",
152
+ field_interface: "BoxWidget",
153
+ kind: "group",
154
+ fields: [
155
+ {
156
+ key: "button",
157
+ label: "Button",
158
+ field_interface: "ButtonWidget",
159
+ },
160
+ ],
103
161
  },
104
162
  {
105
163
  key: "products",
@@ -135,10 +193,7 @@ export const ProductsListing1: IBlock = {
135
193
  key: "default",
136
194
  title: "Default",
137
195
  styles: {
138
- container: {
139
- "padding-top": "10xl",
140
- "padding-bottom": "10xl",
141
- },
196
+ container: {},
142
197
  header_box: {
143
198
  display: "flex",
144
199
  "flex-direction": "column",
@@ -161,9 +216,14 @@ export const ProductsListing1: IBlock = {
161
216
  "justify-content": "center",
162
217
  "align-items": "center",
163
218
  },
164
- description: {
165
- "max-width": "28rem",
219
+ description: {},
220
+ buttons_levoGroup: {
221
+ display: "flex",
222
+ "flex-direction": "row",
223
+ "align-items": "center",
224
+ gap: "sm",
166
225
  },
226
+ buttons: Array(2).map(() => ({})),
167
227
  products_levoGroup: {
168
228
  display: "grid",
169
229
  "grid-template-columns": "repeat(2, minmax(0, 1fr))",
@@ -182,7 +242,6 @@ export const ProductsListing1: IBlock = {
182
242
  width: "100%",
183
243
  display: "block",
184
244
  },
185
-
186
245
  price: {
187
246
  "margin-top": "4xs",
188
247
  },
@@ -195,7 +254,6 @@ export const ProductsListing1: IBlock = {
195
254
  width: "100%",
196
255
  display: "block",
197
256
  },
198
-
199
257
  price: {
200
258
  "margin-top": "4xs",
201
259
  },
@@ -208,7 +266,6 @@ export const ProductsListing1: IBlock = {
208
266
  width: "100%",
209
267
  display: "block",
210
268
  },
211
-
212
269
  price: {
213
270
  "margin-top": "4xs",
214
271
  },
@@ -221,7 +278,6 @@ export const ProductsListing1: IBlock = {
221
278
  width: "100%",
222
279
  display: "block",
223
280
  },
224
-
225
281
  price: {
226
282
  "margin-top": "4xs",
227
283
  },
@@ -239,28 +295,51 @@ export const ProductsListing1: IBlock = {
239
295
  {
240
296
  title: {
241
297
  selectedVariants: {
242
- Heading_Level: "H5",
298
+ Heading_Level: "H4",
299
+ },
300
+ heading: {
301
+ level: "4",
302
+ },
303
+ },
304
+ price: {
305
+ selectedVariants: {
306
+ Typography_Variants: "Large",
243
307
  },
244
308
  },
245
309
  },
246
310
  {
247
311
  title: {
248
312
  selectedVariants: {
249
- Heading_Level: "H5",
313
+ Heading_Level: "H4",
314
+ },
315
+ },
316
+ price: {
317
+ selectedVariants: {
318
+ Typography_Variants: "Large",
250
319
  },
251
320
  },
252
321
  },
253
322
  {
254
323
  title: {
255
324
  selectedVariants: {
256
- Heading_Level: "H5",
325
+ Heading_Level: "H4",
326
+ },
327
+ },
328
+ price: {
329
+ selectedVariants: {
330
+ Typography_Variants: "Large",
257
331
  },
258
332
  },
259
333
  },
260
334
  {
261
335
  title: {
262
336
  selectedVariants: {
263
- Heading_Level: "H5",
337
+ Heading_Level: "H4",
338
+ },
339
+ },
340
+ price: {
341
+ selectedVariants: {
342
+ Typography_Variants: "Large",
264
343
  },
265
344
  },
266
345
  },
@@ -1,35 +1,37 @@
1
1
  import {
2
- type ILevoBlockBaseProps,
2
+ Box,
3
3
  Button,
4
+ Container,
4
5
  Heading,
6
+ type ILevoBlockBaseProps,
5
7
  Image,
6
- Typography,
7
- Container,
8
8
  Section,
9
- Box,
9
+ Typography,
10
10
  } from "@levo-so/studio";
11
11
 
12
12
  import type { IProductsListing1Content } from "./products-listing-1.schema";
13
13
 
14
- const ProductsListing1: React.FC<
15
- ILevoBlockBaseProps<IProductsListing1Content>
16
- > = ({ content }) => (
14
+ const ProductsListing1: React.FC<ILevoBlockBaseProps<IProductsListing1Content>> = ({ content }) => (
17
15
  <Section elementKey="layout">
18
16
  <Container elementKey="container">
19
17
  <Box elementKey="header_box">
20
18
  <Heading elementKey="title" />
21
19
  <Box elementKey="cta_box">
22
20
  <Typography elementKey="description" />
23
- <Button elementKey="button_1" />
21
+ <Box elementKey="buttons_levoGroup" data-levo_group>
22
+ {(content?.buttons ?? []).map((_, index: number) => (
23
+ <Button
24
+ key={`buttons.${index}.button`}
25
+ elementKey={`buttons.${index}.button`}
26
+ data-levo_group_item
27
+ />
28
+ ))}
29
+ </Box>
24
30
  </Box>
25
31
  </Box>
26
32
  <Box data-levo_group elementKey="products_levoGroup">
27
33
  {(content.products ?? []).map((_, index) => (
28
- <Box
29
- data-levo_group_item
30
- elementKey={`products.${index}.card`}
31
- key={index}
32
- >
34
+ <Box data-levo_group_item elementKey={`products.${index}.card`} key={index}>
33
35
  <Image
34
36
  alt="product image"
35
37
  elementKey={`products.${index}.image`}