@designcrowd/library.brand-page 5.18.1-undo-33 → 5.18.1

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/lib/src/{CreatedOnBrandCrowd-de-de-986OpXvU.js → CreatedOnBrandCrowd-de-de-DFpjIAUv.js} +1 -1
  2. package/lib/src/{CreatedOnBrandCrowd-en-us-CTZuZ366.js → CreatedOnBrandCrowd-en-us-BapIT2xO.js} +1 -1
  3. package/lib/src/{CreatedOnBrandCrowd-es-es-CHrTgX9-.js → CreatedOnBrandCrowd-es-es-DaSf3Dt6.js} +1 -1
  4. package/lib/src/{CreatedOnBrandCrowd-fr-fr-xJAvxQ-x.js → CreatedOnBrandCrowd-fr-ca-Cvgei7yn.js} +1 -1
  5. package/lib/src/{CreatedOnBrandCrowd-fr-ca-xJAvxQ-x.js → CreatedOnBrandCrowd-fr-fr-Cvgei7yn.js} +1 -1
  6. package/lib/src/{CreatedOnBrandCrowd-pt-pt-lpRIGIcs.js → CreatedOnBrandCrowd-pt-br-Duxd2NmR.js} +1 -1
  7. package/lib/src/{CreatedOnBrandCrowd-pt-br-lpRIGIcs.js → CreatedOnBrandCrowd-pt-pt-Duxd2NmR.js} +1 -1
  8. package/lib/src/{CreatedOnDcom-de-de-CZuim3ee.js → CreatedOnDcom-de-de-DXwNbruv.js} +1 -1
  9. package/lib/src/{CreatedOnDcom-en-us-DG4I5f4s.js → CreatedOnDcom-en-us-CkNGwN-p.js} +1 -1
  10. package/lib/src/{CreatedOnDcom-es-es-Hpieh1wX.js → CreatedOnDcom-es-es-Csyf5yhI.js} +1 -1
  11. package/lib/src/{CreatedOnDcom-fr-ca-DWr5P-df.js → CreatedOnDcom-fr-ca-GOIUmIdy.js} +1 -1
  12. package/lib/src/{CreatedOnDcom-fr-fr-CHfOyS6V.js → CreatedOnDcom-fr-fr-DF63cL2a.js} +1 -1
  13. package/lib/src/{CreatedOnDcom-pt-br-bQwCCDDI.js → CreatedOnDcom-pt-br-Ct6FWj7D.js} +1 -1
  14. package/lib/src/{CreatedOnDcom-pt-pt-bo-i_h0N.js → CreatedOnDcom-pt-pt-D22yb8Ci.js} +1 -1
  15. package/lib/src/brand-page-maker/components/action-bar/ActionBar.mixin.d.ts +2 -7
  16. package/lib/src/brand-page-maker/components/brand-page-maker/BrandPageMaker.mixin.d.ts +2 -7
  17. package/lib/src/brand-page-maker/components/brand-page-maker/BrandPageMaker.mixin.js +0 -10
  18. package/lib/src/brand-page-maker/components/brand-page-maker/BrandPageMakerTemplateSettings.mixin.d.ts +2 -7
  19. package/lib/src/brand-page-maker/components/brand-page-maker/__fixtures__/brand-page-examples.js +0 -1
  20. package/lib/src/brand-page-maker/components/brandpage-maker-page/BrandPageMakerPage.mixin.d.ts +2 -23
  21. package/lib/src/brand-page-maker/components/brandpage-settings/ReplaceImageSettingsForBrandPageSettings.mixin.d.ts +2 -7
  22. package/lib/src/brand-page-maker/components/quick-link-bar/QuickLinkBar.mixin.d.ts +0 -3
  23. package/lib/src/brand-page-maker/components/quick-link-bar/QuickLinkBar.mixin.js +0 -11
  24. package/lib/src/brand-page-maker/components/seo-settings/SeoPageSettings.mixin.d.ts +2 -7
  25. package/lib/src/brand-page-maker/components/seo-settings/UrlSettings.mixin.d.ts +2 -7
  26. package/lib/src/brand-page-maker/components/social-share/SocialShare.mixin.d.ts +2 -7
  27. package/lib/src/brand-page-maker/components/template-preview/TemplatePreview.mixin.d.ts +2 -7
  28. package/lib/src/brand-page-maker/composables/ai-chat/useAiWebsiteBuilderChat.js +0 -9
  29. package/lib/src/brand-page-maker/composables/rich-text-editor/useRichTextEditor.js +1 -20
  30. package/lib/src/brand-page-maker/composables/useEventTracker.d.ts +0 -20
  31. package/lib/src/brand-page-maker/composables/useEventTracker.js +0 -17
  32. package/lib/src/brand-page-maker/stores/brandpage-maker/brandpage-maker-store.d.ts +2 -41
  33. package/lib/src/brand-page-maker/stores/brandpage-maker/brandpage-maker-store.js +5 -301
  34. package/lib/src/brand-page-maker/stores/logo-store/logo-store.d.ts +0 -1
  35. package/lib/src/brand-page-maker/stores/user/user-store.js +0 -1
  36. package/lib/src/bundled-translations-CnareLWC.js +175 -0
  37. package/lib/src/bundles/bundled-translations.json +1 -3
  38. package/lib/src/constants/ui.d.ts +0 -1
  39. package/lib/src/css/library.brand-page-brandCrowd.min.css +15 -20
  40. package/lib/src/css/library.brand-page-brandPage.min.css +16 -20
  41. package/lib/src/css/library.brand-page-designCom.min.css +15 -20
  42. package/lib/src/css/library.brand-page-preview.min.css +15 -20
  43. package/lib/src/index.mjs +1 -1
  44. package/lib/src/{lib-DNHBgZyy.js → lib-_iwoSD1Z.js} +34559 -35149
  45. package/lib/src/shared/content-settings/components/content-settings/ContentSettings.mixin.d.ts +2 -87
  46. package/lib/src/shared/content-settings/components/content-settings/ContentSettings.mixin.js +0 -5
  47. package/lib/src/shared/content-settings/components/content-settings/ContentSettings.stories.js +0 -1
  48. package/lib/src/shared/content-settings/components/content-settings/ReplaceImageSettingsForContent.mixin.d.ts +2 -23
  49. package/lib/src/shared/content-settings/components/content-settings-item/ContentSettingsItem.mixin.d.ts +0 -16
  50. package/lib/src/shared/content-settings/components/content-settings-item/ContentSettingsItemField.mixin.d.ts +2 -7
  51. package/lib/src/shared/content-settings/components/draggable-item-list/DraggableItemList.mixin.d.ts +0 -3
  52. package/lib/src/shared/content-settings/components/draggable-item-list/DraggableItemList.mixin.js +2 -19
  53. package/lib/src/shared/content-settings/components/form-fields-field/FormFieldsField.mixin.js +8 -18
  54. package/lib/src/shared/content-settings/components/payment-config-field/PaymentConfigField.mixin.d.ts +0 -64
  55. package/lib/src/shared/content-settings/components/payment-config-field/PaymentConfigField.mixin.js +0 -6
  56. package/lib/src/shared/logo-settings/components/EditLogoSettings.mixin.d.ts +0 -19
  57. package/lib/src/shared/logo-settings/components/EditLogoSettings.mixin.js +0 -11
  58. package/lib/src/shared/logo-settings/components/LogoSettings.mixin.d.ts +2 -10
  59. package/lib/src/shared/logo-settings/store/editable-logo-store.d.ts +1 -5
  60. package/lib/src/shared/logo-settings/store/editable-logo-store.js +0 -31
  61. package/lib/src/shared/page-settings/components/page-settings/PageSettings.mixin.d.ts +2 -24
  62. package/lib/src/shared/page-settings/components/page-settings-section-styles/PageSettingsSectionStyles.mixin.d.ts +2 -10
  63. package/lib/src/shared/publish-brand-page-with-state/PublishBrandPageModalWithState.mixin.d.ts +2 -23
  64. package/lib/src/shared/side-bar/components/SideBarTabButton.mixin.d.ts +0 -16
  65. package/lib/src/shared/style-settings/components/StyleSettings.mixin.d.ts +2 -23
  66. package/lib/src/shared/template-settings/components/TemplatesSettings.mixin.d.ts +0 -16
  67. package/package.json +1 -1
  68. package/src/brand-page-maker/components/brand-page-maker/BrandPageMaker.mixin.ts +0 -11
  69. package/src/brand-page-maker/components/brand-page-maker/BrandPageMaker.vue +3 -2
  70. package/src/brand-page-maker/components/brand-page-maker/__fixtures__/brand-page-examples.ts +0 -1
  71. package/src/brand-page-maker/components/cookie-collection/CookieSettings.vue +17 -18
  72. package/src/brand-page-maker/components/quick-link-bar/QuickLinkBar.mixin.ts +0 -13
  73. package/src/brand-page-maker/components/quick-link-bar/QuickLinkBar.vue +3 -26
  74. package/src/brand-page-maker/components/quick-link-bar/i18n/quick-link-bar.json +1 -3
  75. package/src/brand-page-maker/components/save-contact/SaveContact.vue +19 -12
  76. package/src/brand-page-maker/composables/ai-chat/useAiWebsiteBuilderChat.ts +0 -10
  77. package/src/brand-page-maker/composables/rich-text-editor/useRichTextEditor.ts +1 -24
  78. package/src/brand-page-maker/composables/useEventTracker.ts +0 -29
  79. package/src/brand-page-maker/stores/brandpage-maker/brandpage-maker-store.test.ts +0 -335
  80. package/src/brand-page-maker/stores/brandpage-maker/brandpage-maker-store.ts +4 -364
  81. package/src/brand-page-maker/stores/logo-store/logo-store.ts +0 -5
  82. package/src/brand-page-maker/stores/user/user-store.ts +0 -1
  83. package/src/bundles/bundled-translations.json +1 -3
  84. package/src/constants/ui.ts +0 -1
  85. package/src/shared/content-settings/components/content-settings/ContentSettings.mixin.ts +0 -5
  86. package/src/shared/content-settings/components/content-settings/ContentSettings.stories.ts +0 -1
  87. package/src/shared/content-settings/components/draggable-item-list/DraggableItemList.mixin.ts +2 -19
  88. package/src/shared/content-settings/components/draggable-item-list/DraggableItemList.vue +1 -1
  89. package/src/shared/content-settings/components/form-fields-field/FormFieldsField.mixin.ts +10 -26
  90. package/src/shared/content-settings/components/logo-selection-field/LogoSelection.vue +48 -63
  91. package/src/shared/content-settings/components/page-dropdown-field/PageDropdownField.vue +0 -4
  92. package/src/shared/content-settings/components/payment-config-field/PaymentConfigField.mixin.ts +0 -7
  93. package/src/shared/content-settings/components/text-field/TextField.vue +0 -1
  94. package/src/shared/content-settings/components/text-image-field/TextImageField.vue +4 -33
  95. package/src/shared/logo-settings/components/EditLogoSettings.mixin.ts +0 -11
  96. package/src/shared/logo-settings/store/editable-logo-store.ts +1 -42
  97. package/lib/src/brand-page-maker/composables/useUndoRedoFlag.d.ts +0 -16
  98. package/lib/src/brand-page-maker/composables/useUndoRedoFlag.js +0 -22
  99. package/lib/src/brand-page-maker/stores/history/history-store.d.ts +0 -83
  100. package/lib/src/brand-page-maker/stores/history/history-store.js +0 -459
  101. package/lib/src/bundled-translations-DQVbIb4i.js +0 -175
  102. package/lib/src/metadata-builder/builders/reorder-pages-builder.d.ts +0 -13
  103. package/lib/src/metadata-builder/builders/reorder-pages-builder.js +0 -49
  104. package/src/brand-page-maker/components/quick-link-bar/RedoButton.vue +0 -66
  105. package/src/brand-page-maker/components/quick-link-bar/UndoButton.vue +0 -66
  106. package/src/brand-page-maker/components/quick-link-bar/undo-redo-buttons.test.ts +0 -116
  107. package/src/brand-page-maker/composables/useUndoRedoFlag.ts +0 -26
  108. package/src/brand-page-maker/stores/history/history-store.test.ts +0 -1088
  109. package/src/brand-page-maker/stores/history/history-store.ts +0 -621
  110. package/src/metadata-builder/builders/reorder-pages-builder.ts +0 -80
