@designcrowd/library.brand-page 6.2.11-builder-v2-1 → 6.2.12
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-Dg2pOwbr.js → CreatedOnBrandCrowd-de-de-BtVKllNQ.js} +1 -1
- package/lib/src/{CreatedOnBrandCrowd-en-us-BILs_hsB.js → CreatedOnBrandCrowd-en-us-CX5V0v8u.js} +1 -1
- package/lib/src/{CreatedOnBrandCrowd-es-es-VpxQ0N5F.js → CreatedOnBrandCrowd-es-es-CbA02PCL.js} +1 -1
- package/lib/src/{CreatedOnBrandCrowd-fr-fr-CFHWRHzi.js → CreatedOnBrandCrowd-fr-ca-BQAKruBF.js} +1 -1
- package/lib/src/{CreatedOnBrandCrowd-fr-ca-CFHWRHzi.js → CreatedOnBrandCrowd-fr-fr-BQAKruBF.js} +1 -1
- package/lib/src/{CreatedOnBrandCrowd-pt-pt-CZfs45s9.js → CreatedOnBrandCrowd-pt-br-Yk_yzB3s.js} +1 -1
- package/lib/src/{CreatedOnBrandCrowd-pt-br-CZfs45s9.js → CreatedOnBrandCrowd-pt-pt-Yk_yzB3s.js} +1 -1
- package/lib/src/{CreatedOnDcom-de-de-DYMQ6sIF.js → CreatedOnDcom-de-de-DJZQbPSD.js} +1 -1
- package/lib/src/{CreatedOnDcom-en-us-Dj5sdPid.js → CreatedOnDcom-en-us-BJvNAa4l.js} +1 -1
- package/lib/src/{CreatedOnDcom-es-es-Cx9yNTro.js → CreatedOnDcom-es-es-CUwB1FRY.js} +1 -1
- package/lib/src/{CreatedOnDcom-fr-ca-Bzr0SjGq.js → CreatedOnDcom-fr-ca-CK54U4oh.js} +1 -1
- package/lib/src/{CreatedOnDcom-fr-fr-BgqKY35F.js → CreatedOnDcom-fr-fr-DuUNBGrM.js} +1 -1
- package/lib/src/{CreatedOnDcom-pt-br-CXK6qfvL.js → CreatedOnDcom-pt-br-BfODpFNV.js} +1 -1
- package/lib/src/{CreatedOnDcom-pt-pt-B8SggNTQ.js → CreatedOnDcom-pt-pt-Cf6u2GCg.js} +1 -1
- package/lib/src/brand-page/__fixtures__/production-text-style-resolver.fixture.d.ts +16 -0
- package/lib/src/brand-page/__fixtures__/production-text-style-resolver.fixture.js +35 -0
- package/lib/src/brand-page/components/contact-form/ContactForm.mixin.d.ts +3 -0
- package/lib/src/brand-page/components/contact-form/ContactForm.mixin.js +19 -13
- package/lib/src/brand-page/components/mailing-list/MailingList.mixin.d.ts +3 -1
- package/lib/src/brand-page/components/mailing-list/MailingList.mixin.js +17 -2
- package/lib/src/brand-page/components/navigation/button-carousel/ButtonCarouselNavigation.mixin.d.ts +11 -3
- package/lib/src/brand-page/components/navigation/button-carousel/ButtonCarouselNavigation.mixin.js +35 -1
- package/lib/src/brand-page/components/navigation/navigation-side-menu/NavigationSideMenu.mixin.d.ts +8 -2
- package/lib/src/brand-page/components/navigation/navigation-side-menu/NavigationSideMenu.mixin.js +27 -3
- package/lib/src/brand-page/components/page/Page.mixin.d.ts +5 -2
- package/lib/src/brand-page/components/page/Page.mixin.js +33 -27
- package/lib/src/brand-page/components/page-footer/PageFooter.mixin.d.ts +7 -2
- package/lib/src/brand-page/components/page-footer/PageFooter.mixin.js +21 -1
- package/lib/src/brand-page/components/payment/Payment.mixin.d.ts +5 -2
- package/lib/src/brand-page/components/payment/Payment.mixin.js +22 -2
- package/lib/src/brand-page/components/payment/support-me/SupportMe.mixin.d.ts +6 -2
- package/lib/src/brand-page/components/payment/support-me/SupportMe.mixin.js +32 -1
- package/lib/src/brand-page/components/social-links/SocialLinks.stories.js +0 -3
- package/lib/src/brand-page/components/testimonial-section/__fixtures__/data.js +0 -3
- package/lib/src/brand-page/components/text/Text.stories.js +0 -17
- package/lib/src/brand-page/constants/font.constants.d.ts +62 -0
- package/lib/src/brand-page/constants/font.constants.js +35 -0
- package/lib/src/brand-page/models/brand-page-context.model.d.ts +2 -0
- package/lib/src/brand-page/models/brand-page-context.model.js +7 -0
- package/lib/src/brand-page/models/index.d.ts +23 -24
- package/lib/src/brand-page/models/index.js +20 -7
- package/lib/src/brand-page/models/navigation-styles.model.d.ts +1 -1
- package/lib/src/brand-page/models/navigation-styles.model.js +17 -8
- package/lib/src/brand-page/models/payment.model.d.ts +11 -6
- package/lib/src/brand-page/models/styles.model.d.ts +53 -7
- package/lib/src/brand-page/models/styles.model.js +115 -27
- package/lib/src/brand-page/utils/color-palette.util.d.ts +43 -23
- package/lib/src/brand-page/utils/color-palette.util.js +65 -27
- package/lib/src/brand-page/utils/color.util.d.ts +13 -9
- package/lib/src/brand-page/utils/color.util.js +56 -15
- package/lib/src/brand-page/utils/container-text-color.util.d.ts +46 -13
- package/lib/src/brand-page/utils/container-text-color.util.js +321 -41
- 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-20.js +6 -2
- package/lib/src/brand-page/utils/migration/migration-21.js +34 -6
- package/lib/src/brand-page/utils/migration/migration-22.d.ts +99 -0
- package/lib/src/brand-page/utils/migration/migration-22.js +909 -0
- package/lib/src/brand-page/utils/migration.util.js +17 -0
- package/lib/src/brand-page/utils/model.util.d.ts +4 -0
- package/lib/src/brand-page/utils/model.util.js +4 -0
- package/lib/src/brand-page/utils/personalisation.util.js +9 -1
- package/lib/src/brand-page/utils/rte-role-lift.util.d.ts +72 -0
- package/lib/src/brand-page/utils/rte-role-lift.util.js +275 -0
- package/lib/src/brand-page/utils/style.util.d.ts +5 -1
- package/lib/src/brand-page/utils/style.util.js +34 -11
- package/lib/src/brand-page/utils/text-role-css.util.d.ts +19 -0
- package/lib/src/brand-page/utils/text-role-css.util.js +186 -0
- package/lib/src/brand-page/utils/text-role-reconnect.util.d.ts +90 -0
- package/lib/src/brand-page/utils/text-role-reconnect.util.js +434 -0
- package/lib/src/brand-page/utils/text-style.util.d.ts +53 -23
- package/lib/src/brand-page/utils/text-style.util.js +122 -22
- package/lib/src/brand-page/utils/view-model.util.d.ts +9 -1
- package/lib/src/brand-page/utils/view-model.util.js +124 -111
- package/lib/src/brand-page/view-models.d.ts +1 -0
- package/lib/src/brand-page-maker/components/action-bar/ActionBar.mixin.d.ts +4 -1
- package/lib/src/brand-page-maker/components/brand-page-maker/BrandPageMaker.mixin.d.ts +34 -2
- package/lib/src/brand-page-maker/components/brand-page-maker/BrandPageMaker.mixin.js +4 -4
- package/lib/src/brand-page-maker/components/brand-page-maker/BrandPageMakerTemplateSettings.mixin.d.ts +4 -1
- package/lib/src/brand-page-maker/components/brand-page-maker/__fixtures__/brand-page-examples.js +0 -10
- package/lib/src/brand-page-maker/components/brand-page-maker/__fixtures__/content-settings-items.fixture.js +0 -1
- package/lib/src/brand-page-maker/components/brandpage-maker-page/BrandPageMakerPage.mixin.d.ts +44 -138
- package/lib/src/brand-page-maker/components/brandpage-maker-page/BrandPageMakerPage.mixin.js +0 -28
- package/lib/src/brand-page-maker/components/brandpage-settings/ReplaceImageSettingsForBrandPageSettings.mixin.d.ts +4 -1
- package/lib/src/brand-page-maker/components/navigation/Navigation.mixin.d.ts +1 -1
- package/lib/src/brand-page-maker/components/preview/Preview.mixin.d.ts +7 -0
- package/lib/src/brand-page-maker/components/quick-link-bar/QuickLinkBar.mixin.d.ts +21 -0
- package/lib/src/brand-page-maker/components/seo-settings/SeoPageSettings.mixin.d.ts +25 -1
- package/lib/src/brand-page-maker/components/seo-settings/UrlSettings.mixin.d.ts +25 -1
- package/lib/src/brand-page-maker/components/seo-settings/UseExistingDomainModal.mixin.d.ts +21 -0
- package/lib/src/brand-page-maker/components/social-share/SocialShare.mixin.d.ts +4 -1
- package/lib/src/brand-page-maker/components/template-preview/TemplatePreview.mixin.d.ts +25 -1
- package/lib/src/brand-page-maker/components/upgrade-to-premium-button/UpgradeToPremiumButton.mixin.d.ts +21 -0
- package/lib/src/brand-page-maker/composables/ai-chat/ai-builder-experiment.d.ts +10 -0
- package/lib/src/brand-page-maker/composables/ai-chat/ai-builder-experiment.js +11 -0
- package/lib/src/brand-page-maker/composables/ai-chat/useAiMetadataBuilder.d.ts +1 -0
- package/lib/src/brand-page-maker/composables/ai-chat/useAiMetadataBuilder.js +1 -0
- package/lib/src/brand-page-maker/composables/ai-chat/useAiWebsiteBuilderChat.js +14 -0
- package/lib/src/brand-page-maker/composables/rich-text-editor/extensions/RoleTypographyFill.d.ts +16 -0
- package/lib/src/brand-page-maker/composables/rich-text-editor/extensions/RoleTypographyFill.js +61 -0
- package/lib/src/brand-page-maker/composables/rich-text-editor/extensions/RteClipboard.d.ts +11 -0
- package/lib/src/brand-page-maker/composables/rich-text-editor/extensions/RteClipboard.js +236 -0
- package/lib/src/brand-page-maker/composables/rich-text-editor/font.d.ts +2 -1
- package/lib/src/brand-page-maker/composables/rich-text-editor/font.js +25 -6
- package/lib/src/brand-page-maker/composables/rich-text-editor/formatting.d.ts +17 -4
- package/lib/src/brand-page-maker/composables/rich-text-editor/formatting.js +204 -17
- package/lib/src/brand-page-maker/composables/rich-text-editor/hyperlink.d.ts +1 -1
- package/lib/src/brand-page-maker/composables/rich-text-editor/hyperlink.js +29 -31
- package/lib/src/brand-page-maker/composables/rich-text-editor/keepMarksOnEmpty.d.ts +20 -0
- package/lib/src/brand-page-maker/composables/rich-text-editor/keepMarksOnEmpty.js +60 -0
- package/lib/src/brand-page-maker/composables/rich-text-editor/spacing.d.ts +2 -1
- package/lib/src/brand-page-maker/composables/rich-text-editor/spacing.js +22 -6
- package/lib/src/brand-page-maker/composables/rich-text-editor/useRichTextEditor.d.ts +10 -4
- package/lib/src/brand-page-maker/composables/rich-text-editor/useRichTextEditor.js +319 -275
- package/lib/src/brand-page-maker/constants/config-settings-constant.js +1 -5
- package/lib/src/brand-page-maker/convertors/text-css-style-options.convertor.js +6 -2
- package/lib/src/brand-page-maker/convertors/text-size-value.convertor.d.ts +1 -1
- package/lib/src/brand-page-maker/convertors/text-size-value.convertor.js +3 -1
- package/lib/src/brand-page-maker/default-getters/payment-text-and-border-color.default-getter.js +7 -14
- package/lib/src/brand-page-maker/default-getters/text-color.default-getter.js +6 -13
- package/lib/src/brand-page-maker/models/content-settings.d.ts +8 -0
- package/lib/src/brand-page-maker/models/content-settings.js +112 -81
- package/lib/src/brand-page-maker/stores/admin-logo-settings/admin-logo-settings-store-utils.d.ts +2 -2
- package/lib/src/brand-page-maker/stores/admin-logo-settings/admin-logo-settings-store-utils.js +5 -2
- package/lib/src/brand-page-maker/stores/admin-logo-settings/admin-logo-settings-store.js +4 -3
- package/lib/src/brand-page-maker/stores/ai-checkpoint/ai-checkpoint-store.d.ts +1257 -117
- package/lib/src/brand-page-maker/stores/ai-thread/ai-website-builder-thread-store.d.ts +9 -2
- package/lib/src/brand-page-maker/stores/ai-thread/ai-website-builder-thread-store.js +20 -0
- package/lib/src/brand-page-maker/stores/brandpage-container/brand-page-container-store.d.ts +21 -0
- package/lib/src/brand-page-maker/stores/brandpage-maker/brandpage-maker-store.d.ts +6 -1
- package/lib/src/brand-page-maker/stores/brandpage-maker/brandpage-maker-store.js +17 -9
- package/lib/src/brand-page-maker/stores/history/history-store.d.ts +59 -5
- package/lib/src/brand-page-maker/stores/history/history-store.js +22 -2
- package/lib/src/brand-page-maker/utils/apply-color-strategy.js +26 -8
- package/lib/src/brand-page-maker/utils/index.d.ts +2 -1
- package/lib/src/brand-page-maker/utils/index.js +2 -1
- package/lib/src/brand-page-maker/utils/rich-text-editor.util.d.ts +117 -15
- package/lib/src/brand-page-maker/utils/rich-text-editor.util.js +435 -281
- package/lib/src/brand-page-maker/utils/rte-authoring.util.d.ts +4 -0
- package/lib/src/brand-page-maker/utils/rte-authoring.util.js +101 -0
- package/lib/src/brand-page-maker/utils/rte-clipboard.util.d.ts +126 -0
- package/lib/src/brand-page-maker/utils/rte-clipboard.util.js +307 -0
- package/lib/src/brand-page-maker/utils/rte-sanitize.util.js +13 -3
- package/lib/src/{bundled-translations-zfiA5Tsw.js → bundled-translations-yGrvPE5i.js} +17 -17
- package/lib/src/{bundled-translations.de-DE-ChsdSyAP.js → bundled-translations.de-DE-L4Znf8Hs.js} +17 -17
- package/lib/src/{bundled-translations.es-ES-DflsWQK0.js → bundled-translations.es-ES-D6iticrK.js} +15 -15
- package/lib/src/{bundled-translations.fr-CA-fpDRuZ52.js → bundled-translations.fr-CA-BgAVE-9k.js} +25 -25
- package/lib/src/{bundled-translations.fr-FR-Bub73Zt-.js → bundled-translations.fr-FR-B8GbyqxQ.js} +17 -17
- package/lib/src/{bundled-translations.pt-BR-BlnWE9TB.js → bundled-translations.pt-BR-DjPU3Db7.js} +25 -25
- package/lib/src/{bundled-translations.pt-PT-DmzXlnaS.js → bundled-translations.pt-PT-BaepaDpr.js} +23 -23
- package/lib/src/bundles/bundled-translations.de-DE.json +21 -2
- package/lib/src/bundles/bundled-translations.es-ES.json +21 -2
- package/lib/src/bundles/bundled-translations.fr-CA.json +21 -2
- package/lib/src/bundles/bundled-translations.fr-FR.json +21 -2
- package/lib/src/bundles/bundled-translations.json +21 -2
- package/lib/src/bundles/bundled-translations.pt-BR.json +21 -2
- package/lib/src/bundles/bundled-translations.pt-PT.json +21 -2
- package/lib/src/clients/ai-assistant-client.d.ts +7 -1
- package/lib/src/clients/ai-assistant-client.js +7 -15
- package/lib/src/composables/useTranslate.d.ts +1 -1
- package/lib/src/composables/useTranslate.js +1 -1
- package/lib/src/css/library.brand-page-brandCrowd.min.css +284 -188
- package/lib/src/css/library.brand-page-brandPage.min.css +284 -188
- package/lib/src/css/library.brand-page-designCom.min.css +284 -188
- package/lib/src/css/library.brand-page-preview.min.css +284 -188
- package/lib/src/index.d.ts +2 -1
- package/lib/src/index.mjs +195 -191
- package/lib/src/{lib-7gtW85nE.js → lib-kGRlD3_P.js} +39082 -36131
- package/lib/src/lib.js +2 -1
- package/lib/src/metadata-builder/builders/footer-builder.js +4 -5
- package/lib/src/metadata-builder/builders/global-role-propagation.d.ts +58 -0
- package/lib/src/metadata-builder/builders/global-role-propagation.js +246 -0
- package/lib/src/metadata-builder/builders/global-styles-builder.d.ts +1 -0
- package/lib/src/metadata-builder/builders/global-styles-builder.js +116 -45
- package/lib/src/metadata-builder/builders/header-builder.js +13 -4
- package/lib/src/metadata-builder/builders/section-builders/about-section-builder.js +3 -3
- package/lib/src/metadata-builder/builders/section-builders/banner-section-builder.js +3 -3
- package/lib/src/metadata-builder/builders/section-builders/booking-section-builder.js +3 -3
- package/lib/src/metadata-builder/builders/section-builders/contact-form-builder.js +4 -4
- package/lib/src/metadata-builder/builders/section-builders/images-section-builder.js +3 -3
- package/lib/src/metadata-builder/builders/section-builders/mailing-list-builder.js +2 -2
- package/lib/src/metadata-builder/builders/section-builders/mailing-list-section-builder.js +2 -2
- package/lib/src/metadata-builder/builders/section-builders/profile-section-builder.js +4 -4
- package/lib/src/metadata-builder/builders/section-builders/shapes-section-builder.js +3 -3
- package/lib/src/metadata-builder/builders/section-builders/social-links-builder.js +8 -2
- package/lib/src/metadata-builder/builders/section-builders/testimonial-section-builder.js +2 -2
- package/lib/src/metadata-builder/builders/section-builders/text-section-builder.js +60 -29
- package/lib/src/metadata-builder/builders/section-field-maps.js +1 -0
- package/lib/src/metadata-builder/builders/section-field-utils.d.ts +48 -19
- package/lib/src/metadata-builder/builders/section-field-utils.js +128 -52
- package/lib/src/metadata-builder/builders/section-rules/global-styles.rules.d.ts +4 -2
- package/lib/src/metadata-builder/builders/section-rules/global-styles.rules.js +28 -12
- package/lib/src/metadata-builder/builders/section-rules/social-links.rules.js +5 -1
- package/lib/src/metadata-builder/helpers/rte.helpers.d.ts +1 -1
- package/lib/src/metadata-builder/helpers/rte.helpers.js +97 -40
- package/lib/src/metadata-builder/metadata-executor.js +23 -1
- package/lib/src/metadata-builder/models.d.ts +2 -0
- package/lib/src/metadata-builder/parsers/ai-toolcall-parser.d.ts +18 -19
- package/lib/src/metadata-builder/parsers/section-tool-arguments.d.ts +18 -1
- package/lib/src/metadata-builder/sanitizers/rte-schema-check.js +1 -1
- package/lib/src/metadata-builder/sanitizers/sanitizer-rules.d.ts +0 -1
- package/lib/src/metadata-builder/sanitizers/sanitizer-rules.js +5 -8
- package/lib/src/metadata-builder/sanitizers/section-args-validator.d.ts +7 -16
- package/lib/src/metadata-builder/sanitizers/section-args-validator.js +95 -22
- package/lib/src/shared/color-palette/section-color-matches.js +9 -25
- package/lib/src/shared/color-strategies/color-strategies.d.ts +15 -0
- package/lib/src/shared/color-strategies/color-strategies.js +31 -0
- package/lib/src/shared/color-strategies/rte-color.d.ts +8 -0
- package/lib/src/shared/color-strategies/rte-color.js +16 -0
- package/lib/src/shared/color-strategies/rte-field-pairs.d.ts +23 -0
- package/lib/src/shared/color-strategies/rte-field-pairs.js +28 -0
- package/lib/src/shared/content-settings/components/content-settings/ContentSettings.mixin.d.ts +9 -135
- package/lib/src/shared/content-settings/components/content-settings/ContentSettings.mixin.js +1 -27
- package/lib/src/shared/content-settings/components/content-settings/ReplaceImageSettingsForContent.mixin.d.ts +12 -2
- package/lib/src/shared/content-settings/components/content-settings-item/ContentSettingsItem.mixin.d.ts +7 -0
- package/lib/src/shared/content-settings/components/content-settings-item/ContentSettingsItemField.mixin.d.ts +75 -6
- package/lib/src/shared/content-settings/components/content-settings-item/ContentSettingsItemField.mixin.js +18 -7
- package/lib/src/shared/content-settings/components/focused-content-item-settings/FocusedContentItemSettings.mixin.d.ts +6 -1
- package/lib/src/shared/content-settings/components/focused-content-item-settings/FocusedContentItemSettings.mixin.js +0 -7
- package/lib/src/shared/content-settings/components/payment-config-field/PaymentConfigField.mixin.d.ts +22 -0
- package/lib/src/shared/content-settings/components/text-items-field/TextItemsField.mixin.js +8 -4
- package/lib/src/shared/content-settings/components/text-style-field/TextStyleField.mixin.d.ts +1255 -26
- package/lib/src/shared/content-settings/components/text-style-field/TextStyleField.mixin.js +203 -59
- package/lib/src/shared/content-settings/store/content-settings-store.d.ts +6 -0
- package/lib/src/shared/content-settings/store/content-settings-store.js +105 -8
- package/lib/src/shared/logo-settings/components/LogoSettings.mixin.d.ts +26 -1
- package/lib/src/shared/navigation-style-settings/store/index.d.ts +7 -3
- package/lib/src/shared/navigation-style-settings/store/index.js +40 -15
- package/lib/src/shared/page-settings/components/new-page-modal/NewPageModal.mixin.d.ts +1 -0
- package/lib/src/shared/page-settings/components/page-settings/PageSettings.mixin.d.ts +38 -5
- package/lib/src/shared/page-settings/components/page-settings-section-styles/PageSettingsSectionStyles.mixin.d.ts +91 -13
- package/lib/src/shared/page-settings/components/page-settings-section-styles/PageSettingsSectionStyles.mixin.js +10 -2
- package/lib/src/shared/page-settings/store/page-settings-store.d.ts +2 -1
- package/lib/src/shared/page-settings/store/page-settings-store.js +17 -0
- package/lib/src/shared/publish-brand-page-with-state/PublishBrandPageModalWithState.mixin.d.ts +32 -1
- package/lib/src/shared/rte-extensions/AutoLink.d.ts +17 -0
- package/lib/src/{brand-page-maker/composables/rich-text-editor/extensions → shared/rte-extensions}/AutoLink.js +67 -51
- package/lib/src/{brand-page-maker/composables/rich-text-editor/extensions → shared/rte-extensions}/MaxLength.js +4 -1
- package/lib/src/shared/rte-extensions/TextEffects.d.ts +28 -0
- package/lib/src/shared/rte-extensions/TextEffects.js +96 -0
- package/lib/src/shared/rte-extensions/ViewDomParser.d.ts +2 -0
- package/lib/src/shared/rte-extensions/ViewDomParser.js +21 -0
- package/lib/src/shared/rte-extensions.util.d.ts +25 -0
- package/lib/src/{brand-page-maker/composables/rich-text-editor/getRteExtensions.js → shared/rte-extensions.util.js} +62 -7
- package/lib/src/shared/rte-link.util.d.ts +1 -0
- package/lib/src/shared/rte-link.util.js +1 -0
- package/lib/src/shared/rte-render.util.d.ts +112 -0
- package/lib/src/shared/rte-render.util.js +255 -0
- package/lib/src/shared/rte-shape.util.d.ts +6 -0
- package/lib/src/shared/rte-shape.util.js +18 -0
- package/lib/src/shared/side-bar/components/SideBar.mixin.d.ts +23 -1
- package/lib/src/shared/side-bar/components/SideBarTabButton.mixin.d.ts +1 -0
- package/lib/src/shared/side-bar/store/side-bar-store.d.ts +2 -0
- package/lib/src/shared/side-bar/store/side-bar-store.js +9 -0
- package/lib/src/shared/style-settings/components/StyleSettings.mixin.d.ts +176 -15
- package/lib/src/shared/style-settings/components/StyleSettings.mixin.js +7 -1
- package/lib/src/shared/style-settings/store/style-settings-store.d.ts +1 -9
- package/lib/src/shared/style-settings/store/style-settings-store.js +3 -33
- package/lib/src/shared/style-settings/text-style-size-order.d.ts +2 -0
- package/lib/src/shared/style-settings/text-style-size-order.js +13 -0
- package/lib/src/shared/text-role-typography.util.d.ts +64 -0
- package/lib/src/shared/text-role-typography.util.js +183 -0
- package/lib/src/utils/minify-brand-page-metadata.d.ts +16 -1
- package/lib/src/utils/minify-brand-page-metadata.js +31 -9
- package/package.json +1 -1
- package/src/brand-page/__fixtures__/migration-22-v21/edited-brandsite-sections.v21.json +982 -0
- package/src/brand-page/__fixtures__/migration-22-v21/new-brandcontact-every-section.v21.json +1231 -0
- package/src/brand-page/__fixtures__/migration-22-v21/new-brandpage-every-section.v21.json +1231 -0
- package/src/brand-page/__fixtures__/migration-22-v21/new-brandsite-every-section.v21.json +1243 -0
- package/src/brand-page/__fixtures__/migration-22-v21/real-brandcontact.v21.json +755 -0
- package/src/brand-page/__fixtures__/migration-22-v21/real-brandpage-general-link.v21.json +527 -0
- package/src/brand-page/__fixtures__/migration-22-v21/real-brandpage-links.v21.json +755 -0
- package/src/brand-page/__fixtures__/migration-22-v21/real-brandpage-social-links.v21.json +514 -0
- package/src/brand-page/__fixtures__/migration-22-v21/real-brandsite-about.v21.json +459 -0
- package/src/brand-page/__fixtures__/migration-22-v21/real-brandsite-footer.v21.json +469 -0
- package/src/brand-page/__fixtures__/migration-22-v21/real-brandsite-header-banner.v21.json +481 -0
- package/src/brand-page/__fixtures__/migration-22-v21/real-brandsite-sections.v21.json +800 -0
- package/src/brand-page/__fixtures__/production-text-style-resolver.fixture.ts +52 -0
- package/src/brand-page/components/about-section/AboutSection.vue.test.ts +0 -10
- package/src/brand-page/components/contact-form/ContactForm.mixin.test.ts +127 -0
- package/src/brand-page/components/contact-form/ContactForm.mixin.ts +31 -14
- package/src/brand-page/components/contact-form/ContactForm.vue +26 -12
- package/src/brand-page/components/contact-form/ContactForm.vue.test.ts +60 -0
- package/src/brand-page/components/mailing-list/MailingList.mixin.test.ts +92 -0
- package/src/brand-page/components/mailing-list/MailingList.mixin.ts +28 -3
- package/src/brand-page/components/mailing-list/MailingList.vue +9 -4
- package/src/brand-page/components/mailing-list/MailingList.vue.test.ts +63 -0
- package/src/brand-page/components/navigation/button-carousel/ButtonCarouselNavigation.mixin.ts +51 -1
- package/src/brand-page/components/navigation/button-carousel/ButtonCarouselNavigation.test.ts +114 -0
- package/src/brand-page/components/navigation/button-carousel/ButtonCarouselNavigation.vue +8 -2
- package/src/brand-page/components/navigation/navigation-carousel/NavigationCarousel.test.ts +182 -0
- package/src/brand-page/components/navigation/navigation-carousel/NavigationCarousel.vue +58 -12
- package/src/brand-page/components/navigation/navigation-side-menu/NavigationSideMenu.mixin.ts +40 -3
- package/src/brand-page/components/navigation/navigation-side-menu/NavigationSideMenu.vue +15 -7
- package/src/brand-page/components/navigation/navigation-side-menu/NavigationSideMenu.vue.test.ts +133 -3
- package/src/brand-page/components/page/Page.mixin.ts +41 -34
- package/src/brand-page/components/page/Page.vue +17 -6
- package/src/brand-page/components/page/Page.vue.test.ts +91 -1
- package/src/brand-page/components/page-footer/PageFooter.mixin.ts +32 -2
- package/src/brand-page/components/page-footer/PageFooter.test.ts +79 -0
- package/src/brand-page/components/page-footer/PageFooter.vue +12 -4
- package/src/brand-page/components/payment/Payment.mixin.ts +34 -2
- package/src/brand-page/components/payment/Payment.test.ts +188 -0
- package/src/brand-page/components/payment/Payment.vue +12 -5
- package/src/brand-page/components/payment/RequestPaymentStripe.vue +1 -0
- package/src/brand-page/components/payment/support-me/SupportMe.mixin.ts +49 -2
- package/src/brand-page/components/payment/support-me/SupportMe.test.ts +100 -0
- package/src/brand-page/components/payment/support-me/SupportMe.vue +7 -1
- package/src/brand-page/components/payment/support-me/SupportMe.vue.test.ts +66 -0
- package/src/brand-page/components/save-contact/SaveContactWidget.test.ts +100 -0
- package/src/brand-page/components/save-contact/SaveContactWidget.vue +6 -3
- package/src/brand-page/components/shop/PaymentModal.vue +2 -6
- package/src/brand-page/components/shop/PaymentShippingAddress.vue +6 -0
- package/src/brand-page/components/shop/Shop.vue +15 -2
- package/src/brand-page/components/shop/Shop.vue.test.ts +74 -2
- package/src/brand-page/components/social-links/SocialLinks.stories.ts +0 -3
- package/src/brand-page/components/social-links/SocialLinks.vue.test.ts +0 -3
- package/src/brand-page/components/testimonial-section/__fixtures__/data.ts +0 -3
- package/src/brand-page/components/text/Text.stories.ts +0 -17
- package/src/brand-page/components/text-wrapper/TextWrapper.parity.test.ts +136 -0
- package/src/brand-page/components/text-wrapper/TextWrapper.test.ts +358 -0
- package/src/brand-page/components/text-wrapper/TextWrapper.vue +82 -22
- package/src/brand-page/constants/font.constants.ts +37 -0
- package/src/brand-page/models/brand-page-context.model.ts +13 -0
- package/src/brand-page/models/footer-icon-color.test.ts +22 -0
- package/src/brand-page/models/index.ts +50 -28
- package/src/brand-page/models/navigation-styles.model.test.ts +77 -1
- package/src/brand-page/models/navigation-styles.model.ts +26 -9
- package/src/brand-page/models/payment.model.ts +15 -6
- package/src/brand-page/models/styles.model.test.ts +104 -0
- package/src/brand-page/models/styles.model.ts +181 -47
- package/src/brand-page/utils/__snapshots__/migration.util.test.ts.snap +619 -115
- package/src/brand-page/utils/__snapshots__/migration2.util.test.ts.snap +150 -9
- package/src/brand-page/utils/__snapshots__/model.util.test.ts.snap +300 -18
- package/src/brand-page/utils/color-palette.util.test.ts +126 -1
- package/src/brand-page/utils/color-palette.util.ts +92 -26
- package/src/brand-page/utils/color.util.test.ts +62 -29
- package/src/brand-page/utils/color.util.ts +77 -14
- package/src/brand-page/utils/container-text-color.util.test.ts +672 -26
- package/src/brand-page/utils/container-text-color.util.ts +472 -46
- package/src/brand-page/utils/index.ts +1 -0
- package/src/brand-page/utils/migration/__snapshots__/migration-22-output/edited-brandsite-sections.v22.json +1191 -0
- package/src/brand-page/utils/migration/__snapshots__/migration-22-output/new-brandcontact-every-section.v22.json +2026 -0
- package/src/brand-page/utils/migration/__snapshots__/migration-22-output/new-brandpage-every-section.v22.json +2017 -0
- package/src/brand-page/utils/migration/__snapshots__/migration-22-output/new-brandsite-every-section.v22.json +2031 -0
- package/src/brand-page/utils/migration/__snapshots__/migration-22-output/real-brandcontact.v22.json +1145 -0
- package/src/brand-page/utils/migration/__snapshots__/migration-22-output/real-brandpage-general-link.v22.json +645 -0
- package/src/brand-page/utils/migration/__snapshots__/migration-22-output/real-brandpage-links.v22.json +1136 -0
- package/src/brand-page/utils/migration/__snapshots__/migration-22-output/real-brandpage-social-links.v22.json +662 -0
- package/src/brand-page/utils/migration/__snapshots__/migration-22-output/real-brandsite-about.v22.json +638 -0
- package/src/brand-page/utils/migration/__snapshots__/migration-22-output/real-brandsite-footer.v22.json +610 -0
- package/src/brand-page/utils/migration/__snapshots__/migration-22-output/real-brandsite-header-banner.v22.json +660 -0
- package/src/brand-page/utils/migration/__snapshots__/migration-22-output/real-brandsite-sections.v22.json +1132 -0
- package/src/brand-page/utils/migration/migration-01.ts +293 -237
- package/src/brand-page/utils/migration/migration-02.ts +8 -1
- package/src/brand-page/utils/migration/migration-20.ts +6 -3
- package/src/brand-page/utils/migration/migration-20_5.test.ts +5 -2
- package/src/brand-page/utils/migration/migration-21.test.ts +34 -0
- package/src/brand-page/utils/migration/migration-21.ts +46 -10
- package/src/brand-page/utils/migration/migration-22.fixed-input.test.ts +43 -0
- package/src/brand-page/utils/migration/migration-22.test.ts +4103 -0
- package/src/brand-page/utils/migration/migration-22.text-font-family.test.ts +72 -0
- package/src/brand-page/utils/migration/migration-22.ts +1336 -0
- package/src/brand-page/utils/migration.util.test.ts +146 -32
- package/src/brand-page/utils/migration.util.ts +18 -0
- package/src/brand-page/utils/model.util.ts +4 -0
- package/src/brand-page/utils/personalisation.util.test.ts +148 -3
- package/src/brand-page/utils/personalisation.util.ts +9 -1
- package/src/brand-page/utils/rte-role-lift.util.ts +409 -0
- package/src/brand-page/utils/style.util.test.ts +35 -2
- package/src/brand-page/utils/style.util.ts +45 -11
- package/src/brand-page/utils/text-role-css.util.test.ts +525 -0
- package/src/brand-page/utils/text-role-css.util.ts +321 -0
- package/src/brand-page/utils/text-role-reconnect.util.test.ts +604 -0
- package/src/brand-page/utils/text-role-reconnect.util.ts +727 -0
- package/src/brand-page/utils/text-style.util.test.ts +305 -0
- package/src/brand-page/utils/text-style.util.ts +198 -24
- package/src/brand-page/utils/view-model.page-data.test.ts +232 -0
- package/src/brand-page/utils/view-model.util.test.ts +954 -133
- package/src/brand-page/utils/view-model.util.ts +187 -139
- package/src/brand-page/view-models.ts +4 -0
- package/src/brand-page-maker/components/brand-page-maker/BrandPageMaker.blank-site.test.ts +57 -0
- package/src/brand-page-maker/components/brand-page-maker/BrandPageMaker.mixin.ts +9 -5
- package/src/brand-page-maker/components/brand-page-maker/__fixtures__/brand-page-examples.ts +0 -10
- package/src/brand-page-maker/components/brand-page-maker/__fixtures__/content-settings-items.fixture.ts +0 -1
- package/src/brand-page-maker/components/brandpage-maker-page/BrandPageMakerPage.mixin.ts +0 -44
- package/src/brand-page-maker/components/rich-text-editor/RichTextEditor.vue +253 -200
- package/src/brand-page-maker/composables/ai-chat/ai-builder-experiment.test.ts +82 -0
- package/src/brand-page-maker/composables/ai-chat/ai-builder-experiment.ts +19 -0
- package/src/brand-page-maker/composables/ai-chat/useAiMetadataBuilder.ts +2 -0
- package/src/brand-page-maker/composables/ai-chat/useAiWebsiteBuilderChat.ts +19 -0
- package/src/brand-page-maker/composables/rich-text-editor/block-typography.test.ts +519 -0
- package/src/brand-page-maker/composables/rich-text-editor/extensions/FontFamily.test.ts +1 -1
- package/src/brand-page-maker/composables/rich-text-editor/extensions/MaxLength.test.ts +26 -1
- package/src/brand-page-maker/composables/rich-text-editor/extensions/RoleTypographyFill.test.ts +110 -0
- package/src/brand-page-maker/composables/rich-text-editor/extensions/RoleTypographyFill.ts +99 -0
- package/src/brand-page-maker/composables/rich-text-editor/extensions/RteClipboard.ts +397 -0
- package/src/brand-page-maker/composables/rich-text-editor/extensions/ViewDomParser.test.ts +139 -0
- package/src/brand-page-maker/composables/rich-text-editor/font.ts +36 -5
- package/src/brand-page-maker/composables/rich-text-editor/formatting.test.ts +375 -1
- package/src/brand-page-maker/composables/rich-text-editor/formatting.ts +301 -17
- package/src/brand-page-maker/composables/rich-text-editor/hyperlink.test.ts +82 -1
- package/src/brand-page-maker/composables/rich-text-editor/hyperlink.ts +28 -34
- package/src/brand-page-maker/composables/rich-text-editor/keepMarksOnEmpty.test.ts +80 -0
- package/src/brand-page-maker/composables/rich-text-editor/keepMarksOnEmpty.ts +75 -0
- package/src/brand-page-maker/composables/rich-text-editor/spacing.ts +31 -6
- package/src/brand-page-maker/composables/rich-text-editor/useRichTextEditor.test.ts +2485 -0
- package/src/brand-page-maker/composables/rich-text-editor/useRichTextEditor.ts +435 -337
- package/src/brand-page-maker/constants/config-settings-constant.ts +0 -6
- package/src/brand-page-maker/convertors/text-css-style-options.convertor.test.ts +43 -0
- package/src/brand-page-maker/convertors/text-css-style-options.convertor.ts +6 -2
- package/src/brand-page-maker/convertors/text-size-value.convertor.test.ts +24 -0
- package/src/brand-page-maker/convertors/text-size-value.convertor.ts +17 -13
- package/src/brand-page-maker/default-getters/payment-text-and-border-color.default-getter.ts +7 -22
- package/src/brand-page-maker/default-getters/text-color.default-getter.ts +5 -21
- package/src/brand-page-maker/models/content-settings.test.ts +708 -0
- package/src/brand-page-maker/models/content-settings.ts +133 -82
- package/src/brand-page-maker/stores/admin-logo-settings/admin-logo-settings-store-utils.test.ts +63 -1
- package/src/brand-page-maker/stores/admin-logo-settings/admin-logo-settings-store-utils.ts +16 -3
- package/src/brand-page-maker/stores/admin-logo-settings/admin-logo-settings-store.test.ts +34 -0
- package/src/brand-page-maker/stores/admin-logo-settings/admin-logo-settings-store.ts +4 -2
- package/src/brand-page-maker/stores/ai-thread/ai-website-builder-thread-store.ts +30 -0
- package/src/brand-page-maker/stores/brandpage-maker/brandpage-maker-store.test.ts +185 -1
- package/src/brand-page-maker/stores/brandpage-maker/brandpage-maker-store.ts +22 -34
- package/src/brand-page-maker/stores/history/history-store.ts +35 -2
- package/src/brand-page-maker/utils/__snapshots__/apply-color-strategy.golden.test.ts.snap +528 -0
- package/src/brand-page-maker/utils/__snapshots__/rte-render-parity.test.ts.snap +12 -0
- package/src/brand-page-maker/utils/apply-color-strategy.golden.test.ts +2 -0
- package/src/brand-page-maker/utils/apply-color-strategy.test.ts +181 -3
- package/src/brand-page-maker/utils/apply-color-strategy.ts +36 -4
- package/src/brand-page-maker/utils/index.ts +2 -1
- package/src/brand-page-maker/utils/rich-text-editor.util.test.ts +447 -410
- package/src/brand-page-maker/utils/rich-text-editor.util.ts +610 -506
- package/src/brand-page-maker/utils/rte-authoring.util.test.ts +244 -0
- package/src/brand-page-maker/utils/rte-authoring.util.ts +175 -0
- package/src/brand-page-maker/utils/rte-clipboard.util.test.ts +558 -0
- package/src/brand-page-maker/utils/rte-clipboard.util.ts +473 -0
- package/src/brand-page-maker/utils/rte-features.test.ts +99 -3
- package/src/brand-page-maker/utils/rte-render-parity.test.ts +1 -1
- package/src/brand-page-maker/utils/rte-render.util.test.ts +230 -0
- package/src/brand-page-maker/utils/rte-sanitize-json.test.ts +1 -1
- package/src/brand-page-maker/utils/rte-sanitize.util.ts +14 -3
- package/src/brand-page-maker/utils/rte-schema-version.test.ts +102 -0
- package/src/bundles/bundled-translations.de-DE.json +21 -2
- package/src/bundles/bundled-translations.es-ES.json +21 -2
- package/src/bundles/bundled-translations.fr-CA.json +21 -2
- package/src/bundles/bundled-translations.fr-FR.json +21 -2
- package/src/bundles/bundled-translations.json +21 -2
- package/src/bundles/bundled-translations.pt-BR.json +21 -2
- package/src/bundles/bundled-translations.pt-PT.json +21 -2
- package/src/clients/ai-assistant-client.ts +13 -18
- package/src/composables/useTranslate.ts +2 -1
- package/src/lib.ts +2 -2
- package/src/metadata-builder/builders/footer-builder.test.ts +70 -45
- package/src/metadata-builder/builders/footer-builder.ts +4 -8
- package/src/metadata-builder/builders/global-role-propagation.test.ts +907 -0
- package/src/metadata-builder/builders/global-role-propagation.ts +430 -0
- package/src/metadata-builder/builders/global-styles-builder.test.ts +1020 -0
- package/src/metadata-builder/builders/global-styles-builder.ts +194 -48
- package/src/metadata-builder/builders/header-builder.test.ts +112 -40
- package/src/metadata-builder/builders/header-builder.ts +18 -8
- package/src/metadata-builder/builders/section-builders/about-section-builder.ts +5 -3
- package/src/metadata-builder/builders/section-builders/banner-section-builder.ts +5 -3
- package/src/metadata-builder/builders/section-builders/booking-section-builder.ts +5 -3
- package/src/metadata-builder/builders/section-builders/contact-form-builder.ts +7 -4
- package/src/metadata-builder/builders/section-builders/images-section-builder.ts +5 -3
- package/src/metadata-builder/builders/section-builders/mailing-list-builder.ts +3 -2
- package/src/metadata-builder/builders/section-builders/mailing-list-section-builder.ts +3 -2
- package/src/metadata-builder/builders/section-builders/profile-section-builder.ts +7 -7
- package/src/metadata-builder/builders/section-builders/shapes-section-builder.ts +5 -3
- package/src/metadata-builder/builders/section-builders/social-links-builder.test.ts +2 -2
- package/src/metadata-builder/builders/section-builders/social-links-builder.ts +21 -10
- package/src/metadata-builder/builders/section-builders/support-me-builder.test.ts +10 -0
- package/src/metadata-builder/builders/section-builders/testimonial-section-builder.ts +3 -2
- package/src/metadata-builder/builders/section-builders/text-section-builder.ts +111 -61
- package/src/metadata-builder/builders/section-field-maps.ts +1 -0
- package/src/metadata-builder/builders/section-field-utils.test.ts +545 -2
- package/src/metadata-builder/builders/section-field-utils.ts +202 -69
- package/src/metadata-builder/builders/section-rules/global-styles.rules.ts +38 -13
- package/src/metadata-builder/builders/section-rules/social-links.rules.ts +5 -0
- package/src/metadata-builder/helpers/rte.helpers.test.ts +101 -0
- package/src/metadata-builder/helpers/rte.helpers.ts +129 -43
- package/src/metadata-builder/metadata-executor.test.ts +167 -0
- package/src/metadata-builder/metadata-executor.ts +34 -1
- package/src/metadata-builder/models.ts +2 -0
- package/src/metadata-builder/parsers/ai-toolcall-parser.ts +23 -7
- package/src/metadata-builder/parsers/section-tool-arguments.ts +21 -1
- package/src/metadata-builder/sanitizers/__tests__/section-args-validator.test.ts +215 -0
- package/src/metadata-builder/sanitizers/rte-schema-check.ts +1 -1
- package/src/metadata-builder/sanitizers/sanitizer-rules.ts +4 -8
- package/src/metadata-builder/sanitizers/section-args-validator.ts +136 -53
- package/src/shared/color-palette/section-color-matches.test.ts +15 -11
- package/src/shared/color-palette/section-color-matches.ts +9 -28
- package/src/shared/color-strategies/color-strategies.ts +35 -0
- package/src/shared/color-strategies/rte-color.test.ts +1 -1
- package/src/shared/color-strategies/rte-color.ts +19 -0
- package/src/shared/color-strategies/rte-field-pairs.test.ts +26 -5
- package/src/shared/color-strategies/rte-field-pairs.ts +33 -0
- package/src/shared/content-settings/components/color-matches-panel/ColorMatchesPanel.test.ts +43 -66
- package/src/shared/content-settings/components/color-matches-panel/ColorMatchesPanel.vue +7 -1
- package/src/shared/content-settings/components/content-settings/ContentSettings.mixin.ts +1 -48
- package/src/shared/content-settings/components/content-settings-item/ContentSettingsItemField.mixin.ts +33 -7
- package/src/shared/content-settings/components/content-settings-item/ContentSettingsItemField.test.ts +128 -1
- package/src/shared/content-settings/components/focused-content-item-settings/FocusedContentItemSettings.mixin.ts +0 -6
- package/src/shared/content-settings/components/text-items-field/TextItemsField.mixin.test.ts +56 -3
- package/src/shared/content-settings/components/text-items-field/TextItemsField.mixin.ts +11 -4
- package/src/shared/content-settings/components/text-style-field/TextStyleField.mixin.test.ts +335 -25
- package/src/shared/content-settings/components/text-style-field/TextStyleField.mixin.ts +248 -70
- package/src/shared/content-settings/components/text-style-field/TextStyleField.vue +113 -25
- package/src/shared/content-settings/components/text-style-field/i18n/text-style-field.de-DE.json +17 -10
- package/src/shared/content-settings/components/text-style-field/i18n/text-style-field.es-ES.json +17 -10
- package/src/shared/content-settings/components/text-style-field/i18n/text-style-field.fr-CA.json +17 -10
- package/src/shared/content-settings/components/text-style-field/i18n/text-style-field.fr-FR.json +17 -10
- package/src/shared/content-settings/components/text-style-field/i18n/text-style-field.json +8 -1
- package/src/shared/content-settings/components/text-style-field/i18n/text-style-field.pt-BR.json +17 -10
- package/src/shared/content-settings/components/text-style-field/i18n/text-style-field.pt-PT.json +17 -10
- package/src/shared/content-settings/components/text-style-role-dropdown/TextStyleRoleDropdown.test.ts +141 -0
- package/src/shared/content-settings/components/text-style-role-dropdown/TextStyleRoleDropdown.vue +136 -0
- package/src/shared/content-settings/store/content-settings-store.test.ts +491 -6
- package/src/shared/content-settings/store/content-settings-store.ts +159 -17
- package/src/shared/navigation-style-settings/store/index.test.ts +295 -0
- package/src/shared/navigation-style-settings/store/index.ts +65 -15
- package/src/shared/page-settings/components/page-settings-section-styles/HeaderButtonSettings.test.ts +44 -4
- package/src/shared/page-settings/components/page-settings-section-styles/HeaderButtonSettings.vue +13 -4
- package/src/shared/page-settings/components/page-settings-section-styles/PageSettingsSectionStyles.mixin.navigation.test.ts +89 -0
- package/src/shared/page-settings/components/page-settings-section-styles/PageSettingsSectionStyles.mixin.text-style.test.ts +91 -0
- package/src/shared/page-settings/components/page-settings-section-styles/PageSettingsSectionStyles.mixin.ts +14 -2
- package/src/shared/page-settings/store/page-settings-store.text-style.test.ts +84 -0
- package/src/shared/page-settings/store/page-settings-store.ts +30 -1
- package/src/shared/rte-extensions/AutoLink.test.ts +98 -0
- package/src/{brand-page-maker/composables/rich-text-editor/extensions → shared/rte-extensions}/AutoLink.ts +87 -58
- package/src/{brand-page-maker/composables/rich-text-editor/extensions → shared/rte-extensions}/MaxLength.ts +4 -1
- package/src/shared/rte-extensions/TextEffects.ts +151 -0
- package/src/shared/rte-extensions/ViewDomParser.ts +27 -0
- package/src/{brand-page-maker/composables/rich-text-editor/getRteExtensions.ts → shared/rte-extensions.util.ts} +66 -9
- package/src/shared/rte-link.util.ts +2 -0
- package/src/shared/rte-render.util.ts +385 -0
- package/src/shared/rte-shape.util.ts +29 -0
- package/src/shared/side-bar/store/side-bar-store.test.ts +27 -1
- package/src/shared/side-bar/store/side-bar-store.ts +11 -0
- package/src/shared/style-settings/components/StyleSettings.mixin.ts +7 -3
- package/src/shared/style-settings/components/StyleSettings.test.ts +116 -0
- package/src/shared/style-settings/components/StyleSettings.vue +74 -25
- package/src/shared/style-settings/components/i18n/style-settings.de-DE.json +32 -20
- package/src/shared/style-settings/components/i18n/style-settings.es-ES.json +32 -20
- package/src/shared/style-settings/components/i18n/style-settings.fr-CA.json +32 -20
- package/src/shared/style-settings/components/i18n/style-settings.fr-FR.json +32 -20
- package/src/shared/style-settings/components/i18n/style-settings.json +13 -3
- package/src/shared/style-settings/components/i18n/style-settings.pt-BR.json +32 -20
- package/src/shared/style-settings/components/i18n/style-settings.pt-PT.json +32 -20
- package/src/shared/style-settings/components/text-style-options-settings-with-state/TextStyleOptionsSettingsWithState.vue +14 -34
- package/src/shared/style-settings/store/style-settings-store.ts +3 -49
- package/src/shared/style-settings/text-style-size-order.test.ts +76 -0
- package/src/shared/style-settings/text-style-size-order.ts +28 -0
- package/src/shared/text-role-typography.util.ts +277 -0
- package/src/utils/minify-brand-page-metadata.test.ts +102 -7
- package/src/utils/minify-brand-page-metadata.ts +62 -8
- package/lib/src/brand-page-maker/composables/rich-text-editor/extensions/AutoLink.d.ts +0 -2
- package/lib/src/brand-page-maker/composables/rich-text-editor/getRteExtensions.d.ts +0 -28
- package/lib/src/brand-page-maker/utils/rte-render.util.d.ts +0 -63
- package/lib/src/brand-page-maker/utils/rte-render.util.js +0 -106
- package/lib/src/brand-page-maker/utils/rte-shape.d.ts +0 -18
- package/lib/src/brand-page-maker/utils/rte-shape.js +0 -21
- package/lib/src/metadata-builder/builders/global-font-propagation.d.ts +0 -41
- package/lib/src/metadata-builder/builders/global-font-propagation.js +0 -146
- package/src/brand-page/models/brand-page-context.model.test.ts +0 -38
- package/src/brand-page-maker/utils/rte-render.util.ts +0 -179
- package/src/brand-page-maker/utils/rte-shape.ts +0 -29
- package/src/clients/ai-assistant-client.test.ts +0 -135
- package/src/metadata-builder/builders/global-font-propagation.test.ts +0 -401
- package/src/metadata-builder/builders/global-font-propagation.ts +0 -238
- package/src/shared/style-settings/components/StyleSettingsSection.vue +0 -8
- /package/lib/src/{brand-page-maker/composables/rich-text-editor/extensions → shared/rte-extensions}/FontFamily.d.ts +0 -0
- /package/lib/src/{brand-page-maker/composables/rich-text-editor/extensions → shared/rte-extensions}/FontFamily.js +0 -0
- /package/lib/src/{brand-page-maker/composables/rich-text-editor/extensions → shared/rte-extensions}/LetterSpacing.d.ts +0 -0
- /package/lib/src/{brand-page-maker/composables/rich-text-editor/extensions → shared/rte-extensions}/LetterSpacing.js +0 -0
- /package/lib/src/{brand-page-maker/composables/rich-text-editor/extensions → shared/rte-extensions}/MaxLength.d.ts +0 -0
- /package/src/{brand-page-maker/composables/rich-text-editor/extensions → shared/rte-extensions}/FontFamily.ts +0 -0
- /package/src/{brand-page-maker/composables/rich-text-editor/extensions → shared/rte-extensions}/LetterSpacing.ts +0 -0
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { defineComponent } from 'vue';
|
|
1
|
+
import { defineComponent, inject } from 'vue';
|
|
2
2
|
import { getRenderText } from '@brand-page/utils';
|
|
3
3
|
import { FOOTER_DISPLAY } from '../../constants';
|
|
4
|
+
import { TEXT_ROLE_OPTIONS_KEY, roleTypographyStyle, roleClassFor, roleStyleFor, } from '../../utils/text-role-css.util';
|
|
4
5
|
export default defineComponent({
|
|
5
6
|
props: {
|
|
6
7
|
viewModel: {
|
|
@@ -22,6 +23,14 @@ export default defineComponent({
|
|
|
22
23
|
},
|
|
23
24
|
},
|
|
24
25
|
emits: ['on-logo-click', 'footer-container-click'],
|
|
26
|
+
// A mixin's own `setup()` is never run by Vue's `mixins:` merge — `PageFooter.vue` invokes
|
|
27
|
+
// this one itself and spreads its return into its own `setup()`.
|
|
28
|
+
setup() {
|
|
29
|
+
const roleOptions = inject(TEXT_ROLE_OPTIONS_KEY, undefined);
|
|
30
|
+
return {
|
|
31
|
+
roleOptions,
|
|
32
|
+
};
|
|
33
|
+
},
|
|
25
34
|
computed: {
|
|
26
35
|
containerStyle() {
|
|
27
36
|
return this.viewModel.backgroundStyle;
|
|
@@ -41,6 +50,17 @@ export default defineComponent({
|
|
|
41
50
|
}
|
|
42
51
|
return getRenderText(this.viewModel.copyrightText);
|
|
43
52
|
},
|
|
53
|
+
copyrightRoleType() {
|
|
54
|
+
return this.viewModel.copyrightStyle?.textStyleType;
|
|
55
|
+
},
|
|
56
|
+
copyrightRoleClass() {
|
|
57
|
+
return roleClassFor(this.copyrightRoleType);
|
|
58
|
+
},
|
|
59
|
+
copyrightStyle() {
|
|
60
|
+
const own = this.viewModel.copyrightStyle;
|
|
61
|
+
const roleStyle = roleStyleFor(this.copyrightRoleType, this.roleOptions);
|
|
62
|
+
return { ...own, ...roleTypographyStyle(own, roleStyle) };
|
|
63
|
+
},
|
|
44
64
|
},
|
|
45
65
|
methods: {
|
|
46
66
|
onFooterContainerClick() {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { PropType } from 'vue';
|
|
2
|
-
import type { BrandPageContext, CheckoutInformation, CreateCartResult, PaymentConfig, PaymentOption } from '@brand-page/models';
|
|
2
|
+
import type { BrandPageContext, CheckoutInformation, CreateCartResult, PaymentConfig, PaymentOption, TextStyleOptions } from '@brand-page/models';
|
|
3
3
|
import type { RequestPaymentViewModel, SupportMeViewModel } from '@brand-page/view-models';
|
|
4
4
|
export declare const paymentState: {
|
|
5
5
|
readonly CreatingCart: "creating-cart";
|
|
@@ -34,7 +34,9 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
34
34
|
type: PropType<PaymentRequestDetails>;
|
|
35
35
|
required: true;
|
|
36
36
|
};
|
|
37
|
-
}>, {
|
|
37
|
+
}>, {
|
|
38
|
+
roleOptions: import("vue").ComputedRef<TextStyleOptions | undefined> | undefined;
|
|
39
|
+
}, {
|
|
38
40
|
paymentState: {
|
|
39
41
|
readonly CreatingCart: "creating-cart";
|
|
40
42
|
readonly IncompleteConfig: "incomplete-config";
|
|
@@ -48,6 +50,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
48
50
|
state: State;
|
|
49
51
|
}, {
|
|
50
52
|
buttonStyle(): BrandPageCssStyle;
|
|
53
|
+
continueButtonRoleClass(): string | undefined;
|
|
51
54
|
currencySymbol(): string;
|
|
52
55
|
isPaymentOptionSelectionContinueEnabled(): boolean;
|
|
53
56
|
isPaymentOptionsVisible(): boolean;
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
import { defineComponent } from 'vue';
|
|
1
|
+
import { defineComponent, inject } from 'vue';
|
|
2
2
|
import brandPageClient from '../../clients/brand-page.client';
|
|
3
3
|
import { DISPLAY_STYLE_COLLAPSED, DISPLAY_STYLE_PREVIEW, paymentProviders, } from '../../constants';
|
|
4
4
|
import raygunUtil from '@brand-page/utils/raygun.util';
|
|
5
5
|
import { isPreviewMode } from '@brand-page/utils';
|
|
6
6
|
import { sectionFrameStyle } from '@brand-page/utils/button.util';
|
|
7
7
|
import { paymentTr } from '@src/composables/useTranslate';
|
|
8
|
+
import { TEXT_ROLE_OPTIONS_KEY, roleTypographyStyle, roleClassFor, roleStyleFor, } from '@brand-page/utils/text-role-css.util';
|
|
8
9
|
const DEFAULT_PAYMENT_SUCCESS_MESSAGE = paymentTr(`defaultPaymentSuccessMessage`);
|
|
9
10
|
const PAYMENT_CONFIG_ACTIVE = 'Active';
|
|
10
11
|
export const paymentState = {
|
|
@@ -33,6 +34,14 @@ export default defineComponent({
|
|
|
33
34
|
required: true,
|
|
34
35
|
},
|
|
35
36
|
},
|
|
37
|
+
setup() {
|
|
38
|
+
// BP-5969: the live role options, provided by `Page`. Absent (rendered outside Page) →
|
|
39
|
+
// the button box bakes the button text style's own values, as before this change.
|
|
40
|
+
const roleOptions = inject(TEXT_ROLE_OPTIONS_KEY, undefined);
|
|
41
|
+
return {
|
|
42
|
+
roleOptions,
|
|
43
|
+
};
|
|
44
|
+
},
|
|
36
45
|
data: () => ({
|
|
37
46
|
paymentState,
|
|
38
47
|
cart: undefined,
|
|
@@ -44,6 +53,9 @@ export default defineComponent({
|
|
|
44
53
|
buttonStyle() {
|
|
45
54
|
return this.viewModel.buttonStyles.style;
|
|
46
55
|
},
|
|
56
|
+
continueButtonRoleClass() {
|
|
57
|
+
return roleClassFor(this.viewModel.buttonTextStyle?.textStyleType);
|
|
58
|
+
},
|
|
47
59
|
currencySymbol() {
|
|
48
60
|
return this.paymentConfig.paymentConfig?.defaultCurrencySymbol || '';
|
|
49
61
|
},
|
|
@@ -90,7 +102,15 @@ export default defineComponent({
|
|
|
90
102
|
buttonStyle.color = textColor;
|
|
91
103
|
buttonStyle.backgroundColor = buttonStyle.backgroundColor;
|
|
92
104
|
}
|
|
93
|
-
|
|
105
|
+
// The label's TextWrapper applies the size; an em size here too would multiply.
|
|
106
|
+
const roleStyle = roleStyleFor(this.viewModel.buttonTextStyle?.textStyleType, this.roleOptions);
|
|
107
|
+
return {
|
|
108
|
+
...buttonStyle,
|
|
109
|
+
...roleTypographyStyle(this.viewModel.buttonTextStyle, roleStyle, {
|
|
110
|
+
omit: ['fontSize'],
|
|
111
|
+
}),
|
|
112
|
+
color: this.viewModel.buttonTextStyle?.color ?? buttonStyle.color,
|
|
113
|
+
};
|
|
94
114
|
},
|
|
95
115
|
paymentOptionButtonStyle() {
|
|
96
116
|
const buttonStyle = { ...this.viewModel.buttonStyles?.style };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { PropType } from 'vue';
|
|
2
|
-
import type { BrandPageContext, PaymentOption } from '../../../models';
|
|
2
|
+
import type { BrandPageContext, PaymentOption, TextStyleOptions } from '../../../models';
|
|
3
3
|
import type { SupportMeViewModel } from '../../../view-models';
|
|
4
4
|
import type { PaymentRequestDetails } from '../Payment.mixin';
|
|
5
5
|
declare const _default: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
@@ -11,7 +11,9 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
11
11
|
type: PropType<SupportMeViewModel>;
|
|
12
12
|
required: true;
|
|
13
13
|
};
|
|
14
|
-
}>, {
|
|
14
|
+
}>, {
|
|
15
|
+
roleOptions: import("vue").ComputedRef<TextStyleOptions | undefined> | undefined;
|
|
16
|
+
}, {
|
|
15
17
|
customerMessage: string | undefined;
|
|
16
18
|
selectedPaymentOptionIds: string[];
|
|
17
19
|
prevCustomAmount: string;
|
|
@@ -30,6 +32,8 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
30
32
|
currencySymbol(): string;
|
|
31
33
|
currencyCodeDisplay(): string;
|
|
32
34
|
paymentOptionButtonStyle(): BrandPageCssStyle;
|
|
35
|
+
customerMessageBlockRoleClass(): string | undefined;
|
|
36
|
+
customerMessageBlockStyle(): BrandPageCssStyle;
|
|
33
37
|
tippingLabel(): string;
|
|
34
38
|
customAmountLabel(): string;
|
|
35
39
|
}, {
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { defineComponent } from 'vue';
|
|
1
|
+
import { defineComponent, inject } from 'vue';
|
|
2
2
|
import { SUPPORT_ME_CUSTOM_PRODUCT_NAME } from '../../../constants';
|
|
3
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
|
+
import { TEXT_ROLE_OPTIONS_KEY, roleTypographyStyle, roleClassFor, roleStyleFor, } from '@brand-page/utils/text-role-css.util';
|
|
6
7
|
const MAX_CUSTOM_MESSAGE_CHARS = 500;
|
|
7
8
|
const MINIMUM_CUSTOM_AMOUNT = 0.1;
|
|
8
9
|
export default defineComponent({
|
|
@@ -16,6 +17,14 @@ export default defineComponent({
|
|
|
16
17
|
required: true,
|
|
17
18
|
},
|
|
18
19
|
},
|
|
20
|
+
setup() {
|
|
21
|
+
// BP-5969: the live role options, provided by `Page`. Absent (rendered outside Page) →
|
|
22
|
+
// the message block bakes its heading style's own values, as before this change.
|
|
23
|
+
const roleOptions = inject(TEXT_ROLE_OPTIONS_KEY, undefined);
|
|
24
|
+
return {
|
|
25
|
+
roleOptions,
|
|
26
|
+
};
|
|
27
|
+
},
|
|
19
28
|
data() {
|
|
20
29
|
return {
|
|
21
30
|
customerMessage: undefined,
|
|
@@ -81,6 +90,28 @@ export default defineComponent({
|
|
|
81
90
|
buttonStyle.borderWidth = undefined;
|
|
82
91
|
return buttonStyle;
|
|
83
92
|
},
|
|
93
|
+
customerMessageBlockRoleClass() {
|
|
94
|
+
return roleClassFor(this.viewModel.headingStyle?.textStyleType);
|
|
95
|
+
},
|
|
96
|
+
// The nested TextWrapper owns the label's size. The container retains the other heading
|
|
97
|
+
// properties so the input follows its surrounding visual treatment without compounding ems.
|
|
98
|
+
customerMessageBlockStyle() {
|
|
99
|
+
const roleStyle = roleStyleFor(this.viewModel.headingStyle?.textStyleType, this.roleOptions);
|
|
100
|
+
return {
|
|
101
|
+
...roleTypographyStyle(this.viewModel.headingStyle, roleStyle, {
|
|
102
|
+
omit: ['fontSize'],
|
|
103
|
+
}),
|
|
104
|
+
...(this.viewModel.headingStyle?.color
|
|
105
|
+
? { color: this.viewModel.headingStyle.color }
|
|
106
|
+
: {}),
|
|
107
|
+
// The old template bound the whole heading style inline (`:style="headingStyle"`),
|
|
108
|
+
// which let a left/right heading alignment beat the block's static `tw-text-center` —
|
|
109
|
+
// `roleTypographyStyle` doesn't carry alignment, so it's kept here explicitly (S7).
|
|
110
|
+
...(this.viewModel.headingStyle?.textAlign
|
|
111
|
+
? { textAlign: this.viewModel.headingStyle.textAlign }
|
|
112
|
+
: {}),
|
|
113
|
+
};
|
|
114
|
+
},
|
|
84
115
|
tippingLabel() {
|
|
85
116
|
return paymentTr(`selectAnAmount`, {
|
|
86
117
|
CURRENCY_CODE: this.currencyCodeDisplay,
|
|
@@ -12,12 +12,7 @@ const BPviewModel = {
|
|
|
12
12
|
textItems: [],
|
|
13
13
|
type: 'text',
|
|
14
14
|
textStyle: {
|
|
15
|
-
fontSize: '1rem',
|
|
16
|
-
lineHeight: '1.5rem',
|
|
17
|
-
fontFamily: 'Lato',
|
|
18
15
|
textAlign: 'left',
|
|
19
|
-
overflowWrap: 'anywhere',
|
|
20
|
-
wordBreak: 'normal',
|
|
21
16
|
},
|
|
22
17
|
columnStyle: '1',
|
|
23
18
|
backgroundColor: {},
|
|
@@ -34,7 +29,6 @@ const BSviewModel = {
|
|
|
34
29
|
id: 'text-item-1',
|
|
35
30
|
text: 'lorem ipsum',
|
|
36
31
|
textStyle: {
|
|
37
|
-
fontSize: '1rem',
|
|
38
32
|
textAlign: 'left',
|
|
39
33
|
textStyleType: 'paragraphs',
|
|
40
34
|
},
|
|
@@ -43,7 +37,6 @@ const BSviewModel = {
|
|
|
43
37
|
id: 'text-item-2',
|
|
44
38
|
text: 'lorem ipsum',
|
|
45
39
|
textStyle: {
|
|
46
|
-
fontSize: '1rem',
|
|
47
40
|
textAlign: 'left',
|
|
48
41
|
textStyleType: 'paragraphs',
|
|
49
42
|
},
|
|
@@ -51,12 +44,7 @@ const BSviewModel = {
|
|
|
51
44
|
],
|
|
52
45
|
type: 'text',
|
|
53
46
|
textStyle: {
|
|
54
|
-
fontSize: '1rem',
|
|
55
|
-
lineHeight: '1.5rem',
|
|
56
|
-
fontFamily: 'Lato',
|
|
57
47
|
textAlign: 'left',
|
|
58
|
-
overflowWrap: 'anywhere',
|
|
59
|
-
wordBreak: 'normal',
|
|
60
48
|
},
|
|
61
49
|
columnStyle: '2',
|
|
62
50
|
backgroundColor: {},
|
|
@@ -71,12 +59,7 @@ const BSEmptyTextItem = {
|
|
|
71
59
|
textItems: [],
|
|
72
60
|
type: 'text',
|
|
73
61
|
textStyle: {
|
|
74
|
-
fontSize: '1rem',
|
|
75
|
-
lineHeight: '1.5rem',
|
|
76
|
-
fontFamily: 'Lato',
|
|
77
62
|
textAlign: 'left',
|
|
78
|
-
overflowWrap: 'anywhere',
|
|
79
|
-
wordBreak: 'normal',
|
|
80
63
|
},
|
|
81
64
|
columnStyle: '1',
|
|
82
65
|
backgroundColor: {},
|
|
@@ -2,6 +2,16 @@ export declare const DISPLAY_TEXT_TITLE = "Titles";
|
|
|
2
2
|
export declare const DISPLAY_TEXT_HEADINGS = "Headings";
|
|
3
3
|
export declare const DISPLAY_TEXT_BODY = "Paragraphs";
|
|
4
4
|
export declare const DISPlAY_TEXT_BUTTONS = "Button Texts";
|
|
5
|
+
export declare const DISPLAY_TEXT_HEADING_1 = "Heading 1";
|
|
6
|
+
export declare const DISPLAY_TEXT_HEADING_2 = "Heading 2";
|
|
7
|
+
export declare const DISPLAY_TEXT_HEADING_3 = "Heading 3";
|
|
8
|
+
export declare const DISPLAY_TEXT_HEADING_4 = "Heading 4";
|
|
9
|
+
export declare const DISPLAY_TEXT_HEADING_5 = "Heading 5";
|
|
10
|
+
export declare const DISPLAY_TEXT_HEADING_6 = "Heading 6";
|
|
11
|
+
export declare const DISPLAY_TEXT_PARAGRAPH_1 = "Paragraph 1";
|
|
12
|
+
export declare const DISPLAY_TEXT_PARAGRAPH_2 = "Paragraph 2";
|
|
13
|
+
export declare const DISPLAY_TEXT_PARAGRAPH_3 = "Paragraph 3";
|
|
14
|
+
export declare const DISPLAY_TEXT_BUTTON = "Button";
|
|
5
15
|
export declare const DEFAULT_TEXT_DECORATION: undefined;
|
|
6
16
|
export declare const DEFAULT_FONT_STYLE: undefined;
|
|
7
17
|
export declare const FONT_SIZE_TITLE = "2.25em";
|
|
@@ -13,6 +23,58 @@ export declare const FONT_WEIGHT_NORMAL = "normal";
|
|
|
13
23
|
export declare const LINE_HEIGHT_TITLE = "1.3";
|
|
14
24
|
export declare const LINE_HEIGHT_HEADINGS = "1.4";
|
|
15
25
|
export declare const LINE_HEIGHT_BODY = "1.5";
|
|
26
|
+
export declare const TEXT_ROLE_STYLE_DEFAULTS: {
|
|
27
|
+
readonly heading1: {
|
|
28
|
+
readonly fontSize: "6.875em";
|
|
29
|
+
readonly fontWeight: "bold";
|
|
30
|
+
readonly lineHeight: "1.2";
|
|
31
|
+
};
|
|
32
|
+
readonly heading2: {
|
|
33
|
+
readonly fontSize: "5.25em";
|
|
34
|
+
readonly fontWeight: "bold";
|
|
35
|
+
readonly lineHeight: "1.2";
|
|
36
|
+
};
|
|
37
|
+
readonly heading3: {
|
|
38
|
+
readonly fontSize: "3.1875em";
|
|
39
|
+
readonly fontWeight: "bold";
|
|
40
|
+
readonly lineHeight: "1.25";
|
|
41
|
+
};
|
|
42
|
+
readonly heading4: {
|
|
43
|
+
readonly fontSize: "2.1875em";
|
|
44
|
+
readonly fontWeight: "bold";
|
|
45
|
+
readonly lineHeight: "1.3";
|
|
46
|
+
};
|
|
47
|
+
readonly heading5: {
|
|
48
|
+
readonly fontSize: "1.4375em";
|
|
49
|
+
readonly fontWeight: "bold";
|
|
50
|
+
readonly lineHeight: "1.35";
|
|
51
|
+
};
|
|
52
|
+
readonly heading6: {
|
|
53
|
+
readonly fontSize: "1em";
|
|
54
|
+
readonly fontWeight: "bold";
|
|
55
|
+
readonly lineHeight: "1.4";
|
|
56
|
+
};
|
|
57
|
+
readonly paragraph1: {
|
|
58
|
+
readonly fontSize: "1.375em";
|
|
59
|
+
readonly fontWeight: "normal";
|
|
60
|
+
readonly lineHeight: "1.5";
|
|
61
|
+
};
|
|
62
|
+
readonly paragraph2: {
|
|
63
|
+
readonly fontSize: "1.125em";
|
|
64
|
+
readonly fontWeight: "normal";
|
|
65
|
+
readonly lineHeight: "1.5";
|
|
66
|
+
};
|
|
67
|
+
readonly paragraph3: {
|
|
68
|
+
readonly fontSize: "0.875em";
|
|
69
|
+
readonly fontWeight: "normal";
|
|
70
|
+
readonly lineHeight: "1.6";
|
|
71
|
+
};
|
|
72
|
+
readonly button: {
|
|
73
|
+
readonly fontSize: "1em";
|
|
74
|
+
readonly fontWeight: "normal";
|
|
75
|
+
readonly lineHeight: "1.2";
|
|
76
|
+
};
|
|
77
|
+
};
|
|
16
78
|
export declare const DEFAULT_FONT_SIZE = 12;
|
|
17
79
|
export declare const MIN_TEXT_SIZE_PX = 12;
|
|
18
80
|
export declare const MAX_TEXT_SIZE_PX = 128;
|
|
@@ -3,6 +3,18 @@ export const DISPLAY_TEXT_TITLE = 'Titles';
|
|
|
3
3
|
export const DISPLAY_TEXT_HEADINGS = 'Headings';
|
|
4
4
|
export const DISPLAY_TEXT_BODY = 'Paragraphs';
|
|
5
5
|
export const DISPlAY_TEXT_BUTTONS = 'Button Texts';
|
|
6
|
+
// BP-5969 — display names for the 10 global text roles (English fallback; the
|
|
7
|
+
// panel/picker use i18n `styleSettingsTr(<role>)`, these back it up).
|
|
8
|
+
export const DISPLAY_TEXT_HEADING_1 = 'Heading 1';
|
|
9
|
+
export const DISPLAY_TEXT_HEADING_2 = 'Heading 2';
|
|
10
|
+
export const DISPLAY_TEXT_HEADING_3 = 'Heading 3';
|
|
11
|
+
export const DISPLAY_TEXT_HEADING_4 = 'Heading 4';
|
|
12
|
+
export const DISPLAY_TEXT_HEADING_5 = 'Heading 5';
|
|
13
|
+
export const DISPLAY_TEXT_HEADING_6 = 'Heading 6';
|
|
14
|
+
export const DISPLAY_TEXT_PARAGRAPH_1 = 'Paragraph 1';
|
|
15
|
+
export const DISPLAY_TEXT_PARAGRAPH_2 = 'Paragraph 2';
|
|
16
|
+
export const DISPLAY_TEXT_PARAGRAPH_3 = 'Paragraph 3';
|
|
17
|
+
export const DISPLAY_TEXT_BUTTON = 'Button';
|
|
6
18
|
export const DEFAULT_TEXT_DECORATION = undefined;
|
|
7
19
|
export const DEFAULT_FONT_STYLE = undefined;
|
|
8
20
|
export const FONT_SIZE_TITLE = '2.25em';
|
|
@@ -14,6 +26,29 @@ export const FONT_WEIGHT_NORMAL = 'normal';
|
|
|
14
26
|
export const LINE_HEIGHT_TITLE = '1.3';
|
|
15
27
|
export const LINE_HEIGHT_HEADINGS = '1.4';
|
|
16
28
|
export const LINE_HEIGHT_BODY = '1.5';
|
|
29
|
+
// BP-5969 — §4 default typography for the 10 global text roles. Sizes in `em`
|
|
30
|
+
// (relative to the 16px root). Weights/letter-spacing are new: the legacy 4
|
|
31
|
+
// roles carried none, so these apply to new sites only — existing sites keep
|
|
32
|
+
// their persisted role definitions (migration-22 preserves appearance).
|
|
33
|
+
// Weight is strictly binary (BP-5969): headings default `bold`, body + button
|
|
34
|
+
// `normal`. No semibold tier — the RTE exposes only a normal/bold toggle, so the
|
|
35
|
+
// role defaults use the same `bold`/`normal` keywords that toggle (and every weight
|
|
36
|
+
// reader) speaks, not numeric weights.
|
|
37
|
+
//
|
|
38
|
+
// Sizes are a display scale in em @ 16px root; the px each em resolves to is noted
|
|
39
|
+
// inline. Headings anchor H1 110px → H6 16px; body runs 22/18/14; button stays 16px.
|
|
40
|
+
export const TEXT_ROLE_STYLE_DEFAULTS = {
|
|
41
|
+
heading1: { fontSize: '6.875em', fontWeight: 'bold', lineHeight: '1.2' }, // 110px
|
|
42
|
+
heading2: { fontSize: '5.25em', fontWeight: 'bold', lineHeight: '1.2' }, // 84px
|
|
43
|
+
heading3: { fontSize: '3.1875em', fontWeight: 'bold', lineHeight: '1.25' }, // 51px
|
|
44
|
+
heading4: { fontSize: '2.1875em', fontWeight: 'bold', lineHeight: '1.3' }, // 35px
|
|
45
|
+
heading5: { fontSize: '1.4375em', fontWeight: 'bold', lineHeight: '1.35' }, // 23px
|
|
46
|
+
heading6: { fontSize: '1em', fontWeight: 'bold', lineHeight: '1.4' }, // 16px
|
|
47
|
+
paragraph1: { fontSize: '1.375em', fontWeight: 'normal', lineHeight: '1.5' }, // 22px
|
|
48
|
+
paragraph2: { fontSize: '1.125em', fontWeight: 'normal', lineHeight: '1.5' }, // 18px
|
|
49
|
+
paragraph3: { fontSize: '0.875em', fontWeight: 'normal', lineHeight: '1.6' }, // 14px
|
|
50
|
+
button: { fontSize: '1em', fontWeight: 'normal', lineHeight: '1.2' }, // 16px
|
|
51
|
+
};
|
|
17
52
|
export const DEFAULT_FONT_SIZE = 12;
|
|
18
53
|
export const MIN_TEXT_SIZE_PX = 12;
|
|
19
54
|
export const MAX_TEXT_SIZE_PX = 128;
|
|
@@ -36,9 +36,11 @@ export interface AbTestResult {
|
|
|
36
36
|
}
|
|
37
37
|
export declare const AB_TEST_KEYS: {
|
|
38
38
|
BP_3926_FREEMIUM_WATERMARK: string;
|
|
39
|
+
BP_6136_V2_AI_BUILDER: string;
|
|
39
40
|
};
|
|
40
41
|
export interface AbTest {
|
|
41
42
|
bp_3926_freemium_watermark?: AbTestResult;
|
|
43
|
+
bp_6136_v2_ai_builder?: AbTestResult;
|
|
42
44
|
}
|
|
43
45
|
export declare const MEDIA_SIZES: {
|
|
44
46
|
readonly size1x: "size1x";
|
|
@@ -24,6 +24,9 @@ export const AB_TEST_FLAG = {
|
|
|
24
24
|
};
|
|
25
25
|
export const AB_TEST_KEYS = {
|
|
26
26
|
BP_3926_FREEMIUM_WATERMARK: 'bc-bp-3926-freemium-cta-in-website-editor',
|
|
27
|
+
// V1 (control) vs V2 (variation-1) AI website builder, sent by bc-net in the editor
|
|
28
|
+
// payload at load. Key must match `Bp6136V2AiBuilderStrategy.CampaignKey`.
|
|
29
|
+
BP_6136_V2_AI_BUILDER: 'bc-bp-6136-v2-ai-builder',
|
|
27
30
|
};
|
|
28
31
|
export const MEDIA_SIZES = {
|
|
29
32
|
size1x: 'size1x',
|
|
@@ -45,5 +48,9 @@ export const getAbTestResults = (abtestKeyValues) => {
|
|
|
45
48
|
if (abtestKeyValues[AB_TEST_KEYS.BP_3926_FREEMIUM_WATERMARK]) {
|
|
46
49
|
abTests.bp_3926_freemium_watermark = getValueType(AB_TEST_KEYS.BP_3926_FREEMIUM_WATERMARK, abtestKeyValues[AB_TEST_KEYS.BP_3926_FREEMIUM_WATERMARK]);
|
|
47
50
|
}
|
|
51
|
+
// AB Test - V1 vs V2 AI website builder
|
|
52
|
+
if (abtestKeyValues[AB_TEST_KEYS.BP_6136_V2_AI_BUILDER]) {
|
|
53
|
+
abTests.bp_6136_v2_ai_builder = getValueType(AB_TEST_KEYS.BP_6136_V2_AI_BUILDER, abtestKeyValues[AB_TEST_KEYS.BP_6136_V2_AI_BUILDER]);
|
|
54
|
+
}
|
|
48
55
|
return abTests;
|
|
49
56
|
};
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { ImagesSectionContentDisplayStyle, HeaderDisplayStyle, FooterDisplayStyle } from '../constants';
|
|
2
2
|
import type { Content, PersonalisationRole } from './content.model';
|
|
3
3
|
import type { BrandPageType, ViewportsType } from './brand-page-context.model';
|
|
4
4
|
import { NavigationDesktop, NavigationMobile } from './navigation-styles.model';
|
|
5
|
-
import type { TextStyleDeclaration, LegacyTextStylesInput } from './styles.model';
|
|
5
|
+
import type { TextStyleDeclaration, RteTextRole, LegacyTextStylesInput } from './styles.model';
|
|
6
6
|
import { TextStyles } from './styles.model';
|
|
7
7
|
import { LogoStyles } from './logo.model';
|
|
8
8
|
import type { LogoImageModel, LogoTemplateImageModel } from './logo.model';
|
|
@@ -176,8 +176,8 @@ export interface TextContent extends Content {
|
|
|
176
176
|
/**
|
|
177
177
|
* @deprecated Use `textStyle` instead. For backward compatibility.
|
|
178
178
|
*/
|
|
179
|
-
textSize
|
|
180
|
-
textStyle:
|
|
179
|
+
textSize?: BrandPageCssStyle;
|
|
180
|
+
textStyle: RteTextRole;
|
|
181
181
|
/**
|
|
182
182
|
* @deprecated Use `textStyle` instead. For backward compatibility.
|
|
183
183
|
*/
|
|
@@ -197,9 +197,9 @@ export interface ProfileContent extends Content {
|
|
|
197
197
|
colorReplacements: ColorReplacement[];
|
|
198
198
|
mediaType?: string;
|
|
199
199
|
size?: string;
|
|
200
|
-
descriptionStyle:
|
|
201
|
-
nameStyle:
|
|
202
|
-
titleStyle:
|
|
200
|
+
descriptionStyle: RteTextRole;
|
|
201
|
+
nameStyle: RteTextRole;
|
|
202
|
+
titleStyle: RteTextRole;
|
|
203
203
|
}
|
|
204
204
|
export interface Address {
|
|
205
205
|
formattedAddress: string;
|
|
@@ -212,7 +212,7 @@ export interface MailingListContent extends Content {
|
|
|
212
212
|
acceptedFields?: 'emailOnly' | 'nameAndEmail';
|
|
213
213
|
title: RichTextValue;
|
|
214
214
|
buttonText: string;
|
|
215
|
-
titleStyle:
|
|
215
|
+
titleStyle: RteTextRole;
|
|
216
216
|
buttonTextStyle: TextStyleDeclaration;
|
|
217
217
|
backgroundStyle?: BrandPageCssStyle;
|
|
218
218
|
}
|
|
@@ -270,11 +270,11 @@ export interface ContactFormContent extends Content {
|
|
|
270
270
|
responseEmail: string;
|
|
271
271
|
imageUrl?: string;
|
|
272
272
|
layoutStyle?: string | null;
|
|
273
|
-
titleStyle?:
|
|
274
|
-
descriptionStyle?:
|
|
273
|
+
titleStyle?: RteTextRole;
|
|
274
|
+
descriptionStyle?: RteTextRole;
|
|
275
275
|
buttonTextStyle?: TextStyleDeclaration;
|
|
276
276
|
backgroundStyle?: BrandPageCssStyle;
|
|
277
|
-
successMessageStyle?:
|
|
277
|
+
successMessageStyle?: RteTextRole;
|
|
278
278
|
cardStyle?: BrandPageCssStyle;
|
|
279
279
|
colorReplacements?: ColorReplacement[];
|
|
280
280
|
mediaType?: string;
|
|
@@ -291,8 +291,8 @@ export interface BannerSectionContent extends Content {
|
|
|
291
291
|
email?: string;
|
|
292
292
|
tel?: string;
|
|
293
293
|
displayStyle: string;
|
|
294
|
-
titleStyle:
|
|
295
|
-
descriptionStyle:
|
|
294
|
+
titleStyle: RteTextRole;
|
|
295
|
+
descriptionStyle: RteTextRole;
|
|
296
296
|
backgroundStyle: BrandPageCssStyle;
|
|
297
297
|
cardStyle: BrandPageCssStyle;
|
|
298
298
|
colorReplacements: ColorReplacement[];
|
|
@@ -357,7 +357,7 @@ export interface TextItem {
|
|
|
357
357
|
/** Stable per-item identifier. See ImageItem.id. */
|
|
358
358
|
id: string;
|
|
359
359
|
text: RichTextValue;
|
|
360
|
-
textStyle:
|
|
360
|
+
textStyle: RteTextRole;
|
|
361
361
|
textOverride?: string;
|
|
362
362
|
}
|
|
363
363
|
export interface ShapesSectionContent extends Content, MediaSection {
|
|
@@ -377,8 +377,8 @@ export interface MediaSection extends Content {
|
|
|
377
377
|
description: RichTextValue;
|
|
378
378
|
displayStyle: ImagesSectionContentDisplayStyle;
|
|
379
379
|
items: TextShapeItem[] | TextMediaItem[];
|
|
380
|
-
titleStyle:
|
|
381
|
-
descriptionStyle:
|
|
380
|
+
titleStyle: RteTextRole;
|
|
381
|
+
descriptionStyle: RteTextRole;
|
|
382
382
|
headingStyle: TextStyleDeclaration;
|
|
383
383
|
paragraphStyle: TextStyleDeclaration;
|
|
384
384
|
backgroundStyle: BrandPageCssStyle;
|
|
@@ -406,7 +406,7 @@ export interface TestimonialSectionContent extends Content {
|
|
|
406
406
|
title: RichTextValue;
|
|
407
407
|
displayStyle: string;
|
|
408
408
|
items: TestimonialItems[];
|
|
409
|
-
titleStyle:
|
|
409
|
+
titleStyle: RteTextRole;
|
|
410
410
|
testimonialStyle: TextStyleDeclaration;
|
|
411
411
|
nameStyle: TextStyleDeclaration;
|
|
412
412
|
positionStyle: TextStyleDeclaration;
|
|
@@ -420,8 +420,8 @@ export interface AboutSectionContent extends Content {
|
|
|
420
420
|
title: RichTextValue;
|
|
421
421
|
paragraph: RichTextValue;
|
|
422
422
|
displayStyle: string;
|
|
423
|
-
titleStyle:
|
|
424
|
-
paragraphStyle:
|
|
423
|
+
titleStyle: RteTextRole;
|
|
424
|
+
paragraphStyle: RteTextRole;
|
|
425
425
|
backgroundStyle: BrandPageCssStyle;
|
|
426
426
|
colorReplacements: ColorReplacement[];
|
|
427
427
|
mediaType?: string;
|
|
@@ -448,7 +448,7 @@ export interface SocialLinksContent extends Content {
|
|
|
448
448
|
iconFillStyles: BrandPageCssStyle;
|
|
449
449
|
iconBackgroundStyles: BrandPageCssStyle;
|
|
450
450
|
backgroundStyles: BrandPageCssStyle;
|
|
451
|
-
titleStyle:
|
|
451
|
+
titleStyle: RteTextRole;
|
|
452
452
|
}
|
|
453
453
|
export declare const DIVIDER_STYLES: {
|
|
454
454
|
readonly none: "none";
|
|
@@ -471,8 +471,8 @@ export interface BookingSectionContent extends Content {
|
|
|
471
471
|
url: string;
|
|
472
472
|
email?: string;
|
|
473
473
|
tel?: string;
|
|
474
|
-
titleStyle:
|
|
475
|
-
descriptionStyle:
|
|
474
|
+
titleStyle: RteTextRole;
|
|
475
|
+
descriptionStyle: RteTextRole;
|
|
476
476
|
backgroundStyle: BrandPageCssStyle;
|
|
477
477
|
buttonPageId: string;
|
|
478
478
|
buttonLinkType: ButtonLinkType;
|
|
@@ -566,8 +566,6 @@ export declare abstract class AbstractPageFooterStyles {
|
|
|
566
566
|
logoTemplateImage: LogoTemplateImageModel | undefined;
|
|
567
567
|
logoImageBase64Url?: string;
|
|
568
568
|
socialLinks: LinksItem[];
|
|
569
|
-
/** @deprecated For backward compatibility only */
|
|
570
|
-
textFontFamily?: FontFamilyKey;
|
|
571
569
|
viewport: ViewportsType;
|
|
572
570
|
logoImageHeight: string | undefined;
|
|
573
571
|
logoImageWidth: string | undefined;
|
|
@@ -601,6 +599,7 @@ export interface CookieOptions {
|
|
|
601
599
|
export interface SaveContactOptions {
|
|
602
600
|
isSavingEnabled: boolean;
|
|
603
601
|
hideBranding: boolean;
|
|
602
|
+
buttonTextStyle?: TextStyleDeclaration;
|
|
604
603
|
}
|
|
605
604
|
export declare class BrandPageModel {
|
|
606
605
|
v: number;
|
|
@@ -315,8 +315,6 @@ export class AbstractPageFooterStyles {
|
|
|
315
315
|
logoTemplateImage;
|
|
316
316
|
logoImageBase64Url;
|
|
317
317
|
socialLinks;
|
|
318
|
-
/** @deprecated For backward compatibility only */
|
|
319
|
-
textFontFamily;
|
|
320
318
|
viewport;
|
|
321
319
|
logoImageHeight;
|
|
322
320
|
logoImageWidth;
|
|
@@ -329,8 +327,8 @@ export class AbstractPageFooterStyles {
|
|
|
329
327
|
this.copyrightText =
|
|
330
328
|
options.copyrightText ??
|
|
331
329
|
`© ${new Date(Date.now()).getFullYear()} by [Company Name]. All Rights Reserved.`;
|
|
330
|
+
// Migration-01 reads the legacy role only for v0 input; newer data must never mint `paragraphs`.
|
|
332
331
|
this.copyrightStyle = options.copyrightStyle || {
|
|
333
|
-
textStyleType: TEXT_STYLE_TYPES.paragraphs,
|
|
334
332
|
textAlign: 'center',
|
|
335
333
|
};
|
|
336
334
|
if (options.displayStyle) {
|
|
@@ -390,7 +388,13 @@ export class AbstractPageFooterStyles {
|
|
|
390
388
|
// explicit black, a not-yet-migrated model renders the SVG default. Seeding a site
|
|
391
389
|
// text colour here need not read against the footer band.
|
|
392
390
|
this.iconStyle = options.iconStyle ? { ...options.iconStyle } : {};
|
|
393
|
-
|
|
391
|
+
// Retired (`0036-retire-text-font-family.md`): carried as stored, so construction keeps the
|
|
392
|
+
// released migrations' input unchanged (`legacy-migrations.md`); migration-22 deletes it.
|
|
393
|
+
const { textFontFamily } = options;
|
|
394
|
+
if (textFontFamily !== undefined) {
|
|
395
|
+
this['textFontFamily'] =
|
|
396
|
+
textFontFamily;
|
|
397
|
+
}
|
|
394
398
|
}
|
|
395
399
|
}
|
|
396
400
|
export class AbstractMedia {
|
|
@@ -459,6 +463,15 @@ export class BrandPageModel {
|
|
|
459
463
|
paymentConfig;
|
|
460
464
|
constructor(options) {
|
|
461
465
|
this.v = options.v || 0;
|
|
466
|
+
const footerOptions = (footer) => this.v < 22 && footer?.copyrightStyle === undefined
|
|
467
|
+
? {
|
|
468
|
+
...footer,
|
|
469
|
+
copyrightStyle: {
|
|
470
|
+
textStyleType: TEXT_STYLE_TYPES.paragraphs,
|
|
471
|
+
textAlign: 'center',
|
|
472
|
+
},
|
|
473
|
+
}
|
|
474
|
+
: footer;
|
|
462
475
|
this.styles = new PageStyles(options.styles);
|
|
463
476
|
// `textStyles.style` is retired, so it is read untyped here (the
|
|
464
477
|
// deserialization boundary). The seeding it feeds must NOT change —
|
|
@@ -500,7 +513,7 @@ export class BrandPageModel {
|
|
|
500
513
|
// so the seed rides migration-01's re-wrap into the modern pageFooter* and is
|
|
501
514
|
// referencified by migration-21 — else legacy footer icons stay colourless.
|
|
502
515
|
this.footerStyles = new PageFooterDesktop({
|
|
503
|
-
...options.footerStyles,
|
|
516
|
+
...footerOptions(options.footerStyles),
|
|
504
517
|
}, theme);
|
|
505
518
|
this.footerStyles.logoImageUrl =
|
|
506
519
|
options.footerStyles.logoImageUrl;
|
|
@@ -515,8 +528,8 @@ export class BrandPageModel {
|
|
|
515
528
|
...options.pageHeaderDesktop,
|
|
516
529
|
navigation: new NavigationDesktop(options.pageHeaderDesktop?.navigation, theme),
|
|
517
530
|
});
|
|
518
|
-
this.pageFooterMobile = new PageFooterMobile(options.pageFooterMobile, theme);
|
|
519
|
-
this.pageFooterDesktop = new PageFooterDesktop(options.pageFooterDesktop, theme);
|
|
531
|
+
this.pageFooterMobile = new PageFooterMobile(footerOptions(options.pageFooterMobile), theme);
|
|
532
|
+
this.pageFooterDesktop = new PageFooterDesktop(footerOptions(options.pageFooterDesktop), theme);
|
|
520
533
|
}
|
|
521
534
|
this.faviconUrl = options.faviconUrl;
|
|
522
535
|
this.ogImageUrl = options.ogImageUrl;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type NavigationDisplayType } from '../constants';
|
|
2
2
|
import type { Theme, ViewportsType } from './index';
|
|
3
|
-
import type
|
|
3
|
+
import { type TextStyleDeclaration } from './styles.model';
|
|
4
4
|
export declare class NavigationMenuStyles {
|
|
5
5
|
defaultButtonStyle: TextStyleDeclaration;
|
|
6
6
|
selectedButtonStyle: BrandPageCssStyle;
|