@weaverse/react 0.7.10 → 0.7.11

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.mjs CHANGED
@@ -46,22 +46,21 @@ var Container = forwardRef2(
46
46
  }, children);
47
47
  }
48
48
  );
49
- Container.defaultProps = {
50
- css: {
51
- "@desktop": {
52
- alignItems: "flex-start",
53
- backgroundColor: "rgba(248,203,203,0.38)",
54
- display: "flex",
55
- flexDirection: "column",
56
- gridArea: "1 / 1 / 3 / 6",
57
- height: "fit-content",
58
- justifyContent: "flex-start",
59
- overflow: "hidden",
60
- textAlign: "left",
61
- width: "100%"
62
- }
49
+ var css = {
50
+ "@desktop": {
51
+ alignItems: "flex-start",
52
+ backgroundColor: "rgba(248,203,203,0.38)",
53
+ display: "flex",
54
+ flexDirection: "column",
55
+ gridArea: "1 / 1 / 3 / 6",
56
+ height: "fit-content",
57
+ justifyContent: "flex-start",
58
+ overflow: "hidden",
59
+ textAlign: "left",
60
+ width: "100%"
63
61
  }
64
62
  };
63
+ Container.defaultProps = {};
65
64
  var container_default = Container;
66
65
 
67
66
  // src/elements/countdown/index.tsx
@@ -158,6 +157,29 @@ var Countdown = forwardRef3(
158
157
  }));
159
158
  }
160
159
  );
160
+ var css2 = {
161
+ "@desktop": {
162
+ fontFamily: "Inter",
163
+ fontSize: 36,
164
+ fontWeight: 500,
165
+ display: "grid",
166
+ gridAutoFlow: "column",
167
+ gap: 10,
168
+ "& > div": {
169
+ width: 48,
170
+ textAlign: "center"
171
+ },
172
+ ".wv-countdown-label": {
173
+ fontSize: 10
174
+ },
175
+ "& > span": {
176
+ lineHeight: "100%"
177
+ },
178
+ "& .hidden": {
179
+ visibility: "hidden"
180
+ }
181
+ }
182
+ };
161
183
  Countdown.defaultProps = {
162
184
  timerType: "fixed-time",
163
185
  startTime: Date.now(),
@@ -166,30 +188,7 @@ Countdown.defaultProps = {
166
188
  redirectUrl: "https://myshop.com",
167
189
  openInNewTab: false,
168
190
  showLabel: true,
169
- showColon: true,
170
- css: {
171
- "@desktop": {
172
- fontFamily: "Inter",
173
- fontSize: 36,
174
- fontWeight: 500,
175
- display: "grid",
176
- gridAutoFlow: "column",
177
- gap: 10,
178
- "& > div": {
179
- width: 48,
180
- textAlign: "center"
181
- },
182
- ".wv-countdown-label": {
183
- fontSize: 10
184
- },
185
- "& > span": {
186
- lineHeight: "100%"
187
- },
188
- "& .hidden": {
189
- visibility: "hidden"
190
- }
191
- }
192
- }
191
+ showColon: true
193
192
  };
194
193
  var countdown_default = Countdown;
195
194
 
@@ -230,23 +229,23 @@ var Image = React5.forwardRef(
230
229
  }));
231
230
  }
232
231
  );
232
+ var css3 = {
233
+ "@desktop": {
234
+ img: {
235
+ width: "100%",
236
+ height: "100%",
237
+ objectFit: "var(--wv-img-object-fit, cover)",
238
+ objectPosition: "var(--wv-img-object-position, center)"
239
+ }
240
+ }
241
+ };
233
242
  Image.defaultProps = {
234
243
  src: "https://ucarecdn.com/c413b8fe-ceec-4948-9c42-a0434c4ca920/",
235
244
  alt: "Image alt text",
236
245
  objectFit: "cover",
237
246
  objectPosition: "center",
238
247
  onClickAction: "open-lightbox",
239
- openLinkInNewTab: false,
240
- css: {
241
- "@desktop": {
242
- img: {
243
- width: "100%",
244
- height: "100%",
245
- objectFit: "var(--wv-img-object-fit, cover)",
246
- objectPosition: "var(--wv-img-object-position, center)"
247
- }
248
- }
249
- }
248
+ openLinkInNewTab: false
250
249
  };
