@designcrowd/library.brand-page 5.19.0 → 5.19.1-error-html2canvas-2

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 (455) hide show
  1. package/lib/src/{CreatedOnBrandCrowd-de-de-DsoA9hc-.js → CreatedOnBrandCrowd-de-de-DmKe7W8L.js} +3 -3
  2. package/lib/src/{CreatedOnBrandCrowd-en-us-BP6NEQ66.js → CreatedOnBrandCrowd-en-us-D2EeiNep.js} +3 -3
  3. package/lib/src/{CreatedOnBrandCrowd-es-es-D424uM1Z.js → CreatedOnBrandCrowd-es-es-BqVwNY1D.js} +3 -3
  4. package/lib/src/{CreatedOnBrandCrowd-fr-fr-CJvuLTkB.js → CreatedOnBrandCrowd-fr-ca-C756a27-.js} +3 -3
  5. package/lib/src/{CreatedOnBrandCrowd-fr-ca-CJvuLTkB.js → CreatedOnBrandCrowd-fr-fr-C756a27-.js} +3 -3
  6. package/lib/src/{CreatedOnBrandCrowd-pt-pt-Cc9L314u.js → CreatedOnBrandCrowd-pt-br-FNHAnZUw.js} +3 -3
  7. package/lib/src/{CreatedOnBrandCrowd-pt-br-Cc9L314u.js → CreatedOnBrandCrowd-pt-pt-FNHAnZUw.js} +3 -3
  8. package/lib/src/{CreatedOnDcom-de-de-CX-295FH.js → CreatedOnDcom-de-de-8AZZFmDt.js} +3 -3
  9. package/lib/src/{CreatedOnDcom-en-us-UFlORUgZ.js → CreatedOnDcom-en-us-DizTP32i.js} +3 -3
  10. package/lib/src/{CreatedOnDcom-es-es-D1tRpcq9.js → CreatedOnDcom-es-es-qnp9_n_A.js} +3 -3
  11. package/lib/src/{CreatedOnDcom-fr-ca-Dz_ry9uY.js → CreatedOnDcom-fr-ca-jUs352uK.js} +3 -3
  12. package/lib/src/{CreatedOnDcom-fr-fr-8Ydu6b1T.js → CreatedOnDcom-fr-fr-CTxXtHyk.js} +3 -3
  13. package/lib/src/{CreatedOnDcom-pt-br-COwvw5k4.js → CreatedOnDcom-pt-br-nQHj8P7d.js} +3 -3
  14. package/lib/src/{CreatedOnDcom-pt-pt-CB72-eaa.js → CreatedOnDcom-pt-pt-DJmVYQuL.js} +3 -3
  15. package/lib/src/brand-page/clients/brand-page.client.d.ts +9 -9
  16. package/lib/src/brand-page/components/{testimonial-section/TestimonialSection.mixin.d.ts → banner-section/BannerSection.mixin.d.ts} +43 -37
  17. package/lib/src/brand-page/components/banner-section/BannerSection.mixin.js +178 -0
  18. package/lib/src/brand-page/components/contact-form/ContactForm.mixin.d.ts +4 -0
  19. package/lib/src/brand-page/components/contact-form/ContactForm.mixin.js +8 -4
  20. package/lib/src/brand-page/components/image-gallery/ImageGallery.mixin.d.ts +4 -0
  21. package/lib/src/brand-page/components/image-gallery/ImageGallery.mixin.js +4 -0
  22. package/lib/src/brand-page/components/image-gallery/masonry/MasonryGallery.mixin.d.ts +0 -1
  23. package/lib/src/brand-page/components/mailing-list/MailingList.mixin.d.ts +4 -0
  24. package/lib/src/brand-page/components/mailing-list/MailingList.mixin.js +4 -1
  25. package/lib/src/brand-page/components/navigation/hamburger/HamburgerNavigation.mixin.d.ts +4 -2
  26. package/lib/src/brand-page/components/navigation/hamburger/HamburgerNavigation.mixin.js +1 -0
  27. package/lib/src/brand-page/components/navigation/navigation-side-menu/NavigationSideMenu.mixin.d.ts +4 -2
  28. package/lib/src/brand-page/components/navigation/navigation-side-menu/NavigationSideMenu.mixin.js +5 -4
  29. package/lib/src/brand-page/components/page/Page.mixin.d.ts +1 -1
  30. package/lib/src/brand-page/components/page/PageComponent.mixin.d.ts +1 -1
  31. package/lib/src/brand-page/components/payment/Payment.mixin.d.ts +3 -3
  32. package/lib/src/brand-page/components/payment/__fixtures__/request-payment.d.ts +13 -13
  33. package/lib/src/brand-page/components/payment/__fixtures__/support-me.d.ts +13 -13
  34. package/lib/src/brand-page/components/payment/request-payment/RequestPayment.mixin.d.ts +4 -0
  35. package/lib/src/brand-page/components/payment/request-payment/RequestPayment.mixin.js +4 -0
  36. package/lib/src/brand-page/components/payment/support-me/SupportMe.mixin.d.ts +4 -0
  37. package/lib/src/brand-page/components/payment/support-me/SupportMe.mixin.js +4 -1
  38. package/lib/src/brand-page/components/video/Video.mixin.d.ts +4 -0
  39. package/lib/src/brand-page/components/video/Video.mixin.js +4 -0
  40. package/lib/src/brand-page/constants/font.constants.d.ts +4 -4
  41. package/lib/src/brand-page/constants/font.constants.js +4 -4
  42. package/lib/src/brand-page/constants/misc.constants.d.ts +35 -0
  43. package/lib/src/brand-page/constants/misc.constants.js +51 -0
  44. package/lib/src/brand-page/constants/sections/footer-display.constants.js +1 -1
  45. package/lib/src/brand-page/models/content.model.d.ts +2 -0
  46. package/lib/src/brand-page/models/index.d.ts +2 -1
  47. package/lib/src/brand-page/models/index.js +3 -0
  48. package/lib/src/brand-page/models/payment.model.d.ts +1 -1
  49. package/lib/src/brand-page/utils/content-padding.util.d.ts +13 -0
  50. package/lib/src/brand-page/utils/content-padding.util.js +10 -0
  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-17.d.ts +2 -0
  54. package/lib/src/brand-page/utils/migration/migration-17.js +60 -0
  55. package/lib/src/brand-page/utils/migration.util.js +10 -0
  56. package/lib/src/brand-page/utils/personalisation.util.js +72 -14
  57. package/lib/src/brand-page-maker/components/action-bar/ActionBar.mixin.d.ts +21 -19
  58. package/lib/src/brand-page-maker/components/action-bar/ActionBar.mixin.js +1 -0
  59. package/lib/src/brand-page-maker/components/admin-background-settings/AdminBackgroundSettings.mixin.d.ts +16 -10
  60. package/lib/src/brand-page-maker/components/admin-logo-settings/AdminLogoSettings.mixin.d.ts +5 -3
  61. package/lib/src/brand-page-maker/components/brand-page-maker/BrandPageMaker.mixin.d.ts +193 -170
  62. package/lib/src/brand-page-maker/components/brand-page-maker/BrandPageMaker.mixin.js +3 -0
  63. package/lib/src/brand-page-maker/components/brand-page-maker/BrandPageMaker.stories.js +1 -0
  64. package/lib/src/brand-page-maker/components/brand-page-maker/BrandPageMakerTemplateSettings.mixin.d.ts +12 -12
  65. package/lib/src/brand-page-maker/components/brand-page-maker/BrandPageMakerTemplateSettings.stories.js +2 -2
  66. package/lib/src/brand-page-maker/components/brand-page-maker/__fixtures__/brand-page-payment.js +0 -7
  67. package/lib/src/brand-page-maker/components/brandpage-maker-page/BrandPageMakerPage.mixin.d.ts +162 -149
  68. package/lib/src/brand-page-maker/components/brandpage-settings/ReplaceImageSettingsForBrandPageSettings.mixin.d.ts +21 -21
  69. package/lib/src/brand-page-maker/components/brandpage-settings/ReplaceImageSettingsForBrandPageSettings.mixin.js +1 -1
  70. package/lib/src/brand-page-maker/components/color-picker/components/ColorModeSelect.mixin.d.ts +4 -2
  71. package/lib/src/brand-page-maker/components/color-picker/components/ColorModeSelect.mixin.js +1 -0
  72. package/lib/src/brand-page-maker/components/color-picker/components/GradientColorSlider.mixin.d.ts +4 -2
  73. package/lib/src/brand-page-maker/components/color-picker/components/GradientColorSlider.mixin.js +1 -0
  74. package/lib/src/brand-page-maker/components/color-picker/components/GradientColorSliderHandler.mixin.d.ts +5 -2
  75. package/lib/src/brand-page-maker/components/color-picker/components/GradientColorSliderHandler.mixin.js +1 -0
  76. package/lib/src/brand-page-maker/components/color-picker/components/GradientTypeSelector.mixin.d.ts +4 -2
  77. package/lib/src/brand-page-maker/components/color-picker/components/GradientTypeSelector.mixin.js +1 -0
  78. package/lib/src/brand-page-maker/components/device/Device.mixin.d.ts +4 -2
  79. package/lib/src/brand-page-maker/components/device/Device.mixin.js +1 -0
  80. package/lib/src/brand-page-maker/components/navigation/Navigation.mixin.d.ts +4 -2
  81. package/lib/src/brand-page-maker/components/navigation/Navigation.mixin.js +1 -0
  82. package/lib/src/brand-page-maker/components/preview/Preview.mixin.d.ts +3 -3
  83. package/lib/src/brand-page-maker/components/quick-link-bar/QuickLinkBar.mixin.d.ts +11 -11
  84. package/lib/src/brand-page-maker/components/seo-settings/SeoPageSettings.mixin.d.ts +27 -25
  85. package/lib/src/brand-page-maker/components/seo-settings/SeoPageSettings.mixin.js +1 -0
  86. package/lib/src/brand-page-maker/components/seo-settings/UrlSettings.mixin.d.ts +27 -27
  87. package/lib/src/brand-page-maker/components/seo-settings/UrlSettings.mixin.js +1 -1
  88. package/lib/src/brand-page-maker/components/seo-settings/UseExistingDomainModal.mixin.d.ts +17 -12
  89. package/lib/src/brand-page-maker/components/social-share/SocialShare.mixin.d.ts +12 -12
  90. package/lib/src/brand-page-maker/components/template-preview/TemplatePreview.mixin.d.ts +30 -32
  91. package/lib/src/brand-page-maker/components/template-preview/TemplatePreview.mixin.js +16 -5
  92. package/lib/src/brand-page-maker/components/upgrade-to-premium-button/UpgradeToPremiumButton.mixin.d.ts +11 -11
  93. package/lib/src/brand-page-maker/composables/ai-chat/useAiWebsiteBuilderChat.js +1 -1
  94. package/lib/src/brand-page-maker/composables/rich-text-editor/useRichTextEditor.d.ts +1 -1
  95. package/lib/src/brand-page-maker/composables/rich-text-editor/useRichTextEditor.js +6 -6
  96. package/lib/src/brand-page-maker/composables/useEventTracker.d.ts +2 -2
  97. package/lib/src/brand-page-maker/constants/config-settings-constant.d.ts +6 -6
  98. package/lib/src/brand-page-maker/constants/config-settings-constant.js +40 -1
  99. package/lib/src/brand-page-maker/convertors/about-display-style.convertor.js +9 -1
  100. package/lib/src/brand-page-maker/convertors/banner-align-display-style.convertor.js +7 -1
  101. package/lib/src/brand-page-maker/convertors/contact-layout-style.convertor.js +6 -1
  102. package/lib/src/brand-page-maker/convertors/text-image-display-style.convertor.d.ts +1 -1
  103. package/lib/src/brand-page-maker/convertors/text-image-display-style.convertor.js +1 -1
  104. package/lib/src/brand-page-maker/models/content-settings.d.ts +1 -1
  105. package/lib/src/brand-page-maker/models/content-settings.js +39 -2
  106. package/lib/src/brand-page-maker/models/navigation-style-configs.js +1 -1
  107. package/lib/src/brand-page-maker/routing/brand-page-maker-router.d.ts +1 -2
  108. package/lib/src/brand-page-maker/stores/ai-checkpoint/ai-checkpoint-store.d.ts +378 -360
  109. package/lib/src/brand-page-maker/stores/brandpage-container/brand-page-container-store.d.ts +5 -4
  110. package/lib/src/brand-page-maker/stores/brandpage-container/brand-page-container-store.js +8 -5
  111. package/lib/src/brand-page-maker/stores/brandpage-maker/brandpage-maker-store.d.ts +3 -1
  112. package/lib/src/brand-page-maker/stores/brandpage-maker/brandpage-maker-store.js +7 -3
  113. package/lib/src/brand-page-maker/stores/history/history-store.d.ts +15 -15
  114. package/lib/src/brand-page-maker/stores/ui/ui-store.d.ts +6 -0
  115. package/lib/src/brand-page-maker/stores/ui/ui-store.js +8 -0
  116. package/lib/src/brand-page-maker/utils/content-settings.util.js +1 -1
  117. package/lib/src/brand-page-maker/utils/rich-text-editor.util.d.ts +1 -1
  118. package/lib/src/brand-page-maker/utils/rich-text-editor.util.js +4 -4
  119. package/lib/src/{bundled-translations-D1q3rSEz.js → bundled-translations-BUyt4scr.js} +9 -9
  120. package/lib/src/{bundled-translations.de-DE-BxqLLwbh.js → bundled-translations.de-DE-DEw_OVai.js} +1 -1
  121. package/lib/src/{bundled-translations.es-ES-uh249NlJ.js → bundled-translations.es-ES-CFKWmkgY.js} +17 -17
  122. package/lib/src/{bundled-translations.fr-CA-BEQmv2fX.js → bundled-translations.fr-CA-DCl5LJS4.js} +1 -1
  123. package/lib/src/{bundled-translations.fr-FR-BnNuCojH.js → bundled-translations.fr-FR-B5BjgllA.js} +1 -1
  124. package/lib/src/{bundled-translations.pt-BR-CJUOxVlq.js → bundled-translations.pt-BR-5PWpMPuM.js} +1 -1
  125. package/lib/src/{bundled-translations.pt-PT-Ds9cMEqK.js → bundled-translations.pt-PT-B9_wN0HR.js} +9 -9
  126. package/lib/src/bundles/bundled-translations.de-DE.json +2 -0
  127. package/lib/src/bundles/bundled-translations.es-ES.json +2 -0
  128. package/lib/src/bundles/bundled-translations.fr-CA.json +2 -0
  129. package/lib/src/bundles/bundled-translations.fr-FR.json +2 -0
  130. package/lib/src/bundles/bundled-translations.json +2 -0
  131. package/lib/src/bundles/bundled-translations.pt-BR.json +2 -0
  132. package/lib/src/bundles/bundled-translations.pt-PT.json +2 -0
  133. package/lib/src/clients/brand-page-client.d.ts +16 -15
  134. package/lib/src/clients/design-template-client.d.ts +3 -0
  135. package/lib/src/clients/media-client.d.ts +2 -2
  136. package/lib/src/clients/models.d.ts +2 -0
  137. package/lib/src/composables/useSnapshot.js +18 -18
  138. package/lib/src/css/library.brand-page-brandCrowd.min.css +441 -437
  139. package/lib/src/css/library.brand-page-brandPage.min.css +719 -437
  140. package/lib/src/css/library.brand-page-designCom.min.css +441 -437
  141. package/lib/src/css/library.brand-page-preview.min.css +697 -437
  142. package/lib/src/index.d.ts +1 -1
  143. package/lib/src/index.mjs +16 -15
  144. package/lib/src/{lib-tHPi9EKk.js → lib-DityivZa.js} +37011 -33834
  145. package/lib/src/lib.js +1 -1
  146. package/lib/src/metadata-builder/builders/footer-builder.js +90 -65
  147. package/lib/src/metadata-builder/builders/section-builders/image-gallery-builder.js +1 -1
  148. package/lib/src/metadata-builder/builders/section-builders/images-section-builder.js +1 -1
  149. package/lib/src/metadata-builder/builders/section-builders/testimonial-section-builder.js +1 -1
  150. package/lib/src/metadata-builder/builders/section-builders/text-section-builder.js +1 -1
  151. package/lib/src/metadata-builder/builders/shape-color-utils.js +1 -1
  152. package/lib/src/plugins/google-maps-plugin/google-maps-plugin.d.ts +1 -1
  153. package/lib/src/plugins/google-maps-plugin/google-maps-plugin.js +8 -8
  154. package/lib/src/shared/background-settings/components/background-shapes/BackgroundShapeSettings.mixin.d.ts +13 -13
  155. package/lib/src/shared/background-settings/store/background-settings-store.d.ts +3 -3
  156. package/lib/src/shared/color-picker/components/ColorPicker.mixin.d.ts +4 -2
  157. package/lib/src/shared/color-picker/components/ColorPicker.mixin.js +2 -2
  158. package/lib/src/shared/color-picker/components/ColorPickerSwatch.mixin.d.ts +4 -2
  159. package/lib/src/shared/color-picker/components/ColorPickerSwatch.mixin.js +1 -0
  160. package/lib/src/shared/confirm-modal/ConfirmModal.mixin.d.ts +5 -2
  161. package/lib/src/shared/confirm-modal/ConfirmModal.mixin.js +1 -0
  162. package/lib/src/shared/content-settings/components/GenericTextInput.mixin.d.ts +0 -1
  163. package/lib/src/shared/content-settings/components/content-settings/ContentSettings.mixin.d.ts +145 -129
  164. package/lib/src/shared/content-settings/components/content-settings/ContentSettings.mixin.js +2 -1
  165. package/lib/src/shared/content-settings/components/content-settings/ReplaceImageSettingsForContent.mixin.d.ts +125 -110
  166. package/lib/src/shared/content-settings/components/content-settings-item/ContentSettingsItem.mixin.d.ts +96 -81
  167. package/lib/src/shared/content-settings/components/content-settings-item/ContentSettingsItem.mixin.js +5 -0
  168. package/lib/src/shared/content-settings/components/content-settings-item/ContentSettingsItemField.mixin.d.ts +129 -109
  169. package/lib/src/shared/content-settings/components/content-settings-item/ContentSettingsItemField.mixin.js +1 -14
  170. package/lib/src/shared/content-settings/components/email-field/EmailField.mixin.d.ts +0 -1
  171. package/lib/src/shared/content-settings/components/focused-content-item-settings/FocusedContentItemSettings.mixin.d.ts +84 -70
  172. package/lib/src/shared/content-settings/components/focused-content-item-settings/FocusedContentItemSettings.mixin.js +4 -3
  173. package/lib/src/shared/content-settings/components/form-fields-field/FormFieldsField.mixin.d.ts +4 -4
  174. package/lib/src/shared/content-settings/components/icon-library/IconLibrary.mixin.d.ts +3 -1
  175. package/lib/src/shared/content-settings/components/icon-library/IconLibrary.mixin.js +1 -0
  176. package/lib/src/shared/content-settings/components/images-field/ImagesField.mixin.d.ts +2 -2
  177. package/lib/src/shared/content-settings/components/items-field/ItemsField.mixin.d.ts +4 -3
  178. package/lib/src/shared/content-settings/components/items-field/ItemsField.mixin.js +1 -1
  179. package/lib/src/shared/content-settings/components/payment-config-field/PaymentConfigField.mixin.d.ts +40 -40
  180. package/lib/src/shared/content-settings/components/payment-config-field/PaymentConfigOptionField.mixin.d.ts +5 -6
  181. package/lib/src/shared/content-settings/components/shape-field/ShapeField.mixin.d.ts +0 -1
  182. package/lib/src/shared/content-settings/components/slider-field/SliderField.mixin.d.ts +2 -2
  183. package/lib/src/shared/content-settings/components/slider-field/SliderField.mixin.js +9 -0
  184. package/lib/src/shared/content-settings/components/tel-field/TelField.mixin.d.ts +0 -1
  185. package/lib/src/shared/content-settings/components/testimonial-items-field/TestimonialItemsField.mixin.d.ts +1 -2
  186. package/lib/src/shared/content-settings/components/text-field/TextField.mixin.d.ts +0 -1
  187. package/lib/src/shared/content-settings/components/text-items-field/TextItemsField.mixin.d.ts +1 -2
  188. package/lib/src/shared/content-settings/components/text-items-field/TextItemsField.mixin.js +1 -1
  189. package/lib/src/shared/content-settings/components/text-style-field/TextStyleField.mixin.d.ts +28 -28
  190. package/lib/src/shared/content-settings/components/textarea-field/TextareaField.mixin.d.ts +0 -1
  191. package/lib/src/shared/content-settings/components/toggle-field/ToggleField.mixin.d.ts +2 -2
  192. package/lib/src/shared/content-settings/components/url-field/UrlField.mixin.d.ts +0 -1
  193. package/lib/src/shared/content-settings/components/youtube-video-field/YoutubeVideoField.mixin.d.ts +0 -1
  194. package/lib/src/shared/content-settings/store/content-settings-store.d.ts +51 -39
  195. package/lib/src/shared/content-settings/utils.js +0 -1
  196. package/lib/src/shared/font-family-selector/FontFamilySelector.mixin.d.ts +6 -4
  197. package/lib/src/shared/font-family-selector/FontFamilySelector.mixin.js +1 -0
  198. package/lib/src/shared/image-gallery-style-settings/ImageGalleryStyleSettings.mixin.d.ts +4 -2
  199. package/lib/src/shared/image-gallery-style-settings/ImageGalleryStyleSettings.mixin.js +1 -0
  200. package/lib/src/shared/logo-settings/components/EditLogoSettings.mixin.d.ts +29 -21
  201. package/lib/src/shared/logo-settings/components/EditLogoSettings.mixin.js +1 -1
  202. package/lib/src/shared/logo-settings/components/LogoSettings.mixin.d.ts +50 -51
  203. package/lib/src/shared/logo-settings/components/LogoSettingsHeader.mixin.d.ts +6 -4
  204. package/lib/src/shared/logo-settings/components/LogoSettingsHeader.mixin.js +1 -0
  205. package/lib/src/shared/logo-settings/store/editable-logo-store.js +1 -1
  206. package/lib/src/shared/logo-settings/store/logo-settings-store.d.ts +1 -1
  207. package/lib/src/shared/logo-versions/LogoVersions.mixin.d.ts +13 -5
  208. package/lib/src/shared/logo-versions/LogoVersions.mixin.js +1 -0
  209. package/lib/src/shared/models.d.ts +2 -0
  210. package/lib/src/shared/my-designs/MyDesigns.mixin.d.ts +14 -6
  211. package/lib/src/shared/my-designs/MyDesigns.mixin.js +1 -0
  212. package/lib/src/shared/my-uploads/MyMedia.mixin.d.ts +14 -5
  213. package/lib/src/shared/my-uploads/MyMedia.mixin.js +1 -0
  214. package/lib/src/shared/my-uploads/MyUploads.mixin.d.ts +14 -5
  215. package/lib/src/shared/my-uploads/MyUploads.mixin.js +1 -0
  216. package/lib/src/shared/navigation-style-settings/components/navigation-style-settings/NavigationStyleSettings.mixin.d.ts +5 -3
  217. package/lib/src/shared/navigation-style-settings/components/navigation-style-settings/NavigationStyleSettings.mixin.js +1 -0
  218. package/lib/src/shared/navigation-style-settings/store/index.d.ts +2 -2
  219. package/lib/src/shared/page-navigation/store/page-navigation-store.d.ts +2 -2
  220. package/lib/src/shared/page-settings/components/new-page-modal/NewPageModal.mixin.d.ts +27 -28
  221. package/lib/src/shared/page-settings/components/new-page-modal/NewPageModal.mixin.js +0 -2
  222. package/lib/src/shared/page-settings/components/page-settings/PageSettings.mixin.d.ts +204 -177
  223. package/lib/src/shared/page-settings/components/page-settings-section-styles/PageSettingsSectionStyles.mixin.d.ts +195 -175
  224. package/lib/src/shared/page-settings/components/page-settings-section-styles/PageSettingsSectionStyles.mixin.js +1 -1
  225. package/lib/src/shared/page-settings/store/page-settings-store.d.ts +9 -9
  226. package/lib/src/shared/publish-brand-page-with-state/PublishBrandPageModalWithState.mixin.d.ts +39 -39
  227. package/lib/src/shared/publish-brand-page-with-state/PublishBrandPageModalWithState.mixin.js +0 -1
  228. package/lib/src/shared/side-bar/components/SideBar.mixin.d.ts +18 -18
  229. package/lib/src/shared/side-bar/components/SideBarTabButton.mixin.d.ts +6 -6
  230. package/lib/src/shared/style-settings/components/StyleSettings.mixin.d.ts +66 -60
  231. package/lib/src/shared/style-settings/store/style-settings-store.d.ts +1 -1
  232. package/lib/src/shared/style-settings/store/style-settings-store.js +1 -1
  233. package/lib/src/shared/template-settings/components/TemplatesSettings.mixin.d.ts +20 -450
  234. package/lib/src/shared/template-settings/components/TemplatesSettings.mixin.js +2 -2
  235. package/lib/src/shared/template-settings/models.d.ts +1 -0
  236. package/lib/src/shared/template-settings/store/template-settings-store.d.ts +4 -0
  237. package/lib/src/shared/template-settings/store/template-settings-store.js +79 -11
  238. package/lib/src/shared/unsplash-library/UnsplashLibrary.mixin.d.ts +9 -4
  239. package/lib/src/utils/minify-brand-page-metadata.js +11 -1
  240. package/package.json +61 -57
  241. package/src/brand-page/components/about-section/AboutSection.vue +10 -4
  242. package/src/brand-page/components/about-section/AboutSection.vue.test.ts +7 -5
  243. package/src/brand-page/components/banner-section/BannerSection.mixin.ts +210 -0
  244. package/src/brand-page/components/banner-section/BannerSection.vue +11 -4
  245. package/src/brand-page/components/booking-section/BookingSection.vue +11 -3
  246. package/src/brand-page/components/brand-page-footer/BrandPageFooter.vue +1 -1
  247. package/src/brand-page/components/contact-form/ContactForm.mixin.ts +12 -6
  248. package/src/brand-page/components/contact-form/ContactForm.vue +105 -104
  249. package/src/brand-page/components/image/Image.mixin.ts +1 -1
  250. package/src/brand-page/components/image/Image.test.ts +1 -1
  251. package/src/brand-page/components/image-gallery/ImageGallery.mixin.ts +5 -0
  252. package/src/brand-page/components/image-gallery/ImageGallery.vue +1 -1
  253. package/src/brand-page/components/images-section/ImagesSection.vue +0 -1
  254. package/src/brand-page/components/logo/LogoRender.vue +188 -188
  255. package/src/brand-page/components/mailing-list/MailingList.mixin.ts +8 -1
  256. package/src/brand-page/components/mailing-list/MailingList.vue +1 -1
  257. package/src/brand-page/components/map/Map.vue +5 -1
  258. package/src/brand-page/components/navigation/hamburger/HamburgerNavigation.mixin.ts +1 -0
  259. package/src/brand-page/components/navigation/navigation-side-menu/NavigationSideMenu.mixin.ts +15 -6
  260. package/src/brand-page/components/page-footer/PageFooter.vue +1 -0
  261. package/src/brand-page/components/page-header/HeaderLayout.vue +12 -6
  262. package/src/brand-page/components/page-header/PageHeader.vue +1 -0
  263. package/src/brand-page/components/payment/request-payment/RequestPayment.mixin.ts +5 -0
  264. package/src/brand-page/components/payment/request-payment/RequestPayment.vue +1 -0
  265. package/src/brand-page/components/payment/support-me/SupportMe.mixin.ts +8 -1
  266. package/src/brand-page/components/payment/support-me/SupportMe.vue +1 -0
  267. package/src/brand-page/components/shapes-section/ShapesSection.vue +1 -1
  268. package/src/brand-page/components/shop/CartModal.vue +1 -3
  269. package/src/brand-page/components/shop/FeaturedDisplay.vue +2 -2
  270. package/src/brand-page/components/shop/PaymentModal.vue +1 -5
  271. package/src/brand-page/components/shop/ProductDetailModal.vue +1 -1
  272. package/src/brand-page/components/shop/Shop.vue +8 -3
  273. package/src/brand-page/components/shop/TextDisplay.vue +1 -1
  274. package/src/brand-page/components/shop/ThumbnailDisplay.vue +2 -2
  275. package/src/brand-page/components/social-links/SocialLinks.vue +7 -3
  276. package/src/brand-page/components/testimonial-section/TestimonialSection.vue +120 -11
  277. package/src/brand-page/components/text/Text.vue +12 -5
  278. package/src/brand-page/components/text-media-section/TextMediaSection.vue +11 -3
  279. package/src/brand-page/components/text-wrapper/TextWrapper.vue +3 -1
  280. package/src/brand-page/components/video/Video.mixin.ts +5 -0
  281. package/src/brand-page/components/video/Video.vue +1 -1
  282. package/src/brand-page/constants/font.constants.ts +4 -4
  283. package/src/brand-page/constants/misc.constants.ts +58 -0
  284. package/src/brand-page/constants/sections/footer-display.constants.ts +1 -1
  285. package/src/brand-page/models/content.model.ts +2 -0
  286. package/src/brand-page/models/index.ts +4 -0
  287. package/src/brand-page/models/payment.model.ts +2 -1
  288. package/src/brand-page/models/shop.model.ts +0 -2
  289. package/src/brand-page/models/user-personalisation.model.ts +1 -2
  290. package/src/brand-page/utils/__snapshots__/migration.util.test.ts.snap +12 -3
  291. package/src/brand-page/utils/__snapshots__/migration2.util.test.ts.snap +7 -6
  292. package/src/brand-page/utils/__snapshots__/model.util.test.ts.snap +14 -12
  293. package/src/brand-page/utils/content-padding.util.test.ts +29 -0
  294. package/src/brand-page/utils/content-padding.util.ts +13 -0
  295. package/src/brand-page/utils/index.ts +1 -0
  296. package/src/brand-page/utils/migration/migration-01_1.ts +1 -1
  297. package/src/brand-page/utils/migration/migration-02.ts +0 -1
  298. package/src/brand-page/utils/migration/migration-03.ts +0 -1
  299. package/src/brand-page/utils/migration/migration-04.ts +0 -1
  300. package/src/brand-page/utils/migration/migration-05.ts +1 -5
  301. package/src/brand-page/utils/migration/migration-05_2.ts +1 -1
  302. package/src/brand-page/utils/migration/migration-08.test.ts +1 -1
  303. package/src/brand-page/utils/migration/migration-17.ts +77 -0
  304. package/src/brand-page/utils/migration.util.test.ts +290 -0
  305. package/src/brand-page/utils/migration.util.ts +11 -0
  306. package/src/brand-page/utils/personalisation.util.test.ts +35 -0
  307. package/src/brand-page/utils/personalisation.util.ts +119 -23
  308. package/src/brand-page/view-models.ts +38 -56
  309. package/src/brand-page-maker/assessors/banner-section-description-visibility.assessor.ts +6 -6
  310. package/src/brand-page-maker/assessors/color-replacement-icon-visibility.assessor.ts +2 -2
  311. package/src/brand-page-maker/assessors/color-replacement-profile-visibility.assessor.ts +2 -2
  312. package/src/brand-page-maker/assessors/color-replacement-visibility.assessor.ts +2 -2
  313. package/src/brand-page-maker/assessors/contact-form-visibility.assessor.ts +14 -14
  314. package/src/brand-page-maker/components/action-bar/ActionBar.mixin.ts +1 -0
  315. package/src/brand-page-maker/components/ai-text-edit/TextBubble.vue +1 -0
  316. package/src/brand-page-maker/components/brand-page-maker/BrandPageMaker.mixin.ts +5 -1
  317. package/src/brand-page-maker/components/brand-page-maker/BrandPageMaker.stories.ts +1 -0
  318. package/src/brand-page-maker/components/brand-page-maker/BrandPageMakerTemplateSettings.stories.ts +2 -5
  319. package/src/brand-page-maker/components/brand-page-maker/__fixtures__/brand-page-examples.ts +0 -5
  320. package/src/brand-page-maker/components/brand-page-maker/__fixtures__/brand-page-payment.ts +0 -8
  321. package/src/brand-page-maker/components/brand-page-maker/__fixtures__/brand-site-template.examples.ts +0 -2
  322. package/src/brand-page-maker/components/brandpage-maker-page/BrandPageMakerPage.vue +1 -0
  323. package/src/brand-page-maker/components/brandpage-settings/ReplaceImageSettingsForBrandPageSettings.mixin.ts +1 -1
  324. package/src/brand-page-maker/components/color-palette/BpColorPalette.vue +1 -2
  325. package/src/brand-page-maker/components/color-picker/components/ColorModeSelect.mixin.ts +1 -0
  326. package/src/brand-page-maker/components/color-picker/components/GradientColorSlider.mixin.ts +1 -0
  327. package/src/brand-page-maker/components/color-picker/components/GradientColorSliderHandler.mixin.ts +1 -0
  328. package/src/brand-page-maker/components/color-picker/components/GradientTypeSelector.mixin.ts +1 -0
  329. package/src/brand-page-maker/components/device/Device.mixin.ts +1 -0
  330. package/src/brand-page-maker/components/navigation/Navigation.mixin.ts +1 -0
  331. package/src/brand-page-maker/components/rich-text-editor/RichTextEditor.vue +3 -1
  332. package/src/brand-page-maker/components/sensitive-content/SensitiveContent.vue +1 -4
  333. package/src/brand-page-maker/components/seo-settings/DeleteDomainModal.vue +1 -1
  334. package/src/brand-page-maker/components/seo-settings/SeoPageSettings.mixin.ts +1 -0
  335. package/src/brand-page-maker/components/seo-settings/SeoPageSettings.vue +1 -1
  336. package/src/brand-page-maker/components/seo-settings/UrlSettings.mixin.ts +0 -1
  337. package/src/brand-page-maker/components/seo-settings/UrlSettings.vue +0 -1
  338. package/src/brand-page-maker/components/seo-settings/UseExistingDomainModal.vue +1 -5
  339. package/src/brand-page-maker/components/shop/AddOrEditProductContainer.vue +1 -1
  340. package/src/brand-page-maker/components/shop/ReplaceImageSettingsForShop.vue +1 -1
  341. package/src/brand-page-maker/components/social-share/SocialShare.vue +1 -1
  342. package/src/brand-page-maker/components/template-preview/TemplatePreview.mixin.ts +22 -8
  343. package/src/brand-page-maker/components/template-preview/TemplatePreview.vue +5 -10
  344. package/src/brand-page-maker/components/template-preview/TemplatePreviewAiBadge.vue +12 -0
  345. package/src/brand-page-maker/components/video-play/VideoPlayButton.vue +1 -1
  346. package/src/brand-page-maker/composables/ai-chat/useAiWebsiteBuilderChat.ts +1 -1
  347. package/src/brand-page-maker/composables/rich-text-editor/useRichTextEditor.ts +6 -6
  348. package/src/brand-page-maker/constants/config-settings-constant.ts +48 -3
  349. package/src/brand-page-maker/convertors/about-display-style.convertor.ts +10 -0
  350. package/src/brand-page-maker/convertors/banner-align-display-style.convertor.ts +8 -0
  351. package/src/brand-page-maker/convertors/contact-layout-style.convertor.test.ts +50 -0
  352. package/src/brand-page-maker/convertors/contact-layout-style.convertor.ts +8 -0
  353. package/src/brand-page-maker/convertors/text-image-display-style.convertor.ts +1 -1
  354. package/src/brand-page-maker/models/button-styles-config.ts +4 -2
  355. package/src/brand-page-maker/models/content-settings-configs.ts +4 -2
  356. package/src/brand-page-maker/models/content-settings.ts +43 -2
  357. package/src/brand-page-maker/models/navigation-style-configs.ts +5 -6
  358. package/src/brand-page-maker/stores/admin-logo-settings/admin-logo-settings-store.ts +0 -1
  359. package/src/brand-page-maker/stores/brandpage-container/brand-page-container-store.ts +8 -5
  360. package/src/brand-page-maker/stores/brandpage-maker/brandpage-maker-store.test.ts +1 -3
  361. package/src/brand-page-maker/stores/brandpage-maker/brandpage-maker-store.ts +12 -4
  362. package/src/brand-page-maker/stores/ui/ui-store.ts +16 -0
  363. package/src/brand-page-maker/utils/content-settings.util.ts +1 -1
  364. package/src/brand-page-maker/utils/rich-text-editor.util.ts +4 -4
  365. package/src/bundles/bundled-translations.de-DE.json +2 -0
  366. package/src/bundles/bundled-translations.es-ES.json +2 -0
  367. package/src/bundles/bundled-translations.fr-CA.json +2 -0
  368. package/src/bundles/bundled-translations.fr-FR.json +2 -0
  369. package/src/bundles/bundled-translations.json +2 -0
  370. package/src/bundles/bundled-translations.pt-BR.json +2 -0
  371. package/src/bundles/bundled-translations.pt-PT.json +2 -0
  372. package/src/clients/design-template-client.ts +3 -0
  373. package/src/clients/models.ts +2 -0
  374. package/src/composables/useSnapshot.ts +19 -22
  375. package/src/lib.ts +1 -0
  376. package/src/metadata-builder/builders/footer-builder.test.ts +137 -0
  377. package/src/metadata-builder/builders/footer-builder.ts +129 -89
  378. package/src/metadata-builder/builders/section-builders/image-gallery-builder.ts +1 -1
  379. package/src/metadata-builder/builders/section-builders/images-section-builder.ts +1 -1
  380. package/src/metadata-builder/builders/section-builders/testimonial-section-builder.ts +1 -1
  381. package/src/metadata-builder/builders/section-builders/text-section-builder.ts +1 -1
  382. package/src/metadata-builder/builders/shape-color-utils.ts +2 -2
  383. package/src/plugins/google-maps-plugin/google-maps-plugin.ts +8 -8
  384. package/src/shared/background-settings/components/BackgroundSettings.vue +1 -1
  385. package/src/shared/background-settings/components/background-color/BackgroundColorSettings.vue +1 -1
  386. package/src/shared/color-picker/components/ColorPicker.mixin.ts +2 -7
  387. package/src/shared/color-picker/components/ColorPickerSwatch.mixin.ts +1 -0
  388. package/src/shared/common/NumberInput.vue +1 -0
  389. package/src/shared/common/SideBarSettingsHeader.vue +2 -2
  390. package/src/shared/confirm-modal/ConfirmModal.mixin.ts +1 -0
  391. package/src/shared/content-settings/components/booking-url-field/BookingUrlField.vue +1 -0
  392. package/src/shared/content-settings/components/button-configuration-field/ButtonConfigurationField.vue +1 -0
  393. package/src/shared/content-settings/components/color-field/ColorField.vue +3 -10
  394. package/src/shared/content-settings/components/content-settings/ContentSettings.mixin.ts +1 -1
  395. package/src/shared/content-settings/components/content-settings/ContentSettingsLockedButton.vue +1 -0
  396. package/src/shared/content-settings/components/content-settings/i18n/content-settings.de-DE.json +2 -0
  397. package/src/shared/content-settings/components/content-settings/i18n/content-settings.es-ES.json +2 -0
  398. package/src/shared/content-settings/components/content-settings/i18n/content-settings.fr-CA.json +2 -0
  399. package/src/shared/content-settings/components/content-settings/i18n/content-settings.fr-FR.json +2 -0
  400. package/src/shared/content-settings/components/content-settings/i18n/content-settings.json +2 -0
  401. package/src/shared/content-settings/components/content-settings/i18n/content-settings.pt-BR.json +2 -0
  402. package/src/shared/content-settings/components/content-settings/i18n/content-settings.pt-PT.json +2 -0
  403. package/src/shared/content-settings/components/content-settings-item/ContentSettingsItem.mixin.ts +5 -0
  404. package/src/shared/content-settings/components/content-settings-item/ContentSettingsItem.vue +1 -1
  405. package/src/shared/content-settings/components/content-settings-item/ContentSettingsItemField.mixin.ts +1 -14
  406. package/src/shared/content-settings/components/focused-content-item-settings/FocusedContentItemSettings.mixin.ts +4 -6
  407. package/src/shared/content-settings/components/focused-content-item-settings/FocusedContentItemSettings.vue +2 -2
  408. package/src/shared/content-settings/components/icon-library/IconLibrary.mixin.ts +1 -0
  409. package/src/shared/content-settings/components/items-field/ItemsField.mixin.ts +1 -1
  410. package/src/shared/content-settings/components/logo-selection-field/LogoSelectionField.vue +1 -1
  411. package/src/shared/content-settings/components/logo-size-field/LogoSizeSliderField.vue +1 -1
  412. package/src/shared/content-settings/components/page-dropdown-field/PageDropdownField.vue +1 -1
  413. package/src/shared/content-settings/components/personalisation-role-field/PersonalisationRoleField.vue +4 -4
  414. package/src/shared/content-settings/components/slider-field/SliderField.mixin.ts +9 -0
  415. package/src/shared/content-settings/components/text-image-field/TextImageField.vue +2 -8
  416. package/src/shared/content-settings/components/text-items-field/TextItemsField.mixin.ts +1 -1
  417. package/src/shared/content-settings/models.ts +3 -2
  418. package/src/shared/content-settings/utils.ts +0 -1
  419. package/src/shared/dropzone-image-uploader/components/DropzoneImageUploader.vue +1 -0
  420. package/src/shared/ecommerce-settings/store/cart-store.test.ts +1 -1
  421. package/src/shared/font-family-selector/FontFamilySelector.mixin.ts +1 -0
  422. package/src/shared/image-gallery-style-settings/ImageGalleryStyleSettings.mixin.ts +1 -0
  423. package/src/shared/logo-settings/components/EditLogoSettings.mixin.ts +1 -1
  424. package/src/shared/logo-settings/components/LogoSettings.mixin.ts +0 -1
  425. package/src/shared/logo-settings/components/LogoSettingsHeader.mixin.ts +1 -0
  426. package/src/shared/logo-settings/components/LogoStyleSettingsWithState.vue +2 -2
  427. package/src/shared/logo-settings/components/LogoTemplateSearch.vue +1 -1
  428. package/src/shared/logo-settings/store/editable-logo-store.ts +1 -1
  429. package/src/shared/logo-settings/store/logo-settings-store.test.ts +4 -4
  430. package/src/shared/logo-versions/LogoVersions.mixin.ts +1 -0
  431. package/src/shared/models.ts +6 -0
  432. package/src/shared/my-designs/MyDesigns.mixin.ts +1 -0
  433. package/src/shared/my-uploads/MyMedia.mixin.ts +1 -0
  434. package/src/shared/my-uploads/MyMediaSelectionItem.vue +2 -1
  435. package/src/shared/my-uploads/MyUploads.mixin.ts +1 -0
  436. package/src/shared/my-uploads/models.ts +1 -2
  437. package/src/shared/navigation-style-settings/components/navigation-style-settings/NavigationStyleSettings.mixin.ts +1 -0
  438. package/src/shared/navigation-style-settings/components/navigation-style-settings/NavigationStyleSettings.vue +1 -1
  439. package/src/shared/page-settings/components/new-page-modal/NewPageModal.mixin.ts +0 -3
  440. package/src/shared/page-settings/components/page-settings/NestedDraggable.vue +1 -1
  441. package/src/shared/page-settings/components/page-settings/PageSettings.vue +1 -2
  442. package/src/shared/page-settings/components/page-settings-section-styles/HeaderDisplayStyle.vue +1 -1
  443. package/src/shared/page-settings/components/page-settings-section-styles/PageSettingsSectionStyles.mixin.ts +1 -1
  444. package/src/shared/page-settings/store/page-settings-store.test.ts +4 -8
  445. package/src/shared/publish-brand-page-with-state/PublishBrandPageModalWithState.mixin.ts +0 -1
  446. package/src/shared/shape-library/ShapeLibrary.vue +2 -2
  447. package/src/shared/style-settings/store/style-settings-store.ts +1 -1
  448. package/src/shared/template-settings/components/TemplatesSettings.mixin.ts +2 -2
  449. package/src/shared/template-settings/models.ts +1 -0
  450. package/src/shared/template-settings/store/template-settings-store.ts +105 -18
  451. package/src/shared/unsplash-library/UnsplashLibrary.vue +2 -6
  452. package/src/shared/video-library/VideoLibrary.vue +1 -1
  453. package/src/utils/minify-brand-page-metadata.ts +11 -1
  454. package/lib/src/brand-page/components/testimonial-section/TestimonialSection.mixin.js +0 -112
  455. package/src/brand-page/components/testimonial-section/TestimonialSection.mixin.ts +0 -132
