@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
@@ -0,0 +1,230 @@
1
+ import { describe, it, expect } from 'vitest';
2
+ import {
3
+ rteDoc,
4
+ reflowRteDoc,
5
+ isTiptapDocument,
6
+ } from '@shared/rte-render.util';
7
+
8
+ /**
9
+ * BP-5969 — `rteDoc` is the factory-authored RTE *source*: it builds the STRUCTURE only
10
+ * (paragraph + text + textAlign) via the schema. Colour and role typography are baked later by the
11
+ * init step, so `rteDoc` output carries no marks. Empty text stays a doc (never a string), which is
12
+ * what removes the plain-string-then-convert seam.
13
+ */
14
+ describe('rteDoc', () => {
15
+ const firstBlock = (doc: any) => doc.content?.[0];
16
+ const firstRun = (doc: any) => doc.content?.[0]?.content?.[0];
17
+
18
+ it('builds a schema-valid doc from non-empty text (paragraph > text)', () => {
19
+ const doc = rteDoc('Hello');
20
+
21
+ expect(isTiptapDocument(doc)).toBe(true);
22
+ expect(firstBlock(doc).type).toBe('paragraph');
23
+ expect(firstRun(doc).type).toBe('text');
24
+ expect(firstRun(doc).text).toBe('Hello');
25
+ });
26
+
27
+ it('applies textAlign to the block node', () => {
28
+ const doc = rteDoc('Hi', 'center');
29
+
30
+ expect(firstBlock(doc).attrs.textAlign).toBe('center');
31
+ });
32
+
33
+ it('empty text yields an empty paragraph doc — a doc, never a string, with no text run', () => {
34
+ const doc = rteDoc('', 'center');
35
+
36
+ expect(isTiptapDocument(doc)).toBe(true);
37
+ expect(firstBlock(doc).type).toBe('paragraph');
38
+ // a ProseMirror text node cannot be empty, so an empty field has no run at all
39
+ expect(firstBlock(doc).content ?? []).toHaveLength(0);
40
+ expect(firstBlock(doc).attrs.textAlign).toBe('center');
41
+ });
42
+
43
+ it('bakes no marks — colour and role typography are the init layer job', () => {
44
+ const doc = rteDoc('Plain');
45
+
46
+ expect(firstRun(doc).marks ?? []).toHaveLength(0);
47
+ });
48
+ });
49
+
50
+ /**
51
+ * BP-5969 — `reflowRteDoc` injects personalisation's plain text into a template RTE doc while KEEPING
52
+ * the template's embedded style (the first run's `textStyle` mark + block alignment). Per-word
53
+ * variation collapses to the base style; a uniformly-styled field is preserved exactly.
54
+ */
55
+ describe('reflowRteDoc', () => {
56
+ const paragraph = (
57
+ runs: Record<string, unknown>[],
58
+ attrs?: Record<string, unknown>,
59
+ ) => ({ type: 'paragraph', ...(attrs ? { attrs } : {}), content: runs });
60
+
61
+ const styledRun = (
62
+ text: string,
63
+ textStyleAttrs: Record<string, unknown>,
64
+ extraMarks: Record<string, unknown>[] = [],
65
+ ) => ({
66
+ type: 'text',
67
+ text,
68
+ marks: [{ type: 'textStyle', attrs: textStyleAttrs }, ...extraMarks],
69
+ });
70
+
71
+ const doc = (blocks: Record<string, unknown>[]) => ({
72
+ type: 'doc',
73
+ content: blocks,
74
+ });
75
+
76
+ const blocksOf = (d: any): any[] => d.content ?? [];
77
+ const firstRunOf = (block: any) => (block.content ?? [])[0];
78
+ const textStyleOf = (run: any): Record<string, any> =>
79
+ run?.marks?.find((m: any) => m.type === 'textStyle')?.attrs ?? {};
80
+
81
+ it("carries the first run's textStyle colour + block alignment onto the new text", () => {
82
+ const template = doc([
83
+ paragraph([styledRun('Welcome', { color: 'var(--palette-0)' })], {
84
+ textAlign: 'center',
85
+ }),
86
+ ]);
87
+
88
+ const out = reflowRteDoc(template, 'Fresh sourdough daily');
89
+
90
+ expect(blocksOf(out)).toHaveLength(1);
91
+ expect(firstRunOf(blocksOf(out)[0]).text).toBe('Fresh sourdough daily');
92
+ expect(textStyleOf(firstRunOf(blocksOf(out)[0])).color).toBe(
93
+ 'var(--palette-0)',
94
+ );
95
+ expect(blocksOf(out)[0].attrs.textAlign).toBe('center');
96
+ });
97
+
98
+ it('joins %0A lines with a hardBreak in ONE paragraph, every run keeping the base style + alignment', () => {
99
+ const template = doc([
100
+ paragraph([styledRun('Placeholder', { color: 'var(--palette-1)' })], {
101
+ textAlign: 'right',
102
+ }),
103
+ ]);
104
+
105
+ const out = reflowRteDoc(template, 'Line one%0ALine two');
106
+
107
+ expect(blocksOf(out)).toHaveLength(1);
108
+
109
+ const inline = blocksOf(out)[0].content;
110
+
111
+ expect(inline.map((n: any) => n.type)).toEqual([
112
+ 'text',
113
+ 'hardBreak',
114
+ 'text',
115
+ ]);
116
+
117
+ const runs = inline.filter((n: any) => n.type === 'text');
118
+
119
+ expect(runs.map((n: any) => n.text)).toEqual(['Line one', 'Line two']);
120
+
121
+ for (const run of runs) {
122
+ expect(textStyleOf(run).color).toBe('var(--palette-1)');
123
+ }
124
+
125
+ expect(blocksOf(out)[0].attrs.textAlign).toBe('right');
126
+ });
127
+
128
+ it('splits a real newline into a hardBreak too', () => {
129
+ const template = doc([
130
+ paragraph([styledRun('x', { color: 'var(--palette-0)' })]),
131
+ ]);
132
+
133
+ const out = reflowRteDoc(template, 'a\nb');
134
+ const inline = blocksOf(out)[0].content;
135
+
136
+ expect(inline.map((n: any) => n.type)).toEqual([
137
+ 'text',
138
+ 'hardBreak',
139
+ 'text',
140
+ ]);
141
+ expect(
142
+ inline.filter((n: any) => n.type === 'text').map((n: any) => n.text),
143
+ ).toEqual(['a', 'b']);
144
+ });
145
+
146
+ it('empty new text yields a single empty paragraph (no throw)', () => {
147
+ const template = doc([
148
+ paragraph([styledRun('x', { color: 'var(--palette-0)' })]),
149
+ ]);
150
+
151
+ const out = reflowRteDoc(template, '');
152
+
153
+ expect(blocksOf(out)).toHaveLength(1);
154
+ expect(blocksOf(out)[0].content ?? []).toHaveLength(0);
155
+ });
156
+
157
+ it('a trailing newline yields a trailing hardBreak, no empty text node', () => {
158
+ const template = doc([
159
+ paragraph([styledRun('x', { color: 'var(--palette-0)' })]),
160
+ ]);
161
+
162
+ const out = reflowRteDoc(template, 'foo%0A');
163
+ const inline = blocksOf(out)[0].content;
164
+
165
+ expect(inline.map((n: any) => n.type)).toEqual(['text', 'hardBreak']);
166
+ expect(inline[0].text).toBe('foo');
167
+ });
168
+
169
+ it('collapses per-word variation to the FIRST run style', () => {
170
+ const template = doc([
171
+ paragraph([
172
+ styledRun('Welcome to ', { color: 'var(--palette-0)' }),
173
+ styledRun('Brand', { color: 'var(--palette-1)' }), // a coloured word — not carried
174
+ ]),
175
+ ]);
176
+
177
+ const out = reflowRteDoc(template, 'New heading');
178
+
179
+ expect(textStyleOf(firstRunOf(blocksOf(out)[0])).color).toBe(
180
+ 'var(--palette-0)',
181
+ );
182
+ });
183
+
184
+ it('preserves a literal typography override on the base run', () => {
185
+ const template = doc([
186
+ paragraph([
187
+ styledRun('Big', { color: 'var(--palette-0)', fontSize: '3em' }),
188
+ ]),
189
+ ]);
190
+
191
+ const out = reflowRteDoc(template, 'Bigger heading');
192
+
193
+ expect(textStyleOf(firstRunOf(blocksOf(out)[0])).fontSize).toBe('3em');
194
+ });
195
+
196
+ it('drops per-word link marks — only textStyle is carried', () => {
197
+ const template = doc([
198
+ paragraph([
199
+ styledRun('Link', { color: 'var(--palette-0)' }, [
200
+ { type: 'link', attrs: { href: 'https://example.com' } },
201
+ ]),
202
+ ]),
203
+ ]);
204
+
205
+ const out = reflowRteDoc(template, 'Plain heading');
206
+ const marks = firstRunOf(blocksOf(out)[0]).marks ?? [];
207
+
208
+ expect(marks.some((m: any) => m.type === 'link')).toBe(false);
209
+ expect(marks.some((m: any) => m.type === 'textStyle')).toBe(true);
210
+ });
211
+
212
+ it('reflows an unstyled template doc without throwing', () => {
213
+ const template = doc([paragraph([{ type: 'text', text: 'Plain' }])]);
214
+
215
+ const out = reflowRteDoc(template, 'New text');
216
+
217
+ expect(isTiptapDocument(out)).toBe(true);
218
+ expect(firstRunOf(blocksOf(out)[0]).text).toBe('New text');
219
+ });
220
+
221
+ it('degrades to unstyled reflow for an unparseable template doc', () => {
222
+ const out = reflowRteDoc(
223
+ { type: 'doc', content: [{ type: 'not-a-real-node' }] } as any,
224
+ 'Safe text',
225
+ );
226
+
227
+ expect(isTiptapDocument(out)).toBe(true);
228
+ expect(firstRunOf(blocksOf(out)[0]).text).toBe('Safe text');
229
+ });
230
+ });
@@ -1,6 +1,6 @@
1
1
  import { describe, it, expect } from 'vitest';
