@weaverse/react 0.7.10 → 0.7.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/dist/index.js +291 -263
  2. package/dist/index.mjs +291 -263
  3. package/package.json +2 -2
package/dist/index.js CHANGED
@@ -85,22 +85,21 @@ var Container = (0, import_react.forwardRef)(
85
85
  }, children);
86
86
  }
87
87
  );
88
- Container.defaultProps = {
89
- css: {
90
- "@desktop": {
91
- alignItems: "flex-start",
92
- backgroundColor: "rgba(248,203,203,0.38)",
93
- display: "flex",
94
- flexDirection: "column",
95
- gridArea: "1 / 1 / 3 / 6",
96
- height: "fit-content",
97
- justifyContent: "flex-start",
98
- overflow: "hidden",
99
- textAlign: "left",
100
- width: "100%"
101
- }
88
+ var css = {
89
+ "@desktop": {
90
+ alignItems: "flex-start",
91
+ backgroundColor: "rgba(248,203,203,0.38)",
92
+ display: "flex",
93
+ flexDirection: "column",
94
+ gridArea: "1 / 1 / 3 / 6",
95
+ height: "fit-content",
96
+ justifyContent: "flex-start",
97
+ overflow: "hidden",
98
+ textAlign: "left",
99
+ width: "100%"
102
100
  }
103
101
  };
102
+ Container.defaultProps = {};
104
103
  var container_default = Container;
105
104
 
106
105
  // src/elements/countdown/index.tsx
@@ -197,6 +196,29 @@ var Countdown = (0, import_react4.forwardRef)(
197
196
  }));
198
197
  }
199
198
  );
199
+ var css2 = {
200
+ "@desktop": {
201
+ fontFamily: "Inter",
202
+ fontSize: 36,
203
+ fontWeight: 500,
204
+ display: "grid",
205
+ gridAutoFlow: "column",
206
+ gap: 10,
207
+ "& > div": {
208
+ width: 48,
209
+ textAlign: "center"
210
+ },
211
+ ".wv-countdown-label": {
212
+ fontSize: 10
213
+ },
214
+ "& > span": {
215
+ lineHeight: "100%"
216
+ },
217
+ "& .hidden": {
218
+ visibility: "hidden"
219
+ }
220
+ }
221
+ };
200
222
  Countdown.defaultProps = {
201
223
  timerType: "fixed-time",
202
224
  startTime: Date.now(),
@@ -205,30 +227,7 @@ Countdown.defaultProps = {
205
227
  redirectUrl: "https://myshop.com",
206
228
  openInNewTab: false,
207
229
  showLabel: true,
208
- showColon: true,
209
- css: {
210
- "@desktop": {
211
- fontFamily: "Inter",
212
- fontSize: 36,
213
- fontWeight: 500,
214
- display: "grid",
215
- gridAutoFlow: "column",
216
- gap: 10,
217
- "& > div": {
218
- width: 48,
219
- textAlign: "center"
220
- },
221
- ".wv-countdown-label": {
222
- fontSize: 10
223
- },
224
- "& > span": {
225
- lineHeight: "100%"
226
- },
227
- "& .hidden": {
228
- visibility: "hidden"
229
- }
230
- }
231
- }
230
+ showColon: true
232
231
  };
233
232
  var countdown_default = Countdown;
234
233
 
@@ -269,23 +268,23 @@ var Image = import_react5.default.forwardRef(
269
268
  }));
270
269
  }
271
270
  );
271
+ var css3 = {
272
+ "@desktop": {
273
+ img: {
274
+ width: "100%",
275
+ height: "100%",
276
+ objectFit: "var(--wv-img-object-fit, cover)",
277
+ objectPosition: "var(--wv-img-object-position, center)"
278
+ }
279
+ }
280
+ };
272
281
  Image.defaultProps = {
273
282
  src: "https://ucarecdn.com/c413b8fe-ceec-4948-9c42-a0434c4ca920/",
274
283
  alt: "Image alt text",
275
284
  objectFit: "cover",
276
285
  objectPosition: "center",
277
286
  onClickAction: "open-lightbox",
278
- openLinkInNewTab: false,
279
- css: {
280
- "@desktop": {
281
- img: {
282
- width: "100%",
283
- height: "100%",
284
- objectFit: "var(--wv-img-object-fit, cover)",
285
- objectPosition: "var(--wv-img-object-position, center)"
286
- }
287
- }
288
- }
287
+ openLinkInNewTab: false
289
288
  };