@@ -74,7 +74,6 @@ export const useUiEditableLogoStore = defineStore('uiEditableLogo', {
74
74
  },
75
75
  makerFonts: [],
76
76
  isLogoDraftSaved: false,
77
- variationsByDraftToken: {},
78
77
  }),
79
78
  actions: {
80
79
  async setStateAsync(payload) {
@@ -218,17 +217,6 @@ export const useUiEditableLogoStore = defineStore('uiEditableLogo', {
218
217
  async updateEditableLogoImageUrlAsync(defaultPrimaryText, overrideLogoVariation, layout) {
219
218
  const tasks = this.editableLogoVariations.map((x) => this.updateEditableLogoImageByVariationAsync(x, defaultPrimaryText, layout));
220
219
  await Promise.all(tasks);
221
- this.stampLogoBase64IntoBrandPageData(overrideLogoVariation);
222
- // Cache per draft token so BYO undo can restore without re-rendering.
223
- if (this.logoDraftToken) {
224
- this.variationsByDraftToken[this.logoDraftToken] =
225
- this.editableLogoVariations.map((v) => ({ ...v }));
226
- }
227
- },
228
- // Stamp editableLogoVariations[*].base64 across header/footer + every
229
- // LogoContent. Called by the live edit path post-render, and by
230
- // undo/redo to repopulate the stripped logoImageBase64Url fields.
231
- stampLogoBase64IntoBrandPageData(overrideLogoVariation) {
232
220
  const pageSettingStore = useUiPageSettingsStore();
233
221
  [PAGE_SECTIONS.header, PAGE_SECTIONS.footer].forEach((section) => {
234
222
  [VIEWPORTS.desktop, VIEWPORTS.mobile].forEach((viewport) => {
@@ -255,15 +243,6 @@ export const useUiEditableLogoStore = defineStore('uiEditableLogo', {
255
243
  });
256
244
  });
257
245
  },
258
- // Restore variations grid for a draft token from the per-token cache.
259
- // Returns true on cache hit.
260
- restoreVariationsForDraftToken(logoDraftToken) {
261
- const cached = this.variationsByDraftToken[logoDraftToken];
262
- if (!cached)
263
- return false;
264
- this.editableLogoVariations = cached.map((v) => ({ ...v }));
265
- return true;
266
- },
267
246
  async updateMetadataAsync(defaultPrimaryText, resetLogoTemplateMetadata = false, layout) {
268
247
  const result = await this.postEditableLogoRequestAsync({
269
248
  returnJson: true,
@@ -306,13 +285,6 @@ export const useUiEditableLogoStore = defineStore('uiEditableLogo', {
306
285
  const logoDraft = logoStore.getLogoDraftAssetByToken(this.logoDraftToken);
307
286
  if (logoDraft) {
308
287
  logoDraft.metadata = metadata;
309
- // Refresh the template-asset stamp in case the active asset has
310
- // changed since this draft was first registered (e.g. successive
311
- // BYO uploads that share an existing draft token would otherwise
312
- // keep pointing at an older template).
313
- if (logoStore.logoTemplateAsset) {
314
- logoDraft.templateAsset = { ...logoStore.logoTemplateAsset };
315
- }
316
288
  }
317
289
  else {
318
290
  logoStore.addLogoDraftAsset({
@@ -321,9 +293,6 @@ export const useUiEditableLogoStore = defineStore('uiEditableLogo', {
321
293
  metadata,
322
294
  tick: Date.now(),
323
295
  isByo: logoStore.logoTemplateAsset?.isByo || false,
324
- templateAsset: logoStore.logoTemplateAsset
325
- ? { ...logoStore.logoTemplateAsset }
326
- : undefined,
327
296
  },
328
297
  });
329
298
  }
@@ -3124,7 +3124,6 @@ declare const _default: import("vue").DefineComponent<{}, {
3124
3124
  canUseGettyVideos: boolean;
3125
3125
  canUseGoogleAdsense: boolean;
3126
3126
  googleAdsenseEnabled: boolean;
3127
- canUseUndoRedo: boolean;
3128
3127
  }>;
3129
3128
  isAdmin: import("vue").ComputedRef<boolean>;
3130
3129
  isBrandSite: import("vue").ComputedRef<boolean>;
@@ -3836,21 +3835,16 @@ declare const _default: import("vue").DefineComponent<{}, {
3836
3835
  hideChangeTemplateConfirmModal(): void;
3837
3836
  onBackgroundChanged(): void;
3838
3837
  onChangeTemplateConfirmModalCancel(): void;
3839
- onChangeTemplateConfirmModalConfirm(): Promise<void>;
3838
+ onChangeTemplateConfirmModalConfirm(): void;
3840
3839
  onContentChanged(): void;
3841
3840
  onStyleChanged(): void;
3842
- onTemplateSelected(payload: import("@brand-page-maker/stores").OnTemplateSelectedPayload): Promise<void>;
3841
+ onTemplateSelected(payload: import("@brand-page-maker/stores").OnTemplateSelectedPayload): void;
3843
3842
  setSelectedTabName(payload: any): void;
3844
3843
  showNextNotificationMessage(): Promise<void>;
3845
3844
  updateContent<TContent extends Content, P extends {
3846
3845
  id: string;
3847
3846
  content: TContent;
3848
3847
  }>(payload: P): Promise<void>;
3849
- _captureTemplateSwitchIfEnabled(): void;
3850
- applyHistorySnapshot(snapshot: import("@brand-page").BrandPageModel, activePageId?: string | undefined, logoEditsStr?: string | undefined): Promise<void>;
3851
- _syncLogoSettingsFromSnapshot(snapshot: import("@brand-page").BrandPageModel, logoEditsStr?: string | undefined): Promise<void>;
3852
- _navigateToActivePage(activePageId?: string | undefined): void;
3853
- _fallbackSidebarIfSelectedContentMissing(snapshot: import("@brand-page").BrandPageModel): void;
3854
3848
  export(): import("@brand-page").BrandPageModel;
3855
3849
  setBrandPageType({ brandPageType }: {
3856
3850
  brandPageType: "default" | "brandSite" | "brandContact";
@@ -4793,22 +4787,6 @@ declare const _default: import("vue").DefineComponent<{}, {
4793
4787
  onDraggingEnd: (ev?: any, routeId?: string, previousParentRouteId?: string) => void;
4794
4788
  eventTracker: {
4795
4789
  sendShippingToggleEvent: (isEnabled: boolean) => void;
4796
- sendUndoEvent: (props: {
4797
- entries_count: number;
4798
- actor: string | undefined;
4799
- }) => void;
4800
- sendRedoEvent: (props: {
4801
- entries_count: number;
4802
- actor: string | undefined;
4803
- }) => void;
4804
- sendHistoryCappedEvent: (props: {
4805
- entries_count: number;
4806
- size_bytes: number;
4807
- }) => void;
4808
- sendHistoryOversizedEvent: (props: {
4809
- attempted_bytes: number;
4810
- source: string;
4811
- }) => void;
4812
4790
  sendSaveContactEvent: () => void;
4813
4791
  sendStartForFreeEvent: () => void;
4814
4792
  sendFooterLinkClickEvent: (linkType: "watermark_logo" | "create_your_website") => void;
@@ -4269,7 +4269,6 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
4269
4269
  logoTemplateMetadata: string;
4270
4270
  isLogoDraftSaved: boolean;
4271
4271
  isTextOnlyLogo: boolean;
4272
- variationsByDraftToken: Record<string, import("@shared/logo-settings/store").EditableLogoVariation[]>;
4273
4272
  } & import("pinia").PiniaCustomStateProperties<import("@shared/logo-settings/store").EditableLogoState>) => () => string | undefined;
4274
4273
  }, {
4275
4274
  setStateAsync(payload: {
@@ -4287,8 +4286,6 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
4287
4286
  getEditableLogoVariationByVariationId(id: number): any;
4288
4287
  getEditableLogoVariationByBase64(base64: string): any;
4289
4288
  updateEditableLogoImageUrlAsync(defaultPrimaryText?: string | undefined, overrideLogoVariation?: number | undefined, layout?: string | undefined): Promise<void>;
4290
- stampLogoBase64IntoBrandPageData(overrideLogoVariation?: number | undefined): void;
4291
- restoreVariationsForDraftToken(logoDraftToken: string): boolean;
4292
4289
  updateMetadataAsync(defaultPrimaryText?: string | undefined, resetLogoTemplateMetadata?: boolean, layout?: string | undefined): Promise<void>;
4293
4290
  updateEditableLogoImageByVariationAsync(editableLogoVariation: import("@shared/logo-settings/store").EditableLogoVariation, defaultPrimaryText?: string | undefined, layout?: string | undefined): Promise<import("../../../../clients/fabric-render-client").ModifyLogoDataResponse | null>;
4294
4291
  getDraftMetadata(logoDraftToken: string): string | undefined;
@@ -4396,21 +4393,16 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
4396
4393
  hideChangeTemplateConfirmModal(): void;
4397
4394
  onBackgroundChanged(): void;
4398
4395
  onChangeTemplateConfirmModalCancel(): void;
4399
- onChangeTemplateConfirmModalConfirm(): Promise<void>;
4396
+ onChangeTemplateConfirmModalConfirm(): void;
4400
4397
  onContentChanged(): void;
4401
4398
  onStyleChanged(): void;
4402
- onTemplateSelected(payload: import("@brand-page-maker/stores").OnTemplateSelectedPayload): Promise<void>;
4399
+ onTemplateSelected(payload: import("@brand-page-maker/stores").OnTemplateSelectedPayload): void;
4403
4400
  setSelectedTabName(payload: any): void;
4404
4401
  showNextNotificationMessage(): Promise<void>;
4405
4402
  updateContent<TContent extends import("@brand-page").Content, P extends {
4406
4403
  id: string;
4407
4404
  content: TContent;
4408
4405
  }>(payload: P): Promise<void>;
4409
- _captureTemplateSwitchIfEnabled(): void;
4410
- applyHistorySnapshot(snapshot: import("@brand-page").BrandPageModel, activePageId?: string | undefined, logoEditsStr?: string | undefined): Promise<void>;
4411
- _syncLogoSettingsFromSnapshot(snapshot: import("@brand-page").BrandPageModel, logoEditsStr?: string | undefined): Promise<void>;
4412
- _navigateToActivePage(activePageId?: string | undefined): void;
4413
- _fallbackSidebarIfSelectedContentMissing(snapshot: import("@brand-page").BrandPageModel): void;
4414
4406
  export(): import("@brand-page").BrandPageModel;
4415
4407
  setBrandPageType({ brandPageType }: {
4416
4408
  brandPageType: "default" | "brandSite" | "brandContact";
@@ -173,21 +173,16 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
173
173
  hideChangeTemplateConfirmModal(): void;
174
174
  onBackgroundChanged(): void;
175
175
  onChangeTemplateConfirmModalCancel(): void;
176
- onChangeTemplateConfirmModalConfirm(): Promise<void>;
176
+ onChangeTemplateConfirmModalConfirm(): void;
177
177
  onContentChanged(): void;
178
178
  onStyleChanged(): void;
179
- onTemplateSelected(payload: import("@brand-page-maker/stores").OnTemplateSelectedPayload): Promise<void>;
179
+ onTemplateSelected(payload: import("@brand-page-maker/stores").OnTemplateSelectedPayload): void;
180
180
  setSelectedTabName(payload: any): void;
181
181
  showNextNotificationMessage(): Promise<void>;
182
182
  updateContent<TContent extends import("@brand-page/models").Content, P extends {
183
183
  id: string;
184
184
  content: TContent;
185
185
  }>(payload: P): Promise<void>;
186
- _captureTemplateSwitchIfEnabled(): void;
187
- applyHistorySnapshot(snapshot: import("@brand-page/models").BrandPageModel, activePageId?: string | undefined, logoEditsStr?: string | undefined): Promise<void>;
188
- _syncLogoSettingsFromSnapshot(snapshot: import("@brand-page/models").BrandPageModel, logoEditsStr?: string | undefined): Promise<void>;
189
- _navigateToActivePage(activePageId?: string | undefined): void;
190
- _fallbackSidebarIfSelectedContentMissing(snapshot: import("@brand-page/models").BrandPageModel): void;
191
186
  export(): import("@brand-page/models").BrandPageModel;
192
187
  setBrandPageType({ brandPageType }: {
193
188
  brandPageType: "default" | "brandSite" | "brandContact";
@@ -484,22 +479,6 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
484
479
  }>;
485
480
  eventTracker: {
486
481
  sendShippingToggleEvent: (isEnabled: boolean) => void;
487
- sendUndoEvent: (props: {
488
- entries_count: number;
489
- actor: string | undefined;
490
- }) => void;
491
- sendRedoEvent: (props: {
492
- entries_count: number;
493
- actor: string | undefined;
494
- }) => void;
495
- sendHistoryCappedEvent: (props: {
496
- entries_count: number;
497
- size_bytes: number;
498
- }) => void;
499
- sendHistoryOversizedEvent: (props: {
500
- attempted_bytes: number;
501
- source: string;
502
- }) => void;
503
482
  sendSaveContactEvent: () => void;
504
483
  sendStartForFreeEvent: () => void;
505
484
  sendFooterLinkClickEvent: (linkType: "watermark_logo" | "create_your_website") => void;
@@ -17,22 +17,6 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
17
17
  isDesignCom: import("vue").ComputedRef<boolean>;
18
18
  eventTracker: {
19
19
  sendShippingToggleEvent: (isEnabled: boolean) => void;
20
- sendUndoEvent: (props: {
21
- entries_count: number;
22
- actor: string | undefined;
23
- }) => void;
24
- sendRedoEvent: (props: {
25
- entries_count: number;
26
- actor: string | undefined;
27
- }) => void;
28
- sendHistoryCappedEvent: (props: {
29
- entries_count: number;
30
- size_bytes: number;
31
- }) => void;
32
- sendHistoryOversizedEvent: (props: {
33
- attempted_bytes: number;
34
- source: string;
35
- }) => void;
36
20
  sendSaveContactEvent: () => void;
37
21
  sendStartForFreeEvent: () => void;
38
22
  sendFooterLinkClickEvent: (linkType: "watermark_logo" | "create_your_website") => void;
@@ -565,21 +565,16 @@ declare const _default: import("vue").DefineComponent<{}, {
565
565
  hideChangeTemplateConfirmModal(): void;
566
566
  onBackgroundChanged(): void;
567
567
  onChangeTemplateConfirmModalCancel(): void;
568
- onChangeTemplateConfirmModalConfirm(): Promise<void>;
568
+ onChangeTemplateConfirmModalConfirm(): void;
569
569
  onContentChanged(): void;
570
570
  onStyleChanged(): void;
571
- onTemplateSelected(payload: import("@brand-page-maker/stores").OnTemplateSelectedPayload): Promise<void>;
571
+ onTemplateSelected(payload: import("@brand-page-maker/stores").OnTemplateSelectedPayload): void;
572
572
  setSelectedTabName(payload: any): void;
573
573
  showNextNotificationMessage(): Promise<void>;
574
574
  updateContent<TContent extends import("@brand-page").Content, P extends {
575
575
  id: string;
576
576
  content: TContent;
577
577
  }>(payload: P): Promise<void>;
578
- _captureTemplateSwitchIfEnabled(): void;
579
- applyHistorySnapshot(snapshot: import("@brand-page").BrandPageModel, activePageId?: string | undefined, logoEditsStr?: string | undefined): Promise<void>;
580
- _syncLogoSettingsFromSnapshot(snapshot: import("@brand-page").BrandPageModel, logoEditsStr?: string | undefined): Promise<void>;
581
- _navigateToActivePage(activePageId?: string | undefined): void;
582
- _fallbackSidebarIfSelectedContentMissing(snapshot: import("@brand-page").BrandPageModel): void;
583
578
  export(): import("@brand-page").BrandPageModel;
584
579
  setBrandPageType({ brandPageType }: {
585
580
  brandPageType: "default" | "brandSite" | "brandContact";
@@ -920,22 +915,6 @@ declare const _default: import("vue").DefineComponent<{}, {
920
915
  }>;
921
916
  eventTracker: {
922
917
  sendShippingToggleEvent: (isEnabled: boolean) => void;
923
- sendUndoEvent: (props: {
924
- entries_count: number;
925
- actor: string | undefined;
926
- }) => void;
927
- sendRedoEvent: (props: {
928
- entries_count: number;
929
- actor: string | undefined;
930
- }) => void;
931
- sendHistoryCappedEvent: (props: {
932
- entries_count: number;
933
- size_bytes: number;
934
- }) => void;
935
- sendHistoryOversizedEvent: (props: {
936
- attempted_bytes: number;
937
- source: string;
938
- }) => void;
939
918
  sendSaveContactEvent: () => void;
940
919
  sendStartForFreeEvent: () => void;
941
920
  sendFooterLinkClickEvent: (linkType: "watermark_logo" | "create_your_website") => void;
@@ -565,22 +565,6 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
565
565
  isDesignCom: import("vue").ComputedRef<boolean>;
566
566
  eventTracker: {
567
567
  sendShippingToggleEvent: (isEnabled: boolean) => void;
568
- sendUndoEvent: (props: {
569
- entries_count: number;
570
- actor: string | undefined;
571
- }) => void;
572
- sendRedoEvent: (props: {
573
- entries_count: number;
574
- actor: string | undefined;
575
- }) => void;
576
- sendHistoryCappedEvent: (props: {
577
- entries_count: number;
578
- size_bytes: number;
579
- }) => void;
580
- sendHistoryOversizedEvent: (props: {
581
- attempted_bytes: number;
582
- source: string;
583
- }) => void;
584
568
  sendSaveContactEvent: () => void;
585
569
  sendStartForFreeEvent: () => void;
586
570
  sendFooterLinkClickEvent: (linkType: "watermark_logo" | "create_your_website") => void;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@designcrowd/library.brand-page",
3
3
  "description": "A collection of Maker/Designer applications",
4
- "version": "5.18.1-undo-33",
4
+ "version": "5.18.1",
5
5
  "author": "Design.com Eng",
6
6
  "license": "UNLICENSED",
7
7
  "type": "module",
@@ -35,8 +35,6 @@ import {
35
35
  useSnapshotStore,
36
36
  useVideoStore,
37
37
  } from '@brand-page-maker/stores';
38
- import { useHistoryStore } from '@brand-page-maker/stores/history/history-store';
39
- import { useUndoRedoFlag } from '@brand-page-maker/composables/useUndoRedoFlag';
40
38
  import type { AdminPreviewLogoTemplateModel } from '@brand-page-maker/stores/admin-logo-settings';
41
39
  import { useUiContentSettingsStore } from '@shared/content-settings/store';
42
40
  import { useUiTemplateSettingsStore } from '@shared/template-settings/store';
@@ -285,15 +283,6 @@ export default defineComponent({
285
283
  // Mark brand page as fully loaded
286
284
  this.brandPageMakerStore.setIsBrandPageLoaded(true);
287
285
 
288
- // Capture baseline for undo/redo when the feature is active for this
289
- // session. `useUndoRedoFlag` requires both the LaunchDarkly feature
290
- // (`userStore.features.canUseUndoRedo`) AND the maker being a brand-site
291
- // — V1 scope is brand-site only; brand-page and brand-contact don't get
292
- // undo/redo. See useUndoRedoFlag.ts for the rationale.
293
- if (useUndoRedoFlag().value) {
294
- useHistoryStore().captureBaseline();
295
- }
296
-
297
286
  this.$emit(EVENTS.Initialised);
298
287
  },
299
288
  mounted() {
@@ -23,6 +23,7 @@
23
23
  >
24
24
  <div class="tw-flex tw-flex-col tw-w-full tw-h-full">
25
25
  <QuickLinkBar
26
+ v-if="isPublished && !isAdmin"
26
27
  class="c-quick-link-bar"
27
28
  :brand-page-base-url="brandPageBaseUrl"
28
29
  :slug="brandPageSlug"
@@ -86,8 +87,8 @@
86
87
  v-if="isBrandPageLoaded"
87
88
  :is-mobile-device="isMobileDevice"
88
89
  :is-design-com="isDesignCom"
89
- :container="previewContainer"
90
90
  :has-quick-links="isPublished"
91
+ :container="previewContainer"
91
92
  >
92
93
  <div ref="previewContent" class="tw-h-full">
93
94
  <PreviewWithState :device-mode="deviceMode" />
@@ -122,9 +123,9 @@
122
123
  </div>
123
124
 
124
125
  <SideBar
126
+ :has-quick-links="isPublished"
125
127
  :mobile-tab-name="SideBarTabNames.PREVIEW"
126
128
  :is-mobile-screen-size="isMobileScreenSize"
127
- :has-quick-links="isPublished"
128
129
  >
129
130
  <template #tab>
130
131
  <component
@@ -90,7 +90,6 @@ export const userFeatures: UserFeatures = {
90
90
  canUseGettyVideos: false,
91
91
  canUseGoogleAdsense: false,
92
92
  googleAdsenseEnabled: false,
93
- canUseUndoRedo: false,
94
93
  };
95
94
 
96
95
  export const BRAND_PAGE: BrandPageData = {
@@ -20,14 +20,14 @@
20
20
  </div>
21
21
  <Toggle
22
22
  id="show-cookie-banner"
23
- :model-value="isToggled"
23
+ :model-value="data.isToggled"
24
24
  class="tw-pointer-events-none tw-touch-none"
25
25
  color="primary"
26
26
  @update:model-value="onShowCookieBanner()"
27
27
  />
28
28
  </div>
29
29
  </div>
30
- <div v-if="isToggled" class="tw-flex-none tw-mt-4">
30
+ <div v-if="data.isToggled" class="tw-flex-none tw-mt-4">
31
31
  <div
32
32
  class="tw-flex tw-items-center tw-justify-between tw-cursor-pointer"
33
33
  @click="onShowPreviewCookieBanner"
@@ -41,7 +41,7 @@
41
41
  </div>
42
42
  <Toggle
43
43
  id="show-preview-cookie-banner"
44
- :model-value="isPreviewToggled"
44
+ :model-value="data.isPreviewToggled"
45
45
  class="tw-pointer-events-none tw-touch-none"
46
46
  color="primary"
47
47
  @update:model-value="onShowPreviewCookieBanner()"
@@ -55,10 +55,10 @@
55
55
  import { Toggle } from '@designcrowd/fe-shared-lib';
56
56
  import { cookieSettingTr } from '@src/composables/useTranslate';
57
57
  import type { CookieOptions } from '@brand-page/models';
58
- import { computed, type PropType } from 'vue';
58
+ import { reactive, type PropType } from 'vue';
59
59
  import { useBrandPageMakerStore } from '@brand-page-maker/stores';
60
60
 
61
- defineProps({
61
+ const props = defineProps({
62
62
  viewModel: {
63
63
  type: Object as PropType<CookieOptions>,
64
64
  required: true,
@@ -67,26 +67,25 @@ defineProps({
67
67
 
68
68
  const brandPageMakerStore = useBrandPageMakerStore();
69
69
 
70
- // Read directly from the store so undo/redo (and any other external
71
- // mutation of cookieOptions) is reflected in the toggles.
72
- const isToggled = computed(
73
- () => brandPageMakerStore.cookieOptions.isCookieEnabled,
74
- );
75
- const isPreviewToggled = computed(
76
- () => brandPageMakerStore.cookieOptions.isCookiePreviewEnabled,
77
- );
70
+ const data = reactive({
71
+ isToggled: props.viewModel.isCookieEnabled,
72
+ isPreviewToggled: props.viewModel.isCookiePreviewEnabled,
73
+ });
78
74
 
79
75
  const onShowCookieBanner = () => {
80
- const next = !isToggled.value;
81
-
82
- brandPageMakerStore.setCookieEnabled({ isCookieEnabled: next });
76
+ data.isToggled = !data.isToggled;
77
+ brandPageMakerStore.setCookieEnabled({
78
+ isCookieEnabled: data.isToggled,
79
+ });
80
+ data.isPreviewToggled = data.isToggled;
83
81
  brandPageMakerStore.setCookiePreviewEnabled({
84
- isCookiePreviewEnabled: next,
82
+ isCookiePreviewEnabled: data.isPreviewToggled,
85
83
  });
86
84
  };
87
85
  const onShowPreviewCookieBanner = () => {
86
+ data.isPreviewToggled = !data.isPreviewToggled;
88
87
  brandPageMakerStore.setCookiePreviewEnabled({
89
- isCookiePreviewEnabled: !isPreviewToggled.value,
88
+ isCookiePreviewEnabled: data.isPreviewToggled,
90
89
  });
91
90
  };
92
91
  </script>
@@ -4,7 +4,6 @@ import {
4
4
  useBrandPageContainerStore,
5
5
  useEventManagerStore,
6
6
  } from '@brand-page-maker/stores';
7
- import { useUndoRedoFlag } from '@brand-page-maker/composables/useUndoRedoFlag';
8
7
  import { quickLinkBarTr } from '@src/composables/useTranslate';
9
8
 
10
9
  export default defineComponent({
@@ -22,7 +21,6 @@ export default defineComponent({
22
21
  return {
23
22
  brandPageContainerStore: useBrandPageContainerStore(),
24
23
  eventManagerStore: useEventManagerStore(),
25
- undoRedoEnabled: useUndoRedoFlag(),
26
24
  };
27
25
  },
28
26
  data() {
@@ -31,17 +29,6 @@ export default defineComponent({
31
29
  };
32
30
  },
33
31
  computed: {
34
- isPublished(): boolean {
35
- return this.brandPageContainerStore.isPublished;
36
- },
37
-
38
- // Only render the bar when at least one inner cluster has something to
39
- // show. Otherwise we'd render an empty white strip — e.g. on an
40
- // unpublished page with the undo flag off.
41
- shouldShowBar(): boolean {
42
- return Boolean(this.undoRedoEnabled) || this.isPublished;
43
- },
44
-
45
32
  brandPageUrl(): string {
46
33
  if (
47
34
  this.brandPageContainerStore.isCustomDomainEnabled &&
@@ -1,24 +1,10 @@
1
1
  <template>
2
2
  <div
3
- v-if="shouldShowBar"
4
3
  data-component="quick-link-bar"
5
4
  class="c-quick-links tw-w-full tw-flex-none tw-bg-white md:tw-h-12 tw-border-b tw-border-grayscale-500 tw-px-2 lg:tw-px-4 tw-box-border tw-flex tw-items-center tw-text-grayscale-800 tw-fixed lg:tw-static"
6
5
  >
7
- <!-- Left slot: Undo/Redo buttons. Always rendered for layout balance
8
- (flex-1 reserves equal space on left and right) so the center
9
- cluster stays geometrically centered in the bar regardless of
10
- whether the buttons are visible. -->
11
- <div class="tw-flex tw-flex-1 tw-justify-start tw-gap-1">
12
- <template v-if="undoRedoEnabled">
13
- <UndoButton />
14
- <RedoButton />
15
- </template>
16
- </div>
17
-
18
- <!-- Center cluster: URL label, link, copy button -->
19
- <div
20
- v-if="isPublished"
21
- class="tw-flex tw-items-center tw-gap-2 tw-justify-center"
6
+ <p
7
+ class="tw-flex tw-items-center tw-justify-between lg:tw-justify-center tw-w-full"
22
8
  >
23
9
  <strong class="tw-font-semibold tw-hidden xl:tw-inline-block">
24
10
  {{ quickLinkBarTr('myWebPageLabel') }}
@@ -41,12 +27,7 @@
41
27
  }"
42
28
  @on-click.stop="onCopyClick"
43
29
  />
44
- </div>
45
-
46
- <!-- Right spacer: balances the left slot so the center cluster is
47
- geometrically centered. -->
48
- <div class="tw-flex-1" />
49
-
30
+ </p>
50
31
  <textarea ref="textarea" :value="brandPageUrl" class="tw-sr-only" />
51
32
  </div>
52
33
  </template>
@@ -54,14 +35,10 @@
54
35
  import QuickLinkBarMixin from './QuickLinkBar.mixin.ts';
55
36
  import { Button } from '@designcrowd/fe-shared-lib';
56
37
  import { quickLinkBarTr } from '@src/composables/useTranslate';
57
- import UndoButton from './UndoButton.vue';
58
- import RedoButton from './RedoButton.vue';
59
38
 
60
39
  export default {
61
40
  components: {
62
41
  Button,
63
- UndoButton,
64
- RedoButton,
65
42
  },
66
43
  mixins: [QuickLinkBarMixin],
67
44
  setup(props, context) {
@@ -2,8 +2,6 @@
2
2
  "quickLinkBar": {
3
3
  "myWebPageLabel": "My web page:",
4
4
  "copyButton": "Copy",
5
- "copiedButton": "Copied!",
6
- "undoLabel": "Undo",
7
- "redoLabel": "Redo"
5
+ "copiedButton": "Copied!"
8
6
  }
9
7
  }
@@ -19,7 +19,7 @@
19
19
  </div>
20
20
  <Toggle
21
21
  id="save-contact-enabled"
22
- :model-value="isSavingEnabled"
22
+ :model-value="data.isToggled"
23
23
  color="primary"
24
24
  @update:model-value="onSavingEnabled()"
25
25
  />
@@ -27,7 +27,7 @@
27
27
  </div>
28
28
  <div class="tw-flex-none tw-mt-4">
29
29
  <div
30
- v-if="!isAdmin && !isPrePurchase && isSavingEnabled"
30
+ v-if="!isAdmin && !isPrePurchase && data.isToggled"
31
31
  class="tw-flex tw-items-center tw-justify-between tw-cursor-pointer tw-gap-1"
32
32
  @click="onHideBranding"
33
33
  >
@@ -62,7 +62,7 @@
62
62
  </div>
63
63
  <Toggle
64
64
  id="show-preview-cookie-banner"
65
- :model-value="hideBranding"
65
+ :model-value="data.hideBranding"
66
66
  color="primary"
67
67
  @update:model-value="onHideBranding()"
68
68
  />
@@ -78,7 +78,7 @@ import {
78
78
  useBrandPageContainerStore,
79
79
  } from '@brand-page-maker/stores';
80
80
  import { saveContactSettingsTr } from '@src/composables/useTranslate';
81
- import { computed } from 'vue';
81
+ import { computed, reactive } from 'vue';
82
82
  import {
83
83
  EVENTS,
84
84
  useEventTracker,
@@ -107,6 +107,11 @@ const showBrandCrowdLogo = computed(
107
107
  () => brandPageMakerStore.showBrandCrowdLogo,
108
108
  );
109
109
 
110
+ const data = reactive({
111
+ isToggled: isSavingEnabled.value,
112
+ hideBranding: hideBranding.value,
113
+ });
114
+
110
115
  const siteName = computed((): string => {
111
116
  return props.isDesignCom ? 'Design.com' : 'BrandCrowd';
112
117
  });
@@ -122,28 +127,30 @@ const hideBrandingTooltip = computed((): string => {
122
127
  });
123
128
 
124
129
  const onSavingEnabled = () => {
125
- const next = !isSavingEnabled.value;
126
-
127
- brandPageMakerStore.setSavingEnabled({ isSavingEnabled: next });
130
+ data.isToggled = !data.isToggled;
131
+ brandPageMakerStore.setSavingEnabled({
132
+ isSavingEnabled: data.isToggled,
133
+ });
128
134
  eventTracker.sendWebsiteEvent({
129
135
  eventName: EVENTS.WEBSITE_MAKER_DIGITAL_BUSINESS_CARDS_SAVE_CONTACT_TOGGLE,
130
136
  eventProps: {
131
137
  cta_location: UPGRADE_CTA_LOCATIONS.SAVE_CONTACT_SETTINGS,
132
- toggle_value: next ? 'enabled' : 'disabled',
138
+ toggle_value: data.isToggled ? 'enabled' : 'disabled',
133
139
  },
134
140
  });
135
141
  };
136
142
 
137
143
  const onHideBranding = async () => {
138
144
  if (!showBrandCrowdLogo.value) {
139
- const next = !hideBranding.value;
140
-
141
- brandPageMakerStore.setHideBranding({ hideBranding: next });
145
+ data.hideBranding = !data.hideBranding;
146
+ brandPageMakerStore.setHideBranding({
147
+ hideBranding: data.hideBranding,
148
+ });
142
149
  eventTracker.sendWebsiteEvent({
143
150
  eventName: EVENTS.WEBSITE_MAKER_DIGITAL_BUSINESS_CARDS_HIDE_POPUP,
144
151
  eventProps: {
145
152
  cta_location: UPGRADE_CTA_LOCATIONS.SAVE_CONTACT_SETTINGS,
146
- toggle_value: next ? 'enabled' : 'disabled',
153
+ toggle_value: data.hideBranding ? 'enabled' : 'disabled',
147
154
  },
148
155
  });
149
156
  } else {