@gem-sdk/components 2.5.6 → 2.6.0-staging.13

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 (52) hide show
  1. package/dist/cjs/banner/components/hero-banner/index.liquid.js +13 -2
  2. package/dist/cjs/banner/setting/HeroBanner.js +50 -6
  3. package/dist/cjs/banner/setting/presets/heroBanner1ColPreSalesPage.js +134 -0
  4. package/dist/cjs/banner/setting/presets/heroBannerContentLeftPreSalesPage.js +154 -0
  5. package/dist/cjs/banner/setting/presets/heroBannerContentRightPreSalesPage.js +162 -0
  6. package/dist/cjs/banner/setting/presets/heroBannerParallaxPreSalesPage.js +134 -0
  7. package/dist/cjs/banner/setting/presets/heroBannerVideoPreSalesPage.js +130 -0
  8. package/dist/cjs/button/components/Button.liquid.js +11 -2
  9. package/dist/cjs/button/setting/Button.js +112 -5
  10. package/dist/cjs/carousel/components/CarouselItem.js +1 -1
  11. package/dist/cjs/carousel/components/CarouselItem.liquid.js +1 -1
  12. package/dist/cjs/constants.js +5 -0
  13. package/dist/cjs/grid/components/Row.js +4 -3
  14. package/dist/cjs/grid/components/Row.liquid.js +2 -1
  15. package/dist/cjs/grid/setting/Row.js +31 -0
  16. package/dist/cjs/icon/components/Icon.liquid.js +10 -2
  17. package/dist/cjs/icon/setting/Icon.js +69 -5
  18. package/dist/cjs/image/components/Image.js +4 -1
  19. package/dist/cjs/image/components/Image.liquid.js +12 -3
  20. package/dist/cjs/image/helpers/getSrcSet.js +2 -2
  21. package/dist/cjs/image/setting/Image.js +216 -16
  22. package/dist/cjs/post-purchase/button/Button.js +1 -1
  23. package/dist/cjs/text/setting/Text.js +2 -1
  24. package/dist/cjs/third-party/components/Trustoo.liquid.js +24 -7
  25. package/dist/cjs/third-party/setting/Trustoo.js +4 -111
  26. package/dist/esm/banner/components/hero-banner/index.liquid.js +13 -2
  27. package/dist/esm/banner/setting/HeroBanner.js +50 -6
  28. package/dist/esm/banner/setting/presets/heroBanner1ColPreSalesPage.js +132 -0
  29. package/dist/esm/banner/setting/presets/heroBannerContentLeftPreSalesPage.js +152 -0
  30. package/dist/esm/banner/setting/presets/heroBannerContentRightPreSalesPage.js +160 -0
  31. package/dist/esm/banner/setting/presets/heroBannerParallaxPreSalesPage.js +132 -0
  32. package/dist/esm/banner/setting/presets/heroBannerVideoPreSalesPage.js +128 -0
  33. package/dist/esm/button/components/Button.liquid.js +11 -2
  34. package/dist/esm/button/setting/Button.js +112 -5
  35. package/dist/esm/carousel/components/CarouselItem.js +1 -1
  36. package/dist/esm/carousel/components/CarouselItem.liquid.js +1 -1
  37. package/dist/esm/constants.js +3 -0
  38. package/dist/esm/grid/components/Row.js +4 -3
  39. package/dist/esm/grid/components/Row.liquid.js +2 -1
  40. package/dist/esm/grid/setting/Row.js +31 -0
  41. package/dist/esm/icon/components/Icon.liquid.js +10 -2
  42. package/dist/esm/icon/setting/Icon.js +69 -5
  43. package/dist/esm/image/components/Image.js +5 -2
  44. package/dist/esm/image/components/Image.liquid.js +12 -3
  45. package/dist/esm/image/helpers/getSrcSet.js +2 -2
  46. package/dist/esm/image/setting/Image.js +216 -16
  47. package/dist/esm/post-purchase/button/Button.js +1 -1
  48. package/dist/esm/text/setting/Text.js +2 -1
  49. package/dist/esm/third-party/components/Trustoo.liquid.js +24 -7
  50. package/dist/esm/third-party/setting/Trustoo.js +4 -111
  51. package/dist/types/index.d.ts +31 -2
  52. package/package.json +3 -3
@@ -60,6 +60,17 @@ const config = {
60
60
  target: '_self'
61
61
  }
62
62
  },
