@levo-so/blocks 0.1.54 → 0.1.59

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 (117) hide show
  1. package/package.json +2 -2
  2. package/src/blocks/about-us/about-us-1.schema.ts +14 -0
  3. package/src/blocks/about-us/about-us-1.tsx +4 -2
  4. package/src/blocks/about-us/about-us-2.schema.ts +48 -0
  5. package/src/blocks/about-us/about-us-2.tsx +6 -0
  6. package/src/blocks/blogs/blog-listing-1.schema.ts +10 -0
  7. package/src/blocks/blogs/blog-listing-2.schema.ts +42 -162
  8. package/src/blocks/blogs/blog-listing-2.tsx +7 -0
  9. package/src/blocks/blogs/blog-listing-3.schema.ts +9 -0
  10. package/src/blocks/blogs/blog-post-1.schema.ts +7 -1
  11. package/src/blocks/blogs/blog-post-1.tsx +1 -1
  12. package/src/blocks/blogs/blog-post-2.schema.ts +464 -28
  13. package/src/blocks/blogs/blog-post-2.tsx +6 -13
  14. package/src/blocks/blogs/blog-post-3.schema.ts +42 -0
  15. package/src/blocks/blogs/blog-post-3.tsx +4 -1
  16. package/src/blocks/calendar/calendar-1.schema.ts +537 -0
  17. package/src/blocks/calendar/calendar-1.tsx +145 -0
  18. package/src/blocks/cards/cards-10.schema.ts +52 -4
  19. package/src/blocks/cards/cards-10.tsx +13 -1
  20. package/src/blocks/cards/cards-14.schema.ts +532 -0
  21. package/src/blocks/cards/cards-14.tsx +54 -0
  22. package/src/blocks/cards/cards-15.schema.ts +277 -0
  23. package/src/blocks/cards/cards-15.tsx +40 -0
  24. package/src/blocks/cards/cards-6.schema.ts +46 -0
  25. package/src/blocks/cards/cards-6.tsx +27 -1
  26. package/src/blocks/cards/cards-7.tsx +2 -0
  27. package/src/blocks/carousel/carousel-2.schema.ts +1128 -0
  28. package/src/blocks/carousel/carousel-2.tsx +159 -0
  29. package/src/blocks/content/content-5.schema.ts +112 -6
  30. package/src/blocks/content/content-5.tsx +19 -3
  31. package/src/blocks/content/content-6.schema.ts +16 -3
  32. package/src/blocks/content/content-6.tsx +1 -0
  33. package/src/blocks/content/content-8.schema.ts +125 -0
  34. package/src/blocks/content/content-8.tsx +27 -0
  35. package/src/blocks/content/content-9.schema.ts +2729 -0
  36. package/src/blocks/content/content-9.tsx +91 -0
  37. package/src/blocks/cta/cta-2.schema.ts +46 -4
  38. package/src/blocks/cta/cta-2.tsx +9 -1
  39. package/src/blocks/embed/embed-1.schema.ts +100 -0
  40. package/src/blocks/event/ClientOnly.tsx +27 -0
  41. package/src/blocks/event/event-details.tsx +10 -3
  42. package/src/blocks/event/event-listing-3.tsx +9 -2
  43. package/src/blocks/event/event-listing-4.tsx +11 -2
  44. package/src/blocks/event/event-listing.tsx +11 -4
  45. package/src/blocks/faq/faq-1.schema.ts +58 -1
  46. package/src/blocks/faq/faq-1.tsx +18 -1
  47. package/src/blocks/faq/faq-2.tsx +2 -1
  48. package/src/blocks/faq/faq-3.schema.ts +6 -1
  49. package/src/blocks/faq/faq-3.tsx +1 -0
  50. package/src/blocks/features/features-1/features-1.schema.ts +2 -0
  51. package/src/blocks/features/features-1/variants/index.ts +2 -0
  52. package/src/blocks/features/features-1/variants/stylized-cards-v3.ts +451 -0
  53. package/src/blocks/features/features-4.schema.ts +358 -20
  54. package/src/blocks/features/features-4.tsx +3 -1
  55. package/src/blocks/features/features-6.tsx +2 -0
  56. package/src/blocks/filter-listing/filter-listing-1.schema.ts +614 -0
  57. package/src/blocks/filter-listing/filter-listing-1.tsx +128 -0
  58. package/src/blocks/footer/footer-6.schema.ts +2 -2
  59. package/src/blocks/hero/hero-11.schema.ts +849 -0
  60. package/src/blocks/hero/hero-11.tsx +59 -0
  61. package/src/blocks/hero/hero-12.schema.ts +712 -0
  62. package/src/blocks/hero/hero-12.tsx +76 -0
  63. package/src/blocks/hero/hero-13.schema.ts +238 -0
  64. package/src/blocks/hero/hero-13.tsx +31 -0
  65. package/src/blocks/hero/hero-4.tsx +2 -0
  66. package/src/blocks/hero/hero-5.tsx +2 -0
  67. package/src/blocks/hero/hero-7.tsx +2 -1
  68. package/src/blocks/hero/hero-8.tsx +2 -0
  69. package/src/blocks/hero/hero-9.schema.ts +5 -0
  70. package/src/blocks/hero/hero-9.tsx +2 -0
  71. package/src/blocks/index.ts +27 -0
  72. package/src/blocks/navbar/navbar-1.schema.ts +6 -6
  73. package/src/blocks/navbar/navbar-1.tsx +6 -7
  74. package/src/blocks/navbar/navbar-2.schema.ts +9 -9
  75. package/src/blocks/navbar/navbar-2.tsx +7 -8
  76. package/src/blocks/navbar/navbar-3.schema.ts +9 -9
  77. package/src/blocks/navbar/navbar-3.tsx +139 -114
  78. package/src/blocks/polling/polling-1.schema.ts +134 -0
  79. package/src/blocks/polling/polling-1.tsx +466 -0
  80. package/src/blocks/products/products-listing-2.schema.ts +596 -0
  81. package/src/blocks/products/products-listing-2.tsx +56 -0
  82. package/src/blocks/products/products-listing-3.schema.ts +818 -0
  83. package/src/blocks/products/products-listing-3.tsx +125 -0
  84. package/src/blocks/profile/profile-2.schema.ts +505 -0
  85. package/src/blocks/profile/profile-2.tsx +64 -0
  86. package/src/blocks/profile/profile-3.schema.ts +867 -0
  87. package/src/blocks/profile/profile-3.tsx +98 -0
  88. package/src/blocks/services/service-1.schema.ts +1743 -0
  89. package/src/blocks/services/service-1.tsx +139 -0
  90. package/src/blocks/services/service-2.schema.ts +433 -0
  91. package/src/blocks/services/service-2.tsx +98 -0
  92. package/src/blocks/services/service-3.schema.ts +631 -0
  93. package/src/blocks/services/service-3.tsx +135 -0
  94. package/src/blocks/tabs/tab-1.schema.ts +831 -0
  95. package/src/blocks/tabs/tab-1.tsx +126 -0
  96. package/src/blocks/tabs/tab-2.schema.ts +767 -0
  97. package/src/blocks/tabs/tab-2.tsx +60 -0
  98. package/src/blocks/team/team-3.schema.ts +5 -1
  99. package/src/blocks/team/team-3.tsx +7 -0
  100. package/src/blocks/team/team-4.schema.ts +17 -13
  101. package/src/blocks/team/team-4.tsx +4 -1
  102. package/src/blocks/team/team-5.schema.ts +369 -0
  103. package/src/blocks/team/team-5.tsx +38 -0
  104. package/src/blocks/testimonial/testimonial-1.tsx +0 -1
  105. package/src/blocks/testimonial/testimonial-2.tsx +2 -1
  106. package/src/blocks/testimonial/testimonial-3.tsx +2 -0
  107. package/src/blocks/testimonial/testimonial-4.tsx +2 -1
  108. package/src/blocks/testimonial/testimonial-5.tsx +2 -0
  109. package/src/blocks/testimonial/testimonial-6.tsx +2 -1
  110. package/src/blocks/testimonial/testimonial-7.schema.ts +438 -0
  111. package/src/blocks/testimonial/testimonial-7.tsx +125 -0
  112. package/src/blocks/timeline/timeline-1.schema.ts +741 -0
  113. package/src/blocks/timeline/timeline-1.tsx +52 -0
  114. package/src/blocks/users/edit-profile.schema.ts +294 -0
  115. package/src/blocks/users/edit-profile.tsx +184 -0
  116. package/src/schemas/blocks.ts +64 -12
  117. package/src/schemas/categories.ts +36 -0
