@designcrowd/library.brand-page 5.18.4 → 5.18.6-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 (148) hide show
  1. package/lib/src/{CreatedOnBrandCrowd-de-de-DQLtpdLe.js → CreatedOnBrandCrowd-de-de-CAtPZtwo.js} +1 -1
  2. package/lib/src/{CreatedOnBrandCrowd-en-us-CvEhlADd.js → CreatedOnBrandCrowd-en-us-Dcx4yFkK.js} +1 -1
  3. package/lib/src/{CreatedOnBrandCrowd-es-es-pYQeTTC0.js → CreatedOnBrandCrowd-es-es-DpodH0gD.js} +1 -1
  4. package/lib/src/{CreatedOnBrandCrowd-fr-fr-CcE-iCEq.js → CreatedOnBrandCrowd-fr-ca-DZbMRJn-.js} +1 -1
  5. package/lib/src/{CreatedOnBrandCrowd-fr-ca-CcE-iCEq.js → CreatedOnBrandCrowd-fr-fr-DZbMRJn-.js} +1 -1
  6. package/lib/src/{CreatedOnBrandCrowd-pt-pt-OyhWWWyO.js → CreatedOnBrandCrowd-pt-br-C3gBveLk.js} +1 -1
  7. package/lib/src/{CreatedOnBrandCrowd-pt-br-OyhWWWyO.js → CreatedOnBrandCrowd-pt-pt-C3gBveLk.js} +1 -1
  8. package/lib/src/{CreatedOnDcom-de-de-DH98FFLS.js → CreatedOnDcom-de-de-DHNyyTV9.js} +1 -1
  9. package/lib/src/{CreatedOnDcom-en-us-DK67NN1r.js → CreatedOnDcom-en-us-BjqZ0Jmw.js} +1 -1
  10. package/lib/src/{CreatedOnDcom-es-es-9-QU4BU6.js → CreatedOnDcom-es-es-tiNjDJmH.js} +1 -1
  11. package/lib/src/{CreatedOnDcom-fr-ca-U9J9H9VB.js → CreatedOnDcom-fr-ca-COUSI6w1.js} +1 -1
  12. package/lib/src/{CreatedOnDcom-fr-fr-DqdzB1DJ.js → CreatedOnDcom-fr-fr-c3UCfh9A.js} +1 -1
  13. package/lib/src/{CreatedOnDcom-pt-br-c4UiWtkB.js → CreatedOnDcom-pt-br-U1jbo_g5.js} +1 -1
  14. package/lib/src/{CreatedOnDcom-pt-pt-Do2qJsYp.js → CreatedOnDcom-pt-pt-BOW_n3bo.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 +30 -0
  28. package/lib/src/brand-page/constants/misc.constants.js +51 -0
  29. package/lib/src/brand-page/models/content.model.d.ts +2 -0
  30. package/lib/src/brand-page/models/navigation-styles.model.d.ts +7 -0
  31. package/lib/src/brand-page/models/navigation-styles.model.js +25 -2
  32. package/lib/src/brand-page/utils/content-padding.util.d.ts +13 -0
  33. package/lib/src/brand-page/utils/content-padding.util.js +10 -0
  34. package/lib/src/brand-page/utils/index.d.ts +1 -0
  35. package/lib/src/brand-page/utils/index.js +1 -0
  36. package/lib/src/brand-page/utils/migration/migration-16.d.ts +2 -0
  37. package/lib/src/brand-page/utils/migration/migration-16.js +47 -0
  38. package/lib/src/brand-page/utils/migration/migration-17.d.ts +2 -0
  39. package/lib/src/brand-page/utils/migration/migration-17.js +50 -0
  40. package/lib/src/brand-page/utils/migration.util.js +17 -0
  41. package/lib/src/brand-page-maker/components/admin-logo-settings/AdminLogoSettings.mixin.d.ts +2 -0
  42. package/lib/src/brand-page-maker/components/brand-page-maker/BrandPageMaker.mixin.d.ts +12 -0
  43. package/lib/src/brand-page-maker/components/brandpage-maker-page/BrandPageMakerPage.mixin.d.ts +14 -0
  44. package/lib/src/brand-page-maker/constants/config-settings-constant.js +37 -0
  45. package/lib/src/brand-page-maker/convertors/about-display-style.convertor.js +9 -1
  46. package/lib/src/brand-page-maker/convertors/banner-align-display-style.convertor.js +7 -1
  47. package/lib/src/brand-page-maker/convertors/contact-layout-style.convertor.js +6 -1
  48. package/lib/src/brand-page-maker/models/content-settings.js +36 -2
  49. package/lib/src/brand-page-maker/stores/ai-checkpoint/ai-checkpoint-store.d.ts +12 -0
  50. package/lib/src/brand-page-maker/stores/brandpage-maker/brandpage-maker-store.js +1 -9
  51. package/lib/src/{bundled-translations-B5Fkt3qd.js → bundled-translations-Chw0nsFv.js} +9 -9
  52. package/lib/src/{bundled-translations.de-DE-DpdVePM9.js → bundled-translations.de-DE-cqBv7atZ.js} +1 -1
  53. package/lib/src/{bundled-translations.es-ES-BsIcrzZF.js → bundled-translations.es-ES-D9VXftl_.js} +9 -9
  54. package/lib/src/{bundled-translations.fr-CA-G1XCp2Qh.js → bundled-translations.fr-CA-BYstWXcO.js} +1 -1
  55. package/lib/src/{bundled-translations.fr-FR-BdwLXOnB.js → bundled-translations.fr-FR-D1H1hJD4.js} +1 -1
  56. package/lib/src/{bundled-translations.pt-BR-Bvn5ePe7.js → bundled-translations.pt-BR-DqNFuNHX.js} +1 -1
  57. package/lib/src/{bundled-translations.pt-PT-CDtkb2k1.js → bundled-translations.pt-PT-tOic0FfQ.js} +9 -9
  58. package/lib/src/bundles/bundled-translations.de-DE.json +2 -0
  59. package/lib/src/bundles/bundled-translations.es-ES.json +2 -0
  60. package/lib/src/bundles/bundled-translations.fr-CA.json +2 -0
  61. package/lib/src/bundles/bundled-translations.fr-FR.json +2 -0
  62. package/lib/src/bundles/bundled-translations.json +2 -0
  63. package/lib/src/bundles/bundled-translations.pt-BR.json +2 -0
  64. package/lib/src/bundles/bundled-translations.pt-PT.json +2 -0
  65. package/lib/src/css/library.brand-page-brandCrowd.min.css +150 -168
  66. package/lib/src/css/library.brand-page-brandPage.min.css +150 -168
  67. package/lib/src/css/library.brand-page-designCom.min.css +150 -168
  68. package/lib/src/css/library.brand-page-preview.min.css +150 -168
  69. package/lib/src/index.mjs +62 -60
  70. package/lib/src/{lib-BI3J4Mbk.js → lib-Bl7w5LQl.js} +19205 -18991
  71. package/lib/src/shared/content-settings/components/content-settings/ContentSettings.mixin.d.ts +14 -0
  72. package/lib/src/shared/content-settings/components/content-settings/ReplaceImageSettingsForContent.mixin.d.ts +14 -0
  73. package/lib/src/shared/content-settings/components/content-settings-item/ContentSettingsItem.mixin.d.ts +12 -0
  74. package/lib/src/shared/content-settings/components/content-settings-item/ContentSettingsItemField.mixin.d.ts +12 -0
  75. package/lib/src/shared/content-settings/components/focused-content-item-settings/FocusedContentItemSettings.mixin.d.ts +12 -0
  76. package/lib/src/shared/content-settings/components/slider-field/SliderField.mixin.js +9 -0
  77. package/lib/src/shared/content-settings/store/content-settings-store.d.ts +12 -0
  78. package/lib/src/shared/navigation-style-settings/components/navigation-style-settings/NavigationStyleSettings.mixin.js +10 -8
  79. package/lib/src/shared/navigation-style-settings/store/index.js +1 -12
  80. package/lib/src/shared/page-settings/components/page-settings/PageSettings.mixin.d.ts +16 -0
  81. package/lib/src/shared/page-settings/components/page-settings-section-styles/PageSettingsSectionStyles.mixin.d.ts +14 -0
  82. package/lib/src/utils/minify-brand-page-metadata.js +11 -1
  83. package/package.json +1 -1
  84. package/src/brand-page/components/about-section/AboutSection.vue +10 -4
  85. package/src/brand-page/components/banner-section/BannerSection.vue +11 -4
  86. package/src/brand-page/components/booking-section/BookingSection.vue +11 -3
  87. package/src/brand-page/components/button/Button.vue +2 -10
  88. package/src/brand-page/components/contact-form/ContactForm.mixin.ts +12 -6
  89. package/src/brand-page/components/contact-form/ContactForm.vue +117 -120
  90. package/src/brand-page/components/image-gallery/ImageGallery.mixin.ts +5 -0
  91. package/src/brand-page/components/image-gallery/ImageGallery.vue +1 -1
  92. package/src/brand-page/components/mailing-list/MailingList.mixin.ts +8 -1
  93. package/src/brand-page/components/mailing-list/MailingList.vue +1 -1
  94. package/src/brand-page/components/map/Map.vue +5 -1
  95. package/src/brand-page/components/navigation/navigation-side-menu/NavigationSideMenu.vue +4 -1
  96. package/src/brand-page/components/payment/request-payment/RequestPayment.mixin.ts +5 -0
  97. package/src/brand-page/components/payment/request-payment/RequestPayment.vue +1 -0
  98. package/src/brand-page/components/payment/support-me/SupportMe.mixin.ts +8 -1
  99. package/src/brand-page/components/payment/support-me/SupportMe.vue +1 -0
  100. package/src/brand-page/components/shop/Shop.vue +7 -2
  101. package/src/brand-page/components/social-links/SocialLinks.vue +7 -3
  102. package/src/brand-page/components/text/Text.vue +12 -5
  103. package/src/brand-page/components/text-media-section/TextMediaSection.vue +11 -3
  104. package/src/brand-page/components/video/Video.mixin.ts +5 -0
  105. package/src/brand-page/components/video/Video.vue +1 -1
  106. package/src/brand-page/constants/misc.constants.ts +60 -0
  107. package/src/brand-page/models/content.model.ts +2 -0
  108. package/src/brand-page/models/navigation-styles.model.ts +39 -1
  109. package/src/brand-page/utils/__snapshots__/migration.util.test.ts.snap +9 -3
  110. package/src/brand-page/utils/content-padding.util.test.ts +29 -0
  111. package/src/brand-page/utils/content-padding.util.ts +13 -0
  112. package/src/brand-page/utils/index.ts +1 -0
  113. package/src/brand-page/utils/migration/migration-16.test.ts +319 -0
  114. package/src/brand-page/utils/migration/migration-16.ts +75 -0
  115. package/src/brand-page/utils/migration/migration-17.ts +73 -0
  116. package/src/brand-page/utils/migration.util.test.ts +145 -0
  117. package/src/brand-page/utils/migration.util.ts +19 -0
  118. package/src/brand-page-maker/components/color-palette/BpColorPalette.vue +9 -7
  119. package/src/brand-page-maker/constants/config-settings-constant.ts +43 -0
  120. package/src/brand-page-maker/convertors/about-display-style.convertor.ts +10 -0
  121. package/src/brand-page-maker/convertors/banner-align-display-style.convertor.ts +8 -0
  122. package/src/brand-page-maker/convertors/contact-layout-style.convertor.test.ts +50 -0
  123. package/src/brand-page-maker/convertors/contact-layout-style.convertor.ts +8 -0
  124. package/src/brand-page-maker/models/content-settings.ts +38 -2
  125. package/src/brand-page-maker/stores/brandpage-maker/brandpage-maker-store.test.ts +43 -0
  126. package/src/brand-page-maker/stores/brandpage-maker/brandpage-maker-store.ts +0 -14
  127. package/src/bundles/bundled-translations.de-DE.json +2 -0
  128. package/src/bundles/bundled-translations.es-ES.json +2 -0
  129. package/src/bundles/bundled-translations.fr-CA.json +2 -0
  130. package/src/bundles/bundled-translations.fr-FR.json +2 -0
  131. package/src/bundles/bundled-translations.json +2 -0
  132. package/src/bundles/bundled-translations.pt-BR.json +2 -0
  133. package/src/bundles/bundled-translations.pt-PT.json +2 -0
  134. package/src/shared/content-settings/components/color-field/ColorField.vue +10 -5
  135. package/src/shared/content-settings/components/content-settings/i18n/content-settings.de-DE.json +2 -0
  136. package/src/shared/content-settings/components/content-settings/i18n/content-settings.es-ES.json +2 -0
  137. package/src/shared/content-settings/components/content-settings/i18n/content-settings.fr-CA.json +2 -0
  138. package/src/shared/content-settings/components/content-settings/i18n/content-settings.fr-FR.json +2 -0
  139. package/src/shared/content-settings/components/content-settings/i18n/content-settings.json +2 -0
  140. package/src/shared/content-settings/components/content-settings/i18n/content-settings.pt-BR.json +2 -0
  141. package/src/shared/content-settings/components/content-settings/i18n/content-settings.pt-PT.json +2 -0
  142. package/src/shared/content-settings/components/content-settings-item/ContentSettingsItem.vue +1 -1
  143. package/src/shared/content-settings/components/focused-content-item-settings/FocusedContentItemSettings.vue +2 -2
  144. package/src/shared/content-settings/components/slider-field/SliderField.mixin.ts +9 -0
  145. package/src/shared/navigation-style-settings/components/navigation-style-settings/NavigationStyleSettings.mixin.ts +17 -11
  146. package/src/shared/navigation-style-settings/components/navigation-style-settings/NavigationStyleSettings.vue +4 -1
  147. package/src/shared/navigation-style-settings/store/index.ts +1 -21
  148. package/src/utils/minify-brand-page-metadata.ts +11 -1
@@ -18,6 +18,8 @@ import { migration12_1 } from './migration/migration-12_1';
18
18
  import { migration13 } from './migration/migration-13';
19
19
  import { migration14 } from './migration/migration-14';
20
20
  import { migration15 } from './migration/migration-15';
21
+ import { migration16 } from './migration/migration-16';
22
+ import { migration17 } from './migration/migration-17';
21
23
  const MIGRATION_TABLE = [
22
24
  {
23
25
  version: 1,
@@ -115,6 +117,21 @@ const MIGRATION_TABLE = [
115
117
  migrateFn: migration15,
116
118
  description: 'Adding default mediaOverlayStyle to background styles',
117
119
  },
120
+ {
121
+ version: 16,
122
+ migrateFn: migration16,
123
+ runAlways: true,
124
+ description: 'Default sub nav background color to color match on for TAB_2 and hamburger navs depending on font color only on first load flow',
125
+ },
126
+ {
127
+ version: 17,
128
+ migrateFn: migration17,
129
+ // runAlways: re-apply on every load (ticket stack) so already-migrated pages
130
+ // pick up newly-added block defaults (e.g. Store) without a new migration.
131
+ // Idempotent — only backfills when topPadding/bottomPadding aren't already set.
132
+ runAlways: true,
133
+ description: 'Padding Control backfill (BP-5699 Tier 2 + BP-5700 Store): backfill existing top/bottom spacing as explicit padding for text (12px), images/social links/shapes/booking (32px), store (16px), contact form (per layout), banner and about (per display style)',
134
+ },
118
135
  ];
119
136
  export const GetLatestModelVersion = () => Math.max(...MIGRATION_TABLE.map((x) => x.version));
120
137
  export const migrateBrandPageModel = async (brandPageModel, options) => {
@@ -8,6 +8,8 @@ declare const _default: import("vue").DefineComponent<{}, {
8
8
  id: string;
9
9
  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";
10
10
  personalisationRole?: "website" | "email" | "phone" | "profile" | "about" | "information" | "media" | undefined;
11
+ topPadding?: number | undefined;
12
+ bottomPadding?: number | undefined;
11
13
  imageUrlOverride?: string | undefined;
12
14
  imageUrlsOverride?: string | undefined;
13
15
  avatarImageUrlOverride?: string | undefined;
@@ -496,6 +496,8 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
496
496
  id: string;
497
497
  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";
498
498
  personalisationRole?: "website" | "email" | "phone" | "profile" | "about" | "information" | "media" | undefined;
499
+ topPadding?: number | undefined;
500
+ bottomPadding?: number | undefined;
499
501
  imageUrlOverride?: string | undefined;
500
502
  imageUrlsOverride?: string | undefined;
501
503
  avatarImageUrlOverride?: string | undefined;
@@ -545,6 +547,8 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
545
547
  id: string;
546
548
  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";
547
549
  personalisationRole?: "website" | "email" | "phone" | "profile" | "about" | "information" | "media" | undefined;
550
+ topPadding?: number | undefined;
551
+ bottomPadding?: number | undefined;
548
552
  imageUrlOverride?: string | undefined;
549
553
  imageUrlsOverride?: string | undefined;
550
554
  avatarImageUrlOverride?: string | undefined;
@@ -594,6 +598,8 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
594
598
  id: string;
595
599
  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";
596
600
  personalisationRole?: "website" | "email" | "phone" | "profile" | "about" | "information" | "media" | undefined;
601
+ topPadding?: number | undefined;
602
+ bottomPadding?: number | undefined;
597
603
  imageUrlOverride?: string | undefined;
598
604
  imageUrlsOverride?: string | undefined;
599
605
  avatarImageUrlOverride?: string | undefined;
@@ -643,6 +649,8 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
643
649
  id: string;
644
650
  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";
645
651
  personalisationRole?: "website" | "email" | "phone" | "profile" | "about" | "information" | "media" | undefined;
652
+ topPadding?: number | undefined;
653
+ bottomPadding?: number | undefined;
646
654
  imageUrlOverride?: string | undefined;
647
655
  imageUrlsOverride?: string | undefined;
648
656
  avatarImageUrlOverride?: string | undefined;
@@ -692,6 +700,8 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
692
700
  id: string;
693
701
  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";
694
702
  personalisationRole?: "website" | "email" | "phone" | "profile" | "about" | "information" | "media" | undefined;
703
+ topPadding?: number | undefined;
704
+ bottomPadding?: number | undefined;
695
705
  imageUrlOverride?: string | undefined;
696
706
  imageUrlsOverride?: string | undefined;
697
707
  avatarImageUrlOverride?: string | undefined;
@@ -741,6 +751,8 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
741
751
  id: string;
742
752
  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";
743
753
  personalisationRole?: "website" | "email" | "phone" | "profile" | "about" | "information" | "media" | undefined;
754
+ topPadding?: number | undefined;
755
+ bottomPadding?: number | undefined;
744
756
  imageUrlOverride?: string | undefined;
745
757
  imageUrlsOverride?: string | undefined;
746
758
  avatarImageUrlOverride?: string | undefined;
@@ -11,6 +11,8 @@ declare const _default: import("vue").DefineComponent<{}, {
11
11
  id: string;
12
12
  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";
13
13
  personalisationRole?: "website" | "email" | "phone" | "profile" | "about" | "information" | "media" | undefined;
14
+ topPadding?: number | undefined;
15
+ bottomPadding?: number | undefined;
14
16
  imageUrlOverride?: string | undefined;
15
17
  imageUrlsOverride?: string | undefined;
16
18
  avatarImageUrlOverride?: string | undefined;
@@ -90,6 +92,8 @@ declare const _default: import("vue").DefineComponent<{}, {
90
92
  id: string;
91
93
  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";
92
94
  personalisationRole?: "website" | "email" | "phone" | "profile" | "about" | "information" | "media" | undefined;
95
+ topPadding?: number | undefined;
96
+ bottomPadding?: number | undefined;
93
97
  imageUrlOverride?: string | undefined;
94
98
  imageUrlsOverride?: string | undefined;
95
99
  avatarImageUrlOverride?: string | undefined;
@@ -139,6 +143,8 @@ declare const _default: import("vue").DefineComponent<{}, {
139
143
  id: string;
140
144
  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";
141
145
  personalisationRole?: "website" | "email" | "phone" | "profile" | "about" | "information" | "media" | undefined;
146
+ topPadding?: number | undefined;
147
+ bottomPadding?: number | undefined;
142
148
  imageUrlOverride?: string | undefined;
143
149
  imageUrlsOverride?: string | undefined;
144
150
  avatarImageUrlOverride?: string | undefined;
@@ -188,6 +194,8 @@ declare const _default: import("vue").DefineComponent<{}, {
188
194
  id: string;
189
195
  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";
190
196
  personalisationRole?: "website" | "email" | "phone" | "profile" | "about" | "information" | "media" | undefined;
197
+ topPadding?: number | undefined;
198
+ bottomPadding?: number | undefined;
191
199
  imageUrlOverride?: string | undefined;
192
200
  imageUrlsOverride?: string | undefined;
193
201
  avatarImageUrlOverride?: string | undefined;
@@ -237,6 +245,8 @@ declare const _default: import("vue").DefineComponent<{}, {
237
245
  id: string;
238
246
  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";
239
247
  personalisationRole?: "website" | "email" | "phone" | "profile" | "about" | "information" | "media" | undefined;
248
+ topPadding?: number | undefined;
249
+ bottomPadding?: number | undefined;
240
250
  imageUrlOverride?: string | undefined;
241
251
  imageUrlsOverride?: string | undefined;
242
252
  avatarImageUrlOverride?: string | undefined;
@@ -286,6 +296,8 @@ declare const _default: import("vue").DefineComponent<{}, {
286
296
  id: string;
287
297
  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";
288
298
  personalisationRole?: "website" | "email" | "phone" | "profile" | "about" | "information" | "media" | undefined;
299
+ topPadding?: number | undefined;
300
+ bottomPadding?: number | undefined;
289
301
  imageUrlOverride?: string | undefined;
290
302
  imageUrlsOverride?: string | undefined;
291
303
  avatarImageUrlOverride?: string | undefined;
@@ -335,6 +347,8 @@ declare const _default: import("vue").DefineComponent<{}, {
335
347
  id: string;
336
348
  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";
337
349
  personalisationRole?: "website" | "email" | "phone" | "profile" | "about" | "information" | "media" | undefined;
350
+ topPadding?: number | undefined;
351
+ bottomPadding?: number | undefined;
338
352
  imageUrlOverride?: string | undefined;
339
353
  imageUrlsOverride?: string | undefined;
340
354
  avatarImageUrlOverride?: string | undefined;
@@ -42,6 +42,28 @@ const SETTINGS_STYLE_FIElD_GROUPS = () => {
42
42
  },
43
43
  ];
44
44
  };
45
+ /**
46
+ * Shared Top/Bottom padding sliders (BP-5687). Reuses the same `slider` control
47
+ * as the Divider block (track + editable number box), range 0–100, continuous.
48
+ * Spread into a block's `fields` to expose the Padding Control on that block.
49
+ * Pass the Style field-group id for blocks that use grouped panels.
50
+ */
51
+ const PADDING_CONTROL_FIELDS = (groupId) => ({
52
+ topPadding: {
53
+ type: 'slider',
54
+ title: contentSettingsTr(`topPaddingTitle`),
55
+ minLength: 0,
56
+ maxLength: 100,
57
+ groupId,
58
+ },
59
+ bottomPadding: {
60
+ type: 'slider',
61
+ title: contentSettingsTr(`bottomPaddingTitle`),
62
+ minLength: 0,
63
+ maxLength: 100,
64
+ groupId,
65
+ },
66
+ });
45
67
  const DEFAULT_TITLE_STYLE_SETTINGS_FILED = () => ({
46
68
  type: 'text-style',
47
69
  defaultValue: {},
@@ -799,6 +821,7 @@ export const IMAGE_GALLERY_CONTENT_SETTINGS_CONFIG = () => ({
799
821
  defaultValue: false,
800
822
  visibilityAssessor: imageGalleryFieldVisibilityAssessor,
801
823
  },
824
+ ...PADDING_CONTROL_FIELDS(),
802
825
  },
803
826
  isEnabled: true,
804
827
  isLocked: (features) => !features.canAddImageContents,
@@ -835,6 +858,7 @@ export const VIDEO_CONTENT_SETTINGS_CONFIG = () => ({
835
858
  label: contentSettingsTr(`muteLabel`),
836
859
  valueConvertor: videoContentStateConvertor,
837
860
  },
861
+ ...PADDING_CONTROL_FIELDS(),
838
862
  },
839
863
  isEnabled: true,
840
864
  isLocked: (features) => !features.canAddVideoContents,
@@ -968,6 +992,7 @@ export const TEXT_CONTENT_SETTINGS_CONFIG = () => ({
968
992
  variant: 'icon',
969
993
  visibilityAssessor: brandSiteTypeVisibilityAssessor,
970
994
  },
995
+ ...PADDING_CONTROL_FIELDS(SETTINGS_STYLE_FIELD_GROUP_IDS.style),
971
996
  backgroundColor: {
972
997
  type: 'color',
973
998
  defaultValue: {},
@@ -1384,6 +1409,7 @@ export const MAP_CONTENT_SETTINGS_CONFIG = () => ({
1384
1409
  type: 'address',
1385
1410
  title: contentSettingsTr(`addressTitle`),
1386
1411
  },
1412
+ ...PADDING_CONTROL_FIELDS(),
1387
1413
  },
1388
1414
  isEnabled: true,
1389
1415
  isLocked: (features) => !features.canAddMapContents,
@@ -1432,6 +1458,7 @@ export const MAILING_LIST_CONTENT_SETTINGS_CONFIG = () => ({
1432
1458
  },
1433
1459
  titleStyle: DEFAULT_TITLE_STYLE_SETTINGS_FILED_WITH_TITLE(),
1434
1460
  buttonTextStyle: DEFAULT_BUTTON_TEXT_STYLE_FIELD(),
1461
+ ...PADDING_CONTROL_FIELDS(SETTINGS_STYLE_FIELD_GROUP_IDS.style),
1435
1462
  },
1436
1463
  isEnabled: true,
1437
1464
  isLocked: false,
@@ -1602,6 +1629,7 @@ export const REQUEST_PAYMENT_CONTENT_SETTINGS_CONFIG = () => ({
1602
1629
  defaultValue: {},
1603
1630
  label: contentSettingsTr(`buttonTextStyleLabel`),
1604
1631
  },
1632
+ ...PADDING_CONTROL_FIELDS(REQUEST_PAYMENT_GROUPS.style),
1605
1633
  },
1606
1634
  isEnabled: (features) => features.canAddRequestPaymentContents,
1607
1635
  isLocked: false,
@@ -1666,6 +1694,7 @@ export const SUPPORT_ME_CONTENT_SETTINGS_CONFIG = () => ({
1666
1694
  label: contentSettingsTr(`itemStyleLabel`),
1667
1695
  },
1668
1696
  buttonTextStyle: DEFAULT_BUTTON_TEXT_STYLE_FIELD(),
1697
+ ...PADDING_CONTROL_FIELDS(SETTINGS_STYLE_FIELD_GROUP_IDS.style),
1669
1698
  },
1670
1699
  isEnabled: (features) => features.canAddRequestPaymentContents,
1671
1700
  isLocked: false,
@@ -1791,6 +1820,7 @@ export const CONTACT_FORM_SETTINGS_CONFIG = () => ({
1791
1820
  variant: 'icon',
1792
1821
  visibilityAssessor: brandSiteTypeVisibilityAssessor,
1793
1822
  },
1823
+ ...PADDING_CONTROL_FIELDS(CONTACT_FORM_GROUPS.style),
1794
1824
  titleStyle: DEFAULT_TITLE_STYLE_SETTINGS_FILED_WITH_TITLE(),
1795
1825
  descriptionStyle: DEFAULT_DESCRIPTION_STYLE_FILED(),
1796
1826
  buttonTextStyle: DEFAULT_BUTTON_TEXT_STYLE_FIELD(),
@@ -1848,6 +1878,7 @@ export const BANNER_SECTION_SETTINGS_CONFIG = () => ({
1848
1878
  groupId: SETTINGS_STYLE_FIELD_GROUP_IDS.style,
1849
1879
  variant: 'icon',
1850
1880
  },
1881
+ ...PADDING_CONTROL_FIELDS(SETTINGS_STYLE_FIELD_GROUP_IDS.style),
1851
1882
  overlayColor: {
1852
1883
  type: 'color',
1853
1884
  title: contentSettingsTr(`overlayColorTitle`),
@@ -2063,6 +2094,7 @@ export const ABOUT_SECTION_SETTINGS_CONFIG = () => ({
2063
2094
  groupId: SETTINGS_STYLE_FIELD_GROUP_IDS.style,
2064
2095
  variant: 'icon',
2065
2096
  },
2097
+ ...PADDING_CONTROL_FIELDS(SETTINGS_STYLE_FIELD_GROUP_IDS.style),
2066
2098
  titleStyle: DEFAULT_TITLE_STYLE_SETTINGS_FILED_WITH_TITLE(),
2067
2099
  paragraphStyle: {
2068
2100
  type: 'text-style',
@@ -2145,6 +2177,7 @@ export const IMAGES_SECTION_SETTINGS_CONFIG = () => ({
2145
2177
  ],
2146
2178
  fields: {
2147
2179
  displayStyle: TEXT_MEDIA_DISPLAY_STYLE_FIELD(MEDIA_TYPES.image),
2180
+ ...PADDING_CONTROL_FIELDS(SETTINGS_STYLE_FIELD_GROUP_IDS.style),
2148
2181
  aspectRatio: {
2149
2182
  type: 'radio',
2150
2183
  role: 'multi',
@@ -2334,6 +2367,7 @@ export const SOCIAL_LINKS_SETTINGS_CONFIG = () => ({
2334
2367
  optionsConvertor: socialLinksIconDisplayStyleConvertor,
2335
2368
  variant: 'icon',
2336
2369
  },
2370
+ ...PADDING_CONTROL_FIELDS(SOCIAL_LINKS_GROUPS.style),
2337
2371
  titleStyle: {
2338
2372
  type: 'text-style',
2339
2373
  groupId: SOCIAL_LINKS_GROUPS.style,
@@ -2442,6 +2476,7 @@ export const SHAPES_SECTION_SETTINGS_CONFIG = () => ({
2442
2476
  ],
2443
2477
  fields: {
2444
2478
  displayStyle: TEXT_MEDIA_DISPLAY_STYLE_FIELD(MEDIA_TYPES.shape),
2479
+ ...PADDING_CONTROL_FIELDS(SETTINGS_STYLE_FIELD_GROUP_IDS.style),
2445
2480
  size: IMAGE_SIZE_FIELD(),
2446
2481
  title: TEXT_MEDIA_TITLE_FIELD(),
2447
2482
  description: TEXT_MEDIA_DESCRIPTION_FIELD(),
@@ -2477,6 +2512,7 @@ export const SHAPES_SECTION_SETTINGS_CONFIG = () => ({
2477
2512
  ? MAX_BS_MEDIA_AND_IMAGE_ITEMS
2478
2513
  : MAX_BP_MEDIA_AND_IMAGE_ITEMS,
2479
2514
  },
2515
+ ...PADDING_CONTROL_FIELDS(SETTINGS_STYLE_FIELD_GROUP_IDS.style),
2480
2516
  },
2481
2517
  isEnabled: true,
2482
2518
  isLocked: false,
@@ -2688,6 +2724,7 @@ export const BOOKING_SECTION_SETTINGS_CONFIG = () => ({
2688
2724
  groupId: SETTINGS_STYLE_FIELD_GROUP_IDS.settings,
2689
2725
  visibilityAssessor: (c, b) => personalisationOverrideVisibility(c, b, 'buttonText'),
2690
2726
  },
2727
+ ...PADDING_CONTROL_FIELDS(SETTINGS_STYLE_FIELD_GROUP_IDS.style),
2691
2728
  backgroundStyle: {
2692
2729
  type: 'color',
2693
2730
  groupId: SETTINGS_STYLE_FIELD_GROUP_IDS.style,
@@ -1,4 +1,4 @@
1
- import { ALIGN_CENTERED, ALIGN_LEFT_ALIGNED, ALIGN_LEFT_FULL_IMAGE, ALIGN_RIGHT_ALIGNED, ALIGN_RIGHT_FULL_IMAGE, TEXT_ONLY, } from '@brand-page/constants';
1
+ import { ALIGN_CENTERED, ALIGN_LEFT_ALIGNED, ALIGN_LEFT_FULL_IMAGE, ALIGN_RIGHT_ALIGNED, ALIGN_RIGHT_FULL_IMAGE, TEXT_ONLY, aboutDisplayStyleDefaultPadding, } from '@brand-page/constants';
2
2
  export const aboutDisplayStyleConvertor = {
3
3
  convertBackToMultipleValues: true,
4
4
  convert(value) {
@@ -58,10 +58,16 @@ export const aboutDisplayStyleConvertor = {
58
58
  },
59
59
  convertBack(config) {
60
60
  const selectedOption = config.options.find((v) => v.isSelected);
61
+ // Switching display style adopts that style's canonical look — like the
62
+ // textAlign reset below — including its default block padding. The two
63
+ // full-image styles default to 0 (image flush to the edges); the rest to 32.
64
+ const padding = aboutDisplayStyleDefaultPadding(selectedOption?.value);
61
65
  if (!selectedOption || selectedOption.value === ALIGN_CENTERED) {
62
66
  const textAlign = 'center';
63
67
  return {
64
68
  displayStyle: selectedOption?.value,
69
+ topPadding: padding,
70
+ bottomPadding: padding,
65
71
  titleStyle: {
66
72
  textAlign,
67
73
  },
@@ -73,6 +79,8 @@ export const aboutDisplayStyleConvertor = {
73
79
  const textAlign = 'left';
74
80
  return {
75
81
  displayStyle: selectedOption?.value,
82
+ topPadding: padding,
83
+ bottomPadding: padding,
76
84
  titleStyle: {
77
85
  textAlign,
78
86
  },
@@ -1,4 +1,4 @@
1
- import { ALIGN_CENTERED, ALIGN_LEFT_ALIGNED, ALIGN_RIGHT_ALIGNED, BIG_IMAGE, ALIGN_LEFT_FULL_IMAGE, ALIGN_RIGHT_FULL_IMAGE, ALIGN_LEFT_BIG_IMAGE, ALIGN_CARD_CENTER_IMAGE, ALIGN_CARD_LEFT_IMAGE, ALIGN_TOP_CARD_IMAGE, ALIGN_BOTTOM_CARD_IMAGE, ALIGN_MIDDLE_CARD_IMAGE, ALIGN_TOP_FULL_IMAGE, ALIGN_BOTTOM_FULL_IMAGE, ALIGN_MIDDLE_FULL_IMAGE, } from '@brand-page/constants';
1
+ import { ALIGN_CENTERED, ALIGN_LEFT_ALIGNED, ALIGN_RIGHT_ALIGNED, BIG_IMAGE, ALIGN_LEFT_FULL_IMAGE, ALIGN_RIGHT_FULL_IMAGE, ALIGN_LEFT_BIG_IMAGE, ALIGN_CARD_CENTER_IMAGE, ALIGN_CARD_LEFT_IMAGE, ALIGN_TOP_CARD_IMAGE, ALIGN_BOTTOM_CARD_IMAGE, ALIGN_MIDDLE_CARD_IMAGE, ALIGN_TOP_FULL_IMAGE, ALIGN_BOTTOM_FULL_IMAGE, ALIGN_MIDDLE_FULL_IMAGE, bannerDisplayStyleDefaultPadding, } from '@brand-page/constants';
2
2
  export const bannerAlignDisplayStyleConvertor = {
3
3
  convertBackToMultipleValues: true,
4
4
  convert(value) {
@@ -143,8 +143,14 @@ export const bannerAlignDisplayStyleConvertor = {
143
143
  selectedOption.value === ALIGN_MIDDLE_FULL_IMAGE) {
144
144
  textAlign = 'center';
145
145
  }
146
+ // Switching display style adopts that style's canonical look — like the
147
+ // textAlign resets above — including its default block padding. Full-bleed
148
+ // image styles default to 0 (image flush to the edges); the rest to 32.
149
+ const padding = bannerDisplayStyleDefaultPadding(selectedOption?.value);
146
150
  return {
147
151
  displayStyle: selectedOption?.value,
152
+ topPadding: padding,
153
+ bottomPadding: padding,
148
154
  titleStyle: {
149
155
  textAlign,
150
156
  },
@@ -1,4 +1,4 @@
1
- import { ALIGN_CENTERED, ALIGN_LEFT_FULL_IMAGE, ALIGN_RIGHT_FULL_IMAGE, ALIGN_CARD_CENTER_IMAGE, TEXT_ONLY, ALIGN_CARD_CENTER, } from '@brand-page/constants';
1
+ import { ALIGN_CENTERED, ALIGN_LEFT_FULL_IMAGE, ALIGN_RIGHT_FULL_IMAGE, ALIGN_CARD_CENTER_IMAGE, TEXT_ONLY, ALIGN_CARD_CENTER, CONTACT_FORM_LAYOUT_DEFAULT_PADDING, } from '@brand-page/constants';
2
2
  export const contactLayoutStyleConvertor = {
3
3
  convertBackToMultipleValues: true,
4
4
  convert(value) {
@@ -64,8 +64,13 @@ export const contactLayoutStyleConvertor = {
64
64
  selectedOption?.value === ALIGN_RIGHT_FULL_IMAGE) {
65
65
  textAlign = 'left';
66
66
  }
67
+ // Switching layout adopts that layout's canonical look — same as the
68
+ // textAlign resets below — including its default block padding.
69
+ const padding = CONTACT_FORM_LAYOUT_DEFAULT_PADDING[selectedOption?.value ?? ''] ?? 0;
67
70
  return {
68
71
  layoutStyle: selectedOption?.value,
72
+ topPadding: padding,
73
+ bottomPadding: padding,
69
74
  titleStyle: {
70
75
  textAlign,
71
76
  },
@@ -1,4 +1,4 @@
1
- import { BrandPageModel, PageStyles, FORM_FIELD_IDS, PAYMENT_OPTION_DISPLAY_TYPES, PAYMENT_OPTION_IMAGE_TYPES, SOCIAL_LINKS_ICON_DISPLAY_STYLES, PageHeaderMobile, PageHeaderDesktop, PageFooterMobile, PageFooterDesktop, MEDIA_TYPES, BUTTON_LINK_TYPE, DISPLAY_STYLE_PREVIEW, SUPPORT_ME_CUSTOM_PRODUCT_NAME, DEFAULT_LOGO_HEIGHT, DEFAULT_LOGO_WIDTH, FONT_SIZE_BODY, LINE_HEIGHT_BODY, TEXT_STYLE_TYPES, TEXT_COLUMNS, DEFAULT_LOGO_BACKGROUND_COLOR_RGB, DEFAULT_LOGO_TEXT_COLOR_RGB, EMPTY_LOGO_IMAGE_MODEL, BRAND_PAGE_TYPES, SENSITIVE_CONTENT_TYPES, } from '@brand-page';
1
+ import { BrandPageModel, PageStyles, FORM_FIELD_IDS, PAYMENT_OPTION_DISPLAY_TYPES, PAYMENT_OPTION_IMAGE_TYPES, SOCIAL_LINKS_ICON_DISPLAY_STYLES, PageHeaderMobile, PageHeaderDesktop, PageFooterMobile, PageFooterDesktop, MEDIA_TYPES, BUTTON_LINK_TYPE, DISPLAY_STYLE_PREVIEW, SUPPORT_ME_CUSTOM_PRODUCT_NAME, DEFAULT_LOGO_HEIGHT, DEFAULT_LOGO_WIDTH, FONT_SIZE_BODY, LINE_HEIGHT_BODY, TEXT_STYLE_TYPES, TEXT_COLUMNS, DEFAULT_LOGO_BACKGROUND_COLOR_RGB, DEFAULT_LOGO_TEXT_COLOR_RGB, EMPTY_LOGO_IMAGE_MODEL, BRAND_PAGE_TYPES, SENSITIVE_CONTENT_TYPES, CONTACT_FORM_LAYOUT_DEFAULT_PADDING, } from '@brand-page';
2
2
  import * as uuid from 'uuid';
3
3
  import { getColorShades } from '@brand-page/utils';
4
4
  import { contentSettingsTr } from '@src/composables/useTranslate';
@@ -101,6 +101,8 @@ export const createInitialImageGalleryContent = () => {
101
101
  galleryStyles: {
102
102
  galleryType: 'grid',
103
103
  },
104
+ topPadding: 0,
105
+ bottomPadding: 0,
104
106
  };
105
107
  };
106
108
  export const createInitialVideoContent = () => {
@@ -111,6 +113,8 @@ export const createInitialVideoContent = () => {
111
113
  displayStyle: DISPLAY_STYLE_PREVIEW,
112
114
  mute: false,
113
115
  videoUrl: '',
116
+ topPadding: 0,
117
+ bottomPadding: 0,
114
118
  };
115
119
  };
116
120
  export const createInitialProfileContent = (options) => {
@@ -160,6 +164,8 @@ export const createInitialTextContent = (options) => {
160
164
  ]
161
165
  : undefined,
162
166
  type: 'text',
167
+ topPadding: 12,
168
+ bottomPadding: 12,
163
169
  textSize: {
164
170
  fontSize: FONT_SIZE_BODY,
165
171
  lineHeight: LINE_HEIGHT_BODY,
@@ -201,12 +207,16 @@ export const createInitialMapContent = () => {
201
207
  formattedAddress: '',
202
208
  placeId: '',
203
209
  },
210
+ topPadding: 0,
211
+ bottomPadding: 0,
204
212
  };
205
213
  };
206
214
  export const createInitialMailingListContent = (options) => {
207
215
  return {
208
216
  id: uuid.v4(),
209
217
  type: 'mailing-list',
218
+ topPadding: 0,
219
+ bottomPadding: 0,
210
220
  title: contentSettingsTr(`mailingListTitle`),
211
221
  buttonText: contentSettingsTr(`subscribePlaceholder`),
212
222
  acceptedFields: 'emailOnly',
@@ -237,6 +247,8 @@ export const createInitialRequestPaymentContent = (options) => {
237
247
  successMessage: '',
238
248
  title: contentSettingsTr(`buyNowTitle`),
239
249
  type: 'request-payment',
250
+ topPadding: 0,
251
+ bottomPadding: 0,
240
252
  fillColor: {},
241
253
  defaultBorderColor: {},
242
254
  selectedBorderColor: {},
@@ -266,6 +278,8 @@ export const createInitialShopContent = (options) => {
266
278
  return {
267
279
  id: uuid.v4(),
268
280
  description: '',
281
+ topPadding: 16,
282
+ bottomPadding: 16,
269
283
  products: [],
270
284
  displayStyle: PAYMENT_OPTION_DISPLAY_TYPES.thumbnail,
271
285
  aspectRatio: PAYMENT_OPTION_IMAGE_TYPES.auto,
@@ -322,6 +336,8 @@ export const createInitialSupportMeContent = (options) => {
322
336
  successMessage: contentSettingsTr(`successSupportPlaceholder`),
323
337
  description: contentSettingsTr(`makeADonationDescription`),
324
338
  type: 'support-me',
339
+ topPadding: 0,
340
+ bottomPadding: 0,
325
341
  titleStyle: {
326
342
  applyAutoScale: options?.brandPageType === BRAND_PAGE_TYPES.brandSite,
327
343
  textStyleType: TEXT_STYLE_TYPES.headings,
@@ -354,13 +370,19 @@ export const createInitialContactFormContent = (options) => {
354
370
  typeof options?.userState.emailAddress === 'undefined') {
355
371
  console.error('userState.emailAddress should not be undefined');
356
372
  }
373
+ // New blocks inherit the padding their initial layout previously had
374
+ // hard-coded — same source as the migration backfill for existing pages.
375
+ const layoutStyle = options?.brandPageType === 'brandSite' ? 'center-card-aligned' : '';
376
+ const padding = CONTACT_FORM_LAYOUT_DEFAULT_PADDING[layoutStyle] ?? 0;
357
377
  return {
358
378
  id: uuid.v4(),
359
379
  title: contentSettingsTr(`contactUsTitle`),
360
380
  description: '',
361
381
  buttonText: contentSettingsTr(`sendPlaceholder`),
362
382
  displayStyle: DISPLAY_STYLE_PREVIEW,
363
- layoutStyle: options?.brandPageType === 'brandSite' ? 'center-card-aligned' : '',
383
+ layoutStyle,
384
+ topPadding: padding,
385
+ bottomPadding: padding,
364
386
  imageUrl: '',
365
387
  fields: [
366
388
  {
@@ -450,6 +472,8 @@ export const createInitialContactFormContent = (options) => {
450
472
  export const createInitialBannerSectionContent = (options) => {
451
473
  return {
452
474
  id: uuid.v4(),
475
+ topPadding: 32,
476
+ bottomPadding: 32,
453
477
  imageUrl: '',
454
478
  title: contentSettingsTr(`thisIsABannerTitle`),
455
479
  description: '',
@@ -493,6 +517,8 @@ export const createInitialBookingSectionContent = (options) => {
493
517
  buttonText: contentSettingsTr(`bookNowLabel`),
494
518
  url: '',
495
519
  type: 'booking-section',
520
+ topPadding: 32,
521
+ bottomPadding: 32,
496
522
  descriptionStyle: {
497
523
  applyAutoScale: options?.brandPageType === BRAND_PAGE_TYPES.brandSite,
498
524
  textStyleType: TEXT_STYLE_TYPES.paragraphs,
@@ -519,6 +545,8 @@ export const createInitialImagesSectionContent = (options) => {
519
545
  title: contentSettingsTr(`imagesTitle`),
520
546
  description: '',
521
547
  type: 'images-section',
548
+ topPadding: 32,
549
+ bottomPadding: 32,
522
550
  displayStyle: 'centered',
523
551
  aspectRatio: 'Default',
524
552
  areImagesFullWidth: false,
@@ -616,6 +644,8 @@ export const createInitialAboutSectionContent = (options) => {
616
644
  textAlign: 'center',
617
645
  },
618
646
  backgroundStyle: {},
647
+ topPadding: 32,
648
+ bottomPadding: 32,
619
649
  };
620
650
  };
621
651
  export const createInitialDividerSectionContent = () => {
@@ -668,6 +698,8 @@ export const createInitialSocialLinksContent = (options) => {
668
698
  return {
669
699
  id: uuid.v4(),
670
700
  type: 'social-links',
701
+ topPadding: 32,
702
+ bottomPadding: 32,
671
703
  title: contentSettingsTr(`followUsOnTitle`),
672
704
  links: [
673
705
  {
@@ -718,6 +750,8 @@ export const createInitialShapesSectionContent = (options) => {
718
750
  title: contentSettingsTr(`shapesTitle`),
719
751
  description: '',
720
752
  type: 'shapes-section',
753
+ topPadding: 32,
754
+ bottomPadding: 32,
721
755
  displayStyle: 'centered',
722
756
  items: [
723
757
  {
@@ -5054,6 +5054,8 @@ export declare const useAiCheckpointStore: import("pinia").StoreDefinition<"aiCh
5054
5054
  id: string;
5055
5055
  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";
5056
5056
  personalisationRole?: "website" | "email" | "phone" | "profile" | "about" | "information" | "media" | undefined;
5057
+ topPadding?: number | undefined;
5058
+ bottomPadding?: number | undefined;
5057
5059
  imageUrlOverride?: string | undefined;
5058
5060
  imageUrlsOverride?: string | undefined;
5059
5061
  avatarImageUrlOverride?: string | undefined;
@@ -10160,6 +10162,8 @@ export declare const useAiCheckpointStore: import("pinia").StoreDefinition<"aiCh
10160
10162
  id: string;
10161
10163
  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";
10162
10164
  personalisationRole?: "website" | "email" | "phone" | "profile" | "about" | "information" | "media" | undefined;
10165
+ topPadding?: number | undefined;
10166
+ bottomPadding?: number | undefined;
10163
10167
  imageUrlOverride?: string | undefined;
10164
10168
  imageUrlsOverride?: string | undefined;
10165
10169
  avatarImageUrlOverride?: string | undefined;
@@ -15272,6 +15276,8 @@ export declare const useAiCheckpointStore: import("pinia").StoreDefinition<"aiCh
15272
15276
  id: string;
15273
15277
  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";
15274
15278
  personalisationRole?: "website" | "email" | "phone" | "profile" | "about" | "information" | "media" | undefined;
15279
+ topPadding?: number | undefined;
15280
+ bottomPadding?: number | undefined;
15275
15281
  imageUrlOverride?: string | undefined;
15276
15282
  imageUrlsOverride?: string | undefined;
15277
15283
  avatarImageUrlOverride?: string | undefined;
@@ -20378,6 +20384,8 @@ export declare const useAiCheckpointStore: import("pinia").StoreDefinition<"aiCh
20378
20384
  id: string;
20379
20385
  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";
20380
20386
  personalisationRole?: "website" | "email" | "phone" | "profile" | "about" | "information" | "media" | undefined;
20387
+ topPadding?: number | undefined;
20388
+ bottomPadding?: number | undefined;
20381
20389
  imageUrlOverride?: string | undefined;
20382
20390
  imageUrlsOverride?: string | undefined;
20383
20391
  avatarImageUrlOverride?: string | undefined;
@@ -25490,6 +25498,8 @@ export declare const useAiCheckpointStore: import("pinia").StoreDefinition<"aiCh
25490
25498
  id: string;
25491
25499
  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";
25492
25500
  personalisationRole?: "website" | "email" | "phone" | "profile" | "about" | "information" | "media" | undefined;
25501
+ topPadding?: number | undefined;
25502
+ bottomPadding?: number | undefined;
25493
25503
  imageUrlOverride?: string | undefined;
25494
25504
  imageUrlsOverride?: string | undefined;
25495
25505
  avatarImageUrlOverride?: string | undefined;
@@ -30596,6 +30606,8 @@ export declare const useAiCheckpointStore: import("pinia").StoreDefinition<"aiCh
30596
30606
  id: string;
30597
30607
  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";
30598
30608
  personalisationRole?: "website" | "email" | "phone" | "profile" | "about" | "information" | "media" | undefined;
30609
+ topPadding?: number | undefined;
30610
+ bottomPadding?: number | undefined;
30599
30611
  imageUrlOverride?: string | undefined;
30600
30612
  imageUrlsOverride?: string | undefined;
30601
30613
  avatarImageUrlOverride?: string | undefined;
@@ -18,7 +18,7 @@ import { useUiContentSettingsStore } from '@shared/content-settings/store';
18
18
  import { setContentSettingsAddContentOptions } from './brandpage-maker-store-utils';
19
19
  import { useAdminLogoSettingsStore } from '../admin-logo-settings';
20
20
  import { useUiPageSettingsStore } from '@shared/page-settings/store';
21
- import { isColorMatched, mapBrandPageContentToContentSettingsItem, removeContentFieldValues, removeLogoTemplateModel, transformToRTE, } from '@brand-page-maker/utils';
21
+ import { mapBrandPageContentToContentSettingsItem, removeContentFieldValues, removeLogoTemplateModel, transformToRTE, } from '@brand-page-maker/utils';
22
22
  import { useExternalRichTextEditor } from '@brand-page-maker/composables/rich-text-editor/useRichTextEditor';
23
23
  import { UI_DEVICE_MODES, UI_SCREENSIZE_MODES, } from '@shared/models';
24
24
  import { PAGE_SECTIONS } from '@shared/page-settings/models';
@@ -684,14 +684,6 @@ export const useBrandPageMakerStore = defineStore('brandPageMaker', {
684
684
  },
685
685
  },
686
686
  });
687
- if (userStore.isAdmin && !this.isUserDraft) {
688
- for (const viewport of [VIEWPORTS.desktop, VIEWPORTS.mobile]) {
689
- const hamburger = navigationStyleSettingsStore.navigation[PAGE_SECTIONS.header][viewport].hamburgerMenuStyle;
690
- if (isColorMatched(hamburger.subNavBackgroundColor)) {
691
- hamburger.subNavBackgroundColor = undefined;
692
- }
693
- }
694
- }
695
687
  uiStore.setThirdPartySettings({
696
688
  thirdPartySettings: {
697
689
  unsplashApplicationName,