@levo-so/blocks 0.1.2 → 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 (115) hide show
  1. package/package.json +2 -2
  2. package/src/blocks/about-us/about-us-1.schema.ts +26 -12
  3. package/src/blocks/about-us/about-us-2.schema.ts +269 -0
  4. package/src/blocks/about-us/about-us-2.tsx +47 -0
  5. package/src/blocks/blogs/blog-listing-1.schema.ts +64 -10
  6. package/src/blocks/blogs/blog-listing-1.tsx +79 -56
  7. package/src/blocks/blogs/blog-listing-2.schema.ts +3141 -31
  8. package/src/blocks/blogs/blog-listing-2.tsx +16 -11
  9. package/src/blocks/blogs/blog-listing-3.schema.ts +2476 -0
  10. package/src/blocks/blogs/blog-listing-3.tsx +84 -0
  11. package/src/blocks/blogs/blog-post-1.schema.ts +17 -9
  12. package/src/blocks/blogs/blog-post-2.schema.ts +13 -56
  13. package/src/blocks/blogs/blog-post-3.schema.ts +284 -0
  14. package/src/blocks/blogs/blog-post-3.tsx +58 -0
  15. package/src/blocks/cards/cards-10.schema.ts +579 -0
  16. package/src/blocks/cards/cards-10.tsx +2 -0
  17. package/src/blocks/cards/cards-11.schema.ts +514 -36
  18. package/src/blocks/cards/cards-13.schema.ts +615 -0
  19. package/src/blocks/cards/cards-13.tsx +67 -0
  20. package/src/blocks/cards/cards-2.schema.ts +14 -17
  21. package/src/blocks/cards/cards-3.schema.ts +15 -25
  22. package/src/blocks/cards/cards-4.schema.ts +22 -44
  23. package/src/blocks/cards/cards-4.tsx +39 -39
  24. package/src/blocks/cards/cards-5.schema.ts +15 -34
  25. package/src/blocks/cards/cards-6.schema.ts +1500 -0
  26. package/src/blocks/cards/cards-6.tsx +11 -7
  27. package/src/blocks/cards/cards-7.schema.ts +1772 -27
  28. package/src/blocks/cards/cards-7.tsx +32 -0
  29. package/src/blocks/cards/cards-8.schema.ts +9 -9
  30. package/src/blocks/contact-us/contact-us-1.schema.ts +13 -6
  31. package/src/blocks/contact-us/contact-us-2.schema.ts +43 -43
  32. package/src/blocks/content/content-1.schema.ts +45 -67
  33. package/src/blocks/content/content-2.schema.ts +14 -11
  34. package/src/blocks/content/content-3.schema.ts +17 -115
  35. package/src/blocks/content/content-3.tsx +1 -0
  36. package/src/blocks/content/content-5.tsx +1 -0
  37. package/src/blocks/content/content-6.tsx +1 -0
  38. package/src/blocks/content/content-7.schema.ts +723 -0
  39. package/src/blocks/content/content-7.tsx +53 -0
  40. package/src/blocks/cta/cta-1.schema.ts +18 -26
  41. package/src/blocks/cta/cta-3.schema.ts +60 -0
  42. package/src/blocks/event/event-details.schema.ts +30 -35
  43. package/src/blocks/event/event-details.tsx +74 -79
  44. package/src/blocks/event/event-listing-2.schema.ts +85 -26
  45. package/src/blocks/event/event-listing-2.tsx +76 -52
  46. package/src/blocks/event/event-listing-3.schema.ts +58 -42
  47. package/src/blocks/event/event-listing-3.tsx +4 -9
  48. package/src/blocks/event/event-listing-4.schema.ts +3528 -0
  49. package/src/blocks/event/event-listing-4.tsx +97 -0
  50. package/src/blocks/event/event-listing.schema.ts +81 -86
  51. package/src/blocks/event/event-listing.tsx +1 -3
  52. package/src/blocks/faq/faq-1.schema.ts +13 -10
  53. package/src/blocks/faq/faq-2.schema.ts +12 -10
  54. package/src/blocks/features/features-1/variants/default.ts +12 -3
  55. package/src/blocks/features/features-2.schema.ts +192 -59
  56. package/src/blocks/features/features-3.schema.ts +11 -25
  57. package/src/blocks/features/features-4.schema.ts +20 -35
  58. package/src/blocks/features/features-5.schema.ts +18 -37
  59. package/src/blocks/footer/footer-1.schema.ts +28 -5
  60. package/src/blocks/footer/footer-2.schema.ts +18 -3
  61. package/src/blocks/footer/footer-3.schema.ts +85 -160
  62. package/src/blocks/footer/footer-3.tsx +1 -2
  63. package/src/blocks/footer/footer-4.schema.ts +10 -5
  64. package/src/blocks/footer/footer-4.tsx +1 -1
  65. package/src/blocks/footer/footer-5.schema.ts +10 -0
  66. package/src/blocks/footer/footer-5.tsx +11 -3
  67. package/src/blocks/footer/footer-6.schema.ts +730 -0
  68. package/src/blocks/footer/footer-6.tsx +100 -0
  69. package/src/blocks/hero/hero-1.schema.ts +165 -185
  70. package/src/blocks/hero/hero-10.schema.ts +175 -0
  71. package/src/blocks/hero/hero-10.tsx +35 -0
  72. package/src/blocks/hero/hero-2.schema.ts +60 -104
  73. package/src/blocks/hero/hero-2.tsx +11 -3
  74. package/src/blocks/hero/hero-3.schema.ts +68 -64
  75. package/src/blocks/hero/hero-4.schema.ts +148 -48
  76. package/src/blocks/hero/hero-5.schema.ts +29 -23
  77. package/src/blocks/hero/hero-6.schema.ts +28 -66
  78. package/src/blocks/hero/hero-7.schema.ts +34 -37
  79. package/src/blocks/hero/hero-8.schema.ts +5 -1
  80. package/src/blocks/index.ts +11 -0
  81. package/src/blocks/logos/logos-1.schema.ts +10 -4
  82. package/src/blocks/navbar/navbar-1.schema.ts +3 -5
  83. package/src/blocks/navbar/navbar-1.tsx +5 -19
  84. package/src/blocks/navbar/navbar-2.schema.ts +2 -4
  85. package/src/blocks/navbar/navbar-2.tsx +4 -18
  86. package/src/blocks/navbar/navbar-3.schema.ts +6834 -0
  87. package/src/blocks/navbar/navbar-3.tsx +551 -0
  88. package/src/blocks/pricing/pricing-1.schema.ts +23 -37
  89. package/src/blocks/products/products-listing-1.schema.ts +73 -76
  90. package/src/blocks/profile/profile-1.schema.ts +399 -0
  91. package/src/blocks/profile/profile-1.tsx +64 -0
  92. package/src/blocks/stats/stats-1.schema.ts +34 -3
  93. package/src/blocks/stats/variants/default.ts +0 -1
  94. package/src/blocks/stats/variants/hero.ts +2 -13
  95. package/src/blocks/team/team-1.schema.ts +50 -22
  96. package/src/blocks/team/team-1.tsx +9 -3
  97. package/src/blocks/team/team-2.schema.ts +96 -167
  98. package/src/blocks/team/team-3.schema.ts +32 -49
  99. package/src/blocks/team/team-4.schema.ts +551 -0
  100. package/src/blocks/team/team-4.tsx +59 -0
  101. package/src/blocks/termsAndPrivacy/terms-and-conditions-1.schema.ts +10 -20
  102. package/src/blocks/testimonial/testimonial-1.schema.ts +14 -8
  103. package/src/blocks/testimonial/testimonial-2.schema.ts +2 -2
  104. package/src/blocks/testimonial/testimonial-3.schema.ts +12 -18
  105. package/src/blocks/testimonial/testimonial-4.schema.ts +131 -126
  106. package/src/blocks/testimonial/testimonial-5/variants/default.ts +510 -0
  107. package/src/blocks/testimonial/testimonial-5/variants/index.ts +4 -0
  108. package/src/blocks/testimonial/testimonial-5/variants/testimonialWithLogo.ts +887 -0
  109. package/src/blocks/testimonial/testimonial-5/variants/testimonialWithRatings.ts +923 -0
  110. package/src/blocks/testimonial/testimonial-5.schema.ts +62 -246
  111. package/src/blocks/testimonial/testimonial-5.tsx +32 -8
  112. package/src/blocks/testimonial/testimonial-6.schema.ts +986 -23
  113. package/src/blocks/testimonial/testimonial-6.tsx +107 -57
  114. package/src/schemas/blocks.ts +22 -0
  115. package/src/schemas/categories.ts +6 -0
