@gem-sdk/components 2.5.7 → 2.5.10

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 (46) hide show
  1. package/dist/cjs/banner/components/hero-banner/index.liquid.js +5 -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 +6 -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 +3 -2
  15. package/dist/cjs/grid/setting/Row.js +32 -2
  16. package/dist/cjs/helpers.js +17 -0
  17. package/dist/cjs/icon/components/Icon.liquid.js +5 -2
  18. package/dist/cjs/icon/setting/Icon.js +69 -5
  19. package/dist/cjs/image/components/Image.js +4 -1
  20. package/dist/cjs/image/components/Image.liquid.js +11 -5
  21. package/dist/cjs/image/setting/Image.js +216 -16
  22. package/dist/cjs/index.js +1 -0
  23. package/dist/esm/banner/components/hero-banner/index.liquid.js +6 -3
  24. package/dist/esm/banner/setting/HeroBanner.js +50 -6
  25. package/dist/esm/banner/setting/presets/heroBanner1ColPreSalesPage.js +132 -0
  26. package/dist/esm/banner/setting/presets/heroBannerContentLeftPreSalesPage.js +152 -0
  27. package/dist/esm/banner/setting/presets/heroBannerContentRightPreSalesPage.js +160 -0
  28. package/dist/esm/banner/setting/presets/heroBannerParallaxPreSalesPage.js +132 -0
  29. package/dist/esm/banner/setting/presets/heroBannerVideoPreSalesPage.js +128 -0
  30. package/dist/esm/button/components/Button.liquid.js +7 -3
  31. package/dist/esm/button/setting/Button.js +112 -5
  32. package/dist/esm/carousel/components/CarouselItem.js +1 -1
  33. package/dist/esm/carousel/components/CarouselItem.liquid.js +1 -1
  34. package/dist/esm/constants.js +3 -0
  35. package/dist/esm/grid/components/Row.js +4 -3
  36. package/dist/esm/grid/components/Row.liquid.js +3 -2
  37. package/dist/esm/grid/setting/Row.js +32 -2
  38. package/dist/esm/helpers.js +17 -1
  39. package/dist/esm/icon/components/Icon.liquid.js +6 -3
  40. package/dist/esm/icon/setting/Icon.js +69 -5
  41. package/dist/esm/image/components/Image.js +5 -2
  42. package/dist/esm/image/components/Image.liquid.js +13 -7
  43. package/dist/esm/image/setting/Image.js +216 -16
  44. package/dist/esm/index.js +1 -1
  45. package/dist/types/index.d.ts +43 -1
  46. package/package.json +2 -2