63
+ {
64
+ id: 'isGoToSalesPage',
65
+ type: 'toggle',
66
+ label: 'Go to Sales page',
67
+ default: false
68
+ },
69
+ {
70
+ id: 'linkedToPreSalesPageBanner',
71
+ type: 'banner-pre-sales-page',
72
+ default: false
73
+ },
63
74
  {
64
75
  id: 'seo',
65
76
  type: 'group',
@@ -133,6 +144,15 @@ const config = {
133
144
  displayOptions: [
134
145
  'full'
135
146
  ]
147
+ },
148
+ height: {
149
+ displayOptions: [
150
+ 'full'
151
+ ],
152
+ units: [
153
+ 'px',
154
+ '%'
155
+ ]
136
156
  }
137
157
  },
138
158
  hiddenSettings: [
@@ -390,14 +410,37 @@ const config = {
390
410
  ]
391
411
  },
392
412
  {
393
- type: 'control',
413
+ type: 'group',
394
414
  label: {
395
415
  en: 'Insert link'
396
416
  },
397
- setting: {
398
- id: 'imageLink'
399
- },
400
- layout: 'vertical'
417
+ controls: [
418
+ {
419
+ type: 'control',
420
+ condition: 'pageType == "GP_PRE_SALE_PAGE"',
421
+ setting: {
422
+ id: 'linkedToPreSalesPageBanner'
423
+ }
424
+ },
425
+ {
426
+ type: 'control',
427
+ condition: 'pageType == "GP_PRE_SALE_PAGE"',
428
+ setting: {
429
+ id: 'isGoToSalesPage'
430
+ },
431
+ label: {
432
+ en: 'Go to Sales page'
433
+ }
434
+ },
435
+ {
436
+ type: 'control',
437
+ condition: 'isGoToSalesPage === false || pageType != "GP_PRE_SALE_PAGE"',
438
+ layout: 'vertical',
439
+ setting: {
440
+ id: 'imageLink'
441
+ }
442
+ }
443
+ ]
401
444
  },
402
445
  {
403
446
  type: 'group',
@@ -603,19 +646,19 @@ const config = {
603
646
  }
604
647
  },
605
648
  borderRadius: {
606
- btrr: "999999px",
607
- bblr: "999999px",
608
- bbrr: "999999px",
609
- btlr: "999999px",
610
- radiusType: "custom"
649
+ btrr: '999999px',
650
+ bblr: '999999px',
651
+ bbrr: '999999px',
652
+ btlr: '999999px',
653
+ radiusType: 'custom'
611
654
  },
612
655
  wrapperBorder: {
613
- borderType: "none",
614
- border: "none",
615
- width: "1px 1px 1px 1px",
616
- position: "all",
617
- borderWidth: "1px",
618
- color: "#000000",
656
+ borderType: 'none',
657
+ border: 'none',
658
+ width: '1px 1px 1px 1px',
659
+ position: 'all',
660
+ borderWidth: '1px',
661
+ color: '#000000',
619
662
  isCustom: true
620
663
  }
621
664
  },
@@ -633,6 +676,163 @@ const config = {
633
676
  }
634
677
  }
635
678
  ]
