@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,277 @@
1
+ import type { IBlock } from "@levo-so/studio";
2
+
3
+ const DEFAULT_IMAGE = {
4
+ id: "2",
5
+ location: "https://space.levo.so/WLZ1TXTD/defaultblue-tryFJ012mgyH.png",
6
+ kind: "image",
7
+ mimetype: "image/png",
8
+ srcset: {
9
+ "320w": "https://space.levo.so/WLZ1TXTD/defaultblue-tryFJ012mgyH-320w.webp",
10
+ "640w": "https://space.levo.so/WLZ1TXTD/defaultblue-tryFJ012mgyH-640w.webp",
11
+ "1080w":
12
+ "https://space.levo.so/WLZ1TXTD/defaultblue-tryFJ012mgyH-1080w.webp",
13
+ path: "https://space.levo.so/WLZ1TXTD/defaultblue-tryFJ012mgyH-320w.webp 320w, https://space.levo.so/WLZ1TXTD/defaultblue-tryFJ012mgyH-640w.webp 640w, https://space.levo.so/WLZ1TXTD/defaultblue-tryFJ012mgyH-1080w.webp 1080w",
14
+ },
15
+ };
16
+
17
+ const DEFAULT_CONTENT = {
18
+ layout: null,
19
+ container: null,
20
+ content_wrapper: null,
21
+ image: DEFAULT_IMAGE,
22
+ info_section: null,
23
+ title: "Tapadia Diagnostics in your city",
24
+ cities_levoGroup: null,
25
+ cities: [
26
+ {
27
+ city_name: "Hyderabad",
28
+ },
29
+ {
30
+ city_name: "Bangalore",
31
+ },
32
+ {
33
+ city_name: "Mumbai",
34
+ },
35
+ {
36
+ city_name: "Pune",
37
+ },
38
+ {
39
+ city_name: "Chennai",
40
+ },
41
+ {
42
+ city_name: "Delhi",
43
+ },
44
+ {
45
+ city_name: "Mysore",
46
+ },
47
+ {
48
+ city_name: "Cochin",
49
+ },
50
+ {
51
+ city_name: "Indore",
52
+ },
53
+ {
54
+ city_name: "Kolkata",
55
+ },
56
+ ],
57
+ cta: "Book Your Test",
58
+ };
59
+
60
+ export type ICards15Content = typeof DEFAULT_CONTENT;
61
+
62
+ export const Cards15: IBlock = {
63
+ category_id: "cards",
64
+ title: "Cards 15",
65
+ key: "cards-15",
66
+ version: "v1",
67
+ prompt_description:
68
+ "A diagnostic centers map block with statistics, city buttons, and booking CTA",
69
+ content_schema: [
70
+ {
71
+ key: "layout",
72
+ label: "Layout",
73
+ field_interface: "LayoutWidget",
74
+ },
75
+ {
76
+ key: "container",
77
+ label: "Container",
78
+ field_interface: "ContainerWidget",
79
+ },
80
+ {
81
+ key: "content_wrapper",
82
+ label: "Content Wrapper",
83
+ field_interface: "BoxWidget",
84
+ },
85
+
86
+ {
87
+ key: "image",
88
+ label: "Image",
89
+ field_interface: "ImageWidget",
90
+ },
91
+
92
+ {
93
+ key: "info_section",
94
+ label: "Info Section",
95
+ field_interface: "BoxWidget",
96
+ },
97
+ {
98
+ key: "title",
99
+ label: "Title",
100
+ field_interface: "HeadingWidget",
101
+ },
102
+ {
103
+ key: "cities",
104
+ label: "Cities",
105
+ kind: "group",
106
+ field_interface: "BoxWidget",
107
+ fields: [
108
+ {
109
+ key: "city_name",
110
+ label: "City Name",
111
+ field_interface: "TypographyWidget",
112
+ },
113
+ ],
114
+ },
115
+ {
116
+ key: "cta",
117
+ label: "CTA ",
118
+ field_interface: "ButtonWidget",
119
+ },
120
+ ],
121
+ layouts: [
122
+ {
123
+ key: "default",
124
+ title: "Default",
125
+ styles: {
126
+ layout: {
127
+ "padding-top": "3xl",
128
+ "padding-bottom": "3xl",
129
+ "background-color": "background-2",
130
+ "border-radius": "base",
131
+ },
132
+ container: {
133
+ "max-width": "1280px",
134
+ "margin-left": "auto",
135
+ "margin-right": "auto",
136
+ "padding-left": "lg",
137
+ "padding-right": "lg",
138
+ },
139
+ content_wrapper: {
140
+ display: "flex",
141
+ "flex-direction": "row",
142
+ "align-items": "center",
143
+ "justify-content": "space-between",
144
+ gap: "2xl",
145
+ mobile: {
146
+ "flex-direction": "column",
147
+ gap: "lg",
148
+ },
149
+ "background-color": "oklch(0.9738 0.013 11.5415)",
150
+ "padding-right": "3xl",
151
+ "padding-left": "3xl",
152
+ "margin-top": "none",
153
+ },
154
+
155
+ image: {
156
+ "object-fit": "contain",
157
+ width: "500px",
158
+ height: "500px",
159
+ mobile: {
160
+ width: "100%",
161
+ height: "300px",
162
+ },
163
+ },
164
+ info_section: {
165
+ "background-color": "white",
166
+ "border-radius": "base",
167
+ "box-shadow": "default",
168
+ "padding-top": "lg",
169
+ "padding-bottom": "lg",
170
+ "padding-left": "lg",
171
+ "padding-right": "lg",
172
+ width: "100%",
173
+ mobile: {
174
+ width: "100%",
175
+ },
176
+ },
177
+ title: {
178
+ color: "text-1",
179
+ "font-size": "2xl",
180
+ "font-weight": "700",
181
+ "margin-bottom": "lg",
182
+ },
183
+ cities_levoGroup: {
184
+ display: "flex",
185
+ "flex-wrap": "wrap",
186
+ gap: "sm",
187
+ "margin-bottom": "lg",
188
+ },
189
+ "cities.0.city_name": {
190
+ "background-color": "background-2",
191
+ color: "text-1",
192
+ "font-weight": "500",
193
+ "font-size": "sm",
194
+ "padding-top": "xs",
195
+ "padding-bottom": "xs",
196
+ "padding-left": "sm",
197
+ "padding-right": "sm",
198
+ "border-radius": "full",
199
+ "text-align": "center",
200
+ },
201
+ cta_container: {},
202
+ phone_icon: {
203
+ width: "16px",
204
+ height: "16px",
205
+ },
206
+ cta_text: {
207
+ color: "background-1",
208
+ "font-weight": "600",
209
+ },
210
+ cities: [
211
+ {
212
+ city_name: {
213
+ "background-color": "background-3",
214
+ "padding-left": "xs",
215
+ "padding-right": "xs",
216
+ "padding-top": "4xs",
217
+ "padding-bottom": "4xs",
218
+ "border-radius": "3xl",
219
+ },
220
+ },
221
+ {
222
+ city_name: {
223
+ "background-color": "background-3",
224
+ "padding-left": "xs",
225
+ "padding-right": "xs",
226
+ "padding-top": "4xs",
227
+ "padding-bottom": "4xs",
228
+ "border-radius": "3xl",
229
+ },
230
+ },
231
+ {
232
+ city_name: {
233
+ "background-color": "background-3",
234
+ "padding-left": "xs",
235
+ "padding-right": "xs",
236
+ "padding-top": "4xs",
237
+ "padding-bottom": "4xs",
238
+ "border-radius": "3xl",
239
+ },
240
+ },
241
+ {
242
+ city_name: {
243
+ "background-color": "background-3",
244
+ "padding-left": "xs",
245
+ "padding-right": "xs",
246
+ "padding-top": "4xs",
247
+ "padding-bottom": "4xs",
248
+ "border-radius": "3xl",
249
+ },
250
+ },
251
+ {
252
+ city_name: {
253
+ "background-color": "background-3",
254
+ "padding-left": "xs",
255
+ "padding-right": "xs",
256
+ "padding-top": "4xs",
257
+ "padding-bottom": "4xs",
258
+ "border-radius": "3xl",
259
+ },
260
+ },
261
+ {
262
+ city_name: {
263
+ "background-color": "background-3",
264
+ "padding-left": "xs",
265
+ "padding-right": "xs",
266
+ "padding-top": "4xs",
267
+ "padding-bottom": "4xs",
268
+ "border-radius": "3xl",
269
+ },
270
+ },
271
+ ],
272
+ },
273
+ content: DEFAULT_CONTENT,
274
+ config: {},
275
+ },
276
+ ],
277
+ };
@@ -0,0 +1,40 @@
1
+ import {
2
+ type ILevoBlockBaseProps,
3
+ Box,
4
+ Button,
5
+ Container,
6
+ Heading,
7
+ Image,
8
+ Section,
9
+ Typography,
10
+ } from "@levo-so/studio";
11
+
12
+ import type { ICards15Content } from "./cards-15.schema";
13
+
14
+ const Cards15: React.FC<ILevoBlockBaseProps<ICards15Content>> = ({
15
+ content,
16
+ }) => (
17
+ <Section elementKey="layout">
18
+ <Container elementKey="container">
19
+ <Box elementKey="content_wrapper">
20
+ <Image alt="India Map" elementKey="image" width={500} height={500} />
21
+ <Box elementKey="info_section">
22
+ <Heading elementKey="title" />
23
+ <Box data-levo_group elementKey="cities_levoGroup">
24
+ {(content.cities ?? []).map((_, index) => (
25
+ <Typography
26
+ key={index}
27
+ data-levo_group_item
28
+ elementKey={`cities.${index}.city_name`}
29
+ />
30
+ ))}
31
+ </Box>
32
+
33
+ <Button elementKey="cta" />
34
+ </Box>
35
+ </Box>
36
+ </Container>
37
+ </Section>
38
+ );
39
+
40
+ export default Cards15;
@@ -323,6 +323,15 @@ export const Cards6: IBlock = {
323
323
  "Container for the navigation arrows for mobile view, positioned below the cards.",
324
324
  },
