@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
@@ -1284,8 +1284,8 @@ a.maker-anchor {
1284
1284
  .tw-max-h-72 {
1285
1285
  max-height: 18rem;
1286
1286
  }
1287
- .tw-max-h-9 {
1288
- max-height: 2.25rem;
1287
+ .tw-max-h-8 {
1288
+ max-height: 2rem;
1289
1289
  }
1290
1290
  .tw-max-h-\[340px\] {
1291
1291
  max-height: 340px;
@@ -1314,6 +1314,9 @@ a.maker-anchor {
1314
1314
  .tw-min-h-\[1\.25rem\] {
1315
1315
  min-height: 1.25rem;
1316
1316
  }
1317
+ .tw-min-h-\[38px\] {
1318
+ min-height: 38px;
1319
+ }
1317
1320
  .tw-min-h-full {
1318
1321
  min-height: 100%;
1319
1322
  }
@@ -1548,12 +1551,15 @@ a.maker-anchor {
1548
1551
  .tw-min-w-10 {
1549
1552
  min-width: 2.5rem;
1550
1553
  }
1551
- .tw-min-w-8 {
1552
- min-width: 2rem;
1554
+ .tw-min-w-7 {
1555
+ min-width: 1.75rem;
1553
1556
  }
1554
1557
  .tw-min-w-\[120px\] {
1555
1558
  min-width: 120px;
1556
1559
  }
1560
+ .tw-min-w-\[220px\] {
1561
+ min-width: 220px;
1562
+ }
1557
1563
  .tw-min-w-\[310px\] {
1558
1564
  min-width: 310px;
1559
1565
  }
@@ -1810,10 +1816,6 @@ a.maker-anchor {
1810
1816
  -ms-flex-preferred-size: 0px;
1811
1817
  flex-basis: 0px;
1812
1818
  }
1813
- .tw-origin-top-left {
1814
- -webkit-transform-origin: top left;
1815
- transform-origin: top left;
1816
- }
1817
1819
  .tw-origin-top-right {
1818
1820
  -webkit-transform-origin: top right;
1819
1821
  transform-origin: top right;
@@ -2783,6 +2785,10 @@ a.maker-anchor {
2783
2785
  --tw-border-opacity: 1;
2784
2786
  border-color: rgb(89 89 89 / var(--tw-border-opacity));
2785
2787
  }
2788
+ .tw-border-secondary-800 {
2789
+ --tw-border-opacity: 1;
2790
+ border-color: rgb(36 36 36 / var(--tw-border-opacity));
2791
+ }
2786
2792
  .tw-border-success-400 {
2787
2793
  --tw-border-opacity: 1;
2788
2794
  border-color: rgb(80 185 64 / var(--tw-border-opacity));
@@ -3248,9 +3254,6 @@ a.maker-anchor {
3248
3254
  .tw-pl-0\.5 {
3249
3255
  padding-left: 0.125rem;
3250
3256
  }
3251
- .tw-pl-1 {
3252
- padding-left: 0.25rem;
3253
- }
3254
3257
  .tw-pl-12 {
3255
3258
  padding-left: 3rem;
3256
3259
  }
@@ -6290,7 +6293,7 @@ input[data-v-4cd691db]::-webkit-inner-spin-button {
6290
6293
  font-family: Lato, Helvetica, sans-serif;
6291
6294
  }
6292
6295
 
6293
- .carousel-wrapper[data-v-907fe6e9] {
6296
+ .carousel-wrapper[data-v-1d4fd3e2] {
6294
6297
  position: relative;
6295
6298
  overflow-x: auto;
6296
6299
  overflow-y: hidden;
@@ -6300,15 +6303,15 @@ input[data-v-4cd691db]::-webkit-inner-spin-button {
6300
6303
  -ms-overflow-style: none;
6301
6304
  width: 100%;
6302
6305
  }
6303
- .scroll-chevron[data-v-907fe6e9] {
6306
+ .scroll-chevron[data-v-1d4fd3e2] {
6304
6307
  background: none !important;
6305
6308
  border: none !important;
6306
6309
  }
6307
- .carousel-wrapper[data-v-907fe6e9]:active {
6310
+ .carousel-wrapper[data-v-1d4fd3e2]:active {
6308
6311
  cursor: -webkit-grabbing;
6309
6312
  cursor: grabbing;
6310
6313
  }
6311
- .carousel-track[data-v-907fe6e9] {
6314
+ .carousel-track[data-v-1d4fd3e2] {
6312
6315
  display: -webkit-box;
6313
6316
  display: -ms-flexbox;
6314
6317
  display: flex;
@@ -6322,7 +6325,7 @@ input[data-v-4cd691db]::-webkit-inner-spin-button {
6322
6325
  margin: 0 auto;
6323
6326
  gap: 8px;
6324
6327
  }
6325
- .carousel-item[data-v-907fe6e9] {
6328
+ .carousel-item[data-v-1d4fd3e2] {
6326
6329
  position: relative;
6327
6330
  -ms-flex-negative: 0;
6328
6331
  flex-shrink: 0;
@@ -6333,7 +6336,7 @@ input[data-v-4cd691db]::-webkit-inner-spin-button {
6333
6336
  -ms-flex-align: center;
6334
6337
  align-items: center;
6335
6338
  }
6336
- .carousel-link[data-v-907fe6e9] {
6339
+ .carousel-link[data-v-1d4fd3e2] {
6337
6340
  display: block;
6338
6341
  padding: 12px 8px;
6339
6342
  text-decoration: none;
@@ -6346,7 +6349,7 @@ input[data-v-4cd691db]::-webkit-inner-spin-button {
6346
6349
  -ms-flex-item-align: stretch;
6347
6350
  align-self: stretch;
6348
6351
  }
6349
- .carousel-chevron[data-v-907fe6e9] {
6352
+ .carousel-chevron[data-v-1d4fd3e2] {
6350
6353
  cursor: pointer;
6351
6354
  border-left: none !important;
6352
6355
  padding: 0 12px;
@@ -6360,17 +6363,17 @@ input[data-v-4cd691db]::-webkit-inner-spin-button {
6360
6363
  -ms-flex-align: center;
6361
6364
  align-items: center;
6362
6365
  }
6363
- .carousel-chevron[data-v-907fe6e9] svg {
6366
+ .carousel-chevron[data-v-1d4fd3e2] svg {
6364
6367
  -webkit-transition: -webkit-transform 0.2s ease;
6365
6368
  transition: -webkit-transform 0.2s ease;
6366
6369
  transition: transform 0.2s ease;
6367
6370
  transition: transform 0.2s ease, -webkit-transform 0.2s ease;
6368
6371
  }
6369
- .carousel-chevron--open[data-v-907fe6e9] svg {
6372
+ .carousel-chevron--open[data-v-1d4fd3e2] svg {
6370
6373
  -webkit-transform: rotate(180deg);
6371
6374
  transform: rotate(180deg);
6372
6375
  }
6373
- .dropdown-menu[data-v-907fe6e9] {
6376
+ .dropdown-menu[data-v-1d4fd3e2] {
6374
6377
  min-width: 150px;
6375
6378
  max-height: 240px;
6376
6379
  overflow-x: hidden;
@@ -6383,7 +6386,7 @@ input[data-v-4cd691db]::-webkit-inner-spin-button {
6383
6386
  -ms-flex-direction: column;
6384
6387
  flex-direction: column;
6385
6388
  }
6386
- .dropdown-item[data-v-907fe6e9] {
6389
+ .dropdown-item[data-v-1d4fd3e2] {
6387
6390
  display: block;
6388
6391
  padding: 12px 16px;
6389
6392
  cursor: pointer;
@@ -6544,7 +6547,7 @@ input[data-v-4cd691db]::-webkit-inner-spin-button {
6544
6547
  );
6545
6548
  }
6546
6549
 
6547
- .empty-para[data-v-4418a9fe] p:empty::after {
6550
+ .empty-para[data-v-532b5fd8] p:empty::after {
6548
6551
  content: '\00A0';
6549
6552
  }
6550
6553
 
@@ -6655,7 +6658,7 @@ input[data-v-4cd691db]::-webkit-inner-spin-button {
6655
6658
  text-decoration: underline;
6656
6659
  }
6657
6660
 
6658
- .form-error[data-v-5c3c6927] {
6661
+ .form-error[data-v-a2d29285] {
6659
6662
  font-size: 0.875rem;
6660
6663
  line-height: 1.25rem;
6661
6664
  color: #f21b3f
@@ -6899,18 +6902,18 @@ input[data-v-4cd691db]::-webkit-inner-spin-button {
6899
6902
  }
6900
6903
  }
6901
6904
 
6902
- .form-error[data-v-665b8067] {
6905
+ .form-error[data-v-6de658e0] {
6903
6906
  font-size: 0.75rem;
6904
6907
  line-height: 1rem;
6905
6908
  color: #f21b3f;
6906
6909
  }
6907
- select[data-v-665b8067] {
6910
+ select[data-v-6de658e0] {
6908
6911
  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");
6909
6912
  background-repeat: no-repeat;
6910
6913
  background-position: right 12px center;
6911
6914
  }
6912
6915
 
6913
- .form-error[data-v-a0d0666b] {
6916
+ .form-error[data-v-d41f9828] {
6914
6917
  font-size: 0.75rem;
6915
6918
  line-height: 1rem;
6916
6919
  color: #f21b3f
@@ -7009,59 +7012,59 @@ select[data-v-665b8067] {
7009
7012
  width: 100%;
7010
7013
  }
7011
7014
 
7012
- .form-error[data-v-2e955d80] {
7015
+ .form-error[data-v-f317d692] {
7013
7016
  font-size: 0.875rem;
7014
7017
  line-height: 1.25rem;
7015
7018
  color: #f21b3f;
7016
7019
  }
7017
- .contact-container[data-v-2e955d80] {
7020
+ .contact-container[data-v-f317d692] {
7018
7021
  max-width: var(--brandsite-max-width);
7019
7022
  margin: 0 auto;
7020
7023
  }
7021
- .c-text-padding[data-v-2e955d80] {
7024
+ .c-text-padding[data-v-f317d692] {
7022
7025
  padding-left: 1rem;
7023
7026
  padding-right: 1rem;
7024
7027
  }
7025
- .device-wrapper--mobile .c-divided-container[data-v-2e955d80] {
7028
+ .device-wrapper--mobile .c-divided-container[data-v-f317d692] {
7026
7029
  -webkit-box-orient: vertical;
7027
7030
  -webkit-box-direction: normal;
7028
7031
  -ms-flex-direction: column;
7029
7032
  flex-direction: column;
7030
7033
  }
7031
- .device-wrapper--mobile .c-divided-container-reverse[data-v-2e955d80] {
7034
+ .device-wrapper--mobile .c-divided-container-reverse[data-v-f317d692] {
7032
7035
  -webkit-box-orient: vertical;
7033
7036
  -webkit-box-direction: reverse;
7034
7037
  -ms-flex-direction: column-reverse;
7035
7038
  flex-direction: column-reverse;
7036
7039
  }
7037
7040
  @media (max-width: 767px) {
7038
- .c-button-full[data-v-2e955d80] {
7041
+ .c-button-full[data-v-f317d692] {
7039
7042
  width: 100%;
7040
7043
  }
7041
7044
  /* Match the button's full-width on published mobile. The maker uses the
7042
7045
  isMobileDevice prop for this; the renderer has no such state, so the
7043
7046
  decorative-button wrapper is widened here via the real viewport instead. */
7044
- [data-v-2e955d80] .bp-style-wrapper {
7047
+ [data-v-f317d692] .bp-style-wrapper {
7045
7048
  width: 100%;
7046
7049
  }
7047
- .c-col-span-2[data-v-2e955d80] {
7050
+ .c-col-span-2[data-v-f317d692] {
7048
7051
  grid-column: span 2 / span 2;
7049
7052
  }
7050
- .c-mobile-padding[data-v-2e955d80] {
7053
+ .c-mobile-padding[data-v-f317d692] {
7051
7054
  padding: 1rem;
7052
7055
  }
7053
- .c-text-padding[data-v-2e955d80] {
7056
+ .c-text-padding[data-v-f317d692] {
7054
7057
  grid-column: span 2 / span 2;
7055
7058
  padding-left: 0px;
7056
7059
  padding-right: 0px;
7057
7060
  }
7058
- .c-divided-container[data-v-2e955d80] {
7061
+ .c-divided-container[data-v-f317d692] {
7059
7062
  -webkit-box-orient: vertical;
7060
7063
  -webkit-box-direction: normal;
7061
7064
  -ms-flex-direction: column;
7062
7065
  flex-direction: column;
7063
7066
  }
7064
- .c-divided-container-reverse[data-v-2e955d80] {
7067
+ .c-divided-container-reverse[data-v-f317d692] {
7065
7068
  -webkit-box-orient: vertical;
7066
7069
  -webkit-box-direction: reverse;
7067
7070
  -ms-flex-direction: column-reverse;
@@ -7069,16 +7072,16 @@ select[data-v-665b8067] {
7069
7072
  }
7070
7073
  }
7071
7074
  @media (min-width: 767px) {
7072
- .c-aspect-square[data-v-2e955d80] {
7075
+ .c-aspect-square[data-v-f317d692] {
7073
7076
  aspect-ratio: 1 / 1;
7074
7077
  }
7075
- .c-divided-container[data-v-2e955d80] {
7078
+ .c-divided-container[data-v-f317d692] {
7076
7079
  -webkit-box-orient: horizontal;
7077
7080
  -webkit-box-direction: normal;
7078
7081
  -ms-flex-direction: row;
7079
7082
  flex-direction: row;
7080
7083
  }
7081
- .c-divided-container-reverse[data-v-2e955d80] {
7084
+ .c-divided-container-reverse[data-v-f317d692] {
7082
7085
  -webkit-box-orient: horizontal;
7083
7086
  -webkit-box-direction: reverse;
7084
7087
  -ms-flex-direction: row-reverse;
@@ -7727,44 +7730,44 @@ select[data-v-665b8067] {
7727
7730
  color: #f21b3f;
7728
7731
  }
7729
7732
 
7730
- .inner-container[data-v-fca616f0] {
7733
+ .inner-container[data-v-0f062477] {
7731
7734
  max-width: var(--brandsite-max-width);
7732
7735
  margin: 0 auto;
7733
7736
  }
7734
- .outer-container[data-v-fca616f0] {
7737
+ .outer-container[data-v-0f062477] {
7735
7738
  padding-left: var(--page-padding);
7736
7739
  padding-right: var(--page-padding);
7737
7740
  }
7738
- .modal-cart[data-v-fca616f0] .cart-image {
7741
+ .modal-cart[data-v-0f062477] .cart-image {
7739
7742
  width: 3rem;
7740
7743
  }
7741
- .modal-cart[data-v-fca616f0] .cart-option {
7744
+ .modal-cart[data-v-0f062477] .cart-option {
7742
7745
  width: 100%;
7743
7746
  }
7744
- .success-bar-container[data-v-fca616f0] .tw-bg-success-500 {
7747
+ .success-bar-container[data-v-0f062477] .tw-bg-success-500 {
7745
7748
  --tw-bg-opacity: 1;
7746
7749
  background-color: rgb(36 168 16 / var(--tw-bg-opacity));
7747
7750
  }
7748
7751
  @media (min-width: 640px) {
7749
- .modal-product-detail[data-v-fca616f0] .modal {
7752
+ .modal-product-detail[data-v-0f062477] .modal {
7750
7753
  min-width: 100vh;
7751
7754
  }
7752
- .modal-cart[data-v-fca616f0] .modal {
7755
+ .modal-cart[data-v-0f062477] .modal {
7753
7756
  min-width: 90vh;
7754
7757
  max-height: 90vh;
7755
7758
  }
7756
- .modal-cart[data-v-fca616f0] .cart-image {
7759
+ .modal-cart[data-v-0f062477] .cart-image {
7757
7760
  width: 8rem;
7758
7761
  }
7759
- .modal-cart[data-v-fca616f0] .cart-option {
7762
+ .modal-cart[data-v-0f062477] .cart-option {
7760
7763
  width: 75%;
7761
7764
  }
7762
- .success-bar[data-v-fca616f0] {
7765
+ .success-bar[data-v-0f062477] {
7763
7766
  width: 50%;
7764
7767
  }
7765
7768
  }
7766
7769
  @media (max-width: 640px) {
7767
- .success-bar[data-v-fca616f0] {
7770
+ .success-bar[data-v-0f062477] {
7768
7771
  width: 91.666667%;
7769
7772
  }
7770
7773
  }
@@ -8588,21 +8591,21 @@ select[data-v-665b8067] {
8588
8591
  padding: 0.25rem var(--page-padding);
8589
8592
  }
8590
8593
 
8591
- .c-page-footer__container[data-v-613305b7] {
8594
+ .c-page-footer__container[data-v-ef9d02e0] {
8592
8595
  max-width: var(--brandsite-max-width);
8593
8596
  margin: 0 auto;
8594
8597
  padding: 0.25rem var(--page-padding);
8595
8598
  }
8596
- .c-page-footer__container-justified[data-v-613305b7] {
8599
+ .c-page-footer__container-justified[data-v-ef9d02e0] {
8597
8600
  -webkit-box-pack: justify;
8598
8601
  -ms-flex-pack: justify;
8599
8602
  justify-content: space-between;
8600
8603
  }
8601
- .sortable[data-v-613305b7] {
8604
+ .sortable[data-v-ef9d02e0] {
8602
8605
  outline-color: #F7768C;
8603
8606
  outline-width: 0.2rem;
8604
8607
  }
8605
- .brand-page__content--outline-selected[data-v-613305b7] {
8608
+ .brand-page__content--outline-selected[data-v-ef9d02e0] {
8606
8609
  position: relative;
8607
8610
  z-index: 10;
8608
8611
  margin-left: 0.25rem;
@@ -8611,25 +8614,25 @@ select[data-v-665b8067] {
8611
8614
  outline-width: 0.2rem;
8612
8615
  outline-style: dashed;
8613
8616
  }
8614
- .c_footer-container[data-v-613305b7] {
8617
+ .c_footer-container[data-v-ef9d02e0] {
8615
8618
  max-width: var(--brandsite-max-width);
8616
8619
  margin: 0 auto;
8617
8620
  padding-left: var(--page-padding);
8618
8621
  padding-right: var(--page-padding);
8619
8622
  }
8620
8623
  @container (max-width: 640px) {
8621
- .c-page-footer__container-justified[data-v-613305b7] {
8624
+ .c-page-footer__container-justified[data-v-ef9d02e0] {
8622
8625
  -webkit-box-orient: vertical;
8623
8626
  -webkit-box-direction: normal;
8624
8627
  -ms-flex-direction: column;
8625
8628
  flex-direction: column;
8626
8629
  }
8627
- .c-page-footer__container-justified[data-v-613305b7] > :nth-child(2) {
8630
+ .c-page-footer__container-justified[data-v-ef9d02e0] > :nth-child(2) {
8628
8631
  margin-bottom: 1rem;
8629
8632
  }
8630
8633
  }
8631
8634
  @container (min-width: 640px) {
8632
- .c-page-footer__container-justified-stack[data-v-613305b7] {
8635
+ .c-page-footer__container-justified-stack[data-v-ef9d02e0] {
8633
8636
  margin-left: 1rem;
8634
8637
  margin-right: 1rem;
8635
8638
  -webkit-box-pack: justify;
@@ -8638,7 +8641,7 @@ select[data-v-665b8067] {
8638
8641
  }
8639
8642
  }
8640
8643
 
8641
- .c-overlay[data-v-0b2b4f62] {
8644
+ .c-overlay[data-v-aa0f82c0] {
8642
8645
  position: fixed;
8643
8646
  inset: 0px;
8644
8647
  z-index: 40;
@@ -8656,15 +8659,15 @@ select[data-v-665b8067] {
8656
8659
  -webkit-transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
8657
8660
  transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
8658
8661
  }
8659
- .c-overlay--open[data-v-0b2b4f62] {
8662
+ .c-overlay--open[data-v-aa0f82c0] {
8660
8663
  opacity: 0.7;
8661
8664
  }
8662
- .c-overlay--closed[data-v-0b2b4f62] {
8665
+ .c-overlay--closed[data-v-aa0f82c0] {
8663
8666
  pointer-events: none;
8664
8667
  display: none;
8665
8668
  opacity: 0;
8666
8669
  }
8667
- .c-sidebar[data-v-0b2b4f62] {
8670
+ .c-sidebar[data-v-aa0f82c0] {
8668
8671
  /* No hardcoded background: the panel background comes from the hamburger
8669
8672
  defaultButtonStyle (bound via :style), so a transparent/unset default bg
8670
8673
  renders transparent instead of being forced white */
@@ -8684,32 +8687,32 @@ select[data-v-665b8067] {
8684
8687
  max-width: 66%;
8685
8688
  }
8686
8689
  @media (min-width: 768px) {
8687
- .device--mobile .c-sidebar[data-v-0b2b4f62] {
8690
+ .device--mobile .c-sidebar[data-v-aa0f82c0] {
8688
8691
  width: 66.666667%;
8689
8692
  }
8690
8693
  }
8691
- .c-sidebar--closed[data-v-0b2b4f62] {
8694
+ .c-sidebar--closed[data-v-aa0f82c0] {
8692
8695
  -webkit-transform: translateX(-100%);
8693
8696
  transform: translateX(-100%);
8694
8697
  visibility: hidden;
8695
8698
  }
8696
- .c-sidebar--open[data-v-0b2b4f62] {
8699
+ .c-sidebar--open[data-v-aa0f82c0] {
8697
8700
  -webkit-transform: translateX(0%);
8698
8701
  transform: translateX(0%);
8699
8702
  }
8700
- .c-chevron-transform[data-v-0b2b4f62] {
8703
+ .c-chevron-transform[data-v-aa0f82c0] {
8701
8704
  -webkit-transition: -webkit-transform 0.3s ease;
8702
8705
  transition: -webkit-transform 0.3s ease;
8703
8706
  transition: transform 0.3s ease;
8704
8707
  transition: transform 0.3s ease, -webkit-transform 0.3s ease;
8705
8708
  }
8706
- .c-chevron-expanded[data-v-0b2b4f62] {
8709
+ .c-chevron-expanded[data-v-aa0f82c0] {
8707
8710
  -webkit-transform: rotate(180deg);
8708
8711
  transform: rotate(180deg);
8709
8712
  }
8710
8713
 
8711
8714
  /* Button pinned to the bottom of the side menu; rules only apply when the button is on. */
8712
- .c-sidebar--has-cta[data-v-0b2b4f62] {
8715
+ .c-sidebar--has-cta[data-v-aa0f82c0] {
8713
8716
  display: -webkit-box;
8714
8717
  display: -ms-flexbox;
8715
8718
  display: flex;
@@ -8719,35 +8722,35 @@ select[data-v-665b8067] {
8719
8722
  flex-direction: column;
8720
8723
  overflow: hidden;
8721
8724
  }
8722
- .c-sidebar--has-cta .c-sidebar-header[data-v-0b2b4f62] {
8725
+ .c-sidebar--has-cta .c-sidebar-header[data-v-aa0f82c0] {
8723
8726
  -ms-flex-negative: 0;
8724
8727
  flex-shrink: 0;
8725
8728
  }
8726
- .c-sidebar--has-cta .c-nav-list[data-v-0b2b4f62] {
8729
+ .c-sidebar--has-cta .c-nav-list[data-v-aa0f82c0] {
8727
8730
  /* Lets the link list scroll instead of the panel. */
8728
8731
  min-height: 0;
8729
8732
  overflow-y: auto;
8730
8733
  }
8731
- .c-sidebar-cta[data-v-0b2b4f62] {
8734
+ .c-sidebar-cta[data-v-aa0f82c0] {
8732
8735
  position: relative;
8733
8736
  padding: 1rem;
8734
8737
  }
8735
8738
 
8736
8739
  /* The generic Button ships section spacing; the side menu, as the caller, strips it
8737
8740
  (same fit the header row applies in HeaderLayout.vue). */
8738
- .c-sidebar-cta[data-v-0b2b4f62] .bp-button {
8741
+ .c-sidebar-cta[data-v-aa0f82c0] .bp-button {
8739
8742
  margin-bottom: 0;
8740
8743
  min-height: 0;
8741
8744
  }
8742
- .c-sidebar-cta[data-v-0b2b4f62] .c-button__no-icon {
8745
+ .c-sidebar-cta[data-v-aa0f82c0] .c-button__no-icon {
8743
8746
  display: none;
8744
8747
  }
8745
8748
  /* Base label class, not a specific --offset-* variant, so a future offset swap can't slide it. */
8746
- .c-sidebar-cta[data-v-0b2b4f62] .c-button__label {
8749
+ .c-sidebar-cta[data-v-aa0f82c0] .c-button__label {
8747
8750
  -webkit-transform: none;
8748
8751
  transform: none;
8749
8752
  }
8750
- .c-sidebar--has-cta .c-sidebar-cta[data-v-0b2b4f62] {
8753
+ .c-sidebar--has-cta .c-sidebar-cta[data-v-aa0f82c0] {
8751
8754
  /* Keeps the button at the bottom whether links underfill or overflow. */
8752
8755
  margin-top: auto;
8753
8756
  -ms-flex-negative: 0;
@@ -8757,7 +8760,7 @@ select[data-v-665b8067] {
8757
8760
  }
8758
8761
 
8759
8762
  /* Thin separator line above the button, faded without dimming the button itself. */
8760
- .c-sidebar-cta[data-v-0b2b4f62]::before {
8763
+ .c-sidebar-cta[data-v-aa0f82c0]::before {
8761
8764
  content: '';
8762
8765
  position: absolute;
8763
8766
  top: 0;
@@ -8872,7 +8875,7 @@ to {
8872
8875
  font-family: Lato, Helvetica, sans-serif;
8873
8876
  }
8874
8877
 
8875
- .brand-page__footer[data-v-0a7ac3ed] {
8878
+ .brand-page__footer[data-v-1aa33248] {
8876
8879
  display: -webkit-box;
8877
8880
  display: -ms-flexbox;
8878
8881
  display: flex;
@@ -8880,7 +8883,7 @@ to {
8880
8883
  -ms-flex-pack: center;
8881
8884
  justify-content: center;
8882
8885
  }
8883
- .brand-page__footer-link[data-v-0a7ac3ed] {
8886
+ .brand-page__footer-link[data-v-1aa33248] {
8884
8887
  display: block;
8885
8888
  border-radius: 0.25rem;
8886
8889
  padding: 0.75rem;
@@ -8888,25 +8891,25 @@ to {
8888
8891
  -webkit-transition: background 0.2s ease-in-out;
8889
8892
  transition: background 0.2s ease-in-out;
8890
8893
  }
8891
- .brand-page__footer-link[data-v-0a7ac3ed]:hover {
8894
+ .brand-page__footer-link[data-v-1aa33248]:hover {
8892
8895
  opacity: 0.9;
8893
8896
  }
8894
- .icon-container[data-v-0a7ac3ed] {
8897
+ .icon-container[data-v-1aa33248] {
8895
8898
  width: 20px;
8896
8899
  overflow: hidden;
8897
8900
  }
8898
- .extra-height[data-v-0a7ac3ed] {
8901
+ .extra-height[data-v-1aa33248] {
8899
8902
  -webkit-transition: height 0.5s ease-in-out;
8900
8903
  transition: height 0.5s ease-in-out;
8901
8904
  width: 100%;
8902
8905
  }
8903
- .c-button__label[data-v-0a7ac3ed] {
8906
+ .c-button__label[data-v-1aa33248] {
8904
8907
  margin: 0 auto;
8905
8908
  word-break: break-word;
8906
8909
  overflow-wrap: anywhere;
8907
8910
  width: auto;
8908
8911
  }
8909
- .c-button[data-v-0a7ac3ed] {
8912
+ .c-button[data-v-1aa33248] {
8910
8913
  --icon-h: 1.5rem;
8911
8914
  --icon-m-r: 0.5rem;
8912
8915
  --icon-m-icon: 0.5rem;
@@ -8921,10 +8924,10 @@ to {
8921
8924
  -ms-flex-align: center !important;
8922
8925
  align-items: center !important;
8923
8926
  }
8924
- .button__icon[data-v-0a7ac3ed] {
8927
+ .button__icon[data-v-1aa33248] {
8925
8928
  margin-right: var(--icon-m-r);
8926
8929
  }
8927
- .btn-max-width[data-v-0a7ac3ed] {
8930
+ .btn-max-width[data-v-1aa33248] {
8928
8931
  max-width: 315px;
8929
8932
  width: 100%;
8930
8933
  }
@@ -8947,14 +8950,14 @@ body {
8947
8950
  visibility: hidden !important;
8948
8951
  }
8949
8952
 
8950
- .brand-page-root[data-v-2debce4b] {
8953
+ .brand-page-root[data-v-b1539a54] {
8951
8954
  height: 100%;
8952
8955
  }
8953
- .sortable[data-v-2debce4b] {
8956
+ .sortable[data-v-b1539a54] {
8954
8957
  outline-color: #F7768C;
8955
8958
  outline-width: 0.2rem;
8956
8959
  }
8957
- .brand-page[data-v-2debce4b] {
8960
+ .brand-page[data-v-b1539a54] {
8958
8961
  -webkit-box-sizing: border-box;
8959
8962
  box-sizing: border-box;
8960
8963
  display: -webkit-box;
@@ -8966,7 +8969,7 @@ body {
8966
8969
  -ms-flex-direction: column;
8967
8970
  flex-direction: column;
8968
8971
  }
8969
- .brand-page__background-shapes-layer[data-v-2debce4b] {
8972
+ .brand-page__background-shapes-layer[data-v-b1539a54] {
8970
8973
  position: fixed;
8971
8974
  top: 0;
8972
8975
  left: 0;
@@ -8977,11 +8980,11 @@ body {
8977
8980
  transform: translate3d(0, 0, 0);
8978
8981
  contain: layout paint;
8979
8982
  }
8980
- .template-preview .brand-page__background-shapes-layer[data-v-2debce4b],
8981
- .device-wrapper .brand-page__background-shapes-layer[data-v-2debce4b] {
8983
+ .template-preview .brand-page__background-shapes-layer[data-v-b1539a54],
8984
+ .device-wrapper .brand-page__background-shapes-layer[data-v-b1539a54] {
8982
8985
  height: 100%;
8983
8986
  }
8984
- .brand-page__inner--default[data-v-2debce4b] {
8987
+ .brand-page__inner--default[data-v-b1539a54] {
8985
8988
  position: relative;
8986
8989
  z-index: 10;
8987
8990
  display: -webkit-box;
@@ -8993,16 +8996,16 @@ body {
8993
8996
  -ms-flex-direction: column;
8994
8997
  flex-direction: column;
8995
8998
  }
8996
- .brand-page__inner--desktop[data-v-2debce4b] {
8999
+ .brand-page__inner--desktop[data-v-b1539a54] {
8997
9000
  min-height: 100vh;
8998
9001
  }
8999
- .brand-site__header[data-v-2debce4b] {
9002
+ .brand-site__header[data-v-b1539a54] {
9000
9003
  container-type: inline-size;
9001
9004
  }
9002
- .brand-page__header[data-v-2debce4b] {
9005
+ .brand-page__header[data-v-b1539a54] {
9003
9006
  padding-top: var(--page-padding);
9004
9007
  }
9005
- .brand-page__content--default[data-v-2debce4b] {
9008
+ .brand-page__content--default[data-v-b1539a54] {
9006
9009
  margin-left: auto;
9007
9010
  margin-right: auto;
9008
9011
  margin-bottom: 2.5rem;
@@ -9019,7 +9022,7 @@ body {
9019
9022
  flex-direction: column;
9020
9023
  max-width: var(--page-max-width);
9021
9024
  }
9022
- .brand-page__content--desktop[data-v-2debce4b] {
9025
+ .brand-page__content--desktop[data-v-b1539a54] {
9023
9026
  margin-left: auto;
9024
9027
  margin-right: auto;
9025
9028
  display: -webkit-box;
@@ -9035,15 +9038,15 @@ body {
9035
9038
  flex-direction: column;
9036
9039
  max-width: 100%;
9037
9040
  }
9038
- .brand-page__content--inner[data-v-2debce4b] {
9041
+ .brand-page__content--inner[data-v-b1539a54] {
9039
9042
  padding-left: var(--page-padding);
9040
9043
  padding-right: var(--page-padding);
9041
9044
  }
9042
- .brand-page__content--inner--brandsite[data-v-2debce4b] {
9045
+ .brand-page__content--inner--brandsite[data-v-b1539a54] {
9043
9046
  max-width: var(--brandsite-max-width);
9044
9047
  margin: 0 auto;
9045
9048
  }
9046
- .brand-page__content--outline-selected[data-v-2debce4b] {
9049
+ .brand-page__content--outline-selected[data-v-b1539a54] {
9047
9050
  position: relative;
9048
9051
  z-index: 10;
9049
9052
  outline-color: #F7768C;
@@ -9051,20 +9054,20 @@ body {
9051
9054
  outline-style: dashed;
9052
9055
  outline-offset: -0.25rem;
9053
9056
  }
9054
- .brand-page__content--outline-footer-selected[data-v-2debce4b] {
9057
+ .brand-page__content--outline-footer-selected[data-v-b1539a54] {
9055
9058
  outline-color: #f7768c;
9056
9059
  outline-width: 0.2rem;
9057
9060
  outline-style: dashed;
9058
9061
  outline-offset: -0.25rem;
9059
9062
  }
9060
9063
  @media (max-width: 640px) {
9061
- .brand-page__content--inner--full-width[data-v-2debce4b] {
9064
+ .brand-page__content--inner--full-width[data-v-b1539a54] {
9062
9065
  padding-left: 0;
9063
9066
  padding-right: 0;
9064
9067
  }
9065
9068
  }
9066
9069
  @media (min-width: 640px) {
9067
- .brand-page__content--inner--full-width[data-v-2debce4b] {
9070
+ .brand-page__content--inner--full-width[data-v-b1539a54] {
9068
9071
  padding-left: var(--page-padding);
9069
9072
  padding-right: var(--page-padding);
9070
9073
  }
@@ -10004,7 +10007,7 @@ body {
10004
10007
  display: none;
10005
10008
  }
10006
10009
 
10007
- .c-gallery-figure[data-v-63a71bcc] {
10010
+ .c-gallery-figure[data-v-f339e255] {
10008
10011
 
10009
10012
  position: relative;
10010
10013
 
@@ -10020,7 +10023,7 @@ body {
10020
10023
 
10021
10024
  border-color: rgb(208 208 208 / var(--tw-border-opacity))
10022
10025
  }
10023
- .c-gallery-image__delete[data-v-63a71bcc] {
10026
+ .c-gallery-image__delete[data-v-f339e255] {
10024
10027
 
10025
10028
  cursor: pointer;
10026
10029
 
@@ -10051,7 +10054,7 @@ body {
10051
10054
  transition-timing-function: cubic-bezier(0, 0, 0.2, 1)
10052
10055
  }
10053
10056
  @media (hover: hover) and (pointer: fine) {
10054
- .c-gallery-image__delete[data-v-63a71bcc]:hover {
10057
+ .c-gallery-image__delete[data-v-f339e255]:hover {
10055
10058
 
10056
10059
  --tw-text-opacity: 1;
10057
10060
 
@@ -10133,13 +10136,13 @@ body {
10133
10136
  transition-timing-function: cubic-bezier(0, 0, 0.2, 1)
10134
10137
  }
10135
10138
 
10136
- .c-media-btn[data-v-10934b19]:not(.c-media-btn--selected):hover {
10139
+ .c-media-btn[data-v-b47f879d]:not(.c-media-btn--selected):hover {
10137
10140
  --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
10138
10141
  --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);
10139
10142
  -webkit-box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
10140
10143
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
10141
10144
  }
10142
- .c-media-btn__img[data-v-10934b19] {
10145
+ .c-media-btn__img[data-v-b47f879d] {
10143
10146
  overflow: hidden;
10144
10147
  -webkit-transition-property: -webkit-box-shadow;
10145
10148
  transition-property: -webkit-box-shadow;
@@ -10155,7 +10158,7 @@ body {
10155
10158
  20px;
10156
10159
  aspect-ratio: 1.09 / 1;
10157
10160
  }
10158
- .c-media-btn__img img[data-v-10934b19] {
10161
+ .c-media-btn__img img[data-v-b47f879d] {
10159
10162
  -webkit-margin-after: 100%;
10160
10163
  -webkit-margin-before: 100%;
10161
10164
  -webkit-margin-start: 100%;
@@ -10188,11 +10191,16 @@ body {
10188
10191
  contain-intrinsic-size: auto 36px;
10189
10192
  }
10190
10193
 
10191
- .rich-text-editor[data-v-d27ffcd7]:focus-within {
10194
+ .text-style-role-dropdown__item[data-v-44af9b33]:hover {
10195
+ background-color: #eee;
10196
+ }
10197
+
10198
+ .rich-text-editor[data-v-01903c9e]:focus-within {
10192
10199
  --tw-border-opacity: 1;
10193
10200
  border-color: rgb(94 94 94 / var(--tw-border-opacity));
10194
10201
  }
10195
- .style-editor[data-v-d27ffcd7] {
10202
+ .style-editor[data-v-01903c9e] {
10203
+ /* Spacing lives here: equal padding + gap. Items carry no margin/padding of their own. */
10196
10204
  display: -webkit-box;
10197
10205
  display: -ms-flexbox;
10198
10206
  display: flex;
@@ -10202,8 +10210,10 @@ body {
10202
10210
  flex-direction: row;
10203
10211
  -ms-flex-wrap: wrap;
10204
10212
  flex-wrap: wrap;
10213
+ gap: 0.25rem;
10214
+ padding: 0.25rem;
10205
10215
  }
10206
- .style-editor[data-v-d27ffcd7] button:not(.c-button-style) {
10216
+ .style-editor[data-v-01903c9e] button:not(.c-button-style) {
10207
10217
  display: -webkit-box;
10208
10218
  display: -ms-flexbox;
10209
10219
  display: flex;
@@ -10213,22 +10223,39 @@ body {
10213
10223
  padding-left: 0.5rem;
10214
10224
  padding-right: 0.5rem;
10215
10225
  }
10216
- .style-editor-button[data-v-d27ffcd7] {
10226
+ .style-editor-button[data-v-01903c9e] {
10217
10227
  cursor: pointer;
10218
- padding-left: 0.25rem;
10219
- padding-top: 0.25rem;
10220
10228
  }
10221
- .toolbar-editor-button.active[data-v-d27ffcd7] {
10229
+ /* Role + font selectors evenly split the toolbar's first row at every width; the
10230
+ conditional reset tool (roller-brush) sits between them and takes only its own width
10231
+ while shown (it collapses otherwise, so the selectors fill the row).
10232
+ min-width:0 lets them shrink below their content so they never wrap to a second line —
10233
+ the dropdown title truncates instead. */
10234
+ .style-editor-button-textstyle[data-v-01903c9e],
10235
+ .style-editor-button-font[data-v-01903c9e] {
10236
+ -webkit-box-flex: 1;
10237
+ -ms-flex: 1 1 0px;
10238
+ flex: 1 1 0;
10239
+ min-width: 0;
10240
+ }
10241
+ /* The size stepper leads the formatting row (with the icons), so it sits at a fixed width
10242
+ instead of growing. */
10243
+ .style-editor-button.stepper[data-v-01903c9e] {
10244
+ -webkit-box-flex: 0;
10245
+ -ms-flex: 0 0 auto;
10246
+ flex: 0 0 auto;
10247
+ /* Two 30px −/+ buttons plus the 28px 3-digit input. A narrower box can't shrink the
10248
+ stepper — its + button paints over the colour picker instead. */
10249
+ width: 88px;
10250
+ }
10251
+ .toolbar-editor-button.active[data-v-01903c9e] {
10222
10252
  font-weight: 700;
10223
10253
  background: #e3e3e3;
10224
10254
  }
10225
- .toolbar-editor-button[data-v-d27ffcd7] {
10255
+ .toolbar-editor-button[data-v-01903c9e] {
10226
10256
  height: 32px;
10227
10257
  width: 32px;
10228
10258
  border-radius: 4px;
10229
- margin-top: 0.25rem;
10230
- margin-bottom: 0.25rem;
10231
- margin-left: 0.25rem;
10232
10259
  display: -webkit-box;
10233
10260
  display: -ms-flexbox;
10234
10261
  display: flex;
@@ -10240,7 +10267,7 @@ body {
10240
10267
  -ms-flex-pack: center;
10241
10268
  justify-content: center;
10242
10269
  }
10243
- [data-v-d27ffcd7] .ProseMirror {
10270
+ [data-v-01903c9e] .ProseMirror {
10244
10271
  border-top: 1px solid #ccc;
10245
10272
  min-height: 150px;
10246
10273
  padding: 8px;
@@ -10253,13 +10280,13 @@ body {
10253
10280
  max-height: 14rem;
10254
10281
  overflow: auto;
10255
10282
  }
10256
- .editor-compact[data-v-d27ffcd7] .ProseMirror {
10283
+ .editor-compact[data-v-01903c9e] .ProseMirror {
10257
10284
  min-height: 6rem;
10258
10285
  }
10259
- [data-v-d27ffcd7] .ProseMirror:focus {
10286
+ [data-v-01903c9e] .ProseMirror:focus {
10260
10287
  outline: none;
10261
10288
  }
10262
- [data-v-d27ffcd7] .ProseMirror * {
10289
+ [data-v-01903c9e] .ProseMirror * {
10263
10290
  text-align: left !important;
10264
10291
  font-size: 16px !important;
10265
10292
  color: #606060 !important;
@@ -10268,29 +10295,61 @@ body {
10268
10295
  background-color: transparent !important;
10269
10296
  font-family: 'Lato' !important;
10270
10297
  }
10271
- [data-v-d27ffcd7] .ProseMirror a s,[data-v-d27ffcd7] .ProseMirror a strike,[data-v-d27ffcd7] .ProseMirror a [data-strike] {
10272
- text-decoration: line-through !important;
10298
+
10299
+ /* A link shows only the decoration it stores (its `<u>`), as on the published page, whose base
10300
+ styles give `a` `text-decoration: inherit`; the browser default would underline every link. */
10301
+ [data-v-01903c9e] .ProseMirror a {
10302
+ text-decoration: inherit !important;
10273
10303
  }
10274
- [data-v-d27ffcd7] .ProseMirror a,[data-v-d27ffcd7] .ProseMirror a * {
10304
+ [data-v-01903c9e] .ProseMirror a,[data-v-01903c9e] .ProseMirror a * {
10275
10305
  /* Keep in sync with DEFAULT_LINK_COLOR (src/constants/rich-text-editor.constants.ts) — scoped CSS can't import it. */
10276
10306
  color: #0097d7 !important;
10277
- text-decoration: underline !important;
10278
10307
  }
10279
- .error-message[data-v-d27ffcd7] {
10308
+ .error-message[data-v-01903c9e] {
10280
10309
  color: #d32f2f;
10281
10310
  font-size: 0.875rem;
10282
10311
  margin-top: 4px;
10283
10312
  }
10284
- .popup-container[data-v-d27ffcd7] {
10313
+ .popup-container[data-v-01903c9e] {
10285
10314
  position: absolute;
10286
10315
  z-index: 10;
10287
10316
  right: 8%;
10288
10317
  }
10289
- .hyperlink-preview[data-v-d27ffcd7] {
10318
+
10319
+ /* The toggle's own positioning context, so the popup below it doesn't turn `.style-editor`
10320
+ into a containing block (which would squash the colour-picker popup). */
10321
+ .style-modified-anchor[data-v-01903c9e] {
10322
+ display: -webkit-inline-box;
10323
+ display: -ms-inline-flexbox;
10324
+ display: inline-flex;
10325
+ position: relative;
10326
+ }
10327
+ .style-modified-toggle[data-v-01903c9e] {
10328
+ border-width: 1px;
10329
+ border-style: solid;
10330
+ --tw-border-opacity: 1;
10331
+ border-color: rgb(230 230 230 / var(--tw-border-opacity));
10332
+ --tw-bg-opacity: 1;
10333
+ background-color: rgb(255 255 255 / var(--tw-bg-opacity));
10334
+ }
10335
+ .style-modified-anchor--hidden[data-v-01903c9e] {
10336
+ display: none;
10337
+ }
10338
+ /* Hangs just below the toggle (its row), floating over the rows beneath rather than sitting
10339
+ at the toolbar's bottom. Centred on the toggle by default; the inline `left` also clamps
10340
+ it inside the toolbar when the toggle sits too near an edge (keep width in sync with
10341
+ STYLE_MODIFIED_POPUP_WIDTH). */
10342
+ .style-modified-popup[data-v-01903c9e] {
10343
+ position: absolute;
10344
+ z-index: 20;
10345
+ top: calc(100% + 6px);
10346
+ width: 300px;
10347
+ }
10348
+ .hyperlink-preview[data-v-01903c9e] {
10290
10349
  position: absolute;
10291
10350
  z-index: 10;
10292
10351
  }
10293
- .popup-panel[data-v-d27ffcd7] {
10352
+ .popup-panel[data-v-01903c9e] {
10294
10353
  background: #fff;
10295
10354
  border: 1px solid #ccc;
10296
10355
  border-radius: 8px;
@@ -10298,17 +10357,17 @@ body {
10298
10357
  -webkit-box-shadow: 0 2px 6px rgba(0, 0, 0, 0.3);
10299
10358
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.3);
10300
10359
  }
10301
- .popup-panel[data-v-d27ffcd7] input {
10360
+ .popup-panel[data-v-01903c9e] input {
10302
10361
  border: 1px solid #ccc;
10303
10362
  border-radius: 8px;
10304
10363
  }
10305
- .border[data-v-d27ffcd7] {
10364
+ .border[data-v-01903c9e] {
10306
10365
  width: 100%;
10307
10366
  --tw-bg-opacity: 1;
10308
10367
  background-color: rgb(208 208 208 / var(--tw-bg-opacity));
10309
10368
  height: 1px;
10310
10369
  }
10311
- [data-v-d27ffcd7] .text-dropdown-title {
10370
+ [data-v-01903c9e] .text-dropdown-title {
10312
10371
  height: 2rem;
10313
10372
  width: 100%;
10314
10373
  font-size: 0.875rem;
@@ -10317,7 +10376,7 @@ body {
10317
10376
  color: rgb(43 43 43 / var(--tw-text-opacity));
10318
10377
  font-weight: 300;
10319
10378
  }
10320
- [data-v-d27ffcd7] .ProseMirror p.is-editor-empty:first-child::before {
10379
+ [data-v-01903c9e] .ProseMirror p.is-editor-empty:first-child::before {
10321
10380
  --tw-text-opacity: 1;
10322
10381
  color: rgb(208 208 208 / var(--tw-text-opacity));
10323
10382
  content: attr(data-placeholder);
@@ -10326,56 +10385,11 @@ body {
10326
10385
  pointer-events: none;
10327
10386
  }
10328
10387
  @media (max-width: 399px) {
10329
- .style-editor-button-font[data-v-d27ffcd7],
10330
- .style-editor-button-textstyle[data-v-d27ffcd7] {
10331
- max-width: 48%;
10332
- padding-bottom: 0.25rem;
10333
- }
10334
- .style-editor-button.stepper[data-v-d27ffcd7] {
10335
- max-width: 40%;
10336
- }
10337
- .style-editor-button-stepper[data-v-d27ffcd7] {
10338
- max-width: 100%;
10339
- }
10340
- .border.desktop[data-v-d27ffcd7] {
10341
- display: none;
10342
- }
10343
- .border.mobile[data-v-d27ffcd7] {
10344
- display: block;
10345
- }
10346
- [data-v-d27ffcd7] .left-align {
10347
- -webkit-transform: translateX(-48%);
10348
- transform: translateX(-48%);
10349
- }
10350
- .hyperlink-popup[data-v-d27ffcd7] {
10388
+ .hyperlink-popup[data-v-01903c9e] {
10351
10389
  z-index: 10000 !important;
10352
10390
  }
10353
10391
  }
10354
- @media (min-width: 400px) {
10355
- .style-editor-button.stepper[data-v-d27ffcd7] {
10356
- max-width: 32%;
10357
- }
10358
- .style-editor-button-font[data-v-d27ffcd7] {
10359
- max-width: 28%;
10360
- }
10361
- .style-editor-button-stepper[data-v-d27ffcd7] {
10362
- max-width: 100%;
10363
- }
10364
- .style-editor-button-textstyle[data-v-d27ffcd7] {
10365
- max-width: 25%;
10366
- }
10367
- .border.desktop[data-v-d27ffcd7] {
10368
- display: block;
10369
- }
10370
- .border.mobile[data-v-d27ffcd7] {
10371
- display: none;
10372
- }
10373
- [data-v-d27ffcd7] .left-align {
10374
- -webkit-transform: translateX(-25%);
10375
- transform: translateX(-25%);
10376
- }
10377
- }
10378
- .drop-down-item[data-v-d27ffcd7]:hover {
10392
+ .drop-down-item[data-v-01903c9e]:hover {
10379
10393
  background-color: #eee;
10380
10394
  }
10381
10395
 
@@ -10395,7 +10409,70 @@ input[type='number'][data-v-f3d394d9] {
10395
10409
  }
10396
10410
  }
10397
10411
 
10398
- .testimonial-preview[data-v-bbe8a664] {
10412
+ /* The toggle's own positioning context so the popup hangs relative to it. */
10413
+ .text-style-field__modified-anchor[data-v-8166878a] {
10414
+ position: relative;
10415
+ display: -webkit-box;
10416
+ display: -ms-flexbox;
10417
+ display: flex;
10418
+ -ms-flex-negative: 0;
10419
+ flex-shrink: 0
10420
+ }
10421
+ .text-style-field__modified-toggle[data-v-8166878a] {
10422
+ display: -webkit-box;
10423
+ display: -ms-flexbox;
10424
+ display: flex;
10425
+ height: 100%;
10426
+ width: 2.75rem;
10427
+ cursor: pointer;
10428
+ -webkit-box-align: center;
10429
+ -ms-flex-align: center;
10430
+ align-items: center;
10431
+ -webkit-box-pack: center;
10432
+ -ms-flex-pack: center;
10433
+ justify-content: center;
10434
+ border-radius: 0.5rem;
10435
+ border-width: 1px;
10436
+ border-style: solid;
10437
+ --tw-border-opacity: 1;
10438
+ border-color: rgb(230 230 230 / var(--tw-border-opacity));
10439
+ --tw-bg-opacity: 1;
10440
+ background-color: rgb(255 255 255 / var(--tw-bg-opacity));
10441
+ --tw-text-opacity: 1;
10442
+ color: rgb(89 89 89 / var(--tw-text-opacity))
10443
+ }
10444
+ .text-style-field__modified-toggle--active[data-v-8166878a] {
10445
+ --tw-bg-opacity: 1;
10446
+ background-color: rgb(244 244 244 / var(--tw-bg-opacity))
10447
+ }
10448
+ /* Hangs just below the toggle, aligned to the panel's right edge. */
10449
+ .text-style-field__modified-popup[data-v-8166878a] {
10450
+ position: absolute;
10451
+ right: 0px;
10452
+ z-index: 20;
10453
+ display: -webkit-box;
10454
+ display: -ms-flexbox;
10455
+ display: flex;
10456
+ -webkit-box-orient: vertical;
10457
+ -webkit-box-direction: normal;
10458
+ -ms-flex-direction: column;
10459
+ flex-direction: column;
10460
+ gap: 0.25rem;
10461
+ border-radius: 0.5rem;
10462
+ border-width: 1px;
10463
+ border-style: solid;
10464
+ --tw-border-opacity: 1;
10465
+ border-color: rgb(230 230 230 / var(--tw-border-opacity));
10466
+ --tw-bg-opacity: 1;
10467
+ background-color: rgb(255 255 255 / var(--tw-bg-opacity));
10468
+ padding: 1rem;
10469
+ top: calc(100% + 6px);
10470
+ width: 260px;
10471
+ -webkit-box-shadow: 0 2px 6px rgba(0, 0, 0, 0.3);
10472
+ box-shadow: 0 2px 6px rgba(0, 0, 0, 0.3)
10473
+ }
10474
+
10475
+ .testimonial-preview[data-v-6b1ec164] {
10399
10476
  overflow: hidden;
10400
10477
  text-overflow: ellipsis;
10401
10478
  max-height: 21px;
@@ -10481,15 +10558,15 @@ input[type='number'][data-v-f3d394d9] {
10481
10558
  -4px 0;
10482
10559
  }
10483
10560
 
10484
- .color-matches[data-v-8dfdf8b1] {
10561
+ .color-matches[data-v-0f948381] {
10485
10562
  border-collapse: collapse;
10486
10563
  /* AUTO layout would hand the wider column to whichever value is longest and
10487
10564
  squeeze the names. A name is an identifier you scan, a value is what you
10488
10565
  read — so the names get the fixed share and the values wrap. */
10489
10566
  table-layout: fixed;
10490
10567
  }
10491
- .color-matches td[data-v-8dfdf8b1],
10492
- .color-matches th[data-v-8dfdf8b1] {
10568
+ .color-matches td[data-v-0f948381],
10569
+ .color-matches th[data-v-0f948381] {
10493
10570
  /* Top-aligned, because a wrapped value is taller than its name. */
10494
10571
  vertical-align: top;
10495
10572
  padding-bottom: 0.375rem;
@@ -10499,27 +10576,27 @@ input[type='number'][data-v-f3d394d9] {
10499
10576
  cell rather than widen the table past the sidebar. */
10500
10577
  overflow-wrap: anywhere;
10501
10578
  }
10502
- .color-matches__name[data-v-8dfdf8b1] {
10579
+ .color-matches__name[data-v-0f948381] {
10503
10580
  width: 45%;
10504
10581
  padding-right: 0.5rem;
10505
10582
  }
10506
10583
  /* Matches the swatch's own 14px box so a swatch-less row still aligns its value.
10507
10584
  `display: block` for the same reason the swatch needs it — a bare `<span>` would
10508
10585
  ignore the width. */
10509
- .color-matches__gutter[data-v-8dfdf8b1] {
10586
+ .color-matches__gutter[data-v-0f948381] {
10510
10587
  display: block;
10511
10588
  width: 14px;
10512
10589
  padding-top: 2px;
10513
10590
  }
10514
10591
  /* The stack number: fixed-width so every surface NAME starts at the same x, and
10515
10592
  muted so it reads as an axis tick rather than part of the name. */
10516
- .color-matches__layer[data-v-8dfdf8b1] {
10593
+ .color-matches__layer[data-v-0f948381] {
10517
10594
  display: inline-block;
10518
10595
  width: 10px;
10519
10596
  margin-right: 4px;
10520
10597
  font-size: 0.625rem;
10521
10598
  }
10522
- .color-matches__order[data-v-8dfdf8b1] {
10599
+ .color-matches__order[data-v-0f948381] {
10523
10600
  letter-spacing: normal;
10524
10601
  }
10525
10602
 
@@ -10648,7 +10725,7 @@ input.dynamic-width-input[data-v-97be2e87]:focus {
10648
10725
  }
10649
10726
  }
10650
10727
 
10651
- .page-settings-section-style_option-title[data-v-8342fc08] {
10728
+ .page-settings-section-style_option-title[data-v-45d5d313] {
10652
10729
  font-family: Lato, Helvetica, sans-serif;
10653
10730
  font-size: 0.875rem;
10654
10731
  line-height: 1.25rem;
@@ -10657,7 +10734,7 @@ input.dynamic-width-input[data-v-97be2e87]:focus {
10657
10734
  color: rgb(36 36 36 / var(--tw-text-opacity))
10658
10735
  }
10659
10736
 
10660
- .header-button-settings_option-title[data-v-86ff33c1] {
10737
+ .header-button-settings_option-title[data-v-29fa6811] {
10661
10738
  font-family: Lato, Helvetica, sans-serif;
10662
10739
  font-size: 0.875rem;
10663
10740
  line-height: 1.25rem;
@@ -10705,7 +10782,7 @@ input.dynamic-width-input[data-v-97be2e87]:focus {
10705
10782
  margin: 0 auto;
10706
10783
  }
10707
10784
 
10708
- .header-settings-panel_option-title[data-v-670bf7f8] {
10785
+ .header-settings-panel_option-title[data-v-792691ea] {
10709
10786
  font-family: Lato, Helvetica, sans-serif;
10710
10787
  font-size: 0.875rem;
10711
10788
  line-height: 1.25rem;
@@ -10809,20 +10886,39 @@ input.dynamic-width-input[data-v-97be2e87]:focus {
10809
10886
  --tw-bg-opacity: 1;
10810
10887
  background-color: rgb(255 255 255 / var(--tw-bg-opacity));
10811
10888
  }
10889
+
10890
+ /* CollapsiblePanel's subtitle takes text only, so the size order warning (this panel's only
10891
+ subtitle) is boxed from here. StyleSettings.test.ts fails if a library bump moves it. */
10892
+ .c-text-style-panel .tw-grow > div + div {
10893
+ margin-top: 0.5rem;
10894
+ margin-bottom: 0px;
10895
+ border-radius: 0.25rem;
10896
+ border-width: 1px;
10897
+ border-style: solid;
10898
+ --tw-border-opacity: 1;
10899
+ border-color: rgb(243 175 43 / var(--tw-border-opacity));
10900
+ --tw-bg-opacity: 1;
10901
+ background-color: rgb(253 239 213 / var(--tw-bg-opacity));
10902
+ padding: 0.5rem;
10903
+ font-size: 0.75rem;
10904
+ line-height: 1rem;
10905
+ --tw-text-opacity: 1;
10906
+ color: rgb(97 70 17 / var(--tw-text-opacity));
10907
+ }
10812
10908
  .c-select {
10813
10909
  background-repeat: no-repeat;
10814
10910
  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");
10815
10911
  background-position: top 50% right 0.5rem;
10816
10912
  }
10817
10913
 
10818
- .template-preview-container[data-v-246f2118] {
10914
+ .template-preview-container[data-v-dc1d50d6] {
10819
10915
  border-radius: 0.5rem;
10820
10916
  height: 25rem;
10821
10917
  -webkit-box-shadow: 0 0 0 2px rgba(0, 0, 0, 0.1);
10822
10918
  box-shadow: 0 0 0 2px rgba(0, 0, 0, 0.1);
10823
10919
  }
10824
10920
  @media (min-width: 768px) {
10825
- .template-preview-container[data-v-246f2118] {
10921
+ .template-preview-container[data-v-dc1d50d6] {
10826
10922
  -webkit-transition-property: all;
10827
10923
  transition-property: all;
10828
10924
  -webkit-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
@@ -10832,17 +10928,17 @@ input.dynamic-width-input[data-v-97be2e87]:focus {
10832
10928
  -webkit-transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
10833
10929
  transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
10834
10930
  }
10835
- .template-preview-container[data-v-246f2118]:hover {
10931
+ .template-preview-container[data-v-dc1d50d6]:hover {
10836
10932
  -webkit-transform: scale(1.01);
10837
10933
  transform: scale(1.01);
10838
10934
  }
10839
10935
  }
10840
10936
 
10841
- .template-preview[data-v-a172382d] {
10937
+ .template-preview[data-v-0ece1edb] {
10842
10938
  position: relative;
10843
10939
  background-attachment: initial !important
10844
10940
  }
10845
- .template-preview__overlay[data-v-a172382d] {
10941
+ .template-preview__overlay[data-v-0ece1edb] {
10846
10942
  position: absolute;
10847
10943
  top: 0px;
10848
10944
  left: 0px;
@@ -10854,12 +10950,12 @@ input.dynamic-width-input[data-v-97be2e87]:focus {
10854
10950
  opacity: 0;
10855
10951
  z-index: 100
10856
10952
  }
10857
- .template-preview__image-container[data-v-a172382d] {
10953
+ .template-preview__image-container[data-v-0ece1edb] {
10858
10954
  pointer-events: none;
10859
10955
  height: 100%;
10860
10956
  width: 100%
10861
10957
  }
10862
- .template-preview__image[data-v-a172382d] {
10958
+ .template-preview__image[data-v-0ece1edb] {
10863
10959
  height: 100%;
10864
10960
  width: 100%;
10865
10961
  -o-object-fit: fill;
@@ -10869,13 +10965,13 @@ input.dynamic-width-input[data-v-97be2e87]:focus {
10869
10965
  transition: filter 0.2s ease;
10870
10966
  transition: filter 0.2s ease, -webkit-filter 0.2s ease
10871
10967
  }
10872
- .template-preview__page[data-v-a172382d] {
10968
+ .template-preview__page[data-v-0ece1edb] {
10873
10969
  pointer-events: none
10874
10970
  }
10875
- .template-preview[data-v-a172382d] .c-shape-background {
10971
+ .template-preview[data-v-0ece1edb] .c-shape-background {
10876
10972
  position: absolute
10877
10973
  }
10878
- .template-preview__image[data-v-a172382d] .c-shape-background {
10974
+ .template-preview__image[data-v-0ece1edb] .c-shape-background {
10879
10975
  position: absolute
10880
10976
  }
10881
10977