679
+ },
680
+ {
681
+ id: 'image-pre-sales-page',
682
+ name: {
683
+ en: 'Image'
684
+ },
685
+ icon: {
686
+ desktop: `
687
+ <svg width="96" height="48" viewBox="0 0 96 48" fill="none" xmlns="http://www.w3.org/2000/svg">
688
+ <rect width="96" height="48" rx="3" fill="#424242"/>
689
+ <circle cx="37" cy="17" r="3" fill="#D6D6D6"/>
690
+ <path d="M32.42 30.9518L37.1407 25.1338C37.3005 24.9364 37.498 24.7768 37.7203 24.6653C37.9427 24.5538 38.1848 24.4929 38.431 24.4866C38.6772 24.4803 38.9218 24.5287 39.149 24.6287C39.3762 24.7288 39.5809 24.8781 39.7496 25.0671L41.957 27.5361L50.5857 16.6629C50.7546 16.4499 50.967 16.2797 51.2069 16.165C51.4469 16.0503 51.7083 15.9941 51.9718 16.0005C52.2352 16.0069 52.4939 16.0758 52.7285 16.202C52.9632 16.3283 53.1679 16.5086 53.3273 16.7297L63.6435 31.0236C63.8408 31.2976 63.9615 31.6242 63.9922 31.9666C64.0229 32.3089 63.9623 32.6535 63.8173 32.9616C63.6723 33.2697 63.4485 33.529 63.1712 33.7105C62.8939 33.8919 62.5741 33.9883 62.2476 33.9887L33.7537 34C33.4185 33.9999 33.0904 33.8986 32.8082 33.7082C32.526 33.5177 32.3014 33.2461 32.1611 32.9255C32.0208 32.6048 31.9706 32.2485 32.0165 31.8988C32.0624 31.549 32.2024 31.2204 32.42 30.9518Z" fill="#D6D6D6"/>
691
+ </svg>
692
+ `
693
+ },
694
+ components: [
695
+ {
696
+ tag: 'Image',
697
+ advanced: {
698
+ 'spacing-setting': {
699
+ desktop: {
700
+ margin: {
701
+ bottom: 'var(--g-s-l)'
702
+ }
703
+ }
704
+ },
705
+ editorData: {
706
+ cssPlaceholder: '.{{rootClassName}} {\n\n}\n.{{rootClassName}} > figure > img {\n\n}'
707
+ }
708
+ },
709
+ settings: {
710
+ isGoToSalesPage: true
711
+ }
712
+ }
713
+ ],
714
+ flowTagComponents: {
715
+ Marquee: [
716
+ {
717
+ tag: 'Image',
718
+ styles: {
719
+ shape: {
720
+ desktop: {
721
+ width: 'auto',
722
+ height: 'auto'
723
+ }
724
+ },
725
+ enableBorder: 'none'
726
+ },
727
+ advanced: {
728
+ 'spacing-setting': {
729
+ desktop: {
730
+ margin: {
731
+ bottom: 'var(--g-s-l)'
732
+ }
733
+ }
734
+ },
735
+ editorData: {
736
+ rootClassName: '{{rootClassName}}',
737
+ css: '.{{rootClassName}} {\n\n}\n.{{rootClassName}} > figure > img {\n\n}'
738
+ }
739
+ },
740
+ settings: {
741
+ isNotLazyload: true
742
+ }
743
+ }
744
+ ]
745
+ }
746
+ },
747
+ {
748
+ id: 'image-circle-pre-sales-page',
749
+ name: {
750
+ en: 'Image'
751
+ },
752
+ icon: {
753
+ desktop: `
754
+ <svg width="56" height="56" viewBox="0 0 56 56" fill="none" xmlns="http://www.w3.org/2000/svg">
755
+ <rect x="2" y="2" width="52" height="52" rx="26" fill="#424242"/>
756
+ <ellipse cx="20.4375" cy="22.9688" rx="2.0625" ry="1.96875" fill="#F9F9F9"/>
757
+ <path d="M17.2887 32.9997L20.5342 29.1816C20.6441 29.052 20.7799 28.9473 20.9327 28.8741C21.0856 28.8009 21.2521 28.761 21.4213 28.7568C21.5905 28.7527 21.7587 28.7845 21.915 28.8501C22.0712 28.9158 22.2118 29.0138 22.3278 29.1378L23.8454 30.758L29.7777 23.6225C29.8938 23.4827 30.0398 23.371 30.2048 23.2958C30.3697 23.2205 30.5495 23.1836 30.7306 23.1878C30.9117 23.192 31.0895 23.2372 31.2509 23.3201C31.4122 23.4029 31.5529 23.5213 31.6625 23.6663L38.7549 33.0467C38.8905 33.2266 38.9735 33.4409 38.9947 33.6656C39.0158 33.8902 38.9741 34.1164 38.8744 34.3186C38.7747 34.5207 38.6209 34.6909 38.4302 34.81C38.2396 34.9291 38.0197 34.9923 37.7952 34.9926L18.2057 35C17.9753 34.9999 17.7497 34.9334 17.5557 34.8085C17.3616 34.6835 17.2072 34.5053 17.1108 34.2948C17.0143 34.0844 16.9798 33.8506 17.0113 33.6211C17.0429 33.3915 17.1391 33.1759 17.2887 32.9997Z" fill="#F9F9F9"/>
758
+ </svg>
759
+ `
760
+ },
761
+ components: [
762
+ {
763
+ tag: 'Image',
764
+ settings: {
765
+ imageStyle: 'circle',
766
+ isGoToSalesPage: true
767
+ },
768
+ styles: {
769
+ shape: {
770
+ desktop: {
771
+ shape: 'square',
772
+ shapeValue: '1/1',
773
+ width: '80px',
774
+ shapeLinked: true
775
+ }
776
+ },
777
+ borderRadius: {
778
+ btrr: '999999px',
779
+ bblr: '999999px',
780
+ bbrr: '999999px',
781
+ btlr: '999999px',
782
+ radiusType: 'custom'
783
+ },
784
+ wrapperBorder: {
785
+ borderType: 'none',
786
+ border: 'none',
787
+ width: '1px 1px 1px 1px',
788
+ position: 'all',
789
+ borderWidth: '1px',
790
+ color: '#000000',
791
+ isCustom: true
792
+ }
793
+ },
794
+ advanced: {
795
+ 'spacing-setting': {
796
+ desktop: {
797
+ margin: {
798
+ bottom: 'var(--g-s-l)'
799
+ }
800
+ }
801
+ },
802
+ editorData: {
803
+ cssplaceholder: '.{{rootClassName}} {\n\n}\n.{{rootClassName}} > figure > img {\n\n}'
804
+ }
805
+ }
806
+ }
807
+ ],
808
+ rootOverride: {
809
+ styles: {
810
+ shape: {
811
+ desktop: {
812
+ shape: 'square',
813
+ shapeValue: '1/1',
814
+ width: '80px',
815
+ shapeLinked: true
816
+ }
817
+ },
818
+ borderRadius: {
819
+ btrr: '999999px',
820
+ bblr: '999999px',
821
+ bbrr: '999999px',
822
+ btlr: '999999px',
823
+ radiusType: 'custom'
824
+ }
825
+ },
826
+ advanced: {
827
+ 'spacing-setting': {
828
+ desktop: {
829
+ margin: {
830
+ bottom: 0
831
+ }
832
+ }
833
+ }
834
+ }
835
+ }
636
836
  }
