@designcrowd/library.brand-page 5.18.6-ast-padding-1 → 5.18.7-ast-padding-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 (151) hide show
  1. package/lib/src/{CreatedOnBrandCrowd-de-de-CAtPZtwo.js → CreatedOnBrandCrowd-de-de-Cn8zNuGM.js} +1 -1
  2. package/lib/src/{CreatedOnBrandCrowd-en-us-Dcx4yFkK.js → CreatedOnBrandCrowd-en-us-CP8xAFc-.js} +1 -1
  3. package/lib/src/{CreatedOnBrandCrowd-es-es-DpodH0gD.js → CreatedOnBrandCrowd-es-es-Ds8NijwP.js} +1 -1
  4. package/lib/src/{CreatedOnBrandCrowd-fr-fr-DZbMRJn-.js → CreatedOnBrandCrowd-fr-ca-BiVV_7lj.js} +1 -1
  5. package/lib/src/{CreatedOnBrandCrowd-fr-ca-DZbMRJn-.js → CreatedOnBrandCrowd-fr-fr-BiVV_7lj.js} +1 -1
  6. package/lib/src/{CreatedOnBrandCrowd-pt-pt-C3gBveLk.js → CreatedOnBrandCrowd-pt-br-CjjrYojo.js} +1 -1
  7. package/lib/src/{CreatedOnBrandCrowd-pt-br-C3gBveLk.js → CreatedOnBrandCrowd-pt-pt-CjjrYojo.js} +1 -1
  8. package/lib/src/{CreatedOnDcom-de-de-DHNyyTV9.js → CreatedOnDcom-de-de-ChR5jvlP.js} +1 -1
  9. package/lib/src/{CreatedOnDcom-en-us-BjqZ0Jmw.js → CreatedOnDcom-en-us-C4rO1BMA.js} +1 -1
  10. package/lib/src/{CreatedOnDcom-es-es-tiNjDJmH.js → CreatedOnDcom-es-es-DxGMS6JK.js} +1 -1
  11. package/lib/src/{CreatedOnDcom-fr-ca-COUSI6w1.js → CreatedOnDcom-fr-ca-n31u4t7u.js} +1 -1
  12. package/lib/src/{CreatedOnDcom-fr-fr-c3UCfh9A.js → CreatedOnDcom-fr-fr-gwdsX7YV.js} +1 -1
  13. package/lib/src/{CreatedOnDcom-pt-br-U1jbo_g5.js → CreatedOnDcom-pt-br-iZjFp--s.js} +1 -1
  14. package/lib/src/{CreatedOnDcom-pt-pt-BOW_n3bo.js → CreatedOnDcom-pt-pt-B3Z3-RLC.js} +1 -1
  15. package/lib/src/brand-page/constants/misc.constants.d.ts +7 -11
  16. package/lib/src/brand-page/constants/misc.constants.js +8 -17
  17. package/lib/src/brand-page/utils/migration/migration-17.js +3 -5
  18. package/lib/src/brand-page-maker/components/action-bar/ActionBar.mixin.d.ts +7 -2
  19. package/lib/src/brand-page-maker/components/brand-page-maker/BrandPageMaker.mixin.d.ts +7 -2
  20. package/lib/src/brand-page-maker/components/brand-page-maker/BrandPageMaker.mixin.js +8 -0
  21. package/lib/src/brand-page-maker/components/brand-page-maker/BrandPageMakerTemplateSettings.mixin.d.ts +7 -2
  22. package/lib/src/brand-page-maker/components/brand-page-maker/__fixtures__/brand-page-examples.js +1 -0
  23. package/lib/src/brand-page-maker/components/brandpage-maker-page/BrandPageMakerPage.mixin.d.ts +90 -2
  24. package/lib/src/brand-page-maker/components/brandpage-maker-page/BrandPageMakerPage.mixin.js +5 -0
  25. package/lib/src/brand-page-maker/components/brandpage-settings/ReplaceImageSettingsForBrandPageSettings.mixin.d.ts +7 -2
  26. package/lib/src/brand-page-maker/components/quick-link-bar/QuickLinkBar.mixin.d.ts +3 -0
  27. package/lib/src/brand-page-maker/components/quick-link-bar/QuickLinkBar.mixin.js +11 -0
  28. package/lib/src/brand-page-maker/components/seo-settings/SeoPageSettings.mixin.d.ts +7 -2
  29. package/lib/src/brand-page-maker/components/seo-settings/UrlSettings.mixin.d.ts +7 -2
  30. package/lib/src/brand-page-maker/components/social-share/SocialShare.mixin.d.ts +7 -2
  31. package/lib/src/brand-page-maker/components/template-preview/TemplatePreview.mixin.d.ts +7 -2
  32. package/lib/src/brand-page-maker/composables/ai-chat/useAiWebsiteBuilderChat.js +9 -0
  33. package/lib/src/brand-page-maker/composables/rich-text-editor/useRichTextEditor.js +21 -1
  34. package/lib/src/brand-page-maker/composables/useEventTracker.d.ts +20 -0
  35. package/lib/src/brand-page-maker/composables/useEventTracker.js +17 -0
  36. package/lib/src/brand-page-maker/composables/useUndoRedoFlag.d.ts +17 -0
  37. package/lib/src/brand-page-maker/composables/useUndoRedoFlag.js +25 -0
  38. package/lib/src/brand-page-maker/constants/config-settings-constant.js +1 -0
  39. package/lib/src/brand-page-maker/convertors/about-display-style.convertor.js +4 -4
  40. package/lib/src/brand-page-maker/stores/brandpage-maker/brandpage-maker-store.d.ts +41 -2
  41. package/lib/src/brand-page-maker/stores/brandpage-maker/brandpage-maker-store.js +307 -5
  42. package/lib/src/brand-page-maker/stores/history/history-store.d.ts +86 -0
  43. package/lib/src/brand-page-maker/stores/history/history-store.js +501 -0
  44. package/lib/src/brand-page-maker/stores/logo-store/logo-store.d.ts +1 -0
  45. package/lib/src/brand-page-maker/stores/user/user-store.js +1 -0
  46. package/lib/src/bundled-translations-BUyt4scr.js +175 -0
  47. package/lib/src/bundled-translations.de-DE-DEw_OVai.js +175 -0
  48. package/lib/src/bundled-translations.es-ES-CFKWmkgY.js +175 -0
  49. package/lib/src/bundled-translations.fr-CA-DCl5LJS4.js +175 -0
  50. package/lib/src/bundled-translations.fr-FR-B5BjgllA.js +175 -0
  51. package/lib/src/bundled-translations.pt-BR-5PWpMPuM.js +175 -0
  52. package/lib/src/bundled-translations.pt-PT-B9_wN0HR.js +175 -0
  53. package/lib/src/bundles/bundled-translations.de-DE.json +3 -1
  54. package/lib/src/bundles/bundled-translations.es-ES.json +3 -1
  55. package/lib/src/bundles/bundled-translations.fr-CA.json +3 -1
  56. package/lib/src/bundles/bundled-translations.fr-FR.json +3 -1
  57. package/lib/src/bundles/bundled-translations.json +3 -1
  58. package/lib/src/bundles/bundled-translations.pt-BR.json +3 -1
  59. package/lib/src/bundles/bundled-translations.pt-PT.json +3 -1
  60. package/lib/src/constants/ui.d.ts +1 -0
  61. package/lib/src/css/library.brand-page-brandCrowd.min.css +34 -29
  62. package/lib/src/css/library.brand-page-brandPage.min.css +34 -30
  63. package/lib/src/css/library.brand-page-designCom.min.css +34 -29
  64. package/lib/src/css/library.brand-page-preview.min.css +34 -29
  65. package/lib/src/index.mjs +1 -1
  66. package/lib/src/{lib-Bl7w5LQl.js → lib-CIj_C38s.js} +35661 -35060
  67. package/lib/src/shared/content-settings/components/content-settings/ContentSettings.mixin.d.ts +90 -2
  68. package/lib/src/shared/content-settings/components/content-settings/ContentSettings.mixin.js +5 -0
  69. package/lib/src/shared/content-settings/components/content-settings/ContentSettings.stories.js +1 -0
  70. package/lib/src/shared/content-settings/components/content-settings/ReplaceImageSettingsForContent.mixin.d.ts +23 -2
  71. package/lib/src/shared/content-settings/components/content-settings-item/ContentSettingsItem.mixin.d.ts +16 -0
  72. package/lib/src/shared/content-settings/components/content-settings-item/ContentSettingsItemField.mixin.d.ts +7 -2
  73. package/lib/src/shared/content-settings/components/draggable-item-list/DraggableItemList.mixin.d.ts +3 -0
  74. package/lib/src/shared/content-settings/components/draggable-item-list/DraggableItemList.mixin.js +19 -2
  75. package/lib/src/shared/content-settings/components/form-fields-field/FormFieldsField.mixin.js +18 -8
  76. package/lib/src/shared/content-settings/components/payment-config-field/PaymentConfigField.mixin.d.ts +67 -0
  77. package/lib/src/shared/content-settings/components/payment-config-field/PaymentConfigField.mixin.js +6 -0
  78. package/lib/src/shared/logo-settings/components/EditLogoSettings.mixin.d.ts +19 -0
  79. package/lib/src/shared/logo-settings/components/EditLogoSettings.mixin.js +11 -0
  80. package/lib/src/shared/logo-settings/components/LogoSettings.mixin.d.ts +10 -2
  81. package/lib/src/shared/logo-settings/store/editable-logo-store.d.ts +5 -1
  82. package/lib/src/shared/logo-settings/store/editable-logo-store.js +31 -0
  83. package/lib/src/shared/page-settings/components/page-settings/PageSettings.mixin.d.ts +24 -2
  84. package/lib/src/shared/page-settings/components/page-settings-section-styles/PageSettingsSectionStyles.mixin.d.ts +10 -2
  85. package/lib/src/shared/publish-brand-page-with-state/PublishBrandPageModalWithState.mixin.d.ts +23 -2
  86. package/lib/src/shared/side-bar/components/SideBarTabButton.mixin.d.ts +16 -0
  87. package/lib/src/shared/style-settings/components/StyleSettings.mixin.d.ts +23 -2
  88. package/lib/src/shared/template-settings/components/TemplatesSettings.mixin.d.ts +16 -0
  89. package/package.json +1 -1
  90. package/src/brand-page/components/contact-form/ContactForm.vue +17 -13
  91. package/src/brand-page/constants/misc.constants.ts +8 -20
  92. package/src/brand-page/utils/migration/migration-17.ts +3 -11
  93. package/src/brand-page/utils/migration.util.test.ts +53 -3
  94. package/src/brand-page-maker/components/brand-page-maker/BrandPageMaker.mixin.ts +9 -0
  95. package/src/brand-page-maker/components/brand-page-maker/BrandPageMaker.vue +2 -3
  96. package/src/brand-page-maker/components/brand-page-maker/__fixtures__/brand-page-examples.ts +1 -0
  97. package/src/brand-page-maker/components/brandpage-maker-page/BrandPageMakerPage.mixin.ts +5 -0
  98. package/src/brand-page-maker/components/cookie-collection/CookieSettings.vue +18 -17
  99. package/src/brand-page-maker/components/quick-link-bar/QuickLinkBar.mixin.ts +13 -0
  100. package/src/brand-page-maker/components/quick-link-bar/QuickLinkBar.vue +26 -3
  101. package/src/brand-page-maker/components/quick-link-bar/RedoButton.vue +66 -0
  102. package/src/brand-page-maker/components/quick-link-bar/UndoButton.vue +66 -0
  103. package/src/brand-page-maker/components/quick-link-bar/i18n/quick-link-bar.de-DE.json +6 -4
  104. package/src/brand-page-maker/components/quick-link-bar/i18n/quick-link-bar.es-ES.json +6 -4
  105. package/src/brand-page-maker/components/quick-link-bar/i18n/quick-link-bar.fr-CA.json +6 -4
  106. package/src/brand-page-maker/components/quick-link-bar/i18n/quick-link-bar.fr-FR.json +6 -4
  107. package/src/brand-page-maker/components/quick-link-bar/i18n/quick-link-bar.json +3 -1
  108. package/src/brand-page-maker/components/quick-link-bar/i18n/quick-link-bar.pt-BR.json +6 -4
  109. package/src/brand-page-maker/components/quick-link-bar/i18n/quick-link-bar.pt-PT.json +6 -4
  110. package/src/brand-page-maker/components/quick-link-bar/undo-redo-buttons.test.ts +116 -0
  111. package/src/brand-page-maker/components/save-contact/SaveContact.vue +12 -19
  112. package/src/brand-page-maker/composables/ai-chat/useAiWebsiteBuilderChat.ts +10 -0
  113. package/src/brand-page-maker/composables/rich-text-editor/useRichTextEditor.ts +28 -1
  114. package/src/brand-page-maker/composables/useEventTracker.ts +29 -0
  115. package/src/brand-page-maker/composables/useUndoRedoFlag.ts +30 -0
  116. package/src/brand-page-maker/constants/config-settings-constant.ts +1 -0
  117. package/src/brand-page-maker/convertors/about-display-style.convertor.ts +4 -4
  118. package/src/brand-page-maker/convertors/contact-layout-style.convertor.test.ts +1 -1
  119. package/src/brand-page-maker/stores/brandpage-maker/brandpage-maker-store.test.ts +334 -0
  120. package/src/brand-page-maker/stores/brandpage-maker/brandpage-maker-store.ts +371 -4
  121. package/src/brand-page-maker/stores/history/history-store.test.ts +1120 -0
  122. package/src/brand-page-maker/stores/history/history-store.ts +666 -0
  123. package/src/brand-page-maker/stores/logo-store/logo-store.ts +5 -0
  124. package/src/brand-page-maker/stores/user/user-store.ts +1 -0
  125. package/src/bundles/bundled-translations.de-DE.json +3 -1
  126. package/src/bundles/bundled-translations.es-ES.json +3 -1
  127. package/src/bundles/bundled-translations.fr-CA.json +3 -1
  128. package/src/bundles/bundled-translations.fr-FR.json +3 -1
  129. package/src/bundles/bundled-translations.json +3 -1
  130. package/src/bundles/bundled-translations.pt-BR.json +3 -1
  131. package/src/bundles/bundled-translations.pt-PT.json +3 -1
  132. package/src/constants/ui.ts +1 -0
  133. package/src/shared/content-settings/components/content-settings/ContentSettings.mixin.ts +5 -0
  134. package/src/shared/content-settings/components/content-settings/ContentSettings.stories.ts +1 -0
  135. package/src/shared/content-settings/components/draggable-item-list/DraggableItemList.mixin.ts +19 -2
  136. package/src/shared/content-settings/components/draggable-item-list/DraggableItemList.vue +1 -1
  137. package/src/shared/content-settings/components/form-fields-field/FormFieldsField.mixin.ts +26 -10
  138. package/src/shared/content-settings/components/logo-selection-field/LogoSelection.vue +63 -48
  139. package/src/shared/content-settings/components/page-dropdown-field/PageDropdownField.vue +4 -0
  140. package/src/shared/content-settings/components/payment-config-field/PaymentConfigField.mixin.ts +7 -0
  141. package/src/shared/content-settings/components/text-field/TextField.vue +1 -0
  142. package/src/shared/content-settings/components/text-image-field/TextImageField.vue +33 -4
  143. package/src/shared/logo-settings/components/EditLogoSettings.mixin.ts +11 -0
  144. package/src/shared/logo-settings/store/editable-logo-store.ts +42 -1
  145. package/lib/src/bundled-translations-Chw0nsFv.js +0 -175
  146. package/lib/src/bundled-translations.de-DE-cqBv7atZ.js +0 -175
  147. package/lib/src/bundled-translations.es-ES-D9VXftl_.js +0 -175
  148. package/lib/src/bundled-translations.fr-CA-BYstWXcO.js +0 -175
  149. package/lib/src/bundled-translations.fr-FR-D1H1hJD4.js +0 -175
  150. package/lib/src/bundled-translations.pt-BR-DqNFuNHX.js +0 -175
  151. package/lib/src/bundled-translations.pt-PT-tOic0FfQ.js +0 -175
