@designcrowd/library.brand-page 6.0.3 → 6.0.4

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 (383) hide show
  1. package/lib/src/{CreatedOnBrandCrowd-de-de-BctSP4tp.js → CreatedOnBrandCrowd-de-de-Ruu5Az32.js} +3 -3
  2. package/lib/src/{CreatedOnBrandCrowd-en-us-BeNytcxt.js → CreatedOnBrandCrowd-en-us-DGUJtvld.js} +3 -3
  3. package/lib/src/{CreatedOnBrandCrowd-es-es-hY12f5TN.js → CreatedOnBrandCrowd-es-es-Dg-1uOfV.js} +3 -3
  4. package/lib/src/{CreatedOnBrandCrowd-fr-fr-C4SCU39P.js → CreatedOnBrandCrowd-fr-ca-CRKraZl8.js} +3 -3
  5. package/lib/src/{CreatedOnBrandCrowd-fr-ca-C4SCU39P.js → CreatedOnBrandCrowd-fr-fr-CRKraZl8.js} +3 -3
  6. package/lib/src/{CreatedOnBrandCrowd-pt-pt-C5J5kWiD.js → CreatedOnBrandCrowd-pt-br-bZ9VlEAu.js} +3 -3
  7. package/lib/src/{CreatedOnBrandCrowd-pt-br-C5J5kWiD.js → CreatedOnBrandCrowd-pt-pt-bZ9VlEAu.js} +3 -3
  8. package/lib/src/{CreatedOnDcom-de-de-DXCeZZLg.js → CreatedOnDcom-de-de-CJYfwZx8.js} +3 -3
  9. package/lib/src/{CreatedOnDcom-en-us-GeBTaofv.js → CreatedOnDcom-en-us-rzA1lVxH.js} +3 -3
  10. package/lib/src/{CreatedOnDcom-es-es-BiPmv1q-.js → CreatedOnDcom-es-es-CNwGPjik.js} +3 -3
  11. package/lib/src/{CreatedOnDcom-fr-ca-Cns_iX4-.js → CreatedOnDcom-fr-ca-DKw7OGIz.js} +3 -3
  12. package/lib/src/{CreatedOnDcom-fr-fr-CC-f_hUR.js → CreatedOnDcom-fr-fr-WzOEaAZG.js} +3 -3
  13. package/lib/src/{CreatedOnDcom-pt-br-DnhSuPKo.js → CreatedOnDcom-pt-br-DkualVhm.js} +3 -3
  14. package/lib/src/{CreatedOnDcom-pt-pt-BCgbUsqY.js → CreatedOnDcom-pt-pt-w4Nnsdzq.js} +3 -3
  15. package/lib/src/brand-page/clients/brand-page.client.d.ts +9 -9
  16. package/lib/src/brand-page/components/image-gallery/masonry/MasonryGallery.mixin.d.ts +2 -1
  17. package/lib/src/brand-page/components/navigation/hamburger/HamburgerNavigation.mixin.d.ts +2 -4
  18. package/lib/src/brand-page/components/navigation/hamburger/HamburgerNavigation.mixin.js +0 -1
  19. package/lib/src/brand-page/components/navigation/navigation-side-menu/NavigationSideMenu.mixin.d.ts +2 -4
  20. package/lib/src/brand-page/components/navigation/navigation-side-menu/NavigationSideMenu.mixin.js +4 -5
  21. package/lib/src/brand-page/components/page/Page.mixin.d.ts +1 -1
  22. package/lib/src/brand-page/components/page/PageComponent.mixin.d.ts +1 -1
  23. package/lib/src/brand-page/components/payment/Payment.mixin.d.ts +3 -3
  24. package/lib/src/brand-page/components/payment/__fixtures__/request-payment.d.ts +13 -13
  25. package/lib/src/brand-page/components/payment/__fixtures__/support-me.d.ts +13 -13
  26. package/lib/src/brand-page/constants/sections/footer-display.constants.js +1 -1
  27. package/lib/src/brand-page/models/index.d.ts +13 -2
  28. package/lib/src/brand-page/models/index.js +0 -3
  29. package/lib/src/brand-page/models/payment.model.d.ts +1 -1
  30. package/lib/src/brand-page/utils/personalisation.util.js +14 -72
  31. package/lib/src/brand-page-maker/components/action-bar/ActionBar.mixin.d.ts +19 -21
  32. package/lib/src/brand-page-maker/components/action-bar/ActionBar.mixin.js +0 -1
  33. package/lib/src/brand-page-maker/components/admin-background-settings/AdminBackgroundSettings.mixin.d.ts +10 -16
  34. package/lib/src/brand-page-maker/components/admin-background-settings/ShapePositionSlider.mixin.d.ts +1 -1
  35. package/lib/src/brand-page-maker/components/admin-logo-settings/AdminLogoSettings.mixin.d.ts +3 -3
  36. package/lib/src/brand-page-maker/components/brand-page-maker/BrandPageMaker.mixin.d.ts +170 -181
  37. package/lib/src/brand-page-maker/components/brand-page-maker/BrandPageMaker.mixin.js +0 -3
  38. package/lib/src/brand-page-maker/components/brand-page-maker/BrandPageMaker.stories.js +0 -1
  39. package/lib/src/brand-page-maker/components/brand-page-maker/BrandPageMakerTemplateSettings.mixin.d.ts +12 -12
  40. package/lib/src/brand-page-maker/components/brand-page-maker/BrandPageMakerTemplateSettings.stories.js +2 -2
  41. package/lib/src/brand-page-maker/components/brand-page-maker/__fixtures__/brand-page-payment.js +7 -0
  42. package/lib/src/brand-page-maker/components/brandpage-maker-page/BrandPageMakerPage.mixin.d.ts +149 -148
  43. package/lib/src/brand-page-maker/components/brandpage-settings/ReplaceImageSettingsForBrandPageSettings.mixin.d.ts +21 -21
  44. package/lib/src/brand-page-maker/components/brandpage-settings/ReplaceImageSettingsForBrandPageSettings.mixin.js +1 -1
  45. package/lib/src/brand-page-maker/components/color-picker/components/ColorModeSelect.mixin.d.ts +2 -4
  46. package/lib/src/brand-page-maker/components/color-picker/components/ColorModeSelect.mixin.js +0 -1
  47. package/lib/src/brand-page-maker/components/color-picker/components/GradientColorSlider.mixin.d.ts +2 -4
  48. package/lib/src/brand-page-maker/components/color-picker/components/GradientColorSlider.mixin.js +0 -1
  49. package/lib/src/brand-page-maker/components/color-picker/components/GradientColorSliderHandler.mixin.d.ts +2 -5
  50. package/lib/src/brand-page-maker/components/color-picker/components/GradientColorSliderHandler.mixin.js +0 -1
  51. package/lib/src/brand-page-maker/components/color-picker/components/GradientTypeSelector.mixin.d.ts +2 -4
  52. package/lib/src/brand-page-maker/components/color-picker/components/GradientTypeSelector.mixin.js +0 -1
  53. package/lib/src/brand-page-maker/components/device/Device.mixin.d.ts +2 -4
  54. package/lib/src/brand-page-maker/components/device/Device.mixin.js +0 -1
  55. package/lib/src/brand-page-maker/components/navigation/Navigation.mixin.d.ts +2 -4
  56. package/lib/src/brand-page-maker/components/navigation/Navigation.mixin.js +0 -1
  57. package/lib/src/brand-page-maker/components/preview/Preview.mixin.d.ts +3 -3
  58. package/lib/src/brand-page-maker/components/quick-link-bar/QuickLinkBar.mixin.d.ts +11 -11
  59. package/lib/src/brand-page-maker/components/seo-settings/SeoPageSettings.mixin.d.ts +25 -27
  60. package/lib/src/brand-page-maker/components/seo-settings/SeoPageSettings.mixin.js +0 -1
  61. package/lib/src/brand-page-maker/components/seo-settings/UrlSettings.mixin.d.ts +27 -27
  62. package/lib/src/brand-page-maker/components/seo-settings/UrlSettings.mixin.js +1 -1
  63. package/lib/src/brand-page-maker/components/seo-settings/UseExistingDomainModal.mixin.d.ts +12 -17
  64. package/lib/src/brand-page-maker/components/social-share/SocialShare.mixin.d.ts +12 -12
  65. package/lib/src/brand-page-maker/components/template-preview/TemplatePreview.mixin.d.ts +32 -30
  66. package/lib/src/brand-page-maker/components/template-preview/TemplatePreview.mixin.js +5 -16
  67. package/lib/src/brand-page-maker/components/upgrade-to-premium-button/UpgradeToPremiumButton.mixin.d.ts +11 -11
  68. package/lib/src/brand-page-maker/composables/ai-chat/useAiWebsiteBuilderChat.js +6 -3
  69. package/lib/src/brand-page-maker/composables/rich-text-editor/useRichTextEditor.d.ts +1 -1
  70. package/lib/src/brand-page-maker/composables/rich-text-editor/useRichTextEditor.js +6 -6
  71. package/lib/src/brand-page-maker/composables/useEventTracker.d.ts +2 -2
  72. package/lib/src/brand-page-maker/constants/config-settings-constant.d.ts +6 -6
  73. package/lib/src/brand-page-maker/constants/config-settings-constant.js +3 -3
  74. package/lib/src/brand-page-maker/convertors/text-image-display-style.convertor.d.ts +1 -1
  75. package/lib/src/brand-page-maker/convertors/text-image-display-style.convertor.js +1 -1
  76. package/lib/src/brand-page-maker/models/content-settings.d.ts +1 -1
  77. package/lib/src/brand-page-maker/models/navigation-style-configs.js +1 -1
  78. package/lib/src/brand-page-maker/routing/brand-page-maker-router.d.ts +2 -1
  79. package/lib/src/brand-page-maker/stores/ai-checkpoint/ai-checkpoint-store.d.ts +378 -366
  80. package/lib/src/brand-page-maker/stores/brandpage-container/brand-page-container-store.d.ts +4 -5
  81. package/lib/src/brand-page-maker/stores/brandpage-container/brand-page-container-store.js +5 -8
  82. package/lib/src/brand-page-maker/stores/brandpage-maker/brandpage-maker-store.d.ts +1 -3
  83. package/lib/src/brand-page-maker/stores/brandpage-maker/brandpage-maker-store.js +3 -7
  84. package/lib/src/brand-page-maker/stores/history/history-store.d.ts +15 -15
  85. package/lib/src/brand-page-maker/stores/ui/ui-store.d.ts +0 -6
  86. package/lib/src/brand-page-maker/stores/ui/ui-store.js +0 -8
  87. package/lib/src/brand-page-maker/utils/content-settings.util.js +1 -1
  88. package/lib/src/brand-page-maker/utils/rich-text-editor.util.d.ts +1 -1
  89. package/lib/src/brand-page-maker/utils/rich-text-editor.util.js +4 -4
  90. package/lib/src/clients/ai-assistant-client.d.ts +0 -7
  91. package/lib/src/clients/brand-page-client.d.ts +15 -16
  92. package/lib/src/clients/design-template-client.d.ts +0 -3
  93. package/lib/src/clients/media-client.d.ts +2 -2
  94. package/lib/src/clients/models.d.ts +0 -2
  95. package/lib/src/composables/useSnapshot.js +18 -18
  96. package/lib/src/css/library.brand-page-brandCrowd.min.css +324 -342
  97. package/lib/src/css/library.brand-page-brandPage.min.css +324 -620
  98. package/lib/src/css/library.brand-page-designCom.min.css +324 -342
  99. package/lib/src/css/library.brand-page-preview.min.css +324 -598
  100. package/lib/src/index.d.ts +1 -5
  101. package/lib/src/index.mjs +106 -110
  102. package/lib/src/{lib-Cw6L6CfQ.js → lib-Dy7MYyqz.js} +33240 -36457
  103. package/lib/src/lib.js +1 -11
  104. package/lib/src/metadata-builder/builders/footer-builder.js +62 -105
  105. package/lib/src/metadata-builder/builders/item-id-utils.d.ts +54 -0
  106. package/lib/src/metadata-builder/builders/item-id-utils.js +96 -0
  107. package/lib/src/metadata-builder/builders/section-builders/image-gallery-builder.js +57 -68
  108. package/lib/src/metadata-builder/builders/section-builders/images-section-builder.js +58 -93
  109. package/lib/src/metadata-builder/builders/section-builders/shapes-section-builder.js +66 -99
  110. package/lib/src/metadata-builder/builders/section-builders/social-links-builder.js +57 -17
  111. package/lib/src/metadata-builder/builders/section-builders/testimonial-section-builder.js +51 -85
  112. package/lib/src/metadata-builder/builders/section-builders/text-section-builder.js +49 -74
  113. package/lib/src/metadata-builder/builders/section-field-utils.d.ts +0 -7
  114. package/lib/src/metadata-builder/builders/section-field-utils.js +1 -1
  115. package/lib/src/metadata-builder/builders/shape-color-utils.js +1 -1
  116. package/lib/src/metadata-builder/parsers/ai-toolcall-parser.d.ts +16 -7
  117. package/lib/src/metadata-builder/parsers/section-tool-arguments.d.ts +66 -48
  118. package/lib/src/plugins/google-maps-plugin/google-maps-plugin.d.ts +1 -1
  119. package/lib/src/plugins/google-maps-plugin/google-maps-plugin.js +8 -8
  120. package/lib/src/shared/background-settings/components/background-shapes/BackgroundShapeSettings.mixin.d.ts +13 -13
  121. package/lib/src/shared/background-settings/store/background-settings-store.d.ts +3 -3
  122. package/lib/src/shared/color-picker/components/ColorPicker.mixin.d.ts +2 -4
  123. package/lib/src/shared/color-picker/components/ColorPicker.mixin.js +2 -2
  124. package/lib/src/shared/color-picker/components/ColorPickerSwatch.mixin.d.ts +2 -4
  125. package/lib/src/shared/color-picker/components/ColorPickerSwatch.mixin.js +0 -1
  126. package/lib/src/shared/confirm-modal/ConfirmModal.mixin.d.ts +2 -5
  127. package/lib/src/shared/confirm-modal/ConfirmModal.mixin.js +0 -1
  128. package/lib/src/shared/content-settings/components/GenericTextInput.mixin.d.ts +1 -0
  129. package/lib/src/shared/content-settings/components/content-settings/ContentSettings.mixin.d.ts +129 -131
  130. package/lib/src/shared/content-settings/components/content-settings/ContentSettings.mixin.js +1 -2
  131. package/lib/src/shared/content-settings/components/content-settings/ReplaceImageSettingsForContent.mixin.d.ts +110 -111
  132. package/lib/src/shared/content-settings/components/content-settings-item/ContentSettingsItem.mixin.d.ts +81 -84
  133. package/lib/src/shared/content-settings/components/content-settings-item/ContentSettingsItem.mixin.js +0 -5
  134. package/lib/src/shared/content-settings/components/content-settings-item/ContentSettingsItemField.mixin.d.ts +109 -117
  135. package/lib/src/shared/content-settings/components/content-settings-item/ContentSettingsItemField.mixin.js +14 -1
  136. package/lib/src/shared/content-settings/components/email-field/EmailField.mixin.d.ts +1 -0
  137. package/lib/src/shared/content-settings/components/focused-content-item-settings/FocusedContentItemSettings.mixin.d.ts +70 -72
  138. package/lib/src/shared/content-settings/components/focused-content-item-settings/FocusedContentItemSettings.mixin.js +3 -4
  139. package/lib/src/shared/content-settings/components/form-fields-field/FormFieldsField.mixin.d.ts +4 -4
  140. package/lib/src/shared/content-settings/components/icon-library/IconLibrary.mixin.d.ts +1 -3
  141. package/lib/src/shared/content-settings/components/icon-library/IconLibrary.mixin.js +0 -1
  142. package/lib/src/shared/content-settings/components/images-field/ImagesField.mixin.d.ts +2 -2
  143. package/lib/src/shared/content-settings/components/items-field/ItemsField.mixin.d.ts +3 -4
  144. package/lib/src/shared/content-settings/components/items-field/ItemsField.mixin.js +1 -1
  145. package/lib/src/shared/content-settings/components/payment-config-field/PaymentConfigField.mixin.d.ts +40 -40
  146. package/lib/src/shared/content-settings/components/payment-config-field/PaymentConfigOptionField.mixin.d.ts +6 -5
  147. package/lib/src/shared/content-settings/components/shape-field/ShapeField.mixin.d.ts +1 -0
  148. package/lib/src/shared/content-settings/components/slider-field/SliderField.mixin.d.ts +2 -2
  149. package/lib/src/shared/content-settings/components/tel-field/TelField.mixin.d.ts +1 -0
  150. package/lib/src/shared/content-settings/components/testimonial-items-field/TestimonialItemsField.mixin.d.ts +2 -1
  151. package/lib/src/shared/content-settings/components/text-field/TextField.mixin.d.ts +1 -0
  152. package/lib/src/shared/content-settings/components/text-items-field/TextItemsField.mixin.d.ts +2 -1
  153. package/lib/src/shared/content-settings/components/text-items-field/TextItemsField.mixin.js +1 -1
  154. package/lib/src/shared/content-settings/components/text-style-field/TextStyleField.mixin.d.ts +28 -28
  155. package/lib/src/shared/content-settings/components/textarea-field/TextareaField.mixin.d.ts +1 -0
  156. package/lib/src/shared/content-settings/components/toggle-field/ToggleField.mixin.d.ts +2 -2
  157. package/lib/src/shared/content-settings/components/url-field/UrlField.mixin.d.ts +1 -0
  158. package/lib/src/shared/content-settings/components/youtube-video-field/YoutubeVideoField.mixin.d.ts +1 -0
  159. package/lib/src/shared/content-settings/store/content-settings-store.d.ts +39 -39
  160. package/lib/src/shared/content-settings/utils.js +1 -0
  161. package/lib/src/shared/font-family-selector/FontFamilySelector.mixin.d.ts +4 -6
  162. package/lib/src/shared/font-family-selector/FontFamilySelector.mixin.js +0 -1
  163. package/lib/src/shared/image-gallery-style-settings/ImageGalleryStyleSettings.mixin.d.ts +2 -4
  164. package/lib/src/shared/image-gallery-style-settings/ImageGalleryStyleSettings.mixin.js +0 -1
  165. package/lib/src/shared/logo-settings/components/EditLogoSettings.mixin.d.ts +21 -29
  166. package/lib/src/shared/logo-settings/components/EditLogoSettings.mixin.js +1 -1
  167. package/lib/src/shared/logo-settings/components/LogoSettings.mixin.d.ts +51 -50
  168. package/lib/src/shared/logo-settings/components/LogoSettingsHeader.mixin.d.ts +4 -6
  169. package/lib/src/shared/logo-settings/components/LogoSettingsHeader.mixin.js +0 -1
  170. package/lib/src/shared/logo-settings/store/editable-logo-store.js +1 -1
  171. package/lib/src/shared/logo-settings/store/logo-settings-store.d.ts +1 -1
  172. package/lib/src/shared/logo-versions/LogoVersions.mixin.d.ts +5 -13
  173. package/lib/src/shared/logo-versions/LogoVersions.mixin.js +0 -1
  174. package/lib/src/shared/models.d.ts +0 -2
  175. package/lib/src/shared/my-designs/MyDesigns.mixin.d.ts +6 -14
  176. package/lib/src/shared/my-designs/MyDesigns.mixin.js +0 -1
  177. package/lib/src/shared/my-uploads/MyMedia.mixin.d.ts +5 -14
  178. package/lib/src/shared/my-uploads/MyMedia.mixin.js +0 -1
  179. package/lib/src/shared/my-uploads/MyUploads.mixin.d.ts +5 -14
  180. package/lib/src/shared/my-uploads/MyUploads.mixin.js +0 -1
  181. package/lib/src/shared/navigation-style-settings/components/navigation-style-settings/NavigationStyleSettings.mixin.d.ts +3 -5
  182. package/lib/src/shared/navigation-style-settings/components/navigation-style-settings/NavigationStyleSettings.mixin.js +0 -1
  183. package/lib/src/shared/navigation-style-settings/store/index.d.ts +2 -2
  184. package/lib/src/shared/page-navigation/store/page-navigation-store.d.ts +2 -2
  185. package/lib/src/shared/page-settings/components/new-page-modal/NewPageModal.mixin.d.ts +28 -27
  186. package/lib/src/shared/page-settings/components/new-page-modal/NewPageModal.mixin.js +2 -0
  187. package/lib/src/shared/page-settings/components/page-settings/PageSettings.mixin.d.ts +179 -188
  188. package/lib/src/shared/page-settings/components/page-settings-section-styles/PageSettingsSectionStyles.mixin.d.ts +177 -181
  189. package/lib/src/shared/page-settings/components/page-settings-section-styles/PageSettingsSectionStyles.mixin.js +1 -1
  190. package/lib/src/shared/page-settings/store/page-settings-store.d.ts +9 -9
  191. package/lib/src/shared/publish-brand-page-with-state/PublishBrandPageModalWithState.mixin.d.ts +39 -39
  192. package/lib/src/shared/publish-brand-page-with-state/PublishBrandPageModalWithState.mixin.js +1 -0
  193. package/lib/src/shared/side-bar/components/SideBar.mixin.d.ts +18 -18
  194. package/lib/src/shared/side-bar/components/SideBarTabButton.mixin.d.ts +6 -6
  195. package/lib/src/shared/style-settings/components/StyleSettings.mixin.d.ts +60 -66
  196. package/lib/src/shared/style-settings/store/style-settings-store.d.ts +1 -1
  197. package/lib/src/shared/style-settings/store/style-settings-store.js +1 -1
  198. package/lib/src/shared/template-settings/components/TemplatesSettings.mixin.d.ts +450 -20
  199. package/lib/src/shared/template-settings/components/TemplatesSettings.mixin.js +2 -2
  200. package/lib/src/shared/template-settings/models.d.ts +0 -1
  201. package/lib/src/shared/template-settings/store/template-settings-store.d.ts +0 -4
  202. package/lib/src/shared/template-settings/store/template-settings-store.js +11 -79
  203. package/lib/src/shared/unsplash-library/UnsplashLibrary.mixin.d.ts +4 -9
  204. package/lib/src/utils/build-asset-manifest.d.ts +0 -4
  205. package/lib/src/utils/build-asset-manifest.js +0 -8
  206. package/lib/src/utils/minify-brand-page-metadata.d.ts +2 -0
  207. package/lib/src/utils/minify-brand-page-metadata.js +17 -2
  208. package/package.json +56 -60
  209. package/src/brand-page/components/about-section/AboutSection.vue.test.ts +5 -7
  210. package/src/brand-page/components/brand-page-footer/BrandPageFooter.vue +1 -1
  211. package/src/brand-page/components/image/Image.mixin.ts +1 -1
  212. package/src/brand-page/components/image/Image.test.ts +1 -1
  213. package/src/brand-page/components/image-gallery/masonry/MasonryGallery.mixin.ts +2 -1
  214. package/src/brand-page/components/images-section/ImagesSection.vue +1 -0
  215. package/src/brand-page/components/logo/LogoRender.vue +188 -188
  216. package/src/brand-page/components/navigation/hamburger/HamburgerNavigation.mixin.ts +0 -1
  217. package/src/brand-page/components/navigation/navigation-side-menu/NavigationSideMenu.mixin.ts +6 -15
  218. package/src/brand-page/components/page-footer/PageFooter.vue +0 -1
  219. package/src/brand-page/components/page-header/HeaderLayout.vue +6 -12
  220. package/src/brand-page/components/page-header/PageHeader.vue +0 -1
  221. package/src/brand-page/components/shapes-section/ShapesSection.vue +1 -1
  222. package/src/brand-page/components/shop/CartModal.vue +3 -1
  223. package/src/brand-page/components/shop/FeaturedDisplay.vue +2 -2
  224. package/src/brand-page/components/shop/PaymentModal.vue +5 -1
  225. package/src/brand-page/components/shop/ProductDetailModal.vue +1 -1
  226. package/src/brand-page/components/shop/Shop.vue +1 -1
  227. package/src/brand-page/components/shop/TextDisplay.vue +1 -1
  228. package/src/brand-page/components/shop/ThumbnailDisplay.vue +2 -2
  229. package/src/brand-page/components/testimonial-section/TestimonialSection.vue +3 -3
  230. package/src/brand-page/components/text-wrapper/TextWrapper.vue +1 -3
  231. package/src/brand-page/constants/sections/footer-display.constants.ts +1 -1
  232. package/src/brand-page/models/index.ts +12 -4
  233. package/src/brand-page/models/payment.model.ts +1 -2
  234. package/src/brand-page/models/shop.model.ts +2 -0
  235. package/src/brand-page/models/user-personalisation.model.ts +2 -1
  236. package/src/brand-page/utils/__snapshots__/migration.util.test.ts.snap +0 -3
  237. package/src/brand-page/utils/__snapshots__/migration2.util.test.ts.snap +0 -1
  238. package/src/brand-page/utils/__snapshots__/model.util.test.ts.snap +0 -2
  239. package/src/brand-page/utils/migration/migration-01_1.ts +1 -1
  240. package/src/brand-page/utils/migration/migration-02.ts +1 -0
  241. package/src/brand-page/utils/migration/migration-03.ts +1 -0
  242. package/src/brand-page/utils/migration/migration-04.ts +1 -0
  243. package/src/brand-page/utils/migration/migration-05.ts +5 -1
  244. package/src/brand-page/utils/migration/migration-05_2.ts +1 -1
  245. package/src/brand-page/utils/migration/migration-08.test.ts +1 -1
  246. package/src/brand-page/utils/personalisation.util.test.ts +0 -35
  247. package/src/brand-page/utils/personalisation.util.ts +23 -119
  248. package/src/brand-page/view-models.ts +56 -38
  249. package/src/brand-page-maker/assessors/banner-section-description-visibility.assessor.ts +6 -6
  250. package/src/brand-page-maker/assessors/color-replacement-icon-visibility.assessor.ts +2 -2
  251. package/src/brand-page-maker/assessors/color-replacement-profile-visibility.assessor.ts +2 -2
  252. package/src/brand-page-maker/assessors/color-replacement-visibility.assessor.ts +2 -2
  253. package/src/brand-page-maker/assessors/contact-form-visibility.assessor.ts +14 -14
  254. package/src/brand-page-maker/components/action-bar/ActionBar.mixin.ts +0 -1
  255. package/src/brand-page-maker/components/ai-text-edit/TextBubble.vue +0 -1
  256. package/src/brand-page-maker/components/brand-page-maker/BrandPageMaker.mixin.ts +1 -5
  257. package/src/brand-page-maker/components/brand-page-maker/BrandPageMaker.stories.ts +0 -1
  258. package/src/brand-page-maker/components/brand-page-maker/BrandPageMakerTemplateSettings.stories.ts +5 -2
  259. package/src/brand-page-maker/components/brand-page-maker/__fixtures__/brand-page-examples.ts +5 -0
  260. package/src/brand-page-maker/components/brand-page-maker/__fixtures__/brand-page-payment.ts +8 -0
  261. package/src/brand-page-maker/components/brand-page-maker/__fixtures__/brand-site-template.examples.ts +2 -0
  262. package/src/brand-page-maker/components/brandpage-maker-page/BrandPageMakerPage.vue +0 -1
  263. package/src/brand-page-maker/components/brandpage-settings/ReplaceImageSettingsForBrandPageSettings.mixin.ts +1 -1
  264. package/src/brand-page-maker/components/color-palette/BpColorPalette.vue +2 -1
  265. package/src/brand-page-maker/components/color-picker/components/ColorModeSelect.mixin.ts +0 -1
  266. package/src/brand-page-maker/components/color-picker/components/GradientColorSlider.mixin.ts +0 -1
  267. package/src/brand-page-maker/components/color-picker/components/GradientColorSliderHandler.mixin.ts +0 -1
  268. package/src/brand-page-maker/components/color-picker/components/GradientTypeSelector.mixin.ts +0 -1
  269. package/src/brand-page-maker/components/device/Device.mixin.ts +0 -1
  270. package/src/brand-page-maker/components/navigation/Navigation.mixin.ts +0 -1
  271. package/src/brand-page-maker/components/rich-text-editor/RichTextEditor.vue +1 -3
  272. package/src/brand-page-maker/components/sensitive-content/SensitiveContent.vue +4 -1
  273. package/src/brand-page-maker/components/seo-settings/DeleteDomainModal.vue +1 -1
  274. package/src/brand-page-maker/components/seo-settings/SeoPageSettings.mixin.ts +0 -1
  275. package/src/brand-page-maker/components/seo-settings/SeoPageSettings.vue +1 -1
  276. package/src/brand-page-maker/components/seo-settings/UrlSettings.mixin.ts +1 -0
  277. package/src/brand-page-maker/components/seo-settings/UrlSettings.vue +1 -0
  278. package/src/brand-page-maker/components/seo-settings/UseExistingDomainModal.vue +5 -1
  279. package/src/brand-page-maker/components/shop/AddOrEditProductContainer.vue +1 -1
  280. package/src/brand-page-maker/components/shop/ReplaceImageSettingsForShop.vue +1 -1
  281. package/src/brand-page-maker/components/social-share/SocialShare.vue +1 -1
  282. package/src/brand-page-maker/components/template-preview/TemplatePreview.mixin.ts +8 -22
  283. package/src/brand-page-maker/components/template-preview/TemplatePreview.vue +10 -5
  284. package/src/brand-page-maker/components/video-play/VideoPlayButton.vue +1 -1
  285. package/src/brand-page-maker/composables/ai-chat/useAiWebsiteBuilderChat.ts +7 -3
  286. package/src/brand-page-maker/composables/rich-text-editor/useRichTextEditor.ts +6 -6
  287. package/src/brand-page-maker/constants/config-settings-constant.ts +5 -5
  288. package/src/brand-page-maker/convertors/text-image-display-style.convertor.ts +1 -1
  289. package/src/brand-page-maker/models/button-styles-config.ts +2 -4
  290. package/src/brand-page-maker/models/content-settings-configs.ts +2 -4
  291. package/src/brand-page-maker/models/navigation-style-configs.ts +6 -5
  292. package/src/brand-page-maker/stores/admin-logo-settings/admin-logo-settings-store.ts +1 -0
  293. package/src/brand-page-maker/stores/brandpage-container/brand-page-container-store.ts +5 -8
  294. package/src/brand-page-maker/stores/brandpage-maker/brandpage-maker-store.test.ts +3 -1
  295. package/src/brand-page-maker/stores/brandpage-maker/brandpage-maker-store.ts +4 -12
  296. package/src/brand-page-maker/stores/ui/ui-store.ts +0 -16
  297. package/src/brand-page-maker/utils/content-settings.util.ts +1 -1
  298. package/src/brand-page-maker/utils/rich-text-editor.util.ts +4 -4
  299. package/src/clients/ai-assistant-client.ts +0 -7
  300. package/src/clients/design-template-client.ts +0 -3
  301. package/src/clients/models.ts +0 -2
  302. package/src/composables/useSnapshot.ts +22 -19
  303. package/src/lib.ts +0 -13
  304. package/src/metadata-builder/builders/footer-builder.test.ts +229 -130
  305. package/src/metadata-builder/builders/footer-builder.ts +90 -155
  306. package/src/metadata-builder/builders/item-id-utils.test.ts +184 -0
  307. package/src/metadata-builder/builders/item-id-utils.ts +117 -0
  308. package/src/metadata-builder/builders/section-builders/image-gallery-builder.ts +62 -88
  309. package/src/metadata-builder/builders/section-builders/images-section-builder.ts +66 -129
  310. package/src/metadata-builder/builders/section-builders/shapes-section-builder.ts +105 -160
  311. package/src/metadata-builder/builders/section-builders/social-links-builder.ts +65 -20
  312. package/src/metadata-builder/builders/section-builders/testimonial-section-builder.ts +83 -146
  313. package/src/metadata-builder/builders/section-builders/text-section-builder.ts +70 -122
  314. package/src/metadata-builder/builders/section-field-utils.ts +1 -1
  315. package/src/metadata-builder/builders/shape-color-utils.ts +2 -2
  316. package/src/metadata-builder/parsers/ai-toolcall-parser.ts +16 -7
  317. package/src/metadata-builder/parsers/section-tool-arguments.ts +66 -48
  318. package/src/plugins/google-maps-plugin/google-maps-plugin.ts +8 -8
  319. package/src/shared/background-settings/components/BackgroundSettings.vue +1 -1
  320. package/src/shared/background-settings/components/background-color/BackgroundColorSettings.vue +1 -1
  321. package/src/shared/color-picker/components/ColorPicker.mixin.ts +7 -2
  322. package/src/shared/color-picker/components/ColorPickerSwatch.mixin.ts +0 -1
  323. package/src/shared/common/NumberInput.vue +0 -1
  324. package/src/shared/common/SideBarSettingsHeader.vue +2 -2
  325. package/src/shared/confirm-modal/ConfirmModal.mixin.ts +0 -1
  326. package/src/shared/content-settings/components/booking-url-field/BookingUrlField.vue +0 -1
  327. package/src/shared/content-settings/components/button-configuration-field/ButtonConfigurationField.vue +0 -1
  328. package/src/shared/content-settings/components/color-field/ColorField.vue +10 -3
  329. package/src/shared/content-settings/components/content-settings/ContentSettings.mixin.ts +1 -1
  330. package/src/shared/content-settings/components/content-settings/ContentSettingsLockedButton.vue +0 -1
  331. package/src/shared/content-settings/components/content-settings-item/ContentSettingsItem.mixin.ts +0 -5
  332. package/src/shared/content-settings/components/content-settings-item/ContentSettingsItemField.mixin.ts +14 -1
  333. package/src/shared/content-settings/components/focused-content-item-settings/FocusedContentItemSettings.mixin.ts +6 -4
  334. package/src/shared/content-settings/components/icon-library/IconLibrary.mixin.ts +0 -1
  335. package/src/shared/content-settings/components/items-field/ItemsField.mixin.ts +1 -1
  336. package/src/shared/content-settings/components/logo-selection-field/LogoSelectionField.vue +1 -1
  337. package/src/shared/content-settings/components/logo-size-field/LogoSizeSliderField.vue +1 -1
  338. package/src/shared/content-settings/components/page-dropdown-field/PageDropdownField.vue +1 -1
  339. package/src/shared/content-settings/components/personalisation-role-field/PersonalisationRoleField.vue +4 -4
  340. package/src/shared/content-settings/components/text-image-field/TextImageField.vue +8 -2
  341. package/src/shared/content-settings/components/text-items-field/TextItemsField.mixin.ts +1 -1
  342. package/src/shared/content-settings/models.ts +2 -3
  343. package/src/shared/content-settings/utils.ts +1 -0
  344. package/src/shared/dropzone-image-uploader/components/DropzoneImageUploader.vue +0 -1
  345. package/src/shared/ecommerce-settings/store/cart-store.test.ts +1 -1
  346. package/src/shared/font-family-selector/FontFamilySelector.mixin.ts +0 -1
  347. package/src/shared/image-gallery-style-settings/ImageGalleryStyleSettings.mixin.ts +0 -1
  348. package/src/shared/logo-settings/components/EditLogoSettings.mixin.ts +1 -1
  349. package/src/shared/logo-settings/components/LogoSettings.mixin.ts +1 -0
  350. package/src/shared/logo-settings/components/LogoSettingsHeader.mixin.ts +0 -1
  351. package/src/shared/logo-settings/components/LogoStyleSettingsWithState.vue +2 -2
  352. package/src/shared/logo-settings/components/LogoTemplateSearch.vue +1 -1
  353. package/src/shared/logo-settings/store/editable-logo-store.ts +1 -1
  354. package/src/shared/logo-settings/store/logo-settings-store.test.ts +4 -4
  355. package/src/shared/logo-versions/LogoVersions.mixin.ts +0 -1
  356. package/src/shared/models.ts +0 -6
  357. package/src/shared/my-designs/MyDesigns.mixin.ts +0 -1
  358. package/src/shared/my-uploads/MyMedia.mixin.ts +0 -1
  359. package/src/shared/my-uploads/MyMediaSelectionItem.vue +1 -2
  360. package/src/shared/my-uploads/MyUploads.mixin.ts +0 -1
  361. package/src/shared/my-uploads/models.ts +2 -1
  362. package/src/shared/navigation-style-settings/components/navigation-style-settings/NavigationStyleSettings.mixin.ts +0 -1
  363. package/src/shared/navigation-style-settings/components/navigation-style-settings/NavigationStyleSettings.vue +1 -1
  364. package/src/shared/page-settings/components/new-page-modal/NewPageModal.mixin.ts +3 -0
  365. package/src/shared/page-settings/components/page-settings/NestedDraggable.vue +1 -1
  366. package/src/shared/page-settings/components/page-settings/PageSettings.vue +2 -1
  367. package/src/shared/page-settings/components/page-settings-section-styles/HeaderDisplayStyle.vue +1 -1
  368. package/src/shared/page-settings/components/page-settings-section-styles/PageSettingsSectionStyles.mixin.ts +1 -1
  369. package/src/shared/page-settings/store/page-settings-store.test.ts +8 -4
  370. package/src/shared/publish-brand-page-with-state/PublishBrandPageModalWithState.mixin.ts +1 -0
  371. package/src/shared/shape-library/ShapeLibrary.vue +2 -2
  372. package/src/shared/style-settings/store/style-settings-store.ts +1 -1
  373. package/src/shared/template-settings/components/TemplatesSettings.mixin.ts +2 -2
  374. package/src/shared/template-settings/models.ts +0 -1
  375. package/src/shared/template-settings/store/template-settings-store.ts +18 -105
  376. package/src/shared/unsplash-library/UnsplashLibrary.vue +6 -2
  377. package/src/shared/video-library/VideoLibrary.vue +1 -1
  378. package/src/utils/build-asset-manifest.ts +0 -12
  379. package/src/utils/minify-brand-page-metadata.ts +27 -7
  380. package/lib/src/brand-page/components/banner-section/BannerSection.mixin.d.ts +0 -103
  381. package/lib/src/brand-page/components/banner-section/BannerSection.mixin.js +0 -178
  382. package/src/brand-page/components/banner-section/BannerSection.mixin.ts +0 -210
  383. package/src/brand-page-maker/components/template-preview/TemplatePreviewAiBadge.vue +0 -12