251
250
  var image_default = Image;
252
251
 
@@ -270,35 +269,35 @@ var Layout = forwardRef4((props, ref) => {
270
269
  "data-layout-content": true
271
270
  }, children));
272
271
  });
272
+ var css4 = {
273
+ "@desktop": {
274
+ paddingTop: "16px",
275
+ paddingBottom: "16px",
276
+ paddingLeft: "var(--gap)",
277
+ paddingRight: "var(--gap)",
278
+ "> [data-layout-content]": {
279
+ margin: "0 auto",
280
+ display: "grid !important",
281
+ gridTemplateRows: "repeat(var(--rows), var(--row-size))",
282
+ gridTemplateColumns: "repeat(var(--columns), minmax(0, var(--col-size)))",
283
+ gap: "var(--gap)",
284
+ maxWidth: "var(--grid-size)"
285
+ }
286
+ },
287
+ "@mobile": {
288
+ padding: "0 16px",
289
+ "> [data-layout-content]": {
290
+ display: "flex !important",
291
+ flexDirection: "column"
292
+ }
293
+ }
294
+ };
273
295
  Layout.defaultProps = {
274
296
  gridSize: 1224,
275
297
  rows: 12,
276
298
  columns: 12,
277
299
  gap: 16,
278
- rowSize: 48,
279
- css: {
280
- "@desktop": {
281
- paddingTop: "16px",
282
- paddingBottom: "16px",
283
- paddingLeft: "var(--gap)",
284
- paddingRight: "var(--gap)",
285
- "> [data-layout-content]": {
286
- margin: "0 auto",
287
- display: "grid !important",
288
- gridTemplateRows: "repeat(var(--rows), var(--row-size))",
289
- gridTemplateColumns: "repeat(var(--columns), minmax(0, var(--col-size)))",
290
- gap: "var(--gap)",
291
- maxWidth: "var(--grid-size)"
292
- }
293
- },
294
- "@mobile": {
295
- padding: "0 16px",
296
- "> [data-layout-content]": {
297
- display: "flex !important",
298
- flexDirection: "column"
299
- }
300
- }
301
- }
300
+ rowSize: 48
302
301
  };
303
302
  var layout_default = Layout;
304
303
 
@@ -319,6 +318,7 @@ var Map = forwardRef5((props, ref) => {
319
318
  style: { pointerEvents: "none" }
320
319
  }));
321
320
  });
321
+ var css5 = {};
322
322
  Map.defaultProps = {
323
323
  place: "Hanoi",
324
324
  zoom: 14
@@ -337,17 +337,17 @@ var Text = React8.forwardRef(
337
337
  });
338
338
  }
339
339
  );
340
- Text.defaultProps = {
341
- value: "The quick brown fox jumps over the lazy dog",
342
- css: {
343
- "@desktop": {
344
- padding: "10px",
345
- wordBreak: "break-word",
346
- overflowWrap: "break-word",
347
- whiteSpace: "break-spaces"
348
- }
340
+ var css6 = {
341
+ "@desktop": {
342
+ padding: "10px",
343
+ wordBreak: "break-word",
344
+ overflowWrap: "break-word",
345
+ whiteSpace: "break-spaces"
349
346
  }
350
347
  };
348
+ Text.defaultProps = {
349
+ value: "The quick brown fox jumps over the lazy dog"
350
+ };
351
351
  var text_default = Text;
352
352
 
353
353
  // src/elements/video.tsx
@@ -370,6 +370,15 @@ var Video = forwardRef7((props, ref) => {
370
370
  type: type || "video/mp4"
371
371
  }), "Your browser does not support the video tag."));
372
372
  });