290
289
  var image_default = Image;
291
290
 
@@ -309,35 +308,35 @@ var Layout = (0, import_react6.forwardRef)((props, ref) => {
309
308
  "data-layout-content": true
310
309
  }, children));
311
310
  });
311
+ var css4 = {
312
+ "@desktop": {
313
+ paddingTop: "16px",
314
+ paddingBottom: "16px",
315
+ paddingLeft: "var(--gap)",
316
+ paddingRight: "var(--gap)",
317
+ "> [data-layout-content]": {
318
+ margin: "0 auto",
319
+ display: "grid !important",
320
+ gridTemplateRows: "repeat(var(--rows), var(--row-size))",
321
+ gridTemplateColumns: "repeat(var(--columns), minmax(0, var(--col-size)))",
322
+ gap: "var(--gap)",
323
+ maxWidth: "var(--grid-size)"
324
+ }
325
+ },
326
+ "@mobile": {
327
+ padding: "0 16px",
328
+ "> [data-layout-content]": {
329
+ display: "flex !important",
330
+ flexDirection: "column"
331
+ }
332
+ }
333
+ };
312
334
  Layout.defaultProps = {
313
335
  gridSize: 1224,
314
336
  rows: 12,
315
337
  columns: 12,
316
338
  gap: 16,
317
- rowSize: 48,
318
- css: {
319
- "@desktop": {
320
- paddingTop: "16px",
321
- paddingBottom: "16px",
322
- paddingLeft: "var(--gap)",
323
- paddingRight: "var(--gap)",
324
- "> [data-layout-content]": {
325
- margin: "0 auto",
326
- display: "grid !important",
327
- gridTemplateRows: "repeat(var(--rows), var(--row-size))",
328
- gridTemplateColumns: "repeat(var(--columns), minmax(0, var(--col-size)))",
329
- gap: "var(--gap)",
330
- maxWidth: "var(--grid-size)"
331
- }
332
- },
333
- "@mobile": {
334
- padding: "0 16px",
335
- "> [data-layout-content]": {
336
- display: "flex !important",
337
- flexDirection: "column"
338
- }
339
- }
340
- }
339
+ rowSize: 48
341
340
  };
342
341
  var layout_default = Layout;
343
342
 
@@ -358,6 +357,7 @@ var Map = (0, import_react7.forwardRef)((props, ref) => {
358
357
  style: { pointerEvents: "none" }
359
358
  }));
360
359
  });
360
+ var css5 = {};
361
361
  Map.defaultProps = {
362
362
  place: "Hanoi",
363
363
  zoom: 14
@@ -376,17 +376,17 @@ var Text = React8.forwardRef(
376
376
  });
377
377
  }
378
378
  );
379
- Text.defaultProps = {
380
- value: "The quick brown fox jumps over the lazy dog",
381
- css: {
382
- "@desktop": {
383
- padding: "10px",
384
- wordBreak: "break-word",
385
- overflowWrap: "break-word",
386
- whiteSpace: "break-spaces"
387
- }
379
+ var css6 = {
380
+ "@desktop": {
381
+ padding: "10px",
382
+ wordBreak: "break-word",
383
+ overflowWrap: "break-word",
384
+ whiteSpace: "break-spaces"
388
385
  }
389
386
  };
387
+ Text.defaultProps = {
388
+ value: "The quick brown fox jumps over the lazy dog"
389
+ };
390
390
  var text_default = Text;
391
391
 
392
392
  // src/elements/video.tsx
@@ -409,6 +409,15 @@ var Video = (0, import_react8.forwardRef)((props, ref) => {
409
409
  type: type || "video/mp4"
410
410
  }), "Your browser does not support the video tag."));
411
411
  });