325
325
  },
326
+ {
327
+ key: "carousel-navigation-pills-container",
328
+ label: "Carousel Navigation Pills Container",
329
+ field_interface: "BoxWidget",
330
+ hint: {
331
+ prompt_description:
332
+ "Container for the navigation pills, positioned below the carousel.",
333
+ },
334
+ },
326
335
  {
327
336
  key: "carousel-navigation",
328
337
  label: "Carousel Navigation",
@@ -350,6 +359,15 @@ export const Cards6: IBlock = {
350
359
  "Right navigation arrow button to navigate to next cards in the carousel.",
351
360
  },
352
361
  },
362
+ {
363
+ key: "carousel-navigation-pill",
364
+ label: "Carousel Navigation Pill",
365
+ field_interface: "BoxWidget",
366
+ hint: {
367
+ prompt_description:
368
+ "Individual navigation pill indicating the current slide.",
369
+ },
370
+ },
353
371
  {
354
372
  key: "cards",
355
373
  label: "Cards",
@@ -488,6 +506,20 @@ export const Cards6: IBlock = {
488
506
  "margin-top": "xl",
489
507
  },
490
508
  },
509
+ "carousel-navigation-pills-container": {
510
+ display: "flex",
511
+ "justify-content": "center",
512
+ "margin-top": "xl",
513
+ "column-gap": "xs",
514
+ },
515
+ "carousel-navigation-pill": {
516
+ width: "8px",
517
+ height: "8px",
518
+ "border-radius": "100px",
519
+ "background-color": "border",
520
+ cursor: "pointer",
521
+ transition: "all 0.3s ease",
522
+ },
491
523
  "carousel-navigation": {
492
524
  display: "flex",
493
525
  "column-gap": "sm",
@@ -860,6 +892,20 @@ export const Cards6: IBlock = {
860
892
  "margin-top": "xl",
861
893
  },
862
894
  },