373
+ var css7 = {
374
+ "@desktop": {
375
+ video: {
376
+ height: "100%",
377
+ width: "100%",
378
+ aspectRatio: "16 / 9"
379
+ }
380
+ }
381
+ };
373
382
  Video.defaultProps = {
374
383
  src: "https://youtu.be/wM-NT6hcw48",
375
384
  poster: "https://ucarecdn.com/48d73272-3fe3-43f6-8b5b-22b68fc5a8c8/section.png",
@@ -377,16 +386,7 @@ Video.defaultProps = {
377
386
  type: "video/mp4",
378
387
  controls: false,
379
388
  autoPlay: true,
380
- muted: true,
381
- css: {
382
- "@desktop": {
383
- video: {
384
- height: "100%",
385
- width: "100%",
386
- aspectRatio: "16 / 9"
387
- }
388
- }
389
- }
389
+ muted: true
390
390
  };
391
391
  var video_default = Video;
392
392
 
@@ -465,30 +465,30 @@ var Instagram = forwardRef9(
465
465
  })));
466
466
  }
467
467
  );
468
+ var css8 = {
469
+ "@desktop": {
470
+ ".wv-ig-media-container": {
471
+ overflow: "hidden",
472
+ maxWidth: "100%",
473
+ maxHeight: "100%",
474
+ display: "grid",
475
+ gridTemplateColumns: "repeat(var(--wv-ig-images-per-row, 4), 1fr)",
476
+ gap: "var(--wv-ig-images-gap, 0px)",
477
+ img: {
478
+ aspectRatio: "1 / 1",
479
+ width: "100%",
480
+ height: "100%",
481
+ objectFit: "cover"
482
+ }
483
+ }
484
+ }
485
+ };
468
486
  Instagram.defaultProps = {
469
487
  token: "",
470
488
  username: "",
471
489
  numberOfImages: 8,
472
490
  imagesPerRow: 4,
473
- gap: 0,
474
- css: {
475
- "@desktop": {
476
- ".wv-ig-media-container": {
477
- overflow: "hidden",
478
- maxWidth: "100%",
479
- maxHeight: "100%",
480
- display: "grid",
481
- gridTemplateColumns: "repeat(var(--wv-ig-images-per-row, 4), 1fr)",
482
- gap: "var(--wv-ig-images-gap, 0px)",
483
- img: {
484
- aspectRatio: "1 / 1",
485
- width: "100%",
486
- height: "100%",
487
- objectFit: "cover"
488
- }
489
- }
490
- }
491
- }
491
+ gap: 0
492
492
  };
493
493
  var instagram_default = Instagram;
494
494
 
@@ -519,16 +519,16 @@ var Accordion = forwardRef10(
519
519
  }, children));
520
520
  }
521
521
  );