2
2
  import { isSameRteContent, sanitizeRteJson } from './rte-sanitize.util';
3
- import { toRteJson } from './rte-render.util';
3
+ import { toRteJson } from '@shared/rte-render.util';
4
4
  import { COMPLEX_RTE_HTML } from '../__fixtures__/complex-rte.fixture';
5
5
 
6
6
  /**
@@ -47,15 +47,20 @@ const ALLOWED_MARK_TYPES = new Set([
47
47
  'link',
48
48
  ]);
49
49
 
50
- // textStyle attrs map to the allow-listed CSS properties (font-weight →
51
- // bold mark, text-decoration → underline/strike, text-align → node attr,
52
- // background-color → highlight, so they are intentionally not here).
50
+ // textStyle attrs map to the allow-listed CSS properties. BP-5969: font-weight / font-style /
51
+ // text-decoration are now textStyle attrs (role var or literal), NOT semantic <strong>/<u>/<s>
52
+ // marks, so a role edit propagates via the cascade. text-align → node attr and background-color →
53
+ // highlight are still intentionally not here.
53
54
  const ALLOWED_TEXT_STYLE_ATTRS = new Set([
54
55
  'color',
55
56
  'fontFamily',
56
57
  'fontSize',
57
58
  'letterSpacing',
58
59
  'lineHeight',
60
+ 'fontWeight',
61
+ 'fontStyle',
62
+ 'textDecoration',
63
+ 'textDecorationReset',
59
64
  ]);
60
65
 
61
66
  type Mark = { type?: string; attrs?: Record<string, unknown> };
@@ -84,6 +89,12 @@ const sanitizeTextStyleAttrs = (
84
89
 
85
90
  const value = attrs[key];
86
91
 
92
+ if (key === 'textDecorationReset') {
93
+ if (value === true) clean[key] = true;
94
+
95
+ continue;
96
+ }
97
+
87
98
  // Tiptap emits '' for unset textStyle slots — preserve them.
88
99
  if (value === '' || value == null) {
89
100
  clean[key] = '';
@@ -0,0 +1,102 @@
1
+ import { describe, it, expect } from 'vitest';
2
+ import type { JSONContent } from '@tiptap/vue-3';
3
+ import {
4
+ getRteExtensions,
5
+ rteSchemaGeneration,
6
+ } from '@shared/rte-extensions.util';
7
+ import { toRteJson } from '@shared/rte-render.util';
8
+
9
+ /**
10
+ * BP-5969 — the versioned RTE schema pin.
11
+ *
12
+ * A migration parses legacy RTE through a schema pinned to its own model version, so its
13
+ * headless HTML→JSON output can't drift when the live schema later gains an extension. The
14
+ * concrete driver: `TextEffects` (weight/style/decoration as `textStyle` attrs, parsed from
15
+ * inline CSS) entered the schema with BP-5969 / migration-22. migration-20 (released, pinned to
16
+ * 20) must NOT see it, or a legacy `<span style="font-weight:bold">` would bake a literal
17
+ * `textStyle.fontWeight` it never produced and stop tracking its role. See
18
+ * `backward-compatibility.md`.
19
+ */
20
+
21
+ const extensionNames = (
22
+ options?: Parameters<typeof getRteExtensions>[0],
23
+ ): string[] => getRteExtensions(options).map((extension) => extension.name);
24
+
25
+ type Mark = { type: string; attrs?: Record<string, unknown> };
26
+
27
+ const collectMarks = (node: JSONContent): Mark[] => {
28
+ const marks = [...((node.marks as Mark[]) ?? [])];
29
+
30
+ for (const child of node.content ?? []) marks.push(...collectMarks(child));
31
+
32
+ return marks;
33
+ };
34
+
35
+ const textStyleFontWeights = (doc: JSONContent): unknown[] =>
36
+ collectMarks(doc)
37
+ .filter((mark) => mark.type === 'textStyle')
38
+ .map((mark) => mark.attrs?.fontWeight)
39
+ .filter((value) => value != null);
40
+
41
+ const INLINE_BOLD_HTML = '<p><span style="font-weight: bold">x</span></p>';
42
+
43
+ describe('versioned RTE schema (BP-5969 migration-schema pin)', () => {
44
+ describe('getRteExtensions({ schemaVersion })', () => {
45
+ it('excludes TextEffects when pinned below version 22 (the pre-BP-5969 schema)', () => {
46
+ expect(extensionNames({ schemaVersion: 20 })).not.toContain(
47
+ 'textEffects',
48
+ );
49
+ });
50
+
51
+ it('includes TextEffects at version 22 and at the latest (runtime default)', () => {
52
+ expect(extensionNames({ schemaVersion: 22 })).toContain('textEffects');
53
+ expect(extensionNames()).toContain('textEffects');
54
+ });
55
+
56
+ it('keeps the rest of the extension set identical across versions (only TextEffects gated)', () => {
57
+ const without = extensionNames({ schemaVersion: 20 });
58
+ const withIt = extensionNames({ schemaVersion: 22 });
59
+
60
+ expect(withIt.filter((name) => name !== 'textEffects')).toEqual(without);
61
+ });
62
+
63
+ it('treats every version below 22 as the same (base) schema — a range, not a point', () => {
64
+ expect(extensionNames({ schemaVersion: 5 })).toEqual(
65
+ extensionNames({ schemaVersion: 20 }),
66
+ );
67
+ expect(extensionNames({ schemaVersion: 5 })).not.toContain('textEffects');
68
+ });
69
+ });
70
+
71
+ describe('rteSchemaGeneration (range → one schema)', () => {
72
+ it('collapses versions below the change point to the base generation (0)', () => {
73
+ expect(rteSchemaGeneration(5)).toBe(0);
74
+ expect(rteSchemaGeneration(20)).toBe(0);
75
+ expect(rteSchemaGeneration(21)).toBe(0);
76
+ // 5 and 20 resolve to the SAME generation — the key that dedupes the schema cache.
77
+ expect(rteSchemaGeneration(5)).toBe(rteSchemaGeneration(20));
78
+ });
79
+
80
+ it('collapses the change point, later versions, and the latest to the newest generation', () => {
81
+ expect(rteSchemaGeneration(22)).toBe(22);
82
+ expect(rteSchemaGeneration(100)).toBe(22);
83
+ expect(rteSchemaGeneration(undefined)).toBe(22);
84
+ });
85
+ });
86
+
87
+ describe('toRteJson parses under the pinned schema', () => {
88
+ it('does NOT bake inline font-weight into a textStyle attr at v20', () => {
89
+ const doc = toRteJson(INLINE_BOLD_HTML, undefined, 20);
90
+
91
+ expect(doc).toBeDefined();
92
+ expect(textStyleFontWeights(doc!)).toHaveLength(0);
93
+ });
94
+
95
+ it('DOES bake inline font-weight into a textStyle attr at the latest schema', () => {
96
+ const doc = toRteJson(INLINE_BOLD_HTML);
97
+
98
+ expect(doc).toBeDefined();
99
+ expect(textStyleFontWeights(doc!)).toContain('bold');
100
+ });
101
+ });
102
+ });
@@ -1778,7 +1778,14 @@
1778
1778
  "style": "Stil",
