@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
@@ -6,20 +6,13 @@ const DUMMY_IMAGE = {
6
6
  kind: "image",
7
7
  mimetype: "image/png",
8
8
  srcset: {
9
- "1080w":
10
- "https://static.levocdn.com/WLZ1TXTD/defaultblue-tryFJ012mgyH-1080w.webp",
11
- "1200w":
12
- "https://static.levocdn.com/WLZ1TXTD/defaultblue-tryFJ012mgyH-1200w.webp",
13
- "1920w":
14
- "https://static.levocdn.com/WLZ1TXTD/defaultblue-tryFJ012mgyH-1920w.webp",
15
- "320w":
16
- "https://static.levocdn.com/WLZ1TXTD/defaultblue-tryFJ012mgyH-320w.webp",
17
- "640w":
18
- "https://static.levocdn.com/WLZ1TXTD/defaultblue-tryFJ012mgyH-640w.webp",
19
- "750w":
20
- "https://static.levocdn.com/WLZ1TXTD/defaultblue-tryFJ012mgyH-750w.webp",
21
- "828w":
22
- "https://static.levocdn.com/WLZ1TXTD/defaultblue-tryFJ012mgyH-828w.webp",
9
+ "1080w": "https://static.levocdn.com/WLZ1TXTD/defaultblue-tryFJ012mgyH-1080w.webp",
10
+ "1200w": "https://static.levocdn.com/WLZ1TXTD/defaultblue-tryFJ012mgyH-1200w.webp",
11
+ "1920w": "https://static.levocdn.com/WLZ1TXTD/defaultblue-tryFJ012mgyH-1920w.webp",
12
+ "320w": "https://static.levocdn.com/WLZ1TXTD/defaultblue-tryFJ012mgyH-320w.webp",
13
+ "640w": "https://static.levocdn.com/WLZ1TXTD/defaultblue-tryFJ012mgyH-640w.webp",
14
+ "750w": "https://static.levocdn.com/WLZ1TXTD/defaultblue-tryFJ012mgyH-750w.webp",
15
+ "828w": "https://static.levocdn.com/WLZ1TXTD/defaultblue-tryFJ012mgyH-828w.webp",
23
16
  path: "https://static.levocdn.com/WLZ1TXTD/defaultblue-tryFJ012mgyH-640w.webp 640w, https://static.levocdn.com/WLZ1TXTD/defaultblue-tryFJ012mgyH-1080w.webp 1080w, https://static.levocdn.com/WLZ1TXTD/defaultblue-tryFJ012mgyH-1200w.webp 1200w, https://static.levocdn.com/WLZ1TXTD/defaultblue-tryFJ012mgyH-1920w.webp 1920w, https://static.levocdn.com/WLZ1TXTD/defaultblue-tryFJ012mgyH-320w.webp 320w, https://static.levocdn.com/WLZ1TXTD/defaultblue-tryFJ012mgyH-750w.webp 750w, https://static.levocdn.com/WLZ1TXTD/defaultblue-tryFJ012mgyH-828w.webp 828w",
24
17
  },
25
18
  };
@@ -52,8 +45,7 @@ const DEFAULT_CONTENT = {
52
45
  "date-icon": DUMMY_ICON,
53
46
  publishedAt: "25 July, 2025",
54
47
  title: "Books, Brighter Futures: A Day for Change",
55
- description:
56
- "Over 400 children will receive new educational supplies during this Event.",
48
+ description: "Over 400 children will receive new educational supplies during this Event.",
57
49
  },