522
- Accordion.defaultProps = {
523
- iconName: "arrow",
524
- css: {
525
- "@desktop": {
526
- display: "flex",
527
- flexDirection: "column",
528
- gap: 4
529
- }
522
+ var css9 = {
523
+ "@desktop": {
524
+ display: "flex",
525
+ flexDirection: "column",
526
+ gap: 4
530
527
  }
531
528
  };
529
+ Accordion.defaultProps = {
530
+ iconName: "arrow"
531
+ };
532
532
  var accordion_default = Accordion;
533
533
 
534
534
  // src/elements/accordion/AccordionWrapper.tsx
@@ -593,11 +593,11 @@ var rotateAnimation = {
593
593
  function Icon(props) {
594
594
  let { name, active = false, style, ...rest } = props;
595
595
  let { stitchesInstance } = useContext4(WeaverseContext);
596
- const { animationType, css } = ICONS[name];
596
+ const { animationType, css: css16 } = ICONS[name];
597
597
  if (active && animationType === "rotate90") {
598
598
  style = { ...rotateAnimation, ...style };
599
599
  }
600
- let { className } = stitchesInstance.css(css)();
600
+ let { className } = stitchesInstance.css(css16)();
601
601
  if (active)
602
602
  className += " active";
603
603
  return /* @__PURE__ */ React13.createElement("span", {
@@ -626,33 +626,33 @@ var AccordionWrapper = forwardRef11((props, ref) => {
626
626
  name: iconName
627
627
  })), children);
628
628
  });
629
- AccordionWrapper.defaultProps = {
630
- name: "Accordion item",
631
- css: {
632
- "@desktop": {
633
- maxHeight: "100%",
634
- ".wv-acc-icon": {
635
- position: "absolute",
636
- right: 16,
637
- width: 16,
638
- height: 16,
639
- transition: "all 0.3s ease-in-out 0s"
640
- },
641
- ".wv-acc-header": {
642
- display: "flex",
643
- alignItems: "center",
644
- borderRadius: 4,
645
- padding: 12,
646
- marginBottom: 4,
647
- border: "1px solid #76A9FA",
648
- cursor: "pointer",
649
- '&.active + [data-wv-type="accordion.content"]': {
650
- maxHeight: "var(--max-height, inherit)"
651
- }
629
+ var css10 = {
630
+ "@desktop": {
631
+ maxHeight: "100%",
632
+ ".wv-acc-icon": {
633
+ position: "absolute",
634
+ right: 16,
635
+ width: 16,
636
+ height: 16,
637
+ transition: "all 0.3s ease-in-out 0s"
638
+ },
639
+ ".wv-acc-header": {
640
+ display: "flex",
641
+ alignItems: "center",
642
+ borderRadius: 4,
643
+ padding: 12,
644
+ marginBottom: 4,
645
+ border: "1px solid #76A9FA",
646
+ cursor: "pointer",
647
+ '&.active + [data-wv-type="accordion.content"]': {
648
+ maxHeight: "var(--max-height, inherit)"
652
649
  }
653
650
  }
654
651
  }
655
652
  };
653
+ AccordionWrapper.defaultProps = {
654
+ name: "Accordion item"
655
+ };
656
656
  var AccordionWrapper_default = AccordionWrapper;
657
657
 
658
658
  // src/elements/accordion/AccordionContent.tsx
@@ -677,25 +677,25 @@ var AccordionContent = forwardRef12(
677
677
  }, "Drag and drop an element here."));
678
678
  }
679
679
  );
680
+ var css11 = {
681
+ "@desktop": {
682
+ width: "100%",
683
+ maxWidth: "var(--grid-size)",
684
+ display: "grid",
685
+ gridTemplateRows: "repeat(var(--rows), var(--row-size))",
686
+ gridTemplateColumns: "repeat(var(--columns), minmax(0, var(--col-size)))",
687
+ gap: "var(--gap)",
688
+ overflow: "hidden",
689
+ maxHeight: 0,
690
+ transition: "all var(--transition-duration, 0.3s) ease-in-out",
691
+ borderRadius: 4
692
+ }
693
+ };
680
694
  AccordionContent.defaultProps = {
681
695
  rows: 3,
682
696
  columns: 12,
683
697
  gap: 4,
684
- rowSize: 48,
685
- css: {
686
- "@desktop": {
687
- width: "100%",
688
- maxWidth: "var(--grid-size)",
689
- display: "grid",
690
- gridTemplateRows: "repeat(var(--rows), var(--row-size))",
691
- gridTemplateColumns: "repeat(var(--columns), minmax(0, var(--col-size)))",
692
- gap: "var(--gap)",
693
- overflow: "hidden",
694
- maxHeight: 0,
695
- transition: "all var(--transition-duration, 0.3s) ease-in-out",
696
- borderRadius: 4
697
- }
698
- }
698
+ rowSize: 48
699
699
  };
700
700
  var AccordionContent_default = AccordionContent;
701
701
 
@@ -761,32 +761,32 @@ var Tab = forwardRef13((props, ref) => {
761
761
  wvId
762
762
  }), children));
763
763
  });
