@levo-so/blocks 0.1.2 → 0.1.54

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 +4 -4
  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
@@ -8,72 +8,95 @@ import {
8
8
  Section,
9
9
  Box,
10
10
  Icon,
11
+ useContentEngine,
11
12
  } from "@levo-so/studio";
13
+ import dayjs from "dayjs";
12
14
 
13
15
  import type { IBlogListing1Content } from "./blog-listing-1.schema";
14
- import dayjs from "dayjs";
15
16
 
16
17
  const BlogListing1: React.FC<ILevoBlockBaseProps<IBlogListing1Content>> = ({
17
18
  content,
18
- }) => (
19
- <Section elementKey="layout">
20
- <Container elementKey="container">
21
- <Box elementKey="text_wrapper">
22
- <Heading elementKey="title" />
23
- <Typography elementKey="description" />
24
- </Box>
25
- <Box elementKey="blogs_levoGroup" data-levo_group>
26
- {content?.blogs &&
27
- Array.isArray(content?.blogs) &&
28
- content?.blogs?.map((_, index) => {
29
- return (
30
- <Box
31
- data-levo_group_item
32
- key={index}
33
- elementKey={`blogs.${index}.blog`}
34
- >
35
- <Image
36
- alt="cover_image"
37
- elementKey={`blogs.${index}.cover_image`}
38
- width={256}
39
- height={184}
40
- />
41
- <Box elementKey={`blogs.${index}.blog_content_wrapper`}>
42
- <Box elementKey={`blogs.${index}.text_content_wrapper`}>
43
- <Box elementKey={`blogs.${index}.timestamp_wrapper`}>
44
- <Icon elementKey={`blogs.${index}.timestamp_icon`} />
45
- <Typography elementKey={`blogs.${index}.timestamp`}>
46
- {content?.blogs?.[index]?.timestamp &&
47
- dayjs(content?.blogs?.[index]?.timestamp).isValid()
48
- ? dayjs(content?.blogs?.[index]?.timestamp).format(
49
- "DD MMM, YYYY",
50
- )
51
- : " "}
52
- </Typography>
53
- </Box>
19
+ }) => {
20
+ const { data, query, setQuery, meta } = useContentEngine("blogs");
54
21
 
55
- <Box elementKey={`blogs.${index}.blog_info_wrapper`}>
56
- <Heading elementKey={`blogs.${index}.title`} />
57
- <Typography elementKey={`blogs.${index}.description`} />
58
- </Box>
59
- <Box elementKey={`blogs.${index}.author_wrapper`}>
60
- <Icon elementKey={`blogs.${index}.author_image`} />
61
- <Box elementKey={`blogs.${index}.author_info_wrapper`}>
62
- <Heading elementKey={`blogs.${index}.author_name`} />
63
- <Typography
64
- elementKey={`blogs.${index}.author_description`}
65
- />
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>
66
74
  </Box>
67
75
  </Box>
76
+ <Button elementKey={`blogs.${index}.cta`} />
68
77
  </Box>
69
- <Button elementKey={`blogs.${index}.cta`} />
70
78
  </Box>
71
- </Box>
72
- );
73
- })}
74
- </Box>
75
- </Container>
76
- </Section>
77
- );
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
+ };
78
101
 
79
102
  export default BlogListing1;