1779
1779
  "alignment": "Ausrichtung",
1780
1780
  "color": "Farbe",
1781
- "backgroundColor": "Hintergrundfarbe"
1781
+ "backgroundColor": "Hintergrundfarbe",
1782
+ "resetToGlobal": "Auf global zurücksetzen",
1783
+ "saveToGlobal": "Global speichern",
1784
+ "styleModifiedHeader": "Dieser Stil wurde geändert",
1785
+ "applyChangesToAll": "Änderungen auf alle '{{role}}' auf der Website anwenden",
1786
+ "resetToDefault": "Auf Standard zurücksetzen",
1787
+ "editTextStyles": "Textstile bearbeiten",
1788
+ "textStyleActionsAriaLabel": "Textstil-Aktionen"
1782
1789
  },
1783
1790
  "textAreaField": {
1784
1791
  "maxLimitReached": "Sie haben das Zeichenlimit erreicht"
@@ -1904,6 +1911,16 @@
1904
1911
  "headings": "Überschriften",
1905
1912
  "paragraphs": "Absätze",
1906
1913
  "buttons": "Schaltflächen",
1914
+ "heading1": "Überschrift 1",
1915
+ "heading2": "Überschrift 2",
1916
+ "heading3": "Überschrift 3",
1917
+ "heading4": "Überschrift 4",
1918
+ "heading5": "Überschrift 5",
1919
+ "heading6": "Überschrift 6",
1920
+ "paragraph1": "Absatz 1",
1921
+ "paragraph2": "Absatz 2",
1922
+ "paragraph3": "Absatz 3",
1923
+ "button": "Schaltflächentext",
1907
1924
  "premium": "Premium",
1908
1925
  "buttonBorderColor": "Farbe des Schaltflächenrahmens",
1909
1926
  "buttonFillColor": "Farbe der Schaltflächenfüllung",
@@ -1918,7 +1935,9 @@
1918
1935
  "hideBrandCrowdLogo": "BrandCrowd Logo ausblenden",
1919
1936
  "styleTitle": "Stil",
1920
1937
  "buttonStyleTitle": "Schaltflächenstil",
1921
- "textStyleTitle": "Textstil"
1938
+ "styleDescription": "Passen Sie Farben, Textstile und andere Designeinstellungen auf Ihrer Website an.",
1939
+ "textStyleTitle": "Textstil",
1940
+ "sizeOrderWarning": "Einige Textgrößen sind nicht in der richtigen Reihenfolge. Überschriften und Absätze sollten nicht größer sein als der Textstil darüber."
1922
1941
  },
