@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
@@ -1,188 +1,188 @@
1
- <template>
2
- <div
3
- data-component="logo-render"
4
- :class="[
5
- 'logo tw-relative tw-h-full',
6
- isBrandSite ? 'brand-site' : 'brand-page',
7
- ]"
8
- >
9
- <figure
10
- v-if="logoImageUrl || !isPreview"
11
- class="logo__container"
12
- :class="{
13
- 'tw-mb-10': hasMarginBottom,
14
- }"
15
- :style="[logoBackgroundStyles, figureDimensions]"
16
- >
17
- <div
18
- :style="{
19
- ...(props.isBrandPageOrIsBrandContact &&
20
- !props.viewModel?.useOldLogoRenderSize
21
- ? {
22
- margin: 'var(--logo-spacing) auto',
23
- height: `${viewModel?.logoImageHeight || DEFAULT_LOGO_HEIGHT}`,
24
- maxWidth: logoMaxWidth,
25
- }
26
- : {
27
- height: '100%',
28
- width: '100%',
29
- }),
30
- }"
31
- >
32
- <img
33
- v-if="logoImageUrl"
34
- data-test-tag="logo"
35
- class="logo__image"
36
- :src="logoImageUrl"
37
- :alt="altText"
38
- :style="[logoStyle, marginStyle]"
39
- />
40
- </div>
41
- </figure>
42
- </div>
43
- </template>
44
- <script setup lang="ts">
45
- import { computed, ref, watch, onServerPrefetch, onMounted } from 'vue';
46
- import type { LogoViewModel } from '@brand-page/view-models';
47
- import { LogoCacheRepository } from '../../repositories';
48
- import {
49
- DEFAULT_LOGO_HEIGHT,
50
- DEFAULT_LOGO_WIDTH,
51
- LOGO_SLIDER_DESKTOP_MAX,
52
- LOGO_SLIDER_MOBILE_MAX,
53
- } from '../../constants';
54
- import type { ViewportsType } from '@brand-page/models';
55
-
56
- const props = withDefaults(
57
- defineProps<{
58
- isPreview: boolean;
59
- disableServerRender?: boolean;
60
- hasMarginBottom: boolean;
61
- isBrandSite: boolean;
62
- isBrandPageOrIsBrandContact: boolean;
63
- viewModel?: LogoViewModel;
64
- altText: string;
65
- isMobile?: boolean;
66
- }>(),
67
- {
68
- isPreview: false,
69
- hasMarginBottom: false,
70
- altText: '',
71
- disableServerRender: false,
72
- },
73
- );
74
-
75
- const logoImageSvgUrl = ref<string | undefined>(undefined);
76
-
77
- const logoImageBase64Url = computed(() => {
78
- return typeof props.viewModel?.logoImageBase64Url === 'string' &&
79
- props.viewModel.logoImageBase64Url
80
- ? props.viewModel.logoImageBase64Url
81
- : undefined;
82
- });
83
-
84
- const logoBackgroundStyles = computed(() => {
85
- return `background: ${props.viewModel?.styles.backgroundStyle.backgroundColor}`;
86
- });
87
-
88
- const figureDimensions = computed(() => {
89
- return !props.viewModel?.useOldLogoRenderSize
90
- ? {
91
- width: '100%',
92
- height: '100%',
93
- }
94
- : {};
95
- });
96
-
97
- const logoImageUrl = computed(() => {
98
- if (typeof logoImageBase64Url.value !== 'undefined') {
99
- return logoImageBase64Url.value;
100
- }
101
- return logoImageSvgUrl.value;
102
- });
103
-
104
- const logoHeight = computed(() => {
105
- return props.viewModel?.logoImageHeight || DEFAULT_LOGO_HEIGHT;
106
- });
107
-
108
- const logoWidth = computed(() => {
109
- return props.viewModel?.logoImageWidth || DEFAULT_LOGO_WIDTH;
110
- });
111
-
112
- const logoMaxWidth = computed(() => {
113
- if (props.isMobile) {
114
- return `${LOGO_SLIDER_MOBILE_MAX}rem`;
115
- }
116
- return `${LOGO_SLIDER_DESKTOP_MAX}rem`;
117
- });
118
-
119
- const logoStyle = computed(() => {
120
- return props.viewModel?.useOldLogoRenderSize
121
- ? {
122
- width: '100%',
123
- height: '100%',
124
- 'max-width': logoWidth.value,
125
- 'max-height': logoHeight.value,
126
- }
127
- : ({
128
- width: '100%',
129
- height: '100%',
130
- } as any);
131
- });
132
-
133
- const marginStyle = computed(() => {
134
- return props.viewModel?.useOldLogoRenderSize
135
- ? { margin: 'var(--logo-spacing) auto' }
136
- : {};
137
- });
138
-
139
- const updateLogoImageSvgUrlAsync = async () => {
140
- if (
141
- logoImageBase64Url.value ||
142
- (!props.viewModel?.logoTemplateImage?.logoTemplateToken &&
143
- !props.viewModel?.logoImage?.logoDraftToken)
144
- ) {
145
- return;
146
- }
147
-
148
- try {
149
- const logoCacheRepo = LogoCacheRepository.getInstance();
150
-
151
- logoImageSvgUrl.value = props.viewModel.logoTemplateImage?.logoTemplateToken
152
- ? await logoCacheRepo.getLogoSvgUrlByLogoTemplateImageAsync(
153
- props.viewModel.logoTemplateImage,
154
- )
155
- : await logoCacheRepo.getLogoSvgUrlByLogoImageAsync(
156
- props.viewModel.logoImage,
157
- );
158
- } catch (err) {
159
- console.error('unable to retrieve logo image svg data', err);
160
- }
161
- };
162
-
163
- watch(props, updateLogoImageSvgUrlAsync, { deep: true });
164
-
165
- onServerPrefetch(() => {
166
- if (!props.disableServerRender) {
167
- updateLogoImageSvgUrlAsync();
168
- }
169
- });
170
-
171
- onMounted(async () => {
172
- if (!logoImageSvgUrl.value) {
173
- await updateLogoImageSvgUrlAsync();
174
- }
175
- });
176
- </script>
177
- <style scoped>
178
- .logo__container {
179
- border: 0.125rem solid var(--logo-border-colour);
180
- border-radius: 0.75rem;
181
- }
182
-
183
- .logo__image {
184
- display: block;
185
- object-fit: contain;
186
- height: 6rem;
187
- }
188
- </style>
1
+ <template>
2
+ <div
3
+ data-component="logo-render"
4
+ :class="[
5
+ 'logo tw-relative tw-h-full',
6
+ isBrandSite ? 'brand-site' : 'brand-page',
7
+ ]"
8
+ >
9
+ <figure
10
+ v-if="logoImageUrl || !isPreview"
11
+ class="logo__container"
12
+ :class="{
13
+ 'tw-mb-10': hasMarginBottom,
14
+ }"
15
+ :style="[logoBackgroundStyles, figureDimensions]"
16
+ >
17
+ <div
18
+ :style="{
19
+ ...(props.isBrandPageOrIsBrandContact &&
20
+ !props.viewModel?.useOldLogoRenderSize
21
+ ? {
22
+ margin: 'var(--logo-spacing) auto',
23
+ height: `${viewModel?.logoImageHeight || DEFAULT_LOGO_HEIGHT}`,
24
+ maxWidth: logoMaxWidth,
25
+ }
26
+ : {
27
+ height: '100%',
28
+ width: '100%',
29
+ }),
30
+ }"
31
+ >
32
+ <img
33
+ v-if="logoImageUrl"
34
+ data-test-tag="logo"
35
+ class="logo__image"
36
+ :src="logoImageUrl"
37
+ :alt="altText"
38
+ :style="[logoStyle, marginStyle]"
39
+ />
40
+ </div>
41
+ </figure>
42
+ </div>
43
+ </template>
44
+ <script setup lang="ts">
45
+ import { computed, ref, watch, onServerPrefetch, onMounted } from 'vue';
46
+ import type { LogoViewModel } from '@brand-page/view-models';
47
+ import { LogoCacheRepository } from '../../repositories';
48
+ import {
49
+ DEFAULT_LOGO_HEIGHT,
50
+ DEFAULT_LOGO_WIDTH,
51
+ LOGO_SLIDER_DESKTOP_MAX,
52
+ LOGO_SLIDER_MOBILE_MAX,
53
+ } from '../../constants';
54
+
55
+ const props = withDefaults(
56
+ defineProps<{
57
+ isPreview: boolean;
58
+ disableServerRender?: boolean;
59
+ hasMarginBottom: boolean;
60
+ isBrandSite: boolean;
61
+ isBrandPageOrIsBrandContact: boolean;
62
+ viewModel?: LogoViewModel;
63
+ altText: string;
64
+ isMobile?: boolean;
65
+ }>(),
66
+ {
67
+ isPreview: false,
68
+ hasMarginBottom: false,
69
+ altText: '',
70
+ disableServerRender: false,
71
+ viewModel: undefined,
72
+ },
73
+ );
74
+
75
+ const logoImageSvgUrl = ref<string | undefined>(undefined);
76
+
77
+ const logoImageBase64Url = computed(() => {
78
+ return typeof props.viewModel?.logoImageBase64Url === 'string' &&
79
+ props.viewModel.logoImageBase64Url
80
+ ? props.viewModel.logoImageBase64Url
81
+ : undefined;
82
+ });
83
+
84
+ const logoBackgroundStyles = computed(() => {
85
+ return `background: ${props.viewModel?.styles.backgroundStyle.backgroundColor}`;
86
+ });
87
+
88
+ const figureDimensions = computed(() => {
89
+ return !props.viewModel?.useOldLogoRenderSize
90
+ ? {
91
+ width: '100%',
92
+ height: '100%',
93
+ }
94
+ : {};
95
+ });
96
+
97
+ const logoImageUrl = computed(() => {
98
+ if (typeof logoImageBase64Url.value !== 'undefined') {
99
+ return logoImageBase64Url.value;
100
+ }
101
+ return logoImageSvgUrl.value;
102
+ });
103
+
104
+ const logoHeight = computed(() => {
105
+ return props.viewModel?.logoImageHeight || DEFAULT_LOGO_HEIGHT;
106
+ });
107
+
108
+ const logoWidth = computed(() => {
109
+ return props.viewModel?.logoImageWidth || DEFAULT_LOGO_WIDTH;
110
+ });
111
+
112
+ const logoMaxWidth = computed(() => {
113
+ if (props.isMobile) {
114
+ return `${LOGO_SLIDER_MOBILE_MAX}rem`;
115
+ }
116
+ return `${LOGO_SLIDER_DESKTOP_MAX}rem`;
117
+ });
118
+
119
+ const logoStyle = computed(() => {
120
+ return props.viewModel?.useOldLogoRenderSize
121
+ ? {
122
+ width: '100%',
123
+ height: '100%',
124
+ 'max-width': logoWidth.value,
125
+ 'max-height': logoHeight.value,
126
+ }
127
+ : ({
128
+ width: '100%',
129
+ height: '100%',
130
+ } as any);
131
+ });
132
+
133
+ const marginStyle = computed(() => {
134
+ return props.viewModel?.useOldLogoRenderSize
135
+ ? { margin: 'var(--logo-spacing) auto' }
136
+ : {};
137
+ });
138
+
139
+ const updateLogoImageSvgUrlAsync = async () => {
140
+ if (
141
+ logoImageBase64Url.value ||
142
+ (!props.viewModel?.logoTemplateImage?.logoTemplateToken &&
143
+ !props.viewModel?.logoImage?.logoDraftToken)
144
+ ) {
145
+ return;
146
+ }
147
+
148
+ try {
149
+ const logoCacheRepo = LogoCacheRepository.getInstance();
150
+
151
+ logoImageSvgUrl.value = props.viewModel.logoTemplateImage?.logoTemplateToken
152
+ ? await logoCacheRepo.getLogoSvgUrlByLogoTemplateImageAsync(
153
+ props.viewModel.logoTemplateImage,
154
+ )
155
+ : await logoCacheRepo.getLogoSvgUrlByLogoImageAsync(
156
+ props.viewModel.logoImage,
157
+ );
158
+ } catch (err) {
159
+ console.error('unable to retrieve logo image svg data', err);
160
+ }
161
+ };
162
+
163
+ watch(props, updateLogoImageSvgUrlAsync, { deep: true });
164
+
165
+ onServerPrefetch(() => {
166
+ if (!props.disableServerRender) {
167
+ updateLogoImageSvgUrlAsync();
168
+ }
169
+ });
170
+
171
+ onMounted(async () => {
172
+ if (!logoImageSvgUrl.value) {
173
+ await updateLogoImageSvgUrlAsync();
174
+ }
175
+ });
176
+ </script>
177
+ <style scoped>
178
+ .logo__container {
179
+ border: 0.125rem solid var(--logo-border-colour);
180
+ border-radius: 0.75rem;
181
+ }
182
+
183
+ .logo__image {
184
+ display: block;
185
+ object-fit: contain;
186
+ height: 6rem;
187
+ }
188
+ </style>
@@ -2,7 +2,10 @@ import { defineComponent } from 'vue';
2
2
  import type { PropType } from 'vue';