412
+ var css7 = {
413
+ "@desktop": {
414
+ video: {
415
+ height: "100%",
416
+ width: "100%",
417
+ aspectRatio: "16 / 9"
418
+ }
419
+ }
420
+ };
412
421
  Video.defaultProps = {
413
422
  src: "https://youtu.be/wM-NT6hcw48",
414
423
  poster: "https://ucarecdn.com/48d73272-3fe3-43f6-8b5b-22b68fc5a8c8/section.png",
@@ -416,16 +425,7 @@ Video.defaultProps = {
416
425
  type: "video/mp4",
417
426
  controls: false,
418
427
  autoPlay: true,
419
- muted: true,
420
- css: {
421
- "@desktop": {
422
- video: {
423
- height: "100%",
424
- width: "100%",
425
- aspectRatio: "16 / 9"
426
- }
427
- }
428
- }
428
+ muted: true
429
429
  };
430
430
  var video_default = Video;
431
431
 
@@ -504,30 +504,30 @@ var Instagram = (0, import_react10.forwardRef)(
504
504
  })));
505
505
  }
506
506
  );
507
+ var css8 = {
508
+ "@desktop": {
509
+ ".wv-ig-media-container": {
510
+ overflow: "hidden",
511
+ maxWidth: "100%",
512
+ maxHeight: "100%",
513
+ display: "grid",
514
+ gridTemplateColumns: "repeat(var(--wv-ig-images-per-row, 4), 1fr)",
515
+ gap: "var(--wv-ig-images-gap, 0px)",
516
+ img: {
517
+ aspectRatio: "1 / 1",
518
+ width: "100%",
519
+ height: "100%",
520
+ objectFit: "cover"
521
+ }
522
+ }
523
+ }
524
+ };
507
525
  Instagram.defaultProps = {
508
526
  token: "",
509
527
  username: "",
510
528
  numberOfImages: 8,
511
529
  imagesPerRow: 4,
512
- gap: 0,
513
- css: {
514
- "@desktop": {
515
- ".wv-ig-media-container": {
516
- overflow: "hidden",
517
- maxWidth: "100%",
518
- maxHeight: "100%",
519
- display: "grid",
520
- gridTemplateColumns: "repeat(var(--wv-ig-images-per-row, 4), 1fr)",
521
- gap: "var(--wv-ig-images-gap, 0px)",
522
- img: {
523
- aspectRatio: "1 / 1",
524
- width: "100%",
525
- height: "100%",
526
- objectFit: "cover"
527
- }
528
- }
529
- }
530
- }
530
+ gap: 0
531
531
  };
532
532
  var instagram_default = Instagram;
533
533
 
@@ -558,16 +558,16 @@ var Accordion = (0, import_react11.forwardRef)(
558
558
  }, children));
559
559
  }
560
560
  );
