@designcrowd/library.brand-page 5.18.8-preview-3 → 5.18.9-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.
- package/lib/src/{CreatedOnBrandCrowd-de-de-BULoPmPN.js → CreatedOnBrandCrowd-de-de-CAZavzz5.js} +1 -1
- package/lib/src/{CreatedOnBrandCrowd-en-us-DQAPXhGe.js → CreatedOnBrandCrowd-en-us-C3ykuu0O.js} +1 -1
- package/lib/src/{CreatedOnBrandCrowd-es-es-3dnZzYaW.js → CreatedOnBrandCrowd-es-es-Dp1kdubS.js} +1 -1
- package/lib/src/{CreatedOnBrandCrowd-fr-fr-CnDROd1L.js → CreatedOnBrandCrowd-fr-ca-XQSZWskY.js} +1 -1
- package/lib/src/{CreatedOnBrandCrowd-fr-ca-CnDROd1L.js → CreatedOnBrandCrowd-fr-fr-XQSZWskY.js} +1 -1
- package/lib/src/{CreatedOnBrandCrowd-pt-pt-DMLlFwp2.js → CreatedOnBrandCrowd-pt-br-D7Gyr7mi.js} +1 -1
- package/lib/src/{CreatedOnBrandCrowd-pt-br-DMLlFwp2.js → CreatedOnBrandCrowd-pt-pt-D7Gyr7mi.js} +1 -1
- package/lib/src/{CreatedOnDcom-de-de-Dm_8XFZp.js → CreatedOnDcom-de-de-62-Y3e7k.js} +1 -1
- package/lib/src/{CreatedOnDcom-en-us-CcpvTw6r.js → CreatedOnDcom-en-us-D00b8Ozh.js} +1 -1
- package/lib/src/{CreatedOnDcom-es-es-CIYRTXMz.js → CreatedOnDcom-es-es-DiuuOBp4.js} +1 -1
- package/lib/src/{CreatedOnDcom-fr-ca-CpcBqSk3.js → CreatedOnDcom-fr-ca-D4_3lNx2.js} +1 -1
- package/lib/src/{CreatedOnDcom-fr-fr-5gBEfi3W.js → CreatedOnDcom-fr-fr-DsAo2lNu.js} +1 -1
- package/lib/src/{CreatedOnDcom-pt-br-BMWH4KBQ.js → CreatedOnDcom-pt-br-D7KY-upE.js} +1 -1
- package/lib/src/{CreatedOnDcom-pt-pt-CRMOb-b2.js → CreatedOnDcom-pt-pt-Nxz3ndA_.js} +1 -1
- package/lib/src/brand-page/components/contact-form/ContactForm.mixin.d.ts +4 -0
- package/lib/src/brand-page/components/contact-form/ContactForm.mixin.js +8 -4
- package/lib/src/brand-page/components/image-gallery/ImageGallery.mixin.d.ts +4 -0
- package/lib/src/brand-page/components/image-gallery/ImageGallery.mixin.js +4 -0
- package/lib/src/brand-page/components/mailing-list/MailingList.mixin.d.ts +4 -0
- package/lib/src/brand-page/components/mailing-list/MailingList.mixin.js +4 -1
- package/lib/src/brand-page/components/payment/request-payment/RequestPayment.mixin.d.ts +4 -0
- package/lib/src/brand-page/components/payment/request-payment/RequestPayment.mixin.js +4 -0
- package/lib/src/brand-page/components/payment/support-me/SupportMe.mixin.d.ts +4 -0
- package/lib/src/brand-page/components/payment/support-me/SupportMe.mixin.js +4 -1
- package/lib/src/brand-page/components/testimonial-section/TestimonialSection.mixin.d.ts +4 -0
- package/lib/src/brand-page/components/testimonial-section/TestimonialSection.mixin.js +4 -1
- package/lib/src/brand-page/components/video/Video.mixin.d.ts +4 -0
- package/lib/src/brand-page/components/video/Video.mixin.js +4 -0
- package/lib/src/brand-page/constants/font.constants.d.ts +4 -4
- package/lib/src/brand-page/constants/font.constants.js +4 -4
- package/lib/src/brand-page/constants/misc.constants.d.ts +35 -0
- package/lib/src/brand-page/constants/misc.constants.js +51 -0
- package/lib/src/brand-page/models/content.model.d.ts +2 -0
- package/lib/src/brand-page/utils/content-padding.util.d.ts +13 -0
- package/lib/src/brand-page/utils/content-padding.util.js +10 -0
- package/lib/src/brand-page/utils/index.d.ts +1 -0
- package/lib/src/brand-page/utils/index.js +1 -0
- package/lib/src/brand-page/utils/migration/migration-17.d.ts +2 -0
- package/lib/src/brand-page/utils/migration/migration-17.js +54 -0
- package/lib/src/brand-page/utils/migration.util.js +10 -0
- package/lib/src/brand-page-maker/components/admin-background-settings/ShapePositionSlider.mixin.d.ts +1 -1
- package/lib/src/brand-page-maker/components/admin-logo-settings/AdminLogoSettings.mixin.d.ts +2 -0
- package/lib/src/brand-page-maker/components/brand-page-maker/BrandPageMaker.mixin.d.ts +12 -0
- package/lib/src/brand-page-maker/components/brandpage-maker-page/BrandPageMakerPage.mixin.d.ts +14 -0
- package/lib/src/brand-page-maker/composables/ai-chat/useAiWebsiteBuilderChat.js +0 -2
- package/lib/src/brand-page-maker/constants/config-settings-constant.js +39 -0
- package/lib/src/brand-page-maker/convertors/about-display-style.convertor.js +9 -1
- package/lib/src/brand-page-maker/convertors/banner-align-display-style.convertor.js +7 -1
- package/lib/src/brand-page-maker/convertors/contact-layout-style.convertor.js +6 -1
- package/lib/src/brand-page-maker/models/content-settings.js +38 -2
- package/lib/src/brand-page-maker/stores/ai-checkpoint/ai-checkpoint-store.d.ts +12 -0
- package/lib/src/{bundled-translations-D1q3rSEz.js → bundled-translations-BUyt4scr.js} +9 -9
- package/lib/src/{bundled-translations.de-DE-BxqLLwbh.js → bundled-translations.de-DE-DEw_OVai.js} +1 -1
- package/lib/src/{bundled-translations.es-ES-uh249NlJ.js → bundled-translations.es-ES-CFKWmkgY.js} +17 -17
- package/lib/src/{bundled-translations.fr-CA-BEQmv2fX.js → bundled-translations.fr-CA-DCl5LJS4.js} +1 -1
- package/lib/src/{bundled-translations.fr-FR-BnNuCojH.js → bundled-translations.fr-FR-B5BjgllA.js} +1 -1
- package/lib/src/{bundled-translations.pt-BR-CJUOxVlq.js → bundled-translations.pt-BR-5PWpMPuM.js} +1 -1
- package/lib/src/{bundled-translations.pt-PT-Ds9cMEqK.js → bundled-translations.pt-PT-B9_wN0HR.js} +9 -9
- package/lib/src/bundles/bundled-translations.de-DE.json +2 -0
- package/lib/src/bundles/bundled-translations.es-ES.json +2 -0
- package/lib/src/bundles/bundled-translations.fr-CA.json +2 -0
- package/lib/src/bundles/bundled-translations.fr-FR.json +2 -0
- package/lib/src/bundles/bundled-translations.json +2 -0
- package/lib/src/bundles/bundled-translations.pt-BR.json +2 -0
- package/lib/src/bundles/bundled-translations.pt-PT.json +2 -0
- package/lib/src/clients/ai-assistant-client.d.ts +0 -7
- package/lib/src/css/library.brand-page-brandCrowd.min.css +165 -170
- package/lib/src/css/library.brand-page-brandPage.min.css +165 -170
- package/lib/src/css/library.brand-page-designCom.min.css +165 -170
- package/lib/src/css/library.brand-page-preview.min.css +165 -170
- package/lib/src/index.d.ts +0 -4
- package/lib/src/index.mjs +103 -106
- package/lib/src/{lib-CdMa4Ee6.js → lib-Sms5Rq17.js} +20369 -20191
- package/lib/src/lib.js +0 -10
- package/lib/src/shared/content-settings/components/content-settings/ContentSettings.mixin.d.ts +14 -0
- package/lib/src/shared/content-settings/components/content-settings/ReplaceImageSettingsForContent.mixin.d.ts +14 -0
- package/lib/src/shared/content-settings/components/content-settings-item/ContentSettingsItem.mixin.d.ts +12 -0
- package/lib/src/shared/content-settings/components/content-settings-item/ContentSettingsItemField.mixin.d.ts +12 -0
- package/lib/src/shared/content-settings/components/focused-content-item-settings/FocusedContentItemSettings.mixin.d.ts +12 -0
- package/lib/src/shared/content-settings/components/slider-field/SliderField.mixin.js +9 -0
- package/lib/src/shared/content-settings/store/content-settings-store.d.ts +12 -0
- package/lib/src/shared/page-settings/components/page-settings/PageSettings.mixin.d.ts +16 -0
- package/lib/src/shared/page-settings/components/page-settings-section-styles/PageSettingsSectionStyles.mixin.d.ts +14 -0
- package/lib/src/utils/build-asset-manifest.d.ts +0 -4
- package/lib/src/utils/build-asset-manifest.js +0 -8
- package/lib/src/utils/minify-brand-page-metadata.js +20 -2
- package/package.json +1 -1
- package/src/brand-page/components/about-section/AboutSection.vue +10 -4
- package/src/brand-page/components/banner-section/BannerSection.vue +11 -4
- package/src/brand-page/components/booking-section/BookingSection.vue +11 -3
- package/src/brand-page/components/button/Button.vue +10 -2
- package/src/brand-page/components/contact-form/ContactForm.mixin.ts +12 -6
- package/src/brand-page/components/contact-form/ContactForm.vue +107 -106
- package/src/brand-page/components/image-gallery/ImageGallery.mixin.ts +5 -0
- package/src/brand-page/components/image-gallery/ImageGallery.vue +1 -1
- package/src/brand-page/components/mailing-list/MailingList.mixin.ts +8 -1
- package/src/brand-page/components/mailing-list/MailingList.vue +1 -1
- package/src/brand-page/components/map/Map.vue +5 -1
- package/src/brand-page/components/payment/request-payment/RequestPayment.mixin.ts +5 -0
- package/src/brand-page/components/payment/request-payment/RequestPayment.vue +1 -0
- package/src/brand-page/components/payment/support-me/SupportMe.mixin.ts +8 -1
- package/src/brand-page/components/payment/support-me/SupportMe.vue +1 -0
- package/src/brand-page/components/shop/Shop.vue +7 -2
- package/src/brand-page/components/social-links/SocialLinks.vue +7 -3
- package/src/brand-page/components/testimonial-section/TestimonialSection.mixin.ts +7 -1
- package/src/brand-page/components/testimonial-section/TestimonialSection.vue +4 -6
- package/src/brand-page/components/text/Text.vue +12 -5
- package/src/brand-page/components/text-media-section/TextMediaSection.vue +11 -3
- package/src/brand-page/components/video/Video.mixin.ts +5 -0
- package/src/brand-page/components/video/Video.vue +1 -1
- package/src/brand-page/constants/font.constants.ts +4 -4
- package/src/brand-page/constants/misc.constants.ts +58 -0
- package/src/brand-page/models/content.model.ts +2 -0
- package/src/brand-page/utils/__snapshots__/migration.util.test.ts.snap +9 -3
- package/src/brand-page/utils/__snapshots__/migration2.util.test.ts.snap +6 -6
- package/src/brand-page/utils/__snapshots__/model.util.test.ts.snap +12 -12
- package/src/brand-page/utils/content-padding.util.test.ts +29 -0
- package/src/brand-page/utils/content-padding.util.ts +13 -0
- package/src/brand-page/utils/index.ts +1 -0
- package/src/brand-page/utils/migration/migration-17.ts +72 -0
- package/src/brand-page/utils/migration.util.test.ts +252 -0
- package/src/brand-page/utils/migration.util.ts +11 -0
- package/src/brand-page-maker/composables/ai-chat/useAiWebsiteBuilderChat.ts +0 -2
- package/src/brand-page-maker/constants/config-settings-constant.ts +45 -0
- package/src/brand-page-maker/convertors/about-display-style.convertor.ts +10 -0
- package/src/brand-page-maker/convertors/banner-align-display-style.convertor.ts +8 -0
- package/src/brand-page-maker/convertors/contact-layout-style.convertor.test.ts +50 -0
- package/src/brand-page-maker/convertors/contact-layout-style.convertor.ts +8 -0
- package/src/brand-page-maker/models/content-settings.ts +41 -2
- package/src/bundles/bundled-translations.de-DE.json +2 -0
- package/src/bundles/bundled-translations.es-ES.json +2 -0
- package/src/bundles/bundled-translations.fr-CA.json +2 -0
- package/src/bundles/bundled-translations.fr-FR.json +2 -0
- package/src/bundles/bundled-translations.json +2 -0
- package/src/bundles/bundled-translations.pt-BR.json +2 -0
- package/src/bundles/bundled-translations.pt-PT.json +2 -0
- package/src/clients/ai-assistant-client.ts +0 -7
- package/src/lib.ts +0 -12
- package/src/shared/content-settings/components/content-settings/i18n/content-settings.de-DE.json +2 -0
- package/src/shared/content-settings/components/content-settings/i18n/content-settings.es-ES.json +2 -0
- package/src/shared/content-settings/components/content-settings/i18n/content-settings.fr-CA.json +2 -0
- package/src/shared/content-settings/components/content-settings/i18n/content-settings.fr-FR.json +2 -0
- package/src/shared/content-settings/components/content-settings/i18n/content-settings.json +2 -0
- package/src/shared/content-settings/components/content-settings/i18n/content-settings.pt-BR.json +2 -0
- package/src/shared/content-settings/components/content-settings/i18n/content-settings.pt-PT.json +2 -0
- package/src/shared/content-settings/components/content-settings-item/ContentSettingsItem.vue +1 -1
- package/src/shared/content-settings/components/focused-content-item-settings/FocusedContentItemSettings.vue +2 -2
- package/src/shared/content-settings/components/slider-field/SliderField.mixin.ts +9 -0
- package/src/utils/build-asset-manifest.ts +0 -12
- package/src/utils/minify-brand-page-metadata.ts +24 -6
- package/lib/src/metadata-builder/builders/reorder-pages-builder.d.ts +0 -13
- package/lib/src/metadata-builder/builders/reorder-pages-builder.js +0 -49
- package/src/metadata-builder/builders/reorder-pages-builder.ts +0 -80
|
@@ -45,6 +45,10 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
45
45
|
}, {
|
|
46
46
|
submitButtonStyle(): BrandPageCssStyle;
|
|
47
47
|
submitButtonTextStyle(): BrandPageCssStyle;
|
|
48
|
+
contentPaddingStyle(): {
|
|
49
|
+
paddingTop: string;
|
|
50
|
+
paddingBottom: string;
|
|
51
|
+
};
|
|
48
52
|
hasCard(): boolean;
|
|
49
53
|
hasBgImage(): boolean;
|
|
50
54
|
hasBgColor(): boolean;
|
|
@@ -4,7 +4,7 @@ import { getEmailValidationError, getMessageValidationError, getNameValidationEr
|
|
|
4
4
|
import brandPageClient from '../../clients/brand-page.client';
|
|
5
5
|
import { isEmail } from '../../../utils/validator.util';
|
|
6
6
|
import { ALIGN_CARD_CENTER, ALIGN_CARD_CENTER_IMAGE, ALIGN_CENTERED, ALIGN_LEFT_FULL_IMAGE, ALIGN_RIGHT_FULL_IMAGE, DISPLAY_STYLE_COLLAPSED, RECAPTCHA_ACTION_CONTACT_FORM, TEXT_ONLY, } from '../../constants';
|
|
7
|
-
import { getRenderText } from '@brand-page/utils';
|
|
7
|
+
import { getRenderText, contentPaddingStyle as toContentPaddingStyle, } from '@brand-page/utils';
|
|
8
8
|
import { hasRTEContent } from '@brand-page-maker/utils';
|
|
9
9
|
import { useReCaptcha } from '../../composables/recaptcha.composable';
|
|
10
10
|
export default defineComponent({
|
|
@@ -64,6 +64,9 @@ export default defineComponent({
|
|
|
64
64
|
};
|
|
65
65
|
return buttonTextStyle;
|
|
66
66
|
},
|
|
67
|
+
contentPaddingStyle() {
|
|
68
|
+
return toContentPaddingStyle(this.viewModel);
|
|
69
|
+
},
|
|
67
70
|
hasCard() {
|
|
68
71
|
return (this.viewModel.layoutStyle === ALIGN_CARD_CENTER ||
|
|
69
72
|
this.viewModel.layoutStyle === ALIGN_CARD_CENTER_IMAGE);
|
|
@@ -72,9 +75,10 @@ export default defineComponent({
|
|
|
72
75
|
return this.viewModel.layoutStyle === ALIGN_CARD_CENTER_IMAGE;
|
|
73
76
|
},
|
|
74
77
|
hasBgColor() {
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
+
// Every brandSite layout applies the background colour on the section
|
|
79
|
+
// root (banner-style) so the padding control reveals it; for the image
|
|
80
|
+
// layouts it only shows in the padding bands around the image block.
|
|
81
|
+
return Boolean(this.viewModel.layoutStyle);
|
|
78
82
|
},
|
|
79
83
|
isCenteredLayout() {
|
|
80
84
|
return (this.viewModel.layoutStyle === ALIGN_CARD_CENTER ||
|
|
@@ -23,6 +23,10 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
23
23
|
}>, {}, {
|
|
24
24
|
imageModalSelectedImageIndex: number | undefined;
|
|
25
25
|
}, {
|
|
26
|
+
contentPaddingStyle(): {
|
|
27
|
+
paddingTop: string;
|
|
28
|
+
paddingBottom: string;
|
|
29
|
+
};
|
|
26
30
|
getContainerStyle(): BrandPageCssStyle;
|
|
27
31
|
images(): any[] | undefined;
|
|
28
32
|
galleryType(): GalleryType;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { defineComponent } from 'vue';
|
|
2
|
+
import { contentPaddingStyle as toContentPaddingStyle } from '@brand-page/utils';
|
|
2
3
|
import ComponentCommonMixin from '../mixins/component-common.mixin';
|
|
3
4
|
import ImageModalMixin from '../mixins/image-modal.mixin';
|
|
4
5
|
import { GALLERY_TYPES } from '@brand-page/models';
|
|
@@ -29,6 +30,9 @@ export default defineComponent({
|
|
|
29
30
|
};
|
|
30
31
|
},
|
|
31
32
|
computed: {
|
|
33
|
+
contentPaddingStyle() {
|
|
34
|
+
return toContentPaddingStyle(this.viewModel);
|
|
35
|
+
},
|
|
32
36
|
getContainerStyle() {
|
|
33
37
|
if (this.galleryType === 'carousel') {
|
|
34
38
|
const maxWidth = this.containerClientWidth
|
|
@@ -39,6 +39,10 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
39
39
|
isSubmitting: boolean;
|
|
40
40
|
show: boolean;
|
|
41
41
|
}, {
|
|
42
|
+
contentPaddingStyle(): {
|
|
43
|
+
paddingTop: string;
|
|
44
|
+
paddingBottom: string;
|
|
45
|
+
};
|
|
42
46
|
hasNameError(): boolean;
|
|
43
47
|
hasEmailError(): boolean;
|
|
44
48
|
hasFormError(): boolean;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { defineComponent } from 'vue';
|
|
2
2
|
import brandPageClient from '../../clients/brand-page.client';
|
|
3
|
-
import { getEmailValidationError } from '@brand-page/utils';
|
|
3
|
+
import { getEmailValidationError, contentPaddingStyle as toContentPaddingStyle, } from '@brand-page/utils';
|
|
4
4
|
import { contentSettingsTr, mailingListTr, } from '@src/composables/useTranslate';
|
|
5
5
|
import { useReCaptcha } from '../../composables/recaptcha.composable';
|
|
6
6
|
import { RECAPTCHA_ACTION_MAILING_LIST } from '../../constants';
|
|
@@ -51,6 +51,9 @@ export default defineComponent({
|
|
|
51
51
|
}
|
|
52
52
|
},
|
|
53
53
|
computed: {
|
|
54
|
+
contentPaddingStyle() {
|
|
55
|
+
return toContentPaddingStyle(this.viewModel);
|
|
56
|
+
},
|
|
54
57
|
hasNameError() {
|
|
55
58
|
return !!this.nameError;
|
|
56
59
|
},
|
|
@@ -21,6 +21,10 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
21
21
|
selectedPaymentOptionIds: string[];
|
|
22
22
|
imageType: string;
|
|
23
23
|
}, {
|
|
24
|
+
contentPaddingStyle(): {
|
|
25
|
+
paddingTop: string;
|
|
26
|
+
paddingBottom: string;
|
|
27
|
+
};
|
|
24
28
|
isCustomerRequestDetailsValid(): boolean;
|
|
25
29
|
paymentRequestDetails(): PaymentRequestDetails;
|
|
26
30
|
paymentOptions(): PaymentOption[];
|
|
@@ -2,6 +2,7 @@ import { defineComponent } from 'vue';
|
|
|
2
2
|
import { PAYMENT_OPTION_DISPLAY_TYPES, PAYMENT_OPTION_IMAGE_TYPES, } from '../../../models';
|
|
3
3
|
import { DEFAULT_CURRENCY_SYMBOL } from '../../../constants';
|
|
4
4
|
import { addOpacityToHex } from '../../../utils/color.util';
|
|
5
|
+
import { contentPaddingStyle as toContentPaddingStyle } from '../../../utils';
|
|
5
6
|
import { RGBAtoHex } from '@utils/helpers';
|
|
6
7
|
const MAX_CUSTOM_REQUEST_CHARS = 500;
|
|
7
8
|
export default defineComponent({
|
|
@@ -28,6 +29,9 @@ export default defineComponent({
|
|
|
28
29
|
};
|
|
29
30
|
},
|
|
30
31
|
computed: {
|
|
32
|
+
contentPaddingStyle() {
|
|
33
|
+
return toContentPaddingStyle(this.viewModel);
|
|
34
|
+
},
|
|
31
35
|
isCustomerRequestDetailsValid() {
|
|
32
36
|
return (!this.viewModel.requestPaymentConfig.isCustomerRequestDetailsEnabled ||
|
|
33
37
|
this.customerRequestDetails === undefined ||
|
|
@@ -17,6 +17,10 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
17
17
|
prevCustomAmount: string;
|
|
18
18
|
customAmount: string;
|
|
19
19
|
}, {
|
|
20
|
+
contentPaddingStyle(): {
|
|
21
|
+
paddingTop: string;
|
|
22
|
+
paddingBottom: string;
|
|
23
|
+
};
|
|
20
24
|
isCustomAmountFieldVisible(): boolean;
|
|
21
25
|
isCustomerMessageFieldVisible(): boolean;
|
|
22
26
|
isCustomerMessageValid(): boolean;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { defineComponent } from 'vue';
|
|
2
2
|
import { SUPPORT_ME_CUSTOM_PRODUCT_NAME } from '../../../constants';
|
|
3
|
-
import { isPaymentAmountValid } from '../../../utils';
|
|
3
|
+
import { isPaymentAmountValid, contentPaddingStyle as toContentPaddingStyle, } from '../../../utils';
|
|
4
4
|
import { DEFAULT_CURRENCY_SYMBOL, DEFAULT_CURRENCY_CODE, } from '../../../constants';
|
|
5
5
|
import { paymentTr } from '@src/composables/useTranslate';
|
|
6
6
|
const MAX_CUSTOM_MESSAGE_CHARS = 500;
|
|
@@ -24,6 +24,9 @@ export default defineComponent({
|
|
|
24
24
|
};
|
|
25
25
|
},
|
|
26
26
|
computed: {
|
|
27
|
+
contentPaddingStyle() {
|
|
28
|
+
return toContentPaddingStyle(this.viewModel);
|
|
29
|
+
},
|
|
27
30
|
isCustomAmountFieldVisible() {
|
|
28
31
|
return this.viewModel.supportMeConfig.paymentOptions.some((o) => o.name === SUPPORT_ME_CUSTOM_PRODUCT_NAME);
|
|
29
32
|
},
|
|
@@ -26,6 +26,10 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
26
26
|
debouncedForceCarouselUpdate: DebounceHandle | undefined;
|
|
27
27
|
carouselRef: string;
|
|
28
28
|
}, {
|
|
29
|
+
contentPaddingStyle(): {
|
|
30
|
+
paddingTop: string;
|
|
31
|
+
paddingBottom: string;
|
|
32
|
+
};
|
|
29
33
|
textAlignClass(): {
|
|
30
34
|
'c_testimonial-big-image-text-item': boolean;
|
|
31
35
|
'tw-mb-2': boolean;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { defineComponent } from 'vue';
|
|
2
2
|
import ComponentCommonMixin from '../mixins/component-common.mixin';
|
|
3
|
-
import { getRenderText } from '@brand-page/utils';
|
|
3
|
+
import { getRenderText, contentPaddingStyle as toContentPaddingStyle, } from '@brand-page/utils';
|
|
4
4
|
import debounce from 'lodash.debounce';
|
|
5
5
|
import { DEVICE_CSS_TRANSITION_DELAY } from '@brand-page-maker/constants';
|
|
6
6
|
const DEBOUNCE_WAIT_MS = 100;
|
|
@@ -38,6 +38,9 @@ export default defineComponent({
|
|
|
38
38
|
}, DEBOUNCE_WAIT_MS);
|
|
39
39
|
},
|
|
40
40
|
computed: {
|
|
41
|
+
contentPaddingStyle() {
|
|
42
|
+
return toContentPaddingStyle(this.viewModel);
|
|
43
|
+
},
|
|
41
44
|
textAlignClass() {
|
|
42
45
|
return {
|
|
43
46
|
'c_testimonial-big-image-text-item': this.viewModel.displayStyle === 'big-image',
|
|
@@ -11,6 +11,10 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
11
11
|
isCollapsed: boolean;
|
|
12
12
|
title: string;
|
|
13
13
|
}, {
|
|
14
|
+
contentPaddingStyle(): {
|
|
15
|
+
paddingTop: string;
|
|
16
|
+
paddingBottom: string;
|
|
17
|
+
};
|
|
14
18
|
arrowStyle(): BrandPageCssStyle;
|
|
15
19
|
containerStyle(): BrandPageCssStyle;
|
|
16
20
|
videoUrl(): string;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { defineComponent } from 'vue';
|
|
2
|
+
import { contentPaddingStyle as toContentPaddingStyle } from '@brand-page/utils';
|
|
2
3
|
import ComponentCommonMixin from '../mixins/component-common.mixin';
|
|
3
4
|
import { DISPLAY_STYLE_PREVIEW, DISPLAY_STYLE_COLLAPSED, } from '../../constants';
|
|
4
5
|
export default defineComponent({
|
|
@@ -16,6 +17,9 @@ export default defineComponent({
|
|
|
16
17
|
title: 'Video',
|
|
17
18
|
}),
|
|
18
19
|
computed: {
|
|
20
|
+
contentPaddingStyle() {
|
|
21
|
+
return toContentPaddingStyle(this.viewModel);
|
|
22
|
+
},
|
|
19
23
|
arrowStyle() {
|
|
20
24
|
return {
|
|
21
25
|
color: this.viewModel.buttonStyles.style?.color,
|
|
@@ -4,10 +4,10 @@ export declare const DISPLAY_TEXT_BODY = "Paragraphs";
|
|
|
4
4
|
export declare const DISPlAY_TEXT_BUTTONS = "Button Texts";
|
|
5
5
|
export declare const DEFAULT_TEXT_DECORATION: undefined;
|
|
6
6
|
export declare const DEFAULT_FONT_STYLE: undefined;
|
|
7
|
-
export declare const FONT_SIZE_TITLE = "2.
|
|
8
|
-
export declare const FONT_SIZE_HEADINGS = "1.
|
|
9
|
-
export declare const FONT_SIZE_BODY = "
|
|
10
|
-
export declare const FONT_SIZE_PROFILE_NAME = "1.
|
|
7
|
+
export declare const FONT_SIZE_TITLE = "2.25em";
|
|
8
|
+
export declare const FONT_SIZE_HEADINGS = "1.5em";
|
|
9
|
+
export declare const FONT_SIZE_BODY = "1em";
|
|
10
|
+
export declare const FONT_SIZE_PROFILE_NAME = "1.5em";
|
|
11
11
|
export declare const FONT_WEIGHT_PROFILE_NAME = "800";
|
|
12
12
|
export declare const FONT_WEIGHT_NORMAL = "normal";
|
|
13
13
|
export declare const LINE_HEIGHT_TITLE = "1.3";
|
|
@@ -5,10 +5,10 @@ export const DISPLAY_TEXT_BODY = 'Paragraphs';
|
|
|
5
5
|
export const DISPlAY_TEXT_BUTTONS = 'Button Texts';
|
|
6
6
|
export const DEFAULT_TEXT_DECORATION = undefined;
|
|
7
7
|
export const DEFAULT_FONT_STYLE = undefined;
|
|
8
|
-
export const FONT_SIZE_TITLE = '2.
|
|
9
|
-
export const FONT_SIZE_HEADINGS = '1.
|
|
10
|
-
export const FONT_SIZE_BODY = '
|
|
11
|
-
export const FONT_SIZE_PROFILE_NAME = '1.
|
|
8
|
+
export const FONT_SIZE_TITLE = '2.25em';
|
|
9
|
+
export const FONT_SIZE_HEADINGS = '1.5em';
|
|
10
|
+
export const FONT_SIZE_BODY = '1em';
|
|
11
|
+
export const FONT_SIZE_PROFILE_NAME = '1.5em';
|
|
12
12
|
export const FONT_WEIGHT_PROFILE_NAME = '800';
|
|
13
13
|
export const FONT_WEIGHT_NORMAL = 'normal';
|
|
14
14
|
export const LINE_HEIGHT_TITLE = '1.3';
|
|
@@ -29,6 +29,41 @@ export declare const TEXT_ONLY = "text-only";
|
|
|
29
29
|
export declare const ALIGN_LEFT_FULL_IMAGE = "left-aligned-full-image";
|
|
30
30
|
export declare const ALIGN_RIGHT_FULL_IMAGE = "right-aligned-full-image";
|
|
31
31
|
export declare const ALTERNATE_IMAGE = "alternate-image";
|
|
32
|
+
/**
|
|
33
|
+
* Padding Control (BP-5699): the top/bottom padding each Contact Form layout
|
|
34
|
+
* had hard-coded before the sliders existed. Single source for new-block
|
|
35
|
+
* defaults (content-settings) and the migration backfill for existing pages.
|
|
36
|
+
* The image layouts (full-image divided and card-over-image) are 0: the bg
|
|
37
|
+
* image expands with the section padding (banner-style), so the default starts
|
|
38
|
+
* flush at the edges; the spacing inside/over the image stays fixed.
|
|
39
|
+
*/
|
|
40
|
+
export declare const CONTACT_FORM_LAYOUT_DEFAULT_PADDING: Record<string, number>;
|
|
41
|
+
/**
|
|
42
|
+
* Banner: full-bleed display styles (divided + full-width stacked) render the
|
|
43
|
+
* image flush to the section edges, so their top/bottom padding defaults to 0 to
|
|
44
|
+
* match prod — the standard 32 would push the image off the edges. Every other
|
|
45
|
+
* banner style keeps 32. Used by the banner display-style convertor and the
|
|
46
|
+
* migration backfill, mirroring contact-form's per-layout map above.
|
|
47
|
+
*/
|
|
48
|
+
export declare const BANNER_DEFAULT_PADDING = 32;
|
|
49
|
+
export declare const BANNER_FULL_BLEED_DISPLAY_STYLES: string[];
|
|
50
|
+
export declare const bannerDisplayStyleDefaultPadding: (displayStyle?: string) => number;
|
|
51
|
+
/**
|
|
52
|
+
* About: a flat 32 for every display style, including the two full-image styles.
|
|
53
|
+
* The full-image About renders the image inside the padded container, so the
|
|
54
|
+
* standard 32 band is the intended look. Used by the About display-style
|
|
55
|
+
* convertor and the migration backfill.
|
|
56
|
+
*/
|
|
57
|
+
export declare const ABOUT_DEFAULT_PADDING = 32;
|
|
58
|
+
/**
|
|
59
|
+
* Testimonials: a single top/bottom value across both breakpoints, replacing the
|
|
60
|
+
* old 32px mobile / 80px desktop split. The same value applies to every display
|
|
61
|
+
* style (centered / big-image / columns) — they share one root, so padding does
|
|
62
|
+
* not vary by style. Used by the new-block default and the migration backfill.
|
|
63
|
+
* Default (BP-5703): 48px — the single value chosen for both breakpoints (replaces
|
|
64
|
+
* the old 32px mobile / 80px desktop split).
|
|
65
|
+
*/
|
|
66
|
+
export declare const TESTIMONIAL_DEFAULT_PADDING = 48;
|
|
32
67
|
export declare const BIG_IMAGE = "big-image";
|
|
33
68
|
export declare const MEDIA_ONLY = "media-only";
|
|
34
69
|
export declare const COLUMNS = "columns";
|
|
@@ -30,6 +30,57 @@ export const TEXT_ONLY = 'text-only';
|
|
|
30
30
|
export const ALIGN_LEFT_FULL_IMAGE = 'left-aligned-full-image';
|
|
31
31
|
export const ALIGN_RIGHT_FULL_IMAGE = 'right-aligned-full-image';
|
|
32
32
|
export const ALTERNATE_IMAGE = 'alternate-image';
|
|
33
|
+
/**
|
|
34
|
+
* Padding Control (BP-5699): the top/bottom padding each Contact Form layout
|
|
35
|
+
* had hard-coded before the sliders existed. Single source for new-block
|
|
36
|
+
* defaults (content-settings) and the migration backfill for existing pages.
|
|
37
|
+
* The image layouts (full-image divided and card-over-image) are 0: the bg
|
|
38
|
+
* image expands with the section padding (banner-style), so the default starts
|
|
39
|
+
* flush at the edges; the spacing inside/over the image stays fixed.
|
|
40
|
+
*/
|
|
41
|
+
export const CONTACT_FORM_LAYOUT_DEFAULT_PADDING = {
|
|
42
|
+
'': 0, // collapsible (default on Brand Page / Brand Contact)
|
|
43
|
+
[ALIGN_CENTERED]: 32,
|
|
44
|
+
[ALIGN_CARD_CENTER]: 32,
|
|
45
|
+
[ALIGN_CARD_CENTER_IMAGE]: 0,
|
|
46
|
+
[TEXT_ONLY]: 32,
|
|
47
|
+
[ALIGN_LEFT_FULL_IMAGE]: 0,
|
|
48
|
+
[ALIGN_RIGHT_FULL_IMAGE]: 0,
|
|
49
|
+
};
|
|
50
|
+
/**
|
|
51
|
+
* Banner: full-bleed display styles (divided + full-width stacked) render the
|
|
52
|
+
* image flush to the section edges, so their top/bottom padding defaults to 0 to
|
|
53
|
+
* match prod — the standard 32 would push the image off the edges. Every other
|
|
54
|
+
* banner style keeps 32. Used by the banner display-style convertor and the
|
|
55
|
+
* migration backfill, mirroring contact-form's per-layout map above.
|
|
56
|
+
*/
|
|
57
|
+
export const BANNER_DEFAULT_PADDING = 32;
|
|
58
|
+
export const BANNER_FULL_BLEED_DISPLAY_STYLES = [
|
|
59
|
+
ALIGN_LEFT_FULL_IMAGE,
|
|
60
|
+
ALIGN_RIGHT_FULL_IMAGE,
|
|
61
|
+
ALIGN_TOP_FULL_IMAGE,
|
|
62
|
+
ALIGN_BOTTOM_FULL_IMAGE,
|
|
63
|
+
ALIGN_MIDDLE_FULL_IMAGE,
|
|
64
|
+
];
|
|
65
|
+
export const bannerDisplayStyleDefaultPadding = (displayStyle) => displayStyle && BANNER_FULL_BLEED_DISPLAY_STYLES.includes(displayStyle)
|
|
66
|
+
? 0
|
|
67
|
+
: BANNER_DEFAULT_PADDING;
|
|
68
|
+
/**
|
|
69
|
+
* About: a flat 32 for every display style, including the two full-image styles.
|
|
70
|
+
* The full-image About renders the image inside the padded container, so the
|
|
71
|
+
* standard 32 band is the intended look. Used by the About display-style
|
|
72
|
+
* convertor and the migration backfill.
|
|
73
|
+
*/
|
|
74
|
+
export const ABOUT_DEFAULT_PADDING = 32;
|
|
75
|
+
/**
|
|
76
|
+
* Testimonials: a single top/bottom value across both breakpoints, replacing the
|
|
77
|
+
* old 32px mobile / 80px desktop split. The same value applies to every display
|
|
78
|
+
* style (centered / big-image / columns) — they share one root, so padding does
|
|
79
|
+
* not vary by style. Used by the new-block default and the migration backfill.
|
|
80
|
+
* Default (BP-5703): 48px — the single value chosen for both breakpoints (replaces
|
|
81
|
+
* the old 32px mobile / 80px desktop split).
|
|
82
|
+
*/
|
|
83
|
+
export const TESTIMONIAL_DEFAULT_PADDING = 48;
|
|
33
84
|
export const BIG_IMAGE = 'big-image';
|
|
34
85
|
export const MEDIA_ONLY = 'media-only';
|
|
35
86
|
export const COLUMNS = 'columns';
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Block top/bottom padding (BP-5687) as a bindable CSS style object. Defaults
|
|
3
|
+
* live in the data — `content-settings` for new content, a migration for
|
|
4
|
+
* existing — so this just reads the stored value (`?? 0` covers content from
|
|
5
|
+
* before the field existed).
|
|
6
|
+
*/
|
|
7
|
+
export declare const contentPaddingStyle: (content: {
|
|
8
|
+
topPadding?: number;
|
|
9
|
+
bottomPadding?: number;
|
|
10
|
+
}) => {
|
|
11
|
+
paddingTop: string;
|
|
12
|
+
paddingBottom: string;
|
|
13
|
+
};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Block top/bottom padding (BP-5687) as a bindable CSS style object. Defaults
|
|
3
|
+
* live in the data — `content-settings` for new content, a migration for
|
|
4
|
+
* existing — so this just reads the stored value (`?? 0` covers content from
|
|
5
|
+
* before the field existed).
|
|
6
|
+
*/
|
|
7
|
+
export const contentPaddingStyle = (content) => ({
|
|
8
|
+
paddingTop: `${content.topPadding ?? 0}px`,
|
|
9
|
+
paddingBottom: `${content.bottomPadding ?? 0}px`,
|
|
10
|
+
});
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { CONTACT_FORM_LAYOUT_DEFAULT_PADDING, TESTIMONIAL_DEFAULT_PADDING, bannerDisplayStyleDefaultPadding, } from '../../constants';
|
|
2
|
+
/**
|
|
3
|
+
* Padding Control backfill (BP-5699 Tier 2, BP-5700 Store): blocks that already
|
|
4
|
+
* had hard-coded top/bottom spacing. Backfill that spacing as the block's explicit
|
|
5
|
+
* topPadding/bottomPadding so existing pages render unchanged once the spacing
|
|
6
|
+
* moves to the Padding Control sliders. Type-scoped and idempotent — only the
|
|
7
|
+
* listed types, and only when the value isn't already set.
|
|
8
|
+
*
|
|
9
|
+
* Exception — `testimonial-section` (BP-5703): testimonials had 32px mobile / 80px
|
|
10
|
+
* desktop and are intentionally collapsing to a single value across both breakpoints,
|
|
11
|
+
* so the backfill sets that single value rather than preserving the old desktop 80px.
|
|
12
|
+
* Existing testimonials will look tighter on desktop / roomier on mobile — by design.
|
|
13
|
+
*/
|
|
14
|
+
const BLOCK_DEFAULT_PADDING = {
|
|
15
|
+
text: 12,
|
|
16
|
+
'images-section': 32,
|
|
17
|
+
'social-links': 32,
|
|
18
|
+
'shapes-section': 32,
|
|
19
|
+
'booking-section': 32,
|
|
20
|
+
'shop-section': 16,
|
|
21
|
+
'about-section': 32,
|
|
22
|
+
'testimonial-section': TESTIMONIAL_DEFAULT_PADDING,
|
|
23
|
+
};
|
|
24
|
+
export const migration17 = async (migrationResult) => {
|
|
25
|
+
const { brandPageModel } = migrationResult;
|
|
26
|
+
brandPageModel.pages.forEach((page) => {
|
|
27
|
+
page.contents.forEach((content) => {
|
|
28
|
+
// Contact Form and Banner previously varied their hard-coded spacing by
|
|
29
|
+
// layout/display style (full-bleed image layouts had no outer padding), so they're
|
|
30
|
+
// keyed by that rather than a single per-type value.
|
|
31
|
+
let value;
|
|
32
|
+
if (content.type === 'contact-form') {
|
|
33
|
+
value =
|
|
34
|
+
CONTACT_FORM_LAYOUT_DEFAULT_PADDING[content.layoutStyle ?? ''];
|
|
35
|
+
}
|
|
36
|
+
else if (content.type === 'banner-section') {
|
|
37
|
+
value = bannerDisplayStyleDefaultPadding(content.displayStyle);
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
value = BLOCK_DEFAULT_PADDING[content.type];
|
|
41
|
+
}
|
|
42
|
+
if (value === undefined) {
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
if (content.topPadding === undefined) {
|
|
46
|
+
content.topPadding = value;
|
|
47
|
+
}
|
|
48
|
+
if (content.bottomPadding === undefined) {
|
|
49
|
+
content.bottomPadding = value;
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
});
|
|
53
|
+
return migrationResult;
|
|
54
|
+
};
|
|
@@ -19,6 +19,7 @@ import { migration13 } from './migration/migration-13';
|
|
|
19
19
|
import { migration14 } from './migration/migration-14';
|
|
20
20
|
import { migration15 } from './migration/migration-15';
|
|
21
21
|
import { migration16 } from './migration/migration-16';
|
|
22
|
+
import { migration17 } from './migration/migration-17';
|
|
22
23
|
const MIGRATION_TABLE = [
|
|
23
24
|
{
|
|
24
25
|
version: 1,
|
|
@@ -122,6 +123,15 @@ const MIGRATION_TABLE = [
|
|
|
122
123
|
runAlways: true,
|
|
123
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',
|
|
124
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
|
+
},
|
|
125
135
|
];
|
|
126
136
|
export const GetLatestModelVersion = () => Math.max(...MIGRATION_TABLE.map((x) => x.version));
|
|
127
137
|
export const migrateBrandPageModel = async (brandPageModel, options) => {
|
package/lib/src/brand-page-maker/components/admin-background-settings/ShapePositionSlider.mixin.d.ts
CHANGED
|
@@ -48,9 +48,9 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
48
48
|
}>> & Readonly<{
|
|
49
49
|
"onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
|
|
50
50
|
}>, {
|
|
51
|
+
modelValue: number;
|
|
51
52
|
min: number;
|
|
52
53
|
max: number;
|
|
53
|
-
modelValue: number;
|
|
54
54
|
axis: string;
|
|
55
55
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
56
56
|
export default _default;
|
package/lib/src/brand-page-maker/components/admin-logo-settings/AdminLogoSettings.mixin.d.ts
CHANGED
|
@@ -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;
|