@@ -156,7 +156,7 @@ exports[`migration02.ts > migration02 should return converted letterspacing 1`]
156
156
  "borderTopWidth": "0px",
157
157
  "color": undefined,
158
158
  "fontFamily": "Lato",
159
- "fontSize": "1rem",
159
+ "fontSize": "1em",
160
160
  "fontStyle": undefined,
161
161
  "fontWeight": "normal",
162
162
  "textAlign": "center",
@@ -230,7 +230,7 @@ exports[`migration02.ts > migration02 should return converted letterspacing 1`]
230
230
  "borderTopWidth": "0px",
231
231
  "color": undefined,
232
232
  "fontFamily": "Lato",
233
- "fontSize": "1rem",
233
+ "fontSize": "1em",
234
234
  "fontStyle": undefined,
235
235
  "fontWeight": "normal",
236
236
  "textAlign": "center",
@@ -410,7 +410,7 @@ exports[`migration02.ts > migration02 should return converted letterspacing 1`]
410
410
  "style": {
411
411
  "color": undefined,
412
412
  "fontFamily": "Lato",
413
- "fontSize": "1rem",
413
+ "fontSize": "1em",
414
414
  "fontStyle": undefined,
415
415
  "fontWeight": undefined,
416
416
  "letterSpacing": undefined,
@@ -426,7 +426,7 @@ exports[`migration02.ts > migration02 should return converted letterspacing 1`]
426
426
  "style": {
427
427
  "color": undefined,
428
428
  "fontFamily": "Lato",
429
- "fontSize": "1.5rem",
429
+ "fontSize": "1.5em",
430
430
  "fontStyle": undefined,
431
431
  "fontWeight": undefined,
432
432
  "letterSpacing": undefined,
@@ -442,7 +442,7 @@ exports[`migration02.ts > migration02 should return converted letterspacing 1`]
442
442
  "style": {
443
443
  "color": undefined,
444
444
  "fontFamily": "Lato",
445
- "fontSize": "1rem",
445
+ "fontSize": "1em",
446
446
  "fontStyle": undefined,
447
447
  "fontWeight": undefined,
448
448
  "letterSpacing": undefined,
@@ -458,7 +458,7 @@ exports[`migration02.ts > migration02 should return converted letterspacing 1`]
458
458
  "style": {
459
459
  "color": undefined,
460
460
  "fontFamily": "Lato",
461
- "fontSize": "2.25rem",
461
+ "fontSize": "2.25em",
462
462
  "fontStyle": undefined,
463
463
  "fontWeight": undefined,
464
464
  "letterSpacing": undefined,
@@ -472,6 +472,7 @@ exports[`migration02.ts > migration02 should return converted letterspacing 1`]
472
472
  },
473
473
  },
474
474
  },
475
+ "userPromptContentKey": undefined,
475
476
  "v": 0,
476
477
  },