1923
1942
  "templateSettings": {
1924
1943
  "searchPlaceholder": "Suche",
@@ -1778,7 +1778,14 @@
1778
1778
  "style": "Estilo",
1779
1779
  "alignment": "Alineación",
1780
1780
  "color": "Color",
1781
- "backgroundColor": "Color de fondo"
1781
+ "backgroundColor": "Color de fondo",
1782
+ "resetToGlobal": "Restablecer a global",
1783
+ "saveToGlobal": "Guardar como global",
1784
+ "styleModifiedHeader": "Este estilo ha sido modificado",
1785
+ "applyChangesToAll": "Aplicar los cambios a todos los '{{role}}' en todo el sitio",
1786
+ "resetToDefault": "Restablecer a predeterminado",
1787
+ "editTextStyles": "Editar estilos de texto",
1788
+ "textStyleActionsAriaLabel": "Acciones de estilo de texto"
1782
1789
  },
1783
1790
  "textAreaField": {
1784
1791
  "maxLimitReached": "Has alcanzado tu límite máximo de caracteres permitidos"
@@ -1904,6 +1911,16 @@
1904
1911
  "headings": "Encabezados",
1905
1912
  "paragraphs": "Párrafos",
1906
1913
  "buttons": "Botones",
1914
+ "heading1": "Encabezado 1",
1915
+ "heading2": "Encabezado 2",
1916
+ "heading3": "Encabezado 3",
1917
+ "heading4": "Encabezado 4",
1918
+ "heading5": "Encabezado 5",
1919
+ "heading6": "Encabezado 6",
1920
+ "paragraph1": "Párrafo 1",
1921
+ "paragraph2": "Párrafo 2",
1922
+ "paragraph3": "Párrafo 3",
1923
+ "button": "Texto del botón",
1907
1924
  "premium": "Prémium",
1908
1925
  "buttonBorderColor": "Color del borde del botón",
1909
1926
  "buttonFillColor": "Color de relleno del botón",
@@ -1918,7 +1935,9 @@
1918
1935
  "hideBrandCrowdLogo": "Ocultar el logo de BrandCrowd",
1919
1936
  "styleTitle": "Estilo",
1920
1937
  "buttonStyleTitle": "Estilo de botón",
1921
- "textStyleTitle": "Estilo de texto"
1938
+ "styleDescription": "Personaliza los colores, los estilos de texto y otros ajustes de diseño por todo tu sitio web",
1939
+ "textStyleTitle": "Estilo de texto",
1940
+ "sizeOrderWarning": "Algunos tamaños de texto no están en el orden correcto. Un encabezado o párrafo no debería ser más grande que el que tiene encima."
1922
1941
  },
