@designcrowd/library.brand-page 6.0.19-ast-btns-3 → 6.0.19-ast-btns-5

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 (52) hide show
  1. package/lib/src/{CreatedOnBrandCrowd-de-de-C3GRwwas.js → CreatedOnBrandCrowd-de-de-BtL6m52s.js} +1 -1
  2. package/lib/src/{CreatedOnBrandCrowd-en-us-BJojaucy.js → CreatedOnBrandCrowd-en-us-BSLnZqDA.js} +1 -1
  3. package/lib/src/{CreatedOnBrandCrowd-es-es-C-pGjsQj.js → CreatedOnBrandCrowd-es-es-DJisqEzN.js} +1 -1
  4. package/lib/src/{CreatedOnBrandCrowd-fr-fr-vpg5nKJ_.js → CreatedOnBrandCrowd-fr-ca-Br0QFIMc.js} +1 -1
  5. package/lib/src/{CreatedOnBrandCrowd-fr-ca-vpg5nKJ_.js → CreatedOnBrandCrowd-fr-fr-Br0QFIMc.js} +1 -1
  6. package/lib/src/{CreatedOnBrandCrowd-pt-pt-DzNKpJ3P.js → CreatedOnBrandCrowd-pt-br-DW9cK-UT.js} +1 -1
  7. package/lib/src/{CreatedOnBrandCrowd-pt-br-DzNKpJ3P.js → CreatedOnBrandCrowd-pt-pt-DW9cK-UT.js} +1 -1
  8. package/lib/src/{CreatedOnDcom-de-de-BmiCUzJR.js → CreatedOnDcom-de-de-C5QJae6P.js} +1 -1
  9. package/lib/src/{CreatedOnDcom-en-us-Dj3dMIs1.js → CreatedOnDcom-en-us-9AOMzc5W.js} +1 -1
  10. package/lib/src/{CreatedOnDcom-es-es-CSzrf70r.js → CreatedOnDcom-es-es-BDi3kJNO.js} +1 -1
  11. package/lib/src/{CreatedOnDcom-fr-ca-dyVIaQbg.js → CreatedOnDcom-fr-ca-BqaQPaNY.js} +1 -1
  12. package/lib/src/{CreatedOnDcom-fr-fr-DAcnNIzP.js → CreatedOnDcom-fr-fr-B6zLCUL7.js} +1 -1
  13. package/lib/src/{CreatedOnDcom-pt-br-DGVw2OD9.js → CreatedOnDcom-pt-br-DxPwUT6p.js} +1 -1
  14. package/lib/src/{CreatedOnDcom-pt-pt-Ck4FKouG.js → CreatedOnDcom-pt-pt-CqYO0kHy.js} +1 -1
  15. package/lib/src/brand-page/components/collapsible/Collapsible.mixin.js +3 -1
  16. package/lib/src/brand-page/components/contact-form/ContactForm.mixin.js +5 -3
  17. package/lib/src/brand-page/utils/migration/migration-19.js +2 -10
  18. package/lib/src/brand-page/utils/migration/migration-20.d.ts +2 -0
  19. package/lib/src/brand-page/utils/migration/migration-20.js +24 -0
  20. package/lib/src/brand-page/utils/migration.util.js +7 -1
  21. package/lib/src/brand-page-maker/assessors/contact-form-visibility.assessor.d.ts +1 -0
  22. package/lib/src/brand-page-maker/assessors/contact-form-visibility.assessor.js +6 -0
  23. package/lib/src/brand-page-maker/constants/config-settings-constant.js +5 -4
  24. package/lib/src/brand-page-maker/default-getters/contact-form-card-color.default-getter.d.ts +8 -0
  25. package/lib/src/brand-page-maker/default-getters/contact-form-card-color.default-getter.js +16 -0
  26. package/lib/src/brand-page-maker/default-getters/index.d.ts +1 -1
  27. package/lib/src/brand-page-maker/default-getters/index.js +1 -1
  28. package/lib/src/brand-page-maker/models/content-settings.js +6 -3
  29. package/lib/src/css/library.brand-page-brandCrowd.min.css +15 -15
  30. package/lib/src/css/library.brand-page-brandPage.min.css +15 -15
  31. package/lib/src/css/library.brand-page-designCom.min.css +15 -15
  32. package/lib/src/css/library.brand-page-preview.min.css +15 -15
  33. package/lib/src/index.mjs +1 -1
  34. package/lib/src/{lib-BNgY9ab3.js → lib-C-uekd4C.js} +6479 -6456
  35. package/package.json +1 -1
  36. package/src/brand-page/components/collapsible/Collapsible.mixin.ts +3 -1
  37. package/src/brand-page/components/contact-form/ContactForm.mixin.test.ts +18 -0
  38. package/src/brand-page/components/contact-form/ContactForm.mixin.ts +5 -3
  39. package/src/brand-page/components/contact-form/ContactForm.vue +7 -1
  40. package/src/brand-page/utils/__snapshots__/migration.util.test.ts.snap +3 -3
  41. package/src/brand-page/utils/migration/migration-19.test.ts +2 -7
  42. package/src/brand-page/utils/migration/migration-19.ts +2 -13
  43. package/src/brand-page/utils/migration/migration-20.test.ts +118 -0
  44. package/src/brand-page/utils/migration/migration-20.ts +54 -0
  45. package/src/brand-page/utils/migration.util.ts +8 -1
  46. package/src/brand-page-maker/assessors/contact-form-visibility.assessor.ts +11 -0
  47. package/src/brand-page-maker/constants/config-settings-constant.ts +5 -4
  48. package/src/brand-page-maker/default-getters/{contact-form-background-color.default-getter.ts → contact-form-card-color.default-getter.ts} +5 -5
  49. package/src/brand-page-maker/default-getters/index.ts +1 -1
  50. package/src/brand-page-maker/models/content-settings.ts +7 -3
  51. package/lib/src/brand-page-maker/default-getters/contact-form-background-color.default-getter.d.ts +0 -8
  52. package/lib/src/brand-page-maker/default-getters/contact-form-background-color.default-getter.js +0 -16