@@ -26,23 +26,24 @@ const DEFAULT_CONTENT = {
26
26
  id: "w9fEtJuVtBFgU",
27
27
  filename: "image.png",
28
28
  kind: "image",
29
- location: "https://space.levo.in.net/W6OEVMW8/image-6HgF6xxhyiHBm.png",
29
+ location:
30
+ "https://static.levostg.online/W6OEVMW8/image-6HgF6xxhyiHBm.png",
30
31
  srcset: {
31
32
  "1080w":
32
- "https://space.levo.in.net/W6OEVMW8/image-6HgF6xxhyiHBm-1080w.webp",
33
+ "https://static.levostg.online/W6OEVMW8/image-6HgF6xxhyiHBm-1080w.webp",
33
34
  "1200w":
34
- "https://space.levo.in.net/W6OEVMW8/image-6HgF6xxhyiHBm-1200w.webp",
35
+ "https://static.levostg.online/W6OEVMW8/image-6HgF6xxhyiHBm-1200w.webp",
35
36
  "1920w":
36
- "https://space.levo.in.net/W6OEVMW8/image-6HgF6xxhyiHBm-1920w.webp",
37
+ "https://static.levostg.online/W6OEVMW8/image-6HgF6xxhyiHBm-1920w.webp",
37
38
  "320w":
38
- "https://space.levo.in.net/W6OEVMW8/image-6HgF6xxhyiHBm-320w.webp",
39
+ "https://static.levostg.online/W6OEVMW8/image-6HgF6xxhyiHBm-320w.webp",
39
40
  "640w":
40
- "https://space.levo.in.net/W6OEVMW8/image-6HgF6xxhyiHBm-640w.webp",
41
+ "https://static.levostg.online/W6OEVMW8/image-6HgF6xxhyiHBm-640w.webp",
41
42
  "750w":
42
- "https://space.levo.in.net/W6OEVMW8/image-6HgF6xxhyiHBm-750w.webp",
43
+ "https://static.levostg.online/W6OEVMW8/image-6HgF6xxhyiHBm-750w.webp",
43
44
  "828w":
44
- "https://space.levo.in.net/W6OEVMW8/image-6HgF6xxhyiHBm-828w.webp",
45
- path: "https://space.levo.in.net/W6OEVMW8/image-6HgF6xxhyiHBm-750w.webp 750w, https://space.levo.in.net/W6OEVMW8/image-6HgF6xxhyiHBm-828w.webp 828w, https://space.levo.in.net/W6OEVMW8/image-6HgF6xxhyiHBm-1080w.webp 1080w, https://space.levo.in.net/W6OEVMW8/image-6HgF6xxhyiHBm-1200w.webp 1200w, https://space.levo.in.net/W6OEVMW8/image-6HgF6xxhyiHBm-1920w.webp 1920w, https://space.levo.in.net/W6OEVMW8/image-6HgF6xxhyiHBm-320w.webp 320w, https://space.levo.in.net/W6OEVMW8/image-6HgF6xxhyiHBm-640w.webp 640w",
45
+ "https://static.levostg.online/W6OEVMW8/image-6HgF6xxhyiHBm-828w.webp",
46
+ path: "https://static.levostg.online/W6OEVMW8/image-6HgF6xxhyiHBm-750w.webp 750w, https://static.levostg.online/W6OEVMW8/image-6HgF6xxhyiHBm-828w.webp 828w, https://static.levostg.online/W6OEVMW8/image-6HgF6xxhyiHBm-1080w.webp 1080w, https://static.levostg.online/W6OEVMW8/image-6HgF6xxhyiHBm-1200w.webp 1200w, https://static.levostg.online/W6OEVMW8/image-6HgF6xxhyiHBm-1920w.webp 1920w, https://static.levostg.online/W6OEVMW8/image-6HgF6xxhyiHBm-320w.webp 320w, https://static.levostg.online/W6OEVMW8/image-6HgF6xxhyiHBm-640w.webp 640w",
46
47
  },
47
48
  mimetype: "image/png",
48
49
  },