1923
1942
  "templateSettings": {
1924
1943
  "searchPlaceholder": "Buscar",
@@ -1778,7 +1778,14 @@
1778
1778
  "style": "Style",
1779
1779
  "alignment": "Alignement",
1780
1780
  "color": "Couleur",
1781
- "backgroundColor": "Couleur d’arrière-plan"
1781
+ "backgroundColor": "Couleur d’arrière-plan",
1782
+ "resetToGlobal": "Réinitialiser au global",
1783
+ "saveToGlobal": "Enregistrer comme global",
1784
+ "styleModifiedHeader": "Ce style a été modifié",
1785
+ "applyChangesToAll": "Appliquer les modifications à tous les « {{role}} » sur le site",
1786
+ "resetToDefault": "Réinitialiser par défaut",
1787
+ "editTextStyles": "Modifier les styles de texte",
1788
+ "textStyleActionsAriaLabel": "Actions de style de texte"
1782
1789
  },
1783
1790
  "textAreaField": {
1784
1791
  "maxLimitReached": "Vous avez atteint la limite maximale de caractères autorisés"
@@ -1904,6 +1911,16 @@
1904
1911
  "headings": "En-têtes",
1905
1912
  "paragraphs": "Paragraphes",
1906
1913
  "buttons": "Boutons",
1914
+ "heading1": "En-tête 1",
1915
+ "heading2": "En-tête 2",
1916
+ "heading3": "En-tête 3",
1917
+ "heading4": "En-tête 4",
1918
+ "heading5": "En-tête 5",
1919
+ "heading6": "En-tête 6",
1920
+ "paragraph1": "Paragraphe 1",
1921
+ "paragraph2": "Paragraphe 2",
1922
+ "paragraph3": "Paragraphe 3",
1923
+ "button": "Texte du bouton",
1907
1924
  "premium": "Premium",
1908
1925
  "buttonBorderColor": "Couleur de bordure du bouton",
1909
1926
  "buttonFillColor": "Couleur de remplissage du bouton",
@@ -1918,7 +1935,9 @@
1918
1935
  "hideBrandCrowdLogo": "Cacher le logo BrandCrowd",
1919
1936
  "styleTitle": "Style",
1920
1937
  "buttonStyleTitle": "Style de bouton",
1921
- "textStyleTitle": "Style de texte"
1938
+ "styleDescription": "Personnalisez les couleurs, les styles de texte et d'autres paramètres de conception sur votre site",
1939
+ "textStyleTitle": "Style de texte",
1940
+ "sizeOrderWarning": "Certaines tailles de texte ne sont pas dans le bon ordre. Un en-tête ou un paragraphe ne doit pas être plus grand que celui qui le précède."
1922
1941
  },