@@ -0,0 +1,135 @@
1
+ import {
2
+ Box,
3
+ Button,
4
+ Container,
5
+ Heading,
6
+ Icon,
7
+ Image,
8
+ Section,
9
+ Typography,
10
+ useBlockContext,
11
+ type ILevoBlockBaseProps,
12
+ } from "@levo-so/studio";
13
+ import React, { useState } from "react";
14
+
15
+ import type { IService3Content } from "./service-3.schema";
16
+
17
+ const Service3: React.FC<ILevoBlockBaseProps<IService3Content>> = ({
18
+ content,
19
+ config,
20
+ }) => {
21
+ const [zipcode, setZipcode] = useState("");
22
+ const { isBuilder } = useBlockContext();
23
+ return (
24
+ <Section elementKey="layout">
25
+ <Container elementKey="container">
26
+ <Box elementKey="breadcrumbs_levoGroup" data-levo_group>
27
+ {(content?.breadcrumbs ?? []).map((_: any, index: number) => (
28
+ <Box
29
+ key={`stat-${index}`}
30
+ data-levo_group_item
31
+ elementKey={`breadcrumbs.${index}.wrapper`}
32
+ >
33
+ <Typography elementKey={`breadcrumbs.${index}.label`} />
34
+ <Icon elementKey={`breadcrumbs.${index}.icon`} />
35
+ </Box>
36
+ ))}
37
+ </Box>
38
+ <Box elementKey="main_wrapper">
39
+ <Box elementKey="left_container">
40
+ <Image elementKey="profile_image" alt="Profile image" />
41
+ </Box>
42
+ <Box elementKey="right_container">
43
+ <Box elementKey="content_wrapper">
44
+ <Heading elementKey="title" />
45
+ <Box elementKey="statswrapper_levoGroup" data-levo_group>
46
+ <Box elementKey="stats_levoGroup" data-levo_group>
47
+ {(content?.stats ?? []).map((_, index: number) => (
48
+ <Box
49
+ key={`stat-${index}`}
50
+ data-levo_group_item
51
+ elementKey={`stats.${index}.stat_wrapper`}
52
+ >
53
+ <Icon elementKey={`stats.${index}.icon`} />
54
+ <Typography elementKey={`stats.${index}.label`} />
55
+ </Box>
56
+ ))}
57
+ </Box>
58
+ <Box elementKey="stats_2_levoGroup" data-levo_group>
59
+ {(content?.stats_2 ?? []).map((_: any, index: number) => (
60
+ <Box
61
+ key={`stat-${index}`}
62
+ data-levo_group_item
63
+ elementKey={`stats_2.${index}.stat_wrapper`}
64
+ >
65
+ <Icon elementKey={`stats_2.${index}.icon`} />
66
+ <Typography elementKey={`stats_2.${index}.label`} />
67
+ </Box>
68
+ ))}
69
+ </Box>
70
+ <Box elementKey="stats_3_levoGroup" data-levo_group>
71
+ {(content?.stats_3 ?? []).map((_: any, index: number) => (
72
+ <Box
73
+ key={`stat-${index}`}
74
+ data-levo_group_item
75
+ elementKey={`stats_3.${index}.stat_wrapper`}
76
+ >
77
+ <Icon elementKey={`stats_3.${index}.icon`} />
78
+ <Typography elementKey={`stats_3.${index}.label`} />
79
+ </Box>
80
+ ))}
81
+ </Box>
82
+ </Box>
83
+ <Box elementKey="price_container">
84
+ <Typography elementKey="actual_price" />
85
+ <Typography elementKey="discount_price" />
86
+ <Typography elementKey="off_percent" />
87
+ </Box>
88
+ </Box>
89
+ <Box elementKey="search_input_wrapper">
90
+ <input
91
+ name="search"
92
+ value={zipcode}
93
+ onChange={(e) => setZipcode(e.target.value)}
94
+ placeholder="Enter your Pin code"
95
+ style={{
96
+ background: "white",
97
+ borderRadius: "999px",
98
+ padding: "18px 20px 18px 20px",
99
+
100
+ border: "1px solid #E5E5E5",
101
+ }}
102
+ type="number"
103
+ min="6"
104
+ max="6"
105
+ />
106
+ <Button
107
+ elementKey="search_button"
108
+ onClick={() => {
109
+ if (
110
+ !isBuilder &&
111
+ zipcode &&
112
+ zipcode.length === 6 &&
113
+ config?.search_button?.custom_fields?.redirect_url
114
+ ) {
115
+ if (config?.search_button?.custom_fields?.other_params) {
116
+ window.open(
117
+ `${config?.search_button?.custom_fields?.redirect_url}?${config?.search_button?.custom_fields?.other_params}&${config?.search_button?.custom_fields?.zipcode_param ?? "zipcode"}=${zipcode}`,
118
+ );
119
+ } else {
120
+ window.open(
121
+ `${config?.search_button?.custom_fields?.redirect_url}?${config?.search_button?.custom_fields?.zipcode_param ?? "zipcode"}=${zipcode}`,
122
+ );
123
+ }
124
+ }
125
+ }}
126
+ />
127
+ </Box>
128
+ </Box>
129
+ </Box>
130
+ </Container>
131
+ </Section>
132
+ );
133
+ };
134
+
135
+ export default Service3;