@@ -117,6 +118,10 @@ const DEFAULT_CONTENT = {
117
118
  ],
118
119
  },
119
120
  ],
121
+ paginationWrapper: null,
122
+ paginationLeftButton: "Previous",
123
+ paginationText: "",
124
+ paginationRightButton: "Next",
120
125
  };
121
126
 
122
127
  export type IEventListing2Content = typeof DEFAULT_CONTENT;
@@ -298,6 +303,59 @@ export const EventListing2: IBlock = {
298
303
  max_items: 6,
299
304
  },
300
305
  },
306
+ {
307
+ key: "paginationWrapper",
308
+ label: "Pagination Wrapper",
309
+ field_interface: "BoxWidget",
310
+ hint: {
311
+ prompt_description:
312
+ "Container holding pagination controls (buttons and info) at the bottom of the event grid. Provides structure and alignment for pagination elements. No content generation required.",
313
+ },
314
+ },
315
+ {
316
+ key: "paginationLeftButton",
317
+ label: "Pagination Left Button",
318
+ field_interface: "ButtonWidget",
319
+ hint: {
320
+ prompt_description:
321
+ "Button for navigating to the previous page of events. Label should be clear and descriptive, such as 'Previous'.",
322
+ min_characters: 4,
323
+ max_characters: 12,
324
+ },
325
+ },
326
+ {
327
+ key: "paginationInfo",
328
+ label: "Pagination Info",
329
+ field_interface: "TypographyWidget",
330
+ hint: {
331
+ prompt_description:
332
+ "Displays the current events page and total pages, e.g., '1/10'. Keep format concise and clear.",
333
+ min_characters: 3,
334
+ max_characters: 8,
335
+ },
336
+ },
337
+ {
338
+ key: "paginationText",
339
+ label: "Pagination Text",
340
+ field_interface: "TypographyWidget",
341
+ hint: {
342
+ prompt_description:
343
+ "Displays the current events page and total pages, e.g., '1/10'. Keep format concise and clear.",
344
+ min_characters: 3,
345
+ max_characters: 8,
346
+ },
347
+ },
348
+ {
349
+ key: "paginationRightButton",
350
+ label: "Pagination Right Button",
351
+ field_interface: "ButtonWidget",
352
+ hint: {
353
+ prompt_description:
354
+ "Button for navigating to the next page of events. Label should be clear and descriptive, such as 'Next'.",
355
+ min_characters: 4,
356
+ max_characters: 12,
357
+ },
358
+ },
301
359
  ],
