@gem-sdk/pages 1.36.20 → 2.0.0-dev.832

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 (110) hide show
  1. package/dist/cjs/components/ErrorBoundary.js +1 -40
  2. package/dist/cjs/components/ErrorFallback.js +1 -26
  3. package/dist/cjs/components/FacebookPixel.js +3 -36
  4. package/dist/cjs/components/Footer.js +1 -125
  5. package/dist/cjs/components/FooterForPostPurchase.js +1 -0
  6. package/dist/cjs/components/GoogleAnalytic.js +5 -67
  7. package/dist/cjs/components/Header.js +1 -96
  8. package/dist/cjs/components/TikTokPixel.js +3 -19
  9. package/dist/cjs/components/builder/PopupManager.js +1 -62
  10. package/dist/cjs/components/builder/Toolbar.js +1 -883
  11. package/dist/cjs/components/builder/Toolbox.js +1 -384
  12. package/dist/cjs/components/builder/toolbar/Onboarding.js +1 -110
  13. package/dist/cjs/components/image-to-layout/AddSectionImageToLayout.js +1 -263
  14. package/dist/cjs/components/image-to-layout/DropElement.js +1 -164
  15. package/dist/cjs/components/image-to-layout/ImageToLayout.js +1 -41
  16. package/dist/cjs/index.js +1 -75
  17. package/dist/cjs/layouts/main.js +1 -30
  18. package/dist/cjs/libs/api/get-builder-props.js +1 -41
  19. package/dist/cjs/libs/api/get-collection-props.js +1 -68
  20. package/dist/cjs/libs/api/get-home-page-props-v2.js +1 -145
  21. package/dist/cjs/libs/api/get-home-page-props.js +1 -151
  22. package/dist/cjs/libs/api/get-post-purchase-props-preview.js +1 -0
  23. package/dist/cjs/libs/api/get-preview-props.js +1 -18
  24. package/dist/cjs/libs/api/get-product-props.js +1 -73
  25. package/dist/cjs/libs/api/get-static-page-props-preview.js +1 -150
  26. package/dist/cjs/libs/api/get-static-page-props-v2.js +1 -152
  27. package/dist/cjs/libs/api/get-static-page-props.js +1 -148
  28. package/dist/cjs/libs/custom-fonts.js +6 -60
  29. package/dist/cjs/libs/fetcher.js +1 -67
  30. package/dist/cjs/libs/get-layout.js +1 -13
  31. package/dist/cjs/libs/get-storefront-api.js +1 -12
  32. package/dist/cjs/libs/getStaticPaths.js +1 -10
  33. package/dist/cjs/libs/google-fonts.js +1 -81
  34. package/dist/cjs/libs/helpers/common.js +1 -27
  35. package/dist/cjs/libs/helpers/gen-css.js +1 -117
  36. package/dist/cjs/libs/helpers/gen-fonts.js +1 -68
  37. package/dist/cjs/libs/helpers/generate-manifres.js +1 -5
  38. package/dist/cjs/libs/helpers/get-fallback.js +1 -35
  39. package/dist/cjs/libs/helpers/normalize.js +1 -90
  40. package/dist/cjs/libs/helpers/parse-json.js +1 -16
  41. package/dist/cjs/libs/helpers/user-agent.js +1 -7
  42. package/dist/cjs/libs/hooks/use-tracking-view.js +1 -45
  43. package/dist/cjs/libs/hooks/usePagePreview.js +1 -0
  44. package/dist/cjs/libs/parse-html.js +1 -42
  45. package/dist/cjs/libs/shopify-cdn-with-google-fonts.js +1 -1845
  46. package/dist/cjs/pages/404.js +1 -43
  47. package/dist/cjs/pages/500.js +1 -74
  48. package/dist/cjs/pages/CollectionGlobalProvider.js +1 -59
  49. package/dist/cjs/pages/builder.js +1 -103
  50. package/dist/cjs/pages/collection-detail.js +1 -64
  51. package/dist/cjs/pages/preview.js +1 -26
  52. package/dist/cjs/pages/product-detail.js +1 -69
  53. package/dist/cjs/pages/static-v2.js +1 -91
  54. package/dist/cjs/pages/static.js +1 -75
  55. package/dist/esm/components/ErrorBoundary.js +1 -38
  56. package/dist/esm/components/ErrorFallback.js +1 -24
  57. package/dist/esm/components/FacebookPixel.js +3 -34
  58. package/dist/esm/components/Footer.js +1 -121
  59. package/dist/esm/components/FooterForPostPurchase.js +1 -0
  60. package/dist/esm/components/GoogleAnalytic.js +5 -65
  61. package/dist/esm/components/Header.js +1 -92
  62. package/dist/esm/components/TikTokPixel.js +3 -17
  63. package/dist/esm/components/builder/PopupManager.js +1 -58
  64. package/dist/esm/components/builder/Toolbar.js +1 -879
  65. package/dist/esm/components/builder/Toolbox.js +1 -380
  66. package/dist/esm/components/builder/toolbar/Onboarding.js +1 -106
  67. package/dist/esm/components/image-to-layout/AddSectionImageToLayout.js +1 -259
  68. package/dist/esm/components/image-to-layout/DropElement.js +1 -162
  69. package/dist/esm/components/image-to-layout/ImageToLayout.js +1 -37
  70. package/dist/esm/index.js +1 -33
  71. package/dist/esm/layouts/main.js +1 -26
  72. package/dist/esm/libs/api/get-builder-props.js +1 -39
  73. package/dist/esm/libs/api/get-collection-props.js +1 -66
  74. package/dist/esm/libs/api/get-home-page-props-v2.js +1 -143
  75. package/dist/esm/libs/api/get-home-page-props.js +1 -149
  76. package/dist/esm/libs/api/get-post-purchase-props-preview.js +1 -0
  77. package/dist/esm/libs/api/get-preview-props.js +1 -16
  78. package/dist/esm/libs/api/get-product-props.js +1 -71
  79. package/dist/esm/libs/api/get-static-page-props-preview.js +1 -148
  80. package/dist/esm/libs/api/get-static-page-props-v2.js +1 -150
  81. package/dist/esm/libs/api/get-static-page-props.js +1 -146
  82. package/dist/esm/libs/custom-fonts.js +6 -55
  83. package/dist/esm/libs/fetcher.js +1 -64
  84. package/dist/esm/libs/get-layout.js +1 -11
  85. package/dist/esm/libs/get-storefront-api.js +1 -10
  86. package/dist/esm/libs/getStaticPaths.js +1 -8
  87. package/dist/esm/libs/google-fonts.js +1 -75
  88. package/dist/esm/libs/helpers/common.js +1 -24
  89. package/dist/esm/libs/helpers/gen-css.js +1 -115
  90. package/dist/esm/libs/helpers/gen-fonts.js +1 -65
  91. package/dist/esm/libs/helpers/generate-manifres.js +1 -3
  92. package/dist/esm/libs/helpers/get-fallback.js +1 -33
  93. package/dist/esm/libs/helpers/normalize.js +1 -85
  94. package/dist/esm/libs/helpers/parse-json.js +1 -13
  95. package/dist/esm/libs/helpers/user-agent.js +1 -5
  96. package/dist/esm/libs/hooks/use-tracking-view.js +1 -43
  97. package/dist/esm/libs/hooks/usePagePreview.js +1 -0
  98. package/dist/esm/libs/parse-html.js +1 -40
  99. package/dist/esm/libs/shopify-cdn-with-google-fonts.js +1 -1843
  100. package/dist/esm/pages/404.js +1 -41
  101. package/dist/esm/pages/500.js +1 -72
  102. package/dist/esm/pages/CollectionGlobalProvider.js +1 -55
  103. package/dist/esm/pages/builder.js +1 -101
  104. package/dist/esm/pages/collection-detail.js +1 -60
  105. package/dist/esm/pages/preview.js +1 -24
  106. package/dist/esm/pages/product-detail.js +1 -65
  107. package/dist/esm/pages/static-v2.js +1 -89
  108. package/dist/esm/pages/static.js +1 -71
  109. package/dist/types/index.d.ts +28 -6
  110. package/package.json +5 -5