561
- Accordion.defaultProps = {
562
- iconName: "arrow",
563
- css: {
564
- "@desktop": {
565
- display: "flex",
566
- flexDirection: "column",
567
- gap: 4
568
- }
561
+ var css9 = {
562
+ "@desktop": {
563
+ display: "flex",
564
+ flexDirection: "column",
565
+ gap: 4
569
566
  }
570
567
  };
568
+ Accordion.defaultProps = {
569
+ iconName: "arrow"
570
+ };
571
571
  var accordion_default = Accordion;
572
572
 
573
573
  // src/elements/accordion/AccordionWrapper.tsx
@@ -632,11 +632,11 @@ var rotateAnimation = {
632
632
  function Icon(props) {
633
633
  let { name, active = false, style, ...rest } = props;
634
634
  let { stitchesInstance } = (0, import_react12.useContext)(WeaverseContext);
635
- const { animationType, css } = ICONS[name];
635
+ const { animationType, css: css16 } = ICONS[name];
636
636
  if (active && animationType === "rotate90") {
637
637
  style = { ...rotateAnimation, ...style };
638
638
  }
639
- let { className } = stitchesInstance.css(css)();
639
+ let { className } = stitchesInstance.css(css16)();
640
640
  if (active)
641
641
  className += " active";
642
642
  return /* @__PURE__ */ import_react12.default.createElement("span", {
@@ -665,33 +665,33 @@ var AccordionWrapper = (0, import_react13.forwardRef)((props, ref) => {
665
665
  name: iconName
666
666
  })), children);
667
667
  });
668
- AccordionWrapper.defaultProps = {
669
- name: "Accordion item",
670
- css: {
671
- "@desktop": {
672
- maxHeight: "100%",
673
- ".wv-acc-icon": {
674
- position: "absolute",
675
- right: 16,
676
- width: 16,
677
- height: 16,
678
- transition: "all 0.3s ease-in-out 0s"
679
- },
680
- ".wv-acc-header": {
681
- display: "flex",
682
- alignItems: "center",
683
- borderRadius: 4,
684
- padding: 12,
685
- marginBottom: 4,
686
- border: "1px solid #76A9FA",
687
- cursor: "pointer",
688
- '&.active + [data-wv-type="accordion.content"]': {
689
- maxHeight: "var(--max-height, inherit)"
690
- }
668
+ var css10 = {
669
+ "@desktop": {
670
+ maxHeight: "100%",
671
+ ".wv-acc-icon": {
672
+ position: "absolute",
673
+ right: 16,
674
+ width: 16,
675
+ height: 16,
676
+ transition: "all 0.3s ease-in-out 0s"
677
+ },
678
+ ".wv-acc-header": {
679
+ display: "flex",
680
+ alignItems: "center",
681
+ borderRadius: 4,
682
+ padding: 12,
683
+ marginBottom: 4,
684
+ border: "1px solid #76A9FA",
685
+ cursor: "pointer",
686
+ '&.active + [data-wv-type="accordion.content"]': {
687
+ maxHeight: "var(--max-height, inherit)"
691
688
  }
692
689
  }
693
690
  }
694
691
  };
692
+ AccordionWrapper.defaultProps = {
693
+ name: "Accordion item"
694
+ };
695
695
  var AccordionWrapper_default = AccordionWrapper;
696
696
 
697
697
  // src/elements/accordion/AccordionContent.tsx
@@ -716,25 +716,25 @@ var AccordionContent = (0, import_react14.forwardRef)(
716
716
  }, "Drag and drop an element here."));
717
717
  }
718
718
  );
719
+ var css11 = {
720
+ "@desktop": {
721
+ width: "100%",
722
+ maxWidth: "var(--grid-size)",
723
+ display: "grid",
724
+ gridTemplateRows: "repeat(var(--rows), var(--row-size))",
725
+ gridTemplateColumns: "repeat(var(--columns), minmax(0, var(--col-size)))",
726
+ gap: "var(--gap)",
727
+ overflow: "hidden",
728
+ maxHeight: 0,
729
+ transition: "all var(--transition-duration, 0.3s) ease-in-out",
730
+ borderRadius: 4
731
+ }
732
+ };
719
733
  AccordionContent.defaultProps = {
720
734
  rows: 3,
721
735
  columns: 12,
722
736
  gap: 4,
723
- rowSize: 48,
724
- css: {
725
- "@desktop": {
726
- width: "100%",
727
- maxWidth: "var(--grid-size)",
728
- display: "grid",
729
- gridTemplateRows: "repeat(var(--rows), var(--row-size))",
730
- gridTemplateColumns: "repeat(var(--columns), minmax(0, var(--col-size)))",
731
- gap: "var(--gap)",
732
- overflow: "hidden",
733
- maxHeight: 0,
734
- transition: "all var(--transition-duration, 0.3s) ease-in-out",
735
- borderRadius: 4
736
- }
737
- }
737
+ rowSize: 48
738
738
  };
739
739
  var AccordionContent_default = AccordionContent;
740
740
 
@@ -800,32 +800,32 @@ var Tab = (0, import_react16.forwardRef)((props, ref) => {
800
800
  wvId
801
801
  }), children));
802
802
  });
