@weaverse/react 0.6.14 → 0.6.17
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/dist/index.d.ts +6 -2
- package/dist/index.js +336 -436
- package/dist/index.mjs +350 -450
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -64,230 +64,182 @@ module.exports = __toCommonJS(src_exports);
|
|
|
64
64
|
var import_core = require("@weaverse/core");
|
|
65
65
|
var import_react9 = require("react");
|
|
66
66
|
|
|
67
|
-
// src/elements/base.tsx
|
|
68
|
-
var import_react = __toESM(require("react"));
|
|
69
|
-
var BaseElement = import_react.default.forwardRef((_a, ref) => {
|
|
70
|
-
var _b = _a, { tag, children } = _b, props = __objRest(_b, ["tag", "children"]);
|
|
71
|
-
return import_react.default.createElement(tag, __spreadValues({
|
|
72
|
-
ref
|
|
73
|
-
}, props), children);
|
|
74
|
-
});
|
|
75
|
-
BaseElement.defaultProps = {
|
|
76
|
-
tag: "div",
|
|
77
|
-
style: {}
|
|
78
|
-
};
|
|
79
|
-
var schema = {
|
|
80
|
-
type: "base",
|
|
81
|
-
parentType: "container",
|
|
82
|
-
title: "Base",
|
|
83
|
-
settings: []
|
|
84
|
-
};
|
|
85
|
-
var base_default = BaseElement;
|
|
86
|
-
|
|
87
67
|
// src/elements/button.tsx
|
|
88
|
-
var
|
|
89
|
-
var Button =
|
|
90
|
-
const _a = props, {
|
|
68
|
+
var React = __toESM(require("react"));
|
|
69
|
+
var Button = React.forwardRef((props, ref) => {
|
|
70
|
+
const _a = props, { openInNewTab, target, value } = _a, rest = __objRest(_a, ["openInNewTab", "target", "value"]);
|
|
91
71
|
if (target) {
|
|
92
|
-
return /* @__PURE__ */
|
|
72
|
+
return /* @__PURE__ */ React.createElement("a", __spreadProps(__spreadValues({
|
|
93
73
|
href: target,
|
|
94
|
-
target: openInNewTab ? "_blank" : "_self"
|
|
95
|
-
|
|
74
|
+
target: openInNewTab ? "_blank" : "_self",
|
|
75
|
+
rel: "noreferrer"
|
|
76
|
+
}, rest), {
|
|
96
77
|
ref
|
|
97
|
-
}
|
|
78
|
+
}), value);
|
|
98
79
|
}
|
|
99
|
-
return /* @__PURE__ */
|
|
80
|
+
return /* @__PURE__ */ React.createElement("button", __spreadValues({
|
|
100
81
|
ref
|
|
101
|
-
}, rest),
|
|
82
|
+
}, rest), value);
|
|
102
83
|
});
|
|
103
84
|
Button.defaultProps = {
|
|
104
|
-
value: "Shop now"
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
title: "Button",
|
|
85
|
+
value: "Shop now",
|
|
86
|
+
openInNewTab: false,
|
|
87
|
+
target: "",
|
|
108
88
|
type: "button",
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
{
|
|
118
|
-
type: "border"
|
|
119
|
-
},
|
|
120
|
-
{
|
|
121
|
-
type: "background"
|
|
122
|
-
},
|
|
123
|
-
{
|
|
124
|
-
type: "spacing"
|
|
89
|
+
css: {
|
|
90
|
+
"@desktop": {
|
|
91
|
+
borderRadius: "72px",
|
|
92
|
+
border: "none",
|
|
93
|
+
backgroundColor: "#0F71FF",
|
|
94
|
+
color: "#fff",
|
|
95
|
+
fontSize: "13px",
|
|
96
|
+
padding: "10px 20px"
|
|
125
97
|
}
|
|
126
|
-
],
|
|
127
|
-
settings: [],
|
|
128
|
-
toolbar: [
|
|
129
|
-
{
|
|
130
|
-
type: "delete"
|
|
131
|
-
},
|
|
132
|
-
{
|
|
133
|
-
type: "duplicate"
|
|
134
|
-
},
|
|
135
|
-
{
|
|
136
|
-
type: "link"
|
|
137
|
-
},
|
|
138
|
-
{
|
|
139
|
-
type: "color"
|
|
140
|
-
}
|
|
141
|
-
],
|
|
142
|
-
data: {
|
|
143
|
-
css: {
|
|
144
|
-
"@desktop": {
|
|
145
|
-
borderRadius: "72px",
|
|
146
|
-
border: "none",
|
|
147
|
-
backgroundColor: "#0F71FF",
|
|
148
|
-
color: "#fff",
|
|
149
|
-
fontSize: "13px",
|
|
150
|
-
padding: "10px 20px"
|
|
151
|
-
}
|
|
152
|
-
},
|
|
153
|
-
target: "",
|
|
154
|
-
openInNewTab: false
|
|
155
|
-
},
|
|
156
|
-
flags: {
|
|
157
|
-
draggable: true
|
|
158
98
|
}
|
|
159
99
|
};
|
|
160
100
|
var button_default = Button;
|
|
161
101
|
|
|
162
102
|
// src/elements/container.tsx
|
|
163
|
-
var
|
|
164
|
-
var Container = (0,
|
|
165
|
-
return /* @__PURE__ */
|
|
103
|
+
var import_react = __toESM(require("react"));
|
|
104
|
+
var Container = (0, import_react.forwardRef)((props, ref) => {
|
|
105
|
+
return /* @__PURE__ */ import_react.default.createElement("div", __spreadValues({
|
|
166
106
|
ref
|
|
167
107
|
}, props));
|
|
168
108
|
});
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
"
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
gridArea: "1 / 1 / 3 / 6",
|
|
183
|
-
width: "100%",
|
|
184
|
-
height: "fit-content"
|
|
185
|
-
}
|
|
109
|
+
Container.defaultProps = {
|
|
110
|
+
css: {
|
|
111
|
+
"@desktop": {
|
|
112
|
+
alignItems: "flex-start",
|
|
113
|
+
backgroundColor: "rgba(248,203,203,0.38)",
|
|
114
|
+
display: "flex",
|
|
115
|
+
flexDirection: "column",
|
|
116
|
+
gridArea: "1 / 1 / 3 / 6",
|
|
117
|
+
height: "fit-content",
|
|
118
|
+
justifyContent: "flex-start",
|
|
119
|
+
overflow: "hidden",
|
|
120
|
+
textAlign: "left",
|
|
121
|
+
width: "100%"
|
|
186
122
|
}
|
|
187
|
-
},
|
|
188
|
-
settings: [],
|
|
189
|
-
flags: {
|
|
190
|
-
draggable: true,
|
|
191
|
-
resizable: true,
|
|
192
|
-
sortable: true
|
|
193
123
|
}
|
|
194
124
|
};
|
|
195
125
|
var container_default = Container;
|
|
196
126
|
|
|
197
|
-
// src/elements/
|
|
127
|
+
// src/elements/countdown/index.tsx
|
|
198
128
|
var import_react3 = __toESM(require("react"));
|
|
199
|
-
var Layout = (0, import_react3.forwardRef)((props, ref) => {
|
|
200
|
-
const _a = props, { css, children, rows, gap, rowSize, columns, gridSize } = _a, rest = __objRest(_a, ["css", "children", "rows", "gap", "rowSize", "columns", "gridSize"]);
|
|
201
|
-
return /* @__PURE__ */ import_react3.default.createElement("section", __spreadValues({
|
|
202
|
-
ref,
|
|
203
|
-
style: {
|
|
204
|
-
"--grid-size": gridSize + "px",
|
|
205
|
-
"--rows": rows,
|
|
206
|
-
"--columns": columns,
|
|
207
|
-
"--gap": gap + "px",
|
|
208
|
-
"--row-size": rowSize + "px",
|
|
209
|
-
"--col-size": "calc((var(--grid-size) - calc(var(--columns) - 1) * var(--gap)) / var(--columns))"
|
|
210
|
-
}
|
|
211
|
-
}, rest), /* @__PURE__ */ import_react3.default.createElement("div", {
|
|
212
|
-
"data-layout-content": true
|
|
213
|
-
}, children));
|
|
214
|
-
});
|
|
215
|
-
var schema4 = {
|
|
216
|
-
title: "Layout",
|
|
217
|
-
type: "layout",
|
|
218
|
-
parentType: "root",
|
|
219
|
-
data: {
|
|
220
|
-
css: {
|
|
221
|
-
"@desktop": {
|
|
222
|
-
paddingTop: "16px",
|
|
223
|
-
paddingBottom: "16px",
|
|
224
|
-
paddingLeft: "var(--gap)",
|
|
225
|
-
paddingRight: "var(--gap)",
|
|
226
|
-
"> [data-layout-content]": {
|
|
227
|
-
margin: "0 auto",
|
|
228
|
-
display: "grid !important",
|
|
229
|
-
gridTemplateRows: "repeat(var(--rows), var(--row-size))",
|
|
230
|
-
gridTemplateColumns: "repeat(var(--columns), minmax(0, var(--col-size)))",
|
|
231
|
-
gap: "var(--gap)",
|
|
232
|
-
maxWidth: "var(--grid-size)"
|
|
233
|
-
}
|
|
234
|
-
},
|
|
235
|
-
"@mobile": {
|
|
236
|
-
padding: "0 16px",
|
|
237
|
-
"> [data-layout-content]": {
|
|
238
|
-
display: "flex !important",
|
|
239
|
-
flexDirection: "column"
|
|
240
|
-
}
|
|
241
|
-
}
|
|
242
|
-
},
|
|
243
|
-
gridSize: 1224,
|
|
244
|
-
rows: 12,
|
|
245
|
-
columns: 12,
|
|
246
|
-
gap: 16,
|
|
247
|
-
rowSize: 48
|
|
248
|
-
},
|
|
249
|
-
settings: []
|
|
250
|
-
};
|
|
251
|
-
var layout_default = Layout;
|
|
252
129
|
|
|
253
|
-
// src/elements/
|
|
254
|
-
var
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
130
|
+
// src/elements/countdown/timer-block.tsx
|
|
131
|
+
var import_react2 = __toESM(require("react"));
|
|
132
|
+
function TimerBlock({ value, label }) {
|
|
133
|
+
return /* @__PURE__ */ import_react2.default.createElement("div", null, /* @__PURE__ */ import_react2.default.createElement("div", {
|
|
134
|
+
className: "wv-countdown-number"
|
|
135
|
+
}, value.toString().padStart(2, "0")), label && /* @__PURE__ */ import_react2.default.createElement("div", {
|
|
136
|
+
className: "wv-countdown-label"
|
|
137
|
+
}, label));
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
// src/elements/countdown/utils.ts
|
|
141
|
+
var times = ["days", "hours", "minutes", "seconds"];
|
|
142
|
+
function getTime(_seconds) {
|
|
143
|
+
const ONE_MINUTE = 60 * 1e3;
|
|
144
|
+
const ONE_HOUR = 60 * ONE_MINUTE;
|
|
145
|
+
const ONE_DAY = 24 * ONE_HOUR;
|
|
146
|
+
const days = Math.floor(_seconds / ONE_DAY);
|
|
147
|
+
const hours = Math.floor((_seconds - days * ONE_DAY) / ONE_HOUR);
|
|
148
|
+
const minutes = Math.floor((_seconds - days * ONE_DAY - hours * ONE_HOUR) / ONE_MINUTE);
|
|
149
|
+
const seconds = Math.floor((_seconds - days * ONE_DAY - hours * ONE_HOUR - minutes * ONE_MINUTE) / 1e3);
|
|
150
|
+
return { days, hours, minutes, seconds };
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
// src/elements/countdown/index.tsx
|
|
154
|
+
var Countdown = (0, import_react3.forwardRef)((props, ref) => {
|
|
155
|
+
const { isDesignMode } = (0, import_react3.useContext)(WeaverseContext);
|
|
156
|
+
let _a = props, {
|
|
157
|
+
timerType,
|
|
158
|
+
startTime,
|
|
159
|
+
endTime,
|
|
160
|
+
periods,
|
|
161
|
+
redirectUrl,
|
|
162
|
+
openInNewTab,
|
|
163
|
+
showColon,
|
|
164
|
+
showLabel
|
|
165
|
+
} = _a, rest = __objRest(_a, [
|
|
166
|
+
"timerType",
|
|
167
|
+
"startTime",
|
|
168
|
+
"endTime",
|
|
169
|
+
"periods",
|
|
170
|
+
"redirectUrl",
|
|
171
|
+
"openInNewTab",
|
|
172
|
+
"showColon",
|
|
173
|
+
"showLabel"
|
|
174
|
+
]);
|
|
175
|
+
const [remaining, setRemaining] = import_react3.default.useState(0);
|
|
176
|
+
if (typeof endTime !== "number") {
|
|
177
|
+
endTime = Number.parseInt(endTime);
|
|
178
|
+
}
|
|
179
|
+
(0, import_react3.useEffect)(() => {
|
|
180
|
+
const flag = setInterval(() => {
|
|
181
|
+
const remainingTime = Math.max((timerType === "specific" ? new Date(endTime).getTime() : new Date(startTime).getTime() + periods * 60 * 1e3) - Date.now(), 0);
|
|
182
|
+
if (!isDesignMode && redirectUrl && remainingTime > 0 && remainingTime < 1e3) {
|
|
183
|
+
window.open(redirectUrl, openInNewTab ? "_blank" : "_self");
|
|
184
|
+
}
|
|
185
|
+
setRemaining(remainingTime);
|
|
186
|
+
}, 1e3);
|
|
187
|
+
return () => {
|
|
188
|
+
clearInterval(flag);
|
|
189
|
+
};
|
|
190
|
+
}, [startTime, endTime, periods, timerType]);
|
|
191
|
+
const timer = getTime(remaining);
|
|
192
|
+
return /* @__PURE__ */ import_react3.default.createElement("div", __spreadValues({
|
|
258
193
|
ref
|
|
259
|
-
}, rest), {
|
|
260
|
-
|
|
194
|
+
}, rest), times.map((time) => {
|
|
195
|
+
return /* @__PURE__ */ import_react3.default.createElement(import_react3.default.Fragment, {
|
|
196
|
+
key: time
|
|
197
|
+
}, /* @__PURE__ */ import_react3.default.createElement(TimerBlock, {
|
|
198
|
+
label: showLabel ? time : "",
|
|
199
|
+
value: timer[time]
|
|
200
|
+
}), time !== "seconds" && /* @__PURE__ */ import_react3.default.createElement("span", {
|
|
201
|
+
className: `wv-countdown-number ${showColon ? "" : "hidden"}`
|
|
202
|
+
}, ":"));
|
|
261
203
|
}));
|
|
262
204
|
});
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
205
|
+
Countdown.defaultProps = {
|
|
206
|
+
timerType: "specific",
|
|
207
|
+
startTime: Date.now(),
|
|
208
|
+
endTime: 1661140528e3,
|
|
209
|
+
periods: 90,
|
|
210
|
+
redirectUrl: "https://myshop.com",
|
|
211
|
+
openInNewTab: false,
|
|
212
|
+
showLabel: true,
|
|
213
|
+
showColon: true,
|
|
214
|
+
css: {
|
|
215
|
+
"@desktop": {
|
|
216
|
+
fontFamily: "Inter",
|
|
217
|
+
fontSize: 36,
|
|
218
|
+
fontWeight: 500,
|
|
219
|
+
display: "grid",
|
|
220
|
+
gridAutoFlow: "column",
|
|
221
|
+
gap: 10,
|
|
222
|
+
"& > div": {
|
|
223
|
+
width: 48,
|
|
224
|
+
textAlign: "center"
|
|
225
|
+
},
|
|
226
|
+
"& .wv-countdown-label": {
|
|
227
|
+
fontSize: 10
|
|
228
|
+
},
|
|
229
|
+
"& > span": {
|
|
230
|
+
lineHeight: "100%"
|
|
231
|
+
},
|
|
232
|
+
"& .hidden": {
|
|
233
|
+
visibility: "hidden"
|
|
282
234
|
}
|
|
283
235
|
}
|
|
284
236
|
}
|
|
285
237
|
};
|
|
286
|
-
var
|
|
238
|
+
var countdown_default = Countdown;
|
|
287
239
|
|
|
288
240
|
// src/elements/image.tsx
|
|
289
241
|
var import_react4 = __toESM(require("react"));
|
|
290
|
-
var Image = import_react4.default.forwardRef(
|
|
242
|
+
var Image = import_react4.default.forwardRef((props, ref) => {
|
|
291
243
|
let _a = props, { src, alt, children } = _a, rest = __objRest(_a, ["src", "alt", "children"]);
|
|
292
244
|
return /* @__PURE__ */ import_react4.default.createElement("img", __spreadProps(__spreadValues({
|
|
293
245
|
ref
|
|
@@ -298,101 +250,77 @@ var Image = import_react4.default.forwardRef(function Image2(props, ref) {
|
|
|
298
250
|
});
|
|
299
251
|
Image.defaultProps = {
|
|
300
252
|
src: "https://ucarecdn.com/1cdc9d39-ca62-492e-8ec7-f1a86b241a90/",
|
|
301
|
-
alt: "weaverse image element"
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
"@desktop": {
|
|
311
|
-
width: "100%",
|
|
312
|
-
height: "100%",
|
|
313
|
-
objectFit: "cover"
|
|
314
|
-
},
|
|
315
|
-
"@mobile": {
|
|
316
|
-
display: "block"
|
|
317
|
-
}
|
|
253
|
+
alt: "weaverse image element",
|
|
254
|
+
css: {
|
|
255
|
+
"@desktop": {
|
|
256
|
+
width: "100%",
|
|
257
|
+
height: "100%",
|
|
258
|
+
objectFit: "cover"
|
|
259
|
+
},
|
|
260
|
+
"@mobile": {
|
|
261
|
+
display: "block"
|
|
318
262
|
}
|
|
319
|
-
},
|
|
320
|
-
flags: {
|
|
321
|
-
resizable: true,
|
|
322
|
-
draggable: true,
|
|
323
|
-
sortable: true
|
|
324
263
|
}
|
|
325
264
|
};
|
|
326
265
|
var image_default = Image;
|
|
327
266
|
|
|
328
|
-
// src/elements/
|
|
267
|
+
// src/elements/layout.tsx
|
|
329
268
|
var import_react5 = __toESM(require("react"));
|
|
330
|
-
var
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
if (isDesignMode) {
|
|
334
|
-
controls = false;
|
|
335
|
-
autoPlay = false;
|
|
336
|
-
}
|
|
337
|
-
console.info("9779 props", props, isDesignMode);
|
|
338
|
-
return /* @__PURE__ */ import_react5.default.createElement("video", __spreadValues({
|
|
269
|
+
var Layout = (0, import_react5.forwardRef)((props, ref) => {
|
|
270
|
+
let _a = props, { children, rows, gap, rowSize, columns, gridSize } = _a, rest = __objRest(_a, ["children", "rows", "gap", "rowSize", "columns", "gridSize"]);
|
|
271
|
+
return /* @__PURE__ */ import_react5.default.createElement("section", __spreadValues({
|
|
339
272
|
ref,
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
273
|
+
style: {
|
|
274
|
+
"--grid-size": gridSize + "px",
|
|
275
|
+
"--rows": rows,
|
|
276
|
+
"--columns": columns,
|
|
277
|
+
"--gap": gap + "px",
|
|
278
|
+
"--row-size": rowSize + "px",
|
|
279
|
+
"--col-size": "calc((var(--grid-size) - calc(var(--columns) - 1) * var(--gap)) / var(--columns))"
|
|
280
|
+
}
|
|
281
|
+
}, rest), /* @__PURE__ */ import_react5.default.createElement("div", {
|
|
282
|
+
"data-layout-content": true
|
|
283
|
+
}, children));
|
|
350
284
|
});
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
var
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
type: "duplicate"
|
|
372
|
-
},
|
|
373
|
-
{
|
|
374
|
-
type: "link"
|
|
285
|
+
Layout.defaultProps = {
|
|
286
|
+
gridSize: 1224,
|
|
287
|
+
rows: 12,
|
|
288
|
+
columns: 12,
|
|
289
|
+
gap: 16,
|
|
290
|
+
rowSize: 48,
|
|
291
|
+
css: {
|
|
292
|
+
"@desktop": {
|
|
293
|
+
paddingTop: "16px",
|
|
294
|
+
paddingBottom: "16px",
|
|
295
|
+
paddingLeft: "var(--gap)",
|
|
296
|
+
paddingRight: "var(--gap)",
|
|
297
|
+
"> [data-layout-content]": {
|
|
298
|
+
margin: "0 auto",
|
|
299
|
+
display: "grid !important",
|
|
300
|
+
gridTemplateRows: "repeat(var(--rows), var(--row-size))",
|
|
301
|
+
gridTemplateColumns: "repeat(var(--columns), minmax(0, var(--col-size)))",
|
|
302
|
+
gap: "var(--gap)",
|
|
303
|
+
maxWidth: "var(--grid-size)"
|
|
304
|
+
}
|
|
375
305
|
},
|
|
376
|
-
{
|
|
377
|
-
|
|
306
|
+
"@mobile": {
|
|
307
|
+
padding: "0 16px",
|
|
308
|
+
"> [data-layout-content]": {
|
|
309
|
+
display: "flex !important",
|
|
310
|
+
flexDirection: "column"
|
|
311
|
+
}
|
|
378
312
|
}
|
|
379
|
-
],
|
|
380
|
-
flags: {
|
|
381
|
-
resizable: true,
|
|
382
|
-
draggable: true,
|
|
383
|
-
sortable: true
|
|
384
313
|
}
|
|
385
314
|
};
|
|
386
|
-
var
|
|
315
|
+
var layout_default = Layout;
|
|
387
316
|
|
|
388
317
|
// src/elements/map.tsx
|
|
389
318
|
var import_react6 = __toESM(require("react"));
|
|
390
319
|
var Map = (0, import_react6.forwardRef)((props, ref) => {
|
|
391
|
-
const { place, zoom } =
|
|
392
|
-
console.info("9779 props", props);
|
|
320
|
+
const _a = props, { place, zoom } = _a, rest = __objRest(_a, ["place", "zoom"]);
|
|
393
321
|
return /* @__PURE__ */ import_react6.default.createElement("div", __spreadValues({
|
|
394
322
|
ref
|
|
395
|
-
},
|
|
323
|
+
}, rest), /* @__PURE__ */ import_react6.default.createElement("iframe", {
|
|
396
324
|
loading: "lazy",
|
|
397
325
|
scrolling: "no",
|
|
398
326
|
width: "100%",
|
|
@@ -406,203 +334,172 @@ var Map = (0, import_react6.forwardRef)((props, ref) => {
|
|
|
406
334
|
});
|
|
407
335
|
Map.defaultProps = {
|
|
408
336
|
place: "Hanoi",
|
|
409
|
-
zoom: 14
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
type: "map",
|
|
414
|
-
parentType: "layout",
|
|
415
|
-
toolbar: [
|
|
416
|
-
{
|
|
417
|
-
type: "delete"
|
|
418
|
-
},
|
|
419
|
-
{
|
|
420
|
-
type: "duplicate"
|
|
421
|
-
},
|
|
422
|
-
{
|
|
423
|
-
type: "link"
|
|
424
|
-
},
|
|
425
|
-
{
|
|
426
|
-
type: "color"
|
|
427
|
-
}
|
|
428
|
-
],
|
|
429
|
-
data: {
|
|
430
|
-
css: {
|
|
431
|
-
"@desktop": {
|
|
432
|
-
gridArea: "1 / 1 / 11 / 13"
|
|
433
|
-
}
|
|
337
|
+
zoom: 14,
|
|
338
|
+
css: {
|
|
339
|
+
"@desktop": {
|
|
340
|
+
gridArea: "1 / 1 / 11 / 13"
|
|
434
341
|
}
|
|
435
|
-
},
|
|
436
|
-
flags: {
|
|
437
|
-
resizable: true,
|
|
438
|
-
draggable: true,
|
|
439
|
-
sortable: true
|
|
440
342
|
}
|
|
441
343
|
};
|
|
442
344
|
var map_default = Map;
|
|
443
345
|
|
|
444
|
-
// src/elements/
|
|
445
|
-
var
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
346
|
+
// src/elements/text.tsx
|
|
347
|
+
var React8 = __toESM(require("react"));
|
|
348
|
+
var Text = React8.forwardRef((props, ref) => {
|
|
349
|
+
let _a = props, { children, value } = _a, rest = __objRest(_a, ["children", "value"]);
|
|
350
|
+
return /* @__PURE__ */ React8.createElement("div", __spreadProps(__spreadValues({
|
|
351
|
+
ref
|
|
352
|
+
}, rest), {
|
|
353
|
+
dangerouslySetInnerHTML: { __html: value }
|
|
354
|
+
}));
|
|
355
|
+
});
|
|
356
|
+
Text.defaultProps = {
|
|
357
|
+
value: "The quick brown fox jumps over the lazy dog",
|
|
358
|
+
css: {
|
|
359
|
+
"@desktop": {
|
|
360
|
+
width: "100%",
|
|
361
|
+
height: "fit-content",
|
|
362
|
+
padding: 0,
|
|
363
|
+
margin: 0,
|
|
364
|
+
outline: "none",
|
|
365
|
+
wordBreak: "break-word",
|
|
366
|
+
overflowWrap: "break-word",
|
|
367
|
+
whiteSpace: "break-spaces"
|
|
368
|
+
}
|
|
369
|
+
}
|
|
370
|
+
};
|
|
371
|
+
var text_default = Text;
|
|
458
372
|
|
|
459
|
-
// src/elements/
|
|
373
|
+
// src/elements/video.tsx
|
|
460
374
|
var import_react7 = __toESM(require("react"));
|
|
461
|
-
var
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
375
|
+
var Video = (0, import_react7.forwardRef)((props, ref) => {
|
|
376
|
+
const { isDesignMode } = (0, import_react7.useContext)(WeaverseContext);
|
|
377
|
+
let _a = props, { src, type, controls, poster, autoPlay, loop, muted } = _a, rest = __objRest(_a, ["src", "type", "controls", "poster", "autoPlay", "loop", "muted"]);
|
|
378
|
+
return /* @__PURE__ */ import_react7.default.createElement("video", __spreadValues({
|
|
379
|
+
ref,
|
|
380
|
+
controls: isDesignMode ? false : controls,
|
|
381
|
+
autoPlay: isDesignMode ? false : autoPlay,
|
|
382
|
+
loop,
|
|
383
|
+
muted: true,
|
|
384
|
+
controlsList: "nodownload",
|
|
385
|
+
disablePictureInPicture: true
|
|
386
|
+
}, rest), /* @__PURE__ */ import_react7.default.createElement("source", {
|
|
387
|
+
src,
|
|
388
|
+
type: type || "video/mp4"
|
|
389
|
+
}));
|
|
390
|
+
});
|
|
391
|
+
Video.defaultProps = {
|
|
392
|
+
src: "https://ucarecdn.com/7cae0dab-8966-4484-9998-602728c360ca/IMG_0048.MOV",
|
|
393
|
+
poster: "https://ucarecdn.com/48d73272-3fe3-43f6-8b5b-22b68fc5a8c8/section.png",
|
|
394
|
+
loop: false,
|
|
395
|
+
type: "video/mp4",
|
|
396
|
+
controls: false,
|
|
397
|
+
autoPlay: true,
|
|
398
|
+
muted: true,
|
|
399
|
+
css: {
|
|
400
|
+
"@desktop": {
|
|
401
|
+
height: "fit-content",
|
|
402
|
+
margin: 0,
|
|
403
|
+
outline: "none",
|
|
404
|
+
overflowWrap: "break-word",
|
|
405
|
+
padding: 0,
|
|
406
|
+
whitespace: "break-spaces",
|
|
407
|
+
width: "100%",
|
|
408
|
+
wordBreak: "break-word"
|
|
409
|
+
}
|
|
410
|
+
}
|
|
465
411
|
};
|
|
466
|
-
var
|
|
412
|
+
var video_default = Video;
|
|
467
413
|
|
|
468
|
-
// src/elements/
|
|
469
|
-
var
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
const
|
|
473
|
-
|
|
474
|
-
endTime = Number.parseInt(endTime);
|
|
475
|
-
}
|
|
414
|
+
// src/elements/instagram.tsx
|
|
415
|
+
var import_react8 = __toESM(require("react"));
|
|
416
|
+
var Instagram = (0, import_react8.forwardRef)((props, ref) => {
|
|
417
|
+
const { stitchesInstance } = (0, import_react8.useContext)(WeaverseContext);
|
|
418
|
+
const _a = props, { token, numberOfImages, imagesPerRow, className } = _a, rest = __objRest(_a, ["token", "numberOfImages", "imagesPerRow", "className"]);
|
|
419
|
+
const [media, setMedia] = (0, import_react8.useState)([]);
|
|
476
420
|
(0, import_react8.useEffect)(() => {
|
|
477
|
-
const
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
},
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
};
|
|
487
|
-
}, [startTime, endTime, periods, type]);
|
|
488
|
-
const timer = getTime(remaining);
|
|
421
|
+
const url = `https://graph.instagram.com/me/media?fields=id,media_type,caption,media_url&access_token=${token}`;
|
|
422
|
+
fetch(url).then((res) => res.json()).then((res) => {
|
|
423
|
+
setMedia(res.data);
|
|
424
|
+
});
|
|
425
|
+
}, [token]);
|
|
426
|
+
const css = {
|
|
427
|
+
gridTemplateColumns: `repeat(${imagesPerRow[0] || 1}, 1fr)`
|
|
428
|
+
};
|
|
429
|
+
const { className: instagramClass = "" } = stitchesInstance.css(css)();
|
|
489
430
|
return /* @__PURE__ */ import_react8.default.createElement("div", __spreadValues({
|
|
431
|
+
className: `${className} ${instagramClass}`,
|
|
490
432
|
ref
|
|
491
|
-
},
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
}, ":"), /* @__PURE__ */ import_react8.default.createElement(timer_block_default, {
|
|
502
|
-
value: timer.mins,
|
|
503
|
-
label: showLabel && "minutes"
|
|
504
|
-
}), /* @__PURE__ */ import_react8.default.createElement("span", {
|
|
505
|
-
className: !showColon && "hidden"
|
|
506
|
-
}, ":"), /* @__PURE__ */ import_react8.default.createElement(timer_block_default, {
|
|
507
|
-
value: timer.secs,
|
|
508
|
-
label: showLabel && "seconds"
|
|
433
|
+
}, rest), !token ? "Token is empty" : media.map((item, key) => {
|
|
434
|
+
return /* @__PURE__ */ import_react8.default.createElement("div", {
|
|
435
|
+
key,
|
|
436
|
+
className: "wv-instagram-item"
|
|
437
|
+
}, /* @__PURE__ */ import_react8.default.createElement("img", {
|
|
438
|
+
width: "100%",
|
|
439
|
+
height: "100%",
|
|
440
|
+
alt: item.caption,
|
|
441
|
+
src: item.media_url
|
|
442
|
+
}));
|
|
509
443
|
}));
|
|
510
444
|
});
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
{
|
|
526
|
-
type: "delete"
|
|
527
|
-
},
|
|
528
|
-
{
|
|
529
|
-
type: "duplicate"
|
|
530
|
-
},
|
|
531
|
-
{
|
|
532
|
-
type: "link"
|
|
533
|
-
},
|
|
534
|
-
{
|
|
535
|
-
type: "color"
|
|
536
|
-
}
|
|
537
|
-
],
|
|
538
|
-
data: {
|
|
539
|
-
css: {
|
|
540
|
-
"@desktop": {
|
|
541
|
-
fontFamily: "Inter",
|
|
542
|
-
fontSize: 36,
|
|
543
|
-
fontWeight: 500,
|
|
544
|
-
display: "grid",
|
|
545
|
-
gridAutoFlow: "column",
|
|
546
|
-
gap: 10,
|
|
547
|
-
"& > div": {
|
|
548
|
-
width: 48,
|
|
549
|
-
textAlign: "center"
|
|
550
|
-
},
|
|
551
|
-
"& .wv-countdown-label": {
|
|
552
|
-
fontSize: 10
|
|
553
|
-
},
|
|
554
|
-
"& > span": {
|
|
555
|
-
lineHeight: "100%"
|
|
556
|
-
},
|
|
557
|
-
"& .hidden": {
|
|
558
|
-
visibility: "hidden"
|
|
445
|
+
Instagram.defaultProps = {
|
|
446
|
+
token: "",
|
|
447
|
+
numberOfImages: [12],
|
|
448
|
+
imagesPerRow: [4],
|
|
449
|
+
css: {
|
|
450
|
+
"@desktop": {
|
|
451
|
+
display: "grid",
|
|
452
|
+
gridTemplateColumns: "repeat(4, 1fr)",
|
|
453
|
+
"& .wv-instagram-item": {
|
|
454
|
+
width: "100%",
|
|
455
|
+
height: "100%",
|
|
456
|
+
backgroundColor: "red",
|
|
457
|
+
"& img": {
|
|
458
|
+
objectFit: "contain"
|
|
559
459
|
}
|
|
560
460
|
}
|
|
561
461
|
}
|
|
562
|
-
},
|
|
563
|
-
flags: {
|
|
564
|
-
draggable: true
|
|
565
462
|
}
|
|
566
463
|
};
|
|
567
|
-
var
|
|
464
|
+
var instagram_default = Instagram;
|
|
568
465
|
|
|
569
466
|
// src/elements/index.ts
|
|
570
467
|
var elements = {
|
|
468
|
+
Countdown: {
|
|
469
|
+
Component: countdown_default,
|
|
470
|
+
type: "countdown"
|
|
471
|
+
},
|
|
571
472
|
Button: {
|
|
572
473
|
Component: button_default,
|
|
573
|
-
|
|
574
|
-
},
|
|
575
|
-
BaseElement: {
|
|
576
|
-
Component: base_default,
|
|
577
|
-
schema
|
|
578
|
-
},
|
|
579
|
-
Text: {
|
|
580
|
-
Component: text_default,
|
|
581
|
-
schema: schema5
|
|
582
|
-
},
|
|
583
|
-
Layout: {
|
|
584
|
-
Component: layout_default,
|
|
585
|
-
schema: schema4
|
|
474
|
+
type: "button"
|
|
586
475
|
},
|
|
587
476
|
Container: {
|
|
588
477
|
Component: container_default,
|
|
589
|
-
|
|
478
|
+
type: "container"
|
|
590
479
|
},
|
|
591
480
|
Image: {
|
|
592
481
|
Component: image_default,
|
|
593
|
-
|
|
482
|
+
type: "image"
|
|
594
483
|
},
|
|
595
|
-
|
|
596
|
-
Component:
|
|
597
|
-
|
|
484
|
+
Instagram: {
|
|
485
|
+
Component: instagram_default,
|
|
486
|
+
type: "instagram"
|
|
487
|
+
},
|
|
488
|
+
Layout: {
|
|
489
|
+
Component: layout_default,
|
|
490
|
+
type: "layout"
|
|
598
491
|
},
|
|
599
492
|
Map: {
|
|
600
493
|
Component: map_default,
|
|
601
|
-
|
|
494
|
+
type: "map"
|
|
602
495
|
},
|
|
603
|
-
|
|
604
|
-
Component:
|
|
605
|
-
|
|
496
|
+
Text: {
|
|
497
|
+
Component: text_default,
|
|
498
|
+
type: "text"
|
|
499
|
+
},
|
|
500
|
+
Video: {
|
|
501
|
+
Component: video_default,
|
|
502
|
+
type: "video"
|
|
606
503
|
}
|
|
607
504
|
};
|
|
608
505
|
var elements_default = elements;
|
|
@@ -626,19 +523,20 @@ var import_react10 = __toESM(require("react"));
|
|
|
626
523
|
// src/utils/index.ts
|
|
627
524
|
var shortCssObject = (css) => {
|
|
628
525
|
return {
|
|
629
|
-
"@desktop": css[
|
|
630
|
-
"@mobile": css[
|
|
526
|
+
"@desktop": css["@desktop"],
|
|
527
|
+
"@mobile": css["@mobile"]
|
|
631
528
|
};
|
|
632
529
|
};
|
|
633
530
|
function generateItemClass(instance, stitchesInstance) {
|
|
634
|
-
var _a;
|
|
531
|
+
var _a, _b, _c, _d;
|
|
635
532
|
let { css, className: cls = "" } = instance.data;
|
|
533
|
+
let defaultCss = ((_c = (_b = (_a = instance.Element) == null ? void 0 : _a.Component) == null ? void 0 : _b.defaultProps) == null ? void 0 : _c.css) || {};
|
|
636
534
|
let className = "";
|
|
637
|
-
if (css) {
|
|
638
|
-
let formattedCss = shortCssObject(css);
|
|
535
|
+
if (css || defaultCss) {
|
|
536
|
+
let formattedCss = shortCssObject(css || defaultCss);
|
|
639
537
|
let { className: newClass = "" } = stitchesInstance.css(formattedCss)();
|
|
640
538
|
let { stitchesClass } = instance;
|
|
641
|
-
let otherClass = (((
|
|
539
|
+
let otherClass = (((_d = instance.ref.current) == null ? void 0 : _d.className) || "").replace(stitchesClass, "").replace(cls, "").trim();
|
|
642
540
|
className = `${cls} ${newClass} ${otherClass}`.trim();
|
|
643
541
|
instance.stitchesClass = newClass;
|
|
644
542
|
}
|
|
@@ -676,8 +574,9 @@ var WeaverseRoot = ({ context }) => {
|
|
|
676
574
|
var ItemComponent = ({ instance }) => {
|
|
677
575
|
let { stitchesInstance, elementInstances } = (0, import_react10.useContext)(WeaverseContext);
|
|
678
576
|
let [data, setData] = (0, import_react10.useState)(instance.data);
|
|
679
|
-
let _a = data, { id, type, childIds = [], css, className
|
|
577
|
+
let _a = data, { id, type, childIds = [], css, className } = _a, rest = __objRest(_a, ["id", "type", "childIds", "css", "className"]);
|
|
680
578
|
(0, import_react10.useEffect)(() => {
|
|
579
|
+
var _a2;
|
|
681
580
|
let update = (data2) => setData(__spreadValues({}, data2));
|
|
682
581
|
instance.subscribe(update);
|
|
683
582
|
if (import_core2.isBrowser && !instance.ref.current) {
|
|
@@ -685,11 +584,12 @@ var ItemComponent = ({ instance }) => {
|
|
|
685
584
|
current: document.querySelector(`[data-wv-id="${id}"]`)
|
|
686
585
|
});
|
|
687
586
|
}
|
|
587
|
+
(_a2 = instance.ref.current) == null ? void 0 : _a2.removeAttribute("css");
|
|
688
588
|
return () => {
|
|
689
589
|
instance.unsubscribe(update);
|
|
690
590
|
};
|
|
691
591
|
}, []);
|
|
692
|
-
let Element = elementInstances.get(type
|
|
592
|
+
let Element = elementInstances.get(type);
|
|
693
593
|
if (Element == null ? void 0 : Element.Component) {
|
|
694
594
|
let Component = Element.Component;
|
|
695
595
|
if (Component.$$typeof === Symbol.for("react.forward_ref")) {
|