@designcrowd/library.brand-page 5.18.6 → 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 (218) hide show
  1. package/lib/src/{CreatedOnBrandCrowd-de-de-DlYq1LAT.js → CreatedOnBrandCrowd-de-de-Cn8zNuGM.js} +1 -1
  2. package/lib/src/{CreatedOnBrandCrowd-en-us-BssRIQqn.js → CreatedOnBrandCrowd-en-us-CP8xAFc-.js} +1 -1
  3. package/lib/src/{CreatedOnBrandCrowd-es-es-BGF9pptH.js → CreatedOnBrandCrowd-es-es-Ds8NijwP.js} +1 -1
  4. package/lib/src/{CreatedOnBrandCrowd-fr-fr-Caupqu2Z.js → CreatedOnBrandCrowd-fr-ca-BiVV_7lj.js} +1 -1
  5. package/lib/src/{CreatedOnBrandCrowd-fr-ca-Caupqu2Z.js → CreatedOnBrandCrowd-fr-fr-BiVV_7lj.js} +1 -1
  6. package/lib/src/{CreatedOnBrandCrowd-pt-pt-s9q4uJ4u.js → CreatedOnBrandCrowd-pt-br-CjjrYojo.js} +1 -1
  7. package/lib/src/{CreatedOnBrandCrowd-pt-br-s9q4uJ4u.js → CreatedOnBrandCrowd-pt-pt-CjjrYojo.js} +1 -1
  8. package/lib/src/{CreatedOnDcom-de-de-UnYnZbA7.js → CreatedOnDcom-de-de-ChR5jvlP.js} +1 -1
  9. package/lib/src/{CreatedOnDcom-en-us-rDv6H12L.js → CreatedOnDcom-en-us-C4rO1BMA.js} +1 -1
  10. package/lib/src/{CreatedOnDcom-es-es-DKPLaT6o.js → CreatedOnDcom-es-es-DxGMS6JK.js} +1 -1
  11. package/lib/src/{CreatedOnDcom-fr-ca-DAv34bG7.js → CreatedOnDcom-fr-ca-n31u4t7u.js} +1 -1
  12. package/lib/src/{CreatedOnDcom-fr-fr-DsOHnS8q.js → CreatedOnDcom-fr-fr-gwdsX7YV.js} +1 -1
  13. package/lib/src/{CreatedOnDcom-pt-br-DpjDBCLj.js → CreatedOnDcom-pt-br-iZjFp--s.js} +1 -1
  14. package/lib/src/{CreatedOnDcom-pt-pt-rFG0unf1.js → CreatedOnDcom-pt-pt-B3Z3-RLC.js} +1 -1
  15. package/lib/src/brand-page/components/contact-form/ContactForm.mixin.d.ts +4 -0
  16. package/lib/src/brand-page/components/contact-form/ContactForm.mixin.js +8 -4
  17. package/lib/src/brand-page/components/image-gallery/ImageGallery.mixin.d.ts +4 -0
  18. package/lib/src/brand-page/components/image-gallery/ImageGallery.mixin.js +4 -0
  19. package/lib/src/brand-page/components/mailing-list/MailingList.mixin.d.ts +4 -0
  20. package/lib/src/brand-page/components/mailing-list/MailingList.mixin.js +4 -1
  21. package/lib/src/brand-page/components/payment/request-payment/RequestPayment.mixin.d.ts +4 -0
  22. package/lib/src/brand-page/components/payment/request-payment/RequestPayment.mixin.js +4 -0
  23. package/lib/src/brand-page/components/payment/support-me/SupportMe.mixin.d.ts +4 -0
  24. package/lib/src/brand-page/components/payment/support-me/SupportMe.mixin.js +4 -1
  25. package/lib/src/brand-page/components/video/Video.mixin.d.ts +4 -0
  26. package/lib/src/brand-page/components/video/Video.mixin.js +4 -0
  27. package/lib/src/brand-page/constants/misc.constants.d.ts +26 -0
  28. package/lib/src/brand-page/constants/misc.constants.js +42 -0
  29. package/lib/src/brand-page/models/content.model.d.ts +2 -0
  30. package/lib/src/brand-page/utils/content-padding.util.d.ts +13 -0
  31. package/lib/src/brand-page/utils/content-padding.util.js +10 -0
  32. package/lib/src/brand-page/utils/index.d.ts +1 -0
  33. package/lib/src/brand-page/utils/index.js +1 -0
  34. package/lib/src/brand-page/utils/migration/migration-17.d.ts +2 -0
  35. package/lib/src/brand-page/utils/migration/migration-17.js +48 -0
  36. package/lib/src/brand-page/utils/migration.util.js +10 -0
  37. package/lib/src/brand-page-maker/components/action-bar/ActionBar.mixin.d.ts +7 -2
  38. package/lib/src/brand-page-maker/components/admin-logo-settings/AdminLogoSettings.mixin.d.ts +2 -0
  39. package/lib/src/brand-page-maker/components/brand-page-maker/BrandPageMaker.mixin.d.ts +19 -2
  40. package/lib/src/brand-page-maker/components/brand-page-maker/BrandPageMaker.mixin.js +8 -0
  41. package/lib/src/brand-page-maker/components/brand-page-maker/BrandPageMakerTemplateSettings.mixin.d.ts +7 -2
  42. package/lib/src/brand-page-maker/components/brand-page-maker/__fixtures__/brand-page-examples.js +1 -0
  43. package/lib/src/brand-page-maker/components/brandpage-maker-page/BrandPageMakerPage.mixin.d.ts +104 -2
  44. package/lib/src/brand-page-maker/components/brandpage-maker-page/BrandPageMakerPage.mixin.js +5 -0
  45. package/lib/src/brand-page-maker/components/brandpage-settings/ReplaceImageSettingsForBrandPageSettings.mixin.d.ts +7 -2
  46. package/lib/src/brand-page-maker/components/quick-link-bar/QuickLinkBar.mixin.d.ts +3 -0
  47. package/lib/src/brand-page-maker/components/quick-link-bar/QuickLinkBar.mixin.js +11 -0
  48. package/lib/src/brand-page-maker/components/seo-settings/SeoPageSettings.mixin.d.ts +7 -2
  49. package/lib/src/brand-page-maker/components/seo-settings/UrlSettings.mixin.d.ts +7 -2
  50. package/lib/src/brand-page-maker/components/social-share/SocialShare.mixin.d.ts +7 -2
  51. package/lib/src/brand-page-maker/components/template-preview/TemplatePreview.mixin.d.ts +7 -2
  52. package/lib/src/brand-page-maker/composables/ai-chat/useAiWebsiteBuilderChat.js +9 -0
  53. package/lib/src/brand-page-maker/composables/rich-text-editor/useRichTextEditor.js +21 -1
  54. package/lib/src/brand-page-maker/composables/useEventTracker.d.ts +20 -0
  55. package/lib/src/brand-page-maker/composables/useEventTracker.js +17 -0
  56. package/lib/src/brand-page-maker/composables/useUndoRedoFlag.d.ts +17 -0
  57. package/lib/src/brand-page-maker/composables/useUndoRedoFlag.js +25 -0
  58. package/lib/src/brand-page-maker/constants/config-settings-constant.js +38 -0
  59. package/lib/src/brand-page-maker/convertors/about-display-style.convertor.js +9 -1
  60. package/lib/src/brand-page-maker/convertors/banner-align-display-style.convertor.js +7 -1
  61. package/lib/src/brand-page-maker/convertors/contact-layout-style.convertor.js +6 -1
  62. package/lib/src/brand-page-maker/models/content-settings.js +36 -2
  63. package/lib/src/brand-page-maker/stores/ai-checkpoint/ai-checkpoint-store.d.ts +12 -0
  64. package/lib/src/brand-page-maker/stores/brandpage-maker/brandpage-maker-store.d.ts +41 -2
  65. package/lib/src/brand-page-maker/stores/brandpage-maker/brandpage-maker-store.js +307 -5
  66. package/lib/src/brand-page-maker/stores/history/history-store.d.ts +86 -0
  67. package/lib/src/brand-page-maker/stores/history/history-store.js +501 -0
  68. package/lib/src/brand-page-maker/stores/logo-store/logo-store.d.ts +1 -0
  69. package/lib/src/brand-page-maker/stores/user/user-store.js +1 -0
  70. package/lib/src/bundled-translations-BUyt4scr.js +175 -0
  71. package/lib/src/bundled-translations.de-DE-DEw_OVai.js +175 -0
  72. package/lib/src/bundled-translations.es-ES-CFKWmkgY.js +175 -0
  73. package/lib/src/bundled-translations.fr-CA-DCl5LJS4.js +175 -0
  74. package/lib/src/bundled-translations.fr-FR-B5BjgllA.js +175 -0
  75. package/lib/src/bundled-translations.pt-BR-5PWpMPuM.js +175 -0
  76. package/lib/src/bundled-translations.pt-PT-B9_wN0HR.js +175 -0
  77. package/lib/src/bundles/bundled-translations.de-DE.json +5 -1
  78. package/lib/src/bundles/bundled-translations.es-ES.json +5 -1
  79. package/lib/src/bundles/bundled-translations.fr-CA.json +5 -1
  80. package/lib/src/bundles/bundled-translations.fr-FR.json +5 -1
  81. package/lib/src/bundles/bundled-translations.json +5 -1
  82. package/lib/src/bundles/bundled-translations.pt-BR.json +5 -1
  83. package/lib/src/bundles/bundled-translations.pt-PT.json +5 -1
  84. package/lib/src/constants/ui.d.ts +1 -0
  85. package/lib/src/css/library.brand-page-brandCrowd.min.css +128 -131
  86. package/lib/src/css/library.brand-page-brandPage.min.css +128 -132
  87. package/lib/src/css/library.brand-page-designCom.min.css +128 -131
  88. package/lib/src/css/library.brand-page-preview.min.css +128 -131
  89. package/lib/src/index.mjs +1 -1
  90. package/lib/src/{lib-ngdDRkSL.js → lib-CIj_C38s.js} +36378 -35591
  91. package/lib/src/shared/content-settings/components/content-settings/ContentSettings.mixin.d.ts +104 -2
  92. package/lib/src/shared/content-settings/components/content-settings/ContentSettings.mixin.js +5 -0
  93. package/lib/src/shared/content-settings/components/content-settings/ContentSettings.stories.js +1 -0
  94. package/lib/src/shared/content-settings/components/content-settings/ReplaceImageSettingsForContent.mixin.d.ts +37 -2
  95. package/lib/src/shared/content-settings/components/content-settings-item/ContentSettingsItem.mixin.d.ts +28 -0
  96. package/lib/src/shared/content-settings/components/content-settings-item/ContentSettingsItemField.mixin.d.ts +19 -2
  97. package/lib/src/shared/content-settings/components/draggable-item-list/DraggableItemList.mixin.d.ts +3 -0
  98. package/lib/src/shared/content-settings/components/draggable-item-list/DraggableItemList.mixin.js +19 -2
  99. package/lib/src/shared/content-settings/components/focused-content-item-settings/FocusedContentItemSettings.mixin.d.ts +12 -0
  100. package/lib/src/shared/content-settings/components/form-fields-field/FormFieldsField.mixin.js +18 -8
  101. package/lib/src/shared/content-settings/components/payment-config-field/PaymentConfigField.mixin.d.ts +67 -0
  102. package/lib/src/shared/content-settings/components/payment-config-field/PaymentConfigField.mixin.js +6 -0
  103. package/lib/src/shared/content-settings/components/slider-field/SliderField.mixin.js +9 -0
  104. package/lib/src/shared/content-settings/store/content-settings-store.d.ts +12 -0
  105. package/lib/src/shared/logo-settings/components/EditLogoSettings.mixin.d.ts +19 -0
  106. package/lib/src/shared/logo-settings/components/EditLogoSettings.mixin.js +11 -0
  107. package/lib/src/shared/logo-settings/components/LogoSettings.mixin.d.ts +10 -2
  108. package/lib/src/shared/logo-settings/store/editable-logo-store.d.ts +5 -1
  109. package/lib/src/shared/logo-settings/store/editable-logo-store.js +31 -0
  110. package/lib/src/shared/page-settings/components/page-settings/PageSettings.mixin.d.ts +40 -2
  111. package/lib/src/shared/page-settings/components/page-settings-section-styles/PageSettingsSectionStyles.mixin.d.ts +24 -2
  112. package/lib/src/shared/publish-brand-page-with-state/PublishBrandPageModalWithState.mixin.d.ts +23 -2
  113. package/lib/src/shared/side-bar/components/SideBarTabButton.mixin.d.ts +16 -0
  114. package/lib/src/shared/style-settings/components/StyleSettings.mixin.d.ts +23 -2
  115. package/lib/src/shared/template-settings/components/TemplatesSettings.mixin.d.ts +16 -0
  116. package/lib/src/utils/minify-brand-page-metadata.js +11 -1
  117. package/package.json +1 -1
  118. package/src/brand-page/components/about-section/AboutSection.vue +10 -4
  119. package/src/brand-page/components/banner-section/BannerSection.vue +11 -4
  120. package/src/brand-page/components/booking-section/BookingSection.vue +11 -3
  121. package/src/brand-page/components/contact-form/ContactForm.mixin.ts +12 -6
  122. package/src/brand-page/components/contact-form/ContactForm.vue +105 -104
  123. package/src/brand-page/components/image-gallery/ImageGallery.mixin.ts +5 -0
  124. package/src/brand-page/components/image-gallery/ImageGallery.vue +1 -1
  125. package/src/brand-page/components/mailing-list/MailingList.mixin.ts +8 -1
  126. package/src/brand-page/components/mailing-list/MailingList.vue +1 -1
  127. package/src/brand-page/components/map/Map.vue +5 -1
  128. package/src/brand-page/components/payment/request-payment/RequestPayment.mixin.ts +5 -0
  129. package/src/brand-page/components/payment/request-payment/RequestPayment.vue +1 -0
  130. package/src/brand-page/components/payment/support-me/SupportMe.mixin.ts +8 -1
  131. package/src/brand-page/components/payment/support-me/SupportMe.vue +1 -0
  132. package/src/brand-page/components/shop/Shop.vue +7 -2
  133. package/src/brand-page/components/social-links/SocialLinks.vue +7 -3
  134. package/src/brand-page/components/text/Text.vue +12 -5
  135. package/src/brand-page/components/text-media-section/TextMediaSection.vue +11 -3
  136. package/src/brand-page/components/video/Video.mixin.ts +5 -0
  137. package/src/brand-page/components/video/Video.vue +1 -1
  138. package/src/brand-page/constants/misc.constants.ts +48 -0
  139. package/src/brand-page/models/content.model.ts +2 -0
  140. package/src/brand-page/utils/__snapshots__/migration.util.test.ts.snap +9 -3
  141. package/src/brand-page/utils/content-padding.util.test.ts +29 -0
  142. package/src/brand-page/utils/content-padding.util.ts +13 -0
  143. package/src/brand-page/utils/index.ts +1 -0
  144. package/src/brand-page/utils/migration/migration-17.ts +65 -0
  145. package/src/brand-page/utils/migration.util.test.ts +195 -0
  146. package/src/brand-page/utils/migration.util.ts +11 -0
  147. package/src/brand-page-maker/components/brand-page-maker/BrandPageMaker.mixin.ts +9 -0
  148. package/src/brand-page-maker/components/brand-page-maker/BrandPageMaker.vue +2 -3
  149. package/src/brand-page-maker/components/brand-page-maker/__fixtures__/brand-page-examples.ts +1 -0
  150. package/src/brand-page-maker/components/brandpage-maker-page/BrandPageMakerPage.mixin.ts +5 -0
  151. package/src/brand-page-maker/components/cookie-collection/CookieSettings.vue +18 -17
  152. package/src/brand-page-maker/components/quick-link-bar/QuickLinkBar.mixin.ts +13 -0
  153. package/src/brand-page-maker/components/quick-link-bar/QuickLinkBar.vue +26 -3
  154. package/src/brand-page-maker/components/quick-link-bar/RedoButton.vue +66 -0
  155. package/src/brand-page-maker/components/quick-link-bar/UndoButton.vue +66 -0
  156. package/src/brand-page-maker/components/quick-link-bar/i18n/quick-link-bar.de-DE.json +6 -4
  157. package/src/brand-page-maker/components/quick-link-bar/i18n/quick-link-bar.es-ES.json +6 -4
  158. package/src/brand-page-maker/components/quick-link-bar/i18n/quick-link-bar.fr-CA.json +6 -4
  159. package/src/brand-page-maker/components/quick-link-bar/i18n/quick-link-bar.fr-FR.json +6 -4
  160. package/src/brand-page-maker/components/quick-link-bar/i18n/quick-link-bar.json +3 -1
  161. package/src/brand-page-maker/components/quick-link-bar/i18n/quick-link-bar.pt-BR.json +6 -4
  162. package/src/brand-page-maker/components/quick-link-bar/i18n/quick-link-bar.pt-PT.json +6 -4
  163. package/src/brand-page-maker/components/quick-link-bar/undo-redo-buttons.test.ts +116 -0
  164. package/src/brand-page-maker/components/save-contact/SaveContact.vue +12 -19
  165. package/src/brand-page-maker/composables/ai-chat/useAiWebsiteBuilderChat.ts +10 -0
  166. package/src/brand-page-maker/composables/rich-text-editor/useRichTextEditor.ts +28 -1
  167. package/src/brand-page-maker/composables/useEventTracker.ts +29 -0
  168. package/src/brand-page-maker/composables/useUndoRedoFlag.ts +30 -0
  169. package/src/brand-page-maker/constants/config-settings-constant.ts +44 -0
  170. package/src/brand-page-maker/convertors/about-display-style.convertor.ts +10 -0
  171. package/src/brand-page-maker/convertors/banner-align-display-style.convertor.ts +8 -0
  172. package/src/brand-page-maker/convertors/contact-layout-style.convertor.test.ts +50 -0
  173. package/src/brand-page-maker/convertors/contact-layout-style.convertor.ts +8 -0
  174. package/src/brand-page-maker/models/content-settings.ts +38 -2
  175. package/src/brand-page-maker/stores/brandpage-maker/brandpage-maker-store.test.ts +334 -0
  176. package/src/brand-page-maker/stores/brandpage-maker/brandpage-maker-store.ts +371 -4
  177. package/src/brand-page-maker/stores/history/history-store.test.ts +1120 -0
  178. package/src/brand-page-maker/stores/history/history-store.ts +666 -0
  179. package/src/brand-page-maker/stores/logo-store/logo-store.ts +5 -0
  180. package/src/brand-page-maker/stores/user/user-store.ts +1 -0
  181. package/src/bundles/bundled-translations.de-DE.json +5 -1
  182. package/src/bundles/bundled-translations.es-ES.json +5 -1
  183. package/src/bundles/bundled-translations.fr-CA.json +5 -1
  184. package/src/bundles/bundled-translations.fr-FR.json +5 -1
  185. package/src/bundles/bundled-translations.json +5 -1
  186. package/src/bundles/bundled-translations.pt-BR.json +5 -1
  187. package/src/bundles/bundled-translations.pt-PT.json +5 -1
  188. package/src/constants/ui.ts +1 -0
  189. package/src/shared/content-settings/components/content-settings/ContentSettings.mixin.ts +5 -0
  190. package/src/shared/content-settings/components/content-settings/ContentSettings.stories.ts +1 -0
  191. package/src/shared/content-settings/components/content-settings/i18n/content-settings.de-DE.json +2 -0
  192. package/src/shared/content-settings/components/content-settings/i18n/content-settings.es-ES.json +2 -0
  193. package/src/shared/content-settings/components/content-settings/i18n/content-settings.fr-CA.json +2 -0
  194. package/src/shared/content-settings/components/content-settings/i18n/content-settings.fr-FR.json +2 -0
  195. package/src/shared/content-settings/components/content-settings/i18n/content-settings.json +2 -0
  196. package/src/shared/content-settings/components/content-settings/i18n/content-settings.pt-BR.json +2 -0
  197. package/src/shared/content-settings/components/content-settings/i18n/content-settings.pt-PT.json +2 -0
  198. package/src/shared/content-settings/components/content-settings-item/ContentSettingsItem.vue +1 -1
  199. package/src/shared/content-settings/components/draggable-item-list/DraggableItemList.mixin.ts +19 -2
  200. package/src/shared/content-settings/components/draggable-item-list/DraggableItemList.vue +1 -1
  201. package/src/shared/content-settings/components/focused-content-item-settings/FocusedContentItemSettings.vue +2 -2
  202. package/src/shared/content-settings/components/form-fields-field/FormFieldsField.mixin.ts +26 -10
  203. package/src/shared/content-settings/components/logo-selection-field/LogoSelection.vue +63 -48
  204. package/src/shared/content-settings/components/page-dropdown-field/PageDropdownField.vue +4 -0
  205. package/src/shared/content-settings/components/payment-config-field/PaymentConfigField.mixin.ts +7 -0
  206. package/src/shared/content-settings/components/slider-field/SliderField.mixin.ts +9 -0
  207. package/src/shared/content-settings/components/text-field/TextField.vue +1 -0
  208. package/src/shared/content-settings/components/text-image-field/TextImageField.vue +33 -4
  209. package/src/shared/logo-settings/components/EditLogoSettings.mixin.ts +11 -0
  210. package/src/shared/logo-settings/store/editable-logo-store.ts +42 -1
  211. package/src/utils/minify-brand-page-metadata.ts +11 -1
  212. package/lib/src/bundled-translations-B5Fkt3qd.js +0 -175
  213. package/lib/src/bundled-translations.de-DE-DpdVePM9.js +0 -175
  214. package/lib/src/bundled-translations.es-ES-BsIcrzZF.js +0 -175
  215. package/lib/src/bundled-translations.fr-CA-G1XCp2Qh.js +0 -175
  216. package/lib/src/bundled-translations.fr-FR-BdwLXOnB.js +0 -175
  217. package/lib/src/bundled-translations.pt-BR-Bvn5ePe7.js +0 -175
  218. package/lib/src/bundled-translations.pt-PT-CDtkb2k1.js +0 -175