764
- Tab.defaultProps = {
765
- fullWidthTabHeader: false,
766
- css: {
767
- "@desktop": {
764
+ var css12 = {
765
+ "@desktop": {
766
+ display: "flex",
767
+ flexDirection: "column",
768
+ gap: 4,
769
+ "& .wv-tab-header-wrapper": {
770
+ width: "100%",
768
771
  display: "flex",
769
- flexDirection: "column",
770
- gap: 4,
771
- "& .wv-tab-header-wrapper": {
772
- width: "100%",
773
- display: "flex",
774
- marginBottom: 10
775
- },
776
- "& .wv-tab-header": {
777
- backgroundColor: "#fff",
778
- padding: "15px 24px",
779
- border: "1px solid #E4E7EB",
780
- cursor: "pointer",
781
- textAlign: "center",
782
- width: "var(--tab-width, auto)",
783
- "&.active": {
784
- backgroundColor: "#E4E7EB"
785
- }
772
+ marginBottom: 10
773
+ },
774
+ "& .wv-tab-header": {
775
+ backgroundColor: "#fff",
776
+ padding: "15px 24px",
777
+ border: "1px solid #E4E7EB",
778
+ cursor: "pointer",
779
+ textAlign: "center",
780
+ width: "var(--tab-width, auto)",
781
+ "&.active": {
782
+ backgroundColor: "#E4E7EB"
786
783
  }
787
784
  }
788
785
  }
789
786
  };
787
+ Tab.defaultProps = {
788
+ fullWidthTabHeader: false
789
+ };
790
790
  var tab_default = Tab;
791
791
 
792
792
  // src/elements/tab/TabContent.tsx
@@ -814,23 +814,23 @@ var TabContent = forwardRef14(
814
814
  }, "Drag and drop an element here."));
815
815
  }
816
816
  );
817
+ var css13 = {
818
+ "@desktop": {
819
+ width: "100%",
820
+ maxWidth: "var(--grid-size)",
821
+ display: "var(--content-active, none)",
822
+ gridTemplateRows: "repeat(var(--rows), var(--row-size))",
823
+ gridTemplateColumns: "repeat(var(--columns), minmax(0, var(--col-size)))",
824
+ gap: "var(--gap)",
825
+ borderRadius: 4
826
+ }
827
+ };
817
828
  TabContent.defaultProps = {
818
829
  rows: 3,
819
830
  columns: 12,
820
831
  gap: 4,
821
832
  rowSize: 48,
822
- name: "Tab header",
823
- css: {
824
- "@desktop": {
825
- width: "100%",
826
- maxWidth: "var(--grid-size)",
827
- display: "var(--content-active, none)",
828
- gridTemplateRows: "repeat(var(--rows), var(--row-size))",
829
- gridTemplateColumns: "repeat(var(--columns), minmax(0, var(--col-size)))",
830
- gap: "var(--gap)",
831
- borderRadius: 4
832
- }
833
- }
833
+ name: "Tab header"
834
834
  };
835
835
  var TabContent_default = TabContent;
836
836
 
@@ -864,43 +864,43 @@ var Slider = forwardRef15((props, ref) => {
864
864
  autoplayInterval: delay * 1e3
865
865
  }, children));
866
866
  });
867
- Slider.defaultProps = {
868
- fullWidth: true,
869
- autoplay: true,
870
- delay: 3,
871
- css: {
872
- "@desktop": {
873
- "& .wv-slider-btn": {
874
- borderRadius: "100%",
875
- width: 40,
876
- height: 40,
877
- background: "#fff",
878
- border: "none",
879
- cursor: "pointer",
880
- "&[disabled]": {
881
- cursor: "not-allowed"
882
- },
883
- "&:hover .wv-slider-arrow": {
884
- borderColor: "#999"
885
- },
886
- "& .wv-slider-arrow": {
887
- border: "solid black",
888
- borderWidth: "0 1px 1px 0",
889
- display: "inline-block",
890
- padding: 5
891
- },
892
- "& .wv-slider-arrow-right": {
893
- transform: "rotate(-45deg)",
894
- marginRight: 5
895
- },
896
- "& .wv-slider-arrow-left": {
897
- transform: "rotate(135deg)",
898
- marginLeft: 5
899
- }
867
+ var css14 = {
868
+ "@desktop": {
869
+ "& .wv-slider-btn": {
870
+ borderRadius: "100%",
871
+ width: 40,
872
+ height: 40,
873
+ background: "#fff",
874
+ border: "none",
875
+ cursor: "pointer",
876
+ "&[disabled]": {
877
+ cursor: "not-allowed"
878
+ },
879
+ "&:hover .wv-slider-arrow": {
880
+ borderColor: "#999"
881
+ },
882
+ "& .wv-slider-arrow": {
883
+ border: "solid black",
884
+ borderWidth: "0 1px 1px 0",
885
+ display: "inline-block",
886
+ padding: 5
887
+ },
888
+ "& .wv-slider-arrow-right": {
889
+ transform: "rotate(-45deg)",
890
+ marginRight: 5
891
+ },
892
+ "& .wv-slider-arrow-left": {
893
+ transform: "rotate(135deg)",
894
+ marginLeft: 5
900
895
  }
901
896
  }
902
897
  }
903
898
  };
899
+ Slider.defaultProps = {
900
+ fullWidth: true,
901
+ autoplay: true,
902
+ delay: 3
903
+ };
904
904
  var slider_default = Slider;
905
905
 
906
906
  // src/elements/slider/SliderContent.tsx
@@ -942,6 +942,18 @@ var SliderContent = forwardRef16(
942
942
  }, "Drag and drop an element here."));
943
943
  }
944
944
  );