803
- Tab.defaultProps = {
804
- fullWidthTabHeader: false,
805
- css: {
806
- "@desktop": {
803
+ var css12 = {
804
+ "@desktop": {
805
+ display: "flex",
806
+ flexDirection: "column",
807
+ gap: 4,
808
+ "& .wv-tab-header-wrapper": {
809
+ width: "100%",
807
810
  display: "flex",
808
- flexDirection: "column",
809
- gap: 4,
810
- "& .wv-tab-header-wrapper": {
811
- width: "100%",
812
- display: "flex",
813
- marginBottom: 10
814
- },
815
- "& .wv-tab-header": {
816
- backgroundColor: "#fff",
817
- padding: "15px 24px",
818
- border: "1px solid #E4E7EB",
819
- cursor: "pointer",
820
- textAlign: "center",
821
- width: "var(--tab-width, auto)",
822
- "&.active": {
823
- backgroundColor: "#E4E7EB"
824
- }
811
+ marginBottom: 10
812
+ },
813
+ "& .wv-tab-header": {
814
+ backgroundColor: "#fff",
815
+ padding: "15px 24px",
816
+ border: "1px solid #E4E7EB",
817
+ cursor: "pointer",
818
+ textAlign: "center",
819
+ width: "var(--tab-width, auto)",
820
+ "&.active": {
821
+ backgroundColor: "#E4E7EB"
825
822
  }
826
823
  }
827
824
  }
828
825
  };
826
+ Tab.defaultProps = {
827
+ fullWidthTabHeader: false
828
+ };
829
829
  var tab_default = Tab;
830
830
 
831
831
  // src/elements/tab/TabContent.tsx
@@ -853,23 +853,23 @@ var TabContent = (0, import_react17.forwardRef)(
853
853
  }, "Drag and drop an element here."));
854
854
  }
855
855
  );
856
+ var css13 = {
857
+ "@desktop": {
858
+ width: "100%",
859
+ maxWidth: "var(--grid-size)",
860
+ display: "var(--content-active, none)",
861
+ gridTemplateRows: "repeat(var(--rows), var(--row-size))",
862
+ gridTemplateColumns: "repeat(var(--columns), minmax(0, var(--col-size)))",
863
+ gap: "var(--gap)",
864
+ borderRadius: 4
865
+ }
866
+ };
856
867
  TabContent.defaultProps = {
857
868
  rows: 3,
858
869
  columns: 12,
859
870
  gap: 4,
860
871
  rowSize: 48,
861
- name: "Tab header",
862
- css: {
863
- "@desktop": {
864
- width: "100%",
865
- maxWidth: "var(--grid-size)",
866
- display: "var(--content-active, none)",
867
- gridTemplateRows: "repeat(var(--rows), var(--row-size))",
868
- gridTemplateColumns: "repeat(var(--columns), minmax(0, var(--col-size)))",
869
- gap: "var(--gap)",
870
- borderRadius: 4
871
- }
872
- }
872
+ name: "Tab header"
873
873
  };
874
874
  var TabContent_default = TabContent;
875
875
 
@@ -903,43 +903,43 @@ var Slider = (0, import_react18.forwardRef)((props, ref) => {
903
903
  autoplayInterval: delay * 1e3
904
904
  }, children));
905
905
  });
906
- Slider.defaultProps = {
907
- fullWidth: true,
908
- autoplay: true,
909
- delay: 3,
910
- css: {
911
- "@desktop": {
912
- "& .wv-slider-btn": {
913
- borderRadius: "100%",
914
- width: 40,
915
- height: 40,
916
- background: "#fff",
917
- border: "none",
918
- cursor: "pointer",
919
- "&[disabled]": {
920
- cursor: "not-allowed"
921
- },
922
- "&:hover .wv-slider-arrow": {
923
- borderColor: "#999"
924
- },
925
- "& .wv-slider-arrow": {
926
- border: "solid black",
927
- borderWidth: "0 1px 1px 0",
928
- display: "inline-block",
929
- padding: 5
930
- },
931
- "& .wv-slider-arrow-right": {
932
- transform: "rotate(-45deg)",
933
- marginRight: 5
934
- },
935
- "& .wv-slider-arrow-left": {
936
- transform: "rotate(135deg)",
937
- marginLeft: 5
938
- }
906
+ var css14 = {
907
+ "@desktop": {
908
+ "& .wv-slider-btn": {
909
+ borderRadius: "100%",
910
+ width: 40,
911
+ height: 40,
912
+ background: "#fff",
913
+ border: "none",
914
+ cursor: "pointer",
915
+ "&[disabled]": {
916
+ cursor: "not-allowed"
917
+ },
918
+ "&:hover .wv-slider-arrow": {
919
+ borderColor: "#999"
920
+ },
921
+ "& .wv-slider-arrow": {
922
+ border: "solid black",
923
+ borderWidth: "0 1px 1px 0",
924
+ display: "inline-block",
925
+ padding: 5
926
+ },
927
+ "& .wv-slider-arrow-right": {
928
+ transform: "rotate(-45deg)",
929
+ marginRight: 5
930
+ },
931
+ "& .wv-slider-arrow-left": {
932
+ transform: "rotate(135deg)",
933
+ marginLeft: 5
939
934
  }
940
935
  }
941
936
  }
942
937
  };
938
+ Slider.defaultProps = {
939
+ fullWidth: true,
940
+ autoplay: true,
941
+ delay: 3
942
+ };
943
943
  var slider_default = Slider;
944
944
 
945
945
  // src/elements/slider/SliderContent.tsx
@@ -981,6 +981,18 @@ var SliderContent = (0, import_react19.forwardRef)(
981
981
  }, "Drag and drop an element here."));
982
982
  }
983
983
  );