@@ -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
-
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>
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>
@@ -10,7 +10,6 @@ export default defineComponent({
10
10
  required: true,
11
11
  },
12
12
  },
13
- emits: ['open-side-menu'],
14
13
 
15
14
  computed: {
16
15
  iconStyle(): BrandPageCssStyle {
@@ -26,7 +26,6 @@ export default defineComponent({
26
26
  required: true,
27
27
  },
28
28
  },
29
- emits: ['close-side-menu'],
30
29
  data() {
31
30
  return {
32
31
  expandedItems: {} as Record<string, boolean>, // Keep track of which navs are expanded
@@ -54,27 +53,19 @@ export default defineComponent({
54
53
  },
55
54
  // Prevents us from doubling down on em sizing of font
56
55
  defaultWrapperStyle(): BrandPageCssStyle {
57
- const {
58
- fontSize: _fontSize,
59
- lineHeight: _lineHeight,
60
- letterSpacing: _letterSpacing,
61
- ...rest
62
- } = this.defaultButtonStyle;
56
+ const { fontSize, lineHeight, letterSpacing, ...rest } =
57
+ this.defaultButtonStyle;
63
58
 
64
59
  return rest;
65
60
  },
66
61
  selectedWrapperStyle(): BrandPageCssStyle {
67
- const {
68
- fontSize: _fontSize,
69
- lineHeight: _lineHeight,
70
- letterSpacing: _letterSpacing,
71
- ...rest
72
- } = this.selectedButtonStyle;
62
+ const { fontSize, lineHeight, letterSpacing, ...rest } =
63
+ this.selectedButtonStyle;
73
64
 
74
65
  return rest;
75
66
  },
76
67
  routes(): any[] {
77
- return this.visibleNavItems.map((navItem, _i) => {
68
+ return this.visibleNavItems.map((navItem, i) => {
78
69
  return {
79
70
  routeName: navItem.routeName,
80
71
  routeParams: navItem.routeParams,
@@ -105,7 +96,7 @@ export default defineComponent({
105
96
  paddingLeft: '32px',
106
97
  backgroundColor: isActive
107
98
  ? baseStyle.backgroundColor
108
- : (this.styles.hamburgerMenuStyle.subNavBackgroundColor ?? '#ffffff'),
99
+ : this.styles.hamburgerMenuStyle.subNavBackgroundColor ?? '#ffffff',
109
100
  };
110
101
  },
111
102
  closeSideMenu(): void {
@@ -1,4 +1,3 @@
1
- <!-- eslint-disable vue/no-v-html -->
2
1
  <template>
3
2
  <div
4
3
  data-component="page-footer"
@@ -106,9 +106,7 @@ 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:
110
- [col-start] 1fr [logo-start] var(--logo-max-width)
111
- [logo-end nav-start] 1fr [nav-end];
109
+ grid-template-columns: [col-start] 1fr [logo-start] var(--logo-max-width) [logo-end nav-start] 1fr [nav-end];
112
110
  }
113
111
  .desktop-tab-horizontal-stack-centered-logo-right-menu .logo-container {
114
112
  grid-column: logo-start / logo-end;
@@ -186,9 +184,7 @@ withDefaults(
186
184
  /* DESKTOP_TAB_6 */
187
185
  .desktop-tab-vertical-stack-centered-menu-centered-logo.show-nav {
188
186
  @apply tw-grid;
189
- grid-template-rows:
190
- [row1-start] var(--tab-nav-height)
191
- [row1-end row2-start] 1fr [row2-end];
187
+ grid-template-rows: [row1-start] var(--tab-nav-height) [row1-end row2-start] 1fr [row2-end];
192
188
  @apply tw-gap-y-4;
193
189
  justify-content: center;
194
190
  justify-items: center;
@@ -213,9 +209,7 @@ withDefaults(
213
209
  }
214
210
  .mobile-tab-vertical-stack-centered-menu-centered-logo.show-nav {
215
211
  @apply tw-grid;
216
- grid-template-rows:
217
- [row1-start] var(--tab-nav-height)
218
- [row1-end row2-start] 1fr [row2-end];
212
+ grid-template-rows: [row1-start] var(--tab-nav-height) [row1-end row2-start] 1fr [row2-end];
219
213
  @apply tw-gap-y-4;
220
214
  margin-top: 1rem;
221
215
  }
@@ -288,9 +282,9 @@ withDefaults(
288
282
  .desktop-hamburger-horizontal-stack-centered-logo-right-menu,
289
283
  .mobile-hamburger-horizontal-stack-centered-logo-right-menu {
290
284
  @apply tw-grid;
291
- grid-template-columns:
292
- [start] var(--hamburger-nav-width)
293
- [logo-start] auto [nav-start] var(--hamburger-nav-width);
285
+ grid-template-columns: [start] var(--hamburger-nav-width) [logo-start] auto [nav-start] var(
286
+ --hamburger-nav-width
287
+ );
294
288
  align-items: start;
295
289
  }
296
290
  .desktop-hamburger-horizontal-stack-centered-logo-right-menu .logo-container,
@@ -46,7 +46,6 @@ export default {
46
46
  HeaderLayout,
47
47
  },
48
48
  mixins: [PageHeaderMixin],
49
- emits: ['open-side-menu'],
50
49
  };
51
50
  </script>
52
51
  <style scoped>
@@ -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
- defineProps({
31
+ const props = defineProps({
32
32
  viewModel: {
33
33
  type: Object as PropType<TextImageSectionViewModel>,
34
34
  required: true,
@@ -231,6 +231,8 @@
231
231
  import {
232
232
  Modal,
233
233
  Button,
234
+ Dropdown,
235
+ DropdownItem,
234
236
  NumberStepper,
235
237
  Textarea,
236
238
  Icon,
@@ -316,7 +318,7 @@ const onQtyChange = (skuKey: string, qty: number) => {
316
318
  cartSettingsStore.updateQuantity(skuKey, qty);
317
319
  };
318
320
 
319
- const _onUpdateVariantOption = (
321
+ const onUpdateVariantOption = (
320
322
  index: number,
321
323
  skuKey: string,
322
324
  variant: string,
@@ -60,7 +60,7 @@
60
60
  </ul>
61
61
  </template>
62
62
  <script setup lang="ts">
63
- import type { BrandPageContext } from '@brand-page/models';
63
+ import type { BrandPageContext, ShopContent } 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
- defineProps({
74
+ const props = defineProps({
75
75
  context: {
76
76
  type: Object as PropType<BrandPageContext>,
77
77
  required: true,
@@ -115,7 +115,8 @@
115
115
  <script setup lang="ts">
116
116
  import { Modal, Button, Loader } from '@designcrowd/fe-shared-lib';
117
117
  import { useCartStore } from '@shared/ecommerce-settings/store/cart-settings-store';
118
- import { computed, reactive, onMounted } from 'vue';
118
+ import { computed, reactive, ref, onMounted } from 'vue';
119
+ import IconStripe from '../icon/IconStripe.vue';
119
120
  import RequestPaymentStripe from '../payment/RequestPaymentStripe.vue';
120
121
  import TextWrapper from '../text-wrapper/TextWrapper.vue';
121
122
  import brandPageClient from '../../clients/brand-page.client';
@@ -127,6 +128,7 @@ import type {
127
128
  BrandPagePaymentConfig,
128
129
  TextStyleDeclaration,
129
130
  StripePaymentIntent,
131
+ StripeShippingDetails,
130
132
  } from '@brand-page/models';
131
133
  import { paymentProviders } from '@brand-page/constants';
132
134
  import raygunUtil from '@brand-page/utils/raygun.util';
@@ -171,6 +173,8 @@ const data = reactive({
171
173
  state: 'creating-cart' as State,
172
174
  });
173
175
 
176
+ const customerEmail = ref('');
177
+
174
178
  const emit = defineEmits(['on-close', 'on-back']);
175
179
 
176
180
  const onClose = () => {
@@ -293,7 +293,7 @@ const onClose = () => {
293
293
  emit('on-close');
294
294
  };
295
295
 
296
- const _showFullDesc = () => {
296
+ const showFullDesc = () => {
297
297
  data.isShowFullDescription = true;
298
298
  };
299
299
 
@@ -125,7 +125,7 @@ import ThumbnailDisplay from './ThumbnailDisplay.vue';
125
125
  import FeaturedDisplay from './FeaturedDisplay.vue';
126
126
  import ProductDetailModal from './ProductDetailModal.vue';
127
127
  import CartModal from './CartModal.vue';
128
- import { computed, onMounted, reactive } from 'vue';
128
+ import { computed, onMounted, reactive, type PropType } from 'vue';
129
129
  import {
130
130
  PAYMENT_OPTION_DISPLAY_TYPES,
131
131
  PAYMENT_OPTION_IMAGE_TYPES,
@@ -39,7 +39,7 @@ import { computed } from 'vue';
39
39
 
40
40
  const shopSettingStore = useShopConfigStore();
41
41
 
42
- defineProps({
42
+ const props = defineProps({
43
43
  context: {
44
44
  type: Object as PropType<BrandPageContext>,
45
45
  required: true,
@@ -45,7 +45,7 @@
45
45
  </ul>
46
46
  </template>
47
47
  <script setup lang="ts">
48
- import type { BrandPageContext } from '@brand-page/models';
48
+ import type { BrandPageContext, ShopContent } from '@brand-page/models';
49
49
  import FallbackImage from '../fallback-image/FallbackImage.vue';
50
50
  import TextWrapper from '../text-wrapper/TextWrapper.vue';
51
51
  import type { PropType } from 'vue';
@@ -56,7 +56,7 @@ import { computed } from 'vue';
56
56
 
57
57
  const shopSettingStore = useShopConfigStore();
58
58
 
59
- defineProps({
59
+ const props = defineProps({
60
60
  context: {
61
61
  type: Object as PropType<BrandPageContext>,
62
62
  required: true,
@@ -265,9 +265,9 @@ const renderText = (val: string): string => (val ? getRenderText(val) : '');
265
265
  const forceCarouselUpdate = (): boolean => {
266
266
  const shouldUpdateCarousel = Boolean(
267
267
  props.isPreview &&
268
- (props.viewModel.items.length > 1 ||
269
- props.viewModel.displayStyle === 'big-image') &&
270
- carouselRef.value,
268
+ (props.viewModel.items.length > 1 ||
269
+ props.viewModel.displayStyle === 'big-image') &&
270
+ carouselRef.value,
271
271
  );
272
272
 
273
273
  if (shouldUpdateCarousel) {
@@ -1,4 +1,3 @@
1
- <!-- eslint-disable vue/no-v-html -->
2
1
  <template>
3
2
  <div v-if="sanitizeText" class="tw-w-full" :style="data.wrapperStyle">
4
3
  <div
@@ -40,7 +39,6 @@ interface Props {
40
39
  const props = withDefaults(defineProps<Props>(), {
41
40
  element: 'p',
42
41
  textStyle: {} as any,
43
- slug: undefined,
44
42
  });
45
43
 
46
44
  const data = reactive<{
@@ -62,7 +60,7 @@ const textStyles = computed(() => {
62
60
  });
63
61
 
64
62
  const style = computed<any>(() => {
65
- const { backgroundColor: _backgroundColor, ...textStyle } = props.textStyle;
63
+ const { backgroundColor, ...textStyle } = props.textStyle;
66
64
 
67
65
  return textStyle;
68
66
  });
@@ -1,6 +1,6 @@
1
1
  import { ALIGN_CENTERED, ALIGN_JUSTIFIED } from '../misc.constants';
2
2
  import type { ButtonGroupOption } from '@brand-page-maker/models/button-group.model';
3
- import { commonTr } from '@src/composables/useTranslate';
3
+ import { tr, commonTr } from '@src/composables/useTranslate';
4
4
 
5
5
  export const FOOTER_DISPLAY = {
6
6
  /** @deprecated */