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