302
360
  layouts: [
303
361
  {
@@ -346,12 +404,7 @@ export const EventListing2: IBlock = {
346
404
  },
347
405
  },
348
406
  title: {
349
- "font-size": "4xl",
350
- "font-weight": "700",
351
407
  color: "text-1",
352
- mobile: {
353
- "font-size": "3xl",
354
- },
355
408
  },
356
409
  description: {
357
410
  "font-size": "lg",
@@ -359,17 +412,7 @@ export const EventListing2: IBlock = {
359
412
  "max-width": "600px",
360
413
  "line-height": "1.6",
361
414
  },
362
- "cta-button": {
363
- "background-color": "background-1",
364
- color: "text-1",
365
- "padding-top": "base",
366
- "padding-bottom": "base",
367
- "padding-left": "xl",
368
- "padding-right": "xl",
369
- "border-radius": "lg",
370
- "font-weight": "500",
371
- "border-color": "border",
372
- },
415
+
373
416
  events_levoGroup: {
374
417
  display: "grid",
375
418
  "grid-template-columns": "repeat(2, minmax(0, 1fr))",
@@ -383,6 +426,13 @@ export const EventListing2: IBlock = {
383
426
  },
384
427
  filter: "none",
385
428
  },
429
+ paginationWrapper: {
430
+ width: "100%",
431
+ display: "flex",
432
+ "justify-content": "center",
433
+ "column-gap": "lg",
434
+ "align-items": "center",
435
+ },
386
436
  events: Array(2)
387
437
  ?.fill(0)
388
438
  .map((v) => {
@@ -490,7 +540,16 @@ export const EventListing2: IBlock = {
490
540
  }),
491
541
  },
492
542
  content: DEFAULT_CONTENT,
493
- config: {},
543
+ config: {
544
+ title: {
545
+ selectedVariants: {
546
+ Heading_Level: "H2",
547
+ },
548
+ heading: {
549
+ level: 2,
550
+ },
551
+ },
552
+ },
494
553
  },
495
554
  ],