1923
1942
  "templateSettings": {
1924
1943
  "searchPlaceholder": "Rechercher",
@@ -1778,7 +1778,14 @@
1778
1778
  "style": "Style",
1779
1779
  "alignment": "Alignement",
1780
1780
  "color": "Couleur",
1781
- "backgroundColor": "Couleur d’arrière-plan"
1781
+ "backgroundColor": "Couleur d’arrière-plan",
1782
+ "resetToGlobal": "Réinitialiser au global",
1783
+ "saveToGlobal": "Enregistrer comme global",
1784
+ "styleModifiedHeader": "Ce style a été modifié",
1785
+ "applyChangesToAll": "Appliquer les modifications à tous les « {{role}} » sur le site",
1786
+ "resetToDefault": "Réinitialiser par défaut",
1787
+ "editTextStyles": "Modifier les styles de texte",
1788
+ "textStyleActionsAriaLabel": "Actions de style de texte"
1782
1789
  },
1783
1790
  "textAreaField": {
1784
1791
  "maxLimitReached": "Vous avez atteint la limite maximale de caractères autorisés"
@@ -1904,6 +1911,16 @@
1904
1911
  "headings": "En-têtes",
1905
1912
  "paragraphs": "Paragraphes",
1906
1913
  "buttons": "Boutons",
1914
+ "heading1": "En-tête 1",
1915
+ "heading2": "En-tête 2",
1916
+ "heading3": "En-tête 3",
1917
+ "heading4": "En-tête 4",
1918
+ "heading5": "En-tête 5",
1919
+ "heading6": "En-tête 6",
1920
+ "paragraph1": "Paragraphe 1",
1921
+ "paragraph2": "Paragraphe 2",
1922
+ "paragraph3": "Paragraphe 3",
1923
+ "button": "Texte du bouton",
1907
1924
  "premium": "Premium",
1908
1925
  "buttonBorderColor": "Couleur de bordure du bouton",
1909
1926
  "buttonFillColor": "Couleur de remplissage du bouton",
@@ -1918,7 +1935,9 @@
1918
1935
  "hideBrandCrowdLogo": "Cacher le logo BrandCrowd",
1919
1936
  "styleTitle": "Style",
1920
1937
  "buttonStyleTitle": "Style de bouton",
1921
- "textStyleTitle": "Style de texte"
1938
+ "styleDescription": "Personnalisez les couleurs, les styles de texte et d'autres paramètres de conception sur votre site",
1939
+ "textStyleTitle": "Style de texte",
1940
+ "sizeOrderWarning": "Certaines tailles de texte ne sont pas dans le bon ordre. Un en-tête ou un paragraphe ne doit pas être plus grand que celui qui le précède."
1922
1941
  },