477
478
  "useOldLogoRenderSize": false,
@@ -155,7 +155,7 @@ BrandPageModel {
155
155
  "borderTopWidth": "0px",
156
156
  "color": undefined,
157
157
  "fontFamily": "Lato",
158
- "fontSize": "1rem",
158
+ "fontSize": "1em",
159
159
  "fontStyle": undefined,
160
160
  "fontWeight": "normal",
161
161
  "textAlign": "center",
@@ -229,7 +229,7 @@ BrandPageModel {
229
229
  "borderTopWidth": "0px",
230
230
  "color": undefined,
231
231
  "fontFamily": "Lato",
232
- "fontSize": "1rem",
232
+ "fontSize": "1em",
233
233
  "fontStyle": undefined,
234
234
  "fontWeight": "normal",
235
235
  "textAlign": "center",
@@ -384,7 +384,7 @@ BrandPageModel {
384
384
  "style": {
385
385
  "color": undefined,
386
386
  "fontFamily": "Lato",
387
- "fontSize": "1rem",
387
+ "fontSize": "1em",
388
388
  "fontStyle": undefined,
389
389
  "fontWeight": undefined,
390
390
  "letterSpacing": undefined,
@@ -400,7 +400,7 @@ BrandPageModel {
400
400
  "style": {
401
401
  "color": undefined,
402
402
  "fontFamily": "Lato",
403
- "fontSize": "1.5rem",
403
+ "fontSize": "1.5em",
404
404
  "fontStyle": undefined,
405
405
  "fontWeight": undefined,
406
406
  "letterSpacing": undefined,
@@ -416,7 +416,7 @@ BrandPageModel {
416
416
  "style": {
417
417
  "color": undefined,
418
418
  "fontFamily": "Lato",
419
- "fontSize": "1rem",
419
+ "fontSize": "1em",
420
420
  "fontStyle": undefined,
421
421
  "fontWeight": undefined,
422
422
  "letterSpacing": undefined,
@@ -432,7 +432,7 @@ BrandPageModel {
432
432
  "style": {
433
433
  "color": undefined,
434
434
  "fontFamily": "Lato",
435
- "fontSize": "2.25rem",
435
+ "fontSize": "2.25em",
436
436
  "fontStyle": undefined,
437
437
  "fontWeight": undefined,
438
438
  "letterSpacing": undefined,
@@ -446,6 +446,7 @@ BrandPageModel {
446
446
  },
447
447
  },
448
448
  },
449
+ "userPromptContentKey": undefined,
449
450
  "v": 0,
450
451
  }
451
452
  `;
@@ -605,7 +606,7 @@ BrandPageModel {
605
606
  "borderTopWidth": "0px",
606
607
  "color": undefined,
607
608
  "fontFamily": "Lato",
608
- "fontSize": "1rem",
609
+ "fontSize": "1em",
609
610
  "fontStyle": undefined,
610
611
  "fontWeight": "normal",
611
612
  "textAlign": "center",
@@ -679,7 +680,7 @@ BrandPageModel {
679
680
  "borderTopWidth": "0px",
680
681
  "color": undefined,
681
682
  "fontFamily": "Lato",
682
- "fontSize": "1rem",
683
+ "fontSize": "1em",
683
684
  "fontStyle": undefined,
684
685
  "fontWeight": "normal",
685
686
  "textAlign": "center",
@@ -849,7 +850,7 @@ BrandPageModel {
849
850
  "style": {
850
851
  "color": undefined,
851
852
  "fontFamily": "Lato",
852
- "fontSize": "1rem",
853
+ "fontSize": "1em",
853
854
  "fontStyle": undefined,
854
855
  "fontWeight": undefined,
855
856
  "letterSpacing": undefined,
@@ -865,7 +866,7 @@ BrandPageModel {
865
866
  "style": {
866
867
  "color": undefined,
867
868
  "fontFamily": "Lato",
868
- "fontSize": "1.5rem",
869
+ "fontSize": "1.5em",
869
870
  "fontStyle": undefined,
870
871
  "fontWeight": undefined,
871
872
  "letterSpacing": undefined,
@@ -881,7 +882,7 @@ BrandPageModel {
881
882
  "style": {
882
883
  "color": undefined,
883
884
  "fontFamily": "Lato",
884
- "fontSize": "1rem",
885
+ "fontSize": "1em",
885
886
  "fontStyle": undefined,
886
887
  "fontWeight": undefined,
887
888
  "letterSpacing": undefined,
@@ -897,7 +898,7 @@ BrandPageModel {
897
898
  "style": {
898
899
  "color": undefined,
899
900
  "fontFamily": "Lato",
900
- "fontSize": "2.25rem",
901
+ "fontSize": "2.25em",
901
902
  "fontStyle": undefined,
902
903
  "fontWeight": undefined,
903
904
  "letterSpacing": undefined,
@@ -911,6 +912,7 @@ BrandPageModel {
911
912
  },
912
913
  },
913
914
  },
915
+ "userPromptContentKey": undefined,
914
916
  "v": 0,
915
917
  }
916
918
  `;
@@ -0,0 +1,29 @@
1
+ import { describe, test, expect } from 'vitest';
2
+ import { contentPaddingStyle } from './content-padding.util';
3
+
4
+ describe('content-padding.util', () => {
5
+ test('contentPaddingStyle should map stored padding to px values', () => {
6
+ expect(contentPaddingStyle({ topPadding: 53, bottomPadding: 24 })).toEqual({
7
+ paddingTop: '53px',
8
+ paddingBottom: '24px',
9
+ });
10
+ });
11
+
12
+ test('contentPaddingStyle should default missing values to 0 for content created before the field existed', () => {
13
+ expect(contentPaddingStyle({})).toEqual({
14
+ paddingTop: '0px',
15
+ paddingBottom: '0px',
16
+ });
17
+ expect(contentPaddingStyle({ topPadding: 16 })).toEqual({
18
+ paddingTop: '16px',
19
+ paddingBottom: '0px',
20
+ });
21
+ });
22
+
23
+ test('contentPaddingStyle should keep an explicit 0 rather than treating it as unset', () => {
24
+ expect(contentPaddingStyle({ topPadding: 0, bottomPadding: 0 })).toEqual({
25
+ paddingTop: '0px',
26
+ paddingBottom: '0px',
27
+ });
28
+ });
29
+ });
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Block top/bottom padding (BP-5687) as a bindable CSS style object. Defaults
3
+ * live in the data — `content-settings` for new content, a migration for
4
+ * existing — so this just reads the stored value (`?? 0` covers content from
5
+ * before the field existed).
6
+ */
7
+ export const contentPaddingStyle = (content: {
8
+ topPadding?: number;
9
+ bottomPadding?: number;
10
+ }): { paddingTop: string; paddingBottom: string } => ({
11
+ paddingTop: `${content.topPadding ?? 0}px`,
12
+ paddingBottom: `${content.bottomPadding ?? 0}px`,
13
+ });
@@ -1,4 +1,5 @@
1
1
  export * from './style.util';
2
+ export * from './content-padding.util';
2
3
  export * from './view-model.util';
3
4
  export * from './text.util';
4
5
  export * from './model.util';
@@ -1,4 +1,4 @@
1
- import type { BrandPageModel, LogoImageModel } from '../..';
1
+ import type { LogoImageModel } from '../..';
2
2
  import type { MigrationData } from '../migration.util';
3
3
 
4
4
  import { migrateLogoImage } from './logo/logo.migration.util';
@@ -3,7 +3,6 @@ import {
3
3
  FONT_SIZE_HEADINGS,
4
4
  type AboutSectionContent,
5
5
  type BannerSectionContent,
6
- type BrandPageModel,
7
6
  type ButtonContent,
8
7
  type ContactFormContent,
9
8
  type GlobalTextStyleDeclaration,
@@ -2,7 +2,6 @@ import {
2
2
  BRAND_PAGE_TYPES,
3
3
  type AboutSectionContent,
4
4
  type BannerSectionContent,
5
- type BrandPageModel,
6
5
  type BrandPageType,
7
6
  type ButtonContent,
8
7
  type ContactFormContent,
@@ -1,7 +1,6 @@
1
1
  import {
2
2
  type AboutSectionContent,
3
3
  type BannerSectionContent,
4
- type BrandPageModel,
5
4
  type ButtonContent,
6
5
  type ContactFormContent,
7
6
  type Content,
@@ -1,8 +1,4 @@
1
- import {
2
- type BrandPageModel,
3
- type TextContent,
4
- type LogoImageModel,
5
- } from '../..';
1
+ import { type TextContent, type LogoImageModel } from '../..';
6
2
  import type { MigrationData } from '../migration.util';
7
3
  import { isTextContent } from '../model.util';
8
4
 
@@ -1,4 +1,4 @@
1
- import { type BrandPageModel, type ButtonContent } from '../..';
1
+ import { type ButtonContent } from '../..';
2
2
  import type { MigrationData } from '../migration.util';
3
3
 
4
4
  export const migration05_2 = (
@@ -341,7 +341,7 @@ describe('migration08', () => {
341
341
  data: 'test-template-svg-data',
342
342
  });
343
343
 
344
- const result = await migration08(migrationData, {
344
+ const _result = await migration08(migrationData, {
345
345
  isServerRender: false,
346
346
  isUserDraft: false,
347
347
  });
@@ -0,0 +1,77 @@
1
+ import type { MigrationData } from '../migration.util';
2
+ import type { BannerSectionContent, ContactFormContent } from '../../models';
3
+ import { BRAND_PAGE_TYPES } from '../../models';
4
+ import {
5
+ CONTACT_FORM_LAYOUT_DEFAULT_PADDING,
6
+ TESTIMONIAL_DEFAULT_PADDING,
7
+ bannerDisplayStyleDefaultPadding,
8
+ } from '../../constants';
9
+
10
+ /**
11
+ * Padding Control backfill (BP-5699 Tier 2, BP-5700 Store): blocks that already
12
+ * had hard-coded top/bottom spacing. Backfill that spacing as the block's explicit
13
+ * topPadding/bottomPadding so existing pages render unchanged once the spacing
14
+ * moves to the Padding Control sliders. Type-scoped and idempotent — only the
15
+ * listed types, and only when the value isn't already set.
16
+ *
17
+ * Exception — `testimonial-section` (BP-5703): testimonials had 32px mobile / 80px
18
+ * desktop and are intentionally collapsing to a single value across both breakpoints,
19
+ * so the backfill sets that single value rather than preserving the old desktop 80px.
20
+ * Existing testimonials will look tighter on desktop / roomier on mobile — by design.
21
+ */
22
+ const BLOCK_DEFAULT_PADDING: Partial<Record<string, number>> = {
23
+ 'images-section': 32,
24
+ 'social-links': 32,
25
+ 'shapes-section': 32,
26
+ 'booking-section': 32,
27
+ 'shop-section': 16,
28
+ 'about-section': 32,
29
+ 'testimonial-section': TESTIMONIAL_DEFAULT_PADDING,
30
+ };
31
+
32
+ export const migration17 = async (
33
+ migrationResult: MigrationData,
34
+ ): Promise<MigrationData> => {
35
+ const { brandPageModel } = migrationResult;
36
+
37
+ brandPageModel.pages.forEach((page) => {
38
+ page.contents.forEach((content) => {
39
+ // Contact Form and Banner previously varied their hard-coded spacing by
40
+ // layout/display style (full-bleed image layouts had no outer padding), so they're
41
+ // keyed by that rather than a single per-type value.
42
+ let value: number | undefined;
43
+
44
+ if (content.type === 'contact-form') {
45
+ value =
46
+ CONTACT_FORM_LAYOUT_DEFAULT_PADDING[
47
+ (content as ContactFormContent).layoutStyle ?? ''
48
+ ];
49
+ } else if (content.type === 'banner-section') {
50
+ value = bannerDisplayStyleDefaultPadding(
51
+ (content as BannerSectionContent).displayStyle,
52
+ );
53
+ } else if (content.type === 'text') {
54
+ // Text outer padding is brand-page-type specific: 12 on Brand Site, 0 on
55
+ // Brand Page / Brand Contact - backfill per type so existing pages render unchanged.
56
+ value =
57
+ brandPageModel.brandPageType === BRAND_PAGE_TYPES.brandSite ? 12 : 0;
58
+ } else {
59
+ value = BLOCK_DEFAULT_PADDING[content.type];
60
+ }
61
+
62
+ if (value === undefined) {
63
+ return;
64
+ }
65
+
66
+ if (content.topPadding === undefined) {
67
+ content.topPadding = value;
68
+ }
69
+
70
+ if (content.bottomPadding === undefined) {
71
+ content.bottomPadding = value;
72
+ }
73
+ });
74
+ });
75
+
76
+ return migrationResult;
77
+ };
@@ -1,5 +1,6 @@
1
1
  import { migrateBrandPageModel } from './migration.util';
2
2
  import { migrateNewLogoLogic } from './migration/migration-01';
3
+ import { migration17 } from './migration/migration-17';
3
4
  import {
4
5
  BrandPageModel,
5
6
  type BrandPageData,
@@ -24,11 +25,18 @@ import {
24
25
  createInitialTestimonialSectionContent,
25
26
  } from '@brand-page-maker/models';
26
27
  import {
28
+ ALIGN_CARD_CENTER_IMAGE,
29
+ ALIGN_LEFT_FULL_IMAGE,
30
+ ALIGN_RIGHT_FULL_IMAGE,
31
+ ALIGN_TOP_FULL_IMAGE,
32
+ ALIGN_BOTTOM_FULL_IMAGE,
33
+ ALIGN_MIDDLE_FULL_IMAGE,
27
34
  DEFAULT_LETTER_SPACING,
28
35
  LINE_HEIGHT_BODY,
29
36
  LINE_HEIGHT_HEADINGS,
30
37
  LINE_HEIGHT_TITLE,
31
38
  TEXT_ONLY,
39
+ TESTIMONIAL_DEFAULT_PADDING,
32
40
  } from '../constants';
33
41
 
34
42
  describe('migration.util', () => {
@@ -1464,6 +1472,288 @@ describe('migration.util', () => {
1464
1472
  expect(content.layoutStyle).toBe(TEXT_ONLY);
1465
1473
  });
1466
1474
 
1475
+ test('migration17 should backfill contact form padding from its layout style', async () => {
1476
+ const model = await migrateBrandPageModel(getBsModel(), {
1477
+ isUserDraft: false,
1478
+ isServerRender: false,
1479
+ });
1480
+
1481
+ const collapsible = model.brandPageModel.pages[3]
1482
+ .contents[0] as ContactFormContent;
1483
+ const textOnly = model.brandPageModel.pages[3]
1484
+ .contents[1] as ContactFormContent;
1485
+
1486
+ expect(collapsible.topPadding).toBe(0);
1487
+ expect(collapsible.bottomPadding).toBe(0);
1488
+ expect(textOnly.topPadding).toBe(32);
1489
+ expect(textOnly.bottomPadding).toBe(32);
1490
+ });
1491
+
1492
+ test.each([
1493
+ [ALIGN_LEFT_FULL_IMAGE],
1494
+ [ALIGN_RIGHT_FULL_IMAGE],
1495
+ [ALIGN_CARD_CENTER_IMAGE],
1496
+ ])(
1497
+ 'migration17 should backfill zero padding for the %s contact form layout',
1498
+ async (layoutStyle) => {
1499
+ const brandPageModel = getBsModel();
1500
+
1501
+ (
1502
+ brandPageModel.pages[3].contents[1] as ContactFormContent
1503
+ ).layoutStyle = layoutStyle;
1504
+
1505
+ const model = await migrateBrandPageModel(brandPageModel, {
1506
+ isUserDraft: false,
1507
+ isServerRender: false,
1508
+ });
1509
+
1510
+ const content = model.brandPageModel.pages[3]
1511
+ .contents[1] as ContactFormContent;
1512
+
1513
+ expect(content.topPadding).toBe(0);
1514
+ expect(content.bottomPadding).toBe(0);
1515
+ },
1516
+ );
1517
+
1518
+ test('migration17 should not overwrite contact form padding that is already set', async () => {
1519
+ const brandPageModel = getBsModel();
1520
+
1521
+ (brandPageModel.pages[3].contents[1] as ContactFormContent).topPadding =
1522
+ 10;
1523
+
1524
+ const model = await migrateBrandPageModel(brandPageModel, {
1525
+ isUserDraft: false,
1526
+ isServerRender: false,
1527
+ });
1528
+
1529
+ const content = model.brandPageModel.pages[3]
1530
+ .contents[1] as ContactFormContent;
1531
+
1532
+ expect(content.topPadding).toBe(10);
1533
+ expect(content.bottomPadding).toBe(32);
1534
+ });
1535
+
1536
+ test('migration17 should backfill 32 padding for standard banner display styles', async () => {
1537
+ const model = await migrateBrandPageModel(getBsModel(), {
1538
+ isUserDraft: false,
1539
+ isServerRender: false,
1540
+ });
1541
+
1542
+ // pages[0].contents[0] is a 'centered' banner (standard, not full-bleed).
1543
+ const banner = model.brandPageModel.pages[0]
1544
+ .contents[0] as BannerSectionContent;
1545
+
1546
+ expect(banner.topPadding).toBe(32);
1547
+ expect(banner.bottomPadding).toBe(32);
1548
+ });
1549
+
1550
+ test.each([
1551
+ [ALIGN_LEFT_FULL_IMAGE],
1552
+ [ALIGN_RIGHT_FULL_IMAGE],
1553
+ [ALIGN_TOP_FULL_IMAGE],
1554
+ [ALIGN_BOTTOM_FULL_IMAGE],
1555
+ [ALIGN_MIDDLE_FULL_IMAGE],
1556
+ ])(
1557
+ 'migration17 should backfill zero padding for the %s full-bleed banner style',
1558
+ async (displayStyle) => {
1559
+ const brandPageModel = getBsModel();
1560
+
1561
+ (
1562
+ brandPageModel.pages[0].contents[0] as BannerSectionContent
1563
+ ).displayStyle = displayStyle;
1564
+
1565
+ const model = await migrateBrandPageModel(brandPageModel, {
1566
+ isUserDraft: false,
1567
+ isServerRender: false,
1568
+ });
1569
+
1570
+ const banner = model.brandPageModel.pages[0]
1571
+ .contents[0] as BannerSectionContent;
1572
+
1573
+ expect(banner.topPadding).toBe(0);
1574
+ expect(banner.bottomPadding).toBe(0);
1575
+ },
1576
+ );
1577
+
1578
+ test('migration17 should backfill 32 padding for standard about display styles', async () => {
1579
+ const model = await migrateBrandPageModel(getBsModel(), {
1580
+ isUserDraft: false,
1581
+ isServerRender: false,
1582
+ });
1583
+
1584
+ // pages[0].contents[2] is a 'centered' about section (standard, not full-image).
1585
+ const about = model.brandPageModel.pages[0]
1586
+ .contents[2] as AboutSectionContent;
1587
+
1588
+ expect(about.topPadding).toBe(32);
1589
+ expect(about.bottomPadding).toBe(32);
1590
+ });
1591
+
1592
+ test.each([[ALIGN_LEFT_FULL_IMAGE], [ALIGN_RIGHT_FULL_IMAGE]])(
1593
+ 'migration17 should backfill 32 padding for the %s full-image about style',
1594
+ async (displayStyle) => {
1595
+ const brandPageModel = getBsModel();
1596
+
1597
+ (
1598
+ brandPageModel.pages[0].contents[2] as AboutSectionContent
1599
+ ).displayStyle = displayStyle;
1600
+
1601
+ const model = await migrateBrandPageModel(brandPageModel, {
1602
+ isUserDraft: false,
1603
+ isServerRender: false,
1604
+ });
1605
+
1606
+ const about = model.brandPageModel.pages[0]
1607
+ .contents[2] as AboutSectionContent;
1608
+
1609
+ expect(about.topPadding).toBe(32);
1610
+ expect(about.bottomPadding).toBe(32);
1611
+ },
1612
+ );
1613
+
1614
+ test('migration17 should backfill 16 padding for the shop section', async () => {
1615
+ const oldTemplate: BrandPageModel = {
1616
+ pages: [
1617
+ {
1618
+ slug: 'shop',
1619
+ title: 'Shop',
1620
+ contents: [{ type: 'shop-section', id: 'shop-1' }],
1621
+ },
1622
+ ],
1623
+ brandPageType: 'brandSite',
1624
+ } as any;
1625
+
1626
+ const model = await migrateBrandPageModel(
1627
+ new BrandPageModel(oldTemplate),
1628
+ {
1629
+ isUserDraft: false,
1630
+ isServerRender: false,
1631
+ },
1632
+ );
1633
+ const shop = model.brandPageModel.pages[0].contents[0] as any;
1634
+
1635
+ expect(shop.topPadding).toBe(16);
1636
+ expect(shop.bottomPadding).toBe(16);
1637
+ });
1638
+
1639
+ test('migration17 should not overwrite shop padding that is already set', async () => {
1640
+ const oldTemplate: BrandPageModel = {
1641
+ pages: [
1642
+ {
1643
+ slug: 'shop',
1644
+ title: 'Shop',
1645
+ contents: [{ type: 'shop-section', id: 'shop-1', topPadding: 40 }],
1646
+ },
1647
+ ],
1648
+ brandPageType: 'brandSite',
1649
+ } as any;
1650
+
1651
+ const model = await migrateBrandPageModel(
1652
+ new BrandPageModel(oldTemplate),
1653
+ {
1654
+ isUserDraft: false,
1655
+ isServerRender: false,
1656
+ },
1657
+ );
1658
+ const shop = model.brandPageModel.pages[0].contents[0] as any;
1659
+
1660
+ expect(shop.topPadding).toBe(40);
1661
+ expect(shop.bottomPadding).toBe(16);
1662
+ });
1663
+
1664
+ test('migration17 should backfill the single testimonial padding across both breakpoints', async () => {
1665
+ const oldTemplate: BrandPageModel = {
1666
+ pages: [
1667
+ {
1668
+ slug: 'testimonials',
1669
+ title: 'Testimonials',
1670
+ contents: [{ type: 'testimonial-section', id: 'testimonial-1' }],
1671
+ },
1672
+ ],
1673
+ brandPageType: 'brandSite',
1674
+ } as any;
1675
+
1676
+ const model = await migrateBrandPageModel(
1677
+ new BrandPageModel(oldTemplate),
1678
+ {
1679
+ isUserDraft: false,
1680
+ isServerRender: false,
1681
+ },
1682
+ );
1683
+ const testimonial = model.brandPageModel.pages[0].contents[0] as any;
1684
+
1685
+ expect(testimonial.topPadding).toBe(TESTIMONIAL_DEFAULT_PADDING);
1686
+ expect(testimonial.bottomPadding).toBe(TESTIMONIAL_DEFAULT_PADDING);
1687
+ });
1688
+
1689
+ test('migration17 should not overwrite testimonial padding that is already set', async () => {
1690
+ const oldTemplate: BrandPageModel = {
1691
+ pages: [
1692
+ {
1693
+ slug: 'testimonials',
1694
+ title: 'Testimonials',
1695
+ contents: [
1696
+ {
1697
+ type: 'testimonial-section',
1698
+ id: 'testimonial-1',
1699
+ topPadding: 40,
1700
+ },
1701
+ ],
1702
+ },
1703
+ ],
1704
+ brandPageType: 'brandSite',
1705
+ } as any;
1706
+
1707
+ const model = await migrateBrandPageModel(
1708
+ new BrandPageModel(oldTemplate),
1709
+ {
1710
+ isUserDraft: false,
1711
+ isServerRender: false,
1712
+ },
1713
+ );
1714
+ const testimonial = model.brandPageModel.pages[0].contents[0] as any;
1715
+
1716
+ expect(testimonial.topPadding).toBe(40);
1717
+ expect(testimonial.bottomPadding).toBe(TESTIMONIAL_DEFAULT_PADDING);
1718
+ });
1719
+
1720
+ const runMigration17ForText = async (brandPageType: string) => {
1721
+ const brandPageModel = {
1722
+ brandPageType,
1723
+ pages: [
1724
+ {
1725
+ slug: 'home',
1726
+ title: 'Home',
1727
+ contents: [{ type: 'text', id: 'text-1' }],
1728
+ },
1729
+ ],
1730
+ } as any;
1731
+
1732
+ const result = await migration17({
1733
+ brandPageModel,
1734
+ useOldLogoRenderSize: false,
1735
+ });
1736
+
1737
+ return result.brandPageModel.pages[0].contents[0] as any;
1738
+ };
1739
+
1740
+ test('migration17 should backfill 12 text padding for brand site', async () => {
1741
+ const text = await runMigration17ForText('brandSite');
1742
+
1743
+ expect(text.topPadding).toBe(12);
1744
+ expect(text.bottomPadding).toBe(12);
1745
+ });
1746
+
1747
+ test.each(['default', 'brandContact'])(
1748
+ 'migration17 should backfill 0 text padding for %s (Brand Page / Brand Contact)',
1749
+ async (brandPageType) => {
1750
+ const text = await runMigration17ForText(brandPageType);
1751
+
1752
+ expect(text.topPadding).toBe(0);
1753
+ expect(text.bottomPadding).toBe(0);
1754
+ },
1755
+ );
1756
+
1467
1757
  test('migrateNewLogoLogic should migrate logoDraftToken and logoVariation', () => {
1468
1758
  const oldTemplate: BrandPageData = {
1469
1759
  pages: [