496
555
  };
@@ -1,70 +1,94 @@
1
1
  import type { ILevoBlockBaseProps } from "@levo-so/studio";
2
2
  import {
3
- Section,
3
+ Box,
4
+ Button,
4
5
  Container,
5
- Typography,
6
6
  Heading,
7
- Box,
8
7
  Icon,
9
8
  Image,
10
- Button,
9
+ Section,
10
+ Typography,
11
+ useContentEngine,
11
12
  } from "@levo-so/studio";
12
13
 
13
14
  import type { IEventListing2Content } from "./event-listing-2.schema";
14
15
 
15
- const EventListing2: React.FC<ILevoBlockBaseProps<IEventListing2Content>> = ({
16
- content,
17
- }) => (
18
- <Section elementKey="layout">
19
- <Container elementKey="container">
20
- <Box elementKey="header-section">
21
- <Box elementKey="header-content">
22
- <Heading elementKey="title" />
23
- <Typography elementKey="description" />
16
+ const EventListing2: React.FC<
17
+ ILevoBlockBaseProps<IEventListing2Content>
18
+ > = ({}) => {
19
+ const { data, query, setQuery, meta } = useContentEngine("events");
20
+
21
+ const handleNext = () => setQuery({ page: (query?.page || 0) + 1 });
22
+ const handlePrevious = () => setQuery({ page: (query?.page || 0) - 1 });
23
+
24
+ return (
25
+ <Section elementKey="layout">
26
+ <Container elementKey="container">
27
+ <Box elementKey="header-section">
28
+ <Box elementKey="header-content">
29
+ <Heading elementKey="title" />
30
+ <Typography elementKey="description" />
31
+ </Box>
32
+ <Button elementKey="cta-button" />
24
33
  </Box>
25
- <Button elementKey="cta-button" />
26
- </Box>
27
34
 
28
- <Box elementKey="events_levoGroup" data-levo_group>
29
- {(content.events ?? []).map((_: any, index: number) => (
30
- <Box
31
- key={`event-${index}`}
32
- data-levo_group_item
33
- elementKey={`events.${index}.eventWrapper`}
34
- >
35
- <Image elementKey={`events.${index}.image`} alt="Event image" />
35
+ <Box elementKey="events_levoGroup" data-levo_group>
36
+ {(data ?? []).map((_: any, index: number) => (
37
+ <Box
38
+ key={`event-${index}`}
39
+ data-levo_group_item
40
+ elementKey={`events.${index}.eventWrapper`}
41
+ >
42
+ <Image elementKey={`events.${index}.image`} alt="Event image" />
36
43
 
37
- <Box elementKey={`events.${index}.content-wrapper`}>
38
- <Heading elementKey={`events.${index}.title`} />
39
- <Typography elementKey={`events.${index}.description`} />
44
+ <Box elementKey={`events.${index}.content-wrapper`}>
45
+ <Heading elementKey={`events.${index}.title`} />
46
+ <Typography elementKey={`events.${index}.description`} />
40
47
 
41
- <Box
42
- elementKey={`events.${index}.details_levoGroup`}
43
- data-levo_group
44
- >
45
- {(content.events?.[index]?.details ?? []).map(
46
- (_: any, detailIndex: number) => (
47
- <Box
48
- key={`detail-${detailIndex}`}
49
- data-levo_group_item
50
- elementKey={`events.${index}.details.${detailIndex}.detailWrapper`}
51
- >
52
- <Icon
53
- elementKey={`events.${index}.details.${detailIndex}.icon`}
54
- />
55
- <Typography
56
- elementKey={`events.${index}.details.${detailIndex}.text`}
57
- />
58
- </Box>
59
- ),
60
- )}
48
+ <Box
49
+ elementKey={`events.${index}.details_levoGroup`}
50
+ data-levo_group
51
+ >
52
+ {(data?.[index]?.details ?? []).map(
53
+ (_: any, detailIndex: number) => (
54
+ <Box
55
+ key={`detail-${detailIndex}`}
56
+ data-levo_group_item
57
+ elementKey={`events.${index}.details.${detailIndex}.detailWrapper`}
58
+ >
59
+ <Icon
60
+ elementKey={`events.${index}.details.${detailIndex}.icon`}
61
+ />
62
+ <Typography
63
+ elementKey={`events.${index}.details.${detailIndex}.text`}
64
+ />
65
+ </Box>
66
+ ),
67
+ )}
68
+ </Box>
61
69
  </Box>
62
70
  </Box>
63
- </Box>
64
- ))}
65
- </Box>
66
- </Container>
67
- </Section>
68
- );
71
+ ))}
72
+ </Box>
73
+ <Box elementKey="paginationWrapper">
74
+ <Button
75
+ elementKey="paginationLeftButton"
76
+ disabled={query?.page === 1}
77
+ onClick={handlePrevious}
78
+ />
79
+
80
+ <Typography elementKey="paginationText">
81
+ {`${query?.page || 0}/${meta?.pages || 0}`}
82
+ </Typography>
83
+ <Button
84
+ elementKey="paginationRightButton"
85
+ onClick={handleNext}
86
+ disabled={query?.page === meta?.pages}
87
+ />
88
+ </Box>
89
+ </Container>
90
+ </Section>
91
+ );
92
+ };
69
93
 