@@ -0,0 +1,134 @@
1
+ 'use strict';
2
+
3
+ const heroBannerParallaxPreSalesPage = {
4
+ id: 'hero-banner-parallax-pre-sales-page',
5
+ name: {
6
+ en: 'Hero Banner Parallax'
7
+ },
8
+ icon: {
9
+ desktop: `
10
+ <svg width="96" height="48" viewBox="0 0 96 48" fill="none" xmlns="http://www.w3.org/2000/svg">
11
+ <g clip-path="url(#clip0_21157_36120)">
12
+ <rect width="96" height="48" rx="3" fill="#424242"/>
13
+ <ellipse cx="5" cy="24.5" rx="11" ry="11.5" fill="#5E5E5E"/>
14
+ <path d="M-4.39892 61.8234L13.5988 40.4906C14.2081 39.767 14.9611 39.1816 15.8088 38.7727C16.6564 38.3638 17.5796 38.1406 18.5181 38.1175C19.4566 38.0944 20.3894 38.272 21.2556 38.6387C22.1219 39.0055 22.902 39.5531 23.5453 40.2459L31.9609 49.2989L64.858 9.43075C65.502 8.64956 66.3116 8.02551 67.2264 7.60499C68.1413 7.18447 69.138 6.9783 70.1423 7.00181C71.1467 7.02532 72.1329 7.2779 73.0276 7.74078C73.9223 8.20366 74.7026 8.86493 75.3103 9.67543L114.641 62.0866C115.393 63.0913 115.853 64.2887 115.97 65.5441C116.087 66.7994 115.856 68.063 115.303 69.1926C114.751 70.3222 113.897 71.2732 112.84 71.9384C111.783 72.6037 110.564 72.957 109.319 72.9585L0.685989 73C-0.591779 72.9995 -1.84266 72.6281 -2.91866 71.9299C-3.99467 71.2317 -4.85077 70.2358 -5.38568 69.06C-5.92059 67.8843 -6.11193 66.5779 -5.93706 65.2955C-5.76219 64.0131 -5.22843 62.8082 -4.39892 61.8234Z" fill="#5E5E5E"/>
15
+ <rect x="36" y="21" width="22" height="6" rx="3" fill="#F9F9F9"/>
16
+ </g>
17
+ <defs>
18
+ <clipPath id="clip0_21157_36120">
19
+ <rect width="96" height="48" rx="3" fill="white"/>
20
+ </clipPath>
21
+ </defs>
22
+ </svg>
23
+
24
+ `
25
+ },
26
+ components: [
27
+ {
28
+ tag: 'HeroBanner',
29
+ settings: {
30
+ layout: {
31
+ desktop: {
32
+ cols: [
33
+ 12
34
+ ],
35
+ display: 'fill'
36
+ }
37
+ },
38
+ enableParallax: true,
39
+ speedParallax: 0.6,
40
+ isGoToSalesPage: true
41
+ },
42
+ styles: {
43
+ contentWidth: {
44
+ desktop: '1200px'
45
+ },
46
+ sizeSetting: {
47
+ desktop: {
48
+ shape: 'custom',
49
+ widthHeightLinked: false,
50
+ width: '100%',
51
+ height: '600px'
52
+ },
53
+ mobile: {
54
+ shape: 'custom',
55
+ widthHeightLinked: false,
56
+ width: '1200px',
57
+ height: '600px'
58
+ }
59
+ }
60
+ },
61
+ childrens: [
62
+ {
63
+ tag: 'Col',
64
+ childrens: [
65
+ {
66
+ tag: 'Heading',
67
+ settings: {
68
+ text: 'Click here to edit heading'
69
+ },
70
+ styles: {
71
+ textAlign: {
72
+ desktop: 'center'
73
+ },
74
+ typo: {
75
+ attrs: {
76
+ color: '#FFFFFF'
77
+ }
78
+ }
79
+ },
80
+ advanced: {
81
+ 'spacing-setting': {
82
+ desktop: {
83
+ margin: {
84
+ bottom: 'var(--g-s-l)'
85
+ }
86
+ }
87
+ }
88
+ }
89
+ },
90
+ {
91
+ tag: 'Text',
92
+ settings: {
93
+ text: "This is your text block. Click to edit and make it your own. Share your product's story<br/>\
94
+ or services offered. Get creative and make it yours!"
95
+ },
96
+ styles: {
97
+ textAlign: {
98
+ desktop: 'center'
99
+ },
100
+ typo: {
101
+ attrs: {
102
+ color: '#FFFFFF'
103
+ }
104
+ }
105
+ },
106
+ advanced: {
107
+ 'spacing-setting': {
108
+ desktop: {
109
+ margin: {
110
+ bottom: 'var(--g-s-l)'
111
+ }
112
+ }
113
+ }
114
+ }
115
+ },
116
+ {
117
+ tag: 'Button',
118
+ settings: {
119
+ label: 'Get started'
120
+ },
121
+ styles: {
122
+ align: {
123
+ desktop: 'center'
124
+ }
125
+ }
126
+ }
127
+ ]
128
+ }
129
+ ]
130
+ }
131
+ ]
132
+ };
133
+
134
+ exports.heroBannerParallaxPreSalesPage = heroBannerParallaxPreSalesPage;
@@ -0,0 +1,130 @@
1
+ 'use strict';
2
+
3
+ const heroBannerVideoPreSalesPage = {
4
+ id: 'hero-banner-video-pre-sales-page',
5
+ name: {
6
+ en: 'Video Banner'
7
+ },
8
+ icon: {
9
+ desktop: `
10
+ <svg width="96" height="48" viewBox="0 0 96 48" fill="none" xmlns="http://www.w3.org/2000/svg">
11
+ <g clip-path="url(#clip0_12567_1327)">
12
+ <rect width="96" height="48" rx="3" fill="#424242"/>
13
+ <ellipse cx="4" cy="1.5" rx="11" ry="11.5" fill="#5E5E5E"/>
14
+ <path d="M25.6011 61.8234L43.5988 40.4906C44.2081 39.767 44.9611 39.1816 45.8088 38.7727C46.6564 38.3638 47.5796 38.1406 48.5181 38.1175C49.4566 38.0944 50.3894 38.272 51.2556 38.6387C52.1219 39.0055 52.902 39.5531 53.5453 40.2459L61.9609 49.2989L94.858 9.43075C95.502 8.64956 96.3116 8.02551 97.2264 7.60499C98.1413 7.18447 99.138 6.9783 100.142 7.00181C101.147 7.02532 102.133 7.2779 103.028 7.74078C103.922 8.20366 104.703 8.86493 105.31 9.67543L144.641 62.0866C145.393 63.0913 145.853 64.2887 145.97 65.5441C146.087 66.7994 145.856 68.063 145.303 69.1926C144.751 70.3222 143.897 71.2732 142.84 71.9384C141.783 72.6037 140.564 72.957 139.319 72.9585L30.686 73C29.4082 72.9995 28.1573 72.6281 27.0813 71.9299C26.0053 71.2317 25.1492 70.2358 24.6143 69.06C24.0794 67.8843 23.8881 66.5779 24.0629 65.2955C24.2378 64.0131 24.7716 62.8082 25.6011 61.8234Z" fill="#5E5E5E"/>
15
+ <path d="M40 28.4163V14.3838C40 13.2662 41.3774 12.6113 42.3799 13.2521L53.3549 20.2684C54.215 20.8183 54.215 21.9818 53.3549 22.5317L42.3799 29.5479C41.3774 30.1888 40 29.5338 40 28.4163Z" fill="#F9F9F9"/>
16
+ </g>
17
+ <defs>
18
+ <clipPath id="clip0_12567_1327">
19
+ <rect width="96" height="48" rx="3" fill="white"/>
20
+ </clipPath>
21
+ </defs>
22
+ </svg>
23
+ `
24
+ },
25
+ components: [
26
+ {
27
+ tag: 'HeroBanner',
28
+ settings: {
29
+ layout: {
30
+ desktop: {
31
+ cols: [
32
+ 12
33
+ ],
34
+ display: 'fill'
35
+ }
36
+ },
37
+ isGoToSalesPage: true
38
+ },
39
+ styles: {
40
+ contentWidth: {
41
+ desktop: '1200px'
42
+ },
43
+ background: {
44
+ desktop: {
45
+ type: 'video',
46
+ image: {
47
+ src: '',
48
+ width: 1920,
49
+ height: 900
50
+ },
51
+ videoType: 'html5',
52
+ video: 'https://youtu.be/KOxfzBp72uk',
53
+ videoHtml5: 'https://media.w3.org/2010/05/sintel/trailer.mp4'
54
+ }
55
+ }
56
+ },
57
+ childrens: [
58
+ {
59
+ tag: 'Col',
60
+ childrens: [
61
+ {
62
+ tag: 'Heading',
63
+ settings: {
64
+ text: 'Click here to edit heading'
65
+ },
66
+ styles: {
67
+ textAlign: {
68
+ desktop: 'center'
69
+ },
70
+ typo: {
71
+ attrs: {
72
+ color: '#FFFFFF'
73
+ }
74
+ }
75
+ },
76
+ advanced: {
77
+ 'spacing-setting': {
78
+ desktop: {
79
+ margin: {
80
+ bottom: 'var(--g-s-l)'
81
+ }
82
+ }
83
+ }
84
+ }
85
+ },
86
+ {
87
+ tag: 'Text',
88
+ settings: {
89
+ text: "This is your text block. Click to edit and make it your own. Share your product's story<br/>\
90
+ or services offered. Get creative and make it yours!"
91
+ },
92
+ styles: {
93
+ textAlign: {
94
+ desktop: 'center'
95
+ },
96
+ typo: {
97
+ attrs: {
98
+ color: '#FFFFFF'
99
+ }
100
+ }
101
+ },
102
+ advanced: {
103
+ 'spacing-setting': {
104
+ desktop: {
105
+ margin: {
106
+ bottom: 'var(--g-s-l)'
107
+ }
108
+ }
109
+ }
110
+ }
111
+ },
112
+ {
113
+ tag: 'Button',
114
+ settings: {
115
+ label: 'Get started'
116
+ },
117
+ styles: {
118
+ align: {
119
+ desktop: 'center'
120
+ }
121
+ }
122
+ }
123
+ ]
124
+ }
125
+ ]
126
+ }
127
+ ]
128
+ };
129
+
130
+ exports.heroBannerVideoPreSalesPage = heroBannerVideoPreSalesPage;
@@ -7,7 +7,7 @@ var helpers = require('../../helpers.js');
7
7
 
