@levo-so/blocks 0.1.102 → 0.1.104

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 (30) hide show
  1. package/package.json +23 -23
  2. package/src/blocks/blogs/blog-post-1.tsx +16 -7
  3. package/src/blocks/cards/cards-21.tsx +6 -6
  4. package/src/blocks/carousel/carousel-1.tsx +2 -2
  5. package/src/blocks/ecommerce/ecommerce-1.schema.ts +477 -0
  6. package/src/blocks/ecommerce/ecommerce-1.tsx +243 -0
  7. package/src/blocks/ecommerce/ecommerce-2.schema.ts +268 -0
  8. package/src/blocks/ecommerce/ecommerce-2.tsx +238 -0
  9. package/src/blocks/ecommerce/ecommerce-3.schema.ts +56 -0
  10. package/src/blocks/ecommerce/ecommerce-3.tsx +72 -0
  11. package/src/blocks/ecommerce/ecommerce-4.schema.ts +461 -0
  12. package/src/blocks/ecommerce/ecommerce-4.tsx +249 -0
  13. package/src/blocks/ecommerce/ecommerce-5.schema.ts +230 -0
  14. package/src/blocks/ecommerce/ecommerce-5.tsx +146 -0
  15. package/src/blocks/index.ts +12 -2
  16. package/src/blocks/logos/logos-2.schema.ts +223 -0
  17. package/src/blocks/logos/logos-2.tsx +55 -0
  18. package/src/blocks/navbar/navbar-3.schema.ts +6 -0
  19. package/src/blocks/navbar/navbar-3.tsx +3 -2
  20. package/src/blocks/navbar/navbar-4.schema.ts +6 -0
  21. package/src/blocks/navbar/navbar-4.tsx +1 -6
  22. package/src/blocks/products/products-listing-3.schema.ts +2 -4
  23. package/src/blocks/products/products-listing-3.tsx +86 -84
  24. package/src/blocks/services/service-2.tsx +0 -3
  25. package/src/blocks/services/service-3.schema.ts +22 -0
  26. package/src/blocks/services/service-3.tsx +12 -4
  27. package/src/schemas/blocks.ts +13 -3
  28. package/src/schemas/categories.ts +6 -0
  29. package/src/blocks/navbar/navbar-2.schema.ts +0 -1255
  30. package/src/blocks/navbar/navbar-2.tsx +0 -381