1923
1942
  "templateSettings": {
1924
1943
  "searchPlaceholder": "Rechercher",
@@ -1778,7 +1778,14 @@
1778
1778
  "style": "Style",
1779
1779
  "alignment": "Alignment",
1780
1780
  "color": "Color",
1781
- "backgroundColor": "Background Color"
1781
+ "backgroundColor": "Background Color",
1782
+ "resetToGlobal": "Reset to Global",
1783
+ "saveToGlobal": "Save to Global",
1784
+ "styleModifiedHeader": "This style has been modified",
1785
+ "applyChangesToAll": "Apply changes to all '{{role}}' across the site",
1786
+ "resetToDefault": "Reset to default",
1787
+ "editTextStyles": "Edit Text Styles",
1788
+ "textStyleActionsAriaLabel": "Text style actions"
1782
1789
  },
1783
1790
  "textAreaField": {
1784
1791
  "maxLimitReached": "You have reached your maximum limit of characters allowed"
@@ -1904,6 +1911,16 @@
1904
1911
  "headings": "Headings",
1905
1912
  "paragraphs": "Paragraphs",
1906
1913
  "buttons": "Buttons",
1914
+ "heading1": "Heading 1",
1915
+ "heading2": "Heading 2",
1916
+ "heading3": "Heading 3",
1917
+ "heading4": "Heading 4",
1918
+ "heading5": "Heading 5",
1919
+ "heading6": "Heading 6",
1920
+ "paragraph1": "Paragraph 1",
1921
+ "paragraph2": "Paragraph 2",
1922
+ "paragraph3": "Paragraph 3",
1923
+ "button": "Button text",
1907
1924
  "premium": "Premium",
1908
1925
  "buttonBorderColor": "Button border color",
1909
1926
  "buttonFillColor": "Button fill color",
@@ -1918,7 +1935,9 @@
1918
1935
  "hideBrandCrowdLogo": "Hide BrandCrowd logo",
1919
1936
  "styleTitle": "Style",
1920
1937
  "buttonStyleTitle": "Button style",
1921
- "textStyleTitle": "Text style"
1938
+ "styleDescription": "Customize colors, text styles, and other design settings across your site.",
1939
+ "textStyleTitle": "Text Style",
1940
+ "sizeOrderWarning": "Some text sizes are out of order. A heading or paragraph shouldn't be larger than the one above it."
1922
1941
  },