3
3
  import type { MailingListViewModel } from '@brand-page/view-models';
4
4
  import brandPageClient from '../../clients/brand-page.client';
5
- import { getEmailValidationError } from '@brand-page/utils';
5
+ import {
6
+ getEmailValidationError,
7
+ contentPaddingStyle as toContentPaddingStyle,
8
+ } from '@brand-page/utils';
6
9
  import type { BrandPageContext } from '@brand-page/models';
7
10
  import {
8
11
  contentSettingsTr,
@@ -61,6 +64,10 @@ export default defineComponent({
61
64
  }
62
65
  },
63
66
  computed: {
67
+ contentPaddingStyle(): { paddingTop: string; paddingBottom: string } {
68
+ return toContentPaddingStyle(this.viewModel);
69
+ },
70
+
64
71
  hasNameError(): boolean {
65
72
  return !!this.nameError;
66
73
  },
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <section>
2
+ <section :style="contentPaddingStyle">
3
3
  <div
4
4
  v-if="show"
5
5
  class="tw-p-4"
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <div data-component="map">
2
+ <div data-component="map" :style="contentPaddingStyle">
3
3
  <div
4
4
  class="c-map"
5
5
  :class="{
@@ -22,6 +22,7 @@ import Placeholder from '../placeholder/Placeholder.vue';
22
22
  import type { MapViewModel } from '@brand-page/view-models';
23
23
  import type { BrandPageContext } from '@brand-page/models';
24
24
  import { mapTr } from '@src/composables/useTranslate';
25
+ import { contentPaddingStyle as toContentPaddingStyle } from '@brand-page/utils';
25
26
  import { computed } from 'vue';
26
27
 
27
28
  interface Props {
@@ -37,6 +38,9 @@ const props = withDefaults(defineProps<Props>(), {
37
38
  });
38
39
 
39
40
  const placeId = computed(() => props.viewModel?.address?.placeId);
41
+ const contentPaddingStyle = computed(() =>
42
+ toContentPaddingStyle(props.viewModel),
43
+ );
40
44
  </script>
41
45
  <style scoped>
42
46
  .c-map {
@@ -10,6 +10,7 @@ export default defineComponent({
10
10
  required: true,
11
11
  },
12
12
  },
13
+ emits: ['open-side-menu'],
13
14
 
14
15
  computed: {
15
16
  iconStyle(): BrandPageCssStyle {
@@ -26,6 +26,7 @@ export default defineComponent({
26
26
  required: true,
27
27
  },
28
28
  },
29
+ emits: ['close-side-menu'],
29
30
  data() {
30
31
  return {
31
32
  expandedItems: {} as Record<string, boolean>, // Keep track of which navs are expanded
@@ -53,19 +54,27 @@ export default defineComponent({
53
54
  },
54
55
  // Prevents us from doubling down on em sizing of font
55
56
  defaultWrapperStyle(): BrandPageCssStyle {
56
- const { fontSize, lineHeight, letterSpacing, ...rest } =
57
- this.defaultButtonStyle;
57
+ const {
58
+ fontSize: _fontSize,
59
+ lineHeight: _lineHeight,
60
+ letterSpacing: _letterSpacing,
61
+ ...rest
62
+ } = this.defaultButtonStyle;
58
63
 
59
64
  return rest;
60
65
  },
61
66
  selectedWrapperStyle(): BrandPageCssStyle {
62
- const { fontSize, lineHeight, letterSpacing, ...rest } =
63
- this.selectedButtonStyle;
67
+ const {
68
+ fontSize: _fontSize,
69
+ lineHeight: _lineHeight,
70
+ letterSpacing: _letterSpacing,
71
+ ...rest
72
+ } = this.selectedButtonStyle;
64
73
 
65
74
  return rest;
66
75
  },
67
76
  routes(): any[] {
68
- return this.visibleNavItems.map((navItem, i) => {
77
+ return this.visibleNavItems.map((navItem, _i) => {
69
78
  return {
70
79
  routeName: navItem.routeName,
71
80
  routeParams: navItem.routeParams,
@@ -96,7 +105,7 @@ export default defineComponent({
96
105
  paddingLeft: '32px',
97
106
  backgroundColor: isActive
98
107
  ? baseStyle.backgroundColor
99
- : this.styles.hamburgerMenuStyle.subNavBackgroundColor ?? '#ffffff',
108
+ : (this.styles.hamburgerMenuStyle.subNavBackgroundColor ?? '#ffffff'),
100
109
  };
101
110
  },
102
111
  closeSideMenu(): void {
@@ -1,3 +1,4 @@
1
+ <!-- eslint-disable vue/no-v-html -->
1
2
  <template>
2
3
  <div
3
4
  data-component="page-footer"
@@ -106,7 +106,9 @@ withDefaults(
106
106
  .desktop-tab-horizontal-stack-centered-logo-right-menu {
107
107
  @apply tw-grid;
108
108
  @apply tw-gap-x-4;
109
- grid-template-columns: [col-start] 1fr [logo-start] var(--logo-max-width) [logo-end nav-start] 1fr [nav-end];
109
+ grid-template-columns:
110
+ [col-start] 1fr [logo-start] var(--logo-max-width)
111
+ [logo-end nav-start] 1fr [nav-end];
110
112
  }
111
113
  .desktop-tab-horizontal-stack-centered-logo-right-menu .logo-container {
112
114
  grid-column: logo-start / logo-end;
@@ -184,7 +186,9 @@ withDefaults(
184
186
  /* DESKTOP_TAB_6 */
185
187
  .desktop-tab-vertical-stack-centered-menu-centered-logo.show-nav {
186
188
  @apply tw-grid;
187
- grid-template-rows: [row1-start] var(--tab-nav-height) [row1-end row2-start] 1fr [row2-end];
189
+ grid-template-rows:
190
+ [row1-start] var(--tab-nav-height)
191
+ [row1-end row2-start] 1fr [row2-end];
188
192
  @apply tw-gap-y-4;
189
193
  justify-content: center;
190
194
  justify-items: center;
@@ -209,7 +213,9 @@ withDefaults(
209
213
  }
210
214
  .mobile-tab-vertical-stack-centered-menu-centered-logo.show-nav {
211
215
  @apply tw-grid;
212
- grid-template-rows: [row1-start] var(--tab-nav-height) [row1-end row2-start] 1fr [row2-end];
216
+ grid-template-rows:
217
+ [row1-start] var(--tab-nav-height)
218
+ [row1-end row2-start] 1fr [row2-end];
213
219
  @apply tw-gap-y-4;
214
220
  margin-top: 1rem;
215
221
  }
@@ -282,9 +288,9 @@ withDefaults(
282
288
  .desktop-hamburger-horizontal-stack-centered-logo-right-menu,
283
289
  .mobile-hamburger-horizontal-stack-centered-logo-right-menu {
284
290
  @apply tw-grid;
285
- grid-template-columns: [start] var(--hamburger-nav-width) [logo-start] auto [nav-start] var(
286
- --hamburger-nav-width
287
- );
291
+ grid-template-columns:
292
+ [start] var(--hamburger-nav-width)
293
+ [logo-start] auto [nav-start] var(--hamburger-nav-width);
288
294
  align-items: start;
289
295
  }
290
296
  .desktop-hamburger-horizontal-stack-centered-logo-right-menu .logo-container,
@@ -46,6 +46,7 @@ export default {
46
46
  HeaderLayout,
47
47
  },
48
48
  mixins: [PageHeaderMixin],
49
+ emits: ['open-side-menu'],
49
50
  };
50
51
  </script>
51
52
  <style scoped>
@@ -14,6 +14,7 @@ import type { RequestPaymentViewModel } from '../../../view-models';
14
14
  import type { PaymentRequestDetails } from '../Payment.mixin';
15
15
  import { DEFAULT_CURRENCY_SYMBOL } from '../../../constants';
16
16
  import { addOpacityToHex } from '../../../utils/color.util';
17
+ import { contentPaddingStyle as toContentPaddingStyle } from '../../../utils';
17
18
  import { RGBAtoHex } from '@utils/helpers';
18
19
 
19
20
  const MAX_CUSTOM_REQUEST_CHARS = 500;
@@ -42,6 +43,10 @@ export default defineComponent({
42
43
  };
43
44
  },
44
45
  computed: {
46
+ contentPaddingStyle(): { paddingTop: string; paddingBottom: string } {
47
+ return toContentPaddingStyle(this.viewModel);
48
+ },
49
+
45
50
  isCustomerRequestDetailsValid(): boolean {
46
51
  return (
47
52
  !this.viewModel.requestPaymentConfig.isCustomerRequestDetailsEnabled ||
@@ -1,6 +1,7 @@
1
1
  <template>
2
2
  <div
3
3
  data-component="request-payment"
4
+ :style="contentPaddingStyle"
4
5
  :class="{
5
6
  'tw-my-8': context.isBrandSite,
6
7
  'tw-mb-4': context.isBrandPageOrIsBrandContact,
@@ -4,7 +4,10 @@ import { SUPPORT_ME_CUSTOM_PRODUCT_NAME } from '../../../constants';
4
4
  import type { BrandPageContext, PaymentOption } from '../../../models';
5
5
  import type { SupportMeViewModel } from '../../../view-models';
6
6
  import type { PaymentRequestDetails } from '../Payment.mixin';
7
- import { isPaymentAmountValid } from '../../../utils';
7
+ import {
8
+ isPaymentAmountValid,
9
+ contentPaddingStyle as toContentPaddingStyle,
10
+ } from '../../../utils';
8
11
  import {
9
12
  DEFAULT_CURRENCY_SYMBOL,
10
13
  DEFAULT_CURRENCY_CODE,
@@ -33,6 +36,10 @@ export default defineComponent({
33
36
  };
34
37
  },
35
38
  computed: {
39
+ contentPaddingStyle(): { paddingTop: string; paddingBottom: string } {
40
+ return toContentPaddingStyle(this.viewModel);
41
+ },
42
+
36
43
  isCustomAmountFieldVisible(): boolean {
37
44
  return this.viewModel.supportMeConfig.paymentOptions.some(
38
45
  (o) => o.name === SUPPORT_ME_CUSTOM_PRODUCT_NAME,
@@ -1,6 +1,7 @@
1
1
  <template>
2
2
  <div
3
3
  data-component="support-me"
4
+ :style="contentPaddingStyle"
4
5
  :class="{
5
6
  'tw-my-8': context.isBrandSite,
6
7
  'tw-mb-4': context.isBrandPageOrIsBrandContact,
@@ -28,7 +28,7 @@ import Media from '../media/Media.vue';
28
28
  import type { TextImageSectionViewModel } from '@brand-page/view-models';
29
29
  import type { BrandPageContext } from '@brand-page/models';
30
30
 
31
- const props = defineProps({
31
+ defineProps({
32
32
  viewModel: {
33
33
  type: Object as PropType<TextImageSectionViewModel>,
34
34
  required: true,
@@ -231,8 +231,6 @@
231
231
  import {
232
232
  Modal,
233
233
  Button,
234
- Dropdown,
235
- DropdownItem,
236
234
  NumberStepper,
237
235
  Textarea,
238
236
  Icon,
@@ -318,7 +316,7 @@ const onQtyChange = (skuKey: string, qty: number) => {
318
316
  cartSettingsStore.updateQuantity(skuKey, qty);
319
317
  };
320
318
 
321
- const onUpdateVariantOption = (
319
+ const _onUpdateVariantOption = (
322
320
  index: number,
323
321
  skuKey: string,
324
322
  variant: string,
@@ -60,7 +60,7 @@
60
60
  </ul>
61
61
  </template>
62
62
  <script setup lang="ts">
63
- import type { BrandPageContext, ShopContent } from '@brand-page/models';
63
+ import type { BrandPageContext } from '@brand-page/models';
64
64
  import FallbackImage from '../fallback-image/FallbackImage.vue';
65
65
  import TextWrapper from '../text-wrapper/TextWrapper.vue';
66
66
  import { type PropType } from 'vue';
@@ -71,7 +71,7 @@ import { computed } from 'vue';
71
71
 
72
72
  const shopSettingStore = useShopConfigStore();
73
73
 
74
- const props = defineProps({
74
+ defineProps({
75
75
  context: {
76
76
  type: Object as PropType<BrandPageContext>,
77
77
  required: true,