@@ -0,0 +1,461 @@
1
+ import type { IBlock } from "@levo-so/studio";
2
+
3
+ const CALENDAR_ICON_SVG =
4
+ '<svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M8 5.75C7.59 5.75 7.25 5.41 7.25 5V2C7.25 1.59 7.59 1.25 8 1.25C8.41 1.25 8.75 1.59 8.75 2V5C8.75 5.41 8.41 5.75 8 5.75Z" fill="var(--color-icon-primary)"/><path d="M16 5.75C15.59 5.75 15.25 5.41 15.25 5V2C15.25 1.59 15.59 1.25 16 1.25C16.41 1.25 16.75 1.59 16.75 2V5C16.75 5.41 16.41 5.75 16 5.75Z" fill="var(--color-icon-primary)"/><path d="M20.5 9.83997H3.5C3.09 9.83997 2.75 9.49997 2.75 9.08997C2.75 8.67997 3.09 8.33997 3.5 8.33997H20.5C20.91 8.33997 21.25 8.67997 21.25 9.08997C21.25 9.49997 20.91 9.83997 20.5 9.83997Z" fill="var(--color-icon-primary)"/><path d="M16 22.75H8C4.35 22.75 2.25 20.65 2.25 17V8.5C2.25 4.85 4.35 2.75 8 2.75H16C19.65 2.75 21.75 4.85 21.75 8.5V17C21.75 20.65 19.65 22.75 16 22.75ZM8 4.25C5.14 4.25 3.75 5.64 3.75 8.5V17C3.75 19.86 5.14 21.25 8 21.25H16C18.86 21.25 20.25 19.86 20.25 17V8.5C20.25 5.64 18.86 4.25 16 4.25H8Z" fill="var(--color-icon-primary)"/></svg>';
5
+
6
+ const TAG_ICON_SVG =
7
+ '<svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M4.5 12.75L12 20.25L21 11.25V3.75H13.5L4.5 12.75Z" stroke="var(--color-icon-primary)" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/><path d="M17.25 8.25C17.6642 8.25 18 7.91421 18 7.5C18 7.08579 17.6642 6.75 17.25 6.75C16.8358 6.75 16.5 7.08579 16.5 7.5C16.5 7.91421 16.8358 8.25 17.25 8.25Z" fill="var(--color-icon-primary)"/></svg>';
8
+
9
+ const DEFAULT_ITEM = (id: string, overrides: Record<string, any> = {}) => ({
10
+ id,
11
+ eventWrapper: null,
12
+ image: {
13
+ id: "ecom1_placeholder",
14
+ kind: "image",
15
+ location: "https://images.pexels.com/photos/3938022/pexels-photo-3938022.jpeg",
16
+ mimetype: "image/jpeg",
17
+ srcset: {
18
+ "320w":
19
+ "https://images.pexels.com/photos/3938022/pexels-photo-3938022.jpeg?auto=compress&cs=tinysrgb&dpr=1&fit=crop&w=320",
20
+ "640w":
21
+ "https://images.pexels.com/photos/3938022/pexels-photo-3938022.jpeg?auto=compress&cs=tinysrgb&dpr=1&fit=crop&w=640",
22
+ "750w":
23
+ "https://images.pexels.com/photos/3938022/pexels-photo-3938022.jpeg?auto=compress&cs=tinysrgb&dpr=1&fit=crop&w=750",
24
+ "828w":
25
+ "https://images.pexels.com/photos/3938022/pexels-photo-3938022.jpeg?auto=compress&cs=tinysrgb&dpr=1&fit=crop&w=828",
26
+ "1080w":
27
+ "https://images.pexels.com/photos/3938022/pexels-photo-3938022.jpeg?auto=compress&cs=tinysrgb&dpr=1&fit=crop&w=1080",
28
+ path: "https://images.pexels.com/photos/3938022/pexels-photo-3938022.jpeg?auto=compress&cs=tinysrgb&dpr=1&fit=crop&w=640 640w",
29
+ },
30
+ },
31
+ "text-wrapper": null,
32
+ "text-container": null,
33
+ "caption-text": "Health Package",
34
+ "date-wrapper": null,
35
+ "date-icon": {
36
+ kind: "icon",
37
+ data: {
38
+ id: "tag-1",
39
+ label: "Tag",
40
+ svgCode: TAG_ICON_SVG,
41
+ },
42
+ },
43
+ "publishedAt-header": "₹4,000",
44
+ "author-wrapper": null,
45
+ "author-image": {
46
+ kind: "icon",
47
+ data: {
48
+ id: "calendar-1",
49
+ label: "Calendar 1",
50
+ svgCode: CALENDAR_ICON_SVG,
51
+ },
52
+ },
53
+ "author-info-wrapper": null,
54
+ "author-name": "Newborns 24-72 hours",
55
+ title: "New Born Screening Extended",
56
+ description:
57
+ "Comprehensive heel-prick blood spot test for 50+ treatable conditions including thyroid issues, metabolic disorders, and more.",
58
+ publishedAt: "",
59
+ cta: "Add to cart",
60
+ ...overrides,
61
+ });
62
+
63
+ const DEFAULT_CONTENT = {
64
+ layout: null,
65
+ container: null,
66
+ "header-container": null,
67
+ title: "Available Tests & Packages",
68
+ "cta-button": "View all",
69
+ events: [
70
+ DEFAULT_ITEM("test-item-1"),
71
+ DEFAULT_ITEM("test-item-2"),
72
+ DEFAULT_ITEM("test-item-3"),
73
+ DEFAULT_ITEM("test-item-4"),
74
+ DEFAULT_ITEM("test-item-5"),
75
+ DEFAULT_ITEM("test-item-6"),
76
+ ],
77
+ cart_key: "levo_cart_collectiona",
78
+ carousel_opts: null,
79
+ };
80
+
81
+ export type IEcommerce4Content = typeof DEFAULT_CONTENT;
82
+
83
+ const GROUP_ITEM_STYLES = {
84
+ eventWrapper: {
85
+ "border-radius": "xl",
86
+ overflow: "hidden",
87
+ "box-shadow": "0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)",
88
+ position: "relative",
89
+ display: "flex",
90
+ "flex-direction": "column",
91
+ height: "100%",
92
+ "background-color": "var(--color-card, var(--color-background))",
93
+ },
94
+ image: {
95
+ width: "100%",
96
+ "aspect-ratio": "3 / 2",
97
+ "object-fit": "cover",
98
+ },
99
+ "text-wrapper": {
100
+ "padding-left": "none",
101
+ "padding-top": "none",
102
+ "padding-right": "none",
103
+ "padding-bottom": "xl",
104
+ display: "flex",
105
+ "flex-direction": "column",
106
+ "row-gap": "lg",
107
+ flex: "1",
108
+ },
109
+ "text-container": {
110
+ display: "flex",
111
+ "flex-direction": "column",
112
+ "justify-content": "space-between",
113
+ "column-gap": "md",
114
+ "padding-top": "md",
115
+ "padding-bottom": "md",
116
+ "padding-left": "xl",
117
+ "padding-right": "xl",
118
+ "border-bottom": "1px solid var(--color-border)",
119
+ gap: "base",
120
+ },
121
+ "caption-text": { display: "none" },
122
+ "date-wrapper": {
123
+ display: "flex",
124
+ "align-items": "center",
125
+ "column-gap": "xs",
126
+ },
127
+ "date-icon": { width: "20px", height: "20px", "flex-shrink": "0" },
128
+ "publishedAt-header": {
129
+ "font-size": "sm",
130
+ color: "var(--color-brand)",
131
+ "font-weight": 700,
132
+ },
133
+ "author-wrapper": {
134
+ display: "flex",
135
+ "align-items": "center",
136
+ "column-gap": "xs",
137
+ },
138
+ "author-image": { width: "20px", height: "20px", "flex-shrink": "0" },
139
+ "author-name": {
140
+ "font-size": "sm",
141
+ "font-weight": 500,
142
+ color: "var(--color-text-2)",
143
+ },
144
+ title: {
145
+ "font-weight": 600,
146
+ "font-size": "lg",
147
+ color: "var(--color-text-1)",
148
+ "line-height": "1.35",
149
+ },
150
+ description: {
151
+ overflow: "hidden",
152
+ display: "-webkit-box",
153
+ "-webkit-box-orient": "vertical",
154
+ "-webkit-line-clamp": 3,
155
+ color: "var(--color-text-2)",
156
+ "line-height": 1.5,
157
+ },
158
+ publishedAt: { display: "none" },
159
+ cta: {
160
+ "padding-top": "sm",
161
+ "padding-bottom": "sm",
162
+ "padding-left": "lg",
163
+ "padding-right": "lg",
164
+ "border-radius": "md",
165
+ "font-size": "sm",
166
+ "font-weight": 500,
167
+ border: "none",
168
+ cursor: "pointer",
169
+ "align-self": "flex-start",
170
+ "margin-top": "auto",
171
+ width: "100%",
172
+ "text-align": "center",
173
+ },
174
+ "content-container": {
175
+ "padding-left": "xl",
176
+ "padding-right": "xl",
177
+ display: "flex",
178
+ "flex-direction": "column",
179
+ "row-gap": "md",
180
+ flex: "1",
181
+ },
182
+ };
183
+
184
+ export const Ecommerce4: IBlock = {
185
+ category_id: "ecommerce",
186
+ title: "Ecommerce 4 (Carousel)",
187
+ key: "ecommerce-4",
188
+ version: "v1",
189
+ prompt_description:
190
+ "Product/test listing in a carousel with price, add-to-cart functionality. Items are stored in localStorage cart.",
191
+ content_schema: [
192
+ { key: "layout", label: "Layout", field_interface: "LayoutWidget" },
193
+ { key: "container", label: "Container", field_interface: "ContainerWidget" },
194
+ { key: "header-container", label: "Header Container", field_interface: "BoxWidget" },
195
+ {
196
+ key: "title",
197
+ label: "Title",
198
+ field_interface: "HeadingWidget",
199
+ },
200
+ {
201
+ key: "cta-button",
202
+ label: "Header CTA Button",
203
+ field_interface: "ButtonWidget",
204
+ },
205
+ { key: "desktop-nav-wrapper", label: "Desktop Nav Wrapper", field_interface: "BoxWidget" },
206
+ { key: "carousel-prev-desktop", label: "Prev (Desktop)", field_interface: "ButtonWidget" },
207
+ { key: "carousel-next-desktop", label: "Next (Desktop)", field_interface: "ButtonWidget" },
208
+ { key: "mobile-nav-wrapper", label: "Mobile Nav Wrapper", field_interface: "BoxWidget" },
209
+ { key: "carousel-prev-mobile", label: "Prev (Mobile)", field_interface: "ButtonWidget" },
210
+ { key: "carousel-next-mobile", label: "Next (Mobile)", field_interface: "ButtonWidget" },
211
+ {
212
+ key: "events",
213
+ label: "Products",
214
+ kind: "group",
215
+ field_interface: "CarouselWidget",
216
+ fields: [
217
+ { key: "id", label: "Item ID (Internal)", field_interface: "TypographyWidget" },
218
+ { key: "eventWrapper", label: "Card Wrapper", field_interface: "BoxWidget" },
219
+ {
220
+ key: "image",
221
+ label: "Product Image",
222
+ field_interface: "ImageWidget",
223
+ },
224
+ { key: "text-wrapper", label: "Text Wrapper", field_interface: "BoxWidget" },
225
+ { key: "text-container", label: "Text Container", field_interface: "BoxWidget" },
226
+ { key: "date-wrapper", label: "Price Wrapper", field_interface: "BoxWidget" },
227
+ {
228
+ key: "date-icon",
229
+ label: "Price Icon",
230
+ field_interface: "IconWidget",
231
+ },
232
+ {
233
+ key: "publishedAt-header",
234
+ label: "Price",
235
+ field_interface: "TypographyWidget",
236
+ },
237
+ { key: "author-wrapper", label: "Meta Wrapper", field_interface: "BoxWidget" },
238
+ {
239
+ key: "author-image",
240
+ label: "Meta Icon",
241
+ field_interface: "IconWidget",
242
+ },
243
+ { key: "author-info-wrapper", label: "Meta Info Wrapper", field_interface: "BoxWidget" },
244
+ {
245
+ key: "author-name",
246
+ label: "Age Group / Meta",
247
+ field_interface: "TypographyWidget",
248
+ },
249
+ { key: "content-container", label: "Content Container", field_interface: "BoxWidget" },
250
+ {
251
+ key: "title",
252
+ label: "Product Name",
253
+ field_interface: "TypographyWidget",
254
+ },
255
+ {
256
+ key: "description",
257
+ label: "Product Description",
258
+ field_interface: "TypographyWidget",
259
+ },
260
+ {
261
+ key: "publishedAt",
262
+ label: "Additional Info",
263
+ field_interface: "TypographyWidget",
264
+ },
265
+ {
266
+ key: "cta_wrapper",
267
+ label: "CTA Wrapper",
268
+ field_interface: "BoxWidget",
269
+ hint: {
270
+ prompt_description: "Wrapper for CTA and View Details button.",
271
+ },
272
+ },
273
+
274
+ {
275
+ key: "cta",
276
+ label: "Add to Cart CTA",
277
+ field_interface: "ButtonWidget",
278
+ hint: {
279
+ prompt_description: "Button to add product to cart. Default: 'Add to cart'.",
280
+ min_characters: 5,
281
+ max_characters: 20,
282
+ },
283
+ },
284
+ {
285
+ key: "view_details",
286
+ label: "View Details Button",
287
+ field_interface: "ButtonWidget",
288
+ },
289
+ ],
290
+ },
291
+ {
292
+ key: "cart_key",
293
+ label: "Cart Storage Key",
294
+ field_interface: "TypographyWidget",
295
+ hint: {
296
+ prompt_description: "Unique key for local storage to separate different carts.",
297
+ min_characters: 3,
298
+ max_characters: 50,
299
+ },
300
+ },
301
+ {
302
+ key: "carousel-navigation-pills-container",
303
+ label: "Carousel Navigation Pills Container",
304
+ field_interface: "BoxWidget",
305
+ hint: {
306
+ prompt_description: "Container for the navigation pills, positioned below the carousel.",
307
+ },
308
+ },
309
+ {
310
+ key: "carousel-navigation-pill",
311
+ label: "Carousel Navigation Pill",
312
+ field_interface: "BoxWidget",
313
+ hint: {
314
+ prompt_description: "Individual navigation pill indicating the current slide.",
315
+ },
316
+ },
317
+ ],
318
+ layouts: [
319
+ {
320
+ key: "default",
321
+ title: "Default",
322
+ styles: {
323
+ layout: {
324
+ "padding-left": "5xl",
325
+ "padding-right": "5xl",
326
+ "padding-top": "5xl",
327
+ "padding-bottom": "5xl",
328
+ tablet: {
329
+ "padding-left": "3xl",
330
+ "padding-right": "3xl",
331
+ "padding-top": "4xl",
332
+ "padding-bottom": "4xl",
333
+ },
334
+ mobile: {
335
+ "padding-left": "xl",
336
+ "padding-right": "xl",
337
+ "padding-top": "3xl",
338
+ "padding-bottom": "3xl",
339
+ },
340
+ },
341
+ container: { display: "flex", "flex-direction": "column", "row-gap": "2xl" },
342
+ "header-container": {
343
+ display: "flex",
344
+ width: "100%",
345
+ "justify-content": "space-between",
346
+ "align-items": "center",
347
+ "margin-bottom": "xl",
348
+ "column-gap": "xl",
349
+ mobile: { "flex-direction": "column", "align-items": "flex-start", "row-gap": "md" },
350
+ },
351
+ title: { color: "var(--color-text-1)", margin: "0" },
352
+ "cta-button": {
353
+ "text-decoration": "none",
354
+ border: "none",
355
+ cursor: "pointer",
356
+ display: "none",
357
+ "align-items": "center",
358
+ "column-gap": "xs",
359
+ "font-weight": 500,
360
+ mobile: { display: "flex" },
361
+ },
362
+ "desktop-nav-wrapper": {
363
+ display: "flex",
364
+ "column-gap": "sm",
365
+ "margin-left": "auto",
366
+ mobile: { display: "none" },
367
+ },
368
+ "carousel-prev-desktop": {
369
+ position: "static",
370
+ transform: "none",
371
+ width: "40px",
372
+ height: "40px",
373
+ "background-color": "var(--color-brand)",
374
+ color: "var(--color-background, #ffffff)",
375
+ border: "none",
376
+ "border-radius": "full",
377
+ },
378
+ "carousel-next-desktop": {
379
+ position: "static",
380
+ transform: "none",
381
+ width: "40px",
382
+ height: "40px",
383
+ "background-color": "var(--color-brand)",
384
+ color: "var(--color-background, #ffffff)",
385
+ border: "none",
386
+ "border-radius": "full",
387
+ },
388
+ "mobile-nav-wrapper": {
389
+ display: "none",
390
+ mobile: {
391
+ display: "flex",
392
+ "justify-content": "center",
393
+ "column-gap": "lg",
394
+ "margin-top": "xl",
395
+ },
396
+ },
397
+ "carousel-prev-mobile": {
398
+ position: "static",
399
+ transform: "none",
400
+ width: "40px",
401
+ height: "40px",
402
+ "background-color": "var(--color-brand)",
403
+ color: "var(--color-background, #ffffff)",
404
+ border: "none",
405
+ "border-radius": "full",
406
+ },
407
+ "carousel-next-mobile": {
408
+ position: "static",
409
+ transform: "none",
410
+ width: "40px",
411
+ height: "40px",
412
+ "background-color": "var(--color-brand)",
413
+ color: "var(--color-background, #ffffff)",
414
+ border: "none",
415
+ "border-radius": "full",
416
+ },
417
+ "carousel-navigation-pills-container": {
418
+ display: "flex",
419
+ "justify-content": "center",
420
+ "margin-top": "xl",
421
+ "column-gap": "xs",
422
+ },
423
+ "carousel-navigation-pill": {
424
+ width: "8px",
425
+ height: "8px",
426
+ "border-radius": "100px",
427
+ "background-color": "border",
428
+ cursor: "pointer",
429
+ transition: "all 0.3s ease",
430
+ },
431
+ carousel_opts: {
432
+ width: "100%",
433
+ },
434
+ events_levoGroup: {
435
+ width: "100%",
436
+ number_of_slides: 3.5,
437
+ "column-gap": "base",
438
+ tablet: { number_of_slides: 2.5 },
439
+ mobile: { number_of_slides: 1.2 },
440
+ },
441
+ events_levoGroupItem: GROUP_ITEM_STYLES,
442
+ events: [{}, {}, {}, {}, {}, {}],
443
+ },
444
+ content: DEFAULT_CONTENT,
445
+ config: {
446
+ title: {
447
+ selectedVariants: { Heading_Level: "H2" },
448
+ heading: { level: 2 },
449
+ },
450
+ "cta-button": {
451
+ selectedVariants: { Button_Variants: "Secondary" },
452
+ },
453
+ events_levoGroupItem: {
454
+ cta: {
455
+ selectedVariants: { Button_Variants: "Primary" },
456
+ },
457
+ },
458
+ },
459
+ },
460
+ ],
461
+ };