1923
1942
  "templateSettings": {
1924
1943
  "searchPlaceholder": "Search",
@@ -1778,7 +1778,14 @@
1778
1778
  "style": "Estilo",
1779
1779
  "alignment": "Alinhamento",
1780
1780
  "color": "Cor",
1781
- "backgroundColor": "Cor de fundo"
1781
+ "backgroundColor": "Cor de fundo",
1782
+ "resetToGlobal": "Redefinir para global",
1783
+ "saveToGlobal": "Salvar como global",
1784
+ "styleModifiedHeader": "Este estilo foi modificado",
1785
+ "applyChangesToAll": "Aplicar alterações a todos os '{{role}}' no site",
1786
+ "resetToDefault": "Redefinir para o padrão",
1787
+ "editTextStyles": "Editar estilos de texto",
1788
+ "textStyleActionsAriaLabel": "Ações de estilo de texto"
1782
1789
  },
1783
1790
  "textAreaField": {
1784
1791
  "maxLimitReached": "Você atingiu o limite máximo de caracteres permitido"
@@ -1904,6 +1911,16 @@
1904
1911
  "headings": "Subtítulos",
1905
1912
  "paragraphs": "Parágrafos",
1906
1913
  "buttons": "Botões",
1914
+ "heading1": "Subtítulo 1",
1915
+ "heading2": "Subtítulo 2",
1916
+ "heading3": "Subtítulo 3",
1917
+ "heading4": "Subtítulo 4",
1918
+ "heading5": "Subtítulo 5",
1919
+ "heading6": "Subtítulo 6",
1920
+ "paragraph1": "Parágrafo 1",
1921
+ "paragraph2": "Parágrafo 2",
1922
+ "paragraph3": "Parágrafo 3",
1923
+ "button": "Texto do botão",
1907
1924
  "premium": "Premium",
1908
1925
  "buttonBorderColor": "Cor da borda do botão",
1909
1926
  "buttonFillColor": "Cor de preenchimento do botão",
@@ -1918,7 +1935,9 @@
1918
1935
  "hideBrandCrowdLogo": "Ocultar o logotipo do BrandCrowd",
1919
1936
  "styleTitle": "Estilo",
1920
1937
  "buttonStyleTitle": "Estilo do botão",
1921
- "textStyleTitle": "Tipo de texto"
1938
+ "styleDescription": "Personalizar as cores, os estilos de texto e outras configurações de design em todo o site",
1939
+ "textStyleTitle": "Tipo de texto",
1940
+ "sizeOrderWarning": "Alguns tamanhos de texto estão fora de ordem. Um subtítulo ou parágrafo não deve ser maior que o que está acima dele."
1922
1941
  },
1923
1942
  "templateSettings": {
1924
1943
  "searchPlaceholder": "Pesquisar",