@@ -1,384 +1 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var jsxRuntime = require('react/jsx-runtime');
6
- var core = require('@gem-sdk/core');
7
- var react = require('react');
8
- var getStorefrontApi = require('../../libs/get-storefront-api.js');
9
- var googleFonts = require('../../libs/google-fonts.js');
10
- var genCss = require('../../libs/helpers/gen-css.js');
11
- var genFonts = require('../../libs/helpers/gen-fonts.js');
12
- var shopifyCdnWithGoogleFonts = require('../../libs/shopify-cdn-with-google-fonts.js');
13
-
14
- const globalStyleId = 'global-style';
15
- const Toolbox = ()=>{
16
- const matchMutate = core.useMatchMutate();
17
- const provider = core.useShopStore((s)=>s.provider);
18
- const changeStorefrontInfo = core.useShopStore((s)=>s.changeStorefrontInfo);
19
- const setDynamicProduct = core.usePageStore((s)=>s.setDynamicProduct);
20
- const setDynamicCollection = core.usePageStore((s)=>s.setDynamicCollection);
21
- const initState = core.useBuilderPreviewStore((s)=>s.initState);
22
- const state = core.useBuilderPreviewStore((s)=>s.state);
23
- const initNormalizeState = core.useBuilderPreviewStore((s)=>s.forceChangeState);
24
- const forceChangeItemProp = core.useBuilderPreviewStore((s)=>s.forceChangeItemProp);
25
- const changeItemPropByKey = core.useBuilderPreviewStore((s)=>s.changeItemPropByKey);
26
- const addItem = core.useBuilderPreviewStore((s)=>s.addItem);
27
- const moveItem = core.useBuilderPreviewStore((s)=>s.moveItem);
28
- const removeItem = core.useBuilderPreviewStore((s)=>s.removeItem);
29
- const addSection = core.useSectionStore((s)=>s.addSection);
30
- const changeSwatches = core.useShopStore((s)=>s.changeSwatches);
31
- const updateItemName = core.useBuilderPreviewStore((s)=>s.updateItemName);
32
- const updateItemAttribute = core.useBuilderPreviewStore((s)=>s.updateItemAttribute);
33
- const changeLayoutSettings = core.useShopStore((s)=>s.changeLayoutSettings);
34
- const changeCreateThemeSectionCount = core.useShopStore((s)=>s.changeCreateThemeSectionCount);
35
- const changeShopPlan = core.useShopStore((s)=>s.changeShopPlan);
36
- const clearModal = core.useModalStore((s)=>s.clearModal);
37
- const fonts = react.useMemo(()=>genFonts.getFontsFromDataBuilder(state), [
38
- state
39
- ]);
40
- const setFontsToHead = (className, fonts)=>{
41
- // clear fonts
42
- if (!fonts?.length) {
43
- const googleFonts = document.querySelectorAll(`.${className}`);
44
- googleFonts.forEach((googleFont)=>{
45
- googleFont.remove();
46
- });
47
- return;
48
- }
49
- // clear fonts not use
50
- const googleFonts$1 = document.querySelectorAll(`.${className}`);
51
- googleFonts$1.forEach((googleFont)=>{
52
- const fontName = googleFont.getAttribute('data-font');
53
- const variantName = googleFont.getAttribute('data-font-variant');
54
- if (!fontName || !variantName) {
55
- googleFont.remove();
56
- } else {
57
- const isUse = fonts.find((font)=>font.family == fontName && font.variants.includes(variantName));
58
- if (!isUse) {
59
- googleFont.remove();
60
- }
61
- }
62
- });
63
- // append new fonts
64
- for (const font of fonts){
65
- if (font.type !== 'custom') {
66
- if (font.variants?.length) {
67
- for (const variant of font.variants){
68
- const cloneFont = JSON.parse(JSON.stringify(font));
69
- cloneFont.variants = [
70
- variant
71
- ]; // set single variant. Fix error reload font when change href other variant
72
- const fontName = cloneFont.family;
73
- const variantName = variant;
74
- const url = googleFonts.createFontUrl([
75
- cloneFont
76
- ]);
77
- if (url) {
78
- const googleFont = document.querySelector(`.${className}[data-font="${fontName}"][data-font-variant="${variantName}"]`);
79
- if (googleFont) {
80
- continue;
81
- } else {
82
- const link = document.createElement('link');
83
- link.className = className;
84
- link.dataset.font = fontName;
85
- link.dataset.fontVariant = variantName;
86
- link.href = url;
87
- link.rel = 'stylesheet';
88
- document.head.appendChild(link);
89
- }
90
- }
91
- }
92
- }
93
- }
94
- }
95
- };
96
- // Revalidate all query with key match query/
97
- const onRevalidateQuery = react.useCallback(()=>{
98
- matchMutate(/query\//, {
99
- revalidate: true
100
- });
101
- }, [
102
- matchMutate
103
- ]);
104
- // Update shop info
105
- const onChangeShopInfo = react.useCallback((e)=>{
106
- const detail = e.detail;
107
- changeStorefrontInfo({
108
- url: detail.shopHandle ? getStorefrontApi.getStorefrontApi(detail.shopHandle, provider) : undefined,
109
- token: detail.shopToken
110
- });
111
- }, [
112
- changeStorefrontInfo,
113
- provider
114
- ]);
115
- const onChangeGlobalStyle = react.useCallback((e)=>{
116
- const detail = e.detail;
117
- try {
118
- if (detail.data) {
119
- const themeStyle = genCss.genCSS(detail.data, detail.mobileOnly);
120
- const font = Object.entries(detail.data?.font).map(([, value])=>{
121
- return value;
122
- }).map((item)=>{
123
- if (item.type == 'custom') {
124
- const isGoogleFont = shopifyCdnWithGoogleFonts.shopifyCdnWithGoogleFonts.find((ggFont)=>ggFont.family == item.family);
125
- if (isGoogleFont) {
126
- return isGoogleFont;
127
- }
128
- }
129
- return item;
130
- });
131
- const globalStyle = document.getElementById(globalStyleId);
132
- setFontsToHead('google-font-builder', font);
133
- if (globalStyle) {
134
- globalStyle.innerHTML = themeStyle;
135
- } else {
136
- const style = document.createElement('style');
137
- style.id = globalStyleId;
138
- style.innerHTML = themeStyle;
139
- document.head.appendChild(style);
140
- }
141
- }
142
- } catch {
143
- //
144
- }
145
- }, []);
146
- // Init builder data
147
- const onInitBuilder = react.useCallback((e)=>{
148
- clearModal();
149
- try {
150
- const detail = e.detail;
151
- if (detail.data) {
152
- if (detail.type === 'flat') {
153
- initNormalizeState(detail.data);
154
- } else {
155
- initState(detail.data);
156
- }
157
- }
158
- } catch {
159
- //
160
- }
161
- }, [
162
- initNormalizeState,
163
- initState,
164
- clearModal
165
- ]);
166
- // Add new entity
167
- const onAddEntity = react.useCallback((e)=>{
168
- try {
169
- const detail = e.detail;
170
- if (detail.entity) {
171
- addItem({
172
- data: detail.entity,
173
- id: detail.id,
174
- position: detail.position,
175
- type: detail.type ?? 'component'
176
- });
177
- if (detail?.type === 'section' && !Array.isArray(detail.entity)) {
178
- addSection(detail.entity.uid, detail.entity);
179
- }
180
- }
181
- } catch {
182
- //
183
- }
184
- }, [
185
- addItem,
186
- addSection
187
- ]);
188
- // Update props of entity
189
- const onUpdateEntityProp = react.useCallback((e)=>{
190
- try {
191
- const detail = e.detail;
192
- if (detail.uid && detail.propName) {
193
- changeItemPropByKey({
194
- id: detail.uid,
195
- key: detail.propName,
196
- data: detail.propValue,
197
- group: detail.group
198
- });
199
- }
200
- } catch {
201
- //
202
- }
203
- }, [
204
- changeItemPropByKey
205
- ]);
206
- // Update props of entity
207
- const onForceUpdateEntityProps = react.useCallback((e)=>{
208
- try {
209
- const detail = e.detail;
210
- if (detail.uid) {
211
- forceChangeItemProp(detail.uid, detail.data, detail.group);
212
- }
213
- } catch {
214
- //
215
- }
216
- }, [
217
- forceChangeItemProp
218
- ]);
219
- // Move entity
220
- const onMoveEntity = react.useCallback((e)=>{
221
- try {
222
- const detail = e.detail;
223
- if (detail.to && detail.uid) {
224
- moveItem(detail.uid, detail.to, Number(detail.position) ?? 0);
225
- }
226
- } catch {
227
- //
228
- }
229
- }, [
230
- moveItem
231
- ]);
232
- // Remove entity
233
- const onRemoveEntity = react.useCallback((e)=>{
234
- try {
235
- const detail = e.detail;
236
- if (detail.uid) {
237
- removeItem(detail.uid);
238
- }
239
- } catch {
240
- //
241
- }
242
- }, [
243
- removeItem
244
- ]);
245
- // Change Swatches Data
246
- const onChangeSwatchesData = react.useCallback((e)=>{
247
- const detail = e.detail;
248
- try {
249
- if (detail.data) {
250
- changeSwatches(detail.data);
251
- }
252
- } catch {
253
- //
254
- }
255
- }, [
256
- changeSwatches
257
- ]);
258
- const onChangeLayoutSettingData = react.useCallback((e)=>{
259
- const detail = e.detail;
260
- if (!detail) return;
261
- changeLayoutSettings(detail);
262
- }, [
263
- changeLayoutSettings
264
- ]);
265
- const onUpdateCreateThemeSectionCount = react.useCallback((e)=>{
266
- const count = e.detail;
267
- if (!count) return;
268
- changeCreateThemeSectionCount(count);
269
- }, [
270
- changeCreateThemeSectionCount
271
- ]);
272
- const onUpdateShopPlan = react.useCallback((e)=>{
273
- const shopPlan = e.detail;
274
- if (!shopPlan) return;
275
- changeShopPlan(shopPlan);
276
- }, [
277
- changeShopPlan
278
- ]);
279
- const onUpdateDynamicProduct = react.useCallback((e)=>{
280
- const product = e.detail;
281
- if (!product) return;
282
- setDynamicProduct(product);
283
- }, [
284
- setDynamicProduct
285
- ]);
286
- const onUpdateDynamicCollection = react.useCallback((e)=>{
287
- const collection = e.detail;
288
- if (!collection) return;
289
- setDynamicCollection(collection);
290
- }, [
291
- setDynamicCollection
292
- ]);
293
- react.useEffect(()=>{
294
- if (fonts) {
295
- setFontsToHead('google-font-element', fonts);
296
- }
297
- }, [
298
- fonts
299
- ]);
300
- const onUpdateItemName = react.useCallback((e)=>{
301
- const detail = e.detail;
302
- if (detail.uid) {
303
- updateItemName(detail.uid, detail.name || '');
304
- }
305
- }, [
306
- updateItemName
307
- ]);
308
- const onUpdateItemAttribute = react.useCallback((e)=>{
309
- const detail = e.detail;
310
- if (detail.uid) {
311
- updateItemAttribute(detail.uid, detail.value || '', detail.attr || '');
312
- }
313
- }, [
314
- updateItemAttribute
315
- ]);
316
- react.useEffect(()=>{
317
- if (fonts) {
318
- setFontsToHead('google-font-element', fonts);
319
- }
320
- }, [
321
- fonts
322
- ]);
323
- react.useEffect(()=>{
324
- window.addEventListener('update-shop-info', onChangeShopInfo);
325
- window.addEventListener('revalidate-query', onRevalidateQuery);
326
- window.addEventListener('init-builder', onInitBuilder);
327
- window.addEventListener('add-entity', onAddEntity);
328
- window.addEventListener('remove-entity', onRemoveEntity);
329
- window.addEventListener('move-entity', onMoveEntity);
330
- window.addEventListener('force-update-entity-props', onForceUpdateEntityProps);
331
- window.addEventListener('update-entity-prop', onUpdateEntityProp);
332
- window.addEventListener('set-global-style', onChangeGlobalStyle);
333
- window.addEventListener('update-global-swatches-data', onChangeSwatchesData);
334
- window.addEventListener('on-off-header-footer', onChangeLayoutSettingData);
335
- window.addEventListener('update-create-theme-section-count', onUpdateCreateThemeSectionCount);
336
- window.addEventListener('update-shop-plan', onUpdateShopPlan);
337
- window.addEventListener('set-dynamic-product', onUpdateDynamicProduct);
338
- window.addEventListener('set-dynamic-collection', onUpdateDynamicCollection);
339
- window.addEventListener('update-item-name', onUpdateItemName);
340
- window.addEventListener('update-item-attribute', onUpdateItemAttribute);
341
- return ()=>{
342
- window.removeEventListener('update-shop-info', onChangeShopInfo);
343
- window.removeEventListener('revalidate-query', onRevalidateQuery);
344
- window.removeEventListener('init-builder', onInitBuilder);
345
- window.removeEventListener('add-entity', onAddEntity);
346
- window.removeEventListener('remove-entity', onRemoveEntity);
347
- window.removeEventListener('move-entity', onMoveEntity);
348
- window.removeEventListener('update-entity-prop', onUpdateEntityProp);
349
- window.removeEventListener('set-global-style', onChangeGlobalStyle);
350
- window.removeEventListener('update-global-swatches-data', onChangeSwatchesData);
351
- window.removeEventListener('on-off-header-footer', onChangeLayoutSettingData);
352
- window.removeEventListener('update-create-theme-section-count', onUpdateCreateThemeSectionCount);
353
- window.removeEventListener('update-shop-plan', onUpdateShopPlan);
354
- window.removeEventListener('set-dynamic-product', onUpdateDynamicProduct);
355
- window.removeEventListener('set-dynamic-collection', onUpdateDynamicCollection);
356
- window.removeEventListener('update-item-name', onUpdateItemName);
357
- window.removeEventListener('update-item-attribute', onUpdateItemAttribute);
358
- };
359
- }, [
360
- onAddEntity,
361
- onUpdateShopPlan,
362
- onForceUpdateEntityProps,
363
- onUpdateEntityProp,
364
- onInitBuilder,
365
- onMoveEntity,
366
- onRemoveEntity,
367
- onChangeGlobalStyle,
368
- onChangeSwatchesData,
369
- onRevalidateQuery,
370
- onChangeShopInfo,
371
- onChangeLayoutSettingData,
372
- onUpdateCreateThemeSectionCount,
373
- onUpdateDynamicProduct,
374
- onUpdateDynamicCollection,
375
- onUpdateItemName,
376
- onUpdateItemAttribute
377
- ]);
378
- return /*#__PURE__*/ jsxRuntime.jsx("div", {
379
- className: "toolbox"
380
- });
381
- };
382
- var Toolbox$1 = /*#__PURE__*/ react.memo(Toolbox);
383
-
384
- exports.default = Toolbox$1;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var jsxRuntime=require("react/jsx-runtime"),core=require("@gem-sdk/core"),react=require("react"),getStorefrontApi=require("../../libs/get-storefront-api.js"),googleFonts=require("../../libs/google-fonts.js"),genCss=require("../../libs/helpers/gen-css.js"),genFonts=require("../../libs/helpers/gen-fonts.js"),shopifyCdnWithGoogleFonts=require("../../libs/shopify-cdn-with-google-fonts.js");const globalStyleId="global-style",Toolbox=()=>{let e=core.useMatchMutate(),t=core.useShopStore(e=>e.provider),o=core.useShopStore(e=>e.changeStorefrontInfo),r=core.usePageStore(e=>e.setDynamicProduct),a=core.usePageStore(e=>e.setPostPurchaseProductOffers),n=core.usePageStore(e=>e.setSalePageProductId),i=core.usePageStore(e=>e.setDynamicCollection),d=core.useBuilderPreviewStore(e=>e.initState),l=core.useBuilderPreviewStore(e=>e.state),s=core.useBuilderPreviewStore(e=>e.forceChangeState),c=core.useBuilderPreviewStore(e=>e.forceChangeItemProp),u=core.useBuilderPreviewStore(e=>e.changeItemPropByKey),p=core.useBuilderPreviewStore(e=>e.addItem),v=core.useBuilderPreviewStore(e=>e.moveItem),w=core.useBuilderPreviewStore(e=>e.removeItem),m=core.useSectionStore(e=>e.addSection),f=core.useShopStore(e=>e.changeSwatches),y=core.useBuilderPreviewStore(e=>e.updateItemName),g=core.useBuilderPreviewStore(e=>e.updateItemAttribute),h=core.useShopStore(e=>e.changeLayoutSettings),S=core.useShopStore(e=>e.changeCreateThemeSectionCount),b=core.useShopStore(e=>e.changeShopPlan),E=core.useModalStore(e=>e.clearModal),L=react.useMemo(()=>genFonts.getFontsFromDataBuilder(l),[l]),C=(e,t)=>{if(!t?.length){let t=document.querySelectorAll(`.${e}`);t.forEach(e=>{e.remove()});return}let o=document.querySelectorAll(`.${e}`);for(let r of(o.forEach(e=>{let o=e.getAttribute("data-font"),r=e.getAttribute("data-font-variant");if(o&&r){let a=t.find(e=>e.family==o&&e.variants.includes(r));a||e.remove()}else e.remove()}),t))if("custom"!==r.type&&r.variants?.length)for(let t of r.variants){let o=JSON.parse(JSON.stringify(r));o.variants=[t];let a=o.family,n=googleFonts.createFontUrl([o]);if(n){let o=document.querySelector(`.${e}[data-font="${a}"][data-font-variant="${t}"]`);if(o)continue;{let o=document.createElement("link");o.className=e,o.dataset.font=a,o.dataset.fontVariant=t,o.href=n,o.rel="stylesheet",document.head.appendChild(o)}}}},k=react.useCallback(()=>{e(/query\//,{revalidate:!0})},[e]),P=react.useCallback(e=>{let r=e.detail;o({url:r.shopHandle?getStorefrontApi.getStorefrontApi(r.shopHandle,t):void 0,token:r.shopToken})},[o,t]),q=react.useCallback(e=>{let t=e.detail;try{if(t.data){let e=genCss.genCSS(t.data,t.mobileOnly),o=Object.entries(t.data?.font).map(([,e])=>e).map(e=>{if("custom"==e.type){let t=shopifyCdnWithGoogleFonts.shopifyCdnWithGoogleFonts.find(t=>t.family==e.family);if(t)return t}return e}),r=document.getElementById(globalStyleId);if(C("google-font-builder",o),r)r.innerHTML=e;else{let t=document.createElement("style");t.id=globalStyleId,t.innerHTML=e,document.head.appendChild(t)}}}catch{}},[]),B=react.useCallback(e=>{E();try{let t=e.detail;t.data&&("flat"===t.type?s(t.data):d(t.data))}catch{}},[s,d,E]),I=react.useCallback(e=>{try{let t=e.detail;t.entity&&(p({data:t.entity,id:t.id,position:t.position,type:t.type??"component"}),t?.type!=="section"||Array.isArray(t.entity)||m(t.entity.uid,t.entity))}catch{}},[p,m]),j=react.useCallback(e=>{try{let t=e.detail;t.uid&&t.propName&&u({id:t.uid,key:t.propName,data:t.propValue,group:t.group})}catch{}},[u]),x=react.useCallback(e=>{try{let t=e.detail;t.uid&&c(t.uid,t.data,t.group)}catch{}},[c]),A=react.useCallback(e=>{try{let t=e.detail;t.to&&t.uid&&v(t.uid,t.to,Number(t.position)??0)}catch{}},[v]),F=react.useCallback(e=>{try{let t=e.detail;t.uid&&w(t.uid)}catch{}},[w]),M=react.useCallback(e=>{let t=e.detail;try{t.data&&f(t.data)}catch{}},[f]),N=react.useCallback(e=>{let t=e.detail;t&&h(t)},[h]),T=react.useCallback(e=>{let t=e.detail;t&&S(t)},[S]),$=react.useCallback(e=>{let t=e.detail;t&&b(t)},[b]),O=react.useCallback(e=>{let t=e.detail;t&&r(t)},[r]),H=react.useCallback(e=>{let t=e.detail;t&&i(t)},[i]);react.useEffect(()=>{L&&C("google-font-element",L)},[L]);let D=react.useCallback(e=>{let t=e.detail;t.uid&&y(t.uid,t.name||"")},[y]),G=react.useCallback(e=>{let t=e.detail;t.uid&&g(t.uid,t.value||"",t.attr||"")},[g]),W=react.useCallback(e=>{let t=e.detail;t?.length&&a(t)},[a]),J=react.useCallback(e=>{let t=e.detail;t&&n(t)},[n]);return react.useEffect(()=>{L&&C("google-font-element",L)},[L]),react.useEffect(()=>(window.addEventListener("update-shop-info",P),window.addEventListener("revalidate-query",k),window.addEventListener("init-builder",B),window.addEventListener("add-entity",I),window.addEventListener("remove-entity",F),window.addEventListener("move-entity",A),window.addEventListener("force-update-entity-props",x),window.addEventListener("update-entity-prop",j),window.addEventListener("set-global-style",q),window.addEventListener("update-global-swatches-data",M),window.addEventListener("on-off-header-footer",N),window.addEventListener("update-create-theme-section-count",T),window.addEventListener("update-shop-plan",$),window.addEventListener("set-dynamic-product",O),window.addEventListener("set-dynamic-collection",H),window.addEventListener("update-item-name",D),window.addEventListener("update-item-attribute",G),window.addEventListener("set-product-offer",W),window.addEventListener("update-sale-page-product-id",J),()=>{window.removeEventListener("update-shop-info",P),window.removeEventListener("revalidate-query",k),window.removeEventListener("init-builder",B),window.removeEventListener("add-entity",I),window.removeEventListener("remove-entity",F),window.removeEventListener("move-entity",A),window.removeEventListener("update-entity-prop",j),window.removeEventListener("set-global-style",q),window.removeEventListener("update-global-swatches-data",M),window.removeEventListener("on-off-header-footer",N),window.removeEventListener("update-create-theme-section-count",T),window.removeEventListener("update-shop-plan",$),window.removeEventListener("set-dynamic-product",O),window.removeEventListener("set-dynamic-collection",H),window.removeEventListener("update-item-name",D),window.removeEventListener("update-item-attribute",G),window.removeEventListener("set-product-offer",W),window.removeEventListener("update-sale-page-product-id",J)}),[I,$,x,j,B,A,F,q,M,k,P,N,T,O,H,D,G,W,J]),jsxRuntime.jsx("div",{className:"toolbox"})};var Toolbox$1=react.memo(Toolbox);exports.default=Toolbox$1;
@@ -1,110 +1 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var jsxRuntime = require('react/jsx-runtime');
6
- var react = require('react');
7
-
8
- const Onboarding = ({ enable, position, onCloseOnboarding })=>{
9
- const closeOnboarding = ()=>{
10
- onCloseOnboarding();
11
- };
12
- const videoSrc = 'https://ucarecdn.com/de5fd2eb-4525-45a7-ad13-53960dac225e/';
13
- const Video = ()=>{
14
- return /*#__PURE__*/ jsxRuntime.jsxs("video", {
15
- width: "100%",
16
- className: "gp-w-full",
17
- loop: true,
18
- muted: true,
19
- autoPlay: true,
20
- playsInline: true,
21
- children: [
22
- /*#__PURE__*/ jsxRuntime.jsx("source", {
23
- src: videoSrc,
24
- type: "video/mp4"
25
- }),
26
- "Sorry, your browser doesn‘t support embedded videos."
27
- ]
28
- });
29
- };
30
- const MemoVideo = /*#__PURE__*/ react.memo(Video);
31
- return /*#__PURE__*/ jsxRuntime.jsx("div", {
32
- "data-toolbar-onboarding": true,
33
- "data-toolbar-onboarding-position": position,
34
- children: enable && /*#__PURE__*/ jsxRuntime.jsxs(jsxRuntime.Fragment, {
35
- children: [
36
- /*#__PURE__*/ jsxRuntime.jsx("span", {
37
- "data-icon": true,
38
- "data-position": position,
39
- children: position === 'bottom' ? /*#__PURE__*/ jsxRuntime.jsx("svg", {
40
- width: "8",
41
- height: "4",
42
- viewBox: "0 0 8 4",
43
- fill: "none",
44
- xmlns: "http://www.w3.org/2000/svg",
45
- children: /*#__PURE__*/ jsxRuntime.jsx("path", {
46
- d: "M-1.74846e-07 4L4 -1.74846e-07L8 4L-1.74846e-07 4Z",
47
- fill: "white"
48
- })
49
- }) : /*#__PURE__*/ jsxRuntime.jsx("svg", {
50
- width: "8",
51
- height: "4",
52
- viewBox: "0 0 8 4",
53
- fill: "none",
54
- xmlns: "http://www.w3.org/2000/svg",
55
- children: /*#__PURE__*/ jsxRuntime.jsx("path", {
56
- d: "M8 3.33818e-07L4 4L4.76995e-08 7.15256e-07L8 3.33818e-07Z",
57
- fill: "white"
58
- })
59
- })
60
- }),
61
- /*#__PURE__*/ jsxRuntime.jsxs("div", {
62
- "data-onboarding-wrapper": true,
63
- children: [
64
- /*#__PURE__*/ jsxRuntime.jsx("button", {
65
- "data-close": true,
66
- type: "button",
67
- onClick: closeOnboarding,
68
- children: /*#__PURE__*/ jsxRuntime.jsxs("svg", {
69
- width: "32",
70
- height: "32",
71
- viewBox: "0 0 32 32",
72
- fill: "none",
73
- xmlns: "http://www.w3.org/2000/svg",
74
- children: [
75
- /*#__PURE__*/ jsxRuntime.jsx("path", {
76
- fillRule: "evenodd",
77
- clipRule: "evenodd",
78
- d: "M10.6464 10.6464C10.8417 10.4512 11.1583 10.4512 11.3536 10.6464L21.3536 20.6464C21.5488 20.8417 21.5488 21.1583 21.3536 21.3536C21.1583 21.5488 20.8417 21.5488 20.6464 21.3536L10.6464 11.3536C10.4512 11.1583 10.4512 10.8417 10.6464 10.6464Z",
79
- fill: "#212121"
80
- }),
81
- /*#__PURE__*/ jsxRuntime.jsx("path", {
82
- fillRule: "evenodd",
83
- clipRule: "evenodd",
84
- d: "M21.3536 10.6464C21.5488 10.8417 21.5488 11.1583 21.3536 11.3536L11.3536 21.3536C11.1583 21.5488 10.8417 21.5488 10.6464 21.3536C10.4512 21.1583 10.4512 20.8417 10.6464 20.6464L20.6464 10.6464C20.8417 10.4512 21.1583 10.4512 21.3536 10.6464Z",
85
- fill: "#212121"
86
- })
87
- ]
88
- })
89
- }),
90
- /*#__PURE__*/ jsxRuntime.jsx(MemoVideo, {}),
91
- /*#__PURE__*/ jsxRuntime.jsxs("div", {
92
- "data-content": true,
93
- children: [
94
- /*#__PURE__*/ jsxRuntime.jsx("h3", {
95
- children: "New way to select parent element"
96
- }),
97
- /*#__PURE__*/ jsxRuntime.jsx("p", {
98
- children: "Select parent from here in case you can‘t find yours at times."
99
- })
100
- ]
101
- })
102
- ]
103
- })
104
- ]
105
- })
106
- });
107
- };
108
- var Onboarding$1 = /*#__PURE__*/ react.memo(Onboarding);
109
-
110
- exports.default = Onboarding$1;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var jsxRuntime=require("react/jsx-runtime"),react=require("react");const Onboarding=({enable:e,position:t,onCloseOnboarding:i})=>{let n=()=>{i()},s=()=>jsxRuntime.jsxs("video",{width:"100%",className:"gp-w-full",loop:!0,muted:!0,autoPlay:!0,playsInline:!0,children:[jsxRuntime.jsx("source",{src:"https://ucarecdn.com/de5fd2eb-4525-45a7-ad13-53960dac225e/",type:"video/mp4"}),"Sorry, your browser doesn‘t support embedded videos."]}),o=react.memo(s);return jsxRuntime.jsx("div",{"data-toolbar-onboarding":!0,"data-toolbar-onboarding-position":t,children:e&&jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx("span",{"data-icon":!0,"data-position":t,children:"bottom"===t?jsxRuntime.jsx("svg",{width:"8",height:"4",viewBox:"0 0 8 4",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:jsxRuntime.jsx("path",{d:"M-1.74846e-07 4L4 -1.74846e-07L8 4L-1.74846e-07 4Z",fill:"white"})}):jsxRuntime.jsx("svg",{width:"8",height:"4",viewBox:"0 0 8 4",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:jsxRuntime.jsx("path",{d:"M8 3.33818e-07L4 4L4.76995e-08 7.15256e-07L8 3.33818e-07Z",fill:"white"})})}),jsxRuntime.jsxs("div",{"data-onboarding-wrapper":!0,children:[jsxRuntime.jsx("button",{"data-close":!0,type:"button",onClick:n,children:jsxRuntime.jsxs("svg",{width:"32",height:"32",viewBox:"0 0 32 32",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[jsxRuntime.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M10.6464 10.6464C10.8417 10.4512 11.1583 10.4512 11.3536 10.6464L21.3536 20.6464C21.5488 20.8417 21.5488 21.1583 21.3536 21.3536C21.1583 21.5488 20.8417 21.5488 20.6464 21.3536L10.6464 11.3536C10.4512 11.1583 10.4512 10.8417 10.6464 10.6464Z",fill:"#212121"}),jsxRuntime.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M21.3536 10.6464C21.5488 10.8417 21.5488 11.1583 21.3536 11.3536L11.3536 21.3536C11.1583 21.5488 10.8417 21.5488 10.6464 21.3536C10.4512 21.1583 10.4512 20.8417 10.6464 20.6464L20.6464 10.6464C20.8417 10.4512 21.1583 10.4512 21.3536 10.6464Z",fill:"#212121"})]})}),jsxRuntime.jsx(o,{}),jsxRuntime.jsxs("div",{"data-content":!0,children:[jsxRuntime.jsx("h3",{children:"New way to select parent element"}),jsxRuntime.jsx("p",{children:"Select parent from here in case you can‘t find yours at times."})]})]})]})})};var Onboarding$1=react.memo(Onboarding);exports.default=Onboarding$1;