@weaverse/react 0.6.28 → 0.7.0

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.js CHANGED
@@ -1,38 +1,10 @@
1
+ "use strict";
1
2
  var __create = Object.create;
2
3
  var __defProp = Object.defineProperty;
3
- var __defProps = Object.defineProperties;
4
4
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
- var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
6
5
  var __getOwnPropNames = Object.getOwnPropertyNames;
7
- var __getOwnPropSymbols = Object.getOwnPropertySymbols;
8
6
  var __getProtoOf = Object.getPrototypeOf;
9
7
  var __hasOwnProp = Object.prototype.hasOwnProperty;
10
- var __propIsEnum = Object.prototype.propertyIsEnumerable;
11
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
12
- var __spreadValues = (a, b) => {
13
- for (var prop in b || (b = {}))
14
- if (__hasOwnProp.call(b, prop))
15
- __defNormalProp(a, prop, b[prop]);
16
- if (__getOwnPropSymbols)
17
- for (var prop of __getOwnPropSymbols(b)) {
18
- if (__propIsEnum.call(b, prop))
19
- __defNormalProp(a, prop, b[prop]);
20
- }
21
- return a;
22
- };
23
- var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
24
- var __objRest = (source, exclude) => {
25
- var target = {};
26
- for (var prop in source)
27
- if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
28
- target[prop] = source[prop];
29
- if (source != null && __getOwnPropSymbols)
30
- for (var prop of __getOwnPropSymbols(source)) {
31
- if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
32
- target[prop] = source[prop];
33
- }
34
- return target;
35
- };
36
8
  var __export = (target, all) => {
37
9
  for (var name in all)
38
10
  __defProp(target, name, { get: all[name], enumerable: true });
@@ -46,7 +18,10 @@ var __copyProps = (to, from, except, desc) => {
46
18
  return to;
47
19
  };
48
20
  var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
49
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod));
21
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
22
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
23
+ mod
24
+ ));
50
25
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
51
26
 
52
27
  // src/index.ts
@@ -67,19 +42,20 @@ var import_react16 = require("react");
67
42
  // src/elements/button.tsx
68
43
  var React = __toESM(require("react"));
69
44
  var Button = React.forwardRef((props, ref) => {
70
- let _a = props, { openInNewTab, target, value } = _a, rest = __objRest(_a, ["openInNewTab", "target", "value"]);
45
+ let { openInNewTab, target, value, ...rest } = props;
71
46
  if (target) {
72
- return /* @__PURE__ */ React.createElement("a", __spreadProps(__spreadValues({
47
+ return /* @__PURE__ */ React.createElement("a", {
73
48
  href: target,
74
49
  target: openInNewTab ? "_blank" : "_self",
75
- rel: "noreferrer"
76
- }, rest), {
50
+ rel: "noreferrer",
51
+ ...rest,
77
52
  ref
78
- }), value);
53
+ }, value);
79
54
  }
80
- return /* @__PURE__ */ React.createElement("button", __spreadValues({
81
- ref
82
- }, rest), value);
55
+ return /* @__PURE__ */ React.createElement("button", {
56
+ ref,
57
+ ...rest
58
+ }, value);
83
59
  });