8
8
  const Button = ({ className, builderProps, customAttrs, pageContext, setting = {}, styles = {}, style, wrapClassName = '', advanced, nodePrice, dataId, isUseTranslatedValue = true })=>{
9
9
  const { align, size, backgroundColor, textColor, roundedBtn, iconSpacing, globalSize } = styles;
10
- const { label, iconSvg, btnLink, htmlType, disabled, loading, iconAlign, iconVisible, translate, disabledLoading = true } = setting;
10
+ const { label, iconSvg, btnLink, htmlType, disabled, loading, iconAlign, iconVisible, translate, disabledLoading = true, isGoToSalesPage } = setting;
11
11
  const [wrapStyle, restStyle] = core.splitStyle([
12
12
  'pos',
13
13
  'top',
@@ -16,7 +16,11 @@ const Button = ({ className, builderProps, customAttrs, pageContext, setting = {
16
16
  'right',
17
17
  'z'
18
18
  ], style);
19
- const { Wrap, urlData, shouldRenderLink } = helpers.getInsertLinkData('button', btnLink, htmlType);
19
+ const { Wrap, urlData, shouldRenderLink } = helpers.getLinkDataConfigs({
20
+ defaultWrap: 'button',
21
+ setting: btnLink,
22
+ htmlType: htmlType
23
+ }, isGoToSalesPage);
20
24
  const spacingDefault = {
21
25
  desktop: '8px'
22
26
  };
@@ -35,6 +35,17 @@ const config = {
35
35
  target: '_self'
36
36
  }
37
37
  },
38
+ {
39
+ id: 'isGoToSalesPage',
40
+ type: 'toggle',
41
+ label: 'Go to Sales page',
42
+ default: false
43
+ },
44
+ {
45
+ id: 'linkedToPreSalesPageBanner',
46
+ type: 'banner-pre-sales-page',
47
+ default: false
48
+ },
38
49
  {
39
50
  id: 'iconGroup',
40
51
  type: 'group',
@@ -492,14 +503,37 @@ const config = {
492
503
  ]
493
504
  },
494
505
  {
495
- type: 'control',
506
+ type: 'group',
496
507
  label: {
497
508
  en: 'Insert link'
498
509
  },
499
- layout: 'vertical',
500
- setting: {
501
- id: 'btnLink'
502
- }
510
+ controls: [
511
+ {
512
+ type: 'control',
513
+ condition: 'pageType == "GP_PRE_SALE_PAGE"',
514
+ setting: {
515
+ id: 'linkedToPreSalesPageBanner'
516
+ }
517
+ },
518
+ {
519
+ type: 'control',
520
+ condition: 'pageType == "GP_PRE_SALE_PAGE"',
521
+ setting: {
522
+ id: 'isGoToSalesPage'
523
+ },
524
+ label: {
525
+ en: 'Go to Sales page'
526
+ }
527
+ },
528
+ {
529
+ type: 'control',
530
+ condition: 'isGoToSalesPage === false || pageType != "GP_PRE_SALE_PAGE"',
531
+ layout: 'vertical',
532
+ setting: {
533
+ id: 'btnLink'
534
+ }
535
+ }
536
+ ]
503
537
  },
504
538
  {
505
539
  type: 'group',
@@ -784,6 +818,79 @@ const config = {
784
818
  }
785
819
  }
786
820
  ]
821
+ },
822
+ {
823
+ id: 'button-pre-sales-page',
824
+ name: {
825
+ en: 'Button'
826
+ },
827
+ icon: {
828
+ desktop: `
829
+ <svg width="96" height="48" viewBox="0 0 96 48" fill="none" xmlns="http://www.w3.org/2000/svg">
830
+ <rect width="96" height="48" rx="3" fill="#424242"/>
831
+ <rect x="21.5" y="20" width="53" height="8" rx="4" fill="#757575"/>
832
+ </svg>
833
+ `
834
+ },
835
+ components: [
836
+ {
837
+ tag: 'Button',
838
+ advanced: {
839
+ 'spacing-setting': {
840
+ desktop: {
841
+ margin: {
842
+ bottom: 'var(--g-s-l)'
843
+ }
844
+ }
845
+ },
846
+ editorData: {
847
+ cssPlaceholder: 'button.{{rootClassName}} {\n\n}'
848
+ }
849
+ },
850
+ settings: {
851
+ isGoToSalesPage: true
852
+ }
853
+ }
854
+ ]
855
+ },
856
+ {
857
+ id: 'button-icon-pre-sales-page',
858
+ name: {
859
+ en: 'Button'
860
+ },
861
+ icon: {
862
+ desktop: `
863
+ <svg width="96" height="48" viewBox="0 0 96 48" fill="none" xmlns="http://www.w3.org/2000/svg">
864
+ <rect width="96" height="48" rx="3" fill="#424242"/>
865
+ <path d="M23.6415 17.8126C23.7882 17.5153 24.2121 17.5153 24.3589 17.8126L26.1255 21.3922C26.1838 21.5102 26.2964 21.5921 26.4267 21.611L30.377 22.185C30.7051 22.2327 30.8361 22.6359 30.5987 22.8673L27.7402 25.6536C27.6459 25.7455 27.6029 25.8779 27.6252 26.0077L28.3 29.9421C28.356 30.2688 28.0131 30.518 27.7196 30.3638L24.1863 28.5062C24.0698 28.4449 23.9306 28.4449 23.814 28.5062L20.2807 30.3637C19.9873 30.518 19.6443 30.2688 19.7004 29.9421L20.3752 26.0077C20.3974 25.8779 20.3544 25.7455 20.2601 25.6536L17.4016 22.8673C17.1642 22.6359 17.2952 22.2327 17.6233 22.185L21.5737 21.611C21.7039 21.5921 21.8166 21.5102 21.8748 21.3922L23.6415 17.8126Z" fill="#F9F9F9"/>
866
+ <rect x="40" y="20" width="40" height="8" rx="4" fill="#757575"/>
867
+ </svg>
868
+ `
869
+ },
870
+ components: [
871
+ {
872
+ tag: 'Button',
873
+ settings: {
874
+ iconVisible: true,
875
+ iconAlign: 'left',
876
+ iconSvg: '<svg height="100%" width="100%" xmlns="http://www.w3.org/2000/svg" className="w-6 h-6" viewBox="0 0 512 512" fill="currentColor"> <path fill="currentColor" strokeLinecap="round" strokeLinejoin="round" fill="currentColor" d="M115.584 494.176c-12.352 6.336 -26.368 -4.768 -23.872 -18.944l26.56 -151.36L5.536 216.48c-10.528 -10.048 -5.056 -28.416 9.056 -30.4l156.736 -22.272L241.216 25.344c6.304 -12.48 23.36 -12.48 29.664 0l69.888 138.464 156.736 22.272c14.112 1.984 19.584 20.352 9.024 30.4l-112.704 107.392 26.56 151.36c2.496 14.176 -11.52 25.28 -23.872 18.944L256 421.984l-140.448 72.192z" /></svg>',
877
+ isGoToSalesPage: true,
878
+ enableBtnLink: true
879
+ },
880
+ advanced: {
881
+ 'spacing-setting': {
882
+ desktop: {
883
+ margin: {
884
+ bottom: 0
885
+ }
886
+ }
887
+ },
888
+ editorData: {
889
+ cssPlaceholder: 'button.{{rootClassName}} {\n\n}'
890
+ }
891
+ }
892
+ }
893
+ ]
787
894
  }
788
895
  ],
