@gem-sdk/pages 1.24.11 → 1.25.3

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.
@@ -19,12 +19,16 @@ const Toolbox = ()=>{
19
19
  const initNormalizeState = useBuilderPreviewStore((s)=>s.forceChangeState);
20
20
  const forceChangeItemProp = useBuilderPreviewStore((s)=>s.forceChangeItemProp);
21
21
  const changeItemPropByKey = useBuilderPreviewStore((s)=>s.changeItemPropByKey);
22
+ const setDynamicProduct = useBuilderPreviewStore((s)=>s.setDynamicProduct);
23
+ const setDynamicCollection = useBuilderPreviewStore((s)=>s.setDynamicCollection);
22
24
  const addItem = useBuilderPreviewStore((s)=>s.addItem);
23
25
  const moveItem = useBuilderPreviewStore((s)=>s.moveItem);
24
26
  const removeItem = useBuilderPreviewStore((s)=>s.removeItem);
25
27
  const addSection = useSectionStore((s)=>s.addSection);
26
28
  const changeSwatches = useShopStore((s)=>s.changeSwatches);
27
29
  const changeLayoutSettings = useShopStore((s)=>s.changeLayoutSettings);
30
+ const changeCreateThemeSectionCount = useShopStore((s)=>s.changeCreateThemeSectionCount);
31
+ const changeShopPlan = useShopStore((s)=>s.changeShopPlan);
28
32
  const clearModal = useModalStore((s)=>s.clearModal);
29
33
  const fonts = useMemo(()=>getFontsFromDataBuilder(state), [
30
34
  state
@@ -217,6 +221,34 @@ const Toolbox = ()=>{
217
221
  }, [
218
222
  changeLayoutSettings
219
223
  ]);
224
+ const onUpdateCreateThemeSectionCount = useCallback((e)=>{
225
+ const count = e.detail;
226
+ if (!count) return;
227
+ changeCreateThemeSectionCount(count);
228
+ }, [
229
+ changeCreateThemeSectionCount
230
+ ]);
231
+ const onUpdateShopPlan = useCallback((e)=>{
232
+ const shopPlan = e.detail;
233
+ if (!shopPlan) return;
234
+ changeShopPlan(shopPlan);
235
+ }, [
236
+ changeShopPlan
237
+ ]);
238
+ const onUpdateDynamicProduct = useCallback((e)=>{
239
+ const product = e.detail;
240
+ if (!product) return;
241
+ setDynamicProduct(product);
242
+ }, [
243
+ setDynamicProduct
244
+ ]);
245
+ const onUpdateDynamicCollection = useCallback((e)=>{
246
+ const collection = e.detail;
247
+ if (!collection) return;
248
+ setDynamicCollection(collection);
249
+ }, [
250
+ setDynamicCollection
251
+ ]);
220
252
  useEffect(()=>{
221
253
  if (customFontUrl) {
222
254
  const fontId = 'google-font';
@@ -249,6 +281,10 @@ const Toolbox = ()=>{
249
281
  window.addEventListener('set-global-style', onChangeGlobalStyle);
250
282
  window.addEventListener('update-global-swatches-data', onChangeSwatchesData);
251
283
  window.addEventListener('on-off-header-footer', onChangeLayoutSettingData);
284
+ window.addEventListener('update-create-theme-section-count', onUpdateCreateThemeSectionCount);
285
+ window.addEventListener('update-shop-plan', onUpdateShopPlan);
286
+ window.addEventListener('set-dynamic-product', onUpdateDynamicProduct);
287
+ window.addEventListener('set-dynamic-collection', onUpdateDynamicCollection);
252
288
  return ()=>{
253
289
  window.removeEventListener('update-shop-info', onChangeShopInfo);
254
290
  window.removeEventListener('revalidate-query', onRevalidateQuery);
@@ -260,9 +296,14 @@ const Toolbox = ()=>{
260
296
  window.removeEventListener('set-global-style', onChangeGlobalStyle);
261
297
  window.removeEventListener('update-global-swatches-data', onChangeSwatchesData);
262
298
  window.removeEventListener('on-off-header-footer', onChangeLayoutSettingData);
299
+ window.removeEventListener('update-create-theme-section-count', onUpdateCreateThemeSectionCount);
300
+ window.removeEventListener('update-shop-plan', onUpdateShopPlan);
301
+ window.removeEventListener('set-dynamic-product', onUpdateDynamicProduct);
302
+ window.removeEventListener('set-dynamic-collection', onUpdateDynamicCollection);
263
303
  };
264
304
  }, [
265
305
  onAddEntity,
306
+ onUpdateShopPlan,
266
307
  onForceUpdateEntityProps,
267
308
  onUpdateEntityProp,
268
309
  onInitBuilder,
@@ -272,7 +313,10 @@ const Toolbox = ()=>{
272
313
  onChangeSwatchesData,
273
314
  onRevalidateQuery,
274
315
  onChangeShopInfo,
275
- onChangeLayoutSettingData
316
+ onChangeLayoutSettingData,
317
+ onUpdateCreateThemeSectionCount,
318
+ onUpdateDynamicProduct,
319
+ onUpdateDynamicCollection
276
320
  ]);
277
321
  return /*#__PURE__*/ jsx("div", {
278
322
  className: "toolbox"
@@ -1,6 +1,6 @@
1
1
  import { PublishedThemePagesDocument, StorePropertyDocument } from '@gem-sdk/core';
2
2
  import { ShopMetaDocument } from '@gem-sdk/adapter-shopify';
3
- import { getFontFromGlobalStyle } from '../google-fonts.js';
3
+ import { getFontStyleFromPageTemplate, getFontFromGlobalStyle } from '../google-fonts.js';
4
4
  import { genCSS } from '../helpers/gen-css.js';
5
5
  import { generateManifest } from '../helpers/generate-manifres.js';
6
6
  import { getFallbackV2 } from '../helpers/get-fallback.js';
@@ -33,7 +33,8 @@ const getHomePagePropsV2 = (fetcher, shopifyFetcher)=>async ()=>{
33
33
  throw new Error(`No data builder found for Home page`);
34
34
  }
35
35
  const homeTemplate = parseBuilderTemplateV2(dataBuilder);
36
- const [fontStyle, fallback] = await Promise.all([
36
+ const [elementFontStyle, fontStyle, fallback] = await Promise.all([
37
+ getFontStyleFromPageTemplate(homeTemplate),
37
38
  getFontFromGlobalStyle(dataBuilder?.pageStyle?.data),
38
39
  getFallbackV2(fetcher, homeTemplate)
39
40
  ]);
@@ -113,6 +114,7 @@ const getHomePagePropsV2 = (fetcher, shopifyFetcher)=>async ()=>{
113
114
  return serializableJson({
114
115
  themeStyle: genCSS(dataBuilder?.pageStyle?.data, mobileOnly),
115
116
  fontStyle,
117
+ elementFontStyle,
116
118
  builderData: homeTemplate,
117
119
  swr: {
118
120
  fallback
@@ -10,8 +10,9 @@ import CollectionGlobalProvider from './CollectionGlobalProvider.js';
10
10
  import PopupManager from '../components/builder/PopupManager.js';
11
11
  import ImageToLayout from '../components/image-to-layout/ImageToLayout.js';
12
12
  import AddSectionImageToLayout from '../components/image-to-layout/AddSectionImageToLayout.js';
13
+ import Toolbar from '../components/builder/Toolbar.js';
13
14
 
14
- const BuilderPage = ({ components, seo, themeStyle, fontStyle, sectionData, pageType, editorImageToLayout })=>{
15
+ const BuilderPage = ({ components, seo, themeStyle, fontStyle, sectionData, pageType, editorImageToLayout, isThemeSectionEditor })=>{
15
16
  const [loadSuccess, setLoadSuccess] = useState(false);
16
17
  const initState = useMemo(()=>({
17
18
  ROOT: {
@@ -53,15 +54,20 @@ const BuilderPage = ({ components, seo, themeStyle, fontStyle, sectionData, page
53
54
  data: sectionData,
54
55
  children: /*#__PURE__*/ jsxs(BuilderPreviewProvider, {
55
56
  state: initState,
57
+ isThemeSectionEditor: isThemeSectionEditor,
56
58
  children: [
57
59
  /*#__PURE__*/ jsx(Toolbox, {}),
60
+ /*#__PURE__*/ jsx(Toolbar, {}),
58
61
  /*#__PURE__*/ jsx(PopupManager, {}),
59
62
  loadSuccess && /*#__PURE__*/ jsxs("div", {
60
63
  className: "builder z-1 relative",
61
64
  children: [
62
- /*#__PURE__*/ jsx(Header, {}),
65
+ isThemeSectionEditor ? /*#__PURE__*/ jsx("div", {
66
+ className: "h-[40px] bg-[#f4f4f4]"
67
+ }) : /*#__PURE__*/ jsx(Header, {}),
63
68
  /*#__PURE__*/ jsx("div", {
64
69
  id: "storefront",
70
+ className: isThemeSectionEditor ? 'theme-section-editor' : '',
65
71
  children: pageType === 'GP_COLLECTION' ? /*#__PURE__*/ jsx(CollectionGlobalProvider, {
66
72
  children: /*#__PURE__*/ jsx(RenderPreview, {
67
73
  uid: "ROOT"
@@ -79,7 +85,7 @@ const BuilderPage = ({ components, seo, themeStyle, fontStyle, sectionData, page
79
85
  /*#__PURE__*/ jsx("div", {
80
86
  id: "visual-content"
81
87
  }),
82
- /*#__PURE__*/ jsx(Footer, {})
88
+ !isThemeSectionEditor && /*#__PURE__*/ jsx(Footer, {})
83
89
  ]
84
90
  })
85
91
  ]
@@ -146,6 +146,7 @@ type BuilderPageProps = {
146
146
  mode?: RenderMode;
147
147
  pageType: ShopType.PublishedThemePageType;
148
148
  editorImageToLayout?: boolean;
149
+ isThemeSectionEditor?: boolean;
149
150
  };
150
151
  declare const BuilderPage: React.FC<BuilderPageProps>;
151
152
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gem-sdk/pages",
3
- "version": "1.24.11",
3
+ "version": "1.25.3",
4
4
  "license": "MIT",
5
5
  "sideEffects": false,
6
6
  "main": "dist/cjs/index.js",
@@ -25,10 +25,10 @@
25
25
  "next-seo": "^6.0.0"
26
26
  },
27
27
  "devDependencies": {
28
- "@gem-sdk/core": "1.24.9",
29
- "@gem-sdk/plugin-cookie-bar": "*",
30
- "@gem-sdk/plugin-quick-view": "*",
31
- "@gem-sdk/plugin-sticky-add-to-cart": "*"
28
+ "@gem-sdk/core": "1.25.0",
29
+ "@gem-sdk/plugin-cookie-bar": "1.25.0",
30
+ "@gem-sdk/plugin-quick-view": "1.25.0",
31
+ "@gem-sdk/plugin-sticky-add-to-cart": "1.25.0"
32
32
  },
33
33
  "peerDependencies": {
34
34
  "next": ">=13"