@designcrowd/library.brand-page 6.2.11 → 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.
Files changed (576) hide show
  1. package/lib/src/{CreatedOnBrandCrowd-de-de-DDcraD5S.js → CreatedOnBrandCrowd-de-de-BtVKllNQ.js} +1 -1
  2. package/lib/src/{CreatedOnBrandCrowd-en-us-DtOeaisf.js → CreatedOnBrandCrowd-en-us-CX5V0v8u.js} +1 -1
  3. package/lib/src/{CreatedOnBrandCrowd-es-es-BZpmJPew.js → CreatedOnBrandCrowd-es-es-CbA02PCL.js} +1 -1
  4. package/lib/src/{CreatedOnBrandCrowd-fr-fr-CqRwC4e7.js → CreatedOnBrandCrowd-fr-ca-BQAKruBF.js} +1 -1
  5. package/lib/src/{CreatedOnBrandCrowd-fr-ca-CqRwC4e7.js → CreatedOnBrandCrowd-fr-fr-BQAKruBF.js} +1 -1
  6. package/lib/src/{CreatedOnBrandCrowd-pt-pt-DId9Dfjh.js → CreatedOnBrandCrowd-pt-br-Yk_yzB3s.js} +1 -1
  7. package/lib/src/{CreatedOnBrandCrowd-pt-br-DId9Dfjh.js → CreatedOnBrandCrowd-pt-pt-Yk_yzB3s.js} +1 -1
  8. package/lib/src/{CreatedOnDcom-de-de-BTDfmOcm.js → CreatedOnDcom-de-de-DJZQbPSD.js} +1 -1
  9. package/lib/src/{CreatedOnDcom-en-us-CeAu9Ayx.js → CreatedOnDcom-en-us-BJvNAa4l.js} +1 -1
  10. package/lib/src/{CreatedOnDcom-es-es-WCv0K41H.js → CreatedOnDcom-es-es-CUwB1FRY.js} +1 -1
  11. package/lib/src/{CreatedOnDcom-fr-ca-BlfevQDY.js → CreatedOnDcom-fr-ca-CK54U4oh.js} +1 -1
  12. package/lib/src/{CreatedOnDcom-fr-fr-Cvt7MHPZ.js → CreatedOnDcom-fr-fr-DuUNBGrM.js} +1 -1
  13. package/lib/src/{CreatedOnDcom-pt-br-DipZuylv.js → CreatedOnDcom-pt-br-BfODpFNV.js} +1 -1
  14. package/lib/src/{CreatedOnDcom-pt-pt-BCw4lcKN.js → CreatedOnDcom-pt-pt-Cf6u2GCg.js} +1 -1
  15. package/lib/src/brand-page/__fixtures__/production-text-style-resolver.fixture.d.ts +16 -0
  16. package/lib/src/brand-page/__fixtures__/production-text-style-resolver.fixture.js +35 -0
  17. package/lib/src/brand-page/components/contact-form/ContactForm.mixin.d.ts +3 -0
  18. package/lib/src/brand-page/components/contact-form/ContactForm.mixin.js +19 -13
  19. package/lib/src/brand-page/components/mailing-list/MailingList.mixin.d.ts +3 -1
  20. package/lib/src/brand-page/components/mailing-list/MailingList.mixin.js +17 -2
  21. package/lib/src/brand-page/components/navigation/button-carousel/ButtonCarouselNavigation.mixin.d.ts +11 -3
  22. package/lib/src/brand-page/components/navigation/button-carousel/ButtonCarouselNavigation.mixin.js +35 -1
  23. package/lib/src/brand-page/components/navigation/navigation-side-menu/NavigationSideMenu.mixin.d.ts +8 -2
  24. package/lib/src/brand-page/components/navigation/navigation-side-menu/NavigationSideMenu.mixin.js +27 -3
  25. package/lib/src/brand-page/components/page/Page.mixin.d.ts +5 -2
  26. package/lib/src/brand-page/components/page/Page.mixin.js +33 -27
  27. package/lib/src/brand-page/components/page-footer/PageFooter.mixin.d.ts +7 -2
  28. package/lib/src/brand-page/components/page-footer/PageFooter.mixin.js +21 -1
  29. package/lib/src/brand-page/components/payment/Payment.mixin.d.ts +5 -2
  30. package/lib/src/brand-page/components/payment/Payment.mixin.js +22 -2
  31. package/lib/src/brand-page/components/payment/support-me/SupportMe.mixin.d.ts +6 -2
  32. package/lib/src/brand-page/components/payment/support-me/SupportMe.mixin.js +32 -1
  33. package/lib/src/brand-page/components/social-links/SocialLinks.stories.js +0 -3
  34. package/lib/src/brand-page/components/testimonial-section/__fixtures__/data.js +0 -3
  35. package/lib/src/brand-page/components/text/Text.stories.js +0 -17
  36. package/lib/src/brand-page/constants/font.constants.d.ts +62 -0
  37. package/lib/src/brand-page/constants/font.constants.js +35 -0
  38. package/lib/src/brand-page/models/index.d.ts +23 -24
  39. package/lib/src/brand-page/models/index.js +20 -7
  40. package/lib/src/brand-page/models/navigation-styles.model.d.ts +1 -1
  41. package/lib/src/brand-page/models/navigation-styles.model.js +17 -8
  42. package/lib/src/brand-page/models/payment.model.d.ts +11 -6
  43. package/lib/src/brand-page/models/styles.model.d.ts +53 -7
  44. package/lib/src/brand-page/models/styles.model.js +115 -27
  45. package/lib/src/brand-page/utils/color-palette.util.d.ts +43 -23
  46. package/lib/src/brand-page/utils/color-palette.util.js +65 -27
  47. package/lib/src/brand-page/utils/color.util.d.ts +13 -9
  48. package/lib/src/brand-page/utils/color.util.js +56 -15
  49. package/lib/src/brand-page/utils/container-text-color.util.d.ts +46 -13
  50. package/lib/src/brand-page/utils/container-text-color.util.js +321 -41
  51. package/lib/src/brand-page/utils/index.d.ts +1 -0
  52. package/lib/src/brand-page/utils/index.js +1 -0
  53. package/lib/src/brand-page/utils/migration/migration-20.js +6 -2
  54. package/lib/src/brand-page/utils/migration/migration-21.js +34 -6
  55. package/lib/src/brand-page/utils/migration/migration-22.d.ts +99 -0
  56. package/lib/src/brand-page/utils/migration/migration-22.js +909 -0
  57. package/lib/src/brand-page/utils/migration.util.js +17 -0
  58. package/lib/src/brand-page/utils/model.util.d.ts +4 -0
  59. package/lib/src/brand-page/utils/model.util.js +4 -0
  60. package/lib/src/brand-page/utils/personalisation.util.js +9 -1
  61. package/lib/src/brand-page/utils/rte-role-lift.util.d.ts +72 -0
  62. package/lib/src/brand-page/utils/rte-role-lift.util.js +275 -0
  63. package/lib/src/brand-page/utils/style.util.d.ts +5 -1
  64. package/lib/src/brand-page/utils/style.util.js +34 -11
  65. package/lib/src/brand-page/utils/text-role-css.util.d.ts +19 -0
  66. package/lib/src/brand-page/utils/text-role-css.util.js +186 -0
  67. package/lib/src/brand-page/utils/text-role-reconnect.util.d.ts +90 -0
  68. package/lib/src/brand-page/utils/text-role-reconnect.util.js +434 -0
  69. package/lib/src/brand-page/utils/text-style.util.d.ts +53 -23
  70. package/lib/src/brand-page/utils/text-style.util.js +122 -22
  71. package/lib/src/brand-page/utils/view-model.util.d.ts +9 -1
  72. package/lib/src/brand-page/utils/view-model.util.js +124 -111
  73. package/lib/src/brand-page/view-models.d.ts +1 -0
  74. package/lib/src/brand-page-maker/components/action-bar/ActionBar.mixin.d.ts +4 -1
  75. package/lib/src/brand-page-maker/components/brand-page-maker/BrandPageMaker.mixin.d.ts +13 -2
  76. package/lib/src/brand-page-maker/components/brand-page-maker/BrandPageMaker.mixin.js +4 -4
  77. package/lib/src/brand-page-maker/components/brand-page-maker/BrandPageMakerTemplateSettings.mixin.d.ts +4 -1
  78. package/lib/src/brand-page-maker/components/brand-page-maker/__fixtures__/brand-page-examples.js +0 -10
  79. package/lib/src/brand-page-maker/components/brand-page-maker/__fixtures__/content-settings-items.fixture.js +0 -1
  80. package/lib/src/brand-page-maker/components/brandpage-maker-page/BrandPageMakerPage.mixin.d.ts +23 -138
  81. package/lib/src/brand-page-maker/components/brandpage-maker-page/BrandPageMakerPage.mixin.js +0 -28
  82. package/lib/src/brand-page-maker/components/brandpage-settings/ReplaceImageSettingsForBrandPageSettings.mixin.d.ts +4 -1
  83. package/lib/src/brand-page-maker/components/navigation/Navigation.mixin.d.ts +1 -1
  84. package/lib/src/brand-page-maker/components/seo-settings/SeoPageSettings.mixin.d.ts +5 -2
  85. package/lib/src/brand-page-maker/components/seo-settings/UrlSettings.mixin.d.ts +4 -1
  86. package/lib/src/brand-page-maker/components/social-share/SocialShare.mixin.d.ts +4 -1
  87. package/lib/src/brand-page-maker/components/template-preview/TemplatePreview.mixin.d.ts +4 -1
  88. package/lib/src/brand-page-maker/composables/ai-chat/useAiMetadataBuilder.d.ts +1 -0
  89. package/lib/src/brand-page-maker/composables/ai-chat/useAiMetadataBuilder.js +1 -0
  90. package/lib/src/brand-page-maker/composables/ai-chat/useAiWebsiteBuilderChat.js +1 -0
  91. package/lib/src/brand-page-maker/composables/rich-text-editor/extensions/RoleTypographyFill.d.ts +16 -0
  92. package/lib/src/brand-page-maker/composables/rich-text-editor/extensions/RoleTypographyFill.js +61 -0
  93. package/lib/src/brand-page-maker/composables/rich-text-editor/extensions/RteClipboard.d.ts +11 -0
  94. package/lib/src/brand-page-maker/composables/rich-text-editor/extensions/RteClipboard.js +236 -0
  95. package/lib/src/brand-page-maker/composables/rich-text-editor/font.d.ts +2 -1
  96. package/lib/src/brand-page-maker/composables/rich-text-editor/font.js +25 -6
  97. package/lib/src/brand-page-maker/composables/rich-text-editor/formatting.d.ts +17 -4
  98. package/lib/src/brand-page-maker/composables/rich-text-editor/formatting.js +204 -17
  99. package/lib/src/brand-page-maker/composables/rich-text-editor/hyperlink.d.ts +1 -1
  100. package/lib/src/brand-page-maker/composables/rich-text-editor/hyperlink.js +29 -31
  101. package/lib/src/brand-page-maker/composables/rich-text-editor/keepMarksOnEmpty.d.ts +20 -0
  102. package/lib/src/brand-page-maker/composables/rich-text-editor/keepMarksOnEmpty.js +60 -0
  103. package/lib/src/brand-page-maker/composables/rich-text-editor/spacing.d.ts +2 -1
  104. package/lib/src/brand-page-maker/composables/rich-text-editor/spacing.js +22 -6
  105. package/lib/src/brand-page-maker/composables/rich-text-editor/useRichTextEditor.d.ts +10 -4
  106. package/lib/src/brand-page-maker/composables/rich-text-editor/useRichTextEditor.js +319 -275
  107. package/lib/src/brand-page-maker/constants/config-settings-constant.js +1 -5
  108. package/lib/src/brand-page-maker/convertors/text-css-style-options.convertor.js +6 -2
  109. package/lib/src/brand-page-maker/convertors/text-size-value.convertor.d.ts +1 -1
  110. package/lib/src/brand-page-maker/convertors/text-size-value.convertor.js +3 -1
  111. package/lib/src/brand-page-maker/default-getters/payment-text-and-border-color.default-getter.js +7 -14
  112. package/lib/src/brand-page-maker/default-getters/text-color.default-getter.js +6 -13
  113. package/lib/src/brand-page-maker/models/content-settings.d.ts +8 -0
  114. package/lib/src/brand-page-maker/models/content-settings.js +112 -81
  115. package/lib/src/brand-page-maker/stores/admin-logo-settings/admin-logo-settings-store-utils.d.ts +2 -2
  116. package/lib/src/brand-page-maker/stores/admin-logo-settings/admin-logo-settings-store-utils.js +5 -2
  117. package/lib/src/brand-page-maker/stores/admin-logo-settings/admin-logo-settings-store.js +4 -3
  118. package/lib/src/brand-page-maker/stores/ai-checkpoint/ai-checkpoint-store.d.ts +1257 -117
  119. package/lib/src/brand-page-maker/stores/brandpage-maker/brandpage-maker-store.d.ts +6 -1
  120. package/lib/src/brand-page-maker/stores/brandpage-maker/brandpage-maker-store.js +17 -9
  121. package/lib/src/brand-page-maker/stores/history/history-store.d.ts +59 -5
  122. package/lib/src/brand-page-maker/stores/history/history-store.js +22 -2
  123. package/lib/src/brand-page-maker/utils/apply-color-strategy.js +26 -8
  124. package/lib/src/brand-page-maker/utils/index.d.ts +2 -1
  125. package/lib/src/brand-page-maker/utils/index.js +2 -1
  126. package/lib/src/brand-page-maker/utils/rich-text-editor.util.d.ts +117 -15
  127. package/lib/src/brand-page-maker/utils/rich-text-editor.util.js +435 -281
  128. package/lib/src/brand-page-maker/utils/rte-authoring.util.d.ts +4 -0
  129. package/lib/src/brand-page-maker/utils/rte-authoring.util.js +101 -0
  130. package/lib/src/brand-page-maker/utils/rte-clipboard.util.d.ts +126 -0
  131. package/lib/src/brand-page-maker/utils/rte-clipboard.util.js +307 -0
  132. package/lib/src/brand-page-maker/utils/rte-sanitize.util.js +13 -3
  133. package/lib/src/{bundled-translations-zfiA5Tsw.js → bundled-translations-yGrvPE5i.js} +17 -17
  134. package/lib/src/{bundled-translations.de-DE-ChsdSyAP.js → bundled-translations.de-DE-L4Znf8Hs.js} +17 -17
  135. package/lib/src/{bundled-translations.es-ES-DflsWQK0.js → bundled-translations.es-ES-D6iticrK.js} +15 -15
  136. package/lib/src/{bundled-translations.fr-CA-fpDRuZ52.js → bundled-translations.fr-CA-BgAVE-9k.js} +25 -25
  137. package/lib/src/{bundled-translations.fr-FR-Bub73Zt-.js → bundled-translations.fr-FR-B8GbyqxQ.js} +17 -17
  138. package/lib/src/{bundled-translations.pt-BR-BlnWE9TB.js → bundled-translations.pt-BR-DjPU3Db7.js} +25 -25
  139. package/lib/src/{bundled-translations.pt-PT-DmzXlnaS.js → bundled-translations.pt-PT-BaepaDpr.js} +23 -23
  140. package/lib/src/bundles/bundled-translations.de-DE.json +21 -2
  141. package/lib/src/bundles/bundled-translations.es-ES.json +21 -2
  142. package/lib/src/bundles/bundled-translations.fr-CA.json +21 -2
  143. package/lib/src/bundles/bundled-translations.fr-FR.json +21 -2
  144. package/lib/src/bundles/bundled-translations.json +21 -2
  145. package/lib/src/bundles/bundled-translations.pt-BR.json +21 -2
  146. package/lib/src/bundles/bundled-translations.pt-PT.json +21 -2
  147. package/lib/src/clients/ai-assistant-client.d.ts +1 -0
  148. package/lib/src/composables/useTranslate.d.ts +1 -1
  149. package/lib/src/composables/useTranslate.js +1 -1
  150. package/lib/src/css/library.brand-page-brandCrowd.min.css +303 -207
  151. package/lib/src/css/library.brand-page-brandPage.min.css +303 -207
  152. package/lib/src/css/library.brand-page-designCom.min.css +303 -207
  153. package/lib/src/css/library.brand-page-preview.min.css +303 -207
  154. package/lib/src/index.d.ts +2 -1
  155. package/lib/src/index.mjs +195 -191
  156. package/lib/src/{lib-1AqtEmvQ.js → lib-kGRlD3_P.js} +36855 -33893
  157. package/lib/src/lib.js +2 -1
  158. package/lib/src/metadata-builder/builders/footer-builder.js +4 -5
  159. package/lib/src/metadata-builder/builders/global-role-propagation.d.ts +58 -0
  160. package/lib/src/metadata-builder/builders/global-role-propagation.js +246 -0
  161. package/lib/src/metadata-builder/builders/global-styles-builder.d.ts +1 -0
  162. package/lib/src/metadata-builder/builders/global-styles-builder.js +116 -45
  163. package/lib/src/metadata-builder/builders/header-builder.js +13 -4
  164. package/lib/src/metadata-builder/builders/section-builders/about-section-builder.js +3 -3
  165. package/lib/src/metadata-builder/builders/section-builders/banner-section-builder.js +3 -3
  166. package/lib/src/metadata-builder/builders/section-builders/booking-section-builder.js +3 -3
  167. package/lib/src/metadata-builder/builders/section-builders/contact-form-builder.js +4 -4
  168. package/lib/src/metadata-builder/builders/section-builders/images-section-builder.js +3 -3
  169. package/lib/src/metadata-builder/builders/section-builders/mailing-list-builder.js +2 -2
  170. package/lib/src/metadata-builder/builders/section-builders/mailing-list-section-builder.js +2 -2
  171. package/lib/src/metadata-builder/builders/section-builders/profile-section-builder.js +4 -4
  172. package/lib/src/metadata-builder/builders/section-builders/shapes-section-builder.js +3 -3
  173. package/lib/src/metadata-builder/builders/section-builders/social-links-builder.js +8 -2
  174. package/lib/src/metadata-builder/builders/section-builders/testimonial-section-builder.js +2 -2
  175. package/lib/src/metadata-builder/builders/section-builders/text-section-builder.js +60 -29
  176. package/lib/src/metadata-builder/builders/section-field-maps.js +1 -0
  177. package/lib/src/metadata-builder/builders/section-field-utils.d.ts +48 -19
  178. package/lib/src/metadata-builder/builders/section-field-utils.js +128 -52
  179. package/lib/src/metadata-builder/builders/section-rules/global-styles.rules.d.ts +4 -2
  180. package/lib/src/metadata-builder/builders/section-rules/global-styles.rules.js +28 -12
  181. package/lib/src/metadata-builder/builders/section-rules/social-links.rules.js +5 -1
  182. package/lib/src/metadata-builder/helpers/rte.helpers.d.ts +1 -1
  183. package/lib/src/metadata-builder/helpers/rte.helpers.js +97 -40
  184. package/lib/src/metadata-builder/metadata-executor.js +23 -1
  185. package/lib/src/metadata-builder/models.d.ts +2 -0
  186. package/lib/src/metadata-builder/parsers/ai-toolcall-parser.d.ts +18 -19
  187. package/lib/src/metadata-builder/parsers/section-tool-arguments.d.ts +18 -1
  188. package/lib/src/metadata-builder/sanitizers/rte-schema-check.js +1 -1
  189. package/lib/src/metadata-builder/sanitizers/sanitizer-rules.d.ts +0 -1
  190. package/lib/src/metadata-builder/sanitizers/sanitizer-rules.js +5 -8
  191. package/lib/src/metadata-builder/sanitizers/section-args-validator.d.ts +7 -16
  192. package/lib/src/metadata-builder/sanitizers/section-args-validator.js +95 -22
  193. package/lib/src/shared/color-palette/section-color-matches.js +9 -25
  194. package/lib/src/shared/color-strategies/color-strategies.d.ts +15 -0
  195. package/lib/src/shared/color-strategies/color-strategies.js +31 -0
  196. package/lib/src/shared/color-strategies/rte-color.d.ts +8 -0
  197. package/lib/src/shared/color-strategies/rte-color.js +16 -0
  198. package/lib/src/shared/color-strategies/rte-field-pairs.d.ts +23 -0
  199. package/lib/src/shared/color-strategies/rte-field-pairs.js +28 -0
  200. package/lib/src/shared/content-settings/components/content-settings/ContentSettings.mixin.d.ts +9 -135
  201. package/lib/src/shared/content-settings/components/content-settings/ContentSettings.mixin.js +1 -27
  202. package/lib/src/shared/content-settings/components/content-settings/ReplaceImageSettingsForContent.mixin.d.ts +12 -2
  203. package/lib/src/shared/content-settings/components/content-settings-item/ContentSettingsItem.mixin.d.ts +7 -0
  204. package/lib/src/shared/content-settings/components/content-settings-item/ContentSettingsItemField.mixin.d.ts +75 -6
  205. package/lib/src/shared/content-settings/components/content-settings-item/ContentSettingsItemField.mixin.js +18 -7
  206. package/lib/src/shared/content-settings/components/focused-content-item-settings/FocusedContentItemSettings.mixin.d.ts +6 -1
  207. package/lib/src/shared/content-settings/components/focused-content-item-settings/FocusedContentItemSettings.mixin.js +0 -7
  208. package/lib/src/shared/content-settings/components/payment-config-field/PaymentConfigField.mixin.d.ts +1 -0
  209. package/lib/src/shared/content-settings/components/text-items-field/TextItemsField.mixin.js +8 -4
  210. package/lib/src/shared/content-settings/components/text-style-field/TextStyleField.mixin.d.ts +1255 -26
  211. package/lib/src/shared/content-settings/components/text-style-field/TextStyleField.mixin.js +203 -59
  212. package/lib/src/shared/content-settings/store/content-settings-store.d.ts +6 -0
  213. package/lib/src/shared/content-settings/store/content-settings-store.js +105 -8
  214. package/lib/src/shared/logo-settings/components/LogoSettings.mixin.d.ts +5 -1
  215. package/lib/src/shared/navigation-style-settings/store/index.d.ts +7 -3
  216. package/lib/src/shared/navigation-style-settings/store/index.js +40 -15
  217. package/lib/src/shared/page-settings/components/delete-page-modal/DeletePageModal.mixin.d.ts +1 -1
  218. package/lib/src/shared/page-settings/components/new-page-modal/NewPageModal.mixin.d.ts +1 -0
  219. package/lib/src/shared/page-settings/components/page-settings/PageSettings.mixin.d.ts +17 -5
  220. package/lib/src/shared/page-settings/components/page-settings-section-styles/PageSettingsSectionStyles.mixin.d.ts +70 -13
  221. package/lib/src/shared/page-settings/components/page-settings-section-styles/PageSettingsSectionStyles.mixin.js +10 -2
  222. package/lib/src/shared/page-settings/store/page-settings-store.d.ts +2 -1
  223. package/lib/src/shared/page-settings/store/page-settings-store.js +17 -0
  224. package/lib/src/shared/publish-brand-page-with-state/PublishBrandPageModalWithState.mixin.d.ts +4 -1
  225. package/lib/src/shared/rte-extensions/AutoLink.d.ts +17 -0
  226. package/lib/src/{brand-page-maker/composables/rich-text-editor/extensions → shared/rte-extensions}/AutoLink.js +67 -51
  227. package/lib/src/{brand-page-maker/composables/rich-text-editor/extensions → shared/rte-extensions}/MaxLength.js +4 -1
  228. package/lib/src/shared/rte-extensions/TextEffects.d.ts +28 -0
  229. package/lib/src/shared/rte-extensions/TextEffects.js +96 -0
  230. package/lib/src/shared/rte-extensions/ViewDomParser.d.ts +2 -0
  231. package/lib/src/shared/rte-extensions/ViewDomParser.js +21 -0
  232. package/lib/src/shared/rte-extensions.util.d.ts +25 -0
  233. package/lib/src/{brand-page-maker/composables/rich-text-editor/getRteExtensions.js → shared/rte-extensions.util.js} +62 -7
  234. package/lib/src/shared/rte-link.util.d.ts +1 -0
  235. package/lib/src/shared/rte-link.util.js +1 -0
  236. package/lib/src/shared/rte-render.util.d.ts +112 -0
  237. package/lib/src/shared/rte-render.util.js +255 -0
  238. package/lib/src/shared/rte-shape.util.d.ts +6 -0
  239. package/lib/src/shared/rte-shape.util.js +18 -0
  240. package/lib/src/shared/side-bar/components/SideBar.mixin.d.ts +2 -1
  241. package/lib/src/shared/side-bar/components/SideBarTabButton.mixin.d.ts +1 -0
  242. package/lib/src/shared/side-bar/store/side-bar-store.d.ts +2 -0
  243. package/lib/src/shared/side-bar/store/side-bar-store.js +9 -0
  244. package/lib/src/shared/style-settings/components/StyleSettings.mixin.d.ts +155 -15
  245. package/lib/src/shared/style-settings/components/StyleSettings.mixin.js +7 -1
  246. package/lib/src/shared/style-settings/store/style-settings-store.d.ts +1 -9
  247. package/lib/src/shared/style-settings/store/style-settings-store.js +3 -33
  248. package/lib/src/shared/style-settings/text-style-size-order.d.ts +2 -0
  249. package/lib/src/shared/style-settings/text-style-size-order.js +13 -0
  250. package/lib/src/shared/text-role-typography.util.d.ts +64 -0
  251. package/lib/src/shared/text-role-typography.util.js +183 -0
  252. package/lib/src/utils/minify-brand-page-metadata.d.ts +16 -1
  253. package/lib/src/utils/minify-brand-page-metadata.js +31 -9
  254. package/package.json +1 -1
  255. package/src/brand-page/__fixtures__/migration-22-v21/edited-brandsite-sections.v21.json +982 -0
  256. package/src/brand-page/__fixtures__/migration-22-v21/new-brandcontact-every-section.v21.json +1231 -0
  257. package/src/brand-page/__fixtures__/migration-22-v21/new-brandpage-every-section.v21.json +1231 -0
  258. package/src/brand-page/__fixtures__/migration-22-v21/new-brandsite-every-section.v21.json +1243 -0
  259. package/src/brand-page/__fixtures__/migration-22-v21/real-brandcontact.v21.json +755 -0
  260. package/src/brand-page/__fixtures__/migration-22-v21/real-brandpage-general-link.v21.json +527 -0
  261. package/src/brand-page/__fixtures__/migration-22-v21/real-brandpage-links.v21.json +755 -0
  262. package/src/brand-page/__fixtures__/migration-22-v21/real-brandpage-social-links.v21.json +514 -0
  263. package/src/brand-page/__fixtures__/migration-22-v21/real-brandsite-about.v21.json +459 -0
  264. package/src/brand-page/__fixtures__/migration-22-v21/real-brandsite-footer.v21.json +469 -0
  265. package/src/brand-page/__fixtures__/migration-22-v21/real-brandsite-header-banner.v21.json +481 -0
  266. package/src/brand-page/__fixtures__/migration-22-v21/real-brandsite-sections.v21.json +800 -0
  267. package/src/brand-page/__fixtures__/production-text-style-resolver.fixture.ts +52 -0
  268. package/src/brand-page/components/about-section/AboutSection.vue.test.ts +0 -10
  269. package/src/brand-page/components/contact-form/ContactForm.mixin.test.ts +127 -0
  270. package/src/brand-page/components/contact-form/ContactForm.mixin.ts +31 -14
  271. package/src/brand-page/components/contact-form/ContactForm.vue +26 -12
  272. package/src/brand-page/components/contact-form/ContactForm.vue.test.ts +60 -0
  273. package/src/brand-page/components/mailing-list/MailingList.mixin.test.ts +92 -0
  274. package/src/brand-page/components/mailing-list/MailingList.mixin.ts +28 -3
  275. package/src/brand-page/components/mailing-list/MailingList.vue +9 -4
  276. package/src/brand-page/components/mailing-list/MailingList.vue.test.ts +63 -0
  277. package/src/brand-page/components/navigation/button-carousel/ButtonCarouselNavigation.mixin.ts +51 -1
  278. package/src/brand-page/components/navigation/button-carousel/ButtonCarouselNavigation.test.ts +114 -0
  279. package/src/brand-page/components/navigation/button-carousel/ButtonCarouselNavigation.vue +8 -2
  280. package/src/brand-page/components/navigation/navigation-carousel/NavigationCarousel.test.ts +182 -0
  281. package/src/brand-page/components/navigation/navigation-carousel/NavigationCarousel.vue +59 -12
  282. package/src/brand-page/components/navigation/navigation-side-menu/NavigationSideMenu.mixin.ts +40 -3
  283. package/src/brand-page/components/navigation/navigation-side-menu/NavigationSideMenu.vue +15 -7
  284. package/src/brand-page/components/navigation/navigation-side-menu/NavigationSideMenu.vue.test.ts +133 -3
  285. package/src/brand-page/components/page/Page.mixin.ts +41 -34
  286. package/src/brand-page/components/page/Page.vue +17 -6
  287. package/src/brand-page/components/page/Page.vue.test.ts +91 -1
  288. package/src/brand-page/components/page-footer/PageFooter.mixin.ts +32 -2
  289. package/src/brand-page/components/page-footer/PageFooter.test.ts +79 -0
  290. package/src/brand-page/components/page-footer/PageFooter.vue +12 -4
  291. package/src/brand-page/components/payment/Payment.mixin.ts +34 -2
  292. package/src/brand-page/components/payment/Payment.test.ts +188 -0
  293. package/src/brand-page/components/payment/Payment.vue +12 -5
  294. package/src/brand-page/components/payment/RequestPaymentStripe.vue +1 -0
  295. package/src/brand-page/components/payment/support-me/SupportMe.mixin.ts +49 -2
  296. package/src/brand-page/components/payment/support-me/SupportMe.test.ts +100 -0
  297. package/src/brand-page/components/payment/support-me/SupportMe.vue +7 -1
  298. package/src/brand-page/components/payment/support-me/SupportMe.vue.test.ts +66 -0
  299. package/src/brand-page/components/save-contact/SaveContactWidget.test.ts +100 -0
  300. package/src/brand-page/components/save-contact/SaveContactWidget.vue +6 -3
  301. package/src/brand-page/components/shop/PaymentModal.vue +2 -6
  302. package/src/brand-page/components/shop/PaymentShippingAddress.vue +6 -0
  303. package/src/brand-page/components/shop/Shop.vue +15 -2
  304. package/src/brand-page/components/shop/Shop.vue.test.ts +74 -2
  305. package/src/brand-page/components/social-links/SocialLinks.stories.ts +0 -3
  306. package/src/brand-page/components/social-links/SocialLinks.vue.test.ts +0 -3
  307. package/src/brand-page/components/testimonial-section/__fixtures__/data.ts +0 -3
  308. package/src/brand-page/components/text/Text.stories.ts +0 -17
  309. package/src/brand-page/components/text-wrapper/TextWrapper.parity.test.ts +136 -0
  310. package/src/brand-page/components/text-wrapper/TextWrapper.test.ts +358 -0
  311. package/src/brand-page/components/text-wrapper/TextWrapper.vue +82 -22
  312. package/src/brand-page/constants/font.constants.ts +37 -0
  313. package/src/brand-page/models/footer-icon-color.test.ts +22 -0
  314. package/src/brand-page/models/index.ts +50 -28
  315. package/src/brand-page/models/navigation-styles.model.test.ts +77 -1
  316. package/src/brand-page/models/navigation-styles.model.ts +26 -9
  317. package/src/brand-page/models/payment.model.ts +15 -6
  318. package/src/brand-page/models/styles.model.test.ts +104 -0
  319. package/src/brand-page/models/styles.model.ts +181 -47
  320. package/src/brand-page/utils/__snapshots__/migration.util.test.ts.snap +619 -115
  321. package/src/brand-page/utils/__snapshots__/migration2.util.test.ts.snap +150 -9
  322. package/src/brand-page/utils/__snapshots__/model.util.test.ts.snap +300 -18
  323. package/src/brand-page/utils/color-palette.util.test.ts +126 -1
  324. package/src/brand-page/utils/color-palette.util.ts +92 -26
  325. package/src/brand-page/utils/color.util.test.ts +62 -29
  326. package/src/brand-page/utils/color.util.ts +77 -14
  327. package/src/brand-page/utils/container-text-color.util.test.ts +672 -26
  328. package/src/brand-page/utils/container-text-color.util.ts +472 -46
  329. package/src/brand-page/utils/index.ts +1 -0
  330. package/src/brand-page/utils/migration/__snapshots__/migration-22-output/edited-brandsite-sections.v22.json +1191 -0
  331. package/src/brand-page/utils/migration/__snapshots__/migration-22-output/new-brandcontact-every-section.v22.json +2026 -0
  332. package/src/brand-page/utils/migration/__snapshots__/migration-22-output/new-brandpage-every-section.v22.json +2017 -0
  333. package/src/brand-page/utils/migration/__snapshots__/migration-22-output/new-brandsite-every-section.v22.json +2031 -0
  334. package/src/brand-page/utils/migration/__snapshots__/migration-22-output/real-brandcontact.v22.json +1145 -0
  335. package/src/brand-page/utils/migration/__snapshots__/migration-22-output/real-brandpage-general-link.v22.json +645 -0
  336. package/src/brand-page/utils/migration/__snapshots__/migration-22-output/real-brandpage-links.v22.json +1136 -0
  337. package/src/brand-page/utils/migration/__snapshots__/migration-22-output/real-brandpage-social-links.v22.json +662 -0
  338. package/src/brand-page/utils/migration/__snapshots__/migration-22-output/real-brandsite-about.v22.json +638 -0
  339. package/src/brand-page/utils/migration/__snapshots__/migration-22-output/real-brandsite-footer.v22.json +610 -0
  340. package/src/brand-page/utils/migration/__snapshots__/migration-22-output/real-brandsite-header-banner.v22.json +660 -0
  341. package/src/brand-page/utils/migration/__snapshots__/migration-22-output/real-brandsite-sections.v22.json +1132 -0
  342. package/src/brand-page/utils/migration/migration-01.ts +293 -237
  343. package/src/brand-page/utils/migration/migration-02.ts +8 -1
  344. package/src/brand-page/utils/migration/migration-20.ts +6 -3
  345. package/src/brand-page/utils/migration/migration-20_5.test.ts +5 -2
  346. package/src/brand-page/utils/migration/migration-21.test.ts +34 -0
  347. package/src/brand-page/utils/migration/migration-21.ts +46 -10
  348. package/src/brand-page/utils/migration/migration-22.fixed-input.test.ts +43 -0
  349. package/src/brand-page/utils/migration/migration-22.test.ts +4103 -0
  350. package/src/brand-page/utils/migration/migration-22.text-font-family.test.ts +72 -0
  351. package/src/brand-page/utils/migration/migration-22.ts +1336 -0
  352. package/src/brand-page/utils/migration.util.test.ts +146 -32
  353. package/src/brand-page/utils/migration.util.ts +18 -0
  354. package/src/brand-page/utils/model.util.ts +4 -0
  355. package/src/brand-page/utils/personalisation.util.test.ts +148 -3
  356. package/src/brand-page/utils/personalisation.util.ts +9 -1
  357. package/src/brand-page/utils/rte-role-lift.util.ts +409 -0
  358. package/src/brand-page/utils/style.util.test.ts +35 -2
  359. package/src/brand-page/utils/style.util.ts +45 -11
  360. package/src/brand-page/utils/text-role-css.util.test.ts +525 -0
  361. package/src/brand-page/utils/text-role-css.util.ts +321 -0
  362. package/src/brand-page/utils/text-role-reconnect.util.test.ts +604 -0
  363. package/src/brand-page/utils/text-role-reconnect.util.ts +727 -0
  364. package/src/brand-page/utils/text-style.util.test.ts +305 -0
  365. package/src/brand-page/utils/text-style.util.ts +198 -24
  366. package/src/brand-page/utils/view-model.page-data.test.ts +232 -0
  367. package/src/brand-page/utils/view-model.util.test.ts +954 -133
  368. package/src/brand-page/utils/view-model.util.ts +187 -139
  369. package/src/brand-page/view-models.ts +4 -0
  370. package/src/brand-page-maker/components/brand-page-maker/BrandPageMaker.blank-site.test.ts +57 -0
  371. package/src/brand-page-maker/components/brand-page-maker/BrandPageMaker.mixin.ts +9 -5
  372. package/src/brand-page-maker/components/brand-page-maker/__fixtures__/brand-page-examples.ts +0 -10
  373. package/src/brand-page-maker/components/brand-page-maker/__fixtures__/content-settings-items.fixture.ts +0 -1
  374. package/src/brand-page-maker/components/brandpage-maker-page/BrandPageMakerPage.mixin.ts +0 -44
  375. package/src/brand-page-maker/components/rich-text-editor/RichTextEditor.vue +253 -200
  376. package/src/brand-page-maker/components/shop/AddOrEditProductContainer.vue +1 -0
  377. package/src/brand-page-maker/components/template-preview/TemplatePreview.vue +1 -0
  378. package/src/brand-page-maker/composables/ai-chat/useAiMetadataBuilder.ts +2 -0
  379. package/src/brand-page-maker/composables/ai-chat/useAiWebsiteBuilderChat.ts +1 -0
  380. package/src/brand-page-maker/composables/rich-text-editor/block-typography.test.ts +519 -0
  381. package/src/brand-page-maker/composables/rich-text-editor/extensions/FontFamily.test.ts +1 -1
  382. package/src/brand-page-maker/composables/rich-text-editor/extensions/MaxLength.test.ts +26 -1
  383. package/src/brand-page-maker/composables/rich-text-editor/extensions/RoleTypographyFill.test.ts +110 -0
  384. package/src/brand-page-maker/composables/rich-text-editor/extensions/RoleTypographyFill.ts +99 -0
  385. package/src/brand-page-maker/composables/rich-text-editor/extensions/RteClipboard.ts +397 -0
  386. package/src/brand-page-maker/composables/rich-text-editor/extensions/ViewDomParser.test.ts +139 -0
  387. package/src/brand-page-maker/composables/rich-text-editor/font.ts +36 -5
  388. package/src/brand-page-maker/composables/rich-text-editor/formatting.test.ts +375 -1
  389. package/src/brand-page-maker/composables/rich-text-editor/formatting.ts +301 -17
  390. package/src/brand-page-maker/composables/rich-text-editor/hyperlink.test.ts +82 -1
  391. package/src/brand-page-maker/composables/rich-text-editor/hyperlink.ts +28 -34
  392. package/src/brand-page-maker/composables/rich-text-editor/keepMarksOnEmpty.test.ts +80 -0
  393. package/src/brand-page-maker/composables/rich-text-editor/keepMarksOnEmpty.ts +75 -0
  394. package/src/brand-page-maker/composables/rich-text-editor/spacing.ts +31 -6
  395. package/src/brand-page-maker/composables/rich-text-editor/useRichTextEditor.test.ts +2485 -0
  396. package/src/brand-page-maker/composables/rich-text-editor/useRichTextEditor.ts +435 -337
  397. package/src/brand-page-maker/constants/config-settings-constant.ts +0 -6
  398. package/src/brand-page-maker/convertors/text-css-style-options.convertor.test.ts +43 -0
  399. package/src/brand-page-maker/convertors/text-css-style-options.convertor.ts +6 -2
  400. package/src/brand-page-maker/convertors/text-size-value.convertor.test.ts +24 -0
  401. package/src/brand-page-maker/convertors/text-size-value.convertor.ts +17 -13
  402. package/src/brand-page-maker/default-getters/payment-text-and-border-color.default-getter.ts +7 -22
  403. package/src/brand-page-maker/default-getters/text-color.default-getter.ts +5 -21
  404. package/src/brand-page-maker/models/content-settings.test.ts +708 -0
  405. package/src/brand-page-maker/models/content-settings.ts +133 -82
  406. package/src/brand-page-maker/stores/admin-logo-settings/admin-logo-settings-store-utils.test.ts +63 -1
  407. package/src/brand-page-maker/stores/admin-logo-settings/admin-logo-settings-store-utils.ts +16 -3
  408. package/src/brand-page-maker/stores/admin-logo-settings/admin-logo-settings-store.test.ts +34 -0
  409. package/src/brand-page-maker/stores/admin-logo-settings/admin-logo-settings-store.ts +4 -2
  410. package/src/brand-page-maker/stores/brandpage-maker/brandpage-maker-store.test.ts +185 -1
  411. package/src/brand-page-maker/stores/brandpage-maker/brandpage-maker-store.ts +22 -34
  412. package/src/brand-page-maker/stores/history/history-store.ts +35 -2
  413. package/src/brand-page-maker/utils/__snapshots__/apply-color-strategy.golden.test.ts.snap +528 -0
  414. package/src/brand-page-maker/utils/__snapshots__/rte-render-parity.test.ts.snap +12 -0
  415. package/src/brand-page-maker/utils/apply-color-strategy.golden.test.ts +2 -0
  416. package/src/brand-page-maker/utils/apply-color-strategy.test.ts +181 -3
  417. package/src/brand-page-maker/utils/apply-color-strategy.ts +36 -4
  418. package/src/brand-page-maker/utils/index.ts +2 -1
  419. package/src/brand-page-maker/utils/rich-text-editor.util.test.ts +447 -410
  420. package/src/brand-page-maker/utils/rich-text-editor.util.ts +610 -506
  421. package/src/brand-page-maker/utils/rte-authoring.util.test.ts +244 -0
  422. package/src/brand-page-maker/utils/rte-authoring.util.ts +175 -0
  423. package/src/brand-page-maker/utils/rte-clipboard.util.test.ts +558 -0
  424. package/src/brand-page-maker/utils/rte-clipboard.util.ts +473 -0
  425. package/src/brand-page-maker/utils/rte-features.test.ts +99 -3
  426. package/src/brand-page-maker/utils/rte-render-parity.test.ts +1 -1
  427. package/src/brand-page-maker/utils/rte-render.util.test.ts +230 -0
  428. package/src/brand-page-maker/utils/rte-sanitize-json.test.ts +1 -1
  429. package/src/brand-page-maker/utils/rte-sanitize.util.ts +14 -3
  430. package/src/brand-page-maker/utils/rte-schema-version.test.ts +102 -0
  431. package/src/bundles/bundled-translations.de-DE.json +21 -2
  432. package/src/bundles/bundled-translations.es-ES.json +21 -2
  433. package/src/bundles/bundled-translations.fr-CA.json +21 -2
  434. package/src/bundles/bundled-translations.fr-FR.json +21 -2
  435. package/src/bundles/bundled-translations.json +21 -2
  436. package/src/bundles/bundled-translations.pt-BR.json +21 -2
  437. package/src/bundles/bundled-translations.pt-PT.json +21 -2
  438. package/src/clients/ai-assistant-client.ts +1 -0
  439. package/src/composables/useTranslate.ts +2 -1
  440. package/src/lib.ts +2 -2
  441. package/src/metadata-builder/builders/footer-builder.test.ts +70 -45
  442. package/src/metadata-builder/builders/footer-builder.ts +4 -8
  443. package/src/metadata-builder/builders/global-role-propagation.test.ts +907 -0
  444. package/src/metadata-builder/builders/global-role-propagation.ts +430 -0
  445. package/src/metadata-builder/builders/global-styles-builder.test.ts +1020 -0
  446. package/src/metadata-builder/builders/global-styles-builder.ts +194 -48
  447. package/src/metadata-builder/builders/header-builder.test.ts +112 -40
  448. package/src/metadata-builder/builders/header-builder.ts +18 -8
  449. package/src/metadata-builder/builders/section-builders/about-section-builder.ts +5 -3
  450. package/src/metadata-builder/builders/section-builders/banner-section-builder.ts +5 -3
  451. package/src/metadata-builder/builders/section-builders/booking-section-builder.ts +5 -3
  452. package/src/metadata-builder/builders/section-builders/contact-form-builder.ts +7 -4
  453. package/src/metadata-builder/builders/section-builders/images-section-builder.ts +5 -3
  454. package/src/metadata-builder/builders/section-builders/mailing-list-builder.ts +3 -2
  455. package/src/metadata-builder/builders/section-builders/mailing-list-section-builder.ts +3 -2
  456. package/src/metadata-builder/builders/section-builders/profile-section-builder.ts +7 -7
  457. package/src/metadata-builder/builders/section-builders/shapes-section-builder.ts +5 -3
  458. package/src/metadata-builder/builders/section-builders/social-links-builder.test.ts +2 -2
  459. package/src/metadata-builder/builders/section-builders/social-links-builder.ts +21 -10
  460. package/src/metadata-builder/builders/section-builders/support-me-builder.test.ts +10 -0
  461. package/src/metadata-builder/builders/section-builders/testimonial-section-builder.ts +3 -2
  462. package/src/metadata-builder/builders/section-builders/text-section-builder.ts +111 -61
  463. package/src/metadata-builder/builders/section-field-maps.ts +1 -0
  464. package/src/metadata-builder/builders/section-field-utils.test.ts +545 -2
  465. package/src/metadata-builder/builders/section-field-utils.ts +202 -69
  466. package/src/metadata-builder/builders/section-rules/global-styles.rules.ts +38 -13
  467. package/src/metadata-builder/builders/section-rules/social-links.rules.ts +5 -0
  468. package/src/metadata-builder/helpers/rte.helpers.test.ts +101 -0
  469. package/src/metadata-builder/helpers/rte.helpers.ts +129 -43
  470. package/src/metadata-builder/metadata-executor.test.ts +167 -0
  471. package/src/metadata-builder/metadata-executor.ts +34 -1
  472. package/src/metadata-builder/models.ts +2 -0
  473. package/src/metadata-builder/parsers/ai-toolcall-parser.ts +23 -7
  474. package/src/metadata-builder/parsers/section-tool-arguments.ts +21 -1
  475. package/src/metadata-builder/sanitizers/__tests__/section-args-validator.test.ts +215 -0
  476. package/src/metadata-builder/sanitizers/rte-schema-check.ts +1 -1
  477. package/src/metadata-builder/sanitizers/sanitizer-rules.ts +4 -8
  478. package/src/metadata-builder/sanitizers/section-args-validator.ts +136 -53
  479. package/src/shared/color-palette/section-color-matches.test.ts +15 -11
  480. package/src/shared/color-palette/section-color-matches.ts +9 -28
  481. package/src/shared/color-strategies/color-strategies.ts +35 -0
  482. package/src/shared/color-strategies/rte-color.test.ts +1 -1
  483. package/src/shared/color-strategies/rte-color.ts +19 -0
  484. package/src/shared/color-strategies/rte-field-pairs.test.ts +26 -5
  485. package/src/shared/color-strategies/rte-field-pairs.ts +33 -0
  486. package/src/shared/content-settings/components/color-matches-panel/ColorMatchesPanel.test.ts +43 -66
  487. package/src/shared/content-settings/components/color-matches-panel/ColorMatchesPanel.vue +7 -1
  488. package/src/shared/content-settings/components/content-settings/ContentSettings.mixin.ts +1 -48
  489. package/src/shared/content-settings/components/content-settings-item/ContentSettingsItemField.mixin.ts +33 -7
  490. package/src/shared/content-settings/components/content-settings-item/ContentSettingsItemField.test.ts +128 -1
  491. package/src/shared/content-settings/components/draggable-item-list/DraggableItemList.vue +1 -0
  492. package/src/shared/content-settings/components/focused-content-item-settings/FocusedContentItemSettings.mixin.ts +0 -6
  493. package/src/shared/content-settings/components/logo-selection-field/LogoSelection.vue +3 -0
  494. package/src/shared/content-settings/components/logo-size-field/LogoSizeSlider.vue +3 -0
  495. package/src/shared/content-settings/components/logo-size-field/LogoSizeSliderField.vue +1 -0
  496. package/src/shared/content-settings/components/testimonial-items-field/TestimonialItemsField.vue +1 -0
  497. package/src/shared/content-settings/components/text-items-field/TextItemsField.mixin.test.ts +56 -3
  498. package/src/shared/content-settings/components/text-items-field/TextItemsField.mixin.ts +11 -4
  499. package/src/shared/content-settings/components/text-style-field/TextStyleField.mixin.test.ts +335 -25
  500. package/src/shared/content-settings/components/text-style-field/TextStyleField.mixin.ts +248 -70
  501. package/src/shared/content-settings/components/text-style-field/TextStyleField.vue +113 -25
  502. package/src/shared/content-settings/components/text-style-field/i18n/text-style-field.de-DE.json +17 -10
  503. package/src/shared/content-settings/components/text-style-field/i18n/text-style-field.es-ES.json +17 -10
  504. package/src/shared/content-settings/components/text-style-field/i18n/text-style-field.fr-CA.json +17 -10
  505. package/src/shared/content-settings/components/text-style-field/i18n/text-style-field.fr-FR.json +17 -10
  506. package/src/shared/content-settings/components/text-style-field/i18n/text-style-field.json +8 -1
  507. package/src/shared/content-settings/components/text-style-field/i18n/text-style-field.pt-BR.json +17 -10
  508. package/src/shared/content-settings/components/text-style-field/i18n/text-style-field.pt-PT.json +17 -10
  509. package/src/shared/content-settings/components/text-style-role-dropdown/TextStyleRoleDropdown.test.ts +141 -0
  510. package/src/shared/content-settings/components/text-style-role-dropdown/TextStyleRoleDropdown.vue +136 -0
  511. package/src/shared/content-settings/store/content-settings-store.test.ts +491 -6
  512. package/src/shared/content-settings/store/content-settings-store.ts +159 -17
  513. package/src/shared/logo-settings/components/EditLogoSettings.vue +1 -0
  514. package/src/shared/logo-settings/components/LogoVariations.vue +1 -0
  515. package/src/shared/navigation-style-settings/components/navigation-style-settings/NavigationStyleSettings.vue +1 -0
  516. package/src/shared/navigation-style-settings/store/index.test.ts +295 -0
  517. package/src/shared/navigation-style-settings/store/index.ts +65 -15
  518. package/src/shared/page-settings/components/header-settings-panel/HeaderSettingsPanel.vue +2 -0
  519. package/src/shared/page-settings/components/page-settings/PageElement.vue +1 -0
  520. package/src/shared/page-settings/components/page-settings-section-styles/HeaderButtonSettings.test.ts +44 -4
  521. package/src/shared/page-settings/components/page-settings-section-styles/HeaderButtonSettings.vue +13 -4
  522. package/src/shared/page-settings/components/page-settings-section-styles/PageSettingsSectionStyles.mixin.navigation.test.ts +89 -0
  523. package/src/shared/page-settings/components/page-settings-section-styles/PageSettingsSectionStyles.mixin.text-style.test.ts +91 -0
  524. package/src/shared/page-settings/components/page-settings-section-styles/PageSettingsSectionStyles.mixin.ts +14 -2
  525. package/src/shared/page-settings/components/page-settings-section-styles/PageSettingsSectionStyles.vue +2 -0
  526. package/src/shared/page-settings/store/page-settings-store.text-style.test.ts +84 -0
  527. package/src/shared/page-settings/store/page-settings-store.ts +30 -1
  528. package/src/shared/rte-extensions/AutoLink.test.ts +98 -0
  529. package/src/{brand-page-maker/composables/rich-text-editor/extensions → shared/rte-extensions}/AutoLink.ts +87 -58
  530. package/src/{brand-page-maker/composables/rich-text-editor/extensions → shared/rte-extensions}/MaxLength.ts +4 -1
  531. package/src/shared/rte-extensions/TextEffects.ts +151 -0
  532. package/src/shared/rte-extensions/ViewDomParser.ts +27 -0
  533. package/src/{brand-page-maker/composables/rich-text-editor/getRteExtensions.ts → shared/rte-extensions.util.ts} +66 -9
  534. package/src/shared/rte-link.util.ts +2 -0
  535. package/src/shared/rte-render.util.ts +385 -0
  536. package/src/shared/rte-shape.util.ts +29 -0
  537. package/src/shared/side-bar/store/side-bar-store.test.ts +27 -1
  538. package/src/shared/side-bar/store/side-bar-store.ts +11 -0
  539. package/src/shared/style-settings/components/StyleSettings.mixin.ts +7 -3
  540. package/src/shared/style-settings/components/StyleSettings.test.ts +116 -0
  541. package/src/shared/style-settings/components/StyleSettings.vue +75 -25
  542. package/src/shared/style-settings/components/i18n/style-settings.de-DE.json +32 -20
  543. package/src/shared/style-settings/components/i18n/style-settings.es-ES.json +32 -20
  544. package/src/shared/style-settings/components/i18n/style-settings.fr-CA.json +32 -20
  545. package/src/shared/style-settings/components/i18n/style-settings.fr-FR.json +32 -20
  546. package/src/shared/style-settings/components/i18n/style-settings.json +13 -3
  547. package/src/shared/style-settings/components/i18n/style-settings.pt-BR.json +32 -20
  548. package/src/shared/style-settings/components/i18n/style-settings.pt-PT.json +32 -20
  549. package/src/shared/style-settings/components/text-style-options-settings-with-state/TextStyleOptionsSettingsWithState.vue +14 -34
  550. package/src/shared/style-settings/store/style-settings-store.ts +3 -49
  551. package/src/shared/style-settings/text-style-size-order.test.ts +76 -0
  552. package/src/shared/style-settings/text-style-size-order.ts +28 -0
  553. package/src/shared/template-settings/components/TemplatesSettings.vue +4 -0
  554. package/src/shared/text-role-typography.util.ts +277 -0
  555. package/src/utils/minify-brand-page-metadata.test.ts +102 -7
  556. package/src/utils/minify-brand-page-metadata.ts +62 -8
  557. package/lib/src/brand-page-maker/composables/rich-text-editor/extensions/AutoLink.d.ts +0 -2
  558. package/lib/src/brand-page-maker/composables/rich-text-editor/getRteExtensions.d.ts +0 -28
  559. package/lib/src/brand-page-maker/utils/rte-render.util.d.ts +0 -63
  560. package/lib/src/brand-page-maker/utils/rte-render.util.js +0 -106
  561. package/lib/src/brand-page-maker/utils/rte-shape.d.ts +0 -18
  562. package/lib/src/brand-page-maker/utils/rte-shape.js +0 -21
  563. package/lib/src/metadata-builder/builders/global-font-propagation.d.ts +0 -41
  564. package/lib/src/metadata-builder/builders/global-font-propagation.js +0 -146
  565. package/src/brand-page-maker/utils/rte-render.util.ts +0 -179
  566. package/src/brand-page-maker/utils/rte-shape.ts +0 -29
  567. package/src/metadata-builder/builders/global-font-propagation.test.ts +0 -401
  568. package/src/metadata-builder/builders/global-font-propagation.ts +0 -238
  569. package/src/shared/style-settings/components/StyleSettingsSection.vue +0 -8
  570. /package/lib/src/{brand-page-maker/composables/rich-text-editor/extensions → shared/rte-extensions}/FontFamily.d.ts +0 -0
  571. /package/lib/src/{brand-page-maker/composables/rich-text-editor/extensions → shared/rte-extensions}/FontFamily.js +0 -0
  572. /package/lib/src/{brand-page-maker/composables/rich-text-editor/extensions → shared/rte-extensions}/LetterSpacing.d.ts +0 -0
  573. /package/lib/src/{brand-page-maker/composables/rich-text-editor/extensions → shared/rte-extensions}/LetterSpacing.js +0 -0
  574. /package/lib/src/{brand-page-maker/composables/rich-text-editor/extensions → shared/rte-extensions}/MaxLength.d.ts +0 -0
  575. /package/src/{brand-page-maker/composables/rich-text-editor/extensions → shared/rte-extensions}/FontFamily.ts +0 -0
  576. /package/src/{brand-page-maker/composables/rich-text-editor/extensions → shared/rte-extensions}/LetterSpacing.ts +0 -0