@@ -18,6 +18,8 @@ declare const _default: import("vue").DefineComponent<{}, {
18
18
  id: string;
19
19
  type: "website" | "image" | "email" | "phone" | "logo" | "general-link" | "profile" | "video" | "text" | "facebook" | "x" | "instagram" | "youtube" | "linkedin" | "pinterest" | "twitch" | "tiktok" | "map" | "image-gallery" | "mailing-list" | "request-payment" | "support-me" | "contact-form" | "banner-section" | "about-section" | "divider-section" | "images-section" | "testimonial-section" | "social-links" | "shapes-section" | "shop-section" | "booking-section";
20
20
  personalisationRole?: "website" | "email" | "phone" | "profile" | "about" | "information" | "media" | undefined;
21
+ topPadding?: number | undefined;
22
+ bottomPadding?: number | undefined;
21
23
  imageUrlOverride?: string | undefined;
22
24
  imageUrlsOverride?: string | undefined;
23
25
  avatarImageUrlOverride?: string | undefined;
@@ -134,16 +136,21 @@ declare const _default: import("vue").DefineComponent<{}, {
134
136
  hideChangeTemplateConfirmModal(): void;
135
137
  onBackgroundChanged(): void;
136
138
  onChangeTemplateConfirmModalCancel(): void;
137
- onChangeTemplateConfirmModalConfirm(): void;
139
+ onChangeTemplateConfirmModalConfirm(): Promise<void>;
138
140
  onContentChanged(): void;
139
141
  onStyleChanged(): void;
140
- onTemplateSelected(payload: import("@brand-page-maker/stores").OnTemplateSelectedPayload): void;
142
+ onTemplateSelected(payload: import("@brand-page-maker/stores").OnTemplateSelectedPayload): Promise<void>;
141
143
  setSelectedTabName(payload: any): void;
142
144
  showNextNotificationMessage(): Promise<void>;
143
145
  updateContent<TContent extends Content, P extends {
144
146
  id: string;
145
147
  content: TContent;
146
148
  }>(payload: P): Promise<void>;
149
+ _captureTemplateSwitchIfEnabled(): void;
150
+ applyHistorySnapshot(snapshot: import("@brand-page").BrandPageModel, activePageId?: string | undefined, logoEditsStr?: string | undefined): Promise<void>;
151
+ _syncLogoSettingsFromSnapshot(snapshot: import("@brand-page").BrandPageModel, logoEditsStr?: string | undefined): Promise<void>;
152
+ _navigateToActivePage(activePageId?: string | undefined): void;
153
+ _fallbackSidebarIfSelectedContentMissing(snapshot: import("@brand-page").BrandPageModel): void;
147
154
  export(): import("@brand-page").BrandPageModel;
148
155
  setBrandPageType({ brandPageType }: {
149
156
  brandPageType: "default" | "brandSite" | "brandContact";
@@ -200,6 +207,8 @@ declare const _default: import("vue").DefineComponent<{}, {
200
207
  id: string;
201
208
  type: "website" | "image" | "email" | "phone" | "logo" | "general-link" | "profile" | "video" | "text" | "facebook" | "x" | "instagram" | "youtube" | "linkedin" | "pinterest" | "twitch" | "tiktok" | "map" | "image-gallery" | "mailing-list" | "request-payment" | "support-me" | "contact-form" | "banner-section" | "about-section" | "divider-section" | "images-section" | "testimonial-section" | "social-links" | "shapes-section" | "shop-section" | "booking-section";
202
209
  personalisationRole?: "website" | "email" | "phone" | "profile" | "about" | "information" | "media" | undefined;
210
+ topPadding?: number | undefined;
211
+ bottomPadding?: number | undefined;
203
212
  imageUrlOverride?: string | undefined;
204
213
  imageUrlsOverride?: string | undefined;
205
214
  avatarImageUrlOverride?: string | undefined;
@@ -249,6 +258,8 @@ declare const _default: import("vue").DefineComponent<{}, {
249
258
  id: string;
250
259
  type: "website" | "image" | "email" | "phone" | "logo" | "general-link" | "profile" | "video" | "text" | "facebook" | "x" | "instagram" | "youtube" | "linkedin" | "pinterest" | "twitch" | "tiktok" | "map" | "image-gallery" | "mailing-list" | "request-payment" | "support-me" | "contact-form" | "banner-section" | "about-section" | "divider-section" | "images-section" | "testimonial-section" | "social-links" | "shapes-section" | "shop-section" | "booking-section";
251
260
  personalisationRole?: "website" | "email" | "phone" | "profile" | "about" | "information" | "media" | undefined;
261
+ topPadding?: number | undefined;
262
+ bottomPadding?: number | undefined;
252
263
  imageUrlOverride?: string | undefined;
253
264
  imageUrlsOverride?: string | undefined;
254
265
  avatarImageUrlOverride?: string | undefined;
@@ -298,6 +309,8 @@ declare const _default: import("vue").DefineComponent<{}, {
298
309
  id: string;
299
310
  type: "website" | "image" | "email" | "phone" | "logo" | "general-link" | "profile" | "video" | "text" | "facebook" | "x" | "instagram" | "youtube" | "linkedin" | "pinterest" | "twitch" | "tiktok" | "map" | "image-gallery" | "mailing-list" | "request-payment" | "support-me" | "contact-form" | "banner-section" | "about-section" | "divider-section" | "images-section" | "testimonial-section" | "social-links" | "shapes-section" | "shop-section" | "booking-section";
300
311
  personalisationRole?: "website" | "email" | "phone" | "profile" | "about" | "information" | "media" | undefined;
312
+ topPadding?: number | undefined;
313
+ bottomPadding?: number | undefined;
301
314
  imageUrlOverride?: string | undefined;
302
315
  imageUrlsOverride?: string | undefined;
303
316
  avatarImageUrlOverride?: string | undefined;
@@ -347,6 +360,8 @@ declare const _default: import("vue").DefineComponent<{}, {
347
360
  id: string;
348
361
  type: "website" | "image" | "email" | "phone" | "logo" | "general-link" | "profile" | "video" | "text" | "facebook" | "x" | "instagram" | "youtube" | "linkedin" | "pinterest" | "twitch" | "tiktok" | "map" | "image-gallery" | "mailing-list" | "request-payment" | "support-me" | "contact-form" | "banner-section" | "about-section" | "divider-section" | "images-section" | "testimonial-section" | "social-links" | "shapes-section" | "shop-section" | "booking-section";
349
362
  personalisationRole?: "website" | "email" | "phone" | "profile" | "about" | "information" | "media" | undefined;
363
+ topPadding?: number | undefined;
364
+ bottomPadding?: number | undefined;
350
365
  imageUrlOverride?: string | undefined;
351
366
  imageUrlsOverride?: string | undefined;
352
367
  avatarImageUrlOverride?: string | undefined;
@@ -396,6 +411,8 @@ declare const _default: import("vue").DefineComponent<{}, {
396
411
  id: string;
397
412
  type: "website" | "image" | "email" | "phone" | "logo" | "general-link" | "profile" | "video" | "text" | "facebook" | "x" | "instagram" | "youtube" | "linkedin" | "pinterest" | "twitch" | "tiktok" | "map" | "image-gallery" | "mailing-list" | "request-payment" | "support-me" | "contact-form" | "banner-section" | "about-section" | "divider-section" | "images-section" | "testimonial-section" | "social-links" | "shapes-section" | "shop-section" | "booking-section";
398
413
  personalisationRole?: "website" | "email" | "phone" | "profile" | "about" | "information" | "media" | undefined;
414
+ topPadding?: number | undefined;
415
+ bottomPadding?: number | undefined;
399
416
  imageUrlOverride?: string | undefined;
400
417
  imageUrlsOverride?: string | undefined;
401
418
  avatarImageUrlOverride?: string | undefined;
@@ -445,6 +462,8 @@ declare const _default: import("vue").DefineComponent<{}, {
445
462
  id: string;
446
463
  type: "website" | "image" | "email" | "phone" | "logo" | "general-link" | "profile" | "video" | "text" | "facebook" | "x" | "instagram" | "youtube" | "linkedin" | "pinterest" | "twitch" | "tiktok" | "map" | "image-gallery" | "mailing-list" | "request-payment" | "support-me" | "contact-form" | "banner-section" | "about-section" | "divider-section" | "images-section" | "testimonial-section" | "social-links" | "shapes-section" | "shop-section" | "booking-section";
447
464
  personalisationRole?: "website" | "email" | "phone" | "profile" | "about" | "information" | "media" | undefined;
465
+ topPadding?: number | undefined;
466
+ bottomPadding?: number | undefined;
448
467
  imageUrlOverride?: string | undefined;
449
468
  imageUrlsOverride?: string | undefined;
450
469
  avatarImageUrlOverride?: string | undefined;
@@ -784,6 +803,22 @@ declare const _default: import("vue").DefineComponent<{}, {
784
803
  }>;
785
804
  eventTracker: {
786
805
  sendShippingToggleEvent: (isEnabled: boolean) => void;
806
+ sendUndoEvent: (props: {
807
+ entries_count: number;
808
+ actor: string | undefined;
809
+ }) => void;
810
+ sendRedoEvent: (props: {
811
+ entries_count: number;
812
+ actor: string | undefined;
813
+ }) => void;
814
+ sendHistoryCappedEvent: (props: {
815
+ entries_count: number;
816
+ size_bytes: number;
817
+ }) => void;
818
+ sendHistoryOversizedEvent: (props: {
819
+ attempted_bytes: number;
820
+ source: string;
821
+ }) => void;
787
822
  sendSaveContactEvent: () => void;
788
823
  sendStartForFreeEvent: () => void;
789
824
  sendFooterLinkClickEvent: (linkType: "watermark_logo" | "create_your_website") => void;
@@ -823,6 +858,73 @@ declare const _default: import("vue").DefineComponent<{}, {
823
858
  sendAiSendPromptEvent: (ctaLocation: string) => void;
824
859
  sendAiStopGenerationEvent: (ctaLocation: string) => void;
825
860
  };
861
+ historyStore: import("pinia").Store<"history", Pick<{
862
+ entries: import("vue").ShallowRef<import("@brand-page-maker/stores/history/history-store").HistoryEntry[], import("@brand-page-maker/stores/history/history-store").HistoryEntry[]>;
863
+ currentIndex: import("vue").Ref<number, number>;
864
+ isApplyingSnapshot: import("vue").Ref<boolean, boolean>;
865
+ snapshotAppliedToken: import("vue").Ref<number, number>;
866
+ baselineCaptured: import("vue").Ref<boolean, boolean>;
867
+ canUndo: import("vue").ComputedRef<boolean>;
868
+ canRedo: import("vue").ComputedRef<boolean>;
869
+ captureBaseline: () => void;
870
+ capture: (args: {
871
+ source: "manual_edit" | "template_switch" | "ai_changeset" | "rich_text";
872
+ actor: "user" | "ai_builder";
873
+ label?: string | undefined;
874
+ }) => "committed" | "oversized" | "noop" | "skipped";
875
+ captureTemplateSwitch: (label?: string | undefined) => "committed" | "oversized" | "noop" | "skipped";
876
+ captureAiChangeset: (label?: string | undefined) => "committed" | "oversized" | "noop" | "skipped";
877
+ mergeNextMutation: () => void;
878
+ undo: () => Promise<void>;
879
+ redo: () => Promise<void>;
880
+ reset: () => void;
881
+ getCurrentSizeBytes: () => number;
882
+ getCurrentEntryCount: () => number;
883
+ }, "entries" | "currentIndex" | "isApplyingSnapshot" | "snapshotAppliedToken" | "baselineCaptured">, Pick<{
884
+ entries: import("vue").ShallowRef<import("@brand-page-maker/stores/history/history-store").HistoryEntry[], import("@brand-page-maker/stores/history/history-store").HistoryEntry[]>;
885
+ currentIndex: import("vue").Ref<number, number>;
886
+ isApplyingSnapshot: import("vue").Ref<boolean, boolean>;
887
+ snapshotAppliedToken: import("vue").Ref<number, number>;
888
+ baselineCaptured: import("vue").Ref<boolean, boolean>;
889
+ canUndo: import("vue").ComputedRef<boolean>;
890
+ canRedo: import("vue").ComputedRef<boolean>;
891
+ captureBaseline: () => void;
892
+ capture: (args: {
893
+ source: "manual_edit" | "template_switch" | "ai_changeset" | "rich_text";
894
+ actor: "user" | "ai_builder";
895
+ label?: string | undefined;
896
+ }) => "committed" | "oversized" | "noop" | "skipped";
897
+ captureTemplateSwitch: (label?: string | undefined) => "committed" | "oversized" | "noop" | "skipped";
898
+ captureAiChangeset: (label?: string | undefined) => "committed" | "oversized" | "noop" | "skipped";
899
+ mergeNextMutation: () => void;
900
+ undo: () => Promise<void>;
901
+ redo: () => Promise<void>;
902
+ reset: () => void;
903
+ getCurrentSizeBytes: () => number;
904
+ getCurrentEntryCount: () => number;
905
+ }, "canUndo" | "canRedo">, Pick<{
906
+ entries: import("vue").ShallowRef<import("@brand-page-maker/stores/history/history-store").HistoryEntry[], import("@brand-page-maker/stores/history/history-store").HistoryEntry[]>;
907
+ currentIndex: import("vue").Ref<number, number>;
908
+ isApplyingSnapshot: import("vue").Ref<boolean, boolean>;
909
+ snapshotAppliedToken: import("vue").Ref<number, number>;
910
+ baselineCaptured: import("vue").Ref<boolean, boolean>;
911
+ canUndo: import("vue").ComputedRef<boolean>;
912
+ canRedo: import("vue").ComputedRef<boolean>;
913
+ captureBaseline: () => void;
914
+ capture: (args: {
915
+ source: "manual_edit" | "template_switch" | "ai_changeset" | "rich_text";
916
+ actor: "user" | "ai_builder";
917
+ label?: string | undefined;
918
+ }) => "committed" | "oversized" | "noop" | "skipped";
919
+ captureTemplateSwitch: (label?: string | undefined) => "committed" | "oversized" | "noop" | "skipped";
920
+ captureAiChangeset: (label?: string | undefined) => "committed" | "oversized" | "noop" | "skipped";
921
+ mergeNextMutation: () => void;
922
+ undo: () => Promise<void>;
923
+ redo: () => Promise<void>;
924
+ reset: () => void;
925
+ getCurrentSizeBytes: () => number;
926
+ getCurrentEntryCount: () => number;
927
+ }, "reset" | "undo" | "redo" | "captureBaseline" | "capture" | "captureTemplateSwitch" | "captureAiChangeset" | "mergeNextMutation" | "getCurrentSizeBytes" | "getCurrentEntryCount">>;
826
928
  externalEditor: import("@tiptap/vue-3").Editor;
827
929
  }, {
828
930
  categoryTabs: CategoryTab[];
@@ -11,6 +11,7 @@ import { useExternalRichTextEditor } from '@brand-page-maker/composables/rich-te
11
11
  import { switchAllContentToRTE, transformToRTE, RTE_ALLOWED_SECTION_TYPES, } from '@brand-page-maker/utils';
12
12
  import { useUiStyleSettingsStore } from '../../../style-settings/store';
13
13
  import { usePageNavigationStore } from '../../../../shared/page-navigation/store/page-navigation-store';
14
+ import { useHistoryStore } from '@brand-page-maker/stores/history/history-store';
14
15
  export default defineComponent({
15
16
  setup() {
16
17
  const brandPageMakerStore = useBrandPageMakerStore();
@@ -20,6 +21,7 @@ export default defineComponent({
20
21
  const styleSettingsStore = useUiStyleSettingsStore();
21
22
  const userStore = useBrandPageMakerUserStore();
22
23
  const eventTracker = useEventTracker();
24
+ const historyStore = useHistoryStore();
23
25
  const { externalEditor } = useExternalRichTextEditor();
24
26
  return {
25
27
  mode: computed(() => contentSettingsStore.mode),
@@ -36,6 +38,7 @@ export default defineComponent({
36
38
  pageSettingsStore,
37
39
  styleSettingsStore,
38
40
  eventTracker,
41
+ historyStore,
39
42
  externalEditor,
40
43
  };
41
44
  },
@@ -52,6 +55,8 @@ export default defineComponent({
52
55
  },
53
56
  mounted() {
54
57
  if (this.canUseRichTextEditor) {
58
+ // RTE rewrap on tab mount — fold into current head.
59
+ this.historyStore.mergeNextMutation();
55
60
  switchAllContentToRTE(this.pageSettingsStore, this.externalEditor, this.styleSettingsStore);
56
61
  }
57
62
  },
@@ -26,6 +26,7 @@ export const Sample = () => {
26
26
  canUseGettyVideos: true,
27
27
  canUseGoogleAdsense: false,
28
28
  googleAdsenseEnabled: false,
29
+ canUseUndoRedo: false,
29
30
  };
30
31
  const pinia = setupStoryPinia();
31
32
  const contentSettingsStore = useUiContentSettingsStore();
@@ -9,6 +9,8 @@ declare const _default: import("vue").DefineComponent<{}, {
9
9
  id: string;
10
10
  type: "website" | "image" | "email" | "phone" | "logo" | "general-link" | "profile" | "video" | "text" | "facebook" | "x" | "instagram" | "youtube" | "linkedin" | "pinterest" | "twitch" | "tiktok" | "map" | "image-gallery" | "mailing-list" | "request-payment" | "support-me" | "contact-form" | "banner-section" | "about-section" | "divider-section" | "images-section" | "testimonial-section" | "social-links" | "shapes-section" | "shop-section" | "booking-section";
11
11
  personalisationRole?: "website" | "email" | "phone" | "profile" | "about" | "information" | "media" | undefined;
12
+ topPadding?: number | undefined;
13
+ bottomPadding?: number | undefined;
12
14
  imageUrlOverride?: string | undefined;
13
15
  imageUrlsOverride?: string | undefined;
14
16
  avatarImageUrlOverride?: string | undefined;
@@ -54,6 +56,8 @@ declare const _default: import("vue").DefineComponent<{}, {
54
56
  id: string;
55
57
  type: "website" | "image" | "email" | "phone" | "logo" | "general-link" | "profile" | "video" | "text" | "facebook" | "x" | "instagram" | "youtube" | "linkedin" | "pinterest" | "twitch" | "tiktok" | "map" | "image-gallery" | "mailing-list" | "request-payment" | "support-me" | "contact-form" | "banner-section" | "about-section" | "divider-section" | "images-section" | "testimonial-section" | "social-links" | "shapes-section" | "shop-section" | "booking-section";
56
58
  personalisationRole?: "website" | "email" | "phone" | "profile" | "about" | "information" | "media" | undefined;
59
+ topPadding?: number | undefined;
60
+ bottomPadding?: number | undefined;
57
61
  imageUrlOverride?: string | undefined;
58
62
  imageUrlsOverride?: string | undefined;
59
63
  avatarImageUrlOverride?: string | undefined;
@@ -103,6 +107,8 @@ declare const _default: import("vue").DefineComponent<{}, {
103
107
  id: string;
104
108
  type: "website" | "image" | "email" | "phone" | "logo" | "general-link" | "profile" | "video" | "text" | "facebook" | "x" | "instagram" | "youtube" | "linkedin" | "pinterest" | "twitch" | "tiktok" | "map" | "image-gallery" | "mailing-list" | "request-payment" | "support-me" | "contact-form" | "banner-section" | "about-section" | "divider-section" | "images-section" | "testimonial-section" | "social-links" | "shapes-section" | "shop-section" | "booking-section";
105
109
  personalisationRole?: "website" | "email" | "phone" | "profile" | "about" | "information" | "media" | undefined;
110
+ topPadding?: number | undefined;
111
+ bottomPadding?: number | undefined;
106
112
  imageUrlOverride?: string | undefined;
107
113
  imageUrlsOverride?: string | undefined;
108
114
  avatarImageUrlOverride?: string | undefined;
@@ -152,6 +158,8 @@ declare const _default: import("vue").DefineComponent<{}, {
152
158
  id: string;
153
159
  type: "website" | "image" | "email" | "phone" | "logo" | "general-link" | "profile" | "video" | "text" | "facebook" | "x" | "instagram" | "youtube" | "linkedin" | "pinterest" | "twitch" | "tiktok" | "map" | "image-gallery" | "mailing-list" | "request-payment" | "support-me" | "contact-form" | "banner-section" | "about-section" | "divider-section" | "images-section" | "testimonial-section" | "social-links" | "shapes-section" | "shop-section" | "booking-section";
154
160
  personalisationRole?: "website" | "email" | "phone" | "profile" | "about" | "information" | "media" | undefined;
161
+ topPadding?: number | undefined;
162
+ bottomPadding?: number | undefined;
155
163
  imageUrlOverride?: string | undefined;
156
164
  imageUrlsOverride?: string | undefined;
157
165
  avatarImageUrlOverride?: string | undefined;
@@ -201,6 +209,8 @@ declare const _default: import("vue").DefineComponent<{}, {
201
209
  id: string;
202
210
  type: "website" | "image" | "email" | "phone" | "logo" | "general-link" | "profile" | "video" | "text" | "facebook" | "x" | "instagram" | "youtube" | "linkedin" | "pinterest" | "twitch" | "tiktok" | "map" | "image-gallery" | "mailing-list" | "request-payment" | "support-me" | "contact-form" | "banner-section" | "about-section" | "divider-section" | "images-section" | "testimonial-section" | "social-links" | "shapes-section" | "shop-section" | "booking-section";
203
211
  personalisationRole?: "website" | "email" | "phone" | "profile" | "about" | "information" | "media" | undefined;
212
+ topPadding?: number | undefined;
213
+ bottomPadding?: number | undefined;
204
214
  imageUrlOverride?: string | undefined;
205
215
  imageUrlsOverride?: string | undefined;
206
216
  avatarImageUrlOverride?: string | undefined;
@@ -250,6 +260,8 @@ declare const _default: import("vue").DefineComponent<{}, {
250
260
  id: string;
251
261
  type: "website" | "image" | "email" | "phone" | "logo" | "general-link" | "profile" | "video" | "text" | "facebook" | "x" | "instagram" | "youtube" | "linkedin" | "pinterest" | "twitch" | "tiktok" | "map" | "image-gallery" | "mailing-list" | "request-payment" | "support-me" | "contact-form" | "banner-section" | "about-section" | "divider-section" | "images-section" | "testimonial-section" | "social-links" | "shapes-section" | "shop-section" | "booking-section";
252
262
  personalisationRole?: "website" | "email" | "phone" | "profile" | "about" | "information" | "media" | undefined;
263
+ topPadding?: number | undefined;
264
+ bottomPadding?: number | undefined;
253
265
  imageUrlOverride?: string | undefined;
254
266
  imageUrlsOverride?: string | undefined;
255
267
  avatarImageUrlOverride?: string | undefined;
@@ -299,6 +311,8 @@ declare const _default: import("vue").DefineComponent<{}, {
299
311
  id: string;
300
312
  type: "website" | "image" | "email" | "phone" | "logo" | "general-link" | "profile" | "video" | "text" | "facebook" | "x" | "instagram" | "youtube" | "linkedin" | "pinterest" | "twitch" | "tiktok" | "map" | "image-gallery" | "mailing-list" | "request-payment" | "support-me" | "contact-form" | "banner-section" | "about-section" | "divider-section" | "images-section" | "testimonial-section" | "social-links" | "shapes-section" | "shop-section" | "booking-section";
301
313
  personalisationRole?: "website" | "email" | "phone" | "profile" | "about" | "information" | "media" | undefined;
314
+ topPadding?: number | undefined;
315
+ bottomPadding?: number | undefined;
302
316
  imageUrlOverride?: string | undefined;
303
317
  imageUrlsOverride?: string | undefined;
304
318
  avatarImageUrlOverride?: string | undefined;
@@ -650,16 +664,21 @@ declare const _default: import("vue").DefineComponent<{}, {
650
664
  hideChangeTemplateConfirmModal(): void;
651
665
  onBackgroundChanged(): void;
652
666
  onChangeTemplateConfirmModalCancel(): void;
653
- onChangeTemplateConfirmModalConfirm(): void;
667
+ onChangeTemplateConfirmModalConfirm(): Promise<void>;
654
668
  onContentChanged(): void;
655
669
  onStyleChanged(): void;
656
- onTemplateSelected(payload: import("@brand-page-maker/stores").OnTemplateSelectedPayload): void;
670
+ onTemplateSelected(payload: import("@brand-page-maker/stores").OnTemplateSelectedPayload): Promise<void>;
657
671
  setSelectedTabName(payload: any): void;
658
672
  showNextNotificationMessage(): Promise<void>;
659
673
  updateContent<TContent extends import("@brand-page").Content, P extends {
660
674
  id: string;
661
675
  content: TContent;
662
676
  }>(payload: P): Promise<void>;
677
+ _captureTemplateSwitchIfEnabled(): void;
678
+ applyHistorySnapshot(snapshot: import("@brand-page").BrandPageModel, activePageId?: string | undefined, logoEditsStr?: string | undefined): Promise<void>;
679
+ _syncLogoSettingsFromSnapshot(snapshot: import("@brand-page").BrandPageModel, logoEditsStr?: string | undefined): Promise<void>;
680
+ _navigateToActivePage(activePageId?: string | undefined): void;
681
+ _fallbackSidebarIfSelectedContentMissing(snapshot: import("@brand-page").BrandPageModel): void;
663
682
  export(): import("@brand-page").BrandPageModel;
664
683
  setBrandPageType({ brandPageType }: {
665
684
  brandPageType: "default" | "brandSite" | "brandContact";
@@ -732,6 +751,22 @@ declare const _default: import("vue").DefineComponent<{}, {
732
751
  }>;
733
752
  bpEventTracker: {
734
753
  sendShippingToggleEvent: (isEnabled: boolean) => void;
754
+ sendUndoEvent: (props: {
755
+ entries_count: number;
756
+ actor: string | undefined;
757
+ }) => void;
758
+ sendRedoEvent: (props: {
759
+ entries_count: number;
760
+ actor: string | undefined;
761
+ }) => void;
762
+ sendHistoryCappedEvent: (props: {
763
+ entries_count: number;
764
+ size_bytes: number;
765
+ }) => void;
766
+ sendHistoryOversizedEvent: (props: {
767
+ attempted_bytes: number;
768
+ source: string;
769
+ }) => void;
735
770
  sendSaveContactEvent: () => void;
736
771
  sendStartForFreeEvent: () => void;
737
772
  sendFooterLinkClickEvent: (linkType: "watermark_logo" | "create_your_website") => void;
@@ -44,6 +44,8 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
44
44
  id: string;
45
45
  type: "website" | "image" | "email" | "phone" | "logo" | "general-link" | "profile" | "video" | "text" | "facebook" | "x" | "instagram" | "youtube" | "linkedin" | "pinterest" | "twitch" | "tiktok" | "map" | "image-gallery" | "mailing-list" | "request-payment" | "support-me" | "contact-form" | "banner-section" | "about-section" | "divider-section" | "images-section" | "testimonial-section" | "social-links" | "shapes-section" | "shop-section" | "booking-section";
46
46
  personalisationRole?: "website" | "email" | "phone" | "profile" | "about" | "information" | "media" | undefined;
47
+ topPadding?: number | undefined;
48
+ bottomPadding?: number | undefined;
47
49
  imageUrlOverride?: string | undefined;
48
50
  imageUrlsOverride?: string | undefined;
49
51
  avatarImageUrlOverride?: string | undefined;
@@ -93,6 +95,8 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
93
95
  id: string;
94
96
  type: "website" | "image" | "email" | "phone" | "logo" | "general-link" | "profile" | "video" | "text" | "facebook" | "x" | "instagram" | "youtube" | "linkedin" | "pinterest" | "twitch" | "tiktok" | "map" | "image-gallery" | "mailing-list" | "request-payment" | "support-me" | "contact-form" | "banner-section" | "about-section" | "divider-section" | "images-section" | "testimonial-section" | "social-links" | "shapes-section" | "shop-section" | "booking-section";
95
97
  personalisationRole?: "website" | "email" | "phone" | "profile" | "about" | "information" | "media" | undefined;
98
+ topPadding?: number | undefined;
99
+ bottomPadding?: number | undefined;
96
100
  imageUrlOverride?: string | undefined;
97
101
  imageUrlsOverride?: string | undefined;
98
102
  avatarImageUrlOverride?: string | undefined;
@@ -142,6 +146,8 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
142
146
  id: string;
143
147
  type: "website" | "image" | "email" | "phone" | "logo" | "general-link" | "profile" | "video" | "text" | "facebook" | "x" | "instagram" | "youtube" | "linkedin" | "pinterest" | "twitch" | "tiktok" | "map" | "image-gallery" | "mailing-list" | "request-payment" | "support-me" | "contact-form" | "banner-section" | "about-section" | "divider-section" | "images-section" | "testimonial-section" | "social-links" | "shapes-section" | "shop-section" | "booking-section";
144
148
  personalisationRole?: "website" | "email" | "phone" | "profile" | "about" | "information" | "media" | undefined;
149
+ topPadding?: number | undefined;
150
+ bottomPadding?: number | undefined;
145
151
  imageUrlOverride?: string | undefined;
146
152
  imageUrlsOverride?: string | undefined;
147
153
  avatarImageUrlOverride?: string | undefined;
@@ -191,6 +197,8 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
191
197
  id: string;
192
198
  type: "website" | "image" | "email" | "phone" | "logo" | "general-link" | "profile" | "video" | "text" | "facebook" | "x" | "instagram" | "youtube" | "linkedin" | "pinterest" | "twitch" | "tiktok" | "map" | "image-gallery" | "mailing-list" | "request-payment" | "support-me" | "contact-form" | "banner-section" | "about-section" | "divider-section" | "images-section" | "testimonial-section" | "social-links" | "shapes-section" | "shop-section" | "booking-section";
193
199
  personalisationRole?: "website" | "email" | "phone" | "profile" | "about" | "information" | "media" | undefined;
200
+ topPadding?: number | undefined;
201
+ bottomPadding?: number | undefined;
194
202
  imageUrlOverride?: string | undefined;
195
203
  imageUrlsOverride?: string | undefined;
196
204
  avatarImageUrlOverride?: string | undefined;
@@ -240,6 +248,8 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
240
248
  id: string;
241
249
  type: "website" | "image" | "email" | "phone" | "logo" | "general-link" | "profile" | "video" | "text" | "facebook" | "x" | "instagram" | "youtube" | "linkedin" | "pinterest" | "twitch" | "tiktok" | "map" | "image-gallery" | "mailing-list" | "request-payment" | "support-me" | "contact-form" | "banner-section" | "about-section" | "divider-section" | "images-section" | "testimonial-section" | "social-links" | "shapes-section" | "shop-section" | "booking-section";
242
250
  personalisationRole?: "website" | "email" | "phone" | "profile" | "about" | "information" | "media" | undefined;
251
+ topPadding?: number | undefined;
252
+ bottomPadding?: number | undefined;
243
253
  imageUrlOverride?: string | undefined;
244
254
  imageUrlsOverride?: string | undefined;
245
255
  avatarImageUrlOverride?: string | undefined;
@@ -289,6 +299,8 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
289
299
  id: string;
290
300
  type: "website" | "image" | "email" | "phone" | "logo" | "general-link" | "profile" | "video" | "text" | "facebook" | "x" | "instagram" | "youtube" | "linkedin" | "pinterest" | "twitch" | "tiktok" | "map" | "image-gallery" | "mailing-list" | "request-payment" | "support-me" | "contact-form" | "banner-section" | "about-section" | "divider-section" | "images-section" | "testimonial-section" | "social-links" | "shapes-section" | "shop-section" | "booking-section";
291
301
  personalisationRole?: "website" | "email" | "phone" | "profile" | "about" | "information" | "media" | undefined;
302
+ topPadding?: number | undefined;
303
+ bottomPadding?: number | undefined;
292
304
  imageUrlOverride?: string | undefined;
293
305
  imageUrlsOverride?: string | undefined;
294
306
  avatarImageUrlOverride?: string | undefined;
@@ -474,6 +486,22 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
474
486
  }>;
475
487
  eventTracker: {
476
488
  sendShippingToggleEvent: (isEnabled: boolean) => void;
489
+ sendUndoEvent: (props: {
490
+ entries_count: number;
491
+ actor: string | undefined;
492
+ }) => void;
493
+ sendRedoEvent: (props: {
494
+ entries_count: number;
495
+ actor: string | undefined;
496
+ }) => void;
497
+ sendHistoryCappedEvent: (props: {
498
+ entries_count: number;
499
+ size_bytes: number;
500
+ }) => void;
501
+ sendHistoryOversizedEvent: (props: {
502
+ attempted_bytes: number;
503
+ source: string;
504
+ }) => void;
477
505
  sendSaveContactEvent: () => void;
478
506
  sendStartForFreeEvent: () => void;
479
507
  sendFooterLinkClickEvent: (linkType: "watermark_logo" | "create_your_website") => void;
@@ -85,6 +85,8 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
85
85
  id: string;
86
86
  type: "website" | "image" | "email" | "phone" | "logo" | "general-link" | "profile" | "video" | "text" | "facebook" | "x" | "instagram" | "youtube" | "linkedin" | "pinterest" | "twitch" | "tiktok" | "map" | "image-gallery" | "mailing-list" | "request-payment" | "support-me" | "contact-form" | "banner-section" | "about-section" | "divider-section" | "images-section" | "testimonial-section" | "social-links" | "shapes-section" | "shop-section" | "booking-section";
87
87
  personalisationRole?: "website" | "email" | "phone" | "profile" | "about" | "information" | "media" | undefined;
88
+ topPadding?: number | undefined;
89
+ bottomPadding?: number | undefined;
88
90
  imageUrlOverride?: string | undefined;
89
91
  imageUrlsOverride?: string | undefined;
90
92
  avatarImageUrlOverride?: string | undefined;
@@ -134,6 +136,8 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
134
136
  id: string;
135
137
  type: "website" | "image" | "email" | "phone" | "logo" | "general-link" | "profile" | "video" | "text" | "facebook" | "x" | "instagram" | "youtube" | "linkedin" | "pinterest" | "twitch" | "tiktok" | "map" | "image-gallery" | "mailing-list" | "request-payment" | "support-me" | "contact-form" | "banner-section" | "about-section" | "divider-section" | "images-section" | "testimonial-section" | "social-links" | "shapes-section" | "shop-section" | "booking-section";
136
138
  personalisationRole?: "website" | "email" | "phone" | "profile" | "about" | "information" | "media" | undefined;
139
+ topPadding?: number | undefined;
140
+ bottomPadding?: number | undefined;
137
141
  imageUrlOverride?: string | undefined;
138
142
  imageUrlsOverride?: string | undefined;
139
143
  avatarImageUrlOverride?: string | undefined;
@@ -183,6 +187,8 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
183
187
  id: string;
184
188
  type: "website" | "image" | "email" | "phone" | "logo" | "general-link" | "profile" | "video" | "text" | "facebook" | "x" | "instagram" | "youtube" | "linkedin" | "pinterest" | "twitch" | "tiktok" | "map" | "image-gallery" | "mailing-list" | "request-payment" | "support-me" | "contact-form" | "banner-section" | "about-section" | "divider-section" | "images-section" | "testimonial-section" | "social-links" | "shapes-section" | "shop-section" | "booking-section";
185
189
  personalisationRole?: "website" | "email" | "phone" | "profile" | "about" | "information" | "media" | undefined;
190
+ topPadding?: number | undefined;
191
+ bottomPadding?: number | undefined;
186
192
  imageUrlOverride?: string | undefined;
187
193
  imageUrlsOverride?: string | undefined;
188
194
  avatarImageUrlOverride?: string | undefined;
@@ -232,6 +238,8 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
232
238
  id: string;
233
239
  type: "website" | "image" | "email" | "phone" | "logo" | "general-link" | "profile" | "video" | "text" | "facebook" | "x" | "instagram" | "youtube" | "linkedin" | "pinterest" | "twitch" | "tiktok" | "map" | "image-gallery" | "mailing-list" | "request-payment" | "support-me" | "contact-form" | "banner-section" | "about-section" | "divider-section" | "images-section" | "testimonial-section" | "social-links" | "shapes-section" | "shop-section" | "booking-section";
234
240
  personalisationRole?: "website" | "email" | "phone" | "profile" | "about" | "information" | "media" | undefined;
241
+ topPadding?: number | undefined;
242
+ bottomPadding?: number | undefined;
235
243
  imageUrlOverride?: string | undefined;
236
244
  imageUrlsOverride?: string | undefined;
237
245
  avatarImageUrlOverride?: string | undefined;
@@ -281,6 +289,8 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
281
289
  id: string;
282
290
  type: "website" | "image" | "email" | "phone" | "logo" | "general-link" | "profile" | "video" | "text" | "facebook" | "x" | "instagram" | "youtube" | "linkedin" | "pinterest" | "twitch" | "tiktok" | "map" | "image-gallery" | "mailing-list" | "request-payment" | "support-me" | "contact-form" | "banner-section" | "about-section" | "divider-section" | "images-section" | "testimonial-section" | "social-links" | "shapes-section" | "shop-section" | "booking-section";
283
291
  personalisationRole?: "website" | "email" | "phone" | "profile" | "about" | "information" | "media" | undefined;
292
+ topPadding?: number | undefined;
293
+ bottomPadding?: number | undefined;
284
294
  imageUrlOverride?: string | undefined;
285
295
  imageUrlsOverride?: string | undefined;
286
296
  avatarImageUrlOverride?: string | undefined;
@@ -330,6 +340,8 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
330
340
  id: string;
331
341
  type: "website" | "image" | "email" | "phone" | "logo" | "general-link" | "profile" | "video" | "text" | "facebook" | "x" | "instagram" | "youtube" | "linkedin" | "pinterest" | "twitch" | "tiktok" | "map" | "image-gallery" | "mailing-list" | "request-payment" | "support-me" | "contact-form" | "banner-section" | "about-section" | "divider-section" | "images-section" | "testimonial-section" | "social-links" | "shapes-section" | "shop-section" | "booking-section";
332
342
  personalisationRole?: "website" | "email" | "phone" | "profile" | "about" | "information" | "media" | undefined;
343
+ topPadding?: number | undefined;
344
+ bottomPadding?: number | undefined;
333
345
  imageUrlOverride?: string | undefined;
334
346
  imageUrlsOverride?: string | undefined;
335
347
  avatarImageUrlOverride?: string | undefined;
@@ -597,16 +609,21 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
597
609
  hideChangeTemplateConfirmModal(): void;
598
610
  onBackgroundChanged(): void;
599
611
  onChangeTemplateConfirmModalCancel(): void;
600
- onChangeTemplateConfirmModalConfirm(): void;
612
+ onChangeTemplateConfirmModalConfirm(): Promise<void>;
601
613
  onContentChanged(): void;
602
614
  onStyleChanged(): void;
603
- onTemplateSelected(payload: import("@brand-page-maker/stores").OnTemplateSelectedPayload): void;
615
+ onTemplateSelected(payload: import("@brand-page-maker/stores").OnTemplateSelectedPayload): Promise<void>;
604
616
  setSelectedTabName(payload: any): void;
605
617
  showNextNotificationMessage(): Promise<void>;
606
618
  updateContent<TContent extends Content, P extends {
607
619
  id: string;
608
620
  content: TContent;
609
621
  }>(payload: P): Promise<void>;
622
+ _captureTemplateSwitchIfEnabled(): void;
623
+ applyHistorySnapshot(snapshot: import("@brand-page").BrandPageModel, activePageId?: string | undefined, logoEditsStr?: string | undefined): Promise<void>;
624
+ _syncLogoSettingsFromSnapshot(snapshot: import("@brand-page").BrandPageModel, logoEditsStr?: string | undefined): Promise<void>;
625
+ _navigateToActivePage(activePageId?: string | undefined): void;
626
+ _fallbackSidebarIfSelectedContentMissing(snapshot: import("@brand-page").BrandPageModel): void;
610
627
  export(): import("@brand-page").BrandPageModel;
611
628
  setBrandPageType({ brandPageType }: {
612
629
  brandPageType: "default" | "brandSite" | "brandContact";
@@ -59,6 +59,8 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
59
59
  schema: string;
60
60
  textIcon: string;
61
61
  textIcons: string[];
62
+ focusedIndex: number | null;
63
+ focusedDisplay: string;
62
64
  }, {
63
65
  items: {
64
66
  get(): DraggableItem[];
@@ -79,6 +81,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
79
81
  setItemValue(index: number, itemValue: string): void;
80
82
  onColorReplacementsChange(payload: UpdateItemValuePayload<ColorReplacement[]>, index: number): void;
81
83
  onFocusOverride(index: number, itemValue: string): void;
84
+ inputDisplayValue(index: number): string;
82
85
  onBlurOverride(index: number, itemValue: string): void;
83
86
  isImageUrl(url: string): boolean;
84
87
  }, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("update:model-value" | "on-intent-image-replace" | "on-color-replacements-change")[], "update:model-value" | "on-intent-image-replace" | "on-color-replacements-change", import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
@@ -70,6 +70,12 @@ export default defineComponent({
70
70
  schema: 'https',
71
71
  textIcon: 'globe',
72
72
  textIcons: [],
73
+ // Display-only override for the focused URL input. While a row is
74
+ // focused we strip the schema visually but MUST NOT mutate modelValue —
75
+ // doing so would land in the store and trigger a spurious undo/redo
76
+ // history entry between focus and blur (BP-5506).
77
+ focusedIndex: null,
78
+ focusedDisplay: '',
73
79
  }),
74
80
  computed: {
75
81
  items: {
@@ -143,14 +149,25 @@ export default defineComponent({
143
149
  this.$emit('on-color-replacements-change', payload, index);
144
150
  },
145
151
  onFocusOverride(index, itemValue) {
146
- const value = [...this.modelValue];
147
152
  const match = URL_RE.exec(itemValue);
148
153
  if (match) {
149
154
  this.schema = match[1];
150
- value[index][this.valuePropName] = match[2];
155
+ this.focusedIndex = index;
156
+ this.focusedDisplay = match[2];
157
+ }
158
+ else {
159
+ this.focusedIndex = index;
160
+ this.focusedDisplay = itemValue;
151
161
  }
152
162
  },
163
+ inputDisplayValue(index) {
164
+ return this.focusedIndex === index
165
+ ? this.focusedDisplay
166
+ : this.itemValue(index);
167
+ },
153
168
  onBlurOverride(index, itemValue) {
169
+ this.focusedIndex = null;
170
+ this.focusedDisplay = '';
154
171
  const value = [...this.modelValue];
155
172
  let isValid = true;
156
173
  if (isEmail(itemValue)) {