@@ -1,5 +1,5 @@
1
1
  import { openBlock as e, createElementBlock as l, createStaticVNode as a } from "vue";
2
- import { _ as t } from "./lib-BNgY9ab3.js";
2
+ import { _ as t } from "./lib-C-uekd4C.js";
3
3
  const i = {}, h = {
4
4
  width: "275",
5
5
  height: "36",
@@ -1,5 +1,5 @@
1
1
  import { openBlock as e, createElementBlock as l, createStaticVNode as a } from "vue";
2
- import { _ as t } from "./lib-BNgY9ab3.js";
2
+ import { _ as t } from "./lib-C-uekd4C.js";
3
3
  const i = {}, h = {
4
4
  width: "251",
5
5
  height: "36",
@@ -1,5 +1,5 @@
1
1
  import { openBlock as e, createElementBlock as l, createStaticVNode as a } from "vue";
2
- import { _ as t } from "./lib-BNgY9ab3.js";
2
+ import { _ as t } from "./lib-C-uekd4C.js";
3
3
  const i = {}, h = {
4
4
  width: "250",
5
5
  height: "36",
@@ -1,5 +1,5 @@
1
1
  import { openBlock as e, createElementBlock as l, createStaticVNode as a } from "vue";
2
- import { _ as t } from "./lib-BNgY9ab3.js";
2
+ import { _ as t } from "./lib-C-uekd4C.js";
3
3
  const i = {}, h = {
4
4
  width: "237",
5
5
  height: "36",
@@ -1,5 +1,5 @@
1
1
  import { openBlock as e, createElementBlock as l, createStaticVNode as a } from "vue";
2
- import { _ as t } from "./lib-BNgY9ab3.js";
2
+ import { _ as t } from "./lib-C-uekd4C.js";
3
3
  const i = {}, h = {
4
4
  width: "237",
5
5
  height: "36",
@@ -1,5 +1,5 @@
1
1
  import { openBlock as e, createElementBlock as l, createStaticVNode as a } from "vue";
2
- import { _ as t } from "./lib-BNgY9ab3.js";
2
+ import { _ as t } from "./lib-C-uekd4C.js";
3
3
  const i = {}, h = {
4
4
  width: "263",
5
5
  height: "36",
@@ -1,5 +1,5 @@
1
1
  import { openBlock as e, createElementBlock as l, createStaticVNode as a } from "vue";
2
- import { _ as t } from "./lib-BNgY9ab3.js";
2
+ import { _ as t } from "./lib-C-uekd4C.js";
3
3
  const i = {}, h = {
4
4
  width: "263",
5
5
  height: "36",
@@ -1,5 +1,5 @@
1
1
  import { openBlock as H, createElementBlock as V, createStaticVNode as t } from "vue";
2
- import { _ as e } from "./lib-BNgY9ab3.js";
2
+ import { _ as e } from "./lib-C-uekd4C.js";
3
3
  const M = {}, Z = {
4
4
  width: "242",
5
5
  height: "36",
@@ -1,5 +1,5 @@
1
1
  import { openBlock as H, createElementBlock as V, createStaticVNode as t } from "vue";
2
- import { _ as e } from "./lib-BNgY9ab3.js";
2
+ import { _ as e } from "./lib-C-uekd4C.js";
3
3
  const i = {}, M = {
4
4
  width: "231",
5
5
  height: "36",
@@ -1,5 +1,5 @@
1
1
  import { openBlock as H, createElementBlock as V, createStaticVNode as t } from "vue";
2
- import { _ as e } from "./lib-BNgY9ab3.js";
2
+ import { _ as e } from "./lib-C-uekd4C.js";
3
3
  const M = {}, Z = {
4
4
  width: "230",
5
5
  height: "36",
@@ -1,5 +1,5 @@
1
1
  import { openBlock as H, createElementBlock as V, createStaticVNode as t } from "vue";
2
- import { _ as e } from "./lib-BNgY9ab3.js";
2
+ import { _ as e } from "./lib-C-uekd4C.js";
3
3
  const i = {}, l = {
4
4
  width: "216",
5
5
  height: "36",
@@ -1,5 +1,5 @@
1
1
  import { openBlock as H, createElementBlock as V, createStaticVNode as t } from "vue";
2
- import { _ as e } from "./lib-BNgY9ab3.js";
2
+ import { _ as e } from "./lib-C-uekd4C.js";
3
3
  const i = {}, l = {
4
4
  width: "216",
5
5
  height: "36",
@@ -1,5 +1,5 @@
1
1
  import { openBlock as H, createElementBlock as V, createStaticVNode as t } from "vue";
2
- import { _ as M } from "./lib-BNgY9ab3.js";
2
+ import { _ as M } from "./lib-C-uekd4C.js";
3
3
  const Z = {}, e = {
4
4
  width: "232",
5
5
  height: "36",
@@ -1,5 +1,5 @@
1
1
  import { openBlock as H, createElementBlock as V, createStaticVNode as t } from "vue";
2
- import { _ as M } from "./lib-BNgY9ab3.js";
2
+ import { _ as M } from "./lib-C-uekd4C.js";
3
3
  const Z = {}, e = {
4
4
  width: "232",
5
5
  height: "36",
@@ -45,7 +45,9 @@ export default defineComponent({
45
45
  if (borderRadius === '9999px') {
46
46
  containerStyle.borderRadius = '26px';
47
47
  }
48
- if (this.cardStyle) {
48
+ // Guarded on backgroundColor so an empty {} never blanks the container
49
+ // (BP/BC contact-form card colour defaults to the button fill).
50
+ if (this.cardStyle?.backgroundColor) {
49
51
  containerStyle.backgroundColor = this.cardStyle.backgroundColor;
50
52
  }
51
53
  // Own background colour decouples the container from the button fill (BP-5800).
@@ -158,8 +158,8 @@ export default defineComponent({
158
158
  // differs by website type:
159
159
  // - brandSite: the card style (card + divided layouts) or the section
160
160
  // background (other layouts).
161
- // - brand.page / brand.contact: there's no section background, so the
162
- // coloured surface is the global button fill.
161
+ // - brand.page / brand.contact: the container is the collapsible, whose
162
+ // colour is the card colour (defaulting to the global button fill).
163
163
  // Falls back to the title colour when there's no solid colour to anchor to.
164
164
  const style = this.context.isBrandSite
165
165
  ? this.hasCard || this.isDividedContent
@@ -167,7 +167,9 @@ export default defineComponent({
167
167
  : this.hasBgColor
168
168
  ? this.viewModel.backgroundStyle
169
169
  : undefined
170
- : this.viewModel.buttonStyles?.style;
170
+ : this.viewModel.cardStyle?.backgroundColor
171
+ ? this.viewModel.cardStyle
172
+ : this.viewModel.buttonStyles?.style;
171
173
  return (mutedTextForBackground(backgroundColorFromStyle(style)) ??
172
174
  this.viewModel.titleStyle?.color);
173
175
  },
@@ -1,4 +1,3 @@
1
- import { BRAND_PAGE_TYPES } from '../../models';
2
1
  /**
3
2
  * BP-5800 — decouple the section container background from the global button fill.
4
3
  *
@@ -8,10 +7,10 @@ import { BRAND_PAGE_TYPES } from '../../models';
8
7
  * existing sites render identically while the colour becomes independently editable.
9
8
  *
10
9
  * runAlways + idempotent: only seeds when the colour is unset, so it never overrides
11
- * a colour the user has set.
10
+ * a colour the user has set. (contact-form is handled by migration-20 — its BP/BC
11
+ * container colour moved to `cardStyle`.)
12
12
  */
13
13
  const CONTAINER_BACKGROUND_TYPES = new Set([
14
- 'contact-form',
15
14
  'mailing-list',
16
15
  'request-payment',
17
16
  'support-me',
@@ -22,18 +21,11 @@ export const migration19 = async (migrationResult) => {
22
21
  if (buttonFill === undefined) {
23
22
  return migrationResult;
24
23
  }
25
- const isBrandSite = brandPageModel.brandPageType === BRAND_PAGE_TYPES.brandSite;
26
24
  brandPageModel.pages.forEach((page) => {
27
25
  page.contents.forEach((content) => {
28
26
  if (!CONTAINER_BACKGROUND_TYPES.has(content.type)) {
29
27
  return;
30
28
  }
31
- // contact-form already paints its own backgroundStyle on brand-site (default
32
- // transparent); only its BP/BC container takes the button fill. mailing-list /
33
- // payment use the button-fill container on every type, so they always seed.
34
- if (content.type === 'contact-form' && isBrandSite) {
35
- return;
36
- }
37
29
  const block = content;
38
30
  if (block.backgroundStyle?.backgroundColor !== undefined) {
39
31
  return;
@@ -0,0 +1,2 @@
1
+ import type { MigrationData } from '../migration.util';
2
+ export declare const migration20: (migrationResult: MigrationData) => Promise<MigrationData>;
@@ -0,0 +1,24 @@
1
+ import { BRAND_PAGE_TYPES } from '../../models';
2
+ export const migration20 = async (migrationResult) => {
3
+ const { brandPageModel } = migrationResult;
4
+ if (brandPageModel.brandPageType === BRAND_PAGE_TYPES.brandSite) {
5
+ return migrationResult;
6
+ }
7
+ const buttonFill = brandPageModel.styles?.buttonStyles?.style?.backgroundColor;
8
+ if (buttonFill === undefined) {
9
+ return migrationResult;
10
+ }
11
+ brandPageModel.pages.forEach((page) => {
12
+ page.contents.forEach((content) => {
13
+ if (content.type !== 'contact-form') {
14
+ return;
15
+ }
16
+ const block = content;
17
+ block.cardStyle = {
18
+ ...block.cardStyle,
19
+ backgroundColor: buttonFill,
20
+ };
21
+ });
22
+ });
23
+ return migrationResult;
24
+ };
@@ -22,6 +22,7 @@ import { migration16 } from './migration/migration-16';
22
22
  import { migration17 } from './migration/migration-17';
23
23
  import { migration18 } from './migration/migration-18';
24
24
  import { migration19 } from './migration/migration-19';
25
+ import { migration20 } from './migration/migration-20';
25
26
  const MIGRATION_TABLE = [
26
27
  {
27
28
  version: 1,
@@ -145,7 +146,12 @@ const MIGRATION_TABLE = [
145
146
  // runAlways: re-apply on every load so already-published sites pick up the seed
146
147
  // without a version bump. Idempotent — only seeds backgroundColor when unset.
147
148
  runAlways: true,
148
- description: 'BP-5800: seed own container backgroundStyle from the button fill colour for contact-form, mailing-list, request-payment and support-me so the container background is independent of the site button (existing sites render unchanged)',
149
+ description: 'BP-5800: seed own container backgroundStyle from the button fill colour for mailing-list, request-payment and support-me so the container background is independent of the site button (existing sites render unchanged)',
150
+ },
151
+ {
152
+ version: 20,
153
+ migrateFn: migration20,
154
+ description: 'BP-5800: contact-form BP/BC container colour moves to cardStyle — seed cardStyle from the button fill (its long-standing rendered colour) so existing sites render unchanged',
149
155
  },
150
156
  ];
151
157
  export const GetLatestModelVersion = () => Math.max(...MIGRATION_TABLE.map((x) => x.version));
@@ -1,6 +1,7 @@
1
1
  import { type ContactFormContent } from '@brand-page';
2
2
  import type { VisibilityAssessor } from '../models';
3
3
  export declare const contactCardDisplayTypeVisibilityAssessor: VisibilityAssessor<ContactFormContent | undefined>;
4
+ export declare const contactCardColorVisibilityAssessor: VisibilityAssessor<ContactFormContent | undefined>;
4
5
  export declare const displayTypeVisibilityAssessor: VisibilityAssessor<ContactFormContent | undefined>;
5
6
  export declare const imageUrlVisibilityAssessor: VisibilityAssessor<ContactFormContent | undefined>;
6
7
  export declare const contactBackgroundDisplayTypeVisibilityAssessor: VisibilityAssessor<ContactFormContent | undefined>;
@@ -9,6 +9,12 @@ export const contactCardDisplayTypeVisibilityAssessor = (content, context) => {
9
9
  ALIGN_RIGHT_FULL_IMAGE,
10
10
  ].includes(content?.layoutStyle)) && context.isBrandSite);
11
11
  };
12
+ // Card colour picker: on brand-page/brand-contact it's the collapsible container
13
+ // colour (shown for every layout); on brand-site it's the card in card layouts.
14
+ export const contactCardColorVisibilityAssessor = (content, context) => {
15
+ return (!context.isBrandSite ||
16
+ contactCardDisplayTypeVisibilityAssessor(content, context));
17
+ };
12
18
  export const displayTypeVisibilityAssessor = (content, context) => {
13
19
  return Boolean(content?.layoutStyle === '' || context.isBrandPage);
14
20
  };
@@ -3,8 +3,8 @@ import { createInitialButtonContent, createInitialImageContent, createInitialPro
3
3
  import * as uuid from 'uuid';
4
4
  import { colorConvertor, backgroundColorConvertor, borderColorConvertor, displayStyleConvertor, galleryTypeConvertor, imageAspectRatioConvertor, textAlignmentOptionsConvertor, videoContentStateConvertor, fillColorConvertor, bannerAlignDisplayStyleConvertor, aboutDisplayStyleConvertor, dividerStyleConvertor, shapeSizeOptionsConvertor, buttonLinkStyleConvertor, textSizeValueConvertor, textColumnStyleConvertor, contactLayoutStyleConvertor, paymentLinkDisplayStyleConvertor, shopDisplayConvertor, shopAspectRatioConvertor, } from '../convertors';
5
5
  import { ALIGN_CENTERED, DISPLAY_STYLE_COLLAPSED, DISPLAY_STYLE_PREVIEW, } from '@brand-page';
6
- import { imageFieldVisibilityAssessor, imageOptionVisibilityAssessor, imageGalleryFieldVisibilityAssessor, cardFillVisibilityAssessor, mediaSectionItemsFieldTypeAssessor, dividerToggleFieldVisibilityAssessor, shapeSectionItemsFieldTypeAssessor, colorReplacementVisibilityTypeAssessor, colorReplacementProfileVisibilityTypeAssessor, colorReplacementIconVisibilityTypeAssessor, imagesSectionCardStyleVisibilityAssessor, contactCardDisplayTypeVisibilityAssessor, imageUrlVisibilityAssessor, displayTypeVisibilityAssessor, logoFieldVisibilityAssessor, shapesSectionCardStyleVisibilityAssessor, shopImageOptionVisibilityAssessor, shopItemColorVisibility, personalisationOverrideVisibility, } from '../assessors';
7
- import { contactFormBackgroundColorDefaultGetter, logoBackgroundColorDefaultGetter, paymentFillColorFieldDefaultGetter, paymentTextAndBorderColorFieldDefaultGetter, shopBorderColorFieldDefaultGetter, shopFillColorFieldDefaultGetter, textColorFieldDefaultGetter, } from '../default-getters';
6
+ import { imageFieldVisibilityAssessor, imageOptionVisibilityAssessor, imageGalleryFieldVisibilityAssessor, cardFillVisibilityAssessor, mediaSectionItemsFieldTypeAssessor, dividerToggleFieldVisibilityAssessor, shapeSectionItemsFieldTypeAssessor, colorReplacementVisibilityTypeAssessor, colorReplacementProfileVisibilityTypeAssessor, colorReplacementIconVisibilityTypeAssessor, imagesSectionCardStyleVisibilityAssessor, contactCardColorVisibilityAssessor, imageUrlVisibilityAssessor, displayTypeVisibilityAssessor, logoFieldVisibilityAssessor, shapesSectionCardStyleVisibilityAssessor, shopImageOptionVisibilityAssessor, shopItemColorVisibility, personalisationOverrideVisibility, } from '../assessors';
7
+ import { contactFormCardColorDefaultGetter, logoBackgroundColorDefaultGetter, paymentFillColorFieldDefaultGetter, paymentTextAndBorderColorFieldDefaultGetter, shopBorderColorFieldDefaultGetter, shopFillColorFieldDefaultGetter, textColorFieldDefaultGetter, } from '../default-getters';
8
8
  import { socialLinksIconDisplayStyleConvertor } from '../convertors/social-links-icon-display-style.convertor';
9
9
  import { getTextMediaOptionsConverterByMediaType } from '../convertors/text-image-display-style.convertor';
10
10
  import { testimonialDisplayStyleConvertor } from '../convertors/testimonial-display-style-convertor';
@@ -1871,7 +1871,8 @@ export const CONTACT_FORM_SETTINGS_CONFIG = () => ({
1871
1871
  disableTransparent: true,
1872
1872
  title: contentSettingsTr(`cardColorTitle`),
1873
1873
  valueConvertor: backgroundColorConvertor,
1874
- visibilityAssessor: contactCardDisplayTypeVisibilityAssessor,
1874
+ visibilityAssessor: contactCardColorVisibilityAssessor,
1875
+ defaultGetter: contactFormCardColorDefaultGetter,
1875
1876
  },
1876
1877
  backgroundStyle: {
1877
1878
  type: 'color',
@@ -1882,7 +1883,7 @@ export const CONTACT_FORM_SETTINGS_CONFIG = () => ({
1882
1883
  title: contentSettingsTr(`backgroundColorTitle`),
1883
1884
  disableTransparent: disableTransparentOffBrandSite,
1884
1885
  valueConvertor: backgroundColorConvertor,
1885
- defaultGetter: contactFormBackgroundColorDefaultGetter,
1886
+ visibilityAssessor: brandSiteTypeVisibilityAssessor,
1886
1887
  },
1887
1888
  },
1888
1889
  isEnabled: true,
@@ -0,0 +1,8 @@
1
+ import type { DefaultGetter } from '../models';
2
+ /**
3
+ * Contact-form "Card color" default (BP-5800). On brand-page/brand-contact the
4
+ * collapsible container takes the button fill, so default the Card color picker to
5
+ * it. On brand-site the Card color applies to the card in card layouts and keeps its
6
+ * own seeded default — so no default here.
7
+ */
8
+ export declare const contactFormCardColorDefaultGetter: DefaultGetter<BrandPageCssStyle>;
@@ -0,0 +1,16 @@
1
+ import { RGBAtoHex } from '@utils/helpers';
2
+ import { BRAND_PAGE_TYPES } from '@brand-page';
3
+ /**
4
+ * Contact-form "Card color" default (BP-5800). On brand-page/brand-contact the
5
+ * collapsible container takes the button fill, so default the Card color picker to
6
+ * it. On brand-site the Card color applies to the card in card layouts and keeps its
7
+ * own seeded default — so no default here.
8
+ */
9
+ export const contactFormCardColorDefaultGetter = (brandPage) => {
10
+ if (brandPage.brandPageType === BRAND_PAGE_TYPES.brandSite) {
11
+ return {};
12
+ }
13
+ return {
14
+ backgroundColor: RGBAtoHex(brandPage.styles.buttonStyles.style.backgroundColor),
15
+ };
16
+ };
@@ -2,4 +2,4 @@ export * from './text-color.default-getter';
2
2
  export * from './payment-fill-color.default-getter';
3
3
  export * from './payment-text-and-border-color.default-getter';
4
4
  export * from './logo-background-fill.default-getter';
5
- export * from './contact-form-background-color.default-getter';
5
+ export * from './contact-form-card-color.default-getter';
@@ -2,4 +2,4 @@ export * from './text-color.default-getter';
2
2
  export * from './payment-fill-color.default-getter';
3
3
  export * from './payment-text-and-border-color.default-getter';
4
4
  export * from './logo-background-fill.default-getter';
5
- export * from './contact-form-background-color.default-getter';
5
+ export * from './contact-form-card-color.default-getter';
@@ -450,9 +450,12 @@ export const createInitialContactFormContent = (options) => {
450
450
  successMessage: contentSettingsTr(`formSuccessMessage`),
451
451
  responseEmail: options?.userState.emailAddress || '',
452
452
  type: 'contact-form',
453
- cardStyle: {
454
- backgroundColor: DEFAULT_LOGO_BACKGROUND_COLOR_RGB,
455
- },
453
+ // brand-site: card layouts default to the logo bg. brand-page/brand-contact:
454
+ // leave empty so the collapsible container keeps the button-fill default (the
455
+ // Card colour picker still surfaces button-fill via its defaultGetter).
456
+ cardStyle: options?.brandPageType === BRAND_PAGE_TYPES.brandSite
457
+ ? { backgroundColor: DEFAULT_LOGO_BACKGROUND_COLOR_RGB }
458
+ : {},
456
459
  backgroundStyle: {},
457
460
  titleStyle: {
458
461
  applyAutoScale: options?.brandPageType === BRAND_PAGE_TYPES.brandSite,
@@ -6188,59 +6188,59 @@ select[data-v-14e7c7c7] {
6188
6188
  width: 100%;
6189
6189
  }
6190
6190
 
6191
- .form-error[data-v-04e03cb2] {
6191
+ .form-error[data-v-595bbd1f] {
6192
6192
  font-size: 0.875rem;
6193
6193
  line-height: 1.25rem;
6194
6194
  color: #f21b3f;
6195
6195
  }
6196
- .contact-container[data-v-04e03cb2] {
6196
+ .contact-container[data-v-595bbd1f] {
6197
6197
  max-width: var(--brandsite-max-width);
6198
6198
  margin: 0 auto;
6199
6199
  }
6200
- .c-text-padding[data-v-04e03cb2] {
6200
+ .c-text-padding[data-v-595bbd1f] {
6201
6201
  padding-left: 1rem;
6202
6202
  padding-right: 1rem;
6203
6203
  }
6204
- .device-wrapper--mobile .c-divided-container[data-v-04e03cb2] {
6204
+ .device-wrapper--mobile .c-divided-container[data-v-595bbd1f] {
6205
6205
  -webkit-box-orient: vertical;
6206
6206
  -webkit-box-direction: normal;
6207
6207
  -ms-flex-direction: column;
6208
6208
  flex-direction: column;
6209
6209
  }
6210
- .device-wrapper--mobile .c-divided-container-reverse[data-v-04e03cb2] {
6210
+ .device-wrapper--mobile .c-divided-container-reverse[data-v-595bbd1f] {
6211
6211
  -webkit-box-orient: vertical;
6212
6212
  -webkit-box-direction: reverse;
6213
6213
  -ms-flex-direction: column-reverse;
6214
6214
  flex-direction: column-reverse;
6215
6215
  }
6216
6216
  @media (max-width: 767px) {
6217
- .c-button-full[data-v-04e03cb2] {
6217
+ .c-button-full[data-v-595bbd1f] {
6218
6218
  width: 100%;
6219
6219
  }
6220
6220
  /* Match the button's full-width on published mobile. The maker uses the
6221
6221
  isMobileDevice prop for this; the renderer has no such state, so the
6222
6222
  decorative-button wrapper is widened here via the real viewport instead. */
6223
- [data-v-04e03cb2] .bp-style-wrapper {
6223
+ [data-v-595bbd1f] .bp-style-wrapper {
6224
6224
  width: 100%;
6225
6225
  }
6226
- .c-col-span-2[data-v-04e03cb2] {
6226
+ .c-col-span-2[data-v-595bbd1f] {
6227
6227
  grid-column: span 2 / span 2;
6228
6228
  }
6229
- .c-mobile-padding[data-v-04e03cb2] {
6229
+ .c-mobile-padding[data-v-595bbd1f] {
6230
6230
  padding: 1rem;
6231
6231
  }
6232
- .c-text-padding[data-v-04e03cb2] {
6232
+ .c-text-padding[data-v-595bbd1f] {
6233
6233
  grid-column: span 2 / span 2;
6234
6234
  padding-left: 0px;
6235
6235
  padding-right: 0px;
6236
6236
  }
6237
- .c-divided-container[data-v-04e03cb2] {
6237
+ .c-divided-container[data-v-595bbd1f] {
6238
6238
  -webkit-box-orient: vertical;
6239
6239
  -webkit-box-direction: normal;
6240
6240
  -ms-flex-direction: column;
6241
6241
  flex-direction: column;
6242
6242
  }
6243
- .c-divided-container-reverse[data-v-04e03cb2] {
6243
+ .c-divided-container-reverse[data-v-595bbd1f] {
6244
6244
  -webkit-box-orient: vertical;
6245
6245
  -webkit-box-direction: reverse;
6246
6246
  -ms-flex-direction: column-reverse;
@@ -6248,16 +6248,16 @@ select[data-v-14e7c7c7] {
6248
6248
  }
6249
6249
  }
6250
6250
  @media (min-width: 767px) {
6251
- .c-aspect-square[data-v-04e03cb2] {
6251
+ .c-aspect-square[data-v-595bbd1f] {
6252
6252
  aspect-ratio: 1 / 1;
6253
6253
  }
6254
- .c-divided-container[data-v-04e03cb2] {
6254
+ .c-divided-container[data-v-595bbd1f] {
6255
6255
  -webkit-box-orient: horizontal;
6256
6256
  -webkit-box-direction: normal;
6257
6257
  -ms-flex-direction: row;
6258
6258
  flex-direction: row;
6259
6259
  }
6260
- .c-divided-container-reverse[data-v-04e03cb2] {
6260
+ .c-divided-container-reverse[data-v-595bbd1f] {
6261
6261
  -webkit-box-orient: horizontal;
6262
6262
  -webkit-box-direction: reverse;
6263
6263
  -ms-flex-direction: row-reverse;
@@ -6799,59 +6799,59 @@ select[data-v-14e7c7c7] {
6799
6799
  width: 100%;
6800
6800
  }
6801
6801
 
6802
- .form-error[data-v-04e03cb2] {
6802
+ .form-error[data-v-595bbd1f] {
6803
6803
  font-size: 0.875rem;
6804
6804
  line-height: 1.25rem;
6805
6805
  color: #f21b3f;
6806
6806
  }
6807
- .contact-container[data-v-04e03cb2] {
6807
+ .contact-container[data-v-595bbd1f] {
6808
6808
  max-width: var(--brandsite-max-width);
6809
6809
  margin: 0 auto;
6810
6810
  }
6811
- .c-text-padding[data-v-04e03cb2] {
6811
+ .c-text-padding[data-v-595bbd1f] {
6812
6812
  padding-left: 1rem;
6813
6813
  padding-right: 1rem;
6814
6814
  }
6815
- .device-wrapper--mobile .c-divided-container[data-v-04e03cb2] {
6815
+ .device-wrapper--mobile .c-divided-container[data-v-595bbd1f] {
6816
6816
  -webkit-box-orient: vertical;
6817
6817
  -webkit-box-direction: normal;
6818
6818
  -ms-flex-direction: column;
6819
6819
  flex-direction: column;
6820
6820
  }
6821
- .device-wrapper--mobile .c-divided-container-reverse[data-v-04e03cb2] {
6821
+ .device-wrapper--mobile .c-divided-container-reverse[data-v-595bbd1f] {
6822
6822
  -webkit-box-orient: vertical;
6823
6823
  -webkit-box-direction: reverse;
6824
6824
  -ms-flex-direction: column-reverse;
6825
6825
  flex-direction: column-reverse;
6826
6826
  }
6827
6827
  @media (max-width: 767px) {
6828
- .c-button-full[data-v-04e03cb2] {
6828
+ .c-button-full[data-v-595bbd1f] {
6829
6829
  width: 100%;
6830
6830
  }
6831
6831
  /* Match the button's full-width on published mobile. The maker uses the
6832
6832
  isMobileDevice prop for this; the renderer has no such state, so the
6833
6833
  decorative-button wrapper is widened here via the real viewport instead. */
6834
- [data-v-04e03cb2] .bp-style-wrapper {
6834
+ [data-v-595bbd1f] .bp-style-wrapper {
6835
6835
  width: 100%;
6836
6836
  }
6837
- .c-col-span-2[data-v-04e03cb2] {
6837
+ .c-col-span-2[data-v-595bbd1f] {
6838
6838
  grid-column: span 2 / span 2;
6839
6839
  }
6840
- .c-mobile-padding[data-v-04e03cb2] {
6840
+ .c-mobile-padding[data-v-595bbd1f] {
6841
6841
  padding: 1rem;
6842
6842
  }
6843
- .c-text-padding[data-v-04e03cb2] {
6843
+ .c-text-padding[data-v-595bbd1f] {
6844
6844
  grid-column: span 2 / span 2;
6845
6845
  padding-left: 0px;
6846
6846
  padding-right: 0px;
6847
6847
  }
6848
- .c-divided-container[data-v-04e03cb2] {
6848
+ .c-divided-container[data-v-595bbd1f] {
6849
6849
  -webkit-box-orient: vertical;
6850
6850
  -webkit-box-direction: normal;
6851
6851
  -ms-flex-direction: column;
6852
6852
  flex-direction: column;
6853
6853
  }
6854
- .c-divided-container-reverse[data-v-04e03cb2] {
6854
+ .c-divided-container-reverse[data-v-595bbd1f] {
6855
6855
  -webkit-box-orient: vertical;
6856
6856
  -webkit-box-direction: reverse;
6857
6857
  -ms-flex-direction: column-reverse;
@@ -6859,16 +6859,16 @@ select[data-v-14e7c7c7] {
6859
6859
  }
6860
6860
  }
6861
6861
  @media (min-width: 767px) {
6862
- .c-aspect-square[data-v-04e03cb2] {
6862
+ .c-aspect-square[data-v-595bbd1f] {
6863
6863
  aspect-ratio: 1 / 1;
6864
6864
  }
6865
- .c-divided-container[data-v-04e03cb2] {
6865
+ .c-divided-container[data-v-595bbd1f] {
6866
6866
  -webkit-box-orient: horizontal;
6867
6867
  -webkit-box-direction: normal;
6868
6868
  -ms-flex-direction: row;
6869
6869
  flex-direction: row;
6870
6870
  }
6871
- .c-divided-container-reverse[data-v-04e03cb2] {
6871
+ .c-divided-container-reverse[data-v-595bbd1f] {
6872
6872
  -webkit-box-orient: horizontal;
6873
6873
  -webkit-box-direction: reverse;
6874
6874
  -ms-flex-direction: row-reverse;
@@ -6218,59 +6218,59 @@ select[data-v-14e7c7c7] {
6218
6218
  width: 100%;
6219
6219
  }
6220
6220
 
6221
- .form-error[data-v-04e03cb2] {
6221
+ .form-error[data-v-595bbd1f] {
6222
6222
  font-size: 0.875rem;
6223
6223
  line-height: 1.25rem;
6224
6224
  color: #f21b3f;
6225
6225
  }
6226
- .contact-container[data-v-04e03cb2] {
6226
+ .contact-container[data-v-595bbd1f] {
6227
6227
  max-width: var(--brandsite-max-width);
6228
6228
  margin: 0 auto;
6229
6229
  }
6230
- .c-text-padding[data-v-04e03cb2] {
6230
+ .c-text-padding[data-v-595bbd1f] {
6231
6231
  padding-left: 1rem;
6232
6232
  padding-right: 1rem;
6233
6233
  }
6234
- .device-wrapper--mobile .c-divided-container[data-v-04e03cb2] {
6234
+ .device-wrapper--mobile .c-divided-container[data-v-595bbd1f] {
6235
6235
  -webkit-box-orient: vertical;
6236
6236
  -webkit-box-direction: normal;
6237
6237
  -ms-flex-direction: column;
6238
6238
  flex-direction: column;
6239
6239
  }
6240
- .device-wrapper--mobile .c-divided-container-reverse[data-v-04e03cb2] {
6240
+ .device-wrapper--mobile .c-divided-container-reverse[data-v-595bbd1f] {
6241
6241
  -webkit-box-orient: vertical;
6242
6242
  -webkit-box-direction: reverse;
6243
6243
  -ms-flex-direction: column-reverse;
6244
6244
  flex-direction: column-reverse;
6245
6245
  }
6246
6246
  @media (max-width: 767px) {
6247
- .c-button-full[data-v-04e03cb2] {
6247
+ .c-button-full[data-v-595bbd1f] {
6248
6248
  width: 100%;
6249
6249
  }
6250
6250
  /* Match the button's full-width on published mobile. The maker uses the
6251
6251
  isMobileDevice prop for this; the renderer has no such state, so the
6252
6252
  decorative-button wrapper is widened here via the real viewport instead. */
6253
- [data-v-04e03cb2] .bp-style-wrapper {
6253
+ [data-v-595bbd1f] .bp-style-wrapper {
6254
6254
  width: 100%;
6255
6255
  }
6256
- .c-col-span-2[data-v-04e03cb2] {
6256
+ .c-col-span-2[data-v-595bbd1f] {
6257
6257
  grid-column: span 2 / span 2;
6258
6258
  }
6259
- .c-mobile-padding[data-v-04e03cb2] {
6259
+ .c-mobile-padding[data-v-595bbd1f] {
6260
6260
  padding: 1rem;
6261
6261
  }
6262
- .c-text-padding[data-v-04e03cb2] {
6262
+ .c-text-padding[data-v-595bbd1f] {
6263
6263
  grid-column: span 2 / span 2;
6264
6264
  padding-left: 0px;
6265
6265
  padding-right: 0px;
6266
6266
  }
6267
- .c-divided-container[data-v-04e03cb2] {
6267
+ .c-divided-container[data-v-595bbd1f] {
6268
6268
  -webkit-box-orient: vertical;
6269
6269
  -webkit-box-direction: normal;
6270
6270
  -ms-flex-direction: column;
6271
6271
  flex-direction: column;
6272
6272
  }
6273
- .c-divided-container-reverse[data-v-04e03cb2] {
6273
+ .c-divided-container-reverse[data-v-595bbd1f] {
6274
6274
  -webkit-box-orient: vertical;
6275
6275
  -webkit-box-direction: reverse;
6276
6276
  -ms-flex-direction: column-reverse;
@@ -6278,16 +6278,16 @@ select[data-v-14e7c7c7] {
6278
6278
  }
6279
6279
  }
6280
6280
  @media (min-width: 767px) {
6281
- .c-aspect-square[data-v-04e03cb2] {
6281
+ .c-aspect-square[data-v-595bbd1f] {
6282
6282
  aspect-ratio: 1 / 1;
6283
6283
  }
6284
- .c-divided-container[data-v-04e03cb2] {
6284
+ .c-divided-container[data-v-595bbd1f] {
6285
6285
  -webkit-box-orient: horizontal;
6286
6286
  -webkit-box-direction: normal;
6287
6287
  -ms-flex-direction: row;
6288
6288
  flex-direction: row;
6289
6289
  }
6290
- .c-divided-container-reverse[data-v-04e03cb2] {
6290
+ .c-divided-container-reverse[data-v-595bbd1f] {
6291
6291
  -webkit-box-orient: horizontal;
6292
6292
  -webkit-box-direction: reverse;
6293
6293
  -ms-flex-direction: row-reverse;