84
60
  Button.defaultProps = {
85
61
  value: "Shop now",
@@ -101,12 +77,15 @@ var button_default = Button;
101
77
 
102
78
  // src/elements/container.tsx
103
79
  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({
107
- ref
108
- }, rest), children);
109
- });
80
+ var Container = (0, import_react.forwardRef)(
81
+ (props, ref) => {
82
+ let { children, ...rest } = props;
83
+ return /* @__PURE__ */ import_react.default.createElement("div", {
84
+ ref,
85
+ ...rest
86
+ }, children);
87
+ }
88
+ );
110
89
  Container.defaultProps = {
111
90
  css: {
112
91
  "@desktop": {
@@ -146,63 +125,65 @@ function getTime(_seconds) {
146
125
  const ONE_DAY = 24 * ONE_HOUR;
147
126
  const days = Math.floor(_seconds / ONE_DAY);
148
127
  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);
128
+ const minutes = Math.floor(
129
+ (_seconds - days * ONE_DAY - hours * ONE_HOUR) / ONE_MINUTE
130
+ );
131
+ const seconds = Math.floor(
132
+ (_seconds - days * ONE_DAY - hours * ONE_HOUR - minutes * ONE_MINUTE) / 1e3
133
+ );
151
134
  return { days, hours, minutes, seconds };
152
135
  }
153
136
 
154
137
  // 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);
138
+ var Countdown = (0, import_react3.forwardRef)(
139
+ (props, ref) => {
140
+ const { isDesignMode } = (0, import_react3.useContext)(WeaverseContext);
141
+ let {
142
+ timerType,
143
+ startTime,
144
+ endTime,
145
+ periods,
146
+ redirectUrl,
147
+ openInNewTab,
148
+ showColon,
149
+ showLabel,
150
+ ...rest
151
+ } = props;
152
+ const [remaining, setRemaining] = import_react3.default.useState(0);
153
+ if (typeof endTime !== "number") {
154
+ endTime = Number.parseInt(endTime);
155
+ }
156
+ (0, import_react3.useEffect)(() => {
157
+ const flag = setInterval(() => {
158
+ const remainingTime = Math.max(
159
+ (timerType === "fixed-time" ? new Date(endTime).getTime() : new Date(startTime).getTime() + periods * 60 * 1e3) - Date.now(),
160
+ 0
161
+ );
162
+ if (!isDesignMode && redirectUrl && remainingTime > 0 && remainingTime < 1e3) {
163
+ window.open(redirectUrl, openInNewTab ? "_blank" : "_self");
164
+ }
165
+ setRemaining(remainingTime);
166
+ }, 1e3);
167
+ return () => {
168
+ clearInterval(flag);
169
+ };
170
+ }, [startTime, endTime, periods, timerType]);
171
+ const timer = getTime(remaining);
172
+ return /* @__PURE__ */ import_react3.default.createElement("div", {
173
+ ref,
174
+ ...rest
175
+ }, times.map((time) => {
176
+ return /* @__PURE__ */ import_react3.default.createElement(import_react3.default.Fragment, {
177
+ key: time
178
+ }, /* @__PURE__ */ import_react3.default.createElement(TimerBlock, {
179
+ label: showLabel ? time : "",
180
+ value: timer[time]
181
+ }), time !== "seconds" && /* @__PURE__ */ import_react3.default.createElement("span", {
182
+ className: `wv-countdown-number ${showColon ? "" : "hidden"}`
183
+ }, ":"));
184
+ }));
179
185
  }
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({
194
- ref
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
- }, ":"));
204
- }));
205
- });
186
+ );
206
187
  Countdown.defaultProps = {
207
188
  timerType: "fixed-time",
208
189
  startTime: Date.now(),
@@ -240,45 +221,41 @@ var countdown_default = Countdown;
240
221
 
241
222
  // src/elements/image.tsx
242
223
  var import_react4 = __toESM(require("react"));
243
- var Image = import_react4.default.forwardRef((props, ref) => {
244
- let { isDesignMode } = (0, import_react4.useContext)(WeaverseContext);
245
- let _a = props, {
246
- src,
247
- alt,
248
- objectFit,
249
- objectPosition,
250
- onClickAction,
251
- openLinkInNewTab
252
- } = _a, rest = __objRest(_a, [
253
- "src",
254
- "alt",
255
- "objectFit",
256
- "objectPosition",
257
- "onClickAction",
258
- "openLinkInNewTab"
259
- ]);
260
- let style = {
261
- "--wv-img-object-fit": objectFit,
262
- "--wv-img-object-position": objectPosition
263
- };
264
- let handleClick = () => {
265
- if (isDesignMode) {
266
- return console.log("Click action:", onClickAction);
267
- }
268
- if (onClickAction) {
269
- console.log("TODO: click action:", onClickAction);
270
- }
271
- };
272
- return /* @__PURE__ */ import_react4.default.createElement("div", __spreadProps(__spreadValues({
273
- ref
274
- }, rest), {
275
- style,
276
- onClick: handleClick
277
- }), /* @__PURE__ */ import_react4.default.createElement("img", {
278
- alt,
279
- src
280
- }));
281
- });
224
+ var Image = import_react4.default.forwardRef(
225
+ (props, ref) => {
226
+ let { isDesignMode } = (0, import_react4.useContext)(WeaverseContext);
227
+ let {
228
+ src,
229
+ alt,
230
+ objectFit,
231
+ objectPosition,
232
+ onClickAction,
233
+ openLinkInNewTab,
234
+ ...rest
235
+ } = props;
236
+ let style = {
237
+ "--wv-img-object-fit": objectFit,
238
+ "--wv-img-object-position": objectPosition
239
+ };
240
+ let handleClick = () => {
241
+ if (isDesignMode) {
242
+ return console.log("Click action:", onClickAction);
243
+ }
244
+ if (onClickAction) {
245
+ console.log("TODO: click action:", onClickAction);
246
+ }
247
+ };
248
+ return /* @__PURE__ */ import_react4.default.createElement("div", {
249
+ ref,
250
+ ...rest,
251
+ style,
252
+ onClick: handleClick
253
+ }, /* @__PURE__ */ import_react4.default.createElement("img", {
254
+ alt,
255
+ src
256
+ }));
257
+ }
258
+ );
282
259
  Image.defaultProps = {
283
260
  src: "https://ucarecdn.com/1cdc9d39-ca62-492e-8ec7-f1a86b241a90/",
284
261
  alt: "Image alt text",
@@ -302,7 +279,7 @@ var image_default = Image;
302
279
  // src/elements/layout.tsx
303
280
  var import_react5 = __toESM(require("react"));
304
281
  var Layout = (0, import_react5.forwardRef)((props, ref) => {
305
- let _a = props, { children, rows, gap, rowSize, columns, gridSize } = _a, rest = __objRest(_a, ["children", "rows", "gap", "rowSize", "columns", "gridSize"]);
282
+ let { children, rows, gap, rowSize, columns, gridSize, ...rest } = props;
306
283
  let style = {
307
284
  "--grid-size": gridSize + "px",
308
285
  "--rows": rows,
@@ -311,11 +288,11 @@ var Layout = (0, import_react5.forwardRef)((props, ref) => {
311
288
  "--row-size": rowSize + "px",
312
289
  "--col-size": "calc((var(--grid-size) - calc(var(--columns) - 1) * var(--gap)) / var(--columns))"
313
290
  };
314
- return /* @__PURE__ */ import_react5.default.createElement("section", __spreadProps(__spreadValues({
315
- ref
316
- }, rest), {
291
+ return /* @__PURE__ */ import_react5.default.createElement("section", {
292
+ ref,
293
+ ...rest,
317
294
  style
318
- }), /* @__PURE__ */ import_react5.default.createElement("div", {
295
+ }, /* @__PURE__ */ import_react5.default.createElement("div", {
319
296
  "data-layout-content": true
320
297
  }, children));
321
298
  });
@@ -354,10 +331,11 @@ var layout_default = Layout;
354
331
  // src/elements/map.tsx
355
332
  var import_react6 = __toESM(require("react"));
356
333
  var Map = (0, import_react6.forwardRef)((props, ref) => {
357
- let _a = props, { place, zoom } = _a, rest = __objRest(_a, ["place", "zoom"]);
358
- return /* @__PURE__ */ import_react6.default.createElement("div", __spreadValues({
359
- ref
360
- }, rest), /* @__PURE__ */ import_react6.default.createElement("iframe", {
334
+ let { place, zoom, ...rest } = props;
335
+ return /* @__PURE__ */ import_react6.default.createElement("div", {
336
+ ref,
337
+ ...rest
338
+ }, /* @__PURE__ */ import_react6.default.createElement("iframe", {
361
339
  loading: "lazy",
362
340
  scrolling: "no",
363
341
  width: "100%",
@@ -375,14 +353,16 @@ var map_default = Map;
375
353
 
376
354
  // src/elements/text.tsx
377
355
  var React8 = __toESM(require("react"));
378
- var Text = React8.forwardRef((props, ref) => {
379
- let _a = props, { children, value } = _a, rest = __objRest(_a, ["children", "value"]);
380
- return /* @__PURE__ */ React8.createElement("div", __spreadProps(__spreadValues({
381
- ref
382
- }, rest), {
383
- dangerouslySetInnerHTML: { __html: value }
384
- }));
385
- });
356
+ var Text = React8.forwardRef(
357
+ (props, ref) => {
358
+ let { children, value, ...rest } = props;
359
+ return /* @__PURE__ */ React8.createElement("div", {
360
+ ref,
361
+ ...rest,
362
+ dangerouslySetInnerHTML: { __html: value }
363
+ });
364
+ }
365
+ );
386
366
  Text.defaultProps = {
387
367
  value: "The quick brown fox jumps over the lazy dog",
388
368
  css: {
@@ -403,10 +383,11 @@ var text_default = Text;
403
383
  var import_react7 = __toESM(require("react"));
404
384
  var Video = (0, import_react7.forwardRef)((props, ref) => {
405
385
  let { isDesignMode } = (0, import_react7.useContext)(WeaverseContext);
406
- let _a = props, { src, type, controls, poster, autoPlay, loop, muted } = _a, rest = __objRest(_a, ["src", "type", "controls", "poster", "autoPlay", "loop", "muted"]);
407
- return /* @__PURE__ */ import_react7.default.createElement("div", __spreadValues({
408
- ref
409
- }, rest), /* @__PURE__ */ import_react7.default.createElement("video", {
386
+ let { src, type, controls, poster, autoPlay, loop, muted, ...rest } = props;
387
+ return /* @__PURE__ */ import_react7.default.createElement("div", {
388
+ ref,
389
+ ...rest
390
+ }, /* @__PURE__ */ import_react7.default.createElement("video", {
410
391
  controls: isDesignMode ? false : controls,
411
392
  autoPlay: isDesignMode ? false : autoPlay,
412
393
  loop,
@@ -443,81 +424,87 @@ var import_react9 = __toESM(require("react"));
443
424
 
444
425
  // src/elements/shared/Placeholder.tsx
445
426
  var import_react8 = __toESM(require("react"));
446
- var Placeholder = (0, import_react8.forwardRef)((props, ref) => {
447
- let _a = props, { element, children } = _a, rest = __objRest(_a, ["element", "children"]);
448
- let style = {
449
- position: "absolute",
450
- height: "100%",
451
- width: "100%",
452
- display: "flex",
453
- flexDirection: "column",
454
- alignItems: "center",
455
- justifyContent: "center",
456
- color: "#374151",
457
- pointerEvents: "none",
458
- zIndex: 1
459
- };
460
- return /* @__PURE__ */ import_react8.default.createElement("div", __spreadValues({
461
- style,
462
- ref
463
- }, rest), /* @__PURE__ */ import_react8.default.createElement("div", {
464
- style: { fontWeight: 600, marginBottom: "10px" }
465
- }, element), /* @__PURE__ */ import_react8.default.createElement("div", null, children));
466
- });
427
+ var Placeholder = (0, import_react8.forwardRef)(
428
+ (props, ref) => {
429
+ let { element, children, ...rest } = props;
430
+ let style = {
431
+ position: "absolute",
432
+ height: "100%",
433
+ width: "100%",
434
+ display: "flex",
435
+ flexDirection: "column",
436
+ alignItems: "center",
437
+ justifyContent: "center",
438
+ color: "#374151",
439
+ pointerEvents: "none",
440
+ zIndex: 1
441
+ };
442
+ return /* @__PURE__ */ import_react8.default.createElement("div", {
443
+ style,
444
+ ref,
445
+ ...rest
446
+ }, /* @__PURE__ */ import_react8.default.createElement("div", {
447
+ style: { fontWeight: 600, marginBottom: "10px" }
448
+ }, element), /* @__PURE__ */ import_react8.default.createElement("div", null, children));
449
+ }
450
+ );
467
451
  var Placeholder_default = Placeholder;
468
452
 
469
453
  // src/elements/instagram.tsx
470
454
  var INSTAGRAM_API = "https://graph.instagram.com";
471
- var Instagram = (0, import_react9.forwardRef)((props, ref) => {
472
- let _a = props, { token, username, numberOfImages, imagesPerRow, gap } = _a, rest = __objRest(_a, ["token", "username", "numberOfImages", "imagesPerRow", "gap"]);
473
- let [media, setMedia] = (0, import_react9.useState)([]);
474
- let [error, setError] = (0, import_react9.useState)(null);
475
- (0, import_react9.useEffect)(() => {
476
- if (token) {
477
- let params = new URLSearchParams({
478
- access_token: token,
479
- fields: "id,media_type,caption,media_url,permalink"
480
- });
481
- fetch(`${INSTAGRAM_API}/me/media?${params.toString()}`).then((res) => res.json()).then((res) => {
482
- if (res.error) {
483
- setError(res);
484
- } else {
485
- setError(null);
486
- setMedia([...res.data]);
487
- }
488
- }).catch(setError);
455
+ var Instagram = (0, import_react9.forwardRef)(
456
+ (props, ref) => {
457
+ let { token, username, numberOfImages, imagesPerRow, gap, ...rest } = props;
458
+ let [media, setMedia] = (0, import_react9.useState)([]);
459
+ let [error, setError] = (0, import_react9.useState)(null);
460
+ (0, import_react9.useEffect)(() => {
461
+ if (token) {
462
+ let params = new URLSearchParams({
463
+ access_token: token,
464
+ fields: "id,media_type,caption,media_url,permalink"
465
+ });
466
+ fetch(`${INSTAGRAM_API}/me/media?${params.toString()}`).then((res) => res.json()).then((res) => {
467
+ if (res.error) {
468
+ setError(res);
469
+ } else {
470
+ setError(null);
471
+ setMedia([...res.data]);
472
+ }
473
+ }).catch(setError);
474
+ }
475
+ }, [token]);
476
+ if (!token || error) {
477
+ return /* @__PURE__ */ import_react9.default.createElement("div", {
478
+ ref,
479
+ ...rest
480
+ }, /* @__PURE__ */ import_react9.default.createElement(Placeholder_default, {
481
+ element: "Instagram"
482
+ }, !token ? "Connect your Instagram account to display photos on your site." : "Invalid or expired token!"));
489
483
  }
490
- }, [token]);
491
- if (!token || error) {
492
- return /* @__PURE__ */ import_react9.default.createElement("div", __spreadValues({
493
- ref
494
- }, rest), /* @__PURE__ */ import_react9.default.createElement(Placeholder_default, {
495
- element: "Instagram"
496
- }, !token ? "Connect your Instagram account to display photos on your site." : "Invalid or expired token!"));
484
+ let style = {
485
+ "--wv-ig-images-per-row": imagesPerRow,
486
+ "--wv-ig-images-gap": gap + "px"
487
+ };
488
+ return /* @__PURE__ */ import_react9.default.createElement("div", {
489
+ ref,
490
+ ...rest,
491
+ style
492
+ }, /* @__PURE__ */ import_react9.default.createElement("div", {
493
+ className: "wv-ig-media-container"
494
+ }, media.slice(0, numberOfImages).map((item) => {
495
+ let { id, permalink, caption, media_url } = item;
496
+ return /* @__PURE__ */ import_react9.default.createElement("a", {
497
+ key: id,
498
+ href: permalink,
499
+ target: "_blank",
500
+ rel: "noreferrer"
501
+ }, /* @__PURE__ */ import_react9.default.createElement("img", {
502
+ alt: caption,
503
+ src: media_url
504
+ }));
505
+ })));
497
506
  }
498
- let style = {
499
- "--wv-ig-images-per-row": imagesPerRow,
500
- "--wv-ig-images-gap": gap + "px"
501
- };
502
- return /* @__PURE__ */ import_react9.default.createElement("div", __spreadProps(__spreadValues({
503
- ref
504
- }, rest), {
505
- style
506
- }), /* @__PURE__ */ import_react9.default.createElement("div", {
507
- className: "wv-ig-media-container"
508
- }, media.slice(0, numberOfImages).map((item) => {
509
- let { id, permalink, caption, media_url } = item;
510
- return /* @__PURE__ */ import_react9.default.createElement("a", {
511
- key: id,
512
- href: permalink,
513
- target: "_blank",
514
- rel: "noreferrer"
515
- }, /* @__PURE__ */ import_react9.default.createElement("img", {
516
- alt: caption,
517
- src: media_url
518
- }));
519
- })));
520
- });
507
+ );
521
508
  Instagram.defaultProps = {
522
509
  token: "",
523
510
  username: "",
@@ -552,22 +539,25 @@ var AccordionContext = (0, import_react10.createContext)({
552
539
  setActive: () => {
553
540
  }
554
541
  });
555
- var Accordion = (0, import_react10.forwardRef)((props, ref) => {
556
- const _a = props, { items, children } = _a, rest = __objRest(_a, ["items", "children"]);
557
- const [active, setActive] = (0, import_react10.useState)(null);
558
- const setOpenAccordion = (id) => {
559
- if (id === active) {
560
- setActive(null);
561
- } else {
562
- setActive(id);
563
- }
564
- };
565
- return /* @__PURE__ */ import_react10.default.createElement("div", __spreadValues({
566
- ref
567
- }, rest), /* @__PURE__ */ import_react10.default.createElement(AccordionContext.Provider, {
568
- value: { active, setActive: setOpenAccordion }
569
- }, children));
570
- });
542
+ var Accordion = (0, import_react10.forwardRef)(
543
+ (props, ref) => {
544
+ const { items, children, ...rest } = props;
545
+ const [active, setActive] = (0, import_react10.useState)(null);
546
+ const setOpenAccordion = (id) => {
547
+ if (id === active) {
548
+ setActive(null);
549
+ } else {
550
+ setActive(id);
551
+ }
552
+ };
553
+ return /* @__PURE__ */ import_react10.default.createElement("div", {
554
+ ref,
555
+ ...rest
556
+ }, /* @__PURE__ */ import_react10.default.createElement(AccordionContext.Provider, {
557
+ value: { active, setActive: setOpenAccordion }
558
+ }, children));
559
+ }
560
+ );
571
561
  Accordion.defaultProps = {
572
562
  items: [
573
563
  {
@@ -605,11 +595,12 @@ var accordion_default = Accordion;
605
595
  // src/elements/accordion/AccordionWrapper.tsx
606
596
  var import_react11 = __toESM(require("react"));
607
597
  var AccordionWrapper = (0, import_react11.forwardRef)((props, ref) => {
608
- const _a = props, { ["data-wv-id"]: wvId, headerText, children } = _a, rest = __objRest(_a, ["data-wv-id", "headerText", "children"]);
598
+ const { ["data-wv-id"]: wvId, headerText, children, ...rest } = props;
609
599
  const { active, setActive } = (0, import_react11.useContext)(AccordionContext);
610
- return /* @__PURE__ */ import_react11.default.createElement("div", __spreadValues({
611
- ref
612
- }, rest), /* @__PURE__ */ import_react11.default.createElement("div", {
600
+ return /* @__PURE__ */ import_react11.default.createElement("div", {
601
+ ref,
602
+ ...rest
603
+ }, /* @__PURE__ */ import_react11.default.createElement("div", {
613
604
  onClick: () => setActive(wvId),
614
605
  className: `wv-accordion-header ${active === wvId ? "active" : ""}`
615
606
  }, headerText), children);
@@ -627,7 +618,7 @@ var AccordionWrapper_default = AccordionWrapper;
627
618
  // src/elements/accordion/AccordionContent.tsx
628
619
  var import_react12 = __toESM(require("react"));
629
620
  var AccordionContent = (0, import_react12.forwardRef)((props, ref) => {
630
- const _a = props, { rows, columns, gap, rowSize, children } = _a, rest = __objRest(_a, ["rows", "columns", "gap", "rowSize", "children"]);
621
+ const { rows, columns, gap, rowSize, children, ...rest } = props;
631
622
  let style = {
632
623
  "--rows": rows,
633
624
  "--columns": columns,
@@ -636,11 +627,11 @@ var AccordionContent = (0, import_react12.forwardRef)((props, ref) => {
636
627
  "--col-size": "calc((var(--grid-size) - calc(var(--columns) - 1) * var(--gap)) / var(--columns))",
637
628
  "--max-height": rows * rowSize + gap * (rowSize - 1) + "px"
638
629
  };
639
- return /* @__PURE__ */ import_react12.default.createElement("div", __spreadProps(__spreadValues({
640
- ref
641
- }, rest), {
630
+ return /* @__PURE__ */ import_react12.default.createElement("div", {
631
+ ref,
632
+ ...rest,
642
633
  style
643
- }), import_react12.default.Children.count(children) > 0 ? children : /* @__PURE__ */ import_react12.default.createElement(Placeholder_default, {
634
+ }, import_react12.default.Children.count(children) > 0 ? children : /* @__PURE__ */ import_react12.default.createElement(Placeholder_default, {
644
635
  element: "Accordion"
645
636
  }, "Item Content"));
646
637
  });
@@ -678,7 +669,7 @@ function TabHeader(props) {
678
669
  const instance = itemInstances.get(wvId);
679
670
  let [data, setData] = (0, import_react13.useState)(instance.data);
680
671
  (0, import_react13.useEffect)(() => {
681
- let update = (data2) => setData(__spreadValues({}, data2));
672
+ let update = (data2) => setData({ ...data2 });
682
673
  instance.subscribe(update);
683
674
  }, []);
684
675
  const text = data.headerText;
@@ -707,10 +698,10 @@ var TabContext = (0, import_react14.createContext)({
707
698
  }
708
699
  });
709
700
  var Tab = (0, import_react14.forwardRef)((props, ref) => {
710
- var _b, _c, _d;
701
+ var _a, _b, _c;
711
702
  const wvId = props["data-wv-id"];
712
- const _a = props, { items, children } = _a, rest = __objRest(_a, ["items", "children"]);
713
- const defaultActive = (_d = (_c = (_b = import_react14.default.Children.toArray(children)) == null ? void 0 : _b[0]) == null ? void 0 : _c.props) == null ? void 0 : _d.id;
703
+ const { items, children, ...rest } = props;
704
+ const defaultActive = (_c = (_b = (_a = import_react14.default.Children.toArray(children)) == null ? void 0 : _a[0]) == null ? void 0 : _b.props) == null ? void 0 : _c.id;
714
705
  const [active, setActive] = (0, import_react14.useState)(defaultActive);
715
706
  const setOpenTab = (id) => {
716
707
  if (id === active) {
@@ -719,9 +710,10 @@ var Tab = (0, import_react14.forwardRef)((props, ref) => {
719
710
  setActive(id);
720
711
  }
721
712
  };
722
- return /* @__PURE__ */ import_react14.default.createElement("div", __spreadValues({
723
- ref
724
- }, rest), /* @__PURE__ */ import_react14.default.createElement(TabContext.Provider, {
713
+ return /* @__PURE__ */ import_react14.default.createElement("div", {
714
+ ref,
715
+ ...rest
716
+ }, /* @__PURE__ */ import_react14.default.createElement(TabContext.Provider, {
725
717
  value: { active, setActive: setOpenTab }
726
718
  }, /* @__PURE__ */ import_react14.default.createElement(TabHeaderWrapper, {
727
719
  wvId
@@ -765,27 +757,29 @@ var tab_default = Tab;
765
757
 
766
758
  // src/elements/tab/TabContent.tsx
767
759
  var import_react15 = __toESM(require("react"));
768
- var TabContent = (0, import_react15.forwardRef)((props, ref) => {
769
- const { active } = (0, import_react15.useContext)(TabContext);
770
- const wvId = props["data-wv-id"];
771
- const _a = props, { rows, columns, gap, rowSize, children } = _a, rest = __objRest(_a, ["rows", "columns", "gap", "rowSize", "children"]);
772
- let style = {
773
- "--rows": rows,
774
- "--columns": columns,
775
- "--gap": gap + "px",
776
- "--row-size": rowSize + "px",
777
- "--col-size": "calc((var(--grid-size) - calc(var(--columns) - 1) * var(--gap)) / var(--columns))",
778
- "--max-height": rows * rowSize + gap * (rowSize - 1) + "px",
779
- "--content-active": active === wvId ? "grid" : "none"
780
- };
781
- return /* @__PURE__ */ import_react15.default.createElement("div", __spreadProps(__spreadValues({
782
- ref
783
- }, rest), {
784
- style
785
- }), import_react15.default.Children.count(children) > 0 ? children : /* @__PURE__ */ import_react15.default.createElement(Placeholder_default, {
786
- element: "Tab"
787
- }, "Item Content"));
788
- });
760
+ var TabContent = (0, import_react15.forwardRef)(
761
+ (props, ref) => {
762
+ const { active } = (0, import_react15.useContext)(TabContext);
763
+ const wvId = props["data-wv-id"];
764
+ const { rows, columns, gap, rowSize, children, ...rest } = props;
765
+ let style = {
766
+ "--rows": rows,
767
+ "--columns": columns,
768
+ "--gap": gap + "px",
769
+ "--row-size": rowSize + "px",
770
+ "--col-size": "calc((var(--grid-size) - calc(var(--columns) - 1) * var(--gap)) / var(--columns))",
771
+ "--max-height": rows * rowSize + gap * (rowSize - 1) + "px",
772
+ "--content-active": active === wvId ? "grid" : "none"
773
+ };
774
+ return /* @__PURE__ */ import_react15.default.createElement("div", {
775
+ ref,
776
+ ...rest,
777
+ style
778
+ }, import_react15.default.Children.count(children) > 0 ? children : /* @__PURE__ */ import_react15.default.createElement(Placeholder_default, {
779
+ element: "Tab"
780
+ }, "Item Content"));
781
+ }
782
+ );
789
783
  TabContent.defaultProps = {
790
784
  rows: 2,
791
785
  columns: 12,
@@ -920,11 +914,11 @@ var WeaverseRoot = ({ context }) => {
920
914
  }, []);
921
915
  let eventHandlers = ((_a = context == null ? void 0 : context.studioBridge) == null ? void 0 : _a.eventHandlers) || {};
922
916
  let themeClass = context.stitchesInstance.theme.className;
923
- return ((_b = context.projectData) == null ? void 0 : _b.rootId) ? /* @__PURE__ */ import_react17.default.createElement("div", __spreadProps(__spreadValues({
924
- className: `weaverse-content-root ${themeClass}`
925
- }, eventHandlers), {
917
+ return ((_b = context.projectData) == null ? void 0 : _b.rootId) ? /* @__PURE__ */ import_react17.default.createElement("div", {
918
+ className: `weaverse-content-root ${themeClass}`,
919
+ ...eventHandlers,
926
920
  ref: rootRef
927
- }), /* @__PURE__ */ import_react17.default.createElement(WeaverseContextProvider, {
921
+ }, /* @__PURE__ */ import_react17.default.createElement(WeaverseContextProvider, {
928
922
  value: context
929
923
  }, /* @__PURE__ */ import_react17.default.createElement(ItemInstance, {
930
924
  id: context.projectData.rootId
@@ -933,17 +927,17 @@ var WeaverseRoot = ({ context }) => {
933
927
  var ItemComponent = ({ instance }) => {
934
928
  let { stitchesInstance, elementInstances } = (0, import_react17.useContext)(WeaverseContext);
935
929
  let [data, setData] = (0, import_react17.useState)(instance.data);
936
- let _a = data, { id, type, childIds = [], css, className } = _a, rest = __objRest(_a, ["id", "type", "childIds", "css", "className"]);
930
+ let { id, type, childIds = [], css, className, ...rest } = data;
937
931
  (0, import_react17.useEffect)(() => {
938
- var _a2;
939
- let update = (data2) => setData(__spreadValues({}, data2));
932
+ var _a;
933
+ let update = (data2) => setData({ ...data2 });
940
934
  instance.subscribe(update);
941
935
  if (import_core2.isBrowser && !instance.ref.current) {
942
936
  Object.assign(instance.ref, {
943
937
  current: document.querySelector(`[data-wv-id="${id}"]`)
944
938
  });
945
939
  }
946
- (_a2 = instance.ref.current) == null ? void 0 : _a2.removeAttribute("css");
940
+ (_a = instance.ref.current) == null ? void 0 : _a.removeAttribute("css");
947
941
  return () => {
948
942
  instance.unsubscribe(update);
949
943
  };
@@ -954,12 +948,13 @@ var ItemComponent = ({ instance }) => {
954
948
  if (Component.$$typeof === Symbol.for("react.forward_ref")) {
955
949
  rest.ref = instance.ref;
956
950
  }
957
- return /* @__PURE__ */ import_react17.default.createElement(Component, __spreadValues({
951
+ return /* @__PURE__ */ import_react17.default.createElement(Component, {
958
952
  key: id,
959
953
  "data-wv-type": type,
960
954
  "data-wv-id": id,
961
- className: generateItemClass(instance, stitchesInstance)
962
- }, rest), childIds.map((id2) => /* @__PURE__ */ import_react17.default.createElement(ItemInstance, {
955
+ className: generateItemClass(instance, stitchesInstance),
956
+ ...rest
957
+ }, childIds.map((id2) => /* @__PURE__ */ import_react17.default.createElement(ItemInstance, {
963
958
  key: id2,
964
959
  id: id2
965
960
  })));