@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
@@ -893,8 +893,8 @@ a:not(.tw-lowercase) {
893
893
  .tw-max-h-72 {
894
894
  max-height: 18rem
895
895
  }
896
- .tw-max-h-9 {
897
- max-height: 2.25rem
896
+ .tw-max-h-8 {
897
+ max-height: 2rem
898
898
  }
899
899
  .tw-max-h-\[340px\] {
900
900
  max-height: 340px
@@ -923,6 +923,9 @@ a:not(.tw-lowercase) {
923
923
  .tw-min-h-\[1\.25rem\] {
924
924
  min-height: 1.25rem
925
925
  }
926
+ .tw-min-h-\[38px\] {
927
+ min-height: 38px
928
+ }
926
929
  .tw-min-h-full {
927
930
  min-height: 100%
928
931
  }
@@ -1157,12 +1160,15 @@ a:not(.tw-lowercase) {
1157
1160
  .tw-min-w-10 {
1158
1161
  min-width: 2.5rem
1159
1162
  }
1160
- .tw-min-w-8 {
1161
- min-width: 2rem
1163
+ .tw-min-w-7 {
1164
+ min-width: 1.75rem
1162
1165
  }
1163
1166
  .tw-min-w-\[120px\] {
1164
1167
  min-width: 120px
1165
1168
  }
1169
+ .tw-min-w-\[220px\] {
1170
+ min-width: 220px
1171
+ }
1166
1172
  .tw-min-w-\[310px\] {
1167
1173
  min-width: 310px
1168
1174
  }
@@ -1419,10 +1425,6 @@ a:not(.tw-lowercase) {
1419
1425
  -ms-flex-preferred-size: 0px;
1420
1426
  flex-basis: 0px
1421
1427
  }
1422
- .tw-origin-top-left {
1423
- -webkit-transform-origin: top left;
1424
- transform-origin: top left
1425
- }
1426
1428
  .tw-origin-top-right {
1427
1429
  -webkit-transform-origin: top right;
1428
1430
  transform-origin: top right
@@ -2390,6 +2392,10 @@ a:not(.tw-lowercase) {
2390
2392
  --tw-border-opacity: 1;
2391
2393
  border-color: rgb(61 61 61 / var(--tw-border-opacity))
2392
2394
  }
2395
+ .tw-border-secondary-800 {
2396
+ --tw-border-opacity: 1;
2397
+ border-color: rgb(24 24 24 / var(--tw-border-opacity))
2398
+ }
2393
2399
  .tw-border-success-400 {
2394
2400
  --tw-border-opacity: 1;
2395
2401
  border-color: rgb(121 139 249 / var(--tw-border-opacity))
@@ -2855,9 +2861,6 @@ a:not(.tw-lowercase) {
2855
2861
  .tw-pl-0\.5 {
2856
2862
  padding-left: 0.125rem
2857
2863
  }
2858
- .tw-pl-1 {
2859
- padding-left: 0.25rem
2860
- }
2861
2864
  .tw-pl-12 {
2862
2865
  padding-left: 3rem
2863
2866
  }
@@ -5698,7 +5701,7 @@ input[data-v-4cd691db]::-webkit-inner-spin-button {
5698
5701
  font-family: Lato, Helvetica, sans-serif;
5699
5702
  }
5700
5703
 
5701
- .carousel-wrapper[data-v-907fe6e9] {
5704
+ .carousel-wrapper[data-v-1d4fd3e2] {
5702
5705
  position: relative;
5703
5706
  overflow-x: auto;
5704
5707
  overflow-y: hidden;
@@ -5708,15 +5711,15 @@ input[data-v-4cd691db]::-webkit-inner-spin-button {
5708
5711
  -ms-overflow-style: none;
5709
5712
  width: 100%;
5710
5713
  }
5711
- .scroll-chevron[data-v-907fe6e9] {
5714
+ .scroll-chevron[data-v-1d4fd3e2] {
5712
5715
  background: none !important;
5713
5716
  border: none !important;
5714
5717
  }
5715
- .carousel-wrapper[data-v-907fe6e9]:active {
5718
+ .carousel-wrapper[data-v-1d4fd3e2]:active {
5716
5719
  cursor: -webkit-grabbing;
5717
5720
  cursor: grabbing;
5718
5721
  }
5719
- .carousel-track[data-v-907fe6e9] {
5722
+ .carousel-track[data-v-1d4fd3e2] {
5720
5723
  display: -webkit-box;
5721
5724
  display: -ms-flexbox;
5722
5725
  display: flex;
@@ -5730,7 +5733,7 @@ input[data-v-4cd691db]::-webkit-inner-spin-button {
5730
5733
  margin: 0 auto;
5731
5734
  gap: 8px;
5732
5735
  }
5733
- .carousel-item[data-v-907fe6e9] {
5736
+ .carousel-item[data-v-1d4fd3e2] {
5734
5737
  position: relative;
5735
5738
  -ms-flex-negative: 0;
5736
5739
  flex-shrink: 0;
@@ -5741,7 +5744,7 @@ input[data-v-4cd691db]::-webkit-inner-spin-button {
5741
5744
  -ms-flex-align: center;
5742
5745
  align-items: center;
5743
5746
  }
5744
- .carousel-link[data-v-907fe6e9] {
5747
+ .carousel-link[data-v-1d4fd3e2] {
5745
5748
  display: block;
5746
5749
  padding: 12px 8px;
5747
5750
  text-decoration: none;
@@ -5754,7 +5757,7 @@ input[data-v-4cd691db]::-webkit-inner-spin-button {
5754
5757
  -ms-flex-item-align: stretch;
5755
5758
  align-self: stretch;
5756
5759
  }
5757
- .carousel-chevron[data-v-907fe6e9] {
5760
+ .carousel-chevron[data-v-1d4fd3e2] {
5758
5761
  cursor: pointer;
5759
5762
  border-left: none !important;
5760
5763
  padding: 0 12px;
@@ -5768,17 +5771,17 @@ input[data-v-4cd691db]::-webkit-inner-spin-button {
5768
5771
  -ms-flex-align: center;
5769
5772
  align-items: center;
5770
5773
  }
5771
- .carousel-chevron[data-v-907fe6e9] svg {
5774
+ .carousel-chevron[data-v-1d4fd3e2] svg {
5772
5775
  -webkit-transition: -webkit-transform 0.2s ease;
5773
5776
  transition: -webkit-transform 0.2s ease;
5774
5777
  transition: transform 0.2s ease;
5775
5778
  transition: transform 0.2s ease, -webkit-transform 0.2s ease;
5776
5779
  }
5777
- .carousel-chevron--open[data-v-907fe6e9] svg {
5780
+ .carousel-chevron--open[data-v-1d4fd3e2] svg {
5778
5781
  -webkit-transform: rotate(180deg);
5779
5782
  transform: rotate(180deg);
5780
5783
  }
5781
- .dropdown-menu[data-v-907fe6e9] {
5784
+ .dropdown-menu[data-v-1d4fd3e2] {
5782
5785
  min-width: 150px;
5783
5786
  max-height: 240px;
5784
5787
  overflow-x: hidden;
@@ -5791,7 +5794,7 @@ input[data-v-4cd691db]::-webkit-inner-spin-button {
5791
5794
  -ms-flex-direction: column;
5792
5795
  flex-direction: column;
5793
5796
  }
5794
- .dropdown-item[data-v-907fe6e9] {
5797
+ .dropdown-item[data-v-1d4fd3e2] {
5795
5798
  display: block;
5796
5799
  padding: 12px 16px;
5797
5800
  cursor: pointer;
@@ -5952,7 +5955,7 @@ input[data-v-4cd691db]::-webkit-inner-spin-button {
5952
5955
  );
5953
5956
  }
5954
5957
 
5955
- .empty-para[data-v-4418a9fe] p:empty::after {
5958
+ .empty-para[data-v-532b5fd8] p:empty::after {
5956
5959
  content: '\00A0';
5957
5960
  }
5958
5961
 
@@ -6063,7 +6066,7 @@ input[data-v-4cd691db]::-webkit-inner-spin-button {
6063
6066
  text-decoration: underline;
6064
6067
  }
6065
6068
 
6066
- .form-error[data-v-5c3c6927] {
6069
+ .form-error[data-v-a2d29285] {
6067
6070
  font-size: 0.875rem;
6068
6071
  line-height: 1.25rem;
6069
6072
  color: #f21b3f
@@ -6307,18 +6310,18 @@ input[data-v-4cd691db]::-webkit-inner-spin-button {
6307
6310
  }
6308
6311
  }
6309
6312
 
6310
- .form-error[data-v-665b8067] {
6313
+ .form-error[data-v-6de658e0] {
6311
6314
  font-size: 0.75rem;
6312
6315
  line-height: 1rem;
6313
6316
  color: #f21b3f;
6314
6317
  }
6315
- select[data-v-665b8067] {
6318
+ select[data-v-6de658e0] {
6316
6319
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23666' d='M6 8L1 3h10z'/%3E%3C/svg%3E");
6317
6320
  background-repeat: no-repeat;
6318
6321
  background-position: right 12px center;
6319
6322
  }
6320
6323
 
6321
- .form-error[data-v-a0d0666b] {
6324
+ .form-error[data-v-d41f9828] {
6322
6325
  font-size: 0.75rem;
6323
6326
  line-height: 1rem;
6324
6327
  color: #f21b3f
@@ -6417,59 +6420,59 @@ select[data-v-665b8067] {
6417
6420
  width: 100%;
6418
6421
  }
6419
6422
 
6420
- .form-error[data-v-2e955d80] {
6423
+ .form-error[data-v-f317d692] {
6421
6424
  font-size: 0.875rem;
6422
6425
  line-height: 1.25rem;
6423
6426
  color: #f21b3f;
6424
6427
  }
6425
- .contact-container[data-v-2e955d80] {
6428
+ .contact-container[data-v-f317d692] {
6426
6429
  max-width: var(--brandsite-max-width);
6427
6430
  margin: 0 auto;
6428
6431
  }
6429
- .c-text-padding[data-v-2e955d80] {
6432
+ .c-text-padding[data-v-f317d692] {
6430
6433
  padding-left: 1rem;
6431
6434
  padding-right: 1rem;
6432
6435
  }
6433
- .device-wrapper--mobile .c-divided-container[data-v-2e955d80] {
6436
+ .device-wrapper--mobile .c-divided-container[data-v-f317d692] {
6434
6437
  -webkit-box-orient: vertical;
6435
6438
  -webkit-box-direction: normal;
6436
6439
  -ms-flex-direction: column;
6437
6440
  flex-direction: column;
6438
6441
  }
6439
- .device-wrapper--mobile .c-divided-container-reverse[data-v-2e955d80] {
6442
+ .device-wrapper--mobile .c-divided-container-reverse[data-v-f317d692] {
6440
6443
  -webkit-box-orient: vertical;
6441
6444
  -webkit-box-direction: reverse;
6442
6445
  -ms-flex-direction: column-reverse;
6443
6446
  flex-direction: column-reverse;
6444
6447
  }
6445
6448
  @media (max-width: 767px) {
6446
- .c-button-full[data-v-2e955d80] {
6449
+ .c-button-full[data-v-f317d692] {
6447
6450
  width: 100%;
6448
6451
  }
6449
6452
  /* Match the button's full-width on published mobile. The maker uses the
6450
6453
  isMobileDevice prop for this; the renderer has no such state, so the
6451
6454
  decorative-button wrapper is widened here via the real viewport instead. */
6452
- [data-v-2e955d80] .bp-style-wrapper {
6455
+ [data-v-f317d692] .bp-style-wrapper {
6453
6456
  width: 100%;
6454
6457
  }
6455
- .c-col-span-2[data-v-2e955d80] {
6458
+ .c-col-span-2[data-v-f317d692] {
6456
6459
  grid-column: span 2 / span 2;
6457
6460
  }
6458
- .c-mobile-padding[data-v-2e955d80] {
6461
+ .c-mobile-padding[data-v-f317d692] {
6459
6462
  padding: 1rem;
6460
6463
  }
6461
- .c-text-padding[data-v-2e955d80] {
6464
+ .c-text-padding[data-v-f317d692] {
6462
6465
  grid-column: span 2 / span 2;
6463
6466
  padding-left: 0px;
6464
6467
  padding-right: 0px;
6465
6468
  }
6466
- .c-divided-container[data-v-2e955d80] {
6469
+ .c-divided-container[data-v-f317d692] {
6467
6470
  -webkit-box-orient: vertical;
6468
6471
  -webkit-box-direction: normal;
6469
6472
  -ms-flex-direction: column;
6470
6473
  flex-direction: column;
6471
6474
  }
6472
- .c-divided-container-reverse[data-v-2e955d80] {
6475
+ .c-divided-container-reverse[data-v-f317d692] {
6473
6476
  -webkit-box-orient: vertical;
6474
6477
  -webkit-box-direction: reverse;
6475
6478
  -ms-flex-direction: column-reverse;
@@ -6477,16 +6480,16 @@ select[data-v-665b8067] {
6477
6480
  }
6478
6481
  }
6479
6482
  @media (min-width: 767px) {
6480
- .c-aspect-square[data-v-2e955d80] {
6483
+ .c-aspect-square[data-v-f317d692] {
6481
6484
  aspect-ratio: 1 / 1;
6482
6485
  }
6483
- .c-divided-container[data-v-2e955d80] {
6486
+ .c-divided-container[data-v-f317d692] {
6484
6487
  -webkit-box-orient: horizontal;
6485
6488
  -webkit-box-direction: normal;
6486
6489
  -ms-flex-direction: row;
6487
6490
  flex-direction: row;
6488
6491
  }
6489
- .c-divided-container-reverse[data-v-2e955d80] {
6492
+ .c-divided-container-reverse[data-v-f317d692] {
6490
6493
  -webkit-box-orient: horizontal;
6491
6494
  -webkit-box-direction: reverse;
6492
6495
  -ms-flex-direction: row-reverse;
@@ -7135,44 +7138,44 @@ select[data-v-665b8067] {
7135
7138
  color: #f21b3f;
7136
7139
  }
7137
7140
 
7138
- .inner-container[data-v-fca616f0] {
7141
+ .inner-container[data-v-0f062477] {
7139
7142
  max-width: var(--brandsite-max-width);
7140
7143
  margin: 0 auto;
7141
7144
  }
7142
- .outer-container[data-v-fca616f0] {
7145
+ .outer-container[data-v-0f062477] {
7143
7146
  padding-left: var(--page-padding);
7144
7147
  padding-right: var(--page-padding);
7145
7148
  }
7146
- .modal-cart[data-v-fca616f0] .cart-image {
7149
+ .modal-cart[data-v-0f062477] .cart-image {
7147
7150
  width: 3rem;
7148
7151
  }
7149
- .modal-cart[data-v-fca616f0] .cart-option {
7152
+ .modal-cart[data-v-0f062477] .cart-option {
7150
7153
  width: 100%;
7151
7154
  }
7152
- .success-bar-container[data-v-fca616f0] .tw-bg-success-500 {
7155
+ .success-bar-container[data-v-0f062477] .tw-bg-success-500 {
7153
7156
  --tw-bg-opacity: 1;
7154
7157
  background-color: rgb(36 168 16 / var(--tw-bg-opacity));
7155
7158
  }
7156
7159
  @media (min-width: 640px) {
7157
- .modal-product-detail[data-v-fca616f0] .modal {
7160
+ .modal-product-detail[data-v-0f062477] .modal {
7158
7161
  min-width: 100vh;
7159
7162
  }
7160
- .modal-cart[data-v-fca616f0] .modal {
7163
+ .modal-cart[data-v-0f062477] .modal {
7161
7164
  min-width: 90vh;
7162
7165
  max-height: 90vh;
7163
7166
  }
7164
- .modal-cart[data-v-fca616f0] .cart-image {
7167
+ .modal-cart[data-v-0f062477] .cart-image {
7165
7168
  width: 8rem;
7166
7169
  }
7167
- .modal-cart[data-v-fca616f0] .cart-option {
7170
+ .modal-cart[data-v-0f062477] .cart-option {
7168
7171
  width: 75%;
7169
7172
  }
7170
- .success-bar[data-v-fca616f0] {
7173
+ .success-bar[data-v-0f062477] {
7171
7174
  width: 50%;
7172
7175
  }
7173
7176
  }
7174
7177
  @media (max-width: 640px) {
7175
- .success-bar[data-v-fca616f0] {
7178
+ .success-bar[data-v-0f062477] {
7176
7179
  width: 91.666667%;
7177
7180
  }
7178
7181
  }
@@ -7996,21 +7999,21 @@ select[data-v-665b8067] {
7996
7999
  padding: 0.25rem var(--page-padding);
7997
8000
  }
7998
8001
 
7999
- .c-page-footer__container[data-v-613305b7] {
8002
+ .c-page-footer__container[data-v-ef9d02e0] {
8000
8003
  max-width: var(--brandsite-max-width);
8001
8004
  margin: 0 auto;
8002
8005
  padding: 0.25rem var(--page-padding);
8003
8006
  }
8004
- .c-page-footer__container-justified[data-v-613305b7] {
8007
+ .c-page-footer__container-justified[data-v-ef9d02e0] {
8005
8008
  -webkit-box-pack: justify;
8006
8009
  -ms-flex-pack: justify;
8007
8010
  justify-content: space-between;
8008
8011
  }
8009
- .sortable[data-v-613305b7] {
8012
+ .sortable[data-v-ef9d02e0] {
8010
8013
  outline-color: #b2bdfb;
8011
8014
  outline-width: 0.2rem;
8012
8015
  }
8013
- .brand-page__content--outline-selected[data-v-613305b7] {
8016
+ .brand-page__content--outline-selected[data-v-ef9d02e0] {
8014
8017
  position: relative;
8015
8018
  z-index: 10;
8016
8019
  margin-left: 0.25rem;
@@ -8019,25 +8022,25 @@ select[data-v-665b8067] {
8019
8022
  outline-width: 0.2rem;
8020
8023
  outline-style: dashed;
8021
8024
  }
8022
- .c_footer-container[data-v-613305b7] {
8025
+ .c_footer-container[data-v-ef9d02e0] {
8023
8026
  max-width: var(--brandsite-max-width);
8024
8027
  margin: 0 auto;
8025
8028
  padding-left: var(--page-padding);
8026
8029
  padding-right: var(--page-padding);
8027
8030
  }
8028
8031
  @container (max-width: 640px) {
8029
- .c-page-footer__container-justified[data-v-613305b7] {
8032
+ .c-page-footer__container-justified[data-v-ef9d02e0] {
8030
8033
  -webkit-box-orient: vertical;
8031
8034
  -webkit-box-direction: normal;
8032
8035
  -ms-flex-direction: column;
8033
8036
  flex-direction: column;
8034
8037
  }
8035
- .c-page-footer__container-justified[data-v-613305b7] > :nth-child(2) {
8038
+ .c-page-footer__container-justified[data-v-ef9d02e0] > :nth-child(2) {
8036
8039
  margin-bottom: 1rem;
8037
8040
  }
8038
8041
  }
8039
8042
  @container (min-width: 640px) {
8040
- .c-page-footer__container-justified-stack[data-v-613305b7] {
8043
+ .c-page-footer__container-justified-stack[data-v-ef9d02e0] {
8041
8044
  margin-left: 1rem;
8042
8045
  margin-right: 1rem;
8043
8046
  -webkit-box-pack: justify;
@@ -8046,7 +8049,7 @@ select[data-v-665b8067] {
8046
8049
  }
8047
8050
  }
8048
8051
 
8049
- .c-overlay[data-v-0b2b4f62] {
8052
+ .c-overlay[data-v-aa0f82c0] {
8050
8053
  position: fixed;
8051
8054
  inset: 0px;
8052
8055
  z-index: 40;
@@ -8064,15 +8067,15 @@ select[data-v-665b8067] {
8064
8067
  -webkit-transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
8065
8068
  transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
8066
8069
  }
8067
- .c-overlay--open[data-v-0b2b4f62] {
8070
+ .c-overlay--open[data-v-aa0f82c0] {
8068
8071
  opacity: 0.7;
8069
8072
  }
8070
- .c-overlay--closed[data-v-0b2b4f62] {
8073
+ .c-overlay--closed[data-v-aa0f82c0] {
8071
8074
  pointer-events: none;
8072
8075
  display: none;
8073
8076
  opacity: 0;
8074
8077
  }
8075
- .c-sidebar[data-v-0b2b4f62] {
8078
+ .c-sidebar[data-v-aa0f82c0] {
8076
8079
  /* No hardcoded background: the panel background comes from the hamburger
8077
8080
  defaultButtonStyle (bound via :style), so a transparent/unset default bg
8078
8081
  renders transparent instead of being forced white */
@@ -8092,32 +8095,32 @@ select[data-v-665b8067] {
8092
8095
  max-width: 66%;
8093
8096
  }
8094
8097
  @media (min-width: 768px) {
8095
- .device--mobile .c-sidebar[data-v-0b2b4f62] {
8098
+ .device--mobile .c-sidebar[data-v-aa0f82c0] {
8096
8099
  width: 66.666667%;
8097
8100
  }
8098
8101
  }
8099
- .c-sidebar--closed[data-v-0b2b4f62] {
8102
+ .c-sidebar--closed[data-v-aa0f82c0] {
8100
8103
  -webkit-transform: translateX(-100%);
8101
8104
  transform: translateX(-100%);
8102
8105
  visibility: hidden;
8103
8106
  }
8104
- .c-sidebar--open[data-v-0b2b4f62] {
8107
+ .c-sidebar--open[data-v-aa0f82c0] {
8105
8108
  -webkit-transform: translateX(0%);
8106
8109
  transform: translateX(0%);
8107
8110
  }
8108
- .c-chevron-transform[data-v-0b2b4f62] {
8111
+ .c-chevron-transform[data-v-aa0f82c0] {
8109
8112
  -webkit-transition: -webkit-transform 0.3s ease;
8110
8113
  transition: -webkit-transform 0.3s ease;
8111
8114
  transition: transform 0.3s ease;
8112
8115
  transition: transform 0.3s ease, -webkit-transform 0.3s ease;
8113
8116
  }
8114
- .c-chevron-expanded[data-v-0b2b4f62] {
8117
+ .c-chevron-expanded[data-v-aa0f82c0] {
8115
8118
  -webkit-transform: rotate(180deg);
8116
8119
  transform: rotate(180deg);
8117
8120
  }
8118
8121
 
8119
8122
  /* Button pinned to the bottom of the side menu; rules only apply when the button is on. */
8120
- .c-sidebar--has-cta[data-v-0b2b4f62] {
8123
+ .c-sidebar--has-cta[data-v-aa0f82c0] {
8121
8124
  display: -webkit-box;
8122
8125
  display: -ms-flexbox;
8123
8126
  display: flex;
@@ -8127,35 +8130,35 @@ select[data-v-665b8067] {
8127
8130
  flex-direction: column;
8128
8131
  overflow: hidden;
8129
8132
  }
8130
- .c-sidebar--has-cta .c-sidebar-header[data-v-0b2b4f62] {
8133
+ .c-sidebar--has-cta .c-sidebar-header[data-v-aa0f82c0] {
8131
8134
  -ms-flex-negative: 0;
8132
8135
  flex-shrink: 0;
8133
8136
  }
8134
- .c-sidebar--has-cta .c-nav-list[data-v-0b2b4f62] {
8137
+ .c-sidebar--has-cta .c-nav-list[data-v-aa0f82c0] {
8135
8138
  /* Lets the link list scroll instead of the panel. */
8136
8139
  min-height: 0;
8137
8140
  overflow-y: auto;
8138
8141
  }
8139
- .c-sidebar-cta[data-v-0b2b4f62] {
8142
+ .c-sidebar-cta[data-v-aa0f82c0] {
8140
8143
  position: relative;
8141
8144
  padding: 1rem;
8142
8145
  }
8143
8146
 
8144
8147
  /* The generic Button ships section spacing; the side menu, as the caller, strips it
8145
8148
  (same fit the header row applies in HeaderLayout.vue). */
8146
- .c-sidebar-cta[data-v-0b2b4f62] .bp-button {
8149
+ .c-sidebar-cta[data-v-aa0f82c0] .bp-button {
8147
8150
  margin-bottom: 0;
8148
8151
  min-height: 0;
8149
8152
  }
8150
- .c-sidebar-cta[data-v-0b2b4f62] .c-button__no-icon {
8153
+ .c-sidebar-cta[data-v-aa0f82c0] .c-button__no-icon {
8151
8154
  display: none;
8152
8155
  }
8153
8156
  /* Base label class, not a specific --offset-* variant, so a future offset swap can't slide it. */
8154
- .c-sidebar-cta[data-v-0b2b4f62] .c-button__label {
8157
+ .c-sidebar-cta[data-v-aa0f82c0] .c-button__label {
8155
8158
  -webkit-transform: none;
8156
8159
  transform: none;
8157
8160
  }
8158
- .c-sidebar--has-cta .c-sidebar-cta[data-v-0b2b4f62] {
8161
+ .c-sidebar--has-cta .c-sidebar-cta[data-v-aa0f82c0] {
8159
8162
  /* Keeps the button at the bottom whether links underfill or overflow. */
8160
8163
  margin-top: auto;
8161
8164
  -ms-flex-negative: 0;
@@ -8165,7 +8168,7 @@ select[data-v-665b8067] {
8165
8168
  }
8166
8169
 
8167
8170
  /* Thin separator line above the button, faded without dimming the button itself. */
8168
- .c-sidebar-cta[data-v-0b2b4f62]::before {
8171
+ .c-sidebar-cta[data-v-aa0f82c0]::before {
8169
8172
  content: '';
8170
8173
  position: absolute;
8171
8174
  top: 0;
@@ -8280,7 +8283,7 @@ to {
8280
8283
  font-family: Lato, Helvetica, sans-serif;
8281
8284
  }
8282
8285
 
8283
- .brand-page__footer[data-v-0a7ac3ed] {
8286
+ .brand-page__footer[data-v-1aa33248] {
8284
8287
  display: -webkit-box;
8285
8288
  display: -ms-flexbox;
8286
8289
  display: flex;
@@ -8288,7 +8291,7 @@ to {
8288
8291
  -ms-flex-pack: center;
8289
8292
  justify-content: center;
8290
8293
  }
8291
- .brand-page__footer-link[data-v-0a7ac3ed] {
8294
+ .brand-page__footer-link[data-v-1aa33248] {
8292
8295
  display: block;
8293
8296
  border-radius: 0.5rem;
8294
8297
  padding: 0.75rem;
@@ -8296,25 +8299,25 @@ to {
8296
8299
  -webkit-transition: background 0.2s ease-in-out;
8297
8300
  transition: background 0.2s ease-in-out;
8298
8301
  }
8299
- .brand-page__footer-link[data-v-0a7ac3ed]:hover {
8302
+ .brand-page__footer-link[data-v-1aa33248]:hover {
8300
8303
  opacity: 0.9;
8301
8304
  }
8302
- .icon-container[data-v-0a7ac3ed] {
8305
+ .icon-container[data-v-1aa33248] {
8303
8306
  width: 20px;
8304
8307
  overflow: hidden;
8305
8308
  }
8306
- .extra-height[data-v-0a7ac3ed] {
8309
+ .extra-height[data-v-1aa33248] {
8307
8310
  -webkit-transition: height 0.5s ease-in-out;
8308
8311
  transition: height 0.5s ease-in-out;
8309
8312
  width: 100%;
8310
8313
  }
8311
- .c-button__label[data-v-0a7ac3ed] {
8314
+ .c-button__label[data-v-1aa33248] {
8312
8315
  margin: 0 auto;
8313
8316
  word-break: break-word;
8314
8317
  overflow-wrap: anywhere;
8315
8318
  width: auto;
8316
8319
  }
8317
- .c-button[data-v-0a7ac3ed] {
8320
+ .c-button[data-v-1aa33248] {
8318
8321
  --icon-h: 1.5rem;
8319
8322
  --icon-m-r: 0.5rem;
8320
8323
  --icon-m-icon: 0.5rem;
@@ -8329,10 +8332,10 @@ to {
8329
8332
  -ms-flex-align: center !important;
8330
8333
  align-items: center !important;
8331
8334
  }
8332
- .button__icon[data-v-0a7ac3ed] {
8335
+ .button__icon[data-v-1aa33248] {
8333
8336
  margin-right: var(--icon-m-r);
8334
8337
  }
8335
- .btn-max-width[data-v-0a7ac3ed] {
8338
+ .btn-max-width[data-v-1aa33248] {
8336
8339
  max-width: 315px;
8337
8340
  width: 100%;
8338
8341
  }
@@ -8355,14 +8358,14 @@ body {
8355
8358
  visibility: hidden !important;
8356
8359
  }
8357
8360
 
8358
- .brand-page-root[data-v-2debce4b] {
8361
+ .brand-page-root[data-v-b1539a54] {
8359
8362
  height: 100%;
8360
8363
  }
8361
- .sortable[data-v-2debce4b] {
8364
+ .sortable[data-v-b1539a54] {
8362
8365
  outline-color: #b2bdfb;
8363
8366
  outline-width: 0.2rem;
8364
8367
  }
8365
- .brand-page[data-v-2debce4b] {
8368
+ .brand-page[data-v-b1539a54] {
8366
8369
  -webkit-box-sizing: border-box;
8367
8370
  box-sizing: border-box;
8368
8371
  display: -webkit-box;
@@ -8374,7 +8377,7 @@ body {
8374
8377
  -ms-flex-direction: column;
8375
8378
  flex-direction: column;
8376
8379
  }
8377
- .brand-page__background-shapes-layer[data-v-2debce4b] {
8380
+ .brand-page__background-shapes-layer[data-v-b1539a54] {
8378
8381
  position: fixed;
8379
8382
  top: 0;
8380
8383
  left: 0;
@@ -8385,11 +8388,11 @@ body {
8385
8388
  transform: translate3d(0, 0, 0);
8386
8389
  contain: layout paint;
8387
8390
  }
8388
- .template-preview .brand-page__background-shapes-layer[data-v-2debce4b],
8389
- .device-wrapper .brand-page__background-shapes-layer[data-v-2debce4b] {
8391
+ .template-preview .brand-page__background-shapes-layer[data-v-b1539a54],
8392
+ .device-wrapper .brand-page__background-shapes-layer[data-v-b1539a54] {
8390
8393
  height: 100%;
8391
8394
  }
8392
- .brand-page__inner--default[data-v-2debce4b] {
8395
+ .brand-page__inner--default[data-v-b1539a54] {
8393
8396
  position: relative;
8394
8397
  z-index: 10;
8395
8398
  display: -webkit-box;
@@ -8401,16 +8404,16 @@ body {
8401
8404
  -ms-flex-direction: column;
8402
8405
  flex-direction: column;
8403
8406
  }
8404
- .brand-page__inner--desktop[data-v-2debce4b] {
8407
+ .brand-page__inner--desktop[data-v-b1539a54] {
8405
8408
  min-height: 100vh;
8406
8409
  }
8407
- .brand-site__header[data-v-2debce4b] {
8410
+ .brand-site__header[data-v-b1539a54] {
8408
8411
  container-type: inline-size;
8409
8412
  }
8410
- .brand-page__header[data-v-2debce4b] {
8413
+ .brand-page__header[data-v-b1539a54] {
8411
8414
  padding-top: var(--page-padding);
8412
8415
  }
8413
- .brand-page__content--default[data-v-2debce4b] {
8416
+ .brand-page__content--default[data-v-b1539a54] {
8414
8417
  margin-left: auto;
8415
8418
  margin-right: auto;
8416
8419
  margin-bottom: 2.5rem;
@@ -8427,7 +8430,7 @@ body {
8427
8430
  flex-direction: column;
8428
8431
  max-width: var(--page-max-width);
8429
8432
  }
8430
- .brand-page__content--desktop[data-v-2debce4b] {
8433
+ .brand-page__content--desktop[data-v-b1539a54] {
8431
8434
  margin-left: auto;
8432
8435
  margin-right: auto;
8433
8436
  display: -webkit-box;
@@ -8443,15 +8446,15 @@ body {
8443
8446
  flex-direction: column;
8444
8447
  max-width: 100%;
8445
8448
  }
8446
- .brand-page__content--inner[data-v-2debce4b] {
8449
+ .brand-page__content--inner[data-v-b1539a54] {
8447
8450
  padding-left: var(--page-padding);
8448
8451
  padding-right: var(--page-padding);
8449
8452
  }
8450
- .brand-page__content--inner--brandsite[data-v-2debce4b] {
8453
+ .brand-page__content--inner--brandsite[data-v-b1539a54] {
8451
8454
  max-width: var(--brandsite-max-width);
8452
8455
  margin: 0 auto;
8453
8456
  }
8454
- .brand-page__content--outline-selected[data-v-2debce4b] {
8457
+ .brand-page__content--outline-selected[data-v-b1539a54] {
8455
8458
  position: relative;
8456
8459
  z-index: 10;
8457
8460
  outline-color: #b2bdfb;
@@ -8459,20 +8462,20 @@ body {
8459
8462
  outline-style: dashed;
8460
8463
  outline-offset: -0.25rem;
8461
8464
  }
8462
- .brand-page__content--outline-footer-selected[data-v-2debce4b] {
8465
+ .brand-page__content--outline-footer-selected[data-v-b1539a54] {
8463
8466
  outline-color: #f7768c;
8464
8467
  outline-width: 0.2rem;
8465
8468
  outline-style: dashed;
8466
8469
  outline-offset: -0.25rem;
8467
8470
  }
8468
8471
  @media (max-width: 640px) {
8469
- .brand-page__content--inner--full-width[data-v-2debce4b] {
8472
+ .brand-page__content--inner--full-width[data-v-b1539a54] {
8470
8473
  padding-left: 0;
8471
8474
  padding-right: 0;
8472
8475
  }
8473
8476
  }
8474
8477
  @media (min-width: 640px) {
8475
- .brand-page__content--inner--full-width[data-v-2debce4b] {
8478
+ .brand-page__content--inner--full-width[data-v-b1539a54] {
8476
8479
  padding-left: var(--page-padding);
8477
8480
  padding-right: var(--page-padding);
8478
8481
  }
@@ -9412,7 +9415,7 @@ body {
9412
9415
  display: none;
9413
9416
  }
9414
9417
 
9415
- .c-gallery-figure[data-v-63a71bcc] {
9418
+ .c-gallery-figure[data-v-f339e255] {
9416
9419
 
9417
9420
  position: relative;
9418
9421
 
@@ -9428,7 +9431,7 @@ body {
9428
9431
 
9429
9432
  border-color: rgb(209 209 209 / var(--tw-border-opacity))
9430
9433
  }
9431
- .c-gallery-image__delete[data-v-63a71bcc] {
9434
+ .c-gallery-image__delete[data-v-f339e255] {
9432
9435
 
9433
9436
  cursor: pointer;
9434
9437
 
@@ -9459,7 +9462,7 @@ body {
9459
9462
  transition-timing-function: cubic-bezier(0, 0, 0.2, 1)
9460
9463
  }
9461
9464
  @media (hover: hover) and (pointer: fine) {
9462
- .c-gallery-image__delete[data-v-63a71bcc]:hover {
9465
+ .c-gallery-image__delete[data-v-f339e255]:hover {
9463
9466
 
9464
9467
  --tw-text-opacity: 1;
9465
9468
 
@@ -9541,13 +9544,13 @@ body {
9541
9544
  transition-timing-function: cubic-bezier(0, 0, 0.2, 1)
9542
9545
  }
9543
9546
 
9544
- .c-media-btn[data-v-10934b19]:not(.c-media-btn--selected):hover {
9547
+ .c-media-btn[data-v-b47f879d]:not(.c-media-btn--selected):hover {
9545
9548
  --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
9546
9549
  --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);
9547
9550
  -webkit-box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
9548
9551
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
9549
9552
  }
9550
- .c-media-btn__img[data-v-10934b19] {
9553
+ .c-media-btn__img[data-v-b47f879d] {
9551
9554
  overflow: hidden;
9552
9555
  -webkit-transition-property: -webkit-box-shadow;
9553
9556
  transition-property: -webkit-box-shadow;
@@ -9563,7 +9566,7 @@ body {
9563
9566
  20px;
9564
9567
  aspect-ratio: 1.09 / 1;
9565
9568
  }
9566
- .c-media-btn__img img[data-v-10934b19] {
9569
+ .c-media-btn__img img[data-v-b47f879d] {
9567
9570
  -webkit-margin-after: 100%;
9568
9571
  -webkit-margin-before: 100%;
9569
9572
  -webkit-margin-start: 100%;
@@ -9596,11 +9599,16 @@ body {
9596
9599
  contain-intrinsic-size: auto 36px;
9597
9600
  }
9598
9601
 
9599
- .rich-text-editor[data-v-d27ffcd7]:focus-within {
9602
+ .text-style-role-dropdown__item[data-v-44af9b33]:hover {
9603
+ background-color: #eee;
9604
+ }
9605
+
9606
+ .rich-text-editor[data-v-01903c9e]:focus-within {
9600
9607
  --tw-border-opacity: 1;
9601
9608
  border-color: rgb(96 96 96 / var(--tw-border-opacity));
9602
9609
  }
9603
- .style-editor[data-v-d27ffcd7] {
9610
+ .style-editor[data-v-01903c9e] {
9611
+ /* Spacing lives here: equal padding + gap. Items carry no margin/padding of their own. */
9604
9612
  display: -webkit-box;
9605
9613
  display: -ms-flexbox;
9606
9614
  display: flex;
@@ -9610,8 +9618,10 @@ body {
9610
9618
  flex-direction: row;
9611
9619
  -ms-flex-wrap: wrap;
9612
9620
  flex-wrap: wrap;
9621
+ gap: 0.25rem;
9622
+ padding: 0.25rem;
9613
9623
  }
9614
- .style-editor[data-v-d27ffcd7] button:not(.c-button-style) {
9624
+ .style-editor[data-v-01903c9e] button:not(.c-button-style) {
9615
9625
  display: -webkit-box;
9616
9626
  display: -ms-flexbox;
9617
9627
  display: flex;
@@ -9621,22 +9631,39 @@ body {
9621
9631
  padding-left: 0.5rem;
9622
9632
  padding-right: 0.5rem;
9623
9633
  }
9624
- .style-editor-button[data-v-d27ffcd7] {
9634
+ .style-editor-button[data-v-01903c9e] {
9625
9635
  cursor: pointer;
9626
- padding-left: 0.25rem;
9627
- padding-top: 0.25rem;
9628
9636
  }
9629
- .toolbar-editor-button.active[data-v-d27ffcd7] {
9637
+ /* Role + font selectors evenly split the toolbar's first row at every width; the
9638
+ conditional reset tool (roller-brush) sits between them and takes only its own width
9639
+ while shown (it collapses otherwise, so the selectors fill the row).
9640
+ min-width:0 lets them shrink below their content so they never wrap to a second line —
9641
+ the dropdown title truncates instead. */
9642
+ .style-editor-button-textstyle[data-v-01903c9e],
9643
+ .style-editor-button-font[data-v-01903c9e] {
9644
+ -webkit-box-flex: 1;
9645
+ -ms-flex: 1 1 0px;
9646
+ flex: 1 1 0;
9647
+ min-width: 0;
9648
+ }
9649
+ /* The size stepper leads the formatting row (with the icons), so it sits at a fixed width
9650
+ instead of growing. */
9651
+ .style-editor-button.stepper[data-v-01903c9e] {
9652
+ -webkit-box-flex: 0;
9653
+ -ms-flex: 0 0 auto;
9654
+ flex: 0 0 auto;
9655
+ /* Two 30px −/+ buttons plus the 28px 3-digit input. A narrower box can't shrink the
9656
+ stepper — its + button paints over the colour picker instead. */
9657
+ width: 88px;
9658
+ }
9659
+ .toolbar-editor-button.active[data-v-01903c9e] {
9630
9660
  font-weight: 700;
9631
9661
  background: #e3e3e3;
9632
9662
  }
9633
- .toolbar-editor-button[data-v-d27ffcd7] {
9663
+ .toolbar-editor-button[data-v-01903c9e] {
9634
9664
  height: 32px;
9635
9665
  width: 32px;
9636
9666
  border-radius: 4px;
9637
- margin-top: 0.25rem;
9638
- margin-bottom: 0.25rem;
9639
- margin-left: 0.25rem;
9640
9667
  display: -webkit-box;
9641
9668
  display: -ms-flexbox;
9642
9669
  display: flex;
@@ -9648,7 +9675,7 @@ body {
9648
9675
  -ms-flex-pack: center;
9649
9676
  justify-content: center;
9650
9677
  }
9651
- [data-v-d27ffcd7] .ProseMirror {
9678
+ [data-v-01903c9e] .ProseMirror {
9652
9679
  border-top: 1px solid #ccc;
9653
9680
  min-height: 150px;
9654
9681
  padding: 8px;
@@ -9661,13 +9688,13 @@ body {
9661
9688
  max-height: 14rem;
9662
9689
  overflow: auto;
9663
9690
  }
9664
- .editor-compact[data-v-d27ffcd7] .ProseMirror {
9691
+ .editor-compact[data-v-01903c9e] .ProseMirror {
9665
9692
  min-height: 6rem;
9666
9693
  }
9667
- [data-v-d27ffcd7] .ProseMirror:focus {
9694
+ [data-v-01903c9e] .ProseMirror:focus {
9668
9695
  outline: none;
9669
9696
  }
9670
- [data-v-d27ffcd7] .ProseMirror * {
9697
+ [data-v-01903c9e] .ProseMirror * {
9671
9698
  text-align: left !important;
9672
9699
  font-size: 16px !important;
9673
9700
  color: #606060 !important;
@@ -9676,29 +9703,61 @@ body {
9676
9703
  background-color: transparent !important;
9677
9704
  font-family: 'Lato' !important;
9678
9705
  }
9679
- [data-v-d27ffcd7] .ProseMirror a s,[data-v-d27ffcd7] .ProseMirror a strike,[data-v-d27ffcd7] .ProseMirror a [data-strike] {
9680
- text-decoration: line-through !important;
9706
+
9707
+ /* A link shows only the decoration it stores (its `<u>`), as on the published page, whose base
9708
+ styles give `a` `text-decoration: inherit`; the browser default would underline every link. */
9709
+ [data-v-01903c9e] .ProseMirror a {
9710
+ text-decoration: inherit !important;
9681
9711
  }
9682
- [data-v-d27ffcd7] .ProseMirror a,[data-v-d27ffcd7] .ProseMirror a * {
9712
+ [data-v-01903c9e] .ProseMirror a,[data-v-01903c9e] .ProseMirror a * {
9683
9713
  /* Keep in sync with DEFAULT_LINK_COLOR (src/constants/rich-text-editor.constants.ts) — scoped CSS can't import it. */
9684
9714
  color: #0097d7 !important;
9685
- text-decoration: underline !important;
9686
9715
  }
9687
- .error-message[data-v-d27ffcd7] {
9716
+ .error-message[data-v-01903c9e] {
9688
9717
  color: #d32f2f;
9689
9718
  font-size: 0.875rem;
9690
9719
  margin-top: 4px;
9691
9720
  }
9692
- .popup-container[data-v-d27ffcd7] {
9721
+ .popup-container[data-v-01903c9e] {
9693
9722
  position: absolute;
9694
9723
  z-index: 10;
9695
9724
  right: 8%;
9696
9725
  }
9697
- .hyperlink-preview[data-v-d27ffcd7] {
9726
+
9727
+ /* The toggle's own positioning context, so the popup below it doesn't turn `.style-editor`
9728
+ into a containing block (which would squash the colour-picker popup). */
9729
+ .style-modified-anchor[data-v-01903c9e] {
9730
+ display: -webkit-inline-box;
9731
+ display: -ms-inline-flexbox;
9732
+ display: inline-flex;
9733
+ position: relative;
9734
+ }
9735
+ .style-modified-toggle[data-v-01903c9e] {
9736
+ border-width: 1px;
9737
+ border-style: solid;
9738
+ --tw-border-opacity: 1;
9739
+ border-color: rgb(227 227 227 / var(--tw-border-opacity));
9740
+ --tw-bg-opacity: 1;
9741
+ background-color: rgb(255 255 255 / var(--tw-bg-opacity));
9742
+ }
9743
+ .style-modified-anchor--hidden[data-v-01903c9e] {
9744
+ display: none;
9745
+ }
9746
+ /* Hangs just below the toggle (its row), floating over the rows beneath rather than sitting
9747
+ at the toolbar's bottom. Centred on the toggle by default; the inline `left` also clamps
9748
+ it inside the toolbar when the toggle sits too near an edge (keep width in sync with
9749
+ STYLE_MODIFIED_POPUP_WIDTH). */
9750
+ .style-modified-popup[data-v-01903c9e] {
9751
+ position: absolute;
9752
+ z-index: 20;
9753
+ top: calc(100% + 6px);
9754
+ width: 300px;
9755
+ }
9756
+ .hyperlink-preview[data-v-01903c9e] {
9698
9757
  position: absolute;
9699
9758
  z-index: 10;
9700
9759
  }
9701
- .popup-panel[data-v-d27ffcd7] {
9760
+ .popup-panel[data-v-01903c9e] {
9702
9761
  background: #fff;
9703
9762
  border: 1px solid #ccc;
9704
9763
  border-radius: 8px;
@@ -9706,17 +9765,17 @@ body {
9706
9765
  -webkit-box-shadow: 0 2px 6px rgba(0, 0, 0, 0.3);
9707
9766
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.3);
9708
9767
  }
9709
- .popup-panel[data-v-d27ffcd7] input {
9768
+ .popup-panel[data-v-01903c9e] input {
9710
9769
  border: 1px solid #ccc;
9711
9770
  border-radius: 8px;
9712
9771
  }
9713
- .border[data-v-d27ffcd7] {
9772
+ .border[data-v-01903c9e] {
9714
9773
  width: 100%;
9715
9774
  --tw-bg-opacity: 1;
9716
9775
  background-color: rgb(209 209 209 / var(--tw-bg-opacity));
9717
9776
  height: 1px;
9718
9777
  }
9719
- [data-v-d27ffcd7] .text-dropdown-title {
9778
+ [data-v-01903c9e] .text-dropdown-title {
9720
9779
  height: 2rem;
9721
9780
  width: 100%;
9722
9781
  font-size: 0.875rem;
@@ -9725,7 +9784,7 @@ body {
9725
9784
  color: rgb(38 38 38 / var(--tw-text-opacity));
9726
9785
  font-weight: 300;
9727
9786
  }
9728
- [data-v-d27ffcd7] .ProseMirror p.is-editor-empty:first-child::before {
9787
+ [data-v-01903c9e] .ProseMirror p.is-editor-empty:first-child::before {
9729
9788
  --tw-text-opacity: 1;
9730
9789
  color: rgb(209 209 209 / var(--tw-text-opacity));
9731
9790
  content: attr(data-placeholder);
@@ -9734,56 +9793,11 @@ body {
9734
9793
  pointer-events: none;
9735
9794
  }
9736
9795
  @media (max-width: 399px) {
9737
- .style-editor-button-font[data-v-d27ffcd7],
9738
- .style-editor-button-textstyle[data-v-d27ffcd7] {
9739
- max-width: 48%;
9740
- padding-bottom: 0.25rem;
9741
- }
9742
- .style-editor-button.stepper[data-v-d27ffcd7] {
9743
- max-width: 40%;
9744
- }
9745
- .style-editor-button-stepper[data-v-d27ffcd7] {
9746
- max-width: 100%;
9747
- }
9748
- .border.desktop[data-v-d27ffcd7] {
9749
- display: none;
9750
- }
9751
- .border.mobile[data-v-d27ffcd7] {
9752
- display: block;
9753
- }
9754
- [data-v-d27ffcd7] .left-align {
9755
- -webkit-transform: translateX(-48%);
9756
- transform: translateX(-48%);
9757
- }
9758
- .hyperlink-popup[data-v-d27ffcd7] {
9796
+ .hyperlink-popup[data-v-01903c9e] {
9759
9797
  z-index: 10000 !important;
9760
9798
  }
9761
9799
  }
9762
- @media (min-width: 400px) {
9763
- .style-editor-button.stepper[data-v-d27ffcd7] {
9764
- max-width: 32%;
9765
- }
9766
- .style-editor-button-font[data-v-d27ffcd7] {
9767
- max-width: 28%;
9768
- }
9769
- .style-editor-button-stepper[data-v-d27ffcd7] {
9770
- max-width: 100%;
9771
- }
9772
- .style-editor-button-textstyle[data-v-d27ffcd7] {
9773
- max-width: 25%;
9774
- }
9775
- .border.desktop[data-v-d27ffcd7] {
9776
- display: block;
9777
- }
9778
- .border.mobile[data-v-d27ffcd7] {
9779
- display: none;
9780
- }
9781
- [data-v-d27ffcd7] .left-align {
9782
- -webkit-transform: translateX(-25%);
9783
- transform: translateX(-25%);
9784
- }
9785
- }
9786
- .drop-down-item[data-v-d27ffcd7]:hover {
9800
+ .drop-down-item[data-v-01903c9e]:hover {
9787
9801
  background-color: #eee;
9788
9802
  }
9789
9803
 
@@ -9803,7 +9817,70 @@ input[type='number'][data-v-f3d394d9] {
9803
9817
  }
9804
9818
  }
9805
9819
 
9806
- .testimonial-preview[data-v-bbe8a664] {
9820
+ /* The toggle's own positioning context so the popup hangs relative to it. */
9821
+ .text-style-field__modified-anchor[data-v-8166878a] {
9822
+ position: relative;
9823
+ display: -webkit-box;
9824
+ display: -ms-flexbox;
9825
+ display: flex;
9826
+ -ms-flex-negative: 0;
9827
+ flex-shrink: 0
9828
+ }
9829
+ .text-style-field__modified-toggle[data-v-8166878a] {
9830
+ display: -webkit-box;
9831
+ display: -ms-flexbox;
9832
+ display: flex;
9833
+ height: 100%;
9834
+ width: 2.75rem;
9835
+ cursor: pointer;
9836
+ -webkit-box-align: center;
9837
+ -ms-flex-align: center;
9838
+ align-items: center;
9839
+ -webkit-box-pack: center;
9840
+ -ms-flex-pack: center;
9841
+ justify-content: center;
9842
+ border-radius: 0.75rem;
9843
+ border-width: 1px;
9844
+ border-style: solid;
9845
+ --tw-border-opacity: 1;
9846
+ border-color: rgb(227 227 227 / var(--tw-border-opacity));
9847
+ --tw-bg-opacity: 1;
9848
+ background-color: rgb(255 255 255 / var(--tw-bg-opacity));
9849
+ --tw-text-opacity: 1;
9850
+ color: rgb(61 61 61 / var(--tw-text-opacity))
9851
+ }
9852
+ .text-style-field__modified-toggle--active[data-v-8166878a] {
9853
+ --tw-bg-opacity: 1;
9854
+ background-color: rgb(245 245 245 / var(--tw-bg-opacity))
9855
+ }
9856
+ /* Hangs just below the toggle, aligned to the panel's right edge. */
9857
+ .text-style-field__modified-popup[data-v-8166878a] {
9858
+ position: absolute;
9859
+ right: 0px;
9860
+ z-index: 20;
9861
+ display: -webkit-box;
9862
+ display: -ms-flexbox;
9863
+ display: flex;
9864
+ -webkit-box-orient: vertical;
9865
+ -webkit-box-direction: normal;
9866
+ -ms-flex-direction: column;
9867
+ flex-direction: column;
9868
+ gap: 0.25rem;
9869
+ border-radius: 0.75rem;
9870
+ border-width: 1px;
9871
+ border-style: solid;
9872
+ --tw-border-opacity: 1;
9873
+ border-color: rgb(227 227 227 / var(--tw-border-opacity));
9874
+ --tw-bg-opacity: 1;
9875
+ background-color: rgb(255 255 255 / var(--tw-bg-opacity));
9876
+ padding: 1rem;
9877
+ top: calc(100% + 6px);
9878
+ width: 260px;
9879
+ -webkit-box-shadow: 0 2px 6px rgba(0, 0, 0, 0.3);
9880
+ box-shadow: 0 2px 6px rgba(0, 0, 0, 0.3)
9881
+ }
9882
+
9883
+ .testimonial-preview[data-v-6b1ec164] {
9807
9884
  overflow: hidden;
9808
9885
  text-overflow: ellipsis;
9809
9886
  max-height: 21px;
@@ -9889,15 +9966,15 @@ input[type='number'][data-v-f3d394d9] {
9889
9966
  -4px 0;
9890
9967
  }
9891
9968
 
9892
- .color-matches[data-v-8dfdf8b1] {
9969
+ .color-matches[data-v-0f948381] {
9893
9970
  border-collapse: collapse;
9894
9971
  /* AUTO layout would hand the wider column to whichever value is longest and
9895
9972
  squeeze the names. A name is an identifier you scan, a value is what you
9896
9973
  read — so the names get the fixed share and the values wrap. */
9897
9974
  table-layout: fixed;
9898
9975
  }
9899
- .color-matches td[data-v-8dfdf8b1],
9900
- .color-matches th[data-v-8dfdf8b1] {
9976
+ .color-matches td[data-v-0f948381],
9977
+ .color-matches th[data-v-0f948381] {
9901
9978
  /* Top-aligned, because a wrapped value is taller than its name. */
9902
9979
  vertical-align: top;
9903
9980
  padding-bottom: 0.375rem;
@@ -9907,27 +9984,27 @@ input[type='number'][data-v-f3d394d9] {
9907
9984
  cell rather than widen the table past the sidebar. */
9908
9985
  overflow-wrap: anywhere;
9909
9986
  }
9910
- .color-matches__name[data-v-8dfdf8b1] {
9987
+ .color-matches__name[data-v-0f948381] {
9911
9988
  width: 45%;
9912
9989
  padding-right: 0.5rem;
9913
9990
  }
9914
9991
  /* Matches the swatch's own 14px box so a swatch-less row still aligns its value.
9915
9992
  `display: block` for the same reason the swatch needs it — a bare `<span>` would
9916
9993
  ignore the width. */
9917
- .color-matches__gutter[data-v-8dfdf8b1] {
9994
+ .color-matches__gutter[data-v-0f948381] {
9918
9995
  display: block;
9919
9996
  width: 14px;
9920
9997
  padding-top: 2px;
9921
9998
  }
9922
9999
  /* The stack number: fixed-width so every surface NAME starts at the same x, and
9923
10000
  muted so it reads as an axis tick rather than part of the name. */
9924
- .color-matches__layer[data-v-8dfdf8b1] {
10001
+ .color-matches__layer[data-v-0f948381] {
9925
10002
  display: inline-block;
9926
10003
  width: 10px;
9927
10004
  margin-right: 4px;
9928
10005
  font-size: 0.625rem;
9929
10006
  }
9930
- .color-matches__order[data-v-8dfdf8b1] {
10007
+ .color-matches__order[data-v-0f948381] {
9931
10008
  letter-spacing: normal;
9932
10009
  }
9933
10010
 
@@ -10056,7 +10133,7 @@ input.dynamic-width-input[data-v-97be2e87]:focus {
10056
10133
  }
10057
10134
  }
10058
10135
 
10059
- .page-settings-section-style_option-title[data-v-8342fc08] {
10136
+ .page-settings-section-style_option-title[data-v-45d5d313] {
10060
10137
  font-family: Inter, Helvetica, sans-serif;
10061
10138
  font-size: 0.875rem;
10062
10139
  line-height: 1.25rem;
@@ -10065,7 +10142,7 @@ input.dynamic-width-input[data-v-97be2e87]:focus {
10065
10142
  color: rgb(24 24 24 / var(--tw-text-opacity))
10066
10143
  }
10067
10144
 
10068
- .header-button-settings_option-title[data-v-86ff33c1] {
10145
+ .header-button-settings_option-title[data-v-29fa6811] {
10069
10146
  font-family: Inter, Helvetica, sans-serif;
10070
10147
  font-size: 0.875rem;
10071
10148
  line-height: 1.25rem;
@@ -10113,7 +10190,7 @@ input.dynamic-width-input[data-v-97be2e87]:focus {
10113
10190
  margin: 0 auto;
10114
10191
  }
10115
10192
 
10116
- .header-settings-panel_option-title[data-v-670bf7f8] {
10193
+ .header-settings-panel_option-title[data-v-792691ea] {
10117
10194
  font-family: Inter, Helvetica, sans-serif;
10118
10195
  font-size: 0.875rem;
10119
10196
  line-height: 1.25rem;
@@ -10217,20 +10294,39 @@ input.dynamic-width-input[data-v-97be2e87]:focus {
10217
10294
  --tw-bg-opacity: 1;
10218
10295
  background-color: rgb(255 255 255 / var(--tw-bg-opacity));
10219
10296
  }
10297
+
10298
+ /* CollapsiblePanel's subtitle takes text only, so the size order warning (this panel's only
10299
+ subtitle) is boxed from here. StyleSettings.test.ts fails if a library bump moves it. */
10300
+ .c-text-style-panel .tw-grow > div + div {
10301
+ margin-top: 0.5rem;
10302
+ margin-bottom: 0px;
10303
+ border-radius: 0.5rem;
10304
+ border-width: 1px;
10305
+ border-style: solid;
10306
+ --tw-border-opacity: 1;
10307
+ border-color: rgb(227 160 8 / var(--tw-border-opacity));
10308
+ --tw-bg-opacity: 1;
10309
+ background-color: rgb(252 246 230 / var(--tw-bg-opacity));
10310
+ padding: 0.5rem;
10311
+ font-size: 0.75rem;
10312
+ line-height: 1rem;
10313
+ --tw-text-opacity: 1;
10314
+ color: rgb(91 64 3 / var(--tw-text-opacity));
10315
+ }
10220
10316
  .c-select {
10221
10317
  background-repeat: no-repeat;
10222
10318
  background-image: url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M6.46967 9.46967C6.76256 9.17678 7.23744 9.17678 7.53033 9.46967L12 13.9393L16.4697 9.46967C16.7626 9.17678 17.2374 9.17678 17.5303 9.46967C17.8232 9.76256 17.8232 10.2374 17.5303 10.5303L12.5303 15.5303C12.3897 15.671 12.1989 15.75 12 15.75C11.8011 15.75 11.6103 15.671 11.4697 15.5303L6.46967 10.5303C6.17678 10.2374 6.17678 9.76256 6.46967 9.46967Z' fill='%23595959'/%3E%3C/svg%3E%0A");
10223
10319
  background-position: top 50% right 0.5rem;
10224
10320
  }
10225
10321
 
10226
- .template-preview-container[data-v-246f2118] {
10322
+ .template-preview-container[data-v-dc1d50d6] {
10227
10323
  border-radius: 0.75rem;
10228
10324
  height: 25rem;
10229
10325
  -webkit-box-shadow: 0 0 0 2px rgba(0, 0, 0, 0.1);
10230
10326
  box-shadow: 0 0 0 2px rgba(0, 0, 0, 0.1);
10231
10327
  }
10232
10328
  @media (min-width: 768px) {
10233
- .template-preview-container[data-v-246f2118] {
10329
+ .template-preview-container[data-v-dc1d50d6] {
10234
10330
  -webkit-transition-property: all;
10235
10331
  transition-property: all;
10236
10332
  -webkit-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
@@ -10240,17 +10336,17 @@ input.dynamic-width-input[data-v-97be2e87]:focus {
10240
10336
  -webkit-transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
10241
10337
  transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
10242
10338
  }
10243
- .template-preview-container[data-v-246f2118]:hover {
10339
+ .template-preview-container[data-v-dc1d50d6]:hover {
10244
10340
  -webkit-transform: scale(1.01);
10245
10341
  transform: scale(1.01);
10246
10342
  }
10247
10343
  }
10248
10344
 
10249
- .template-preview[data-v-a172382d] {
10345
+ .template-preview[data-v-0ece1edb] {
10250
10346
  position: relative;
10251
10347
  background-attachment: initial !important
10252
10348
  }
10253
- .template-preview__overlay[data-v-a172382d] {
10349
+ .template-preview__overlay[data-v-0ece1edb] {
10254
10350
  position: absolute;
10255
10351
  top: 0px;
10256
10352
  left: 0px;
@@ -10262,12 +10358,12 @@ input.dynamic-width-input[data-v-97be2e87]:focus {
10262
10358
  opacity: 0;
10263
10359
  z-index: 100
10264
10360
  }
10265
- .template-preview__image-container[data-v-a172382d] {
10361
+ .template-preview__image-container[data-v-0ece1edb] {
10266
10362
  pointer-events: none;
10267
10363
  height: 100%;
10268
10364
  width: 100%
10269
10365
  }
10270
- .template-preview__image[data-v-a172382d] {
10366
+ .template-preview__image[data-v-0ece1edb] {
10271
10367
  height: 100%;
10272
10368
  width: 100%;
10273
10369
  -o-object-fit: fill;
@@ -10277,13 +10373,13 @@ input.dynamic-width-input[data-v-97be2e87]:focus {
10277
10373
  transition: filter 0.2s ease;
10278
10374
  transition: filter 0.2s ease, -webkit-filter 0.2s ease
10279
10375
  }
10280
- .template-preview__page[data-v-a172382d] {
10376
+ .template-preview__page[data-v-0ece1edb] {
10281
10377
  pointer-events: none
10282
10378
  }
10283
- .template-preview[data-v-a172382d] .c-shape-background {
10379
+ .template-preview[data-v-0ece1edb] .c-shape-background {
10284
10380
  position: absolute
10285
10381
  }
10286
- .template-preview__image[data-v-a172382d] .c-shape-background {
10382
+ .template-preview__image[data-v-0ece1edb] .c-shape-background {
10287
10383
  position: absolute
10288
10384
  }
10289
10385