@@ -1,10 +1,12 @@
1
1
  import { NavigationDesktop, NavigationMobile, VIEWPORTS } from '@brand-page';
2
2
  import { NAVIGATION_DISPLAY, DEFAULT_TEXT_ALIGN, getDefaultSubNavBackgroundColor, } from '@brand-page';
3
3
  import { getNavThemeByTextStyle } from '@brand-page/utils/color.util';
4
+ import { isCanonicalTextStyleType } from '@brand-page/utils/text-role-reconnect.util';
5
+ import { normalizeTextStyleAgainstRole, omitTypography, pickTypography, } from '@brand-page/utils/text-style.util';
4
6
  import { availableNavigationStyleConfigs, navigationStyleTypeConfigs, } from '@brand-page-maker/models/navigation-style-configs';
5
7
  import { assertUnreachable } from '../../../helpers/ts.helper';
6
8
  import { defineStore } from 'pinia';
7
- import { useUiStyleSettingsStore } from '../../style-settings/store';
9
+ import cloneDeep from 'lodash.clonedeep';
8
10
  import { useUiColorPaletteStore } from '../../color-palette/store';
9
11
  import { PAGE_SECTIONS } from '../../page-settings/models';
10
12
  export const createDefaultContentItemState = () => ({
@@ -34,18 +36,25 @@ export const useUiNavigationStyleSettingsStore = defineStore('uiNavigationStyleS
34
36
  this.navigationStyleTypeConfigs = navigationStyleTypeConfigs;
35
37
  },
36
38
  setState({ newState, }) {
37
- this.$patch(Object.assign(newState));
39
+ // Replace each navigation whole: an object-form $patch deep-merges, so a key the new
40
+ // navigation leaves out (a role-linked link's typography) would survive from the old state.
41
+ this.$patch((state) => {
42
+ state.navigation[PAGE_SECTIONS.header] = cloneDeep(newState.navigation[PAGE_SECTIONS.header]);
43
+ });
38
44
  },
39
45
  setNavigationOrder({ section, renderAfterLogo, viewport, }) {
40
46
  this.navigation[section][viewport].renderAfterLogo = renderAfterLogo;
41
47
  },
42
- _setDefaultButtonStyle({ displayType, section, style, viewport, }) {
48
+ _setDefaultButtonStyle({ displayType, section, style, viewport, ownsTypography = false, }) {
49
+ // A text-style write carries the whole typography, so a prop it leaves out (a Reset, a
50
+ // role pick) must not survive from the old style and keep overriding the role.
51
+ const base = (current) => ownsTypography ? omitTypography(current) : current;
43
52
  if (displayType.includes('hamburger')) {
44
- this.navigation[section][viewport].hamburgerMenuStyle.defaultButtonStyle = Object.assign({}, this.navigation[section][viewport].hamburgerMenuStyle
45
- .defaultButtonStyle, style);
53
+ this.navigation[section][viewport].hamburgerMenuStyle.defaultButtonStyle = Object.assign({}, base(this.navigation[section][viewport].hamburgerMenuStyle
54
+ .defaultButtonStyle), style);
46
55
  return;
47
56
  }
48
- this.navigation[section][viewport].defaultButtonStyle = Object.assign({}, this.navigation[section][viewport].defaultButtonStyle, style);
57
+ this.navigation[section][viewport].defaultButtonStyle = Object.assign({}, base(this.navigation[section][viewport].defaultButtonStyle), style);
49
58
  },
50
59
  _setSelectedButtonStyle({ displayType, section, style, viewport, }) {
51
60
  if (displayType !== NAVIGATION_DISPLAY.TAB_1 &&
@@ -78,25 +87,30 @@ export const useUiNavigationStyleSettingsStore = defineStore('uiNavigationStyleS
78
87
  defaultButtonStyle;
79
88
  this.navigation[section][viewport].iconStyle = iconStyle;
80
89
  },
81
- setDisplayType({ section, displayType, viewport, }) {
82
- const uiStyleStore = useUiStyleSettingsStore();
90
+ setDisplayType({ section, displayType, viewport, headerBackgroundColor, pageBackgroundColor, }) {
83
91
  const paletteStore = useUiColorPaletteStore();
84
92
  this.navigation[section][viewport].displayType = displayType;
85
- const currentTextStyleType = this.navigation[section][viewport].defaultButtonStyle.textStyleType;
93
+ const currentStyle = this.navigation[section][viewport].defaultButtonStyle;
94
+ const currentTextStyleType = currentStyle.textStyleType;
86
95
  const config = this.availableNavigationStyleConfigs.find((c) => c.displayType === displayType);
87
96
  if (!config) {
88
97
  throw new Error('No config for display type');
89
98
  }
90
- // Nav theme derives from the paragraphs text-style colour; the contrasting
91
- // selected-text role is resolved against the live palette.
92
- const theme = getNavThemeByTextStyle({
93
- color: uiStyleStore.textStyles.textStyleOptions.paragraphs?.style?.color,
94
- }, paletteStore.colors);
99
+ // BP-5969 (ADR-0022): the header nav themes off the LOGO, not the page's button
100
+ // styling — `getNavThemeByTextStyle` picks the first brand role legible on the header
101
+ // background (logo text, else logo background, else a neutral) and its contrasting pair.
102
+ const theme = getNavThemeByTextStyle(headerBackgroundColor, paletteStore.colors, pageBackgroundColor);
95
103
  // TODO - use constant instead of "hamburger"
96
104
  if (!displayType.includes('hamburger')) {
97
105
  this._setButtonStyles({
98
106
  section,
99
- defaultButtonStyle: config.defaultButtonStyle,
107
+ // A layout sets the tab shape; a role-linked nav keeps its role and its own overrides.
108
+ defaultButtonStyle: isCanonicalTextStyleType(currentTextStyleType)
109
+ ? {
110
+ ...omitTypography(config.defaultButtonStyle),
111
+ ...pickTypography(currentStyle),
112
+ }
113
+ : config.defaultButtonStyle,
100
114
  selectedButtonStyle: config.selectedButtonStyle,
101
115
  iconStyle: config.iconStyle,
102
116
  viewport,
@@ -165,6 +179,16 @@ export const useUiNavigationStyleSettingsStore = defineStore('uiNavigationStyleS
165
179
  });
166
180
  }
167
181
  },
182
+ renormalizeTextStylesForRole(type, textStyleOptions) {
183
+ for (const viewport of [VIEWPORTS.desktop, VIEWPORTS.mobile]) {
184
+ const navigation = this.navigation[PAGE_SECTIONS.header][viewport];
185
+ for (const menu of [navigation, navigation.hamburgerMenuStyle]) {
186
+ if (menu.defaultButtonStyle?.textStyleType !== type)
187
+ continue;
188
+ menu.defaultButtonStyle = normalizeTextStyleAgainstRole(menu.defaultButtonStyle, textStyleOptions);
189
+ }
190
+ }
191
+ },
168
192
  setNavigationStyleOptionValue({ section, option, value, viewport, }) {
169
193
  const displayType = this.navigation[section][viewport].displayType;
170
194
  switch (option) {
@@ -194,6 +218,7 @@ export const useUiNavigationStyleSettingsStore = defineStore('uiNavigationStyleS
194
218
  section,
195
219
  style: value,
196
220
  viewport,
221
+ ownsTypography: true,
197
222
  });
198
223
  break;
199
224
  case 'selectedBackgroundColor':
@@ -35,8 +35,8 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
35
35
  onCancel?: ((...args: any[]) => any) | undefined;
36
36
  onConfirm?: ((...args: any[]) => any) | undefined;
37
37
  }>, {
38
+ isVisible: boolean;
38
39
  pageId: string;
39
40
  pageTitle: string;
40
- isVisible: boolean;
41
41
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
42
42
  export default _default;
@@ -35,6 +35,7 @@ declare const _default: import("vue").DefineComponent<{}, {
35
35
  isHidden: boolean;
36
36
  pageId: string;
37
37
  }): void;
38
+ renormalizeTextStylesForRole(type: string, textStyleOptions: import("../../../../brand-page").TextStyleOptions | undefined): void;
38
39
  setPageSettingsSectionValue({ sectionName, propName, index, value, merge, viewport, }: {
39
40
  sectionName: import("../../store").PageSettingsSection;
40
41
  propName: keyof import("../../store").PageSettingsStateSectionStyles;
@@ -3057,7 +3057,6 @@ declare const _default: import("vue").DefineComponent<{}, {
3057
3057
  imageUrlOverride?: string | undefined;
3058
3058
  imageTitleOverride?: string | undefined;
3059
3059
  }[];
3060
- textFontFamily?: import("@brand-page").FontFamilyKey | undefined;
3061
3060
  viewport: import("@brand-page").ViewportsType;
3062
3061
  logoImageHeight: string | undefined;
3063
3062
  logoImageWidth: string | undefined;
@@ -3286,7 +3285,6 @@ declare const _default: import("vue").DefineComponent<{}, {
3286
3285
  imageUrlOverride?: string | undefined;
3287
3286
  imageTitleOverride?: string | undefined;
3288
3287
  }[];
3289
- textFontFamily?: import("@brand-page").FontFamilyKey | undefined;
3290
3288
  viewport: import("@brand-page").ViewportsType;
3291
3289
  logoImageHeight: string | undefined;
3292
3290
  logoImageWidth: string | undefined;
@@ -3993,6 +3991,9 @@ declare const _default: import("vue").DefineComponent<{}, {
3993
3991
  setHideBranding(payload: {
3994
3992
  hideBranding: boolean;
3995
3993
  }): void;
3994
+ setSaveContactButtonTextStyle(payload: {
3995
+ buttonTextStyle: import("@brand-page").SaveContactOptions["buttonTextStyle"];
3996
+ }): void;
3996
3997
  setSensitiveContent(payload: {
3997
3998
  sensitiveContent: string;
3998
3999
  }): void;
@@ -4055,7 +4056,7 @@ declare const _default: import("vue").DefineComponent<{}, {
4055
4056
  brandPageType: import("@brand-page").BrandPageType;
4056
4057
  }): void;
4057
4058
  initialiseStoresByBrandPageModelAsync(brandPageModel: import("@brand-page").BrandPageModel): Promise<void>;
4058
- initialise({ brandPage, brandPageType, logoDraftDesignAttributes, unsplashApplicationName, templateCategories, personalisationData, isPersonalisationEnabled, userPromptContentKey, showAiTemplatesTab, businessName, industry, layout, logoVariationImageUrls, shopConfigData: _shopConfigData, isServerRenderOverride, }: import("@brand-page-maker/stores").InitialisePayload): Promise<void>;
4059
+ initialise({ brandPage, brandPageType, logoDraftDesignAttributes, unsplashApplicationName, templateCategories, personalisationData, isPersonalisationEnabled, userPromptContentKey, showAiTemplatesTab, businessName, industry, layout, logoVariationImageUrls, shopConfigData: _shopConfigData, isServerRenderOverride, isBlankSite, }: import("@brand-page-maker/stores").InitialisePayload): Promise<void>;
4059
4060
  initialisePages({ pages, sections, }: {
4060
4061
  pages: import("@brand-page").PageModel[];
4061
4062
  sections: import("../../store").PageSettingsStateSections;
@@ -4170,6 +4171,7 @@ declare const _default: import("vue").DefineComponent<{}, {
4170
4171
  isHidden: boolean;
4171
4172
  pageId: string;
4172
4173
  }): void;
4174
+ renormalizeTextStylesForRole(type: string, textStyleOptions: import("@brand-page").TextStyleOptions | undefined): void;
4173
4175
  setPageSettingsSectionValue({ sectionName, propName, index, value, merge, viewport, }: {
4174
4176
  sectionName: PageSettingsSection;
4175
4177
  propName: keyof import("../../store").PageSettingsStateSectionStyles;
@@ -4615,6 +4617,12 @@ declare const _default: import("vue").DefineComponent<{}, {
4615
4617
  id: string;
4616
4618
  name: string;
4617
4619
  }): unknown;
4620
+ renormalizeTextStylesForRole(type: string, previousRole?: Record<string, unknown>, active?: {
4621
+ id: string;
4622
+ name: string;
4623
+ index?: number;
4624
+ doc: unknown;
4625
+ }): void;
4618
4626
  applyCardContrastToItem({ id }: {
4619
4627
  id: string;
4620
4628
  }): void;
@@ -4711,11 +4719,12 @@ declare const _default: import("vue").DefineComponent<{}, {
4711
4719
  renderAfterLogo: boolean;
4712
4720
  viewport: import("@brand-page").ViewportsType;
4713
4721
  }): void;
4714
- _setDefaultButtonStyle({ displayType, section, style, viewport, }: {
4722
+ _setDefaultButtonStyle({ displayType, section, style, viewport, ownsTypography, }: {
4715
4723
  displayType: import("@brand-page").NavigationDisplayType;
4716
4724
  section: import("../../models").PageSection;
4717
4725
  style: BrandPageCssStyle;
4718
4726
  viewport: import("@brand-page").ViewportsType;
4727
+ ownsTypography?: boolean;
4719
4728
  }): void;
4720
4729
  _setSelectedButtonStyle({ displayType, section, style, viewport, }: {
4721
4730
  displayType: import("@brand-page").NavigationDisplayType;
@@ -4742,11 +4751,14 @@ declare const _default: import("vue").DefineComponent<{}, {
4742
4751
  iconStyle: BrandPageCssStyle;
4743
4752
  viewport: import("@brand-page").ViewportsType;
4744
4753
  }): void;
4745
- setDisplayType({ section, displayType, viewport, }: {
4754
+ setDisplayType({ section, displayType, viewport, headerBackgroundColor, pageBackgroundColor, }: {
4746
4755
  section: import("../../models").PageSection;
4747
4756
  displayType: import("@brand-page").NavigationDisplayType;
4748
4757
  viewport: import("@brand-page").ViewportsType;
4758
+ headerBackgroundColor?: string;
4759
+ pageBackgroundColor?: string;
4749
4760
  }): void;
4761
+ renormalizeTextStylesForRole(type: string, textStyleOptions: import("@brand-page").TextStyleOptions | undefined): void;
4750
4762
  setNavigationStyleOptionValue({ section, option, value, viewport, }: {
4751
4763
  section: import("../../models").PageSection;
4752
4764
  option: import("../../../../brand-page-maker/models/navigation-style-configs").NavigationStyleConfigOption;
@@ -3014,7 +3014,6 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
3014
3014
  imageUrlOverride?: string | undefined;
3015
3015
  imageTitleOverride?: string | undefined;
3016
3016
  }[];
3017
- textFontFamily?: import("@brand-page").FontFamilyKey | undefined;
3018
3017
  viewport: ViewportsType;
3019
3018
  logoImageHeight: string | undefined;
3020
3019
  logoImageWidth: string | undefined;
@@ -3243,7 +3242,6 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
3243
3242
  imageUrlOverride?: string | undefined;
3244
3243
  imageTitleOverride?: string | undefined;
3245
3244
  }[];
3246
- textFontFamily?: import("@brand-page").FontFamilyKey | undefined;
3247
3245
  viewport: ViewportsType;
3248
3246
  logoImageHeight: string | undefined;
3249
3247
  logoImageWidth: string | undefined;
@@ -3448,6 +3446,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
3448
3446
  isHidden: boolean;
3449
3447
  pageId: string;
3450
3448
  }): void;
3449
+ renormalizeTextStylesForRole(type: string, textStyleOptions: import("@brand-page").TextStyleOptions | undefined): void;
3451
3450
  setPageSettingsSectionValue({ sectionName, propName, index, value, merge, viewport, }: {
3452
3451
  sectionName: import("../../store").PageSettingsSection;
3453
3452
  propName: keyof PageSettingsStateSectionStyles;
@@ -3503,9 +3502,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
3503
3502
  buttonIconColor(): string | undefined;
3504
3503
  buttonShadowColor(): string;
3505
3504
  buttonSoftShadowColor(): string;
3506
- defaultTextColor(): string | undefined;
3507
3505
  selectedButtonStyleConfig(): import("../../../../brand-page-maker/models").ButtonStyleConfig | undefined;
3508
- selectedTextFontFamily(): import("@brand-page").FontFamilyKey;
3509
3506
  }, {
3510
3507
  initialise(options: {
3511
3508
  reset: boolean;
@@ -3525,9 +3522,6 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
3525
3522
  _setSelectedButtonStyle(payload: {
3526
3523
  id: string;
3527
3524
  }): void;
3528
- _setTextFontFamily(payload: {
3529
- fontFamily: import("@brand-page").FontFamilyKey;
3530
- }): void;
3531
3525
  _setTextStyles(payload: Partial<import("@brand-page").TextStyles>): void;
3532
3526
  setAdminStyleOptionDefaultValues(): void;
3533
3527
  setTextStyleOption(payload: {
@@ -3551,9 +3545,6 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
3551
3545
  setSelectedButtonStyle(payload: {
3552
3546
  id: string;
3553
3547
  }): void;
3554
- setTextFontFamily(payload: {
3555
- fontFamily: import("@brand-page").FontFamilyKey;
3556
- }): Promise<void>;
3557
3548
  }>;
3558
3549
  navigationStyleSettingsStore: import("pinia").Store<"uiNavigationStyleSettings", import("../../../navigation-style-settings/store").NavigationStyleSettingsState, {}, {
3559
3550
  initialise(options: {
@@ -3567,11 +3558,12 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
3567
3558
  renderAfterLogo: boolean;
3568
3559
  viewport: ViewportsType;
3569
3560
  }): void;
3570
- _setDefaultButtonStyle({ displayType, section, style, viewport, }: {
3561
+ _setDefaultButtonStyle({ displayType, section, style, viewport, ownsTypography, }: {
3571
3562
  displayType: NavigationDisplayType;
3572
3563
  section: PageSection;
3573
3564
  style: BrandPageCssStyle;
3574
3565
  viewport: ViewportsType;
3566
+ ownsTypography?: boolean;
3575
3567
  }): void;
3576
3568
  _setSelectedButtonStyle({ displayType, section, style, viewport, }: {
3577
3569
  displayType: NavigationDisplayType;
@@ -3598,11 +3590,14 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
3598
3590
  iconStyle: BrandPageCssStyle;
3599
3591
  viewport: ViewportsType;
3600
3592
  }): void;
3601
- setDisplayType({ section, displayType, viewport, }: {
3593
+ setDisplayType({ section, displayType, viewport, headerBackgroundColor, pageBackgroundColor, }: {
3602
3594
  section: PageSection;
3603
3595
  displayType: NavigationDisplayType;
3604
3596
  viewport: ViewportsType;
3597
+ headerBackgroundColor?: string;
3598
+ pageBackgroundColor?: string;
3605
3599
  }): void;
3600
+ renormalizeTextStylesForRole(type: string, textStyleOptions: import("@brand-page").TextStyleOptions | undefined): void;
3606
3601
  setNavigationStyleOptionValue({ section, option, value, viewport, }: {
3607
3602
  section: PageSection;
3608
3603
  option: import("../../../../brand-page-maker/models/navigation-style-configs").NavigationStyleConfigOption;
@@ -3610,6 +3605,59 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
3610
3605
  viewport: ViewportsType;
3611
3606
  }): void;
3612
3607
  }>;
3608
+ backgroundSettingsStore: import("pinia").Store<"uiBackgroundSettings", import("../../../background-settings/store").BackgroundSettingsState, {
3609
+ hasMedia(): boolean;
3610
+ }, {
3611
+ onBackgroundChanged(): void;
3612
+ setBackgroundStyle({ backgroundStyle, }: {
3613
+ backgroundStyle: import("@brand-page").BackgroundStyle;
3614
+ }): void;
3615
+ setBackgroundShapes(payload: import("@brand-page").BackgroundShape[]): void;
3616
+ setBackgroundPersonalisationRole(payload: {
3617
+ personalisationRole: import("@brand-page").PersonalisationRole | undefined;
3618
+ }): void;
3619
+ setBackgroundShapeStyle(payload: BrandPageCssStyle): void;
3620
+ setPrimaryBackgroundShapeStyle(payload: BrandPageCssStyle): void;
3621
+ setBackgroundImageUrl({ backgroundImageUrl, }: {
3622
+ backgroundImageUrl: string;
3623
+ }): void;
3624
+ addBackgroundShape({ shapeUrl, width, height, aspectRatio, }: {
3625
+ shapeUrl: string;
3626
+ width?: number;
3627
+ height?: number;
3628
+ aspectRatio?: number;
3629
+ }): void;
3630
+ deleteBackgroundShape({ shapeIndex }: {
3631
+ shapeIndex: number;
3632
+ }): void;
3633
+ replaceBackgroundShape({ shapeIndex, shapeUrl, width, height, aspectRatio, }: {
3634
+ shapeIndex: number;
3635
+ shapeUrl: string;
3636
+ width?: number;
3637
+ height?: number;
3638
+ aspectRatio?: number;
3639
+ }): void;
3640
+ setLogoColors({ logoColors }: import("../../../background-settings/background-settings-models").SetLogoColorsPayload): void;
3641
+ clearUserImageBackgroundImageUrl(): void;
3642
+ setAdminBackgroundOptionDefaultValues(): void;
3643
+ setState(payload: import("../../../background-settings/models").BackgroundSetStatePayload): void;
3644
+ setBackgroundStyles({ backgroundStyles, }: {
3645
+ backgroundStyles: import("@brand-page").BackgroundStyles;
3646
+ }): void;
3647
+ setBackgroundShapeSettings(payload: import("../../../background-settings/background-settings-models").SetBackgroundShapeSettingsPayload): void;
3648
+ setRecommendedLogoColors(payload: import("../../../background-settings/background-settings-models").SetRecommendedLogoColorsPayload): void;
3649
+ setBackgroundMode(payload: {
3650
+ backgroundMode: import("@brand-page-maker/stores").BrandPageSettingsMode;
3651
+ }): void;
3652
+ openShapePicker(intent: import("../../../background-settings/store").ShapePickerIntent): void;
3653
+ closeShapePicker(): void;
3654
+ setBackgroundMedia(payload: import("../../../my-uploads/models").MediaBaseSelectedPayload): void;
3655
+ removeBackgroundVideo(): void;
3656
+ resetMediaOverlayStyle(): void;
3657
+ setMediaOverlayStyle({ mediaOverlayStyle, }: {
3658
+ mediaOverlayStyle: Partial<BrandPageCssStyle>;
3659
+ }): void;
3660
+ }>;
3613
3661
  contentSettingsStore: import("pinia").Store<"uiContentSettings", import("../../../content-settings/store").ContentSettingsState, {
3614
3662
  contentErrorCount(): number;
3615
3663
  getContent(state: {
@@ -3980,6 +4028,12 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
3980
4028
  id: string;
3981
4029
  name: string;
3982
4030
  }): unknown;
4031
+ renormalizeTextStylesForRole(type: string, previousRole?: Record<string, unknown>, active?: {
4032
+ id: string;
4033
+ name: string;
4034
+ index?: number;
4035
+ doc: unknown;
4036
+ }): void;
3983
4037
  applyCardContrastToItem({ id }: {
3984
4038
  id: string;
3985
4039
  }): void;
@@ -4654,6 +4708,9 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
4654
4708
  setHideBranding(payload: {
4655
4709
  hideBranding: boolean;
4656
4710
  }): void;
4711
+ setSaveContactButtonTextStyle(payload: {
4712
+ buttonTextStyle: import("@brand-page").SaveContactOptions["buttonTextStyle"];
4713
+ }): void;
4657
4714
  setSensitiveContent(payload: {
4658
4715
  sensitiveContent: string;
4659
4716
  }): void;
@@ -4716,7 +4773,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
4716
4773
  brandPageType: import("@brand-page").BrandPageType;
4717
4774
  }): void;
4718
4775
  initialiseStoresByBrandPageModelAsync(brandPageModel: import("@brand-page").BrandPageModel): Promise<void>;
4719
- initialise({ brandPage, brandPageType, logoDraftDesignAttributes, unsplashApplicationName, templateCategories, personalisationData, isPersonalisationEnabled, userPromptContentKey, showAiTemplatesTab, businessName, industry, layout, logoVariationImageUrls, shopConfigData: _shopConfigData, isServerRenderOverride, }: import("@brand-page-maker/stores").InitialisePayload): Promise<void>;
4776
+ initialise({ brandPage, brandPageType, logoDraftDesignAttributes, unsplashApplicationName, templateCategories, personalisationData, isPersonalisationEnabled, userPromptContentKey, showAiTemplatesTab, businessName, industry, layout, logoVariationImageUrls, shopConfigData: _shopConfigData, isServerRenderOverride, isBlankSite, }: import("@brand-page-maker/stores").InitialisePayload): Promise<void>;
4720
4777
  initialisePages({ pages, sections, }: {
4721
4778
  pages: import("@brand-page").PageModel[];
4722
4779
  sections: import("../../store").PageSettingsStateSections;
@@ -4,8 +4,10 @@ import { PAGE_SECTIONS } from '../../models';
4
4
  import { BUTTON_LINK_TYPE, LOGO_SLIDER_DESKTOP_MAX, LOGO_SLIDER_DESKTOP_MIN, LOGO_SLIDER_MOBILE_MAX, LOGO_SLIDER_MOBILE_MIN, VIEWPORTS, getNavigationType, NAVIGATION_TYPE_DEFAULT_DISPLAY_TYPE, } from '@brand-page';
5
5
  import { UI_DEVICE_MODES, UI_EVENT_SOURCES } from '../../../models';
6
6
  import { isTransparentColour } from '@brand-page/utils/color.util';
7
+ import { omitTypography } from '@brand-page/utils/text-style.util';
7
8
  import { useUiPageSettingsStore } from '../../store';
8
9
  import { useUiNavigationStyleSettingsStore } from '../../../navigation-style-settings/store';
10
+ import { useUiBackgroundSettingsStore } from '../../../background-settings/store';
9
11
  import { useUiStyleSettingsStore } from '../../../style-settings/store';
10
12
  import { useUiContentSettingsStore } from '../../../content-settings/store';
11
13
  import { useBrandPageContainerStore, useBrandPageMakerStore, useLogoStore, useUiStore, } from '@brand-page-maker/stores';
@@ -62,6 +64,7 @@ export default defineComponent({
62
64
  const pageSettingsStore = useUiPageSettingsStore();
63
65
  const styleSettingsStore = useUiStyleSettingsStore();
64
66
  const navigationStyleSettingsStore = useUiNavigationStyleSettingsStore();
67
+ const backgroundSettingsStore = useUiBackgroundSettingsStore();
65
68
  const contentSettingsStore = useUiContentSettingsStore();
66
69
  const uiStore = useUiStore();
67
70
  const containerStore = useBrandPageContainerStore();
@@ -74,6 +77,7 @@ export default defineComponent({
74
77
  pageSettingsStore,
75
78
  styleSettingsStore,
76
79
  navigationStyleSettingsStore,
80
+ backgroundSettingsStore,
77
81
  contentSettingsStore,
78
82
  uiStore,
79
83
  containerStore,
@@ -294,6 +298,8 @@ export default defineComponent({
294
298
  section: PAGE_SECTIONS.header,
295
299
  displayType: displayType,
296
300
  viewport: this.viewport,
301
+ headerBackgroundColor: this.header.backgroundStyle?.backgroundColor,
302
+ pageBackgroundColor: this.backgroundSettingsStore.backgroundStyles.style.background,
297
303
  });
298
304
  },
299
305
  handleHeaderNavigationTypeChange(navigationType) {
@@ -395,11 +401,13 @@ export default defineComponent({
395
401
  });
396
402
  },
397
403
  setTextStyleOption(propName, value) {
404
+ const current = this.sections[this.sectionName][this.viewport][propName];
405
+ // The field sends the whole typography, so a prop it leaves out (a Reset, a role pick)
406
+ // must not survive from the old style and keep overriding the role.
398
407
  this.pageSettingsStore.setPageSettingsSectionValue({
399
408
  sectionName: this.sectionName,
400
409
  propName,
401
- value: value.value,
402
- merge: true,
410
+ value: { ...omitTypography(current ?? {}), ...value.value },
403
411
  viewport: this.viewport,
404
412
  });
405
413
  },
@@ -1,6 +1,6 @@
1
1
  import type { ContentItem } from '../../content-settings/models';
2
2
  import { PageHeaderDesktop, PageHeaderMobile, PageFooterDesktop, PageFooterMobile, VIEWPORTS } from '@brand-page';
3
- import type { NavigationType } from '@brand-page';
3
+ import type { NavigationType, TextStyleOptions } from '@brand-page';
4
4
  import type { Content, HeaderButton, ImageGalleryItem, LinksItem, LogoImageModel, ViewportsType, LogoTemplateImageModel, BrandPagePaymentConfig, BrandPagePaymentConfigCurrency } from '@brand-page';
5
5
  import type { ContentPage } from '../models';
6
6
  import { PAGE_SECTIONS } from '../models';
@@ -72,6 +72,7 @@ export declare const useUiPageSettingsStore: import("pinia").StoreDefinition<"ui
72
72
  isHidden: boolean;
73
73
  pageId: string;
74
74
  }): void;
75
+ renormalizeTextStylesForRole(type: string, textStyleOptions: TextStyleOptions | undefined): void;
75
76
  setPageSettingsSectionValue({ sectionName, propName, index, value, merge, viewport, }: {
76
77
  sectionName: PageSettingsSection;
77
78
  propName: keyof PageSettingsStateSectionStyles;
@@ -1,5 +1,6 @@
1
1
  import { defineStore } from 'pinia';
2
2
  import { BUTTON_LINK_TYPE, PageHeaderDesktop, PageHeaderMobile, PageFooterDesktop, PageFooterMobile, VIEWPORTS, getNavigationType, } from '@brand-page';
3
+ import { normalizeTextStyleAgainstRole } from '@brand-page/utils/text-style.util';
3
4
  import { v4 as uuid } from 'uuid';
4
5
  import { PAGE_SECTIONS } from '../models';
5
6
  import { toPageModels } from '../utils';
@@ -153,6 +154,22 @@ export const useUiPageSettingsStore = defineStore('uiPageSettings', {
153
154
  setPageVisibility({ isHidden, pageId, }) {
154
155
  this.pages.find((p) => p.id === pageId).isHidden = isHidden;
155
156
  },
157
+ renormalizeTextStylesForRole(type, textStyleOptions) {
158
+ for (const viewport of [VIEWPORTS.desktop, VIEWPORTS.mobile]) {
159
+ const footer = this.sections[PAGE_SECTIONS.footer][viewport];
160
+ if (footer.copyrightStyle?.textStyleType === type) {
161
+ footer.copyrightStyle = normalizeTextStyleAgainstRole(footer.copyrightStyle, textStyleOptions);
162
+ }
163
+ const header = this.sections[PAGE_SECTIONS.header][viewport];
164
+ const buttonTextStyle = header.headerButton?.buttonTextStyle;
165
+ if (header.headerButton && buttonTextStyle?.textStyleType === type) {
166
+ header.headerButton = {
167
+ ...header.headerButton,
168
+ buttonTextStyle: normalizeTextStyleAgainstRole(buttonTextStyle, textStyleOptions),
169
+ };
170
+ }
171
+ }
172
+ },
156
173
  setPageSettingsSectionValue({ sectionName, propName, index, value, merge, viewport, }) {
157
174
  if (merge && index !== undefined) {
158
175
  this.sections[sectionName][viewport][propName][index] = Object.assign({}, this.sections[sectionName][viewport][propName][index], value);
@@ -132,6 +132,9 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
132
132
  setHideBranding(payload: {
133
133
  hideBranding: boolean;
134
134
  }): void;
135
+ setSaveContactButtonTextStyle(payload: {
136
+ buttonTextStyle: import("../../brand-page").SaveContactOptions["buttonTextStyle"];
137
+ }): void;
135
138
  setSensitiveContent(payload: {
136
139
  sensitiveContent: string;
137
140
  }): void;
@@ -194,7 +197,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
194
197
  brandPageType: import("../../brand-page").BrandPageType;
195
198
  }): void;
196
199
  initialiseStoresByBrandPageModelAsync(brandPageModel: import("../../brand-page").BrandPageModel): Promise<void>;
197
- initialise({ brandPage, brandPageType, logoDraftDesignAttributes, unsplashApplicationName, templateCategories, personalisationData, isPersonalisationEnabled, userPromptContentKey, showAiTemplatesTab, businessName, industry, layout, logoVariationImageUrls, shopConfigData: _shopConfigData, isServerRenderOverride, }: import("@brand-page-maker/stores").InitialisePayload): Promise<void>;
200
+ initialise({ brandPage, brandPageType, logoDraftDesignAttributes, unsplashApplicationName, templateCategories, personalisationData, isPersonalisationEnabled, userPromptContentKey, showAiTemplatesTab, businessName, industry, layout, logoVariationImageUrls, shopConfigData: _shopConfigData, isServerRenderOverride, isBlankSite, }: import("@brand-page-maker/stores").InitialisePayload): Promise<void>;
198
201
  initialisePages({ pages, sections, }: {
199
202
  pages: import("../../brand-page").PageModel[];
200
203
  sections: import("../page-settings/store").PageSettingsStateSections;
@@ -0,0 +1,17 @@
1
+ import { Extension } from '@tiptap/core';
2
+ import type { EditorState } from 'prosemirror-state';
3
+ import type { Mark } from 'prosemirror-model';
4
+ /** A transaction carrying this meta skips the new-link styling pass below: a clipboard paste
5
+ * brings its own look (a copied link keeps its colour; a text-only paste brings no links), so
6
+ * neither wants AutoLink's "force blue + underline" treatment for a newly-created link. */
7
+ export declare const AUTO_LINK_SKIP_STYLING_META = "autoLinkSkipStyling";
8
+ /**
9
+ * The end-of-link detach a typed character gets right after a link's last position: the link
10
+ * mark (and its auto-blue colour, unless the user manually added an underline) drops from what
11
+ * comes next, so continuing to type doesn't extend the link. `null` when `pos` isn't at the end
12
+ * of a link — mid-link, or no link at all — so the caller keeps its own marks unchanged.
13
+ * Exported for `RteClipboard.ts`'s text-only paste, which takes the same detach a typed
14
+ * character would.
15
+ */
16
+ export declare const linkDetachMarksAt: (state: EditorState, pos: number) => Mark[] | null;
17
+ export declare const AutoLink: Extension<any, any>;