70
94
  export default EventListing2;
@@ -34,20 +34,6 @@ const DUMMY_ICON = {
34
34
  },
35
35
  };
36
36
 
37
- const ARROW_LEFT_IMAGE = {
38
- id: "9GFRzqRPswl8h",
39
- kind: "image",
40
- location: "https://static.levocdn.com/WLZ1TXTD/arrow-left-PzNnrMeYWUyNg.svg",
41
- srcset: {},
42
- };
43
-
44
- const ARROW_RIGHT_IMAGE = {
45
- id: "9GFRzqRPswl8h",
46
- kind: "image",
47
- location: "https://static.levocdn.com/WLZ1TXTD/arrow-right-tryvMJ0Z2DosG.svg",
48
- srcset: {},
49
- };
50
-
51
37
  const DEFAULT_CONTENT = {
52
38
  layout: null,
53
39
  container: null,
@@ -114,11 +100,9 @@ const DEFAULT_CONTENT = {
114
100
  },
115
101
  ],
116
102
  paginationWrapper: null,
117
- paginationLeftButton: "",
118
- paginationLeftIcon: ARROW_LEFT_IMAGE,
103
+ paginationLeftButton: "Previous",
119
104
  paginationText: "",
120
- paginationRightButton: "",
121
- paginationRightIcon: ARROW_RIGHT_IMAGE,
105
+ paginationRightButton: "Next",
122
106
  };
123
107
 
124
108
  export type IEventListing3 = typeof DEFAULT_CONTENT;
@@ -328,31 +312,54 @@ export const EventListing3: IBlock = {
328
312
  key: "paginationWrapper",
329
313
  label: "Pagination Wrapper",
330
314
  field_interface: "BoxWidget",
315
+ hint: {
316
+ prompt_description:
317
+ "Container holding pagination controls (buttons and info) at the bottom of the event grid. Provides structure and alignment for pagination elements. No content generation required.",
318
+ },
331
319
  },
332
320
  {
333
321
  key: "paginationLeftButton",
334
- label: "Previous Button",
322
+ label: "Pagination Left Button",
335
323
  field_interface: "ButtonWidget",
324
+ hint: {
325
+ prompt_description:
326
+ "Button for navigating to the previous page of events. Label should be clear and descriptive, such as 'Previous'.",
327
+ min_characters: 4,
328
+ max_characters: 12,
329
+ },
330
+ },
331
+ {
332
+ key: "paginationInfo",
333
+ label: "Pagination Info",
334
+ field_interface: "TypographyWidget",
335
+ hint: {
336
+ prompt_description:
337
+ "Displays the current events page and total pages, e.g., '1/10'. Keep format concise and clear.",
338
+ min_characters: 3,
339
+ max_characters: 8,
340
+ },
336
341
  },