58
50
  {
59
51
  eventWrapper: null,
@@ -76,8 +68,7 @@ const DEFAULT_CONTENT = {
76
68
  "date-icon": DUMMY_ICON,
77
69
  publishedAt: "3 December, 2025",
78
70
  title: "Voices for a Cause: Music & Giving",
79
- description:
80
- "Experience an evening of soulful and delightful performances and storytelling.",
71
+ description: "Experience an evening of soulful and delightful performances and storytelling.",
81
72
  },
82
73
  {
83
74
  eventWrapper: null,
@@ -139,8 +130,7 @@ const DEFAULT_CONTENT_CTA = {
139
130
  "date-icon": DUMMY_ICON,
140
131
  publishedAt: "25 July, 2025",
141
132
  title: "Books, Brighter Futures: A Day for Change",
142
- description:
143
- "Over 400 children will receive new educational supplies during this Event.",
133
+ description: "Over 400 children will receive new educational supplies during this Event.",
144
134
  },
145
135
  {
146
136
  eventWrapper: null,
@@ -163,8 +153,7 @@ const DEFAULT_CONTENT_CTA = {
163
153
  "date-icon": DUMMY_ICON,
164
154
  publishedAt: "3 December, 2025",
165
155
  title: "Voices for a Cause: Music & Giving",
166
- description:
167
- "Experience an evening of soulful and delightful performances and storytelling.",
156
+ description: "Experience an evening of soulful and delightful performances and storytelling.",
168
157
  },
169
158
  {
170
159
  eventWrapper: null,
@@ -542,8 +531,7 @@ export const EventListing: IBlock = {
542
531
  eventWrapper: {
543
532
  "border-radius": "xl",
544
533
  overflow: "hidden",
545
- "box-shadow":
546
- "0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)",
534
+ "box-shadow": "0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)",
547
535
  filter: "none",
548
536
  },
549
537
  image: {
@@ -1,19 +1,19 @@
1
- import dayjs from "dayjs";
2
1
  import type { ILevoBlockBaseProps } from "@levo-so/studio";
3
2
  import {
4
- Section,
3
+ Box,
4
+ Button,
5
5
  Container,
6
- Typography,
7
6
  Heading,
8
- Box,
9
7
  Icon,
10
8
  Image,
9
+ Section,
10
+ Typography,
11
11
  useContentEngine,
12
- Button,
13
12
  } from "@levo-so/studio";
13
+ import dayjs from "dayjs";
14
14
 
15
- import type { IEventListing } from "./event-listing.schema";
16
15
  import { ClientOnly } from "./ClientOnly";
16
+ import type { IEventListing } from "./event-listing.schema";
17
17
 
18
18
  const EventListing: React.FC<ILevoBlockBaseProps<IEventListing>> = () => {
19
19
  const { data, query, setQuery, meta } = useContentEngine("events");
@@ -48,13 +48,9 @@ const EventListing: React.FC<ILevoBlockBaseProps<IEventListing>> = () => {
48
48
 
49
49
  <Box elementKey={`events.${index}.date-wrapper`}>
50
50
  <Icon elementKey={`events.${index}.date-icon`} />
51
- <Typography
52
- elementKey={`events.${index}.publishedAt-header`}
53
- >
51
+ <Typography elementKey={`events.${index}.publishedAt-header`}>
54
52
  <ClientOnly>
55
- {dayjs(item?.["publishedAt-header"]).format(
56
- "MMM D, YYYY",
57
- )}
53
+ {dayjs(item?.["publishedAt-header"]).format("MMM D, YYYY")}
58
54
  </ClientOnly>
59
55
  </Typography>
60
56
  </Box>
@@ -63,30 +59,30 @@ const EventListing: React.FC<ILevoBlockBaseProps<IEventListing>> = () => {
63
59
  <Typography elementKey={`events.${index}.title`} />
64
60
  <Typography elementKey={`events.${index}.description`} />
65
61
  <Typography elementKey={`events.${index}.publishedAt`}>
66
- <ClientOnly>
67
- {dayjs(item?.publishedAt).format("MMM D, YYYY")}
68
- </ClientOnly>
62
+ <ClientOnly>{dayjs(item?.publishedAt).format("MMM D, YYYY")}</ClientOnly>
69
63
  </Typography>
70
64
  </Box>
71
65
  </Box>
72
66
  ))}
73
67
  </Box>
74
- <Box elementKey="paginationWrapper">
75
- <Button
76
- elementKey="paginationLeftButton"
77
- disabled={query?.page === 1}
78
- onClick={handlePrevious}
79
- />
68
+ {(meta?.pages || 0) > 1 && (
69
+ <Box elementKey="paginationWrapper">
70
+ <Button
71
+ elementKey="paginationLeftButton"
72
+ disabled={query?.page === 1}
73
+ onClick={handlePrevious}
74
+ />
80
75
 
81
- <Typography elementKey="paginationText">
82
- {`${query?.page || 0}/${meta?.pages || 0}`}
83
- </Typography>
84
- <Button
85
- elementKey="paginationRightButton"
86
- onClick={handleNext}
87
- disabled={query?.page === meta?.pages}
88
- />
89
- </Box>
76
+ <Typography elementKey="paginationText">
77
+ {`${query?.page || 0}/${meta?.pages || 0}`}
78
+ </Typography>
79
+ <Button
80
+ elementKey="paginationRightButton"
81
+ onClick={handleNext}
82
+ disabled={query?.page === meta?.pages}
83
+ />
84
+ </Box>
85
+ )}
90
86
  </Container>
91
87
  </Section>
92
88
  );
@@ -11,6 +11,24 @@ const DUMMY_IMAGE = {
11
11
  },
12
12
  };
13
13
 
14
+ const MEDIA = {
15
+ id: "XZbHDbcwEfNIW",
16
+ filename: "faq-1-1.png",
17
+ kind: "image",
18
+ location: "https://static.levocdn.com/WLZ1TXTD/faq-1-1-QsAcZ4gZy8hjO.png",
19
+ srcset: {
20
+ "1080w": "https://static.levocdn.com/WLZ1TXTD/faq-1-1-QsAcZ4gZy8hjO-1080w.webp",
21
+ "1200w": "https://static.levocdn.com/WLZ1TXTD/faq-1-1-QsAcZ4gZy8hjO-1200w.webp",
22
+ "1920w": "https://static.levocdn.com/WLZ1TXTD/faq-1-1-QsAcZ4gZy8hjO-1920w.webp",
23
+ "320w": "https://static.levocdn.com/WLZ1TXTD/faq-1-1-QsAcZ4gZy8hjO-320w.webp",
24
+ "640w": "https://static.levocdn.com/WLZ1TXTD/faq-1-1-QsAcZ4gZy8hjO-640w.webp",
25
+ "750w": "https://static.levocdn.com/WLZ1TXTD/faq-1-1-QsAcZ4gZy8hjO-750w.webp",
26
+ "828w": "https://static.levocdn.com/WLZ1TXTD/faq-1-1-QsAcZ4gZy8hjO-828w.webp",
27
+ path: "https://static.levocdn.com/WLZ1TXTD/faq-1-1-QsAcZ4gZy8hjO-828w.webp 828w, https://static.levocdn.com/WLZ1TXTD/faq-1-1-QsAcZ4gZy8hjO-1080w.webp 1080w, https://static.levocdn.com/WLZ1TXTD/faq-1-1-QsAcZ4gZy8hjO-1200w.webp 1200w, https://static.levocdn.com/WLZ1TXTD/faq-1-1-QsAcZ4gZy8hjO-1920w.webp 1920w, https://static.levocdn.com/WLZ1TXTD/faq-1-1-QsAcZ4gZy8hjO-320w.webp 320w, https://static.levocdn.com/WLZ1TXTD/faq-1-1-QsAcZ4gZy8hjO-640w.webp 640w, https://static.levocdn.com/WLZ1TXTD/faq-1-1-QsAcZ4gZy8hjO-750w.webp 750w",
28
+ },
29
+ mimetype: "image/png",
30
+ };
31
+
14
32
  const DEFAULT_CONTENT = {
15
33
  layout: null,
16
34
  container: null,
@@ -22,7 +40,7 @@ const DEFAULT_CONTENT = {
22
40
  text_container: null,
23
41
  faq_label: "FAQ's",
24
42
  title: "Legal Queries Solved",
25
-
43
+ description: "We're here to help you navigate the complexities of the legal system.",
26
44
  faqs: [
27
45
  {
28
46
  wrapper: null,
@@ -70,31 +88,10 @@ const DEFAULT_CONTENT = {
70
88
  },
71
89
  ],
72
90
 
73
- cta: "More about us",
91
+ ctas_levoGroup: null,
92
+ ctas: [{ cta: "More about us" }, { cta: "Contact Support" }],
74
93
 
75
- faq_image: {
76
- id: "7141014160938075687",
77
- location: "https://space.levo.so/WLZ1TXTD/defaultblue-tryFJ012mgyH.png",
78
- kind: "image",
79
- mimetype: "image/png",
80
- srcset: {
81
- "1080w":
82
- "https://space.levo.so/WLZ1TXTD/defaultblue-tryFJ012mgyH-1080w.webp",
83
- "1200w":
84
- "https://space.levo.so/WLZ1TXTD/defaultblue-tryFJ012mgyH-1200w.webp",
85
- "1920w":
86
- "https://space.levo.so/WLZ1TXTD/defaultblue-tryFJ012mgyH-1920w.webp",
87
- "320w":
88
- "https://space.levo.so/WLZ1TXTD/defaultblue-tryFJ012mgyH-320w.webp",
89
- "640w":
90
- "https://space.levo.so/WLZ1TXTD/defaultblue-tryFJ012mgyH-640w.webp",
91
- "750w":
92
- "https://space.levo.so/WLZ1TXTD/defaultblue-tryFJ012mgyH-750w.webp",
93
- "828w":
94
- "https://space.levo.so/WLZ1TXTD/defaultblue-tryFJ012mgyH-828w.webp",
95
- 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",
96
- },
97
- },
94
+ faq_image: MEDIA,
98
95
  };
99
96
 
100
97
  export type IFaq1Content = typeof DEFAULT_CONTENT;
@@ -153,6 +150,11 @@ export const Faq1: IBlock = {
153
150
  max_characters: 40,
154
151
  },
155
152
  },
153
+ {
154
+ key: "description",
155
+ label: "Description",
156
+ field_interface: "TypographyWidget",
157
+ },
156
158
  {
157
159
  key: "faqs",
158
160
  label: "FAQs",
@@ -191,7 +193,7 @@ export const Faq1: IBlock = {
191
193
  {
192
194
  key: "question",
193
195
  label: "Question",
194
- field_interface: "TypographyWidget",
196
+ field_interface: "HeadingWidget",
195
197
  hint: {
196
198
  prompt_description:
197
199
  "A frequently asked legal question. Should be direct, clear, and phrased from the client's perspective. Professional, sincere tone.",
@@ -249,9 +251,17 @@ export const Faq1: IBlock = {
249
251
  },
250
252
  },
251
253
  {
252
- key: "cta",
253
- label: "CTA",
254
- field_interface: "ButtonWidget",
254
+ key: "ctas",
255
+ label: "CTA Buttons Group",
256
+ field_interface: "BoxWidget",
257
+ kind: "group",
258
+ fields: [
259
+ {
260
+ key: "cta",
261
+ label: "CTA Button",
262
+ field_interface: "ButtonWidget",
263
+ },
264
+ ],
255
265
  },
256
266
  {
257
267
  key: "faq_image",
@@ -271,19 +281,9 @@ export const Faq1: IBlock = {
271
281
  key: "default",
272
282
  title: "Default",
273
283
  styles: {
274
- layout: {
275
- padding: "112px",
276
- width: "100%",
277
- tablet: {
278
- padding: "50px",
279
- },
280
- mobile: {
281
- padding: "40px",
282
- },
283
- },
284
+ layout: {},
284
285
  container: {
285
286
  display: "flex",
286
- width: "100%",
287
287
  "align-items": "center",
288
288
  "justify-content": "between",
289
289
  "column-gap": "12xl",
@@ -323,95 +323,133 @@ export const Faq1: IBlock = {
323
323
  display: "none",
324
324
  },
325
325
  },
326
- faq_label: {
327
- color: "text-2",
326
+ faq_label: {},
327
+ title: {},
328
+ ctas_levoGroup: {
329
+ display: "flex",
330
+ "flex-direction": "row",
331
+ "column-gap": "md",
332
+ "row-gap": "md",
333
+ "flex-wrap": "wrap",
334
+ "align-items": "center",
328
335
  },
336
+ ctas: Array(2)
337
+ .fill(0)
338
+ .map(() => ({
339
+ width: "fit-content",
340
+ })),
341
+ faqs: Array(4)
342
+ .fill(0)
343
+ .map((v) => ({
344
+ wrapper: {
345
+ "padding-top": "none",
346
+ "padding-bottom": "none",
347
+ "border-color": "var(--color-border)",
348
+ "border-bottom-width": "1px",
349
+ "border-style": "solid",
350
+ },
351
+ question: {
352
+ "font-weight": 600,
353
+ tablet: {
354
+ "text-align": "left",
355
+ },
356
+ },
357
+ content: {
358
+ "padding-top": "none",
359
+ "padding-bottom": "lg",
360
+ },
361
+ trigger: {
362
+ width: "100%",
363
+ display: "flex",
364
+ "align-items": "center",
365
+ "justify-content": "space-between",
366
+ "padding-top": "base",
367
+ "padding-bottom": "base",
368
+ },
369
+ iconQuestionWrapper: {
370
+ display: "flex",
371
+ "align-items": "center",
372
+ "column-gap": "base",
373
+ },
374
+ features_list: {
375
+ display: "flex",
376
+ "flex-direction": "row",
377
+ "column-gap": "lg",
378
+ "margin-top": "base",
379
+ "flex-wrap": "wrap",
380
+ },
381
+ features: Array(4)
382
+ .fill(0)
383
+ .map((v) => ({
384
+ wrapper: {
385
+ display: "flex",
386
+ "align-items": "center",
387
+ "column-gap": "xs",
388
+ "background-color": "brand",
389
+ "padding-left": "sm",
390
+ "padding-right": "sm",
391
+ "padding-top": "2xs",
392
+ "padding-bottom": "2xs",
393
+ "border-radius": "md",
394
+ },
395
+ icon: {
396
+ width: "16px",
397
+ height: "16px",
398
+ },
399
+ label: {
400
+ color: "brandForeground",
401
+ },
402
+ })),
403
+ features_levoGroup: {
404
+ display: "flex",
405
+ "flex-direction": "column",
406
+ "row-gap": "base",
407
+ "margin-top": "base",
408
+ },
409
+ })),
410
+ },
411
+ content: DEFAULT_CONTENT,
412
+ config: {
329
413
  title: {
330
- color: "text-1",
331
- },
332
- cta: {
333
- width: "fit-content",
414
+ title: {
415
+ heading: {
416
+ level: 2,
417
+ },
418
+ selectedVariants: {
419
+ Heading_Level: "H2",
420
+ },
421
+ },
334
422
  },
335
423
  faqs: Array(4)
336
424
  .fill(0)
337
425
  .map((v) => {
338
426
  return {
339
- wrapper: {
340
- "padding-top": "none",
341
- "padding-bottom": "none",
342
- "border-color": "var(--color-border)",
343
- "border-bottom-width": "1px",
344
- "border-style": "solid",
345
- },
346
427
  question: {
347
- "font-size": "xl",
348
- "font-weight": 600,
349
- color: "black",
350
- tablet: {
351
- "text-align": "left",
428
+ heading: {
429
+ level: "4",
430
+ },
431
+ selectedVariants: {
432
+ Heading_Level: "H5",
352
433
  },
353
434
  },
354
- content: {
355
- "padding-top": "none",
356
- "padding-bottom": "lg",
357
- },
358
- trigger: {
359
- width: "100%",
360
- display: "flex",
361
- "align-items": "center",
362
- "justify-content": "space-between",
363
- "padding-top": "base",
364
- "padding-bottom": "base",
365
- },
366
- iconQuestionWrapper: {
367
- display: "flex",
368
- "align-items": "center",
369
- "column-gap": "base",
370
- },
371
- features_list: {
372
- display: "flex",
373
- "flex-direction": "row",
374
- "column-gap": "lg",
375
- "margin-top": "base",
376
- "flex-wrap": "wrap",
377
- },
378
- features: [
379
- {
380
- wrapper: {
381
- display: "flex",
382
- "align-items": "center",
383
- "column-gap": "xs",
384
- "background-color": "background-2",
385
- "padding-left": "sm",
386
- "padding-right": "sm",
387
- "padding-top": "2xs",
388
- "padding-bottom": "2xs",
389
- "border-radius": "md",
390
- },
435
+ features: Array(4)
436
+ .fill(0)
437
+ .map((v) => ({
391
438
  icon: {
392
- width: "16px",
393
- height: "16px",
439
+ selectedVariants: {},
394
440
  },
395
441
  label: {
396
- "font-size": "sm",
397
- color: "text-2",
442
+ selectedVariants: {
443
+ Typography_Variants: "Small",
444
+ },
398
445
  },
399
- },
400
- ],
446
+ })),
447
+ answer: {
448
+ selectedVariants: {},
449
+ },
401
450
  };
402
451
  }),
403
452
  },
404
- content: DEFAULT_CONTENT,
405
- config: {
406
- title: {
407
- heading: {
408
- level: 2,
409
- },
410
- selectedVariants: {
411
- Heading_Level: "H2",
412
- },
413
- },
414
- },
415
453
  },
416
454
  ],
417
455
  };
@@ -1,17 +1,17 @@
1
1
  import {
2
- type ILevoBlockBaseProps,
2
+ AccordionContent,
3
+ AccordionItem,
4
+ AccordionRoot,
5
+ AccordionTrigger,
6
+ Box,
7
+ Button,
8
+ Container,
3
9
  Heading,
4
10
  Icon,
11
+ type ILevoBlockBaseProps,
5
12
  Image,
6
- Typography,
7
- Container,
8
13
  Section,
9
- Box,
10
- AccordionRoot,
11
- AccordionItem,
12
- AccordionTrigger,
13
- AccordionContent,
14
- Button,
14
+ Typography,
15
15
  } from "@levo-so/studio";
16
16
 
17
17
  import type { IFaq1Content } from "./faq-1.schema";
@@ -23,6 +23,7 @@ const Faq1: React.FC<ILevoBlockBaseProps<IFaq1Content>> = ({ content }) => (
23
23
  <Box elementKey="text_container">
24
24
  <Typography elementKey="faq_label" />
25
25
  <Heading elementKey="title" />
26
+ <Typography elementKey="description" />
26
27
  </Box>
27
28
 
28
29
  <AccordionRoot
@@ -41,40 +42,37 @@ const Faq1: React.FC<ILevoBlockBaseProps<IFaq1Content>> = ({ content }) => (
41
42
  <AccordionTrigger elementKey={`faqs.${index}.trigger`}>
42
43
  <Box elementKey={`faqs.${index}.iconQuestionWrapper`}>
43
44
  <Icon elementKey={`faqs.${index}.triggerIcon`} />
44
- <Typography elementKey={`faqs.${index}.question`} />
45
+ <Heading elementKey={`faqs.${index}.question`} />
45
46
  </Box>
46
47
  </AccordionTrigger>
47
48
  <AccordionContent elementKey={`faqs.${index}.content`}>
48
49
  <Typography elementKey={`faqs.${index}.answer`} />
49
- <Box elementKey={`faqs.${index}.features`}>
50
- {(item.features ?? []).map(
51
- (feature: any, featureIndex: number) => (
52
- <Box
53
- key={featureIndex}
54
- elementKey={`faqs.${index}.features.${featureIndex}.wrapper`}
55
- >
56
- <Icon
57
- elementKey={`faqs.${index}.features.${featureIndex}.icon`}
58
- />
59
- <Typography
60
- elementKey={`faqs.${index}.features.${featureIndex}.label`}
61
- />
62
- </Box>
63
- ),
64
- )}
50
+ <Box elementKey={`faqs.${index}.features_levoGroup`}>
51
+ {(item.features ?? []).map((feature: any, featureIndex: number) => (
52
+ <Box
53
+ key={featureIndex}
54
+ elementKey={`faqs.${index}.features.${featureIndex}.wrapper`}
55
+ >
56
+ <Icon elementKey={`faqs.${index}.features.${featureIndex}.icon`} />
57
+ <Typography elementKey={`faqs.${index}.features.${featureIndex}.label`} />
58
+ </Box>
59
+ ))}
65
60
  </Box>
66
61
  </AccordionContent>
67
62
  </AccordionItem>
68
63
  ))}
69
64
  </AccordionRoot>
70
- <Button elementKey="cta" />
65
+ <Box elementKey="ctas_levoGroup" data-levo_group>
66
+ {(content?.ctas ?? []).map((_: any, index: number) => (
67
+ <Button
68
+ key={`ctas.${index}.cta`}
69
+ elementKey={`ctas.${index}.cta`}
70
+ data-levo_group_item
71
+ />
72
+ ))}
73
+ </Box>
71
74
  </Box>
72
- <Image
73
- elementKey="faq_image"
74
- width={356}
75
- height={479}
76
- alt="Lawyer consulting with client"
77
- />
75
+ <Image elementKey="faq_image" width={356} height={479} alt="Lawyer consulting with client" />
78
76
  </Container>
79
77
  </Section>
80
78
  );