895
+ "carousel-navigation-pills-container": {
896
+ display: "flex",
897
+ "justify-content": "center",
898
+ "margin-top": "xl",
899
+ "column-gap": "xs",
900
+ },
901
+ "carousel-navigation-pill": {
902
+ width: "8px",
903
+ height: "8px",
904
+ "border-radius": "100px",
905
+ "background-color": "border",
906
+ cursor: "pointer",
907
+ transition: "all 0.3s ease",
908
+ },
863
909
  "carousel-navigation": {
864
910
  display: "flex",
865
911
  "column-gap": "sm",
@@ -1,3 +1,5 @@
1
+ "use client";
2
+
1
3
  import type { CarouselApi } from "@levo-so/studio";
2
4
  import {
3
5
  type ILevoBlockBaseProps,
@@ -9,7 +11,6 @@ import {
9
11
  Container,
10
12
  Heading,
11
13
  Icon,
12
- Image,
13
14
  Section,
14
15
  Typography,
15
16
  } from "@levo-so/studio";
@@ -132,6 +133,31 @@ const Cards6: React.FC<ILevoBlockBaseProps<ICards6Content>> = ({ content }) => {
132
133
  </Box>
133
134
  </Box>
134
135
  )}
136
+ {count > 0 && (
137
+ <Box elementKey="carousel-navigation-pills-container">
138
+ {Array(count)
139
+ ?.fill(0)
140
+ ?.map((_, index) => (
141
+ <Box
142
+ key={index}
143
+ elementKey="carousel-navigation-pill"
144
+ style={
145
+ index === current
146
+ ? {
147
+ backgroundColor: "var(--color-brand)",
148
+ width: "24px",
149
+ }
150
+ : {}
151
+ }
152
+ onClick={() => {
153
+ if (api) {
154
+ api?.scrollTo(index);
155
+ }
156
+ }}
157
+ />
158
+ ))}
159
+ </Box>
160
+ )}
135
161
  </Container>
136
162
  </Section>
137
163
  );
@@ -1,3 +1,5 @@
1
+ "use client";
2
+
1
3
  import type { CarouselApi } from "@levo-so/studio";
2
4
  import {
3
5
  type ILevoBlockBaseProps,