637
837
  ],
638
838
  rootOverride: {
@@ -65,7 +65,7 @@ const Button = ({ styles, builderAttrs, style, setting, advanced, builderProps,
65
65
  text
66
66
  },
67
67
  textClassWrapper: "gp-leading-[15px] gp-w-fit",
68
- textClass: `!gp-inline-flex gp-py-[8px] gp-leading-[1.3] ${mode === 'edit' ? 'button-text' : ''}`,
68
+ textClass: `!gp-inline-flex gp-py-[8px] ${mode === 'edit' ? 'button-text' : ''}`,
69
69
  styles: {
70
70
  typo: {
71
71
  ...typo,
@@ -146,7 +146,8 @@ const config = {
146
146
  default: {
147
147
  type: 'paragraph-1',
148
148
  attrs: {
149
- color: 'text-1'
149
+ color: 'text-1',
150
+ isAlwaysLoadBold: false
150
151
  }
151
152
  },
152
153
  ignoreReRender: true
@@ -4,13 +4,17 @@ import { getLiquidForAppBlock } from '../helpers/thirdParty.js';
4
4
 
5
5
  const Trustoo = ({ setting, advanced })=>{
6
6
  const { widgetType, align, version, appBlockId } = setting ?? {};
7
- return version === 'v2' ? getLiquidForAppBlock(appBlockId, align, advanced?.cssClass) : template`
8
- <div
9
- class="${advanced?.cssClass}"
10
- style="${{
11
- ...makeStyleResponsive('ta', align)
12
- }}"
13
- >
7
+ const widgetTypeMap = {
8
+ 'review-widget': '<div class="custom-vstar-review-widget" style="width:100%"></div>',
9
+ 'star-rating-widget': '<div class="custom-vstar-rating-widget" data-product-id="{{product.id}}"></div>',
10
+ 'text-carousel': '<div id="trustoo-text-carousel" style="display:block;max-width:1200px;margin:0 auto" data-type="block"></div>',
11
+ 'barrage-carousel': '<div id="trustoo-barrage-carousel" style="display:block;max-width:1200px;margin:0 auto" data-type="block"></div>',
12
+ 'card-carousel': '<div id="trustoo-card-carousel-widget" style="display:block;max-width:1200px;margin:0 auto"></div>',
13
+ 'photo-carousel': '<div id="trustoo-photo-carousel" style="display:block;max-width:1200px;margin:0 auto" data-type="block"></div>'
14
+ };
15
+ const renderOldVersionTrustoo = ()=>{
16
+ return version === 'v2' ? getLiquidForAppBlock(appBlockId, align, advanced?.cssClass) : template`
17
+ <div>
14
18
  {% if '${widgetType}' == 'starRatingInList' %}
15
19
  {% if request.page_type != 'product' %}
16
20
  <div class="custom-vstar-rating-widget" product-id="{{ product.id }}"></div>
@@ -33,6 +37,19 @@ const Trustoo = ({ setting, advanced })=>{
33
37
  {% endif %}
34
38
  </div>
35
39
  `;
40
+ };
41
+ return !!version ? renderOldVersionTrustoo() : template`
42
+ <div
43
+ class="${advanced?.cssClass}"
44
+ style="${{
45
+ ...makeStyleResponsive('ta', align)
46
+ }}"
47
+ >
48
+ ${widgetType && widgetTypeMap?.[widgetType]}
49
+ <script ${getSettingPreloadData('class="gps-link" delay', 'src')}="https://cdn.vstar.app/static/dist/js/swiper-reviews.min.js" defer="defer"></script>
50
+ <link ${getSettingPreloadData('class="gps-link" delay', 'href')}="https://cdn.vstar.app/static/css/swiper-reviews.min.css" rel="stylesheet" type="text/css" media="all">
51
+ </div>
52
+ `;
36
53
  };
37
54
 
38
55
  export { Trustoo as default };
@@ -61,76 +61,11 @@ const config = {
61
61
  href: 'https://admin.shopify.com/?redirect=/apps/sealapps-product-review',
62
62
  appName: TrustooConfig.label
63
63
  },
64
- {
65
- id: 'version',
66
- label: 'Choose version',
67
- type: 'select',
68
- default: 'v1',
69
- options: [
70
- {
71
- label: 'V1',
72
- value: 'v1'
73
- },
74
- {
75
- label: 'V2',
76
- value: 'v2'
77
- }
78
- ]
79
- },
80
64
  {
81
65
  id: 'widgetType',
82
66
  label: 'Choose widget',
83
67
  type: 'select',
84
- default: 'starRating',
85
- options: [
86
- {
87
- label: 'Star Rating',
88
- value: 'starRating',
89
- hideOnPage: [
90
- 'GP_ARTICLE',
91
- 'GP_BLOG',
92
- 'GP_COLLECTION',
93
- 'GP_INDEX',
94
- 'GP_STATIC'
95
- ],
96
- flowTag: [
97
- 'Product'
98
- ],
99
- condition: 'or'
100
- },
101
- {
102
- label: 'Star Rating List',
103
- value: 'starRatingInList',
104
- hideOnPage: [
105
- 'GP_ARTICLE',
106
- 'GP_BLOG',
107
- 'GP_COLLECTION',
108
- 'GP_INDEX',
109
- 'GP_STATIC'
110
- ],
111
- flowTag: [
112
- 'ProductList'
113
- ],
114
- condition: 'or'
115
- },
116
- {
117
- label: 'Reviews',
118
- value: 'reviews',
119
- hideOnPage: [
120
- 'GP_ARTICLE',
121
- 'GP_BLOG',
122
- 'GP_COLLECTION',
123
- 'GP_INDEX',
124
- 'GP_STATIC'
125
- ]
126
- }
127
- ]
128
- },
129
- {
130
- id: 'widgetTypeV2',
131
- label: 'Choose widget',
132
- type: 'select',
133
- default: 'barrage-carousel',
68
+ default: 'star-rating-widget',
134
69
  options: [
135
70
  {
136
71
  label: 'Testimonials',
@@ -146,33 +81,11 @@ const config = {
146
81
  },
147
82
  {
148
83
  label: 'Review Widget',
149
- value: 'review-widget',
150
- hideOnPage: [
151
- 'ARTICLE',
152
- 'BLOG',
153
- 'COLLECTION',
154
- 'GP_ARTICLE',
155
- 'GP_BLOG',
156
- 'GP_COLLECTION',
157
- 'GP_INDEX',
158
- 'GP_STATIC',
159
- 'STATIC'
160
- ]
84
+ value: 'review-widget'
161
85
  },
162
86
  {
163
87
  label: 'Star Rating Widget',
164
- value: 'star-rating-widget',
165
- hideOnPage: [
166
- 'ARTICLE',
167
- 'BLOG',
168
- 'COLLECTION',
169
- 'GP_ARTICLE',
170
- 'GP_BLOG',
171
- 'GP_COLLECTION',
172
- 'GP_INDEX',
173
- 'GP_STATIC',
174
- 'STATIC'
175
- ]
88
+ value: 'star-rating-widget'
176
89
  },
177
90
  {
178
91
  label: 'Text Carousel',
@@ -222,15 +135,6 @@ const config = {
222
135
  id: 'install'
223
136
  }
224
137
  },
225
- {
226
- type: 'control',
227
- label: {
228
- en: 'Choose version'
229
- },
230
- setting: {
231
- id: 'version'
232
- }
233
- },
234
138
  {
235
139
  type: 'control',
236
140
  label: {
@@ -238,18 +142,7 @@ const config = {
238
142
  },
239
143
  setting: {
240
144
  id: 'widgetType'
241
- },
242
- condition: 'version === "v1"'
243
- },
244
- {
245
- type: 'control',
246
- label: {
247
- en: 'Choose widget'
248
- },
249
- setting: {
250
- id: 'widgetTypeV2'
251
- },
252
- condition: 'version === "v2"'
145
+ }
253
146
  },
254
147
  {
255
148
  type: 'control',