@gem-sdk/pages 1.40.2-staging.4 → 1.41.0-dev.14

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.
@@ -11,12 +11,15 @@ const defaultMargin = {
11
11
  tablet: '40px',
12
12
  mobile: '40px'
13
13
  };
14
+ const FOOTER_ON_COLOR = '#D6D6D6';
14
15
  const FOOTER_OFF_COLOR = '#F4F4F4';
15
16
  const Footer = (props)=>{
16
- const { pageType } = props;
17
+ const { pageType, isOriginTemplate } = props;
17
18
  const urlParams = new URLSearchParams(window.location.search);
18
19
  const shopName = urlParams.get('storefrontHandle');
19
20
  const layoutSetting = core.useShopStore((s)=>s.layoutSettings);
21
+ const activeFooter = layoutSetting?.showFooter || isOriginTemplate;
22
+ const footerColor = activeFooter ? FOOTER_ON_COLOR : FOOTER_OFF_COLOR;
20
23
  const [shouldFixed, setShouldFixed] = react.useState(false);
21
24
  react.useEffect(()=>{
22
25
  const $iframe = parent.document.querySelector('.iframe');
@@ -78,19 +81,19 @@ const Footer = (props)=>{
78
81
  children: [
79
82
  /*#__PURE__*/ jsxRuntime.jsx("path", {
80
83
  d: "M0 4C0 1.79086 1.79086 0 4 0H52C54.2091 0 56 1.79086 56 4C56 6.20914 54.2091 8 52 8H4C1.79086 8 0 6.20914 0 4Z",
81
- fill: layoutSetting?.showFooter ? '#D6D6D6' : FOOTER_OFF_COLOR
84
+ fill: footerColor
82
85
  }),
83
86
  /*#__PURE__*/ jsxRuntime.jsx("path", {
84
87
  d: "M68 4C68 1.79086 69.7909 0 72 0H120C122.209 0 124 1.79086 124 4C124 6.20914 122.209 8 120 8H72C69.7909 8 68 6.20914 68 4Z",
85
- fill: layoutSetting?.showFooter ? '#D6D6D6' : FOOTER_OFF_COLOR
88
+ fill: footerColor
86
89
  }),
87
90
  /*#__PURE__*/ jsxRuntime.jsx("path", {
88
91
  d: "M136 4C136 1.79086 137.791 0 140 0H188C190.209 0 192 1.79086 192 4C192 6.20914 190.209 8 188 8H140C137.791 8 136 6.20914 136 4Z",
89
- fill: layoutSetting?.showFooter ? '#D6D6D6' : FOOTER_OFF_COLOR
92
+ fill: footerColor
90
93
  })
91
94
  ]
92
95
  }),
93
- /*#__PURE__*/ jsxRuntime.jsx("div", {
96
+ !isOriginTemplate && /*#__PURE__*/ jsxRuntime.jsx("div", {
94
97
  className: "gp-footer gp-invisible gp-absolute gp-left-[8px] gp-flex gp-h-[24px] gp-w-[24px] gp-cursor-pointer gp-items-center gp-justify-center gp-rounded gp-bg-[#EEEEEE] gp-p-[4px] hover:gp-bg-[#0000001a] group-hover:gp-visible",
95
98
  children: /*#__PURE__*/ jsxRuntime.jsx("div", {
96
99
  className: "gp-flex gp-h-[24px] gp-w-[24px] gp-items-center gp-justify-center",
@@ -126,15 +129,15 @@ const Footer = (props)=>{
126
129
  children: [
127
130
  /*#__PURE__*/ jsxRuntime.jsx("path", {
128
131
  d: "M0 4C0 1.79086 1.79086 0 4 0H18C20.2091 0 22 1.79086 22 4C22 6.20914 20.2091 8 18 8H4C1.79086 8 0 6.20914 0 4Z",
129
- fill: layoutSetting?.showFooter ? '#D6D6D6' : FOOTER_OFF_COLOR
132
+ fill: footerColor
130
133
  }),
131
134
  /*#__PURE__*/ jsxRuntime.jsx("path", {
132
135
  d: "M30 4C30 1.79086 31.7909 0 34 0H48C50.2091 0 52 1.79086 52 4C52 6.20914 50.2091 8 48 8H34C31.7909 8 30 6.20914 30 4Z",
133
- fill: layoutSetting?.showFooter ? '#D6D6D6' : FOOTER_OFF_COLOR
136
+ fill: footerColor
134
137
  }),
135
138
  /*#__PURE__*/ jsxRuntime.jsx("path", {
136
139
  d: "M60 4C60 1.79086 61.7909 0 64 0H78C80.2091 0 82 1.79086 82 4C82 6.20914 80.2091 8 78 8H64C61.7909 8 60 6.20914 60 4Z",
137
- fill: layoutSetting?.showFooter ? '#D6D6D6' : FOOTER_OFF_COLOR
140
+ fill: footerColor
138
141
  })
139
142
  ]
140
143
  })
@@ -10,6 +10,7 @@ const defaultMargin = {
10
10
  tablet: '40px',
11
11
  mobile: '40px'
12
12
  };
13
+ const HEADER_ON_COLOR = '#D6D6D6';
13
14
  const HEADER_OFF_COLOR = '#F4F4F4';
14
15
  const sizeCheck = {
15
16
  desktop: '24px',
@@ -17,8 +18,10 @@ const sizeCheck = {
17
18
  mobile: '36px'
18
19
  };
19
20
  const Header = (props)=>{
20
- const { pageType } = props;
21
+ const { pageType, isOriginTemplate } = props;
21
22
  const layoutSetting = core.useShopStore((s)=>s.layoutSettings);
23
+ const activeHeader = layoutSetting?.showHeader || isOriginTemplate;
24
+ const headerColor = activeHeader ? HEADER_ON_COLOR : HEADER_OFF_COLOR;
22
25
  return /*#__PURE__*/ jsxRuntime.jsx("div", {
23
26
  className: core.cls('gp-header-container gp-border-1 gp-group gp-relative gp-flex gp-justify-center gp-border-b gp-border-[#EEEEEE] gp-font-sans'),
24
27
  children: pageType === 'POST_PURCHASE' ? /*#__PURE__*/ jsxRuntime.jsx("div", {
@@ -88,82 +91,80 @@ const Header = (props)=>{
88
91
  })
89
92
  ]
90
93
  })
91
- }) : /*#__PURE__*/ jsxRuntime.jsx("div", {
94
+ }) : /*#__PURE__*/ jsxRuntime.jsxs("div", {
92
95
  className: "gp-flex gp-h-[40px] gp-flex-1 gp-items-center gp-justify-between",
93
96
  style: {
94
97
  maxWidth: `var(--g-ct-w)`,
95
98
  ...core.makeStyleResponsive('ml', defaultMargin),
96
99
  ...core.makeStyleResponsive('mr', defaultMargin)
97
100
  },
98
- children: /*#__PURE__*/ jsxRuntime.jsxs(jsxRuntime.Fragment, {
99
- children: [
100
- /*#__PURE__*/ jsxRuntime.jsxs("svg", {
101
- width: "84",
102
- height: "8",
103
- viewBox: "0 0 84 8",
104
- fill: "none",
105
- xmlns: "http://www.w3.org/2000/svg",
106
- children: [
107
- /*#__PURE__*/ jsxRuntime.jsx("path", {
108
- d: "M0 4C0 1.79086 1.79086 0 4 0H18C20.2091 0 22 1.79086 22 4C22 6.20914 20.2091 8 18 8H4C1.79086 8 0 6.20914 0 4Z",
109
- fill: layoutSetting?.showHeader ? '#9E9E9E' : HEADER_OFF_COLOR
110
- }),
111
- /*#__PURE__*/ jsxRuntime.jsx("path", {
112
- d: "M28 4C28 1.79086 29.7909 0 32 0H80C82.2091 0 84 1.79086 84 4C84 6.20914 82.2091 8 80 8H32C29.7909 8 28 6.20914 28 4Z",
113
- fill: layoutSetting?.showHeader ? '#D6D6D6' : HEADER_OFF_COLOR
114
- })
115
- ]
116
- }),
117
- /*#__PURE__*/ jsxRuntime.jsx("div", {
118
- className: "gp-header gp-invisible gp-absolute gp-left-[8px] gp-flex gp-h-[24px] gp-w-[24px] gp-cursor-pointer gp-items-center gp-justify-center gp-rounded gp-bg-[#EEEEEE] gp-p-[4px] hover:gp-bg-[#0000001a] group-hover:gp-visible",
119
- children: /*#__PURE__*/ jsxRuntime.jsx("div", {
120
- className: "gp-flex gp-h-[24px] gp-w-[24px] gp-items-center gp-justify-center",
121
- children: /*#__PURE__*/ jsxRuntime.jsxs("svg", {
122
- width: "14",
123
- height: "14",
124
- viewBox: "0 0 14 14",
125
- fill: "none",
126
- xmlns: "http://www.w3.org/2000/svg",
127
- children: [
128
- /*#__PURE__*/ jsxRuntime.jsx("path", {
129
- fillRule: "evenodd",
130
- clipRule: "evenodd",
131
- d: "M6.99985 4.08501C5.38983 4.08501 4.08465 5.39019 4.08465 7.00021C4.08465 8.61023 5.38983 9.9154 6.99985 9.9154C8.60987 9.9154 9.91504 8.61023 9.91504 7.00021C9.91504 5.39019 8.60987 4.08501 6.99985 4.08501ZM5.08465 7.00021C5.08465 5.94247 5.94211 5.08501 6.99985 5.08501C8.05758 5.08501 8.91504 5.94247 8.91504 7.00021C8.91504 8.05794 8.05758 8.9154 6.99985 8.9154C5.94211 8.9154 5.08465 8.05794 5.08465 7.00021Z",
132
- fill: "#212121"
133
- }),
134
- /*#__PURE__*/ jsxRuntime.jsx("path", {
135
- fillRule: "evenodd",
136
- clipRule: "evenodd",
137
- d: "M5.52351 0.00390625C5.28138 0.00390625 5.07405 0.177388 5.03135 0.415715L4.7415 2.03321C4.40346 2.18248 4.08346 2.36419 3.78558 2.57432L2.18557 2.00147C1.95684 1.91958 1.70235 2.01395 1.58232 2.22517L0.122204 4.79451C0.00217064 5.00572 0.0513362 5.27266 0.238747 5.42725L1.50086 6.46836C1.48358 6.64355 1.47474 6.82106 1.47474 7.00047C1.47474 7.17981 1.48357 7.35726 1.50084 7.53238L0.238747 8.57347C0.0513362 8.72806 0.00217064 8.995 0.122203 9.20622L1.58232 11.7756C1.70235 11.9868 1.95684 12.0811 2.18557 11.9993L3.78537 11.4265C4.08332 11.6367 4.40341 11.8185 4.74155 11.9678L5.03135 13.585C5.07405 13.8233 5.28138 13.9968 5.52351 13.9968H8.47647C8.7186 13.9968 8.92593 13.8233 8.96863 13.585L9.25846 11.9676C9.5965 11.8183 9.91649 11.6365 10.2144 11.4264L11.8144 11.9993C12.0431 12.0811 12.2976 11.9868 12.4177 11.7756L13.8778 9.20622C13.9978 8.995 13.9486 8.72806 13.7612 8.57347L12.4988 7.5321C12.516 7.35706 12.5249 7.17971 12.5249 7.00047C12.5249 6.82116 12.516 6.64375 12.4988 6.46864L13.7612 5.42725C13.9486 5.27266 13.9978 5.00572 13.8778 4.79451L12.4177 2.22517C12.2976 2.01395 12.0431 1.91958 11.8144 2.00147L10.2141 2.57441C9.91636 2.36433 9.59645 2.18264 9.25851 2.0334L8.96863 0.415715C8.92593 0.177389 8.7186 0.00390625 8.47647 0.00390625H5.52351ZM5.67747 2.47943L5.94187 1.00391H8.0581L8.32253 2.47958C8.35348 2.6523 8.47271 2.79616 8.63668 2.85863C9.06768 3.02283 9.46674 3.25007 9.82215 3.5288C9.95734 3.63483 10.1375 3.66402 10.2993 3.6061L11.7559 3.08459L12.8007 4.92323L11.6503 5.8722C11.5145 5.98427 11.4476 6.15956 11.4743 6.33366C11.5076 6.55089 11.5249 6.77354 11.5249 7.00047C11.5249 7.22735 11.5076 7.44993 11.4743 7.66711C11.4476 7.8412 11.5145 8.01648 11.6504 8.12855L12.8007 9.07749L11.7559 10.9161L10.2994 10.3947C10.1377 10.3368 9.95752 10.366 9.82233 10.472C9.46686 10.7508 9.06773 10.9781 8.63664 11.1423C8.47267 11.2048 8.35344 11.3487 8.32249 11.5214L8.0581 12.9968H5.94187L5.67752 11.5215C5.64656 11.3488 5.52732 11.2049 5.36333 11.1425C4.93215 10.9782 4.53292 10.7509 4.17738 10.4721C4.04219 10.3661 3.86203 10.3369 3.70027 10.3948L2.24412 10.9161L1.19924 9.07749L2.34929 8.12883C2.48516 8.01675 2.55204 7.84146 2.52535 7.66736C2.49205 7.4501 2.47474 7.22743 2.47474 7.00047C2.47474 6.77345 2.49206 6.55072 2.52538 6.33341C2.55207 6.15931 2.48519 5.984 2.34932 5.87192L1.19924 4.92323L2.24412 3.08459L3.70047 3.60601C3.86221 3.66392 4.04236 3.63474 4.17755 3.52872C4.53304 3.24994 4.93219 3.02269 5.36329 2.85849C5.52728 2.79603 5.64652 2.65216 5.67747 2.47943Z",
138
- fill: "#212121"
139
- })
140
- ]
141
- })
101
+ children: [
102
+ /*#__PURE__*/ jsxRuntime.jsxs("svg", {
103
+ width: "84",
104
+ height: "8",
105
+ viewBox: "0 0 84 8",
106
+ fill: "none",
107
+ xmlns: "http://www.w3.org/2000/svg",
108
+ children: [
109
+ /*#__PURE__*/ jsxRuntime.jsx("path", {
110
+ d: "M0 4C0 1.79086 1.79086 0 4 0H18C20.2091 0 22 1.79086 22 4C22 6.20914 20.2091 8 18 8H4C1.79086 8 0 6.20914 0 4Z",
111
+ fill: activeHeader ? '#9E9E9E' : HEADER_OFF_COLOR
112
+ }),
113
+ /*#__PURE__*/ jsxRuntime.jsx("path", {
114
+ d: "M28 4C28 1.79086 29.7909 0 32 0H80C82.2091 0 84 1.79086 84 4C84 6.20914 82.2091 8 80 8H32C29.7909 8 28 6.20914 28 4Z",
115
+ fill: headerColor
116
+ })
117
+ ]
118
+ }),
119
+ !isOriginTemplate && /*#__PURE__*/ jsxRuntime.jsx("div", {
120
+ className: "gp-header gp-invisible gp-absolute gp-left-[8px] gp-flex gp-h-[24px] gp-w-[24px] gp-cursor-pointer gp-items-center gp-justify-center gp-rounded gp-bg-[#EEEEEE] gp-p-[4px] hover:gp-bg-[#0000001a] group-hover:gp-visible",
121
+ children: /*#__PURE__*/ jsxRuntime.jsx("div", {
122
+ className: "gp-flex gp-h-[24px] gp-w-[24px] gp-items-center gp-justify-center",
123
+ children: /*#__PURE__*/ jsxRuntime.jsxs("svg", {
124
+ width: "14",
125
+ height: "14",
126
+ viewBox: "0 0 14 14",
127
+ fill: "none",
128
+ xmlns: "http://www.w3.org/2000/svg",
129
+ children: [
130
+ /*#__PURE__*/ jsxRuntime.jsx("path", {
131
+ fillRule: "evenodd",
132
+ clipRule: "evenodd",
133
+ d: "M6.99985 4.08501C5.38983 4.08501 4.08465 5.39019 4.08465 7.00021C4.08465 8.61023 5.38983 9.9154 6.99985 9.9154C8.60987 9.9154 9.91504 8.61023 9.91504 7.00021C9.91504 5.39019 8.60987 4.08501 6.99985 4.08501ZM5.08465 7.00021C5.08465 5.94247 5.94211 5.08501 6.99985 5.08501C8.05758 5.08501 8.91504 5.94247 8.91504 7.00021C8.91504 8.05794 8.05758 8.9154 6.99985 8.9154C5.94211 8.9154 5.08465 8.05794 5.08465 7.00021Z",
134
+ fill: "#212121"
135
+ }),
136
+ /*#__PURE__*/ jsxRuntime.jsx("path", {
137
+ fillRule: "evenodd",
138
+ clipRule: "evenodd",
139
+ d: "M5.52351 0.00390625C5.28138 0.00390625 5.07405 0.177388 5.03135 0.415715L4.7415 2.03321C4.40346 2.18248 4.08346 2.36419 3.78558 2.57432L2.18557 2.00147C1.95684 1.91958 1.70235 2.01395 1.58232 2.22517L0.122204 4.79451C0.00217064 5.00572 0.0513362 5.27266 0.238747 5.42725L1.50086 6.46836C1.48358 6.64355 1.47474 6.82106 1.47474 7.00047C1.47474 7.17981 1.48357 7.35726 1.50084 7.53238L0.238747 8.57347C0.0513362 8.72806 0.00217064 8.995 0.122203 9.20622L1.58232 11.7756C1.70235 11.9868 1.95684 12.0811 2.18557 11.9993L3.78537 11.4265C4.08332 11.6367 4.40341 11.8185 4.74155 11.9678L5.03135 13.585C5.07405 13.8233 5.28138 13.9968 5.52351 13.9968H8.47647C8.7186 13.9968 8.92593 13.8233 8.96863 13.585L9.25846 11.9676C9.5965 11.8183 9.91649 11.6365 10.2144 11.4264L11.8144 11.9993C12.0431 12.0811 12.2976 11.9868 12.4177 11.7756L13.8778 9.20622C13.9978 8.995 13.9486 8.72806 13.7612 8.57347L12.4988 7.5321C12.516 7.35706 12.5249 7.17971 12.5249 7.00047C12.5249 6.82116 12.516 6.64375 12.4988 6.46864L13.7612 5.42725C13.9486 5.27266 13.9978 5.00572 13.8778 4.79451L12.4177 2.22517C12.2976 2.01395 12.0431 1.91958 11.8144 2.00147L10.2141 2.57441C9.91636 2.36433 9.59645 2.18264 9.25851 2.0334L8.96863 0.415715C8.92593 0.177389 8.7186 0.00390625 8.47647 0.00390625H5.52351ZM5.67747 2.47943L5.94187 1.00391H8.0581L8.32253 2.47958C8.35348 2.6523 8.47271 2.79616 8.63668 2.85863C9.06768 3.02283 9.46674 3.25007 9.82215 3.5288C9.95734 3.63483 10.1375 3.66402 10.2993 3.6061L11.7559 3.08459L12.8007 4.92323L11.6503 5.8722C11.5145 5.98427 11.4476 6.15956 11.4743 6.33366C11.5076 6.55089 11.5249 6.77354 11.5249 7.00047C11.5249 7.22735 11.5076 7.44993 11.4743 7.66711C11.4476 7.8412 11.5145 8.01648 11.6504 8.12855L12.8007 9.07749L11.7559 10.9161L10.2994 10.3947C10.1377 10.3368 9.95752 10.366 9.82233 10.472C9.46686 10.7508 9.06773 10.9781 8.63664 11.1423C8.47267 11.2048 8.35344 11.3487 8.32249 11.5214L8.0581 12.9968H5.94187L5.67752 11.5215C5.64656 11.3488 5.52732 11.2049 5.36333 11.1425C4.93215 10.9782 4.53292 10.7509 4.17738 10.4721C4.04219 10.3661 3.86203 10.3369 3.70027 10.3948L2.24412 10.9161L1.19924 9.07749L2.34929 8.12883C2.48516 8.01675 2.55204 7.84146 2.52535 7.66736C2.49205 7.4501 2.47474 7.22743 2.47474 7.00047C2.47474 6.77345 2.49206 6.55072 2.52538 6.33341C2.55207 6.15931 2.48519 5.984 2.34932 5.87192L1.19924 4.92323L2.24412 3.08459L3.70047 3.60601C3.86221 3.66392 4.04236 3.63474 4.17755 3.52872C4.53304 3.24994 4.93219 3.02269 5.36329 2.85849C5.52728 2.79603 5.64652 2.65216 5.67747 2.47943Z",
140
+ fill: "#212121"
141
+ })
142
+ ]
142
143
  })
143
- }),
144
- /*#__PURE__*/ jsxRuntime.jsxs("svg", {
145
- width: "192",
146
- height: "8",
147
- viewBox: "0 0 192 8",
148
- fill: "none",
149
- xmlns: "http://www.w3.org/2000/svg",
150
- children: [
151
- /*#__PURE__*/ jsxRuntime.jsx("path", {
152
- d: "M0 4C0 1.79086 1.79086 0 4 0H52C54.2091 0 56 1.79086 56 4C56 6.20914 54.2091 8 52 8H4C1.79086 8 0 6.20914 0 4Z",
153
- fill: layoutSetting?.showHeader ? '#D6D6D6' : HEADER_OFF_COLOR
154
- }),
155
- /*#__PURE__*/ jsxRuntime.jsx("path", {
156
- d: "M68 4C68 1.79086 69.7909 0 72 0H120C122.209 0 124 1.79086 124 4C124 6.20914 122.209 8 120 8H72C69.7909 8 68 6.20914 68 4Z",
157
- fill: layoutSetting?.showHeader ? '#D6D6D6' : HEADER_OFF_COLOR
158
- }),
159
- /*#__PURE__*/ jsxRuntime.jsx("path", {
160
- d: "M136 4C136 1.79086 137.791 0 140 0H188C190.209 0 192 1.79086 192 4C192 6.20914 190.209 8 188 8H140C137.791 8 136 6.20914 136 4Z",
161
- fill: layoutSetting?.showHeader ? '#D6D6D6' : HEADER_OFF_COLOR
162
- })
163
- ]
164
144
  })
165
- ]
166
- })
145
+ }),
146
+ /*#__PURE__*/ jsxRuntime.jsxs("svg", {
147
+ width: "192",
148
+ height: "8",
149
+ viewBox: "0 0 192 8",
150
+ fill: "none",
151
+ xmlns: "http://www.w3.org/2000/svg",
152
+ children: [
153
+ /*#__PURE__*/ jsxRuntime.jsx("path", {
154
+ d: "M0 4C0 1.79086 1.79086 0 4 0H52C54.2091 0 56 1.79086 56 4C56 6.20914 54.2091 8 52 8H4C1.79086 8 0 6.20914 0 4Z",
155
+ fill: headerColor
156
+ }),
157
+ /*#__PURE__*/ jsxRuntime.jsx("path", {
158
+ d: "M68 4C68 1.79086 69.7909 0 72 0H120C122.209 0 124 1.79086 124 4C124 6.20914 122.209 8 120 8H72C69.7909 8 68 6.20914 68 4Z",
159
+ fill: headerColor
160
+ }),
161
+ /*#__PURE__*/ jsxRuntime.jsx("path", {
162
+ d: "M136 4C136 1.79086 137.791 0 140 0H188C190.209 0 192 1.79086 192 4C192 6.20914 190.209 8 188 8H140C137.791 8 136 6.20914 136 4Z",
163
+ fill: headerColor
164
+ })
165
+ ]
166
+ })
167
+ ]
167
168
  })
168
169
  });
169
170
  };
@@ -85,7 +85,7 @@ const Toolbar = ()=>{
85
85
  }
86
86
  }
87
87
  };
88
- const setHoverComponent = react.useCallback(({ $component, componentUid, focus, isThemeSection, isParent })=>{
88
+ const setHoverComponent = react.useCallback(({ $component, componentUid, focus, isPreventSection, isParent })=>{
89
89
  if (!$component && !componentUid) return;
90
90
  if (!$component) {
91
91
  const $c = document.querySelector(`[data-uid="${componentUid}"]`);
@@ -102,7 +102,7 @@ const Toolbar = ()=>{
102
102
  const $btnAddTop = getChildrenByAttrSelector($component, 'data-toolbar-add-top');
103
103
  const $btnAddBottom = getChildrenByAttrSelector($component, 'data-toolbar-add-bottom');
104
104
  const $themeSectionStatus = getChildrenByAttrSelector($component, 'data-theme-section-status');
105
- if (isThemeSection && $themeSectionStatus) {
105
+ if (isPreventSection && $themeSectionStatus) {
106
106
  $themeSectionStatus.setAttribute('data-theme-section-status-active', 'true');
107
107
  }
108
108
  if ($toolbar) {
@@ -124,7 +124,7 @@ const Toolbar = ()=>{
124
124
  if (isParent) {
125
125
  $outline.setAttribute('data-outline-parent-hover', 'true');
126
126
  }
127
- if (isThemeSection) {
127
+ if (isPreventSection) {
128
128
  $outline.setAttribute('data-outline-overlay-theme-section', 'true');
129
129
  }
130
130
  if (focus) {
@@ -632,23 +632,23 @@ const Toolbar = ()=>{
632
632
  }
633
633
  }
634
634
  }
635
- const $themeSection = $target.closest('[data-theme-section]');
636
- if ($themeSection) {
635
+ const $preventSection = $target.closest('[data-theme-section]') || $target.closest('[data-shopify-section]');
636
+ if ($preventSection) {
637
637
  setHoverComponent({
638
- $component: $themeSection,
638
+ $component: $preventSection,
639
639
  focus: true,
640
- isThemeSection: true
640
+ isPreventSection: true
641
641
  });
642
642
  } else {
643
643
  return;
644
644
  }
645
645
  }
646
- const $themeSection = $target.closest('[data-theme-section]');
647
- if ($themeSection) {
646
+ const $preventSection = $target.closest('[data-theme-section]') || $target.closest('[data-shopify-section]');
647
+ if ($preventSection) {
648
648
  setHoverComponent({
649
- $component: $themeSection,
649
+ $component: $preventSection,
650
650
  focus: true,
651
- isThemeSection: true
651
+ isPreventSection: true
652
652
  });
653
653
  } else {
654
654
  setHoverComponent({
@@ -2,6 +2,20 @@
2
2
 
3
3
  var genFonts = require('./helpers/gen-fonts.js');
4
4
 
5
+ const CHROME_UA = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36';
6
+ const IE_UA = 'Mozilla/5.0 (Windows NT 10.0; Trident/7.0; rv:11.0) like Gecko';
7
+ async function getFontForUA(url, UA) {
8
+ return fetch(url, {
9
+ headers: {
10
+ 'User-Agent': UA
11
+ }
12
+ }).then((res)=>{
13
+ if (res.status === 200) {
14
+ return res.text();
15
+ }
16
+ return '';
17
+ });
18
+ }
5
19
  const composeFonts = (fonts)=>{
6
20
  const uniqFonts = fonts.filter((font, index, arr)=>{
7
21
  return index === arr.findIndex((t)=>t.family === font.family);
@@ -42,14 +56,19 @@ const createFontUrl = (fonts, option)=>{
42
56
  }
43
57
  return `https://fonts.googleapis.com/css?${decodeURIComponent(params.toString())}`;
44
58
  };
45
- async function getFonts(fonts, option) {
59
+ async function getFonts(fonts, option, isImportFontByUrl = true) {
46
60
  /**
47
61
  * The order of IE -> Chrome is important, other wise chrome starts loading woff1.
48
62
  * CSS cascading 🤷‍♂️.
49
63
  */ const url = createFontUrl(fonts, option);
50
64
  if (!url) return '';
51
65
  try {
52
- return `@import url('${url}');`;
66
+ if (isImportFontByUrl) return `@import url('${url}');`;
67
+ const [ie, chrome] = await Promise.all([
68
+ getFontForUA(url, IE_UA),
69
+ getFontForUA(url, CHROME_UA)
70
+ ]);
71
+ return ie + chrome;
53
72
  } catch (e) {
54
73
  return '';
55
74
  }
@@ -14,7 +14,7 @@ var ImageToLayout = require('../components/image-to-layout/ImageToLayout.js');
14
14
  var AddSectionImageToLayout = require('../components/image-to-layout/AddSectionImageToLayout.js');
15
15
  var Toolbar = require('../components/builder/Toolbar.js');
16
16
 
17
- const BuilderPage = ({ components, seo, themeStyle, fontStyle, sectionData, pageType, editorImageToLayout, isThemeSectionEditor, hiddenToolbar })=>{
17
+ const BuilderPage = ({ components, seo, themeStyle, fontStyle, sectionData, pageType, editorImageToLayout, isThemeSectionEditor, hiddenToolbar, isOriginTemplate })=>{
18
18
  const [loadSuccess, setLoadSuccess] = react.useState(false);
19
19
  const isDisableHeaderFooter = ()=>{
20
20
  return isThemeSectionEditor;
@@ -71,7 +71,8 @@ const BuilderPage = ({ components, seo, themeStyle, fontStyle, sectionData, page
71
71
  !hiddenToolbar && (isDisableHeaderFooter() ? /*#__PURE__*/ jsxRuntime.jsx("div", {
72
72
  className: "h-[40px] bg-[#f4f4f4]"
73
73
  }) : /*#__PURE__*/ jsxRuntime.jsx(Header.default, {
74
- pageType: pageType
74
+ pageType: pageType,
75
+ isOriginTemplate: isOriginTemplate
75
76
  })),
76
77
  /*#__PURE__*/ jsxRuntime.jsx("div", {
77
78
  id: "storefront",
@@ -94,7 +95,8 @@ const BuilderPage = ({ components, seo, themeStyle, fontStyle, sectionData, page
94
95
  id: "visual-content"
95
96
  }),
96
97
  !isDisableHeaderFooter() && !hiddenToolbar && /*#__PURE__*/ jsxRuntime.jsx(Footer.default, {
97
- pageType: pageType
98
+ pageType: pageType,
99
+ isOriginTemplate: isOriginTemplate
98
100
  })
99
101
  ]
100
102
  })
@@ -7,12 +7,15 @@ const defaultMargin = {
7
7
  tablet: '40px',
8
8
  mobile: '40px'
9
9
  };
10
+ const FOOTER_ON_COLOR = '#D6D6D6';
10
11
  const FOOTER_OFF_COLOR = '#F4F4F4';
11
12
  const Footer = (props)=>{
12
- const { pageType } = props;
13
+ const { pageType, isOriginTemplate } = props;
13
14
  const urlParams = new URLSearchParams(window.location.search);
14
15
  const shopName = urlParams.get('storefrontHandle');
15
16
  const layoutSetting = useShopStore((s)=>s.layoutSettings);
17
+ const activeFooter = layoutSetting?.showFooter || isOriginTemplate;
18
+ const footerColor = activeFooter ? FOOTER_ON_COLOR : FOOTER_OFF_COLOR;
16
19
  const [shouldFixed, setShouldFixed] = useState(false);
17
20
  useEffect(()=>{
18
21
  const $iframe = parent.document.querySelector('.iframe');
@@ -74,19 +77,19 @@ const Footer = (props)=>{
74
77
  children: [
75
78
  /*#__PURE__*/ jsx("path", {
76
79
  d: "M0 4C0 1.79086 1.79086 0 4 0H52C54.2091 0 56 1.79086 56 4C56 6.20914 54.2091 8 52 8H4C1.79086 8 0 6.20914 0 4Z",
77
- fill: layoutSetting?.showFooter ? '#D6D6D6' : FOOTER_OFF_COLOR
80
+ fill: footerColor
78
81
  }),
79
82
  /*#__PURE__*/ jsx("path", {
80
83
  d: "M68 4C68 1.79086 69.7909 0 72 0H120C122.209 0 124 1.79086 124 4C124 6.20914 122.209 8 120 8H72C69.7909 8 68 6.20914 68 4Z",
81
- fill: layoutSetting?.showFooter ? '#D6D6D6' : FOOTER_OFF_COLOR
84
+ fill: footerColor
82
85
  }),
83
86
  /*#__PURE__*/ jsx("path", {
84
87
  d: "M136 4C136 1.79086 137.791 0 140 0H188C190.209 0 192 1.79086 192 4C192 6.20914 190.209 8 188 8H140C137.791 8 136 6.20914 136 4Z",
85
- fill: layoutSetting?.showFooter ? '#D6D6D6' : FOOTER_OFF_COLOR
88
+ fill: footerColor
86
89
  })
87
90
  ]
88
91
  }),
89
- /*#__PURE__*/ jsx("div", {
92
+ !isOriginTemplate && /*#__PURE__*/ jsx("div", {
90
93
  className: "gp-footer gp-invisible gp-absolute gp-left-[8px] gp-flex gp-h-[24px] gp-w-[24px] gp-cursor-pointer gp-items-center gp-justify-center gp-rounded gp-bg-[#EEEEEE] gp-p-[4px] hover:gp-bg-[#0000001a] group-hover:gp-visible",
91
94
  children: /*#__PURE__*/ jsx("div", {
92
95
  className: "gp-flex gp-h-[24px] gp-w-[24px] gp-items-center gp-justify-center",
@@ -122,15 +125,15 @@ const Footer = (props)=>{
122
125
  children: [
123
126
  /*#__PURE__*/ jsx("path", {
124
127
  d: "M0 4C0 1.79086 1.79086 0 4 0H18C20.2091 0 22 1.79086 22 4C22 6.20914 20.2091 8 18 8H4C1.79086 8 0 6.20914 0 4Z",
125
- fill: layoutSetting?.showFooter ? '#D6D6D6' : FOOTER_OFF_COLOR
128
+ fill: footerColor
126
129
  }),
127
130
  /*#__PURE__*/ jsx("path", {
128
131
  d: "M30 4C30 1.79086 31.7909 0 34 0H48C50.2091 0 52 1.79086 52 4C52 6.20914 50.2091 8 48 8H34C31.7909 8 30 6.20914 30 4Z",
129
- fill: layoutSetting?.showFooter ? '#D6D6D6' : FOOTER_OFF_COLOR
132
+ fill: footerColor
130
133
  }),
131
134
  /*#__PURE__*/ jsx("path", {
132
135
  d: "M60 4C60 1.79086 61.7909 0 64 0H78C80.2091 0 82 1.79086 82 4C82 6.20914 80.2091 8 78 8H64C61.7909 8 60 6.20914 60 4Z",
133
- fill: layoutSetting?.showFooter ? '#D6D6D6' : FOOTER_OFF_COLOR
136
+ fill: footerColor
134
137
  })
135
138
  ]
136
139
  })
@@ -1,4 +1,4 @@
1
- import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
1
+ import { jsx, jsxs } from 'react/jsx-runtime';
2
2
  import { useShopStore, cls, makeStyleResponsive } from '@gem-sdk/core';
3
3
 
4
4
  const defaultMargin = {
@@ -6,6 +6,7 @@ const defaultMargin = {
6
6
  tablet: '40px',
7
7
  mobile: '40px'
8
8
  };
9
+ const HEADER_ON_COLOR = '#D6D6D6';
9
10
  const HEADER_OFF_COLOR = '#F4F4F4';
10
11
  const sizeCheck = {
11
12
  desktop: '24px',
@@ -13,8 +14,10 @@ const sizeCheck = {
13
14
  mobile: '36px'
14
15
  };
15
16
  const Header = (props)=>{
16
- const { pageType } = props;
17
+ const { pageType, isOriginTemplate } = props;
17
18
  const layoutSetting = useShopStore((s)=>s.layoutSettings);
19
+ const activeHeader = layoutSetting?.showHeader || isOriginTemplate;
20
+ const headerColor = activeHeader ? HEADER_ON_COLOR : HEADER_OFF_COLOR;
18
21
  return /*#__PURE__*/ jsx("div", {
19
22
  className: cls('gp-header-container gp-border-1 gp-group gp-relative gp-flex gp-justify-center gp-border-b gp-border-[#EEEEEE] gp-font-sans'),
20
23
  children: pageType === 'POST_PURCHASE' ? /*#__PURE__*/ jsx("div", {
@@ -84,82 +87,80 @@ const Header = (props)=>{
84
87
  })
85
88
  ]
86
89
  })
87
- }) : /*#__PURE__*/ jsx("div", {
90
+ }) : /*#__PURE__*/ jsxs("div", {
88
91
  className: "gp-flex gp-h-[40px] gp-flex-1 gp-items-center gp-justify-between",
89
92
  style: {
90
93
  maxWidth: `var(--g-ct-w)`,
91
94
  ...makeStyleResponsive('ml', defaultMargin),
92
95
  ...makeStyleResponsive('mr', defaultMargin)
93
96
  },
94
- children: /*#__PURE__*/ jsxs(Fragment, {
95
- children: [
96
- /*#__PURE__*/ jsxs("svg", {
97
- width: "84",
98
- height: "8",
99
- viewBox: "0 0 84 8",
100
- fill: "none",
101
- xmlns: "http://www.w3.org/2000/svg",
102
- children: [
103
- /*#__PURE__*/ jsx("path", {
104
- d: "M0 4C0 1.79086 1.79086 0 4 0H18C20.2091 0 22 1.79086 22 4C22 6.20914 20.2091 8 18 8H4C1.79086 8 0 6.20914 0 4Z",
105
- fill: layoutSetting?.showHeader ? '#9E9E9E' : HEADER_OFF_COLOR
106
- }),
107
- /*#__PURE__*/ jsx("path", {
108
- d: "M28 4C28 1.79086 29.7909 0 32 0H80C82.2091 0 84 1.79086 84 4C84 6.20914 82.2091 8 80 8H32C29.7909 8 28 6.20914 28 4Z",
109
- fill: layoutSetting?.showHeader ? '#D6D6D6' : HEADER_OFF_COLOR
110
- })
111
- ]
112
- }),
113
- /*#__PURE__*/ jsx("div", {
114
- className: "gp-header gp-invisible gp-absolute gp-left-[8px] gp-flex gp-h-[24px] gp-w-[24px] gp-cursor-pointer gp-items-center gp-justify-center gp-rounded gp-bg-[#EEEEEE] gp-p-[4px] hover:gp-bg-[#0000001a] group-hover:gp-visible",
115
- children: /*#__PURE__*/ jsx("div", {
116
- className: "gp-flex gp-h-[24px] gp-w-[24px] gp-items-center gp-justify-center",
117
- children: /*#__PURE__*/ jsxs("svg", {
118
- width: "14",
119
- height: "14",
120
- viewBox: "0 0 14 14",
121
- fill: "none",
122
- xmlns: "http://www.w3.org/2000/svg",
123
- children: [
124
- /*#__PURE__*/ jsx("path", {
125
- fillRule: "evenodd",
126
- clipRule: "evenodd",
127
- d: "M6.99985 4.08501C5.38983 4.08501 4.08465 5.39019 4.08465 7.00021C4.08465 8.61023 5.38983 9.9154 6.99985 9.9154C8.60987 9.9154 9.91504 8.61023 9.91504 7.00021C9.91504 5.39019 8.60987 4.08501 6.99985 4.08501ZM5.08465 7.00021C5.08465 5.94247 5.94211 5.08501 6.99985 5.08501C8.05758 5.08501 8.91504 5.94247 8.91504 7.00021C8.91504 8.05794 8.05758 8.9154 6.99985 8.9154C5.94211 8.9154 5.08465 8.05794 5.08465 7.00021Z",
128
- fill: "#212121"
129
- }),
130
- /*#__PURE__*/ jsx("path", {
131
- fillRule: "evenodd",
132
- clipRule: "evenodd",
133
- d: "M5.52351 0.00390625C5.28138 0.00390625 5.07405 0.177388 5.03135 0.415715L4.7415 2.03321C4.40346 2.18248 4.08346 2.36419 3.78558 2.57432L2.18557 2.00147C1.95684 1.91958 1.70235 2.01395 1.58232 2.22517L0.122204 4.79451C0.00217064 5.00572 0.0513362 5.27266 0.238747 5.42725L1.50086 6.46836C1.48358 6.64355 1.47474 6.82106 1.47474 7.00047C1.47474 7.17981 1.48357 7.35726 1.50084 7.53238L0.238747 8.57347C0.0513362 8.72806 0.00217064 8.995 0.122203 9.20622L1.58232 11.7756C1.70235 11.9868 1.95684 12.0811 2.18557 11.9993L3.78537 11.4265C4.08332 11.6367 4.40341 11.8185 4.74155 11.9678L5.03135 13.585C5.07405 13.8233 5.28138 13.9968 5.52351 13.9968H8.47647C8.7186 13.9968 8.92593 13.8233 8.96863 13.585L9.25846 11.9676C9.5965 11.8183 9.91649 11.6365 10.2144 11.4264L11.8144 11.9993C12.0431 12.0811 12.2976 11.9868 12.4177 11.7756L13.8778 9.20622C13.9978 8.995 13.9486 8.72806 13.7612 8.57347L12.4988 7.5321C12.516 7.35706 12.5249 7.17971 12.5249 7.00047C12.5249 6.82116 12.516 6.64375 12.4988 6.46864L13.7612 5.42725C13.9486 5.27266 13.9978 5.00572 13.8778 4.79451L12.4177 2.22517C12.2976 2.01395 12.0431 1.91958 11.8144 2.00147L10.2141 2.57441C9.91636 2.36433 9.59645 2.18264 9.25851 2.0334L8.96863 0.415715C8.92593 0.177389 8.7186 0.00390625 8.47647 0.00390625H5.52351ZM5.67747 2.47943L5.94187 1.00391H8.0581L8.32253 2.47958C8.35348 2.6523 8.47271 2.79616 8.63668 2.85863C9.06768 3.02283 9.46674 3.25007 9.82215 3.5288C9.95734 3.63483 10.1375 3.66402 10.2993 3.6061L11.7559 3.08459L12.8007 4.92323L11.6503 5.8722C11.5145 5.98427 11.4476 6.15956 11.4743 6.33366C11.5076 6.55089 11.5249 6.77354 11.5249 7.00047C11.5249 7.22735 11.5076 7.44993 11.4743 7.66711C11.4476 7.8412 11.5145 8.01648 11.6504 8.12855L12.8007 9.07749L11.7559 10.9161L10.2994 10.3947C10.1377 10.3368 9.95752 10.366 9.82233 10.472C9.46686 10.7508 9.06773 10.9781 8.63664 11.1423C8.47267 11.2048 8.35344 11.3487 8.32249 11.5214L8.0581 12.9968H5.94187L5.67752 11.5215C5.64656 11.3488 5.52732 11.2049 5.36333 11.1425C4.93215 10.9782 4.53292 10.7509 4.17738 10.4721C4.04219 10.3661 3.86203 10.3369 3.70027 10.3948L2.24412 10.9161L1.19924 9.07749L2.34929 8.12883C2.48516 8.01675 2.55204 7.84146 2.52535 7.66736C2.49205 7.4501 2.47474 7.22743 2.47474 7.00047C2.47474 6.77345 2.49206 6.55072 2.52538 6.33341C2.55207 6.15931 2.48519 5.984 2.34932 5.87192L1.19924 4.92323L2.24412 3.08459L3.70047 3.60601C3.86221 3.66392 4.04236 3.63474 4.17755 3.52872C4.53304 3.24994 4.93219 3.02269 5.36329 2.85849C5.52728 2.79603 5.64652 2.65216 5.67747 2.47943Z",
134
- fill: "#212121"
135
- })
136
- ]
137
- })
97
+ children: [
98
+ /*#__PURE__*/ jsxs("svg", {
99
+ width: "84",
100
+ height: "8",
101
+ viewBox: "0 0 84 8",
102
+ fill: "none",
103
+ xmlns: "http://www.w3.org/2000/svg",
104
+ children: [
105
+ /*#__PURE__*/ jsx("path", {
106
+ d: "M0 4C0 1.79086 1.79086 0 4 0H18C20.2091 0 22 1.79086 22 4C22 6.20914 20.2091 8 18 8H4C1.79086 8 0 6.20914 0 4Z",
107
+ fill: activeHeader ? '#9E9E9E' : HEADER_OFF_COLOR
108
+ }),
109
+ /*#__PURE__*/ jsx("path", {
110
+ d: "M28 4C28 1.79086 29.7909 0 32 0H80C82.2091 0 84 1.79086 84 4C84 6.20914 82.2091 8 80 8H32C29.7909 8 28 6.20914 28 4Z",
111
+ fill: headerColor
112
+ })
113
+ ]
114
+ }),
115
+ !isOriginTemplate && /*#__PURE__*/ jsx("div", {
116
+ className: "gp-header gp-invisible gp-absolute gp-left-[8px] gp-flex gp-h-[24px] gp-w-[24px] gp-cursor-pointer gp-items-center gp-justify-center gp-rounded gp-bg-[#EEEEEE] gp-p-[4px] hover:gp-bg-[#0000001a] group-hover:gp-visible",
117
+ children: /*#__PURE__*/ jsx("div", {
118
+ className: "gp-flex gp-h-[24px] gp-w-[24px] gp-items-center gp-justify-center",
119
+ children: /*#__PURE__*/ jsxs("svg", {
120
+ width: "14",
121
+ height: "14",
122
+ viewBox: "0 0 14 14",
123
+ fill: "none",
124
+ xmlns: "http://www.w3.org/2000/svg",
125
+ children: [
126
+ /*#__PURE__*/ jsx("path", {
127
+ fillRule: "evenodd",
128
+ clipRule: "evenodd",
129
+ d: "M6.99985 4.08501C5.38983 4.08501 4.08465 5.39019 4.08465 7.00021C4.08465 8.61023 5.38983 9.9154 6.99985 9.9154C8.60987 9.9154 9.91504 8.61023 9.91504 7.00021C9.91504 5.39019 8.60987 4.08501 6.99985 4.08501ZM5.08465 7.00021C5.08465 5.94247 5.94211 5.08501 6.99985 5.08501C8.05758 5.08501 8.91504 5.94247 8.91504 7.00021C8.91504 8.05794 8.05758 8.9154 6.99985 8.9154C5.94211 8.9154 5.08465 8.05794 5.08465 7.00021Z",
130
+ fill: "#212121"
131
+ }),
132
+ /*#__PURE__*/ jsx("path", {
133
+ fillRule: "evenodd",
134
+ clipRule: "evenodd",
135
+ d: "M5.52351 0.00390625C5.28138 0.00390625 5.07405 0.177388 5.03135 0.415715L4.7415 2.03321C4.40346 2.18248 4.08346 2.36419 3.78558 2.57432L2.18557 2.00147C1.95684 1.91958 1.70235 2.01395 1.58232 2.22517L0.122204 4.79451C0.00217064 5.00572 0.0513362 5.27266 0.238747 5.42725L1.50086 6.46836C1.48358 6.64355 1.47474 6.82106 1.47474 7.00047C1.47474 7.17981 1.48357 7.35726 1.50084 7.53238L0.238747 8.57347C0.0513362 8.72806 0.00217064 8.995 0.122203 9.20622L1.58232 11.7756C1.70235 11.9868 1.95684 12.0811 2.18557 11.9993L3.78537 11.4265C4.08332 11.6367 4.40341 11.8185 4.74155 11.9678L5.03135 13.585C5.07405 13.8233 5.28138 13.9968 5.52351 13.9968H8.47647C8.7186 13.9968 8.92593 13.8233 8.96863 13.585L9.25846 11.9676C9.5965 11.8183 9.91649 11.6365 10.2144 11.4264L11.8144 11.9993C12.0431 12.0811 12.2976 11.9868 12.4177 11.7756L13.8778 9.20622C13.9978 8.995 13.9486 8.72806 13.7612 8.57347L12.4988 7.5321C12.516 7.35706 12.5249 7.17971 12.5249 7.00047C12.5249 6.82116 12.516 6.64375 12.4988 6.46864L13.7612 5.42725C13.9486 5.27266 13.9978 5.00572 13.8778 4.79451L12.4177 2.22517C12.2976 2.01395 12.0431 1.91958 11.8144 2.00147L10.2141 2.57441C9.91636 2.36433 9.59645 2.18264 9.25851 2.0334L8.96863 0.415715C8.92593 0.177389 8.7186 0.00390625 8.47647 0.00390625H5.52351ZM5.67747 2.47943L5.94187 1.00391H8.0581L8.32253 2.47958C8.35348 2.6523 8.47271 2.79616 8.63668 2.85863C9.06768 3.02283 9.46674 3.25007 9.82215 3.5288C9.95734 3.63483 10.1375 3.66402 10.2993 3.6061L11.7559 3.08459L12.8007 4.92323L11.6503 5.8722C11.5145 5.98427 11.4476 6.15956 11.4743 6.33366C11.5076 6.55089 11.5249 6.77354 11.5249 7.00047C11.5249 7.22735 11.5076 7.44993 11.4743 7.66711C11.4476 7.8412 11.5145 8.01648 11.6504 8.12855L12.8007 9.07749L11.7559 10.9161L10.2994 10.3947C10.1377 10.3368 9.95752 10.366 9.82233 10.472C9.46686 10.7508 9.06773 10.9781 8.63664 11.1423C8.47267 11.2048 8.35344 11.3487 8.32249 11.5214L8.0581 12.9968H5.94187L5.67752 11.5215C5.64656 11.3488 5.52732 11.2049 5.36333 11.1425C4.93215 10.9782 4.53292 10.7509 4.17738 10.4721C4.04219 10.3661 3.86203 10.3369 3.70027 10.3948L2.24412 10.9161L1.19924 9.07749L2.34929 8.12883C2.48516 8.01675 2.55204 7.84146 2.52535 7.66736C2.49205 7.4501 2.47474 7.22743 2.47474 7.00047C2.47474 6.77345 2.49206 6.55072 2.52538 6.33341C2.55207 6.15931 2.48519 5.984 2.34932 5.87192L1.19924 4.92323L2.24412 3.08459L3.70047 3.60601C3.86221 3.66392 4.04236 3.63474 4.17755 3.52872C4.53304 3.24994 4.93219 3.02269 5.36329 2.85849C5.52728 2.79603 5.64652 2.65216 5.67747 2.47943Z",
136
+ fill: "#212121"
137
+ })
138
+ ]
138
139
  })
139
- }),
140
- /*#__PURE__*/ jsxs("svg", {
141
- width: "192",
142
- height: "8",
143
- viewBox: "0 0 192 8",
144
- fill: "none",
145
- xmlns: "http://www.w3.org/2000/svg",
146
- children: [
147
- /*#__PURE__*/ jsx("path", {
148
- d: "M0 4C0 1.79086 1.79086 0 4 0H52C54.2091 0 56 1.79086 56 4C56 6.20914 54.2091 8 52 8H4C1.79086 8 0 6.20914 0 4Z",
149
- fill: layoutSetting?.showHeader ? '#D6D6D6' : HEADER_OFF_COLOR
150
- }),
151
- /*#__PURE__*/ jsx("path", {
152
- d: "M68 4C68 1.79086 69.7909 0 72 0H120C122.209 0 124 1.79086 124 4C124 6.20914 122.209 8 120 8H72C69.7909 8 68 6.20914 68 4Z",
153
- fill: layoutSetting?.showHeader ? '#D6D6D6' : HEADER_OFF_COLOR
154
- }),
155
- /*#__PURE__*/ jsx("path", {
156
- d: "M136 4C136 1.79086 137.791 0 140 0H188C190.209 0 192 1.79086 192 4C192 6.20914 190.209 8 188 8H140C137.791 8 136 6.20914 136 4Z",
157
- fill: layoutSetting?.showHeader ? '#D6D6D6' : HEADER_OFF_COLOR
158
- })
159
- ]
160
140
  })
161
- ]
162
- })
141
+ }),
142
+ /*#__PURE__*/ jsxs("svg", {
143
+ width: "192",
144
+ height: "8",
145
+ viewBox: "0 0 192 8",
146
+ fill: "none",
147
+ xmlns: "http://www.w3.org/2000/svg",
148
+ children: [
149
+ /*#__PURE__*/ jsx("path", {
150
+ d: "M0 4C0 1.79086 1.79086 0 4 0H52C54.2091 0 56 1.79086 56 4C56 6.20914 54.2091 8 52 8H4C1.79086 8 0 6.20914 0 4Z",
151
+ fill: headerColor
152
+ }),
153
+ /*#__PURE__*/ jsx("path", {
154
+ d: "M68 4C68 1.79086 69.7909 0 72 0H120C122.209 0 124 1.79086 124 4C124 6.20914 122.209 8 120 8H72C69.7909 8 68 6.20914 68 4Z",
155
+ fill: headerColor
156
+ }),
157
+ /*#__PURE__*/ jsx("path", {
158
+ d: "M136 4C136 1.79086 137.791 0 140 0H188C190.209 0 192 1.79086 192 4C192 6.20914 190.209 8 188 8H140C137.791 8 136 6.20914 136 4Z",
159
+ fill: headerColor
160
+ })
161
+ ]
162
+ })
163
+ ]
163
164
  })
164
165
  });
165
166
  };
@@ -81,7 +81,7 @@ const Toolbar = ()=>{
81
81
  }
82
82
  }
83
83
  };
84
- const setHoverComponent = useCallback(({ $component, componentUid, focus, isThemeSection, isParent })=>{
84
+ const setHoverComponent = useCallback(({ $component, componentUid, focus, isPreventSection, isParent })=>{
85
85
  if (!$component && !componentUid) return;
86
86
  if (!$component) {
87
87
  const $c = document.querySelector(`[data-uid="${componentUid}"]`);
@@ -98,7 +98,7 @@ const Toolbar = ()=>{
98
98
  const $btnAddTop = getChildrenByAttrSelector($component, 'data-toolbar-add-top');
99
99
  const $btnAddBottom = getChildrenByAttrSelector($component, 'data-toolbar-add-bottom');
100
100
  const $themeSectionStatus = getChildrenByAttrSelector($component, 'data-theme-section-status');
101
- if (isThemeSection && $themeSectionStatus) {
101
+ if (isPreventSection && $themeSectionStatus) {
102
102
  $themeSectionStatus.setAttribute('data-theme-section-status-active', 'true');
103
103
  }
104
104
  if ($toolbar) {
@@ -120,7 +120,7 @@ const Toolbar = ()=>{
120
120
  if (isParent) {
121
121
  $outline.setAttribute('data-outline-parent-hover', 'true');
122
122
  }
123
- if (isThemeSection) {
123
+ if (isPreventSection) {
124
124
  $outline.setAttribute('data-outline-overlay-theme-section', 'true');
125
125
  }
126
126
  if (focus) {
@@ -628,23 +628,23 @@ const Toolbar = ()=>{
628
628
  }
629
629
  }
630
630
  }
631
- const $themeSection = $target.closest('[data-theme-section]');
632
- if ($themeSection) {
631
+ const $preventSection = $target.closest('[data-theme-section]') || $target.closest('[data-shopify-section]');
632
+ if ($preventSection) {
633
633
  setHoverComponent({
634
- $component: $themeSection,
634
+ $component: $preventSection,
635
635
  focus: true,
636
- isThemeSection: true
636
+ isPreventSection: true
637
637
  });
638
638
  } else {
639
639
  return;
640
640
  }
641
641
  }
642
- const $themeSection = $target.closest('[data-theme-section]');
643
- if ($themeSection) {
642
+ const $preventSection = $target.closest('[data-theme-section]') || $target.closest('[data-shopify-section]');
643
+ if ($preventSection) {
644
644
  setHoverComponent({
645
- $component: $themeSection,
645
+ $component: $preventSection,
646
646
  focus: true,
647
- isThemeSection: true
647
+ isPreventSection: true
648
648
  });
649
649
  } else {
650
650
  setHoverComponent({
@@ -1,5 +1,19 @@
1
1
  import { getFontsFromDataBuilder } from './helpers/gen-fonts.js';
2
2
 
3
+ const CHROME_UA = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36';
4
+ const IE_UA = 'Mozilla/5.0 (Windows NT 10.0; Trident/7.0; rv:11.0) like Gecko';
5
+ async function getFontForUA(url, UA) {
6
+ return fetch(url, {
7
+ headers: {
8
+ 'User-Agent': UA
9
+ }
10
+ }).then((res)=>{
11
+ if (res.status === 200) {
12
+ return res.text();
13
+ }
14
+ return '';
15
+ });
16
+ }
3
17
  const composeFonts = (fonts)=>{
4
18
  const uniqFonts = fonts.filter((font, index, arr)=>{
5
19
  return index === arr.findIndex((t)=>t.family === font.family);
@@ -40,14 +54,19 @@ const createFontUrl = (fonts, option)=>{
40
54
  }
41
55
  return `https://fonts.googleapis.com/css?${decodeURIComponent(params.toString())}`;
42
56
  };
43
- async function getFonts(fonts, option) {
57
+ async function getFonts(fonts, option, isImportFontByUrl = true) {
44
58
  /**
45
59
  * The order of IE -> Chrome is important, other wise chrome starts loading woff1.
46
60
  * CSS cascading 🤷‍♂️.
47
61
  */ const url = createFontUrl(fonts, option);
48
62
  if (!url) return '';
49
63
  try {
50
- return `@import url('${url}');`;
64
+ if (isImportFontByUrl) return `@import url('${url}');`;
65
+ const [ie, chrome] = await Promise.all([
66
+ getFontForUA(url, IE_UA),
67
+ getFontForUA(url, CHROME_UA)
68
+ ]);
69
+ return ie + chrome;
51
70
  } catch (e) {
52
71
  return '';
53
72
  }
@@ -12,7 +12,7 @@ import ImageToLayout from '../components/image-to-layout/ImageToLayout.js';
12
12
  import AddSectionImageToLayout from '../components/image-to-layout/AddSectionImageToLayout.js';
13
13
  import Toolbar from '../components/builder/Toolbar.js';
14
14
 
15
- const BuilderPage = ({ components, seo, themeStyle, fontStyle, sectionData, pageType, editorImageToLayout, isThemeSectionEditor, hiddenToolbar })=>{
15
+ const BuilderPage = ({ components, seo, themeStyle, fontStyle, sectionData, pageType, editorImageToLayout, isThemeSectionEditor, hiddenToolbar, isOriginTemplate })=>{
16
16
  const [loadSuccess, setLoadSuccess] = useState(false);
17
17
  const isDisableHeaderFooter = ()=>{
18
18
  return isThemeSectionEditor;
@@ -69,7 +69,8 @@ const BuilderPage = ({ components, seo, themeStyle, fontStyle, sectionData, page
69
69
  !hiddenToolbar && (isDisableHeaderFooter() ? /*#__PURE__*/ jsx("div", {
70
70
  className: "h-[40px] bg-[#f4f4f4]"
71
71
  }) : /*#__PURE__*/ jsx(Header, {
72
- pageType: pageType
72
+ pageType: pageType,
73
+ isOriginTemplate: isOriginTemplate
73
74
  })),
74
75
  /*#__PURE__*/ jsx("div", {
75
76
  id: "storefront",
@@ -92,7 +93,8 @@ const BuilderPage = ({ components, seo, themeStyle, fontStyle, sectionData, page
92
93
  id: "visual-content"
93
94
  }),
94
95
  !isDisableHeaderFooter() && !hiddenToolbar && /*#__PURE__*/ jsx(Footer, {
95
- pageType: pageType
96
+ pageType: pageType,
97
+ isOriginTemplate: isOriginTemplate
96
98
  })
97
99
  ]
98
100
  })
@@ -176,6 +176,7 @@ type BuilderPageProps = {
176
176
  editorImageToLayout?: boolean;
177
177
  isThemeSectionEditor?: boolean;
178
178
  hiddenToolbar?: boolean;
179
+ isOriginTemplate?: boolean;
179
180
  };
180
181
  declare const BuilderPage: React.FC<BuilderPageProps>;
181
182
 
@@ -192,7 +193,7 @@ type FontOption = {
192
193
  subset?: string;
193
194
  effect?: string;
194
195
  };
195
- declare function getFonts(fonts: FontItem[], option?: FontOption): Promise<string>;
196
+ declare function getFonts(fonts: FontItem[], option?: FontOption, isImportFontByUrl?: boolean): Promise<string>;
196
197
  declare const getFontFromGlobalStyle: (data?: string) => Promise<string> | "";
197
198
 
198
199
  declare const getFontsFromDataBuilder: (dataBuilder: Record<string, any>) => FontItem[];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gem-sdk/pages",
3
- "version": "1.40.2-staging.4",
3
+ "version": "1.41.0-dev.14",
4
4
  "license": "MIT",
5
5
  "sideEffects": false,
6
6
  "main": "dist/cjs/index.js",
@@ -26,10 +26,10 @@
26
26
  "next": "latest"
27
27
  },
28
28
  "devDependencies": {
29
- "@gem-sdk/core": "1.40.2-staging.4",
30
- "@gem-sdk/plugin-cookie-bar": "1.40.2-staging.4",
31
- "@gem-sdk/plugin-quick-view": "1.40.2-staging.4",
32
- "@gem-sdk/plugin-sticky-add-to-cart": "1.40.2-staging.4"
29
+ "@gem-sdk/core": "1.41.0-dev.14",
30
+ "@gem-sdk/plugin-cookie-bar": "1.41.0-staging.13",
31
+ "@gem-sdk/plugin-quick-view": "1.41.0-staging.13",
32
+ "@gem-sdk/plugin-sticky-add-to-cart": "1.41.0-staging.13"
33
33
  },
34
34
  "peerDependencies": {
35
35
  "next": ">=13"