984
+ var css15 = {
985
+ "@desktop": {
986
+ width: "100%",
987
+ maxWidth: "var(--grid-size)",
988
+ display: "grid",
989
+ gridTemplateRows: "repeat(var(--rows), var(--row-size))",
990
+ gridTemplateColumns: "repeat(var(--columns), minmax(0, var(--col-size)))",
991
+ gap: "var(--gap)",
992
+ borderRadius: 4,
993
+ backgroundImage: "var(--background-url, none)"
994
+ }
995
+ };
984
996
  SliderContent.defaultProps = {
985
997
  name: "Slider",
986
998
  mediaUrl: "",
@@ -989,19 +1001,7 @@ SliderContent.defaultProps = {
989
1001
  rows: 4,
990
1002
  columns: 12,
991
1003
  gap: 4,
992
- rowSize: 48,
993
- css: {
994
- "@desktop": {
995
- width: "100%",
996
- maxWidth: "var(--grid-size)",
997
- display: "grid",
998
- gridTemplateRows: "repeat(var(--rows), var(--row-size))",
999
- gridTemplateColumns: "repeat(var(--columns), minmax(0, var(--col-size)))",
1000
- gap: "var(--gap)",
1001
- borderRadius: 4,
1002
- backgroundImage: "var(--background-url, none)"
1003
- }
1004
- }
1004
+ rowSize: 48
1005
1005
  };
1006
1006
  var SliderContent_default = SliderContent;
1007
1007
 
@@ -1012,7 +1012,8 @@ var SharedComponents = {
1012
1012
  var Elements = {
1013
1013
  Countdown: {
1014
1014
  Component: countdown_default,
1015
- type: "countdown"
1015
+ type: "countdown",
1016
+ defaultCss: css2
1016
1017
  },
1017
1018
  Button: {
1018
1019
  Component: button_default,
@@ -1020,59 +1021,73 @@ var Elements = {
1020
1021
  },
1021
1022
  Container: {
1022
1023
  Component: container_default,
1023
- type: "container"
1024
+ type: "container",
1025
+ defaultCss: css
1024
1026
  },
1025
1027
  Image: {
1026
1028
  Component: image_default,
1027
- type: "image"
1029
+ type: "image",
1030
+ defaultCss: css3
1028
1031
  },
1029
1032
  Instagram: {
1030
1033
  Component: instagram_default,
1031
- type: "instagram"
1034
+ type: "instagram",
1035
+ defaultCss: css8
1032
1036
  },
1033
1037
  Layout: {
1034
1038
  Component: layout_default,
1035
- type: "layout"
1039
+ type: "layout",
1040
+ defaultCss: css4
1036
1041
  },
1037
1042
  Map: {
1038
1043
  Component: map_default,
1039
- type: "map"
1044
+ type: "map",
1045
+ defaultCss: css5
1040
1046
  },
1041
1047
  Text: {
1042
1048
  Component: text_default,
1043
- type: "text"
1049
+ type: "text",
1050
+ defaultCss: css6
1044
1051
  },
1045
1052
  Video: {
1046
1053
  Component: video_default,
1047
- type: "video"
1054
+ type: "video",
1055
+ defaultCss: css7
1048
1056
  },
1049
1057
  Accordion: {
1050
1058
  Component: accordion_default,
1051
- type: "accordion"
1059
+ type: "accordion",
1060
+ defaultCss: css9
1052
1061
  },
1053
1062
  AccordionWrapper: {
1054
1063
  Component: AccordionWrapper_default,
1055
- type: "accordion.wrapper"
1064
+ type: "accordion.wrapper",
1065
+ defaultCss: css10
1056
1066
  },
1057
1067
  AccordionContent: {
1058
1068
  Component: AccordionContent_default,
1059
- type: "accordion.content"
1069
+ type: "accordion.content",
1070
+ defaultCss: css11
1060
1071
  },
1061
1072
  Tab: {
1062
1073
  Component: tab_default,
1063
- type: "tab"
1074
+ type: "tab",
1075
+ defaultCss: css12
1064
1076
  },
1065
1077
  TabContent: {
1066
1078
  Component: TabContent_default,
1067
- type: "tab.content"
1079
+ type: "tab.content",
1080
+ defaultCss: css13
1068
1081
  },
1069
1082
  Slider: {
1070
1083
  Component: slider_default,
1071
- type: "slider"
1084
+ type: "slider",
1085
+ defaultCss: css14
1072
1086
  },
1073
1087
  SliderContent: {
1074
1088
  Component: SliderContent_default,
1075
- type: "slider.content"
1089
+ type: "slider.content",
1090
+ defaultCss: css15
1076
1091
  }
1077
1092
  };
1078
1093
 
@@ -1081,22 +1096,35 @@ var import_core2 = require("@weaverse/core");
1081
1096
  var import_react20 = __toESM(require("react"));
1082
1097
 
1083
1098
  // src/utils/index.ts
1084
- function shortCssObject(css) {
1099
+ function shortCssObject(css16) {
1085
1100
  return {
1086
- "@desktop": css["@desktop"],
1087
- "@mobile": css["@mobile"]
1101
+ "@desktop": css16["@desktop"],
1102
+ "@mobile": css16["@mobile"]
1088
1103
  };
1089
1104
  }
1105
+ var permanentClasses = {};
1090
1106
  function generateItemClass(instance, stitchesInstance) {
1091
- var _a;
1092
- let { css, className: cls = "" } = instance.data;
1107
+ var _a, _b;
1108
+ let { css: css16, type, className: cls = "" } = instance.data;
1093
1109
  let className = "";
1094
- if (css) {
1095
- let formattedCss = shortCssObject(css);
1110
+ let permanentClass = "";
1111
+ let perCss = (_a = instance.Element) == null ? void 0 : _a.permanentCss;
1112
+ if (perCss) {
1113
+ if (type in permanentClasses) {
1114
+ permanentClass = permanentClasses[type];
1115
+ } else {
1116
+ let { className: perCls } = stitchesInstance.css(perCss)();
1117
+ Object.assign(permanentClasses, { [type]: perCls });
1118
+ permanentClass = perCls;
1119
+ }
1120
+ }
1121
+ className = permanentClass;
1122
+ if (css16) {
1123
+ let formattedCss = shortCssObject(css16);
1096
1124
  let { className: newClass = "" } = stitchesInstance.css(formattedCss)();
1097
1125
  let { stitchesClass } = instance;
1098
- let otherClass = (((_a = instance.ref.current) == null ? void 0 : _a.className) || "").replace(stitchesClass, "").replace(cls, "").trim();
1099
- className = `${cls} ${newClass} ${otherClass}`.trim();
1126
+ let otherClass = (((_b = instance.ref.current) == null ? void 0 : _b.className) || "").replace(stitchesClass, "").replace(cls, "").replace(permanentClass, "").trim();
1127
+ className = `${permanentClass} ${cls} ${newClass} ${otherClass}`.trim();
1100
1128
  instance.stitchesClass = newClass;
1101
1129
  }
1102
1130
  return className;
@@ -1130,7 +1158,7 @@ var WeaverseRoot = ({ context }) => {
1130
1158
  var ItemComponent = ({ instance }) => {
1131
1159
  let { stitchesInstance, elementInstances } = (0, import_react20.useContext)(WeaverseContext);
1132
1160
  let [data, setData] = (0, import_react20.useState)(instance.data);
1133
- let { id, type, childIds = [], css, className, ...rest } = data;
1161
+ let { id, type, childIds = [], css: css16, className, ...rest } = data;
1134
1162
  (0, import_react20.useEffect)(() => {
1135
1163
  let update = (data2) => setData({ ...data2 });
1136
1164
  instance.subscribe(update);