945
+ var css15 = {
946
+ "@desktop": {
947
+ width: "100%",
948
+ maxWidth: "var(--grid-size)",
949
+ display: "grid",
950
+ gridTemplateRows: "repeat(var(--rows), var(--row-size))",
951
+ gridTemplateColumns: "repeat(var(--columns), minmax(0, var(--col-size)))",
952
+ gap: "var(--gap)",
953
+ borderRadius: 4,
954
+ backgroundImage: "var(--background-url, none)"
955
+ }
956
+ };
945
957
  SliderContent.defaultProps = {
946
958
  name: "Slider",
947
959
  mediaUrl: "",
@@ -950,19 +962,7 @@ SliderContent.defaultProps = {
950
962
  rows: 4,
951
963
  columns: 12,
952
964
  gap: 4,
953
- rowSize: 48,
954
- css: {
955
- "@desktop": {
956
- width: "100%",
957
- maxWidth: "var(--grid-size)",
958
- display: "grid",
959
- gridTemplateRows: "repeat(var(--rows), var(--row-size))",
960
- gridTemplateColumns: "repeat(var(--columns), minmax(0, var(--col-size)))",
961
- gap: "var(--gap)",
962
- borderRadius: 4,
963
- backgroundImage: "var(--background-url, none)"
964
- }
965
- }
965
+ rowSize: 48
966
966
  };
967
967
  var SliderContent_default = SliderContent;
968
968
 
@@ -973,7 +973,8 @@ var SharedComponents = {
973
973
  var Elements = {
974
974
  Countdown: {
975
975
  Component: countdown_default,
976
- type: "countdown"
976
+ type: "countdown",
977
+ defaultCss: css2
977
978
  },
978
979
  Button: {
979
980
  Component: button_default,
@@ -981,59 +982,73 @@ var Elements = {
981
982
  },
982
983
  Container: {
983
984
  Component: container_default,
984
- type: "container"
985
+ type: "container",
986
+ defaultCss: css
985
987
  },
986
988
  Image: {
987
989
  Component: image_default,
988
- type: "image"
990
+ type: "image",
991
+ defaultCss: css3
989
992
  },
990
993
  Instagram: {
991
994
  Component: instagram_default,
992
- type: "instagram"
995
+ type: "instagram",
996
+ defaultCss: css8
993
997
  },
994
998
  Layout: {
995
999
  Component: layout_default,
996
- type: "layout"
1000
+ type: "layout",
1001
+ defaultCss: css4
997
1002
  },
998
1003
  Map: {
999
1004
  Component: map_default,
1000
- type: "map"
1005
+ type: "map",
1006
+ defaultCss: css5
1001
1007
  },
1002
1008
  Text: {
1003
1009
  Component: text_default,
1004
- type: "text"
1010
+ type: "text",
1011
+ defaultCss: css6
1005
1012
  },
1006
1013
  Video: {
1007
1014
  Component: video_default,
1008
- type: "video"
1015
+ type: "video",
1016
+ defaultCss: css7
1009
1017
  },
1010
1018
  Accordion: {
1011
1019
  Component: accordion_default,
1012
- type: "accordion"
1020
+ type: "accordion",
1021
+ defaultCss: css9
1013
1022
  },
1014
1023
  AccordionWrapper: {
1015
1024
  Component: AccordionWrapper_default,
1016
- type: "accordion.wrapper"
1025
+ type: "accordion.wrapper",
1026
+ defaultCss: css10
1017
1027
  },
1018
1028
  AccordionContent: {
1019
1029
  Component: AccordionContent_default,
1020
- type: "accordion.content"
1030
+ type: "accordion.content",
1031
+ defaultCss: css11
1021
1032
  },
1022
1033
  Tab: {
1023
1034
  Component: tab_default,
1024
- type: "tab"
1035
+ type: "tab",
1036
+ defaultCss: css12
1025
1037
  },
1026
1038
  TabContent: {
1027
1039
  Component: TabContent_default,
1028
- type: "tab.content"
1040
+ type: "tab.content",
1041
+ defaultCss: css13
1029
1042
  },
1030
1043
  Slider: {
1031
1044
  Component: slider_default,
1032
- type: "slider"
1045
+ type: "slider",
1046
+ defaultCss: css14
1033
1047
  },
1034
1048
  SliderContent: {
1035
1049
  Component: SliderContent_default,
1036
- type: "slider.content"
1050
+ type: "slider.content",
1051
+ defaultCss: css15
1037
1052
  }
1038
1053
  };
1039
1054
 
@@ -1042,22 +1057,35 @@ import { isBrowser } from "@weaverse/core";
1042
1057
  import React21, { useContext as useContext10, useEffect as useEffect4, useRef, useState as useState5 } from "react";
1043
1058
 
1044
1059
  // src/utils/index.ts
1045
- function shortCssObject(css) {
1060
+ function shortCssObject(css16) {
1046
1061
  return {
1047
- "@desktop": css["@desktop"],
1048
- "@mobile": css["@mobile"]
1062
+ "@desktop": css16["@desktop"],
1063
+ "@mobile": css16["@mobile"]
1049
1064
  };
1050
1065
  }
1066
+ var permanentClasses = {};
1051
1067
  function generateItemClass(instance, stitchesInstance) {
1052
- var _a;
1053
- let { css, className: cls = "" } = instance.data;
1068
+ var _a, _b;
1069
+ let { css: css16, type, className: cls = "" } = instance.data;
1054
1070
  let className = "";
1055
- if (css) {
1056
- let formattedCss = shortCssObject(css);
1071
+ let permanentClass = "";
1072
+ let perCss = (_a = instance.Element) == null ? void 0 : _a.permanentCss;
1073
+ if (perCss) {
1074
+ if (type in permanentClasses) {
1075
+ permanentClass = permanentClasses[type];
1076
+ } else {
1077
+ let { className: perCls } = stitchesInstance.css(perCss)();
1078
+ Object.assign(permanentClasses, { [type]: perCls });
1079
+ permanentClass = perCls;
1080
+ }
1081
+ }
1082
+ className = permanentClass;
1083
+ if (css16) {
1084
+ let formattedCss = shortCssObject(css16);
1057
1085
  let { className: newClass = "" } = stitchesInstance.css(formattedCss)();
1058
1086
  let { stitchesClass } = instance;
1059
- let otherClass = (((_a = instance.ref.current) == null ? void 0 : _a.className) || "").replace(stitchesClass, "").replace(cls, "").trim();
1060
- className = `${cls} ${newClass} ${otherClass}`.trim();
1087
+ let otherClass = (((_b = instance.ref.current) == null ? void 0 : _b.className) || "").replace(stitchesClass, "").replace(cls, "").replace(permanentClass, "").trim();
1088
+ className = `${permanentClass} ${cls} ${newClass} ${otherClass}`.trim();
1061
1089
  instance.stitchesClass = newClass;
1062
1090
  }
1063
1091
  return className;
@@ -1091,7 +1119,7 @@ var WeaverseRoot = ({ context }) => {
1091
1119
  var ItemComponent = ({ instance }) => {
1092
1120
  let { stitchesInstance, elementInstances } = useContext10(WeaverseContext);
1093
1121
  let [data, setData] = useState5(instance.data);
1094
- let { id, type, childIds = [], css, className, ...rest } = data;
1122
+ let { id, type, childIds = [], css: css16, className, ...rest } = data;
1095
1123
  useEffect4(() => {
1096
1124
  let update = (data2) => setData({ ...data2 });
1097
1125
  instance.subscribe(update);