@levo-so/blocks 0.3.13 → 0.3.15
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.
- package/package.json +10 -10
- package/src/blocks/blogs/blog-listing-2.schema.ts +54 -54
- package/src/blocks/blogs/blog-listing-3.schema.ts +9 -9
- package/src/blocks/calendar/calendar-1.schema.ts +77 -30
- package/src/blocks/calendar/calendar-1.tsx +158 -40
- package/src/blocks/community/community-1.schema.ts +18 -18
- package/src/blocks/community/community-post-1.schema.ts +18 -18
- package/src/blocks/ecommerce/ecommerce-1.tsx +2 -0
- package/src/blocks/event/event-listing-2.schema.ts +9 -9
- package/src/blocks/event/event-listing-4.schema.ts +36 -36
- package/src/blocks/faq/faq-1.tsx +1 -1
- package/src/blocks/faq/faq-2.tsx +1 -1
- package/src/blocks/faq/faq-3.tsx +5 -1
- package/src/blocks/filter-listing/filter-listing-1.tsx +1 -0
- package/src/blocks/jobs/jobs-1.schema.ts +35 -27
- package/src/blocks/jobs/jobs-1.tsx +3 -0
- package/src/blocks/services/service-2.tsx +1 -0
- package/src/blocks/tabs/tab-1.tsx +4 -1
|
@@ -11,46 +11,67 @@ import {
|
|
|
11
11
|
useContentEngine,
|
|
12
12
|
} from "@levo-so/studio";
|
|
13
13
|
import dayjs from "dayjs";
|
|
14
|
-
import { useState } from "react";
|
|
14
|
+
import { useEffect, useState } from "react";
|
|
15
15
|
|
|
16
16
|
import type { ICalendar1Content } from "./calendar-1.schema";
|
|
17
17
|
|
|
18
|
+
type IEventItem = ICalendar1Content["listing_section"][number] & {
|
|
19
|
+
starts_at?: string;
|
|
20
|
+
ends_at?: string;
|
|
21
|
+
};
|
|
22
|
+
|
|
18
23
|
const EventCard: React.FC<{
|
|
19
|
-
event:
|
|
24
|
+
event: IEventItem;
|
|
20
25
|
index: number;
|
|
21
26
|
}> = ({ event, index }) => {
|
|
22
|
-
const
|
|
23
|
-
|
|
27
|
+
const startDate = dayjs(
|
|
28
|
+
event?.event_starts_date && dayjs(event.event_starts_date).isValid()
|
|
29
|
+
? event.event_starts_date
|
|
30
|
+
: event?.starts_at,
|
|
24
31
|
);
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
32
|
+
const endDate = dayjs(
|
|
33
|
+
event?.event_ends_date && dayjs(event.event_ends_date).isValid()
|
|
34
|
+
? event.event_ends_date
|
|
35
|
+
: event?.ends_at,
|
|
29
36
|
);
|
|
30
37
|
|
|
38
|
+
const isStartDateValid = startDate.isValid();
|
|
39
|
+
const isEndDateValid = endDate.isValid() && !startDate.isSame(endDate, "day");
|
|
40
|
+
|
|
31
41
|
const isStartTimeValid = dayjs(event?.starts_at).isValid();
|
|
32
42
|
const isEndTimeValid = dayjs(event?.ends_at).isValid();
|
|
33
43
|
|
|
44
|
+
const today = dayjs();
|
|
45
|
+
const effectiveEnd = endDate.isValid() ? endDate : startDate;
|
|
46
|
+
const isCompleted = effectiveEnd.isValid() && effectiveEnd.isBefore(today, "day");
|
|
47
|
+
const statusText = isCompleted ? "Completed" : "Upcoming";
|
|
48
|
+
|
|
34
49
|
return (
|
|
35
50
|
<Box elementKey={`listing_section.${index}.event`}>
|
|
36
51
|
<Box elementKey={`listing_section.${index}.event_timing`}>
|
|
37
52
|
<Box elementKey={`listing_section.${index}.event_starts`}>
|
|
38
53
|
<Heading elementKey={`listing_section.${index}.event_starts_date`}>
|
|
39
|
-
{
|
|
54
|
+
{isStartDateValid ? startDate.format("DD") : ""}
|
|
40
55
|
</Heading>
|
|
41
56
|
<Typography elementKey={`listing_section.${index}.event_starts_month`}>
|
|
42
|
-
{
|
|
57
|
+
{isStartDateValid ? startDate.format("MMMM") : ""}
|
|
58
|
+
</Typography>
|
|
59
|
+
<Typography elementKey={`listing_section.${index}.event_starts_year`}>
|
|
60
|
+
{isStartDateValid ? startDate.format("YYYY") : ""}
|
|
43
61
|
</Typography>
|
|
44
62
|
</Box>
|
|
45
|
-
{isEndDateValid
|
|
63
|
+
{isEndDateValid ? (
|
|
46
64
|
<>
|
|
47
65
|
<Typography elementKey={`listing_section.${index}.event_to`} />
|
|
48
66
|
<Box elementKey={`listing_section.${index}.event_ends`}>
|
|
49
67
|
<Heading elementKey={`listing_section.${index}.event_ends_date`}>
|
|
50
|
-
{
|
|
68
|
+
{endDate.format("DD")}
|
|
51
69
|
</Heading>
|
|
52
70
|
<Typography elementKey={`listing_section.${index}.event_ends_month`}>
|
|
53
|
-
{
|
|
71
|
+
{endDate.format("MMMM")}
|
|
72
|
+
</Typography>
|
|
73
|
+
<Typography elementKey={`listing_section.${index}.event_ends_year`}>
|
|
74
|
+
{endDate.format("YYYY")}
|
|
54
75
|
</Typography>
|
|
55
76
|
</Box>
|
|
56
77
|
</>
|
|
@@ -72,10 +93,41 @@ const EventCard: React.FC<{
|
|
|
72
93
|
</Box>
|
|
73
94
|
<Box elementKey={`listing_section.${index}.divider`} />
|
|
74
95
|
<Box elementKey={`listing_section.${index}.event_content`}>
|
|
75
|
-
<Heading elementKey={`listing_section.${index}.event_category`}
|
|
96
|
+
<Heading elementKey={`listing_section.${index}.event_category`}>
|
|
97
|
+
{event?.event_category}
|
|
98
|
+
</Heading>
|
|
76
99
|
<Box elementKey={`listing_section.${index}.event_sub_content`}>
|
|
77
|
-
<
|
|
78
|
-
|
|
100
|
+
<Box elementKey={`listing_section.${index}.event_title_wrapper`}>
|
|
101
|
+
<Typography
|
|
102
|
+
elementKey={`listing_section.${index}.event_status_pill`}
|
|
103
|
+
style={{
|
|
104
|
+
display: "inline-flex",
|
|
105
|
+
alignItems: "center",
|
|
106
|
+
padding: "2px 8px",
|
|
107
|
+
borderRadius: "9999px",
|
|
108
|
+
fontSize: "11px",
|
|
109
|
+
fontWeight: 600,
|
|
110
|
+
lineHeight: "1.2",
|
|
111
|
+
backgroundColor: isCompleted
|
|
112
|
+
? "var(--color-muted, oklch(0.94 0 0))"
|
|
113
|
+
: "var(--color-success-subtle, oklch(0.95 0.05 145))",
|
|
114
|
+
color: isCompleted
|
|
115
|
+
? "var(--color-muted-foreground, oklch(0.42 0 0))"
|
|
116
|
+
: "var(--color-success, oklch(0.38 0.12 145))",
|
|
117
|
+
border: isCompleted
|
|
118
|
+
? "1px solid oklch(0.88 0 0)"
|
|
119
|
+
: "1px solid oklch(0.85 0.08 145)",
|
|
120
|
+
}}
|
|
121
|
+
>
|
|
122
|
+
{statusText}
|
|
123
|
+
</Typography>
|
|
124
|
+
<Heading elementKey={`listing_section.${index}.event_title`}>
|
|
125
|
+
{event?.event_title}
|
|
126
|
+
</Heading>
|
|
127
|
+
</Box>
|
|
128
|
+
<Typography elementKey={`listing_section.${index}.event_description`}>
|
|
129
|
+
{event?.event_description}
|
|
130
|
+
</Typography>
|
|
79
131
|
</Box>
|
|
80
132
|
</Box>
|
|
81
133
|
</Box>
|
|
@@ -83,41 +135,106 @@ const EventCard: React.FC<{
|
|
|
83
135
|
};
|
|
84
136
|
|
|
85
137
|
const Calendar1: React.FC<ILevoBlockBaseProps<ICalendar1Content>> = ({ content }) => {
|
|
86
|
-
const { data, query, setQuery } = useContentEngine("listing_section");
|
|
138
|
+
const { data, query, setQuery, loading } = useContentEngine("listing_section");
|
|
87
139
|
|
|
88
140
|
const [calendarMonth, setCalendarMonth] = useState<Date>(new Date());
|
|
141
|
+
const [selectedMonth, setSelectedMonth] = useState<Date | null>(null);
|
|
142
|
+
const [isPendingMonthChange, setIsPendingMonthChange] = useState(false);
|
|
143
|
+
|
|
144
|
+
useEffect(() => {
|
|
145
|
+
if (!loading) {
|
|
146
|
+
setIsPendingMonthChange(false);
|
|
147
|
+
}
|
|
148
|
+
}, [loading]);
|
|
149
|
+
|
|
150
|
+
const rawEvents: IEventItem[] = !selectedMonth
|
|
151
|
+
? (content?.listing_section ?? [])
|
|
152
|
+
: data && data.length > 0
|
|
153
|
+
? data
|
|
154
|
+
: (content?.listing_section ?? []);
|
|
155
|
+
|
|
156
|
+
const getEventStart = (item: IEventItem) => {
|
|
157
|
+
const d1 = item?.event_starts_date ? dayjs(item.event_starts_date) : null;
|
|
158
|
+
if (d1 && d1.isValid()) return d1;
|
|
159
|
+
const d2 = item?.starts_at ? dayjs(item.starts_at) : null;
|
|
160
|
+
if (d2 && d2.isValid()) return d2;
|
|
161
|
+
return null;
|
|
162
|
+
};
|
|
163
|
+
|
|
164
|
+
const getEventEnd = (item: IEventItem, start: dayjs.Dayjs | null) => {
|
|
165
|
+
const d1 = item?.event_ends_date ? dayjs(item.event_ends_date) : null;
|
|
166
|
+
if (d1 && d1.isValid()) return d1;
|
|
167
|
+
const d2 = item?.ends_at ? dayjs(item.ends_at) : null;
|
|
168
|
+
if (d2 && d2.isValid()) return d2;
|
|
169
|
+
return start;
|
|
170
|
+
};
|
|
171
|
+
|
|
172
|
+
// Sort events chronologically ascending by start date
|
|
173
|
+
const sortedEvents = [...rawEvents].sort((a, b) => {
|
|
174
|
+
const startA = getEventStart(a);
|
|
175
|
+
const startB = getEventStart(b);
|
|
176
|
+
const dateA = startA ? startA.valueOf() : 0;
|
|
177
|
+
const dateB = startB ? startB.valueOf() : 0;
|
|
178
|
+
return dateA - dateB;
|
|
179
|
+
});
|
|
180
|
+
|
|
181
|
+
const currentMonthStart = dayjs().startOf("month");
|
|
182
|
+
|
|
183
|
+
// Filter displayed events: events matching selectedMonth if user picked a month,
|
|
184
|
+
// or events from current month onwards (current month or future) on initial view / refresh
|
|
185
|
+
const upcomingOrSelectedEvents = sortedEvents.filter((item) => {
|
|
186
|
+
const start = getEventStart(item);
|
|
187
|
+
const end = getEventEnd(item, start);
|
|
188
|
+
if (!start) return false;
|
|
189
|
+
|
|
190
|
+
if (!selectedMonth) {
|
|
191
|
+
const effectiveEnd = end || start;
|
|
192
|
+
return (
|
|
193
|
+
effectiveEnd.isAfter(currentMonthStart) || effectiveEnd.isSame(currentMonthStart, "day")
|
|
194
|
+
);
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
const monthStart = dayjs(selectedMonth).startOf("month");
|
|
198
|
+
const monthEnd = dayjs(selectedMonth).endOf("month");
|
|
199
|
+
const effectiveEnd = end || start;
|
|
200
|
+
|
|
201
|
+
return (
|
|
202
|
+
(start.isBefore(monthEnd) || start.isSame(monthEnd)) &&
|
|
203
|
+
(effectiveEnd.isAfter(monthStart) || effectiveEnd.isSame(monthStart))
|
|
204
|
+
);
|
|
205
|
+
});
|
|
206
|
+
|
|
207
|
+
// If no upcoming events exist from current month onwards, fall back to showing all sorted events
|
|
208
|
+
const displayedEvents =
|
|
209
|
+
!selectedMonth && upcomingOrSelectedEvents.length === 0
|
|
210
|
+
? sortedEvents
|
|
211
|
+
: upcomingOrSelectedEvents;
|
|
89
212
|
|
|
90
|
-
const dateList =
|
|
91
|
-
?.map((v
|
|
92
|
-
?.filter((v:
|
|
93
|
-
?.map((v
|
|
213
|
+
const dateList = rawEvents
|
|
214
|
+
?.map((v) => getEventStart(v))
|
|
215
|
+
?.filter((v): v is dayjs.Dayjs => v !== null && v.isValid())
|
|
216
|
+
?.map((v) => v.toDate());
|
|
94
217
|
|
|
95
218
|
const handleMonthChange = (date: Date) => {
|
|
219
|
+
setIsPendingMonthChange(true);
|
|
96
220
|
setCalendarMonth(date);
|
|
221
|
+
setSelectedMonth(date);
|
|
97
222
|
setQuery({
|
|
98
|
-
...query,
|
|
99
223
|
limit: -1,
|
|
100
224
|
where: {
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
gte: dayjs(date).startOf("month").format(),
|
|
106
|
-
},
|
|
107
|
-
},
|
|
108
|
-
{
|
|
109
|
-
ends_at: {
|
|
110
|
-
lte: dayjs(date).endOf("month").format(),
|
|
111
|
-
},
|
|
112
|
-
},
|
|
113
|
-
],
|
|
225
|
+
starts_at: {
|
|
226
|
+
gte: dayjs(date).startOf("month").toISOString(),
|
|
227
|
+
lte: dayjs(date).endOf("month").toISOString(),
|
|
228
|
+
},
|
|
114
229
|
},
|
|
115
230
|
});
|
|
116
231
|
};
|
|
117
232
|
|
|
118
233
|
const handleResetFilter = () => {
|
|
234
|
+
setIsPendingMonthChange(false);
|
|
235
|
+
setSelectedMonth(null);
|
|
236
|
+
setCalendarMonth(new Date());
|
|
119
237
|
setQuery({
|
|
120
|
-
...query,
|
|
121
238
|
limit: 20,
|
|
122
239
|
where: {},
|
|
123
240
|
});
|
|
@@ -132,11 +249,11 @@ const Calendar1: React.FC<ILevoBlockBaseProps<ICalendar1Content>> = ({ content }
|
|
|
132
249
|
</Box>
|
|
133
250
|
<Box elementKey="content">
|
|
134
251
|
<Box elementKey="listing_section_levoGroup" data-levo_group>
|
|
135
|
-
{
|
|
136
|
-
|
|
252
|
+
{displayedEvents && displayedEvents.length > 0 ? (
|
|
253
|
+
displayedEvents.map((item: IEventItem, index: number) => {
|
|
137
254
|
return <EventCard key={`listing_section.${index}`} index={index} event={item} />;
|
|
138
255
|
})
|
|
139
|
-
) : (
|
|
256
|
+
) : loading || isPendingMonthChange ? null : (
|
|
140
257
|
<Box elementKey="empty_state">
|
|
141
258
|
<Icon elementKey="empty_state_icon" />
|
|
142
259
|
<Heading elementKey="empty_state_title" />
|
|
@@ -162,11 +279,12 @@ const Calendar1: React.FC<ILevoBlockBaseProps<ICalendar1Content>> = ({ content }
|
|
|
162
279
|
/>
|
|
163
280
|
</Box>
|
|
164
281
|
<Box elementKey="calendar_ctas_levoGroup" data-levo_group>
|
|
165
|
-
{(content.calendar_ctas ?? []).map((_:
|
|
282
|
+
{(content.calendar_ctas ?? []).map((_: unknown, index: number) => (
|
|
166
283
|
<Button
|
|
167
284
|
key={`calendar_ctas.${index}.calendar_cta`}
|
|
168
285
|
elementKey={`calendar_ctas.${index}.calendar_cta`}
|
|
169
286
|
data-levo_group_item
|
|
287
|
+
onClick={handleResetFilter}
|
|
170
288
|
/>
|
|
171
289
|
))}
|
|
172
290
|
<Button elementKey="empty_state_cta" onClick={handleResetFilter} />
|
|
@@ -43,31 +43,31 @@ const DEFAULT_CONTENT = {
|
|
|
43
43
|
edit_profile_block_banner_image: {
|
|
44
44
|
id: "jfwLqpex6AK0J",
|
|
45
45
|
kind: "image",
|
|
46
|
-
location: "https://static.levostg.
|
|
46
|
+
location: "https://static.levostg.site/WZZKMUBH/banner-HXVr5tikleqvq.png",
|
|
47
47
|
srcset: {
|
|
48
|
-
"1080w": "https://static.levostg.
|
|
49
|
-
"1200w": "https://static.levostg.
|
|
50
|
-
"1920w": "https://static.levostg.
|
|
51
|
-
"320w": "https://static.levostg.
|
|
52
|
-
"640w": "https://static.levostg.
|
|
53
|
-
"750w": "https://static.levostg.
|
|
54
|
-
"828w": "https://static.levostg.
|
|
55
|
-
path: "https://static.levostg.
|
|
48
|
+
"1080w": "https://static.levostg.site/WZZKMUBH/banner-HXVr5tikleqvq-1080w.webp",
|
|
49
|
+
"1200w": "https://static.levostg.site/WZZKMUBH/banner-HXVr5tikleqvq-1200w.webp",
|
|
50
|
+
"1920w": "https://static.levostg.site/WZZKMUBH/banner-HXVr5tikleqvq-1920w.webp",
|
|
51
|
+
"320w": "https://static.levostg.site/WZZKMUBH/banner-HXVr5tikleqvq-320w.webp",
|
|
52
|
+
"640w": "https://static.levostg.site/WZZKMUBH/banner-HXVr5tikleqvq-640w.webp",
|
|
53
|
+
"750w": "https://static.levostg.site/WZZKMUBH/banner-HXVr5tikleqvq-750w.webp",
|
|
54
|
+
"828w": "https://static.levostg.site/WZZKMUBH/banner-HXVr5tikleqvq-828w.webp",
|
|
55
|
+
path: "https://static.levostg.site/WZZKMUBH/banner-HXVr5tikleqvq-320w.webp 320w, https://static.levostg.site/WZZKMUBH/banner-HXVr5tikleqvq-640w.webp 640w, https://static.levostg.site/WZZKMUBH/banner-HXVr5tikleqvq-750w.webp 750w, https://static.levostg.site/WZZKMUBH/banner-HXVr5tikleqvq-828w.webp 828w, https://static.levostg.site/WZZKMUBH/banner-HXVr5tikleqvq-1080w.webp 1080w, https://static.levostg.site/WZZKMUBH/banner-HXVr5tikleqvq-1200w.webp 1200w, https://static.levostg.site/WZZKMUBH/banner-HXVr5tikleqvq-1920w.webp 1920w",
|
|
56
56
|
},
|
|
57
57
|
},
|
|
58
58
|
edit_profile_block_logo: {
|
|
59
59
|
id: "zucZ9wWTU6qEL",
|
|
60
60
|
kind: "image",
|
|
61
|
-
location: "https://static.levostg.
|
|
61
|
+
location: "https://static.levostg.site/WZZKMUBH/netflix-FUGaJXflpOINw.jpeg",
|
|
62
62
|
srcset: {
|
|
63
|
-
"1080w": "https://static.levostg.
|
|
64
|
-
"1200w": "https://static.levostg.
|
|
65
|
-
"1920w": "https://static.levostg.
|
|
66
|
-
"320w": "https://static.levostg.
|
|
67
|
-
"640w": "https://static.levostg.
|
|
68
|
-
"750w": "https://static.levostg.
|
|
69
|
-
"828w": "https://static.levostg.
|
|
70
|
-
path: "https://static.levostg.
|
|
63
|
+
"1080w": "https://static.levostg.site/WZZKMUBH/netflix-FUGaJXflpOINw-1080w.webp",
|
|
64
|
+
"1200w": "https://static.levostg.site/WZZKMUBH/netflix-FUGaJXflpOINw-1200w.webp",
|
|
65
|
+
"1920w": "https://static.levostg.site/WZZKMUBH/netflix-FUGaJXflpOINw-1920w.webp",
|
|
66
|
+
"320w": "https://static.levostg.site/WZZKMUBH/netflix-FUGaJXflpOINw-320w.webp",
|
|
67
|
+
"640w": "https://static.levostg.site/WZZKMUBH/netflix-FUGaJXflpOINw-640w.webp",
|
|
68
|
+
"750w": "https://static.levostg.site/WZZKMUBH/netflix-FUGaJXflpOINw-750w.webp",
|
|
69
|
+
"828w": "https://static.levostg.site/WZZKMUBH/netflix-FUGaJXflpOINw-828w.webp",
|
|
70
|
+
path: "https://static.levostg.site/WZZKMUBH/netflix-FUGaJXflpOINw-1200w.webp 1200w, https://static.levostg.site/WZZKMUBH/netflix-FUGaJXflpOINw-1920w.webp 1920w, https://static.levostg.site/WZZKMUBH/netflix-FUGaJXflpOINw-320w.webp 320w, https://static.levostg.site/WZZKMUBH/netflix-FUGaJXflpOINw-640w.webp 640w, https://static.levostg.site/WZZKMUBH/netflix-FUGaJXflpOINw-750w.webp 750w, https://static.levostg.site/WZZKMUBH/netflix-FUGaJXflpOINw-828w.webp 828w, https://static.levostg.site/WZZKMUBH/netflix-FUGaJXflpOINw-1080w.webp 1080w",
|
|
71
71
|
},
|
|
72
72
|
},
|
|
73
73
|
edit_profile_block_title: "Wanderlooms",
|
|
@@ -42,31 +42,31 @@ const DEFAULT_CONTENT = {
|
|
|
42
42
|
edit_profile_block_banner_image: {
|
|
43
43
|
id: "jfwLqpex6AK0J",
|
|
44
44
|
kind: "image",
|
|
45
|
-
location: "https://static.levostg.
|
|
45
|
+
location: "https://static.levostg.site/WZZKMUBH/banner-HXVr5tikleqvq.png",
|
|
46
46
|
srcset: {
|
|
47
|
-
"1080w": "https://static.levostg.
|
|
48
|
-
"1200w": "https://static.levostg.
|
|
49
|
-
"1920w": "https://static.levostg.
|
|
50
|
-
"320w": "https://static.levostg.
|
|
51
|
-
"640w": "https://static.levostg.
|
|
52
|
-
"750w": "https://static.levostg.
|
|
53
|
-
"828w": "https://static.levostg.
|
|
54
|
-
path: "https://static.levostg.
|
|
47
|
+
"1080w": "https://static.levostg.site/WZZKMUBH/banner-HXVr5tikleqvq-1080w.webp",
|
|
48
|
+
"1200w": "https://static.levostg.site/WZZKMUBH/banner-HXVr5tikleqvq-1200w.webp",
|
|
49
|
+
"1920w": "https://static.levostg.site/WZZKMUBH/banner-HXVr5tikleqvq-1920w.webp",
|
|
50
|
+
"320w": "https://static.levostg.site/WZZKMUBH/banner-HXVr5tikleqvq-320w.webp",
|
|
51
|
+
"640w": "https://static.levostg.site/WZZKMUBH/banner-HXVr5tikleqvq-640w.webp",
|
|
52
|
+
"750w": "https://static.levostg.site/WZZKMUBH/banner-HXVr5tikleqvq-750w.webp",
|
|
53
|
+
"828w": "https://static.levostg.site/WZZKMUBH/banner-HXVr5tikleqvq-828w.webp",
|
|
54
|
+
path: "https://static.levostg.site/WZZKMUBH/banner-HXVr5tikleqvq-320w.webp 320w, https://static.levostg.site/WZZKMUBH/banner-HXVr5tikleqvq-640w.webp 640w, https://static.levostg.site/WZZKMUBH/banner-HXVr5tikleqvq-750w.webp 750w, https://static.levostg.site/WZZKMUBH/banner-HXVr5tikleqvq-828w.webp 828w, https://static.levostg.site/WZZKMUBH/banner-HXVr5tikleqvq-1080w.webp 1080w, https://static.levostg.site/WZZKMUBH/banner-HXVr5tikleqvq-1200w.webp 1200w, https://static.levostg.site/WZZKMUBH/banner-HXVr5tikleqvq-1920w.webp 1920w",
|
|
55
55
|
},
|
|
56
56
|
},
|
|
57
57
|
edit_profile_block_logo: {
|
|
58
58
|
id: "zucZ9wWTU6qEL",
|
|
59
59
|
kind: "image",
|
|
60
|
-
location: "https://static.levostg.
|
|
60
|
+
location: "https://static.levostg.site/WZZKMUBH/netflix-FUGaJXflpOINw.jpeg",
|
|
61
61
|
srcset: {
|
|
62
|
-
"1080w": "https://static.levostg.
|
|
63
|
-
"1200w": "https://static.levostg.
|
|
64
|
-
"1920w": "https://static.levostg.
|
|
65
|
-
"320w": "https://static.levostg.
|
|
66
|
-
"640w": "https://static.levostg.
|
|
67
|
-
"750w": "https://static.levostg.
|
|
68
|
-
"828w": "https://static.levostg.
|
|
69
|
-
path: "https://static.levostg.
|
|
62
|
+
"1080w": "https://static.levostg.site/WZZKMUBH/netflix-FUGaJXflpOINw-1080w.webp",
|
|
63
|
+
"1200w": "https://static.levostg.site/WZZKMUBH/netflix-FUGaJXflpOINw-1200w.webp",
|
|
64
|
+
"1920w": "https://static.levostg.site/WZZKMUBH/netflix-FUGaJXflpOINw-1920w.webp",
|
|
65
|
+
"320w": "https://static.levostg.site/WZZKMUBH/netflix-FUGaJXflpOINw-320w.webp",
|
|
66
|
+
"640w": "https://static.levostg.site/WZZKMUBH/netflix-FUGaJXflpOINw-640w.webp",
|
|
67
|
+
"750w": "https://static.levostg.site/WZZKMUBH/netflix-FUGaJXflpOINw-750w.webp",
|
|
68
|
+
"828w": "https://static.levostg.site/WZZKMUBH/netflix-FUGaJXflpOINw-828w.webp",
|
|
69
|
+
path: "https://static.levostg.site/WZZKMUBH/netflix-FUGaJXflpOINw-1200w.webp 1200w, https://static.levostg.site/WZZKMUBH/netflix-FUGaJXflpOINw-1920w.webp 1920w, https://static.levostg.site/WZZKMUBH/netflix-FUGaJXflpOINw-320w.webp 320w, https://static.levostg.site/WZZKMUBH/netflix-FUGaJXflpOINw-640w.webp 640w, https://static.levostg.site/WZZKMUBH/netflix-FUGaJXflpOINw-750w.webp 750w, https://static.levostg.site/WZZKMUBH/netflix-FUGaJXflpOINw-828w.webp 828w, https://static.levostg.site/WZZKMUBH/netflix-FUGaJXflpOINw-1080w.webp 1080w",
|
|
70
70
|
},
|
|
71
71
|
},
|
|
72
72
|
edit_profile_block_title: "Wanderlooms",
|
|
@@ -131,6 +131,7 @@ const Ecommerce1: React.FC<ILevoBlockBaseProps<IEcommerce1Content>> = ({ content
|
|
|
131
131
|
<FormInput
|
|
132
132
|
name="search"
|
|
133
133
|
placeholder="Search..."
|
|
134
|
+
aria-label="Search"
|
|
134
135
|
value={search}
|
|
135
136
|
onChange={(e) => {
|
|
136
137
|
setSearch(e?.target?.value || "");
|
|
@@ -138,6 +139,7 @@ const Ecommerce1: React.FC<ILevoBlockBaseProps<IEcommerce1Content>> = ({ content
|
|
|
138
139
|
}}
|
|
139
140
|
leftIcon={<Search size={22} />}
|
|
140
141
|
inputProps={{
|
|
142
|
+
"aria-label": "Search",
|
|
141
143
|
style: {
|
|
142
144
|
padding: "1rem",
|
|
143
145
|
paddingLeft: "3rem",
|
|
@@ -25,16 +25,16 @@ const DEFAULT_CONTENT = {
|
|
|
25
25
|
id: "w9fEtJuVtBFgU",
|
|
26
26
|
filename: "image.png",
|
|
27
27
|
kind: "image",
|
|
28
|
-
location: "https://static.levostg.
|
|
28
|
+
location: "https://static.levostg.site/W6OEVMW8/image-6HgF6xxhyiHBm.png",
|
|
29
29
|
srcset: {
|
|
30
|
-
"1080w": "https://static.levostg.
|
|
31
|
-
"1200w": "https://static.levostg.
|
|
32
|
-
"1920w": "https://static.levostg.
|
|
33
|
-
"320w": "https://static.levostg.
|
|
34
|
-
"640w": "https://static.levostg.
|
|
35
|
-
"750w": "https://static.levostg.
|
|
36
|
-
"828w": "https://static.levostg.
|
|
37
|
-
path: "https://static.levostg.
|
|
30
|
+
"1080w": "https://static.levostg.site/W6OEVMW8/image-6HgF6xxhyiHBm-1080w.webp",
|
|
31
|
+
"1200w": "https://static.levostg.site/W6OEVMW8/image-6HgF6xxhyiHBm-1200w.webp",
|
|
32
|
+
"1920w": "https://static.levostg.site/W6OEVMW8/image-6HgF6xxhyiHBm-1920w.webp",
|
|
33
|
+
"320w": "https://static.levostg.site/W6OEVMW8/image-6HgF6xxhyiHBm-320w.webp",
|
|
34
|
+
"640w": "https://static.levostg.site/W6OEVMW8/image-6HgF6xxhyiHBm-640w.webp",
|
|
35
|
+
"750w": "https://static.levostg.site/W6OEVMW8/image-6HgF6xxhyiHBm-750w.webp",
|
|
36
|
+
"828w": "https://static.levostg.site/W6OEVMW8/image-6HgF6xxhyiHBm-828w.webp",
|
|
37
|
+
path: "https://static.levostg.site/W6OEVMW8/image-6HgF6xxhyiHBm-750w.webp 750w, https://static.levostg.site/W6OEVMW8/image-6HgF6xxhyiHBm-828w.webp 828w, https://static.levostg.site/W6OEVMW8/image-6HgF6xxhyiHBm-1080w.webp 1080w, https://static.levostg.site/W6OEVMW8/image-6HgF6xxhyiHBm-1200w.webp 1200w, https://static.levostg.site/W6OEVMW8/image-6HgF6xxhyiHBm-1920w.webp 1920w, https://static.levostg.site/W6OEVMW8/image-6HgF6xxhyiHBm-320w.webp 320w, https://static.levostg.site/W6OEVMW8/image-6HgF6xxhyiHBm-640w.webp 640w",
|
|
38
38
|
},
|
|
39
39
|
mimetype: "image/png",
|
|
40
40
|
},
|
|
@@ -13,18 +13,18 @@ const DEFAULT_CONTENT = {
|
|
|
13
13
|
eventWrapper: null,
|
|
14
14
|
image: {
|
|
15
15
|
id: "n3qaofSpKt8tg",
|
|
16
|
-
location: "https://static.levostg.
|
|
16
|
+
location: "https://static.levostg.site/W6OEVMW8/image-PzNnkMNc4PU9C.png",
|
|
17
17
|
mimetype: "image/png",
|
|
18
18
|
kind: "image",
|
|
19
19
|
srcset: {
|
|
20
|
-
"1080w": "https://static.levostg.
|
|
21
|
-
"1200w": "https://static.levostg.
|
|
22
|
-
"1920w": "https://static.levostg.
|
|
23
|
-
"320w": "https://static.levostg.
|
|
24
|
-
"640w": "https://static.levostg.
|
|
25
|
-
"750w": "https://static.levostg.
|
|
26
|
-
"828w": "https://static.levostg.
|
|
27
|
-
path: "https://static.levostg.
|
|
20
|
+
"1080w": "https://static.levostg.site/W6OEVMW8/image-PzNnkMNc4PU9C-1080w.webp",
|
|
21
|
+
"1200w": "https://static.levostg.site/W6OEVMW8/image-PzNnkMNc4PU9C-1200w.webp",
|
|
22
|
+
"1920w": "https://static.levostg.site/W6OEVMW8/image-PzNnkMNc4PU9C-1920w.webp",
|
|
23
|
+
"320w": "https://static.levostg.site/W6OEVMW8/image-PzNnkMNc4PU9C-320w.webp",
|
|
24
|
+
"640w": "https://static.levostg.site/W6OEVMW8/image-PzNnkMNc4PU9C-640w.webp",
|
|
25
|
+
"750w": "https://static.levostg.site/W6OEVMW8/image-PzNnkMNc4PU9C-750w.webp",
|
|
26
|
+
"828w": "https://static.levostg.site/W6OEVMW8/image-PzNnkMNc4PU9C-828w.webp",
|
|
27
|
+
path: "https://static.levostg.site/W6OEVMW8/image-PzNnkMNc4PU9C-1080w.webp 1080w, https://static.levostg.site/W6OEVMW8/image-PzNnkMNc4PU9C-1200w.webp 1200w, https://static.levostg.site/W6OEVMW8/image-PzNnkMNc4PU9C-1920w.webp 1920w, https://static.levostg.site/W6OEVMW8/image-PzNnkMNc4PU9C-320w.webp 320w, https://static.levostg.site/W6OEVMW8/image-PzNnkMNc4PU9C-640w.webp 640w, https://static.levostg.site/W6OEVMW8/image-PzNnkMNc4PU9C-828w.webp 828w, https://static.levostg.site/W6OEVMW8/image-PzNnkMNc4PU9C-750w.webp 750w",
|
|
28
28
|
},
|
|
29
29
|
},
|
|
30
30
|
"text-wrapper": null,
|
|
@@ -76,18 +76,18 @@ const DEFAULT_CONTENT = {
|
|
|
76
76
|
eventWrapper: null,
|
|
77
77
|
image: {
|
|
78
78
|
id: "n3qaofSpKt8tg",
|
|
79
|
-
location: "https://static.levostg.
|
|
79
|
+
location: "https://static.levostg.site/W6OEVMW8/image-PzNnkMNc4PU9C.png",
|
|
80
80
|
mimetype: "image/png",
|
|
81
81
|
kind: "image",
|
|
82
82
|
srcset: {
|
|
83
|
-
"1080w": "https://static.levostg.
|
|
84
|
-
"1200w": "https://static.levostg.
|
|
85
|
-
"1920w": "https://static.levostg.
|
|
86
|
-
"320w": "https://static.levostg.
|
|
87
|
-
"640w": "https://static.levostg.
|
|
88
|
-
"750w": "https://static.levostg.
|
|
89
|
-
"828w": "https://static.levostg.
|
|
90
|
-
path: "https://static.levostg.
|
|
83
|
+
"1080w": "https://static.levostg.site/W6OEVMW8/image-PzNnkMNc4PU9C-1080w.webp",
|
|
84
|
+
"1200w": "https://static.levostg.site/W6OEVMW8/image-PzNnkMNc4PU9C-1200w.webp",
|
|
85
|
+
"1920w": "https://static.levostg.site/W6OEVMW8/image-PzNnkMNc4PU9C-1920w.webp",
|
|
86
|
+
"320w": "https://static.levostg.site/W6OEVMW8/image-PzNnkMNc4PU9C-320w.webp",
|
|
87
|
+
"640w": "https://static.levostg.site/W6OEVMW8/image-PzNnkMNc4PU9C-640w.webp",
|
|
88
|
+
"750w": "https://static.levostg.site/W6OEVMW8/image-PzNnkMNc4PU9C-750w.webp",
|
|
89
|
+
"828w": "https://static.levostg.site/W6OEVMW8/image-PzNnkMNc4PU9C-828w.webp",
|
|
90
|
+
path: "https://static.levostg.site/W6OEVMW8/image-PzNnkMNc4PU9C-1080w.webp 1080w, https://static.levostg.site/W6OEVMW8/image-PzNnkMNc4PU9C-1200w.webp 1200w, https://static.levostg.site/W6OEVMW8/image-PzNnkMNc4PU9C-1920w.webp 1920w, https://static.levostg.site/W6OEVMW8/image-PzNnkMNc4PU9C-320w.webp 320w, https://static.levostg.site/W6OEVMW8/image-PzNnkMNc4PU9C-640w.webp 640w, https://static.levostg.site/W6OEVMW8/image-PzNnkMNc4PU9C-828w.webp 828w, https://static.levostg.site/W6OEVMW8/image-PzNnkMNc4PU9C-750w.webp 750w",
|
|
91
91
|
},
|
|
92
92
|
},
|
|
93
93
|
"text-wrapper": null,
|
|
@@ -139,18 +139,18 @@ const DEFAULT_CONTENT = {
|
|
|
139
139
|
eventWrapper: null,
|
|
140
140
|
image: {
|
|
141
141
|
id: "n3qaofSpKt8tg",
|
|
142
|
-
location: "https://static.levostg.
|
|
142
|
+
location: "https://static.levostg.site/W6OEVMW8/image-PzNnkMNc4PU9C.png",
|
|
143
143
|
mimetype: "image/png",
|
|
144
144
|
kind: "image",
|
|
145
145
|
srcset: {
|
|
146
|
-
"1080w": "https://static.levostg.
|
|
147
|
-
"1200w": "https://static.levostg.
|
|
148
|
-
"1920w": "https://static.levostg.
|
|
149
|
-
"320w": "https://static.levostg.
|
|
150
|
-
"640w": "https://static.levostg.
|
|
151
|
-
"750w": "https://static.levostg.
|
|
152
|
-
"828w": "https://static.levostg.
|
|
153
|
-
path: "https://static.levostg.
|
|
146
|
+
"1080w": "https://static.levostg.site/W6OEVMW8/image-PzNnkMNc4PU9C-1080w.webp",
|
|
147
|
+
"1200w": "https://static.levostg.site/W6OEVMW8/image-PzNnkMNc4PU9C-1200w.webp",
|
|
148
|
+
"1920w": "https://static.levostg.site/W6OEVMW8/image-PzNnkMNc4PU9C-1920w.webp",
|
|
149
|
+
"320w": "https://static.levostg.site/W6OEVMW8/image-PzNnkMNc4PU9C-320w.webp",
|
|
150
|
+
"640w": "https://static.levostg.site/W6OEVMW8/image-PzNnkMNc4PU9C-640w.webp",
|
|
151
|
+
"750w": "https://static.levostg.site/W6OEVMW8/image-PzNnkMNc4PU9C-750w.webp",
|
|
152
|
+
"828w": "https://static.levostg.site/W6OEVMW8/image-PzNnkMNc4PU9C-828w.webp",
|
|
153
|
+
path: "https://static.levostg.site/W6OEVMW8/image-PzNnkMNc4PU9C-1080w.webp 1080w, https://static.levostg.site/W6OEVMW8/image-PzNnkMNc4PU9C-1200w.webp 1200w, https://static.levostg.site/W6OEVMW8/image-PzNnkMNc4PU9C-1920w.webp 1920w, https://static.levostg.site/W6OEVMW8/image-PzNnkMNc4PU9C-320w.webp 320w, https://static.levostg.site/W6OEVMW8/image-PzNnkMNc4PU9C-640w.webp 640w, https://static.levostg.site/W6OEVMW8/image-PzNnkMNc4PU9C-828w.webp 828w, https://static.levostg.site/W6OEVMW8/image-PzNnkMNc4PU9C-750w.webp 750w",
|
|
154
154
|
},
|
|
155
155
|
},
|
|
156
156
|
"text-wrapper": null,
|
|
@@ -202,18 +202,18 @@ const DEFAULT_CONTENT = {
|
|
|
202
202
|
eventWrapper: null,
|
|
203
203
|
image: {
|
|
204
204
|
id: "n3qaofSpKt8tg",
|
|
205
|
-
location: "https://static.levostg.
|
|
205
|
+
location: "https://static.levostg.site/W6OEVMW8/image-PzNnkMNc4PU9C.png",
|
|
206
206
|
mimetype: "image/png",
|
|
207
207
|
kind: "image",
|
|
208
208
|
srcset: {
|
|
209
|
-
"1080w": "https://static.levostg.
|
|
210
|
-
"1200w": "https://static.levostg.
|
|
211
|
-
"1920w": "https://static.levostg.
|
|
212
|
-
"320w": "https://static.levostg.
|
|
213
|
-
"640w": "https://static.levostg.
|
|
214
|
-
"750w": "https://static.levostg.
|
|
215
|
-
"828w": "https://static.levostg.
|
|
216
|
-
path: "https://static.levostg.
|
|
209
|
+
"1080w": "https://static.levostg.site/W6OEVMW8/image-PzNnkMNc4PU9C-1080w.webp",
|
|
210
|
+
"1200w": "https://static.levostg.site/W6OEVMW8/image-PzNnkMNc4PU9C-1200w.webp",
|
|
211
|
+
"1920w": "https://static.levostg.site/W6OEVMW8/image-PzNnkMNc4PU9C-1920w.webp",
|
|
212
|
+
"320w": "https://static.levostg.site/W6OEVMW8/image-PzNnkMNc4PU9C-320w.webp",
|
|
213
|
+
"640w": "https://static.levostg.site/W6OEVMW8/image-PzNnkMNc4PU9C-640w.webp",
|
|
214
|
+
"750w": "https://static.levostg.site/W6OEVMW8/image-PzNnkMNc4PU9C-750w.webp",
|
|
215
|
+
"828w": "https://static.levostg.site/W6OEVMW8/image-PzNnkMNc4PU9C-828w.webp",
|
|
216
|
+
path: "https://static.levostg.site/W6OEVMW8/image-PzNnkMNc4PU9C-1080w.webp 1080w, https://static.levostg.site/W6OEVMW8/image-PzNnkMNc4PU9C-1200w.webp 1200w, https://static.levostg.site/W6OEVMW8/image-PzNnkMNc4PU9C-1920w.webp 1920w, https://static.levostg.site/W6OEVMW8/image-PzNnkMNc4PU9C-320w.webp 320w, https://static.levostg.site/W6OEVMW8/image-PzNnkMNc4PU9C-640w.webp 640w, https://static.levostg.site/W6OEVMW8/image-PzNnkMNc4PU9C-828w.webp 828w, https://static.levostg.site/W6OEVMW8/image-PzNnkMNc4PU9C-750w.webp 750w",
|
|
217
217
|
},
|
|
218
218
|
},
|
|
219
219
|
"text-wrapper": null,
|
package/src/blocks/faq/faq-1.tsx
CHANGED
|
@@ -41,7 +41,7 @@ const Faq1: React.FC<ILevoBlockBaseProps<IFaq1Content>> = ({ content }) => (
|
|
|
41
41
|
>
|
|
42
42
|
<AccordionTrigger elementKey={`faqs.${index}.trigger`}>
|
|
43
43
|
<Box elementKey={`faqs.${index}.iconQuestionWrapper`}>
|
|
44
|
-
<Icon elementKey={`faqs.${index}.triggerIcon`} />
|
|
44
|
+
<Icon aria-label="FAQ icon" elementKey={`faqs.${index}.triggerIcon`} />
|
|
45
45
|
<Heading elementKey={`faqs.${index}.question`} />
|
|
46
46
|
</Box>
|
|
47
47
|
</AccordionTrigger>
|
package/src/blocks/faq/faq-2.tsx
CHANGED
|
@@ -62,7 +62,7 @@ const Faq2: React.FC<ILevoBlockBaseProps<IFaq2Content>> = ({ content }) => {
|
|
|
62
62
|
>
|
|
63
63
|
<AccordionTrigger elementKey={`faqs.${index}.trigger`}>
|
|
64
64
|
<Box elementKey={`faqs.${index}.iconQuestionWrapper`}>
|
|
65
|
-
<Icon elementKey={`faqs.${index}.triggerIcon`} />
|
|
65
|
+
<Icon aria-label="FAQ icon" elementKey={`faqs.${index}.triggerIcon`} />
|
|
66
66
|
<Typography elementKey={`faqs.${index}.question`} />
|
|
67
67
|
</Box>
|
|
68
68
|
</AccordionTrigger>
|
package/src/blocks/faq/faq-3.tsx
CHANGED
|
@@ -49,7 +49,11 @@ const Faq3: React.FC<ILevoBlockBaseProps<IFaq3Content>> = ({ content }) => (
|
|
|
49
49
|
>
|
|
50
50
|
<AccordionTrigger elementKey={`faqs.${index}.trigger`}>
|
|
51
51
|
<Box elementKey={`faqs.${index}.iconQuestionWrapper`}>
|
|
52
|
-
<Image
|
|
52
|
+
<Image
|
|
53
|
+
alt="icon"
|
|
54
|
+
aria-label="FAQ icon"
|
|
55
|
+
elementKey={`faqs.${index}.triggerIcon`}
|
|
56
|
+
/>
|
|
53
57
|
<Heading elementKey={`faqs.${index}.question`} />
|
|
54
58
|
</Box>
|
|
55
59
|
</AccordionTrigger>
|