337
342
  {
338
343
  key: "paginationText",
339
344
  label: "Pagination Text",
340
345
  field_interface: "TypographyWidget",
346
+ hint: {
347
+ prompt_description:
348
+ "Displays the current events page and total pages, e.g., '1/10'. Keep format concise and clear.",
349
+ min_characters: 3,
350
+ max_characters: 8,
351
+ },
341
352
  },
342
353
  {
343
354
  key: "paginationRightButton",
344
- label: "Next Button",
355
+ label: "Pagination Right Button",
345
356
  field_interface: "ButtonWidget",
346
- },
347
- {
348
- key: "paginationLeftIcon",
349
- label: "Previous Icon",
350
- field_interface: "ImageWidget",
351
- },
352
- {
353
- key: "paginationRightIcon",
354
- label: "Next Icon",
355
- field_interface: "ImageWidget",
357
+ hint: {
358
+ prompt_description:
359
+ "Button for navigating to the next page of events. Label should be clear and descriptive, such as 'Next'.",
360
+ min_characters: 4,
361
+ max_characters: 12,
362
+ },
356
363
  },
357
364
  ],
358
365
  layouts: [
@@ -399,19 +406,13 @@ export const EventListing3: IBlock = {
399
406
  },
400
407
  },
401
408
  title: {
402
- "font-size": "5xl",
403
- "font-weight": 600,
404
- color: "var(--color-text-1)",
409
+ color: "text-1",
405
410
  margin: "0",
406
- mobile: {
407
- "font-size": "3xl",
408
- },
409
411
  },
410
412
  "cta-button": {
411
413
  "background-color": "transparent",
412
- color: "var(--color-brand)",
413
- "font-size": "lg",
414
- "font-weight": 500,
414
+ color: "color-brand",
415
+
415
416
  "text-decoration": "none",
416
417
  border: "none",
417
418
  cursor: "pointer",
@@ -437,6 +438,7 @@ export const EventListing3: IBlock = {
437
438
  },
438
439
  filter: "none",
439
440
  },
441
+
440
442
  events: Array(3)
441
443
  .fill(0)
442
444
  ?.map((v) => {
@@ -576,8 +578,7 @@ export const EventListing3: IBlock = {
576
578
  cursor: "pointer",
577
579
  },
578
580
  paginationText: {
579
- "font-size": "base",
580
- color: "var(--color-text-1)",
581
+ color: "text-1",
581
582
  },
582
583
  paginationRightButton: {
583
584
  "background-color": "transparent",
@@ -599,7 +600,22 @@ export const EventListing3: IBlock = {
599
600
  },
600
601
  },
601
602
  content: DEFAULT_CONTENT,
602
- config: {},
603
+ config: {
604
+ title: {
605
+ selectedVariants: {
606
+ Heading_Level: "H2",
607
+ },
608
+ heading: {
609
+ level: 2,
610
+ },
611
+ },
612
+
613
+ "cta-button": {
614
+ selectedVariants: {
615
+ Button_Variants: "Secondary",
616
+ },
617
+ },
618
+ },
603
619
  },
604
620
  ],
605
621
  };
@@ -71,21 +71,16 @@ const EventListing3: React.FC<ILevoBlockBaseProps<IEventListing3>> = () => {
71
71
  elementKey="paginationLeftButton"
72
72
  disabled={query?.page === 1}
73
73
  onClick={handlePrevious}
74
- >
75
- <Icon elementKey="paginationLeftIcon" />
76
- </Button>
74
+ />
75
+
77
76
  <Typography elementKey="paginationText">
78
- {query?.page}
79
- {"/"}
80
- {meta?.pages}
77
+ {`${query?.page || 0}/${meta?.pages || 0}`}
81
78
  </Typography>
82
79
  <Button
83
80
  elementKey="paginationRightButton"
84
81
  onClick={handleNext}
85
82
  disabled={query?.page === meta?.pages}
86
- >
87
- <Icon elementKey="paginationRightIcon" />
88
- </Button>
83
+ />
89
84
  </Box>
90
85
  </Container>
91
86
  </Section>