789
896
  rootOverride: {
@@ -71,7 +71,7 @@ const CarouselItem = ({ children, builderAttrs, styles, advanced, setting, build
71
71
  onClick: onClickItem,
72
72
  "aria-hidden": true,
73
73
  children: /*#__PURE__*/ jsxRuntime.jsx("div", {
74
- className: "gp-w-full",
74
+ className: "gp-w-full gp-h-full",
75
75
  style: {
76
76
  ...itemShadowStyle
77
77
  },
@@ -82,7 +82,7 @@ const CarouselItem = ({ children, builderAttrs, styles, advanced, setting, build
82
82
  data-index="${index}"
83
83
  >
84
84
  <div
85
- class="gp-w-full",
85
+ class="gp-w-full gp-h-full",
86
86
  style="${{
87
87
  ...itemShadowStyle
88
88
  }}"
@@ -0,0 +1,5 @@
1
+ 'use strict';
2
+
3
+ const HREF_TO_SALES_PAGE = '{{ page.metafields.sales_funnel.sales_page_url }}';
4
+
5
+ exports.HREF_TO_SALES_PAGE = HREF_TO_SALES_PAGE;
@@ -50,7 +50,7 @@ const Row = ({ className, children, setting, builderAttrs, builderProps, styles,
50
50
  childHasChildren,
51
51
  children
52
52
  ]);
53
- const { fullWidth, width, verticalGutter, background, columnGap } = styles ?? {};
53
+ const { fullWidth, width, verticalGutter, background, columnGap, height } = styles ?? {};
54
54
  const styleObject = helpers.createStyleObject(width, pageType === 'POST_PURCHASE' && isSection ? {
55
55
  desktop: false,
56
56
  tablet: false,
@@ -69,7 +69,8 @@ const Row = ({ className, children, setting, builderAttrs, builderProps, styles,
69
69
  ...isSection ? restStyle : style,
70
70
  ...core.makeStyleResponsive('cg', verticalGutter),
71
71
  ...layout ? core.composeGridLayout(layout) : core.makeStyleResponsive('gtc', responsive),
72
- ...core.makeStyleResponsive('w', styleObject.content)
72
+ ...core.makeStyleResponsive('w', styleObject.content),
73
+ ...core.makeStyleResponsive('h', height)
73
74
  };
74
75
  if (pageType === 'POST_PURCHASE') {
75
76
  result = {
@@ -123,7 +124,7 @@ const Row = ({ className, children, setting, builderAttrs, builderProps, styles,
123
124
  "data-id": builderProps?.uidInteraction ?? builderProps?.uid,
124
125
  ref: ref,
125
126
  style: getStyles(),
126
- className: core.cls(className, builderProps?.uid, 'gp-mb-0 gp-grid gp-mx-auto gp-max-w-full gp-gap-y-0 gp-transition-colors gp-duration-200 gp-ease-in-out ', {
127
+ className: core.cls(className, builderProps?.uid, 'gp-mb-0 gp-grid gp-mx-auto gp-max-w-full gp-gap-y-0 gp-transition-colors gp-duration-200 gp-ease-in-out gp-grid-rows-[1fr]', {
127
128
  'gp-content-visibility-hidden': mode !== 'edit' && isSection && lazy && !inView
128
129
  }),
129
130
  children: isDisplaySection ? /*#__PURE__*/ jsxRuntime.jsx(jsxRuntime.Fragment, {
@@ -8,7 +8,7 @@ var helpers = require('../../helpers.js');
8
8
 
9
9
  const Row = ({ className, children, setting, builderAttrs, builderProps, styles, style, rawChildren, advanced, ...props })=>{
10
10
  const { isSection, horizontalAlign, verticalAlign, order, layout, responsive } = setting ?? {};
11
- const { fullWidth, width, verticalGutter, background } = styles ?? {};
11
+ const { fullWidth, width, verticalGutter, background, height } = styles ?? {};
12
12
  const styleObject = helpers$1.createStyleObject(width, fullWidth);
13
13
  const [wrapStyle, restStyle] = core.splitStyle([
14
14
  'pos',
@@ -31,12 +31,13 @@ const Row = ({ className, children, setting, builderAttrs, builderProps, styles,
31
31
  ...core.makeStyleResponsive('pc', horizontalAlign),
32
32
  ...layout ? core.composeGridLayout(layout) : core.makeStyleResponsive('gtc', responsive),
33
33
  ...core.makeStyleResponsive('w', styleObject.content),
34
+ ...core.makeStyleResponsive('h', height),
34
35
  ...core.getStyleBackgroundByDevice(background, {
35
36
  liquid: true
36
37
  }),
37
38
  ...core.getGradientBgrStyleByDevice(background)
38
39
  }}"
39
- class="${core.cls(className, builderProps?.uid, advanced?.cssClass, 'gp-mx-auto gp-mb-0 gp-grid gp-max-w-full gp-gap-y-0 gp-transition-colors gp-duration-200 gp-ease-in-out [&_*]:gp-max-w-full')}"
40
+ class="${core.cls(className, builderProps?.uid, advanced?.cssClass, 'gp-mx-auto gp-mb-0 gp-grid gp-max-w-full gp-gap-y-0 gp-transition-colors gp-duration-200 gp-ease-in-out [&_*]:gp-max-w-full gp-grid-rows-[1fr]')}"
40
41
  >
41
42
  ${core.WrapRenderChildren({
42
43
  uid: builderProps?.uid || '',
@@ -254,6 +254,27 @@ const config = {
254
254
  }
255
255
  }
256
256
  },
257
+ {
258
+ id: 'height',
259
+ type: 'segment',
260
+ devices: {
261
+ desktop: {
262
+ default: 'auto'
263
+ }
264
+ },
265
+ options: [
266
+ {
267
+ label: 'Full',
268
+ value: '100%',
269
+ tooltip: 'Stretch to fill <br> vertical space'
270
+ },
271
+ {
272
+ label: 'Fit',
273
+ value: 'auto',
274
+ tooltip: 'Adjust size <br> based on content'
275
+ }
276
+ ]
277
+ },
257
278
  {
258
279
  id: 'verticalGutter',
259
280
  type: 'input:unit-spacing',
@@ -347,7 +368,6 @@ const config = {
347
368
  label: {
348
369
  en: 'Align'
349
370
  },
350
- condition: `(layout.display !== 'fill' || (layout.display === 'fill' && !!layout.cols && layout.cols.length > 1)) && pageType != "POST_PURCHASE"`,
351
371
  controls: [
352
372
  {
353
373
  type: 'control',
@@ -357,7 +377,7 @@ const config = {
357
377
  setting: {
358
378
  id: 'verticalAlign'
359
379
  },
360
- condition: `!!layout.cols && layout.cols.length > 1 && pageType != "POST_PURCHASE"`
380
+ condition: `((!!layout.cols && layout.cols.length > 1) || (!!layout.cols && layout.cols.length == 1 && height == '100%')) && pageType != "POST_PURCHASE"`
361
381
  },
362
382
  {
363
383
  type: 'control',
@@ -408,6 +428,16 @@ const config = {
408
428
  },
409
429
  layout: 'horizontal'
410
430
  },
431
+ {
432
+ type: 'control',
433
+ setting: {
434
+ id: 'height'
435
+ },
436
+ label: {
437
+ en: 'Height'
438
+ },
439
+ layout: 'horizontal'
440
+ },
411
441
  {
412
442
  type: 'control',
413
443
  label: {
@@ -1,5 +1,7 @@
1
1
  'use strict';
2
2
 
3
+ var constants = require('./constants.js');
4
+
3
5
  const isTransparentColor = (str)=>{
4
6
  if (!str) return false;
5
7
  if (str.startsWith('#')) {
@@ -109,6 +111,20 @@ const getInsertLinkData = (defaultWrap, setting, htmlType)=>{
109
111
  shouldRenderLink
110
112
  };
111
113
  };
114
+ const getLinkDataConfigs = (insertLinkDataParams, isGoToSalesPage)=>{
115
+ if (isGoToSalesPage) {
116
+ return {
117
+ Wrap: 'a',
118
+ urlData: {
119
+ href: constants.HREF_TO_SALES_PAGE,
120
+ target: '_self'
121
+ },
122
+ shouldRenderLink: true
123
+ };
124
+ }
125
+ const { defaultWrap, setting, htmlType } = insertLinkDataParams;
126
+ return getInsertLinkData(defaultWrap, setting, htmlType);
127
+ };
112
128
  const replaceLinkData = (text, isTranslate)=>{
113
129
  const regex = /<a\s[^>]*>.*?<\/a>/;
114
130
  if (text && regex.test(text)) {
@@ -155,6 +171,7 @@ const replaceAllHrefFromString = (htmlString, hrefs)=>{
155
171
  exports.getAllHrefFromString = getAllHrefFromString;
156
172
  exports.getDynamicSourceLocales = getDynamicSourceLocales;
157
173
  exports.getInsertLinkData = getInsertLinkData;
174
+ exports.getLinkDataConfigs = getLinkDataConfigs;
158
175
  exports.getSettingPreloadData = getSettingPreloadData;
159
176
  exports.getStaticLocale = getStaticLocale;
160
177
  exports.isHexTransparent = isHexTransparent;
@@ -6,9 +6,12 @@ var core = require('@gem-sdk/core');
6
6
  var helpers = require('../../helpers.js');
7
7
 
8
8
  const Icon = ({ className, style, builderAttrs, builderProps, setting = {}, styles, advanced })=>{
9
- const { iconSvg, iconLink } = setting;
9
+ const { iconSvg, iconLink, isGoToSalesPage } = setting;
10
10
  const { bgColor, color, iconBorder, align, iconRotate, spin, iconRounded, globalSize } = styles ?? {};
11
- const { Wrap: WrapLink, urlData } = helpers.getInsertLinkData('div', iconLink);
11
+ const { Wrap: WrapLink, urlData } = helpers.getLinkDataConfigs({
12
+ defaultWrap: 'div',
13
+ setting: iconLink
14
+ }, isGoToSalesPage);
12
15
  const composeGlobalSize = core.makeGlobalSizeIcon(globalSize);
13
16
  const setRotateIcon = ()=>{
14
17
  if (spin) return 0;