@@ -1,5 +1,5 @@
1
1
  import { openBlock as e, createElementBlock as l, createStaticVNode as a } from "vue";
2
- import { _ as t } from "./lib-Bl7w5LQl.js";
2
+ import { _ as t } from "./lib-CIj_C38s.js";
3
3
  const i = {}, h = {
4
4
  width: "275",
5
5
  height: "36",
@@ -1,5 +1,5 @@
1
1
  import { openBlock as e, createElementBlock as l, createStaticVNode as a } from "vue";
2
- import { _ as t } from "./lib-Bl7w5LQl.js";
2
+ import { _ as t } from "./lib-CIj_C38s.js";
3
3
  const i = {}, h = {
4
4
  width: "251",
5
5
  height: "36",
@@ -1,5 +1,5 @@
1
1
  import { openBlock as e, createElementBlock as l, createStaticVNode as a } from "vue";
2
- import { _ as t } from "./lib-Bl7w5LQl.js";
2
+ import { _ as t } from "./lib-CIj_C38s.js";
3
3
  const i = {}, h = {
4
4
  width: "250",
5
5
  height: "36",
@@ -1,5 +1,5 @@
1
1
  import { openBlock as e, createElementBlock as l, createStaticVNode as a } from "vue";
2
- import { _ as t } from "./lib-Bl7w5LQl.js";
2
+ import { _ as t } from "./lib-CIj_C38s.js";
3
3
  const i = {}, h = {
4
4
  width: "237",
5
5
  height: "36",
@@ -1,5 +1,5 @@
1
1
  import { openBlock as e, createElementBlock as l, createStaticVNode as a } from "vue";
2
- import { _ as t } from "./lib-Bl7w5LQl.js";
2
+ import { _ as t } from "./lib-CIj_C38s.js";
3
3
  const i = {}, h = {
4
4
  width: "237",
5
5
  height: "36",
@@ -1,5 +1,5 @@
1
1
  import { openBlock as e, createElementBlock as l, createStaticVNode as a } from "vue";
2
- import { _ as t } from "./lib-Bl7w5LQl.js";
2
+ import { _ as t } from "./lib-CIj_C38s.js";
3
3
  const i = {}, h = {
4
4
  width: "263",
5
5
  height: "36",
@@ -1,5 +1,5 @@
1
1
  import { openBlock as e, createElementBlock as l, createStaticVNode as a } from "vue";
2
- import { _ as t } from "./lib-Bl7w5LQl.js";
2
+ import { _ as t } from "./lib-CIj_C38s.js";
3
3
  const i = {}, h = {
4
4
  width: "263",
5
5
  height: "36",
@@ -1,5 +1,5 @@
1
1
  import { openBlock as H, createElementBlock as V, createStaticVNode as t } from "vue";
2
- import { _ as e } from "./lib-Bl7w5LQl.js";
2
+ import { _ as e } from "./lib-CIj_C38s.js";
3
3
  const M = {}, Z = {
4
4
  width: "242",
5
5
  height: "36",
@@ -1,5 +1,5 @@
1
1
  import { openBlock as H, createElementBlock as V, createStaticVNode as t } from "vue";
2
- import { _ as e } from "./lib-Bl7w5LQl.js";
2
+ import { _ as e } from "./lib-CIj_C38s.js";
3
3
  const i = {}, M = {
4
4
  width: "231",
5
5
  height: "36",
@@ -1,5 +1,5 @@
1
1
  import { openBlock as H, createElementBlock as V, createStaticVNode as t } from "vue";
2
- import { _ as e } from "./lib-Bl7w5LQl.js";
2
+ import { _ as e } from "./lib-CIj_C38s.js";
3
3
  const M = {}, Z = {
4
4
  width: "230",
5
5
  height: "36",
@@ -1,5 +1,5 @@
1
1
  import { openBlock as H, createElementBlock as V, createStaticVNode as t } from "vue";
2
- import { _ as e } from "./lib-Bl7w5LQl.js";
2
+ import { _ as e } from "./lib-CIj_C38s.js";
3
3
  const i = {}, l = {
4
4
  width: "216",
5
5
  height: "36",
@@ -1,5 +1,5 @@
1
1
  import { openBlock as H, createElementBlock as V, createStaticVNode as t } from "vue";
2
- import { _ as e } from "./lib-Bl7w5LQl.js";
2
+ import { _ as e } from "./lib-CIj_C38s.js";
3
3
  const i = {}, l = {
4
4
  width: "216",
5
5
  height: "36",
@@ -1,5 +1,5 @@
1
1
  import { openBlock as H, createElementBlock as V, createStaticVNode as t } from "vue";
2
- import { _ as M } from "./lib-Bl7w5LQl.js";
2
+ import { _ as M } from "./lib-CIj_C38s.js";
3
3
  const Z = {}, e = {
4
4
  width: "232",
5
5
  height: "36",
@@ -1,5 +1,5 @@
1
1
  import { openBlock as H, createElementBlock as V, createStaticVNode as t } from "vue";
2
- import { _ as M } from "./lib-Bl7w5LQl.js";
2
+ import { _ as M } from "./lib-CIj_C38s.js";
3
3
  const Z = {}, e = {
4
4
  width: "232",
5
5
  height: "36",
@@ -33,11 +33,9 @@ export declare const ALTERNATE_IMAGE = "alternate-image";
33
33
  * Padding Control (BP-5699): the top/bottom padding each Contact Form layout
34
34
  * had hard-coded before the sliders existed. Single source for new-block
35
35
  * defaults (content-settings) and the migration backfill for existing pages.
36
- * The image layouts (full-image divided and card-over-image) are 0: their
37
- * padding sits on the section root and reveals the background colour around
38
- * the image block (same as the banner), while the spacing inside/over the
39
- * image stays fixed — existing pages rendered the image flush to the section
40
- * edges.
36
+ * The image layouts (full-image divided and card-over-image) are 0: the bg
37
+ * image expands with the section padding (banner-style), so the default starts
38
+ * flush at the edges; the spacing inside/over the image stays fixed.
41
39
  */
42
40
  export declare const CONTACT_FORM_LAYOUT_DEFAULT_PADDING: Record<string, number>;
43
41
  /**
@@ -51,14 +49,12 @@ export declare const BANNER_DEFAULT_PADDING = 32;
51
49
  export declare const BANNER_FULL_BLEED_DISPLAY_STYLES: string[];
52
50
  export declare const bannerDisplayStyleDefaultPadding: (displayStyle?: string) => number;
53
51
  /**
54
- * About: same rule as the banner. The two full-image display styles render the
55
- * image flush to the section edges, so their top/bottom padding defaults to 0;
56
- * every other About style keeps 32. Used by the About display-style convertor
57
- * and the migration backfill.
52
+ * About: a flat 32 for every display style, including the two full-image styles.
53
+ * The full-image About renders the image inside the padded container, so the
54
+ * standard 32 band is the intended look. Used by the About display-style
55
+ * convertor and the migration backfill.
58
56
  */
59
57
  export declare const ABOUT_DEFAULT_PADDING = 32;
60
- export declare const ABOUT_FULL_BLEED_DISPLAY_STYLES: string[];
61
- export declare const aboutDisplayStyleDefaultPadding: (displayStyle?: string) => number;
62
58
  export declare const BIG_IMAGE = "big-image";
63
59
  export declare const MEDIA_ONLY = "media-only";
64
60
  export declare const COLUMNS = "columns";
@@ -34,15 +34,13 @@ export const ALTERNATE_IMAGE = 'alternate-image';
34
34
  * Padding Control (BP-5699): the top/bottom padding each Contact Form layout
35
35
  * had hard-coded before the sliders existed. Single source for new-block
36
36
  * defaults (content-settings) and the migration backfill for existing pages.
37
- * The image layouts (full-image divided and card-over-image) are 0: their
38
- * padding sits on the section root and reveals the background colour around
39
- * the image block (same as the banner), while the spacing inside/over the
40
- * image stays fixed — existing pages rendered the image flush to the section
41
- * edges.
37
+ * The image layouts (full-image divided and card-over-image) are 0: the bg
38
+ * image expands with the section padding (banner-style), so the default starts
39
+ * flush at the edges; the spacing inside/over the image stays fixed.
42
40
  */
43
41
  export const CONTACT_FORM_LAYOUT_DEFAULT_PADDING = {
44
42
  '': 0, // collapsible (default on Brand Page / Brand Contact)
45
- [ALIGN_CENTERED]: 24,
43
+ [ALIGN_CENTERED]: 32,
46
44
  [ALIGN_CARD_CENTER]: 32,
47
45
  [ALIGN_CARD_CENTER_IMAGE]: 0,
48
46
  [TEXT_ONLY]: 32,
@@ -68,19 +66,12 @@ export const bannerDisplayStyleDefaultPadding = (displayStyle) => displayStyle &
68
66
  ? 0
69
67
  : BANNER_DEFAULT_PADDING;
70
68
  /**
71
- * About: same rule as the banner. The two full-image display styles render the
72
- * image flush to the section edges, so their top/bottom padding defaults to 0;
73
- * every other About style keeps 32. Used by the About display-style convertor
74
- * and the migration backfill.
69
+ * About: a flat 32 for every display style, including the two full-image styles.
70
+ * The full-image About renders the image inside the padded container, so the
71
+ * standard 32 band is the intended look. Used by the About display-style
72
+ * convertor and the migration backfill.
75
73
  */
76
74
  export const ABOUT_DEFAULT_PADDING = 32;
77
- export const ABOUT_FULL_BLEED_DISPLAY_STYLES = [
78
- ALIGN_LEFT_FULL_IMAGE,
79
- ALIGN_RIGHT_FULL_IMAGE,
80
- ];
81
- export const aboutDisplayStyleDefaultPadding = (displayStyle) => displayStyle && ABOUT_FULL_BLEED_DISPLAY_STYLES.includes(displayStyle)
82
- ? 0
83
- : ABOUT_DEFAULT_PADDING;
84
75
  export const BIG_IMAGE = 'big-image';
85
76
  export const MEDIA_ONLY = 'media-only';
86
77
  export const COLUMNS = 'columns';
@@ -1,4 +1,4 @@
1
- import { CONTACT_FORM_LAYOUT_DEFAULT_PADDING, aboutDisplayStyleDefaultPadding, bannerDisplayStyleDefaultPadding, } from '../../constants';
1
+ import { CONTACT_FORM_LAYOUT_DEFAULT_PADDING, bannerDisplayStyleDefaultPadding, } from '../../constants';
2
2
  /**
3
3
  * Padding Control backfill (BP-5699 Tier 2, BP-5700 Store): blocks that already
4
4
  * had hard-coded top/bottom spacing. Backfill that spacing as the block's explicit
@@ -13,12 +13,13 @@ const BLOCK_DEFAULT_PADDING = {
13
13
  'shapes-section': 32,
14
14
  'booking-section': 32,
15
15
  'shop-section': 16,
16
+ 'about-section': 32,
16
17
  };
17
18
  export const migration17 = async (migrationResult) => {
18
19
  const { brandPageModel } = migrationResult;
19
20
  brandPageModel.pages.forEach((page) => {
20
21
  page.contents.forEach((content) => {
21
- // Contact Form, Banner and About previously varied their hard-coded spacing by
22
+ // Contact Form and Banner previously varied their hard-coded spacing by
22
23
  // layout/display style (full-bleed image layouts had no outer padding), so they're
23
24
  // keyed by that rather than a single per-type value.
24
25
  let value;
@@ -29,9 +30,6 @@ export const migration17 = async (migrationResult) => {
29
30
  else if (content.type === 'banner-section') {
30
31
  value = bannerDisplayStyleDefaultPadding(content.displayStyle);
31
32
  }
32
- else if (content.type === 'about-section') {
33
- value = aboutDisplayStyleDefaultPadding(content.displayStyle);
34
- }
35
33
  else {
36
34
  value = BLOCK_DEFAULT_PADDING[content.type];
37
35
  }
@@ -107,16 +107,21 @@ declare const _default: import("vue").DefineComponent<{}, {
107
107
  hideChangeTemplateConfirmModal(): void;
108
108
  onBackgroundChanged(): void;
109
109
  onChangeTemplateConfirmModalCancel(): void;
110
- onChangeTemplateConfirmModalConfirm(): void;
110
+ onChangeTemplateConfirmModalConfirm(): Promise<void>;
111
111
  onContentChanged(): void;
112
112
  onStyleChanged(): void;
113
- onTemplateSelected(payload: import("@brand-page-maker/stores").OnTemplateSelectedPayload): void;
113
+ onTemplateSelected(payload: import("@brand-page-maker/stores").OnTemplateSelectedPayload): Promise<void>;
114
114
  setSelectedTabName(payload: any): void;
115
115
  showNextNotificationMessage(): Promise<void>;
116
116
  updateContent<TContent extends import("@brand-page/models").Content, P extends {
117
117
  id: string;
118
118
  content: TContent;
119
119
  }>(payload: P): Promise<void>;
120
+ _captureTemplateSwitchIfEnabled(): void;
121
+ applyHistorySnapshot(snapshot: import("@brand-page/models").BrandPageModel, activePageId?: string | undefined, logoEditsStr?: string | undefined): Promise<void>;
122
+ _syncLogoSettingsFromSnapshot(snapshot: import("@brand-page/models").BrandPageModel, logoEditsStr?: string | undefined): Promise<void>;
123
+ _navigateToActivePage(activePageId?: string | undefined): void;
124
+ _fallbackSidebarIfSelectedContentMissing(snapshot: import("@brand-page/models").BrandPageModel): void;
120
125
  export(): import("@brand-page/models").BrandPageModel;
121
126
  setBrandPageType({ brandPageType }: {
122
127
  brandPageType: "default" | "brandSite" | "brandContact";
@@ -152,16 +152,21 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
152
152
  hideChangeTemplateConfirmModal(): void;
153
153
  onBackgroundChanged(): void;
154
154
  onChangeTemplateConfirmModalCancel(): void;
155
- onChangeTemplateConfirmModalConfirm(): void;
155
+ onChangeTemplateConfirmModalConfirm(): Promise<void>;
156
156
  onContentChanged(): void;
157
157
  onStyleChanged(): void;
158
- onTemplateSelected(payload: import("@brand-page-maker/stores").OnTemplateSelectedPayload): void;
158
+ onTemplateSelected(payload: import("@brand-page-maker/stores").OnTemplateSelectedPayload): Promise<void>;
159
159
  setSelectedTabName(payload: any): void;
160
160
  showNextNotificationMessage(): Promise<void>;
161
161
  updateContent<TContent extends import("@brand-page").Content, P extends {
162
162
  id: string;
163
163
  content: TContent;
164
164
  }>(payload: P): Promise<void>;
165
+ _captureTemplateSwitchIfEnabled(): void;
166
+ applyHistorySnapshot(snapshot: import("@brand-page").BrandPageModel, activePageId?: string | undefined, logoEditsStr?: string | undefined): Promise<void>;
167
+ _syncLogoSettingsFromSnapshot(snapshot: import("@brand-page").BrandPageModel, logoEditsStr?: string | undefined): Promise<void>;
168
+ _navigateToActivePage(activePageId?: string | undefined): void;
169
+ _fallbackSidebarIfSelectedContentMissing(snapshot: import("@brand-page").BrandPageModel): void;
165
170
  export(): import("@brand-page").BrandPageModel;
166
171
  setBrandPageType({ brandPageType }: {
167
172
  brandPageType: "default" | "brandSite" | "brandContact";
@@ -11,6 +11,8 @@ import { navigateToPageByPageId } from '../../routing';
11
11
  import { useBrandPageContainerStore } from '@brand-page-maker/stores';
12
12
  import { UI_DEVICE_MODES, UI_SCREENSIZE_MODES, } from '@shared/models';
13
13
  import { useBrandPageMakerStore, useBrandPageMakerUserStore, useLocalisedRouteStore, useUiStore, useSnapshotStore, useVideoStore, } from '@brand-page-maker/stores';
14
+ import { useHistoryStore } from '@brand-page-maker/stores/history/history-store';
15
+ import { useUndoRedoFlag } from '@brand-page-maker/composables/useUndoRedoFlag';
14
16
  import { useUiContentSettingsStore } from '@shared/content-settings/store';
15
17
  import { useUiTemplateSettingsStore } from '@shared/template-settings/store';
16
18
  import { useUiPageSettingsStore } from '@shared/page-settings/store';
@@ -189,6 +191,12 @@ export default defineComponent({
189
191
  }
190
192
  // Mark brand page as fully loaded
191
193
  this.brandPageMakerStore.setIsBrandPageLoaded(true);
194
+ // Capture baseline for undo/redo when the feature is active for this
195
+ // session — see useUndoRedoFlag.ts for the gate (LaunchDarkly flag +
196
+ // brand-site + non-admin maker).
197
+ if (useUndoRedoFlag().value) {
198
+ useHistoryStore().captureBaseline();
199
+ }
192
200
  this.$emit(EVENTS.Initialised);
193
201
  },
194
202
  mounted() {
@@ -96,16 +96,21 @@ declare const _default: import("vue").DefineComponent<{}, {
96
96
  hideChangeTemplateConfirmModal(): void;
97
97
  onBackgroundChanged(): void;
98
98
  onChangeTemplateConfirmModalCancel(): void;
99
- onChangeTemplateConfirmModalConfirm(): void;
99
+ onChangeTemplateConfirmModalConfirm(): Promise<void>;
100
100
  onContentChanged(): void;
101
101
  onStyleChanged(): void;
102
- onTemplateSelected(payload: import("../../stores").OnTemplateSelectedPayload): void;
102
+ onTemplateSelected(payload: import("../../stores").OnTemplateSelectedPayload): Promise<void>;
103
103
  setSelectedTabName(payload: any): void;
104
104
  showNextNotificationMessage(): Promise<void>;
105
105
  updateContent<TContent extends import("../../../lib").Content, P extends {
106
106
  id: string;
107
107
  content: TContent;
108
108
  }>(payload: P): Promise<void>;
109
+ _captureTemplateSwitchIfEnabled(): void;
110
+ applyHistorySnapshot(snapshot: import("../../../lib").BrandPageModel, activePageId?: string | undefined, logoEditsStr?: string | undefined): Promise<void>;
111
+ _syncLogoSettingsFromSnapshot(snapshot: import("../../../lib").BrandPageModel, logoEditsStr?: string | undefined): Promise<void>;
112
+ _navigateToActivePage(activePageId?: string | undefined): void;
113
+ _fallbackSidebarIfSelectedContentMissing(snapshot: import("../../../lib").BrandPageModel): void;
109
114
  export(): import("../../../lib").BrandPageModel;
110
115
  setBrandPageType({ brandPageType }: {
111
116
  brandPageType: "default" | "brandSite" | "brandContact";
@@ -53,6 +53,7 @@ export const userFeatures = {
53
53
  canUseGettyVideos: false,
54
54
  canUseGoogleAdsense: false,
55
55
  googleAdsenseEnabled: false,
56
+ canUseUndoRedo: false,
56
57
  };
57
58
  export const BRAND_PAGE = {
58
59
  styles: {
@@ -616,16 +616,21 @@ declare const _default: import("vue").DefineComponent<{}, {
616
616
  hideChangeTemplateConfirmModal(): void;
617
617
  onBackgroundChanged(): void;
618
618
  onChangeTemplateConfirmModalCancel(): void;
619
- onChangeTemplateConfirmModalConfirm(): void;
619
+ onChangeTemplateConfirmModalConfirm(): Promise<void>;
620
620
  onContentChanged(): void;
621
621
  onStyleChanged(): void;
622
- onTemplateSelected(payload: import("@brand-page-maker/stores").OnTemplateSelectedPayload): void;
622
+ onTemplateSelected(payload: import("@brand-page-maker/stores").OnTemplateSelectedPayload): Promise<void>;
623
623
  setSelectedTabName(payload: any): void;
624
624
  showNextNotificationMessage(): Promise<void>;
625
625
  updateContent<TContent extends Content, P extends {
626
626
  id: string;
627
627
  content: TContent;
628
628
  }>(payload: P): Promise<void>;
629
+ _captureTemplateSwitchIfEnabled(): void;
630
+ applyHistorySnapshot(snapshot: import("@brand-page").BrandPageModel, activePageId?: string | undefined, logoEditsStr?: string | undefined): Promise<void>;
631
+ _syncLogoSettingsFromSnapshot(snapshot: import("@brand-page").BrandPageModel, logoEditsStr?: string | undefined): Promise<void>;
632
+ _navigateToActivePage(activePageId?: string | undefined): void;
633
+ _fallbackSidebarIfSelectedContentMissing(snapshot: import("@brand-page").BrandPageModel): void;
629
634
  export(): import("@brand-page").BrandPageModel;
630
635
  setBrandPageType({ brandPageType }: {
631
636
  brandPageType: "default" | "brandSite" | "brandContact";
@@ -1060,6 +1065,22 @@ declare const _default: import("vue").DefineComponent<{}, {
1060
1065
  }>;
1061
1066
  eventTracker: {
1062
1067
  sendShippingToggleEvent: (isEnabled: boolean) => void;
1068
+ sendUndoEvent: (props: {
1069
+ entries_count: number;
1070
+ actor: string | undefined;
1071
+ }) => void;
1072
+ sendRedoEvent: (props: {
1073
+ entries_count: number;
1074
+ actor: string | undefined;
1075
+ }) => void;
1076
+ sendHistoryCappedEvent: (props: {
1077
+ entries_count: number;
1078
+ size_bytes: number;
1079
+ }) => void;
1080
+ sendHistoryOversizedEvent: (props: {
1081
+ attempted_bytes: number;
1082
+ source: string;
1083
+ }) => void;
1063
1084
  sendSaveContactEvent: () => void;
1064
1085
  sendStartForFreeEvent: () => void;
1065
1086
  sendFooterLinkClickEvent: (linkType: "watermark_logo" | "create_your_website") => void;
@@ -1164,6 +1185,73 @@ declare const _default: import("vue").DefineComponent<{}, {
1164
1185
  }): Promise<void>;
1165
1186
  toggleLogoBackground(): Promise<any>;
1166
1187
  }>;
1188
+ historyStore: import("pinia").Store<"history", Pick<{
1189
+ entries: import("vue").ShallowRef<import("@brand-page-maker/stores/history/history-store").HistoryEntry[], import("@brand-page-maker/stores/history/history-store").HistoryEntry[]>;
1190
+ currentIndex: import("vue").Ref<number, number>;
1191
+ isApplyingSnapshot: import("vue").Ref<boolean, boolean>;
1192
+ snapshotAppliedToken: import("vue").Ref<number, number>;
1193
+ baselineCaptured: import("vue").Ref<boolean, boolean>;
1194
+ canUndo: import("vue").ComputedRef<boolean>;
1195
+ canRedo: import("vue").ComputedRef<boolean>;
1196
+ captureBaseline: () => void;
1197
+ capture: (args: {
1198
+ source: "manual_edit" | "template_switch" | "ai_changeset" | "rich_text";
1199
+ actor: "user" | "ai_builder";
1200
+ label?: string | undefined;
1201
+ }) => "committed" | "oversized" | "noop" | "skipped";
1202
+ captureTemplateSwitch: (label?: string | undefined) => "committed" | "oversized" | "noop" | "skipped";
1203
+ captureAiChangeset: (label?: string | undefined) => "committed" | "oversized" | "noop" | "skipped";
1204
+ mergeNextMutation: () => void;
1205
+ undo: () => Promise<void>;
1206
+ redo: () => Promise<void>;
1207
+ reset: () => void;
1208
+ getCurrentSizeBytes: () => number;
1209
+ getCurrentEntryCount: () => number;
1210
+ }, "entries" | "currentIndex" | "isApplyingSnapshot" | "snapshotAppliedToken" | "baselineCaptured">, Pick<{
1211
+ entries: import("vue").ShallowRef<import("@brand-page-maker/stores/history/history-store").HistoryEntry[], import("@brand-page-maker/stores/history/history-store").HistoryEntry[]>;
1212
+ currentIndex: import("vue").Ref<number, number>;
1213
+ isApplyingSnapshot: import("vue").Ref<boolean, boolean>;
1214
+ snapshotAppliedToken: import("vue").Ref<number, number>;
1215
+ baselineCaptured: import("vue").Ref<boolean, boolean>;
1216
+ canUndo: import("vue").ComputedRef<boolean>;
1217
+ canRedo: import("vue").ComputedRef<boolean>;
1218
+ captureBaseline: () => void;
1219
+ capture: (args: {
1220
+ source: "manual_edit" | "template_switch" | "ai_changeset" | "rich_text";
1221
+ actor: "user" | "ai_builder";
1222
+ label?: string | undefined;
1223
+ }) => "committed" | "oversized" | "noop" | "skipped";
1224
+ captureTemplateSwitch: (label?: string | undefined) => "committed" | "oversized" | "noop" | "skipped";
1225
+ captureAiChangeset: (label?: string | undefined) => "committed" | "oversized" | "noop" | "skipped";
1226
+ mergeNextMutation: () => void;
1227
+ undo: () => Promise<void>;
1228
+ redo: () => Promise<void>;
1229
+ reset: () => void;
1230
+ getCurrentSizeBytes: () => number;
1231
+ getCurrentEntryCount: () => number;
1232
+ }, "canUndo" | "canRedo">, Pick<{
1233
+ entries: import("vue").ShallowRef<import("@brand-page-maker/stores/history/history-store").HistoryEntry[], import("@brand-page-maker/stores/history/history-store").HistoryEntry[]>;
1234
+ currentIndex: import("vue").Ref<number, number>;
1235
+ isApplyingSnapshot: import("vue").Ref<boolean, boolean>;
1236
+ snapshotAppliedToken: import("vue").Ref<number, number>;
1237
+ baselineCaptured: import("vue").Ref<boolean, boolean>;
1238
+ canUndo: import("vue").ComputedRef<boolean>;
1239
+ canRedo: import("vue").ComputedRef<boolean>;
1240
+ captureBaseline: () => void;
1241
+ capture: (args: {
1242
+ source: "manual_edit" | "template_switch" | "ai_changeset" | "rich_text";
1243
+ actor: "user" | "ai_builder";
1244
+ label?: string | undefined;
1245
+ }) => "committed" | "oversized" | "noop" | "skipped";
1246
+ captureTemplateSwitch: (label?: string | undefined) => "committed" | "oversized" | "noop" | "skipped";
1247
+ captureAiChangeset: (label?: string | undefined) => "committed" | "oversized" | "noop" | "skipped";
1248
+ mergeNextMutation: () => void;
1249
+ undo: () => Promise<void>;
1250
+ redo: () => Promise<void>;
1251
+ reset: () => void;
1252
+ getCurrentSizeBytes: () => number;
1253
+ getCurrentEntryCount: () => number;
1254
+ }, "reset" | "undo" | "redo" | "captureBaseline" | "capture" | "captureTemplateSwitch" | "captureAiChangeset" | "mergeNextMutation" | "getCurrentSizeBytes" | "getCurrentEntryCount">>;
1167
1255
  }, {
1168
1256
  isDraggingContent: boolean;
1169
1257
  isContentSelected: boolean;
@@ -15,6 +15,7 @@ import { transformToRTE, RTE_ALLOWED_SECTION_TYPES, } from '@brand-page-maker/ut
15
15
  import { useExternalRichTextEditor } from '@brand-page-maker/composables/rich-text-editor/useRichTextEditor';
16
16
  import { useUiStyleSettingsStore } from '@shared/style-settings/store';
17
17
  import { STYLE_THEME_KEYS } from '@brand-page/constants';
18
+ import { useHistoryStore } from '@brand-page-maker/stores/history/history-store';
18
19
  export default defineComponent({
19
20
  mixins: [PageMixin],
20
21
  setup() {
@@ -29,6 +30,7 @@ export default defineComponent({
29
30
  const eventTracker = useEventTracker();
30
31
  const { externalEditor } = useExternalRichTextEditor();
31
32
  const styleSettingsStore = useUiStyleSettingsStore();
33
+ const historyStore = useHistoryStore();
32
34
  return {
33
35
  items: computed(() => contentSettingsStore.items),
34
36
  selectedItemId: computed(() => contentSettingsStore.selectedItemId),
@@ -51,6 +53,7 @@ export default defineComponent({
51
53
  eventTracker,
52
54
  externalEditor,
53
55
  styleSettingsStore,
56
+ historyStore,
54
57
  };
55
58
  },
56
59
  data() {
@@ -214,6 +217,8 @@ export default defineComponent({
214
217
  selectedItem = currentItem.settings.content;
215
218
  }
216
219
  }
220
+ // RTE rewrap on section selection — fold into current head.
221
+ this.historyStore.mergeNextMutation();
217
222
  transformToRTE(this.pageSettingsStore, this.externalEditor, this.styleSettingsStore, selectedItem);
218
223
  }
219
224
  if (this.selectEventDebounceHandler) {
@@ -102,16 +102,21 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
102
102
  hideChangeTemplateConfirmModal(): void;
103
103
  onBackgroundChanged(): void;
104
104
  onChangeTemplateConfirmModalCancel(): void;
105
- onChangeTemplateConfirmModalConfirm(): void;
105
+ onChangeTemplateConfirmModalConfirm(): Promise<void>;
106
106
  onContentChanged(): void;
107
107
  onStyleChanged(): void;
108
- onTemplateSelected(payload: import("@brand-page-maker/stores").OnTemplateSelectedPayload): void;
108
+ onTemplateSelected(payload: import("@brand-page-maker/stores").OnTemplateSelectedPayload): Promise<void>;
109
109
  setSelectedTabName(payload: any): void;
110
110
  showNextNotificationMessage(): Promise<void>;
111
111
  updateContent<TContent extends import("../../../brand-page").Content, P extends {
112
112
  id: string;
113
113
  content: TContent;
114
114
  }>(payload: P): Promise<void>;
115
+ _captureTemplateSwitchIfEnabled(): void;
116
+ applyHistorySnapshot(snapshot: import("../../../brand-page").BrandPageModel, activePageId?: string | undefined, logoEditsStr?: string | undefined): Promise<void>;
117
+ _syncLogoSettingsFromSnapshot(snapshot: import("../../../brand-page").BrandPageModel, logoEditsStr?: string | undefined): Promise<void>;
118
+ _navigateToActivePage(activePageId?: string | undefined): void;
119
+ _fallbackSidebarIfSelectedContentMissing(snapshot: import("../../../brand-page").BrandPageModel): void;
115
120
  export(): import("../../../brand-page").BrandPageModel;
116
121
  setBrandPageType({ brandPageType }: {
117
122
  brandPageType: "default" | "brandSite" | "brandContact";
@@ -291,9 +291,12 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
291
291
  pushManageWebPageUpdateSensitiveContentClickEvent(): Promise<void>;
292
292
  pushManageWebPageUnpublishClickEvent(): Promise<void>;
293
293
  }>;
294
+ undoRedoEnabled: import("vue").ComputedRef<boolean>;
294
295
  }, {
295
296
  copied: boolean;
296
297
  }, {
298
+ isPublished(): boolean;
299
+ shouldShowBar(): boolean;
297
300
  brandPageUrl(): string;
298
301
  copyButtonLabel(): string;
299
302
  }, {
@@ -1,6 +1,7 @@
1
1
  import { defineComponent } from 'vue';
2
2
  import { CUSTOM_DOMAIN_STATUSES } from '@brand-page-maker/constants';
3
3
  import { useBrandPageContainerStore, useEventManagerStore, } from '@brand-page-maker/stores';
4
+ import { useUndoRedoFlag } from '@brand-page-maker/composables/useUndoRedoFlag';
4
5
  import { quickLinkBarTr } from '@src/composables/useTranslate';
5
6
  export default defineComponent({
6
7
  props: {
@@ -17,6 +18,7 @@ export default defineComponent({
17
18
  return {
18
19
  brandPageContainerStore: useBrandPageContainerStore(),
19
20
  eventManagerStore: useEventManagerStore(),
21
+ undoRedoEnabled: useUndoRedoFlag(),
20
22
  };
21
23
  },
22
24
  data() {
@@ -25,6 +27,15 @@ export default defineComponent({
25
27
  };
26
28
  },
27
29
  computed: {
30
+ isPublished() {
31
+ return this.brandPageContainerStore.isPublished;
32
+ },
33
+ // Only render the bar when at least one inner cluster has something to
34
+ // show. Otherwise we'd render an empty white strip — e.g. on an
35
+ // unpublished page with the undo flag off.
36
+ shouldShowBar() {
37
+ return Boolean(this.undoRedoEnabled) || this.isPublished;
38
+ },
28
39
  brandPageUrl() {
29
40
  if (this.brandPageContainerStore.isCustomDomainEnabled &&
30
41
  this.brandPageContainerStore.customDomain &&
@@ -380,16 +380,21 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
380
380
  hideChangeTemplateConfirmModal(): void;
381
381
  onBackgroundChanged(): void;
382
382
  onChangeTemplateConfirmModalCancel(): void;
383
- onChangeTemplateConfirmModalConfirm(): void;
383
+ onChangeTemplateConfirmModalConfirm(): Promise<void>;
384
384
  onContentChanged(): void;
385
385
  onStyleChanged(): void;
386
- onTemplateSelected(payload: import("@brand-page-maker/stores").OnTemplateSelectedPayload): void;
386
+ onTemplateSelected(payload: import("@brand-page-maker/stores").OnTemplateSelectedPayload): Promise<void>;
387
387
  setSelectedTabName(payload: any): void;
388
388
  showNextNotificationMessage(): Promise<void>;
389
389
  updateContent<TContent extends import("../../../brand-page").Content, P extends {
390
390
  id: string;
391
391
  content: TContent;
392
392
  }>(payload: P): Promise<void>;
393
+ _captureTemplateSwitchIfEnabled(): void;
394
+ applyHistorySnapshot(snapshot: import("../../../brand-page").BrandPageModel, activePageId?: string | undefined, logoEditsStr?: string | undefined): Promise<void>;
395
+ _syncLogoSettingsFromSnapshot(snapshot: import("../../../brand-page").BrandPageModel, logoEditsStr?: string | undefined): Promise<void>;
396
+ _navigateToActivePage(activePageId?: string | undefined): void;
397
+ _fallbackSidebarIfSelectedContentMissing(snapshot: import("../../../brand-page").BrandPageModel): void;
393
398
  export(): import("../../../brand-page").BrandPageModel;
394
399
  setBrandPageType({ brandPageType }: {
395
400
  brandPageType: "default" | "brandSite" | "brandContact";
@@ -381,16 +381,21 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
381
381
  hideChangeTemplateConfirmModal(): void;
382
382
  onBackgroundChanged(): void;
383
383
  onChangeTemplateConfirmModalCancel(): void;
384
- onChangeTemplateConfirmModalConfirm(): void;
384
+ onChangeTemplateConfirmModalConfirm(): Promise<void>;
385
385
  onContentChanged(): void;
386
386
  onStyleChanged(): void;
387
- onTemplateSelected(payload: import("@brand-page-maker/stores").OnTemplateSelectedPayload): void;
387
+ onTemplateSelected(payload: import("@brand-page-maker/stores").OnTemplateSelectedPayload): Promise<void>;
388
388
  setSelectedTabName(payload: any): void;
389
389
  showNextNotificationMessage(): Promise<void>;
390
390
  updateContent<TContent extends import("../../../brand-page").Content, P extends {
391
391
  id: string;
392
392
  content: TContent;
393
393
  }>(payload: P): Promise<void>;
394
+ _captureTemplateSwitchIfEnabled(): void;
395
+ applyHistorySnapshot(snapshot: import("../../../brand-page").BrandPageModel, activePageId?: string | undefined, logoEditsStr?: string | undefined): Promise<void>;
396
+ _syncLogoSettingsFromSnapshot(snapshot: import("../../../brand-page").BrandPageModel, logoEditsStr?: string | undefined): Promise<void>;
397
+ _navigateToActivePage(activePageId?: string | undefined): void;
398
+ _fallbackSidebarIfSelectedContentMissing(snapshot: import("../../../brand-page").BrandPageModel): void;
394
399
  export(): import("../../../brand-page").BrandPageModel;
395
400
  setBrandPageType({ brandPageType }: {
396
401
  brandPageType: "default" | "brandSite" | "brandContact";