@designcrowd/library.brand-page 5.18.1 → 5.18.2-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 (108) hide show
  1. package/lib/src/{CreatedOnBrandCrowd-de-de-DFpjIAUv.js → CreatedOnBrandCrowd-de-de-GFYl8DtL.js} +1 -1
  2. package/lib/src/{CreatedOnBrandCrowd-en-us-BapIT2xO.js → CreatedOnBrandCrowd-en-us-D5CcXf2I.js} +1 -1
  3. package/lib/src/{CreatedOnBrandCrowd-es-es-DaSf3Dt6.js → CreatedOnBrandCrowd-es-es-Cr7J3ooe.js} +1 -1
  4. package/lib/src/{CreatedOnBrandCrowd-fr-fr-Cvgei7yn.js → CreatedOnBrandCrowd-fr-ca-BC1NFFIW.js} +1 -1
  5. package/lib/src/{CreatedOnBrandCrowd-fr-ca-Cvgei7yn.js → CreatedOnBrandCrowd-fr-fr-BC1NFFIW.js} +1 -1
  6. package/lib/src/{CreatedOnBrandCrowd-pt-pt-Duxd2NmR.js → CreatedOnBrandCrowd-pt-br-BdiCcpwi.js} +1 -1
  7. package/lib/src/{CreatedOnBrandCrowd-pt-br-Duxd2NmR.js → CreatedOnBrandCrowd-pt-pt-BdiCcpwi.js} +1 -1
  8. package/lib/src/{CreatedOnDcom-de-de-DXwNbruv.js → CreatedOnDcom-de-de-d4TmC_lo.js} +1 -1
  9. package/lib/src/{CreatedOnDcom-en-us-CkNGwN-p.js → CreatedOnDcom-en-us-DlvLEF-R.js} +1 -1
  10. package/lib/src/{CreatedOnDcom-es-es-Csyf5yhI.js → CreatedOnDcom-es-es-BulpVp3k.js} +1 -1
  11. package/lib/src/{CreatedOnDcom-fr-ca-GOIUmIdy.js → CreatedOnDcom-fr-ca-M4xqunZe.js} +1 -1
  12. package/lib/src/{CreatedOnDcom-fr-fr-DF63cL2a.js → CreatedOnDcom-fr-fr-BFqUXgzb.js} +1 -1
  13. package/lib/src/{CreatedOnDcom-pt-br-Ct6FWj7D.js → CreatedOnDcom-pt-br-CUVcVkV2.js} +1 -1
  14. package/lib/src/{CreatedOnDcom-pt-pt-D22yb8Ci.js → CreatedOnDcom-pt-pt-Dc4CZ4xW.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/page/Page.mixin.d.ts +1 -1
  22. package/lib/src/brand-page/components/page/PageComponent.mixin.d.ts +1 -1
  23. package/lib/src/brand-page/components/payment/request-payment/RequestPayment.mixin.d.ts +4 -0
  24. package/lib/src/brand-page/components/payment/request-payment/RequestPayment.mixin.js +4 -0
  25. package/lib/src/brand-page/components/payment/support-me/SupportMe.mixin.d.ts +4 -0
  26. package/lib/src/brand-page/components/payment/support-me/SupportMe.mixin.js +4 -1
  27. package/lib/src/brand-page/components/video/Video.mixin.d.ts +4 -0
  28. package/lib/src/brand-page/components/video/Video.mixin.js +4 -0
  29. package/lib/src/brand-page/constants/misc.constants.d.ts +17 -0
  30. package/lib/src/brand-page/constants/misc.constants.js +25 -0
  31. package/lib/src/brand-page/models/content.model.d.ts +2 -0
  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 +37 -0
  38. package/lib/src/brand-page/utils/migration.util.js +6 -0
  39. package/lib/src/brand-page-maker/components/admin-logo-settings/AdminLogoSettings.mixin.d.ts +2 -0
  40. package/lib/src/brand-page-maker/components/brand-page-maker/BrandPageMaker.mixin.d.ts +12 -0
  41. package/lib/src/brand-page-maker/components/brandpage-maker-page/BrandPageMakerPage.mixin.d.ts +15 -1
  42. package/lib/src/brand-page-maker/constants/config-settings-constant.js +34 -0
  43. package/lib/src/brand-page-maker/convertors/banner-align-display-style.convertor.js +56 -2
  44. package/lib/src/brand-page-maker/convertors/contact-layout-style.convertor.js +6 -1
  45. package/lib/src/brand-page-maker/models/content-settings.js +30 -2
  46. package/lib/src/brand-page-maker/stores/ai-checkpoint/ai-checkpoint-store.d.ts +12 -0
  47. package/lib/src/{bundled-translations-CnareLWC.js → bundled-translations-DYd5oFZv.js} +1 -1
  48. package/lib/src/bundles/bundled-translations.json +2 -0
  49. package/lib/src/css/library.brand-page-brandCrowd.min.css +152 -140
  50. package/lib/src/css/library.brand-page-brandPage.min.css +153 -140
  51. package/lib/src/css/library.brand-page-designCom.min.css +152 -140
  52. package/lib/src/css/library.brand-page-preview.min.css +152 -140
  53. package/lib/src/index.mjs +1 -1
  54. package/lib/src/{lib-_iwoSD1Z.js → lib-CRihSxY0.js} +20195 -19572
  55. package/lib/src/shared/content-settings/components/content-settings/ContentSettings.mixin.d.ts +14 -0
  56. package/lib/src/shared/content-settings/components/content-settings/ReplaceImageSettingsForContent.mixin.d.ts +14 -0
  57. package/lib/src/shared/content-settings/components/content-settings-item/ContentSettingsItem.mixin.d.ts +12 -0
  58. package/lib/src/shared/content-settings/components/content-settings-item/ContentSettingsItemField.mixin.d.ts +12 -0
  59. package/lib/src/shared/content-settings/components/focused-content-item-settings/FocusedContentItemSettings.mixin.d.ts +12 -0
  60. package/lib/src/shared/content-settings/components/slider-field/SliderField.mixin.js +9 -0
  61. package/lib/src/shared/content-settings/store/content-settings-store.d.ts +12 -0
  62. package/lib/src/shared/page-settings/components/page-settings/PageSettings.mixin.d.ts +16 -0
  63. package/lib/src/shared/page-settings/components/page-settings-section-styles/PageSettingsSectionStyles.mixin.d.ts +14 -0
  64. package/lib/src/utils/minify-brand-page-metadata.js +11 -1
  65. package/package.json +2 -2
  66. package/src/brand-page/components/banner-section/BannerSection.vue +360 -12
  67. package/src/brand-page/components/banner-section/BannerSection.vue.test.ts +201 -0
  68. package/src/brand-page/components/booking-section/BookingSection.vue +11 -3
  69. package/src/brand-page/components/contact-form/ContactForm.mixin.ts +12 -6
  70. package/src/brand-page/components/contact-form/ContactForm.vue +115 -118
  71. package/src/brand-page/components/image-gallery/ImageGallery.mixin.ts +5 -0
  72. package/src/brand-page/components/image-gallery/ImageGallery.vue +1 -1
  73. package/src/brand-page/components/mailing-list/MailingList.mixin.ts +8 -1
  74. package/src/brand-page/components/mailing-list/MailingList.vue +1 -1
  75. package/src/brand-page/components/map/Map.vue +5 -1
  76. package/src/brand-page/components/payment/request-payment/RequestPayment.mixin.ts +5 -0
  77. package/src/brand-page/components/payment/request-payment/RequestPayment.vue +1 -0
  78. package/src/brand-page/components/payment/support-me/SupportMe.mixin.ts +8 -1
  79. package/src/brand-page/components/payment/support-me/SupportMe.vue +1 -0
  80. package/src/brand-page/components/placeholder/Placeholder.vue +39 -100
  81. package/src/brand-page/components/social-links/SocialLinks.vue +7 -3
  82. package/src/brand-page/components/text/Text.vue +12 -5
  83. package/src/brand-page/components/text-media-section/TextMediaSection.vue +11 -3
  84. package/src/brand-page/components/video/Video.mixin.ts +5 -0
  85. package/src/brand-page/components/video/Video.vue +1 -1
  86. package/src/brand-page/constants/misc.constants.ts +26 -0
  87. package/src/brand-page/models/content.model.ts +2 -0
  88. package/src/brand-page/utils/__snapshots__/migration.util.test.ts.snap +7 -3
  89. package/src/brand-page/utils/content-padding.util.test.ts +29 -0
  90. package/src/brand-page/utils/content-padding.util.ts +13 -0
  91. package/src/brand-page/utils/index.ts +1 -0
  92. package/src/brand-page/utils/migration/migration-16.ts +51 -0
  93. package/src/brand-page/utils/migration.util.test.ts +64 -0
  94. package/src/brand-page/utils/migration.util.ts +7 -0
  95. package/src/brand-page-maker/constants/config-settings-constant.ts +40 -0
  96. package/src/brand-page-maker/convertors/banner-align-display-style.convertor.ts +61 -1
  97. package/src/brand-page-maker/convertors/contact-layout-style.convertor.test.ts +50 -0
  98. package/src/brand-page-maker/convertors/contact-layout-style.convertor.ts +8 -0
  99. package/src/brand-page-maker/models/content-settings.ts +32 -2
  100. package/src/bundles/bundled-translations.json +2 -0
  101. package/src/shared/content-settings/components/content-settings/i18n/content-settings.json +2 -0
  102. package/src/shared/content-settings/components/content-settings-item/ContentSettingsItem.vue +1 -1
  103. package/src/shared/content-settings/components/focused-content-item-settings/FocusedContentItemSettings.vue +2 -2
  104. package/src/shared/content-settings/components/slider-field/SliderField.mixin.ts +9 -0
  105. package/src/utils/minify-brand-page-metadata.ts +11 -1
  106. package/lib/src/brand-page/components/banner-section/BannerSection.mixin.d.ts +0 -103
  107. package/lib/src/brand-page/components/banner-section/BannerSection.mixin.js +0 -178
  108. package/src/brand-page/components/banner-section/BannerSection.mixin.ts +0 -213
@@ -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;
@@ -1312,8 +1326,8 @@ declare const _default: import("vue").DefineComponent<{}, {
1312
1326
  }>, {
1313
1327
  viewport: import("@brand-page").ViewportsType;
1314
1328
  isMobileDevice: boolean;
1315
- containerClientWidth: number | undefined;
1316
1329
  containerClientHeight: number | undefined;
1330
+ containerClientWidth: number | undefined;
1317
1331
  isContentSelected: boolean;
1318
1332
  isHeaderSelected: boolean;
1319
1333
  isFooterSelected: boolean;
@@ -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,
@@ -977,6 +1001,7 @@ export const TEXT_CONTENT_SETTINGS_CONFIG = () => ({
977
1001
  valueConvertor: backgroundColorConvertor,
978
1002
  groupId: SETTINGS_STYLE_FIELD_GROUP_IDS.style,
979
1003
  },
1004
+ ...PADDING_CONTROL_FIELDS(SETTINGS_STYLE_FIELD_GROUP_IDS.style),
980
1005
  },
981
1006
  isEnabled: true,
982
1007
  isLocked: false,
@@ -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,
@@ -1814,6 +1843,7 @@ export const CONTACT_FORM_SETTINGS_CONFIG = () => ({
1814
1843
  title: contentSettingsTr(`backgroundColorTitle`),
1815
1844
  valueConvertor: backgroundColorConvertor,
1816
1845
  },
1846
+ ...PADDING_CONTROL_FIELDS(CONTACT_FORM_GROUPS.style),
1817
1847
  },
1818
1848
  isEnabled: true,
1819
1849
  isLocked: (features) => !features.canAddContactFormContents,
@@ -2204,6 +2234,7 @@ export const IMAGES_SECTION_SETTINGS_CONFIG = () => ({
2204
2234
  ? MAX_BS_MEDIA_AND_IMAGE_ITEMS
2205
2235
  : MAX_BP_MEDIA_AND_IMAGE_ITEMS,
2206
2236
  },
2237
+ ...PADDING_CONTROL_FIELDS(SETTINGS_STYLE_FIELD_GROUP_IDS.style),
2207
2238
  },
2208
2239
  isEnabled: true,
2209
2240
  isLocked: false,
@@ -2370,6 +2401,7 @@ export const SOCIAL_LINKS_SETTINGS_CONFIG = () => ({
2370
2401
  title: contentSettingsTr(`backgroundColorTitle`),
2371
2402
  valueConvertor: backgroundColorConvertor,
2372
2403
  },
2404
+ ...PADDING_CONTROL_FIELDS(SOCIAL_LINKS_GROUPS.style),
2373
2405
  },
2374
2406
  isEnabled: true,
2375
2407
  isLocked: false,
@@ -2477,6 +2509,7 @@ export const SHAPES_SECTION_SETTINGS_CONFIG = () => ({
2477
2509
  ? MAX_BS_MEDIA_AND_IMAGE_ITEMS
2478
2510
  : MAX_BP_MEDIA_AND_IMAGE_ITEMS,
2479
2511
  },
2512
+ ...PADDING_CONTROL_FIELDS(SETTINGS_STYLE_FIELD_GROUP_IDS.style),
2480
2513
  },
2481
2514
  isEnabled: true,
2482
2515
  isLocked: false,
@@ -2724,6 +2757,7 @@ export const BOOKING_SECTION_SETTINGS_CONFIG = () => ({
2724
2757
  validator: urlValidator,
2725
2758
  defaultValue: '',
2726
2759
  },
2760
+ ...PADDING_CONTROL_FIELDS(SETTINGS_STYLE_FIELD_GROUP_IDS.style),
2727
2761
  },
2728
2762
  isEnabled: true,
2729
2763
  isLocked: false,
@@ -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, } 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, } from '@brand-page/constants';
2
2
  export const bannerAlignDisplayStyleConvertor = {
3
3
  convertBackToMultipleValues: true,
4
4
  convert(value) {
@@ -28,6 +28,54 @@ export const bannerAlignDisplayStyleConvertor = {
28
28
  iconViewBox: '0 0 110 64',
29
29
  dataAttribute: 'data-test-btn-text-only',
30
30
  },
31
+ {
32
+ title: '',
33
+ value: ALIGN_TOP_CARD_IMAGE,
34
+ isSelected: value === ALIGN_TOP_CARD_IMAGE,
35
+ iconName: 'display-style-banner-10',
36
+ iconViewBox: '0 0 110 64',
37
+ dataAttribute: 'data-test-btn-top-card-image',
38
+ },
39
+ {
40
+ title: '',
41
+ value: ALIGN_BOTTOM_CARD_IMAGE,
42
+ isSelected: value === ALIGN_BOTTOM_CARD_IMAGE,
43
+ iconName: 'display-style-banner-11',
44
+ iconViewBox: '0 0 110 64',
45
+ dataAttribute: 'data-test-btn-bottom-card-image',
46
+ },
47
+ {
48
+ title: '',
49
+ value: ALIGN_MIDDLE_CARD_IMAGE,
50
+ isSelected: value === ALIGN_MIDDLE_CARD_IMAGE,
51
+ iconName: 'display-style-banner-12',
52
+ iconViewBox: '0 0 110 64',
53
+ dataAttribute: 'data-test-btn-middle-card-image',
54
+ },
55
+ {
56
+ title: '',
57
+ value: ALIGN_TOP_FULL_IMAGE,
58
+ isSelected: value === ALIGN_TOP_FULL_IMAGE,
59
+ iconName: 'display-style-banner-13',
60
+ iconViewBox: '0 0 110 64',
61
+ dataAttribute: 'data-test-btn-top-full-image',
62
+ },
63
+ {
64
+ title: '',
65
+ value: ALIGN_BOTTOM_FULL_IMAGE,
66
+ isSelected: value === ALIGN_BOTTOM_FULL_IMAGE,
67
+ iconName: 'display-style-banner-14',
68
+ iconViewBox: '0 0 110 64',
69
+ dataAttribute: 'data-test-btn-bottom-full-image',
70
+ },
71
+ {
72
+ title: '',
73
+ value: ALIGN_MIDDLE_FULL_IMAGE,
74
+ isSelected: value === ALIGN_MIDDLE_FULL_IMAGE,
75
+ iconName: 'display-style-banner-15',
76
+ iconViewBox: '0 0 110 64',
77
+ dataAttribute: 'data-test-btn-middle-full-image',
78
+ },
31
79
  {
32
80
  title: '',
33
81
  value: BIG_IMAGE,
@@ -86,7 +134,13 @@ export const bannerAlignDisplayStyleConvertor = {
86
134
  if (!selectedOption ||
87
135
  selectedOption.value === ALIGN_CENTERED ||
88
136
  selectedOption.value === BIG_IMAGE ||
89
- selectedOption.value === ALIGN_CARD_CENTER_IMAGE) {
137
+ selectedOption.value === ALIGN_CARD_CENTER_IMAGE ||
138
+ selectedOption.value === ALIGN_TOP_CARD_IMAGE ||
139
+ selectedOption.value === ALIGN_BOTTOM_CARD_IMAGE ||
140
+ selectedOption.value === ALIGN_MIDDLE_CARD_IMAGE ||
141
+ selectedOption.value === ALIGN_TOP_FULL_IMAGE ||
142
+ selectedOption.value === ALIGN_BOTTOM_FULL_IMAGE ||
143
+ selectedOption.value === ALIGN_MIDDLE_FULL_IMAGE) {
90
144
  textAlign = 'center';
91
145
  }
92
146
  return {
@@ -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: {},
@@ -322,6 +334,8 @@ export const createInitialSupportMeContent = (options) => {
322
334
  successMessage: contentSettingsTr(`successSupportPlaceholder`),
323
335
  description: contentSettingsTr(`makeADonationDescription`),
324
336
  type: 'support-me',
337
+ topPadding: 0,
338
+ bottomPadding: 0,
325
339
  titleStyle: {
326
340
  applyAutoScale: options?.brandPageType === BRAND_PAGE_TYPES.brandSite,
327
341
  textStyleType: TEXT_STYLE_TYPES.headings,
@@ -354,13 +368,19 @@ export const createInitialContactFormContent = (options) => {
354
368
  typeof options?.userState.emailAddress === 'undefined') {
355
369
  console.error('userState.emailAddress should not be undefined');
356
370
  }
371
+ // New blocks inherit the padding their initial layout previously had
372
+ // hard-coded — same source as the migration backfill for existing pages.
373
+ const layoutStyle = options?.brandPageType === 'brandSite' ? 'center-card-aligned' : '';
374
+ const padding = CONTACT_FORM_LAYOUT_DEFAULT_PADDING[layoutStyle] ?? 0;
357
375
  return {
358
376
  id: uuid.v4(),
359
377
  title: contentSettingsTr(`contactUsTitle`),
360
378
  description: '',
361
379
  buttonText: contentSettingsTr(`sendPlaceholder`),
362
380
  displayStyle: DISPLAY_STYLE_PREVIEW,
363
- layoutStyle: options?.brandPageType === 'brandSite' ? 'center-card-aligned' : '',
381
+ layoutStyle,
382
+ topPadding: padding,
383
+ bottomPadding: padding,
364
384
  imageUrl: '',
365
385
  fields: [
366
386
  {
@@ -493,6 +513,8 @@ export const createInitialBookingSectionContent = (options) => {
493
513
  buttonText: contentSettingsTr(`bookNowLabel`),
494
514
  url: '',
495
515
  type: 'booking-section',
516
+ topPadding: 32,
517
+ bottomPadding: 32,
496
518
  descriptionStyle: {
497
519
  applyAutoScale: options?.brandPageType === BRAND_PAGE_TYPES.brandSite,
498
520
  textStyleType: TEXT_STYLE_TYPES.paragraphs,
@@ -519,6 +541,8 @@ export const createInitialImagesSectionContent = (options) => {
519
541
  title: contentSettingsTr(`imagesTitle`),
520
542
  description: '',
521
543
  type: 'images-section',
544
+ topPadding: 32,
545
+ bottomPadding: 32,
522
546
  displayStyle: 'centered',
523
547
  aspectRatio: 'Default',
524
548
  areImagesFullWidth: false,
@@ -668,6 +692,8 @@ export const createInitialSocialLinksContent = (options) => {
668
692
  return {
669
693
  id: uuid.v4(),
670
694
  type: 'social-links',
695
+ topPadding: 32,
696
+ bottomPadding: 32,
671
697
  title: contentSettingsTr(`followUsOnTitle`),
672
698
  links: [
673
699
  {
@@ -718,6 +744,8 @@ export const createInitialShapesSectionContent = (options) => {
718
744
  title: contentSettingsTr(`shapesTitle`),
719
745
  description: '',
720
746
  type: 'shapes-section',
747
+ topPadding: 32,
748
+ bottomPadding: 32,
721
749
  displayStyle: 'centered',
722
750
  items: [
723
751
  {
@@ -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;