@designcrowd/library.brand-page 5.19.1-error-html2canvas-1 → 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 (356) hide show
  1. package/lib/src/{CreatedOnBrandCrowd-de-de-CxCJU9cc.js → CreatedOnBrandCrowd-de-de-DmKe7W8L.js} +3 -3
  2. package/lib/src/{CreatedOnBrandCrowd-en-us-zDJCWP5n.js → CreatedOnBrandCrowd-en-us-D2EeiNep.js} +3 -3
  3. package/lib/src/{CreatedOnBrandCrowd-es-es-DNna1Sh9.js → CreatedOnBrandCrowd-es-es-BqVwNY1D.js} +3 -3
  4. package/lib/src/{CreatedOnBrandCrowd-fr-fr-C5XVf_hD.js → CreatedOnBrandCrowd-fr-ca-C756a27-.js} +3 -3
  5. package/lib/src/{CreatedOnBrandCrowd-fr-ca-C5XVf_hD.js → CreatedOnBrandCrowd-fr-fr-C756a27-.js} +3 -3
  6. package/lib/src/{CreatedOnBrandCrowd-pt-pt-9eUHV_M3.js → CreatedOnBrandCrowd-pt-br-FNHAnZUw.js} +3 -3
  7. package/lib/src/{CreatedOnBrandCrowd-pt-br-9eUHV_M3.js → CreatedOnBrandCrowd-pt-pt-FNHAnZUw.js} +3 -3
  8. package/lib/src/{CreatedOnDcom-de-de-D9HMpK8Q.js → CreatedOnDcom-de-de-8AZZFmDt.js} +3 -3
  9. package/lib/src/{CreatedOnDcom-en-us-BCTkchV5.js → CreatedOnDcom-en-us-DizTP32i.js} +3 -3
  10. package/lib/src/{CreatedOnDcom-es-es-B0N7VoTp.js → CreatedOnDcom-es-es-qnp9_n_A.js} +3 -3
  11. package/lib/src/{CreatedOnDcom-fr-ca-Gi4oz_Mm.js → CreatedOnDcom-fr-ca-jUs352uK.js} +3 -3
  12. package/lib/src/{CreatedOnDcom-fr-fr-DJI8eJo1.js → CreatedOnDcom-fr-fr-CTxXtHyk.js} +3 -3
  13. package/lib/src/{CreatedOnDcom-pt-br-YNWMAuQf.js → CreatedOnDcom-pt-br-nQHj8P7d.js} +3 -3
  14. package/lib/src/{CreatedOnDcom-pt-pt-DCIIK3sy.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/banner-section/BannerSection.mixin.d.ts +103 -0
  17. package/lib/src/brand-page/components/banner-section/BannerSection.mixin.js +178 -0
  18. package/lib/src/brand-page/components/image-gallery/masonry/MasonryGallery.mixin.d.ts +0 -1
  19. package/lib/src/brand-page/components/navigation/hamburger/HamburgerNavigation.mixin.d.ts +4 -2
  20. package/lib/src/brand-page/components/navigation/hamburger/HamburgerNavigation.mixin.js +1 -0
  21. package/lib/src/brand-page/components/navigation/navigation-side-menu/NavigationSideMenu.mixin.d.ts +4 -2
  22. package/lib/src/brand-page/components/navigation/navigation-side-menu/NavigationSideMenu.mixin.js +5 -4
  23. package/lib/src/brand-page/components/page/Page.mixin.d.ts +1 -1
  24. package/lib/src/brand-page/components/page/PageComponent.mixin.d.ts +1 -1
  25. package/lib/src/brand-page/components/payment/Payment.mixin.d.ts +3 -3
  26. package/lib/src/brand-page/components/payment/__fixtures__/request-payment.d.ts +13 -13
  27. package/lib/src/brand-page/components/payment/__fixtures__/support-me.d.ts +13 -13
  28. package/lib/src/brand-page/constants/sections/footer-display.constants.js +1 -1
  29. package/lib/src/brand-page/models/index.d.ts +2 -1
  30. package/lib/src/brand-page/models/index.js +3 -0
  31. package/lib/src/brand-page/models/payment.model.d.ts +1 -1
  32. package/lib/src/brand-page/utils/personalisation.util.js +72 -14
  33. package/lib/src/brand-page-maker/components/action-bar/ActionBar.mixin.d.ts +21 -19
  34. package/lib/src/brand-page-maker/components/action-bar/ActionBar.mixin.js +1 -0
  35. package/lib/src/brand-page-maker/components/admin-background-settings/AdminBackgroundSettings.mixin.d.ts +16 -10
  36. package/lib/src/brand-page-maker/components/admin-logo-settings/AdminLogoSettings.mixin.d.ts +3 -3
  37. package/lib/src/brand-page-maker/components/brand-page-maker/BrandPageMaker.mixin.d.ts +181 -170
  38. package/lib/src/brand-page-maker/components/brand-page-maker/BrandPageMaker.mixin.js +3 -0
  39. package/lib/src/brand-page-maker/components/brand-page-maker/BrandPageMaker.stories.js +1 -0
  40. package/lib/src/brand-page-maker/components/brand-page-maker/BrandPageMakerTemplateSettings.mixin.d.ts +12 -12
  41. package/lib/src/brand-page-maker/components/brand-page-maker/BrandPageMakerTemplateSettings.stories.js +2 -2
  42. package/lib/src/brand-page-maker/components/brand-page-maker/__fixtures__/brand-page-payment.js +0 -7
  43. package/lib/src/brand-page-maker/components/brandpage-maker-page/BrandPageMakerPage.mixin.d.ts +148 -149
  44. package/lib/src/brand-page-maker/components/brandpage-settings/ReplaceImageSettingsForBrandPageSettings.mixin.d.ts +21 -21
  45. package/lib/src/brand-page-maker/components/brandpage-settings/ReplaceImageSettingsForBrandPageSettings.mixin.js +1 -1
  46. package/lib/src/brand-page-maker/components/color-picker/components/ColorModeSelect.mixin.d.ts +4 -2
  47. package/lib/src/brand-page-maker/components/color-picker/components/ColorModeSelect.mixin.js +1 -0
  48. package/lib/src/brand-page-maker/components/color-picker/components/GradientColorSlider.mixin.d.ts +4 -2
  49. package/lib/src/brand-page-maker/components/color-picker/components/GradientColorSlider.mixin.js +1 -0
  50. package/lib/src/brand-page-maker/components/color-picker/components/GradientColorSliderHandler.mixin.d.ts +5 -2
  51. package/lib/src/brand-page-maker/components/color-picker/components/GradientColorSliderHandler.mixin.js +1 -0
  52. package/lib/src/brand-page-maker/components/color-picker/components/GradientTypeSelector.mixin.d.ts +4 -2
  53. package/lib/src/brand-page-maker/components/color-picker/components/GradientTypeSelector.mixin.js +1 -0
  54. package/lib/src/brand-page-maker/components/device/Device.mixin.d.ts +4 -2
  55. package/lib/src/brand-page-maker/components/device/Device.mixin.js +1 -0
  56. package/lib/src/brand-page-maker/components/navigation/Navigation.mixin.d.ts +4 -2
  57. package/lib/src/brand-page-maker/components/navigation/Navigation.mixin.js +1 -0
  58. package/lib/src/brand-page-maker/components/preview/Preview.mixin.d.ts +3 -3
  59. package/lib/src/brand-page-maker/components/quick-link-bar/QuickLinkBar.mixin.d.ts +11 -11
  60. package/lib/src/brand-page-maker/components/seo-settings/SeoPageSettings.mixin.d.ts +27 -25
  61. package/lib/src/brand-page-maker/components/seo-settings/SeoPageSettings.mixin.js +1 -0
  62. package/lib/src/brand-page-maker/components/seo-settings/UrlSettings.mixin.d.ts +27 -27
  63. package/lib/src/brand-page-maker/components/seo-settings/UrlSettings.mixin.js +1 -1
  64. package/lib/src/brand-page-maker/components/seo-settings/UseExistingDomainModal.mixin.d.ts +17 -12
  65. package/lib/src/brand-page-maker/components/social-share/SocialShare.mixin.d.ts +12 -12
  66. package/lib/src/brand-page-maker/components/template-preview/TemplatePreview.mixin.d.ts +30 -32
  67. package/lib/src/brand-page-maker/components/template-preview/TemplatePreview.mixin.js +16 -5
  68. package/lib/src/brand-page-maker/components/upgrade-to-premium-button/UpgradeToPremiumButton.mixin.d.ts +11 -11
  69. package/lib/src/brand-page-maker/composables/ai-chat/useAiWebsiteBuilderChat.js +1 -1
  70. package/lib/src/brand-page-maker/composables/rich-text-editor/useRichTextEditor.d.ts +1 -1
  71. package/lib/src/brand-page-maker/composables/rich-text-editor/useRichTextEditor.js +6 -6
  72. package/lib/src/brand-page-maker/composables/useEventTracker.d.ts +2 -2
  73. package/lib/src/brand-page-maker/constants/config-settings-constant.d.ts +6 -6
  74. package/lib/src/brand-page-maker/constants/config-settings-constant.js +1 -1
  75. package/lib/src/brand-page-maker/convertors/text-image-display-style.convertor.d.ts +1 -1
  76. package/lib/src/brand-page-maker/convertors/text-image-display-style.convertor.js +1 -1
  77. package/lib/src/brand-page-maker/models/content-settings.d.ts +1 -1
  78. package/lib/src/brand-page-maker/models/navigation-style-configs.js +1 -1
  79. package/lib/src/brand-page-maker/routing/brand-page-maker-router.d.ts +1 -2
  80. package/lib/src/brand-page-maker/stores/ai-checkpoint/ai-checkpoint-store.d.ts +366 -360
  81. package/lib/src/brand-page-maker/stores/brandpage-container/brand-page-container-store.d.ts +5 -4
  82. package/lib/src/brand-page-maker/stores/brandpage-container/brand-page-container-store.js +8 -5
  83. package/lib/src/brand-page-maker/stores/brandpage-maker/brandpage-maker-store.d.ts +3 -1
  84. package/lib/src/brand-page-maker/stores/brandpage-maker/brandpage-maker-store.js +7 -3
  85. package/lib/src/brand-page-maker/stores/history/history-store.d.ts +15 -15
  86. package/lib/src/brand-page-maker/stores/ui/ui-store.d.ts +6 -0
  87. package/lib/src/brand-page-maker/stores/ui/ui-store.js +8 -0
  88. package/lib/src/brand-page-maker/utils/content-settings.util.js +1 -1
  89. package/lib/src/brand-page-maker/utils/rich-text-editor.util.d.ts +1 -1
  90. package/lib/src/brand-page-maker/utils/rich-text-editor.util.js +4 -4
  91. package/lib/src/clients/brand-page-client.d.ts +16 -15
  92. package/lib/src/clients/design-template-client.d.ts +3 -0
  93. package/lib/src/clients/media-client.d.ts +2 -2
  94. package/lib/src/clients/models.d.ts +2 -0
  95. package/lib/src/css/library.brand-page-brandCrowd.min.css +342 -324
  96. package/lib/src/css/library.brand-page-brandPage.min.css +620 -324
  97. package/lib/src/css/library.brand-page-designCom.min.css +342 -324
  98. package/lib/src/css/library.brand-page-preview.min.css +598 -324
  99. package/lib/src/index.d.ts +1 -1
  100. package/lib/src/index.mjs +16 -15
  101. package/lib/src/{lib-CaY174HB.js → lib-DityivZa.js} +35668 -32633
  102. package/lib/src/lib.js +1 -1
  103. package/lib/src/metadata-builder/builders/footer-builder.js +90 -65
  104. package/lib/src/metadata-builder/builders/section-builders/image-gallery-builder.js +1 -1
  105. package/lib/src/metadata-builder/builders/section-builders/images-section-builder.js +1 -1
  106. package/lib/src/metadata-builder/builders/section-builders/testimonial-section-builder.js +1 -1
  107. package/lib/src/metadata-builder/builders/section-builders/text-section-builder.js +1 -1
  108. package/lib/src/metadata-builder/builders/shape-color-utils.js +1 -1
  109. package/lib/src/plugins/google-maps-plugin/google-maps-plugin.d.ts +1 -1
  110. package/lib/src/plugins/google-maps-plugin/google-maps-plugin.js +8 -8
  111. package/lib/src/shared/background-settings/components/background-shapes/BackgroundShapeSettings.mixin.d.ts +13 -13
  112. package/lib/src/shared/background-settings/store/background-settings-store.d.ts +3 -3
  113. package/lib/src/shared/color-picker/components/ColorPicker.mixin.d.ts +4 -2
  114. package/lib/src/shared/color-picker/components/ColorPicker.mixin.js +2 -2
  115. package/lib/src/shared/color-picker/components/ColorPickerSwatch.mixin.d.ts +4 -2
  116. package/lib/src/shared/color-picker/components/ColorPickerSwatch.mixin.js +1 -0
  117. package/lib/src/shared/confirm-modal/ConfirmModal.mixin.d.ts +5 -2
  118. package/lib/src/shared/confirm-modal/ConfirmModal.mixin.js +1 -0
  119. package/lib/src/shared/content-settings/components/GenericTextInput.mixin.d.ts +0 -1
  120. package/lib/src/shared/content-settings/components/content-settings/ContentSettings.mixin.d.ts +131 -129
  121. package/lib/src/shared/content-settings/components/content-settings/ContentSettings.mixin.js +2 -1
  122. package/lib/src/shared/content-settings/components/content-settings/ReplaceImageSettingsForContent.mixin.d.ts +111 -110
  123. package/lib/src/shared/content-settings/components/content-settings-item/ContentSettingsItem.mixin.d.ts +84 -81
  124. package/lib/src/shared/content-settings/components/content-settings-item/ContentSettingsItem.mixin.js +5 -0
  125. package/lib/src/shared/content-settings/components/content-settings-item/ContentSettingsItemField.mixin.d.ts +117 -109
  126. package/lib/src/shared/content-settings/components/content-settings-item/ContentSettingsItemField.mixin.js +1 -14
  127. package/lib/src/shared/content-settings/components/email-field/EmailField.mixin.d.ts +0 -1
  128. package/lib/src/shared/content-settings/components/focused-content-item-settings/FocusedContentItemSettings.mixin.d.ts +72 -70
  129. package/lib/src/shared/content-settings/components/focused-content-item-settings/FocusedContentItemSettings.mixin.js +4 -3
  130. package/lib/src/shared/content-settings/components/form-fields-field/FormFieldsField.mixin.d.ts +4 -4
  131. package/lib/src/shared/content-settings/components/icon-library/IconLibrary.mixin.d.ts +3 -1
  132. package/lib/src/shared/content-settings/components/icon-library/IconLibrary.mixin.js +1 -0
  133. package/lib/src/shared/content-settings/components/images-field/ImagesField.mixin.d.ts +2 -2
  134. package/lib/src/shared/content-settings/components/items-field/ItemsField.mixin.d.ts +4 -3
  135. package/lib/src/shared/content-settings/components/items-field/ItemsField.mixin.js +1 -1
  136. package/lib/src/shared/content-settings/components/payment-config-field/PaymentConfigField.mixin.d.ts +40 -40
  137. package/lib/src/shared/content-settings/components/payment-config-field/PaymentConfigOptionField.mixin.d.ts +5 -6
  138. package/lib/src/shared/content-settings/components/shape-field/ShapeField.mixin.d.ts +0 -1
  139. package/lib/src/shared/content-settings/components/slider-field/SliderField.mixin.d.ts +2 -2
  140. package/lib/src/shared/content-settings/components/tel-field/TelField.mixin.d.ts +0 -1
  141. package/lib/src/shared/content-settings/components/testimonial-items-field/TestimonialItemsField.mixin.d.ts +1 -2
  142. package/lib/src/shared/content-settings/components/text-field/TextField.mixin.d.ts +0 -1
  143. package/lib/src/shared/content-settings/components/text-items-field/TextItemsField.mixin.d.ts +1 -2
  144. package/lib/src/shared/content-settings/components/text-items-field/TextItemsField.mixin.js +1 -1
  145. package/lib/src/shared/content-settings/components/text-style-field/TextStyleField.mixin.d.ts +28 -28
  146. package/lib/src/shared/content-settings/components/textarea-field/TextareaField.mixin.d.ts +0 -1
  147. package/lib/src/shared/content-settings/components/toggle-field/ToggleField.mixin.d.ts +2 -2
  148. package/lib/src/shared/content-settings/components/url-field/UrlField.mixin.d.ts +0 -1
  149. package/lib/src/shared/content-settings/components/youtube-video-field/YoutubeVideoField.mixin.d.ts +0 -1
  150. package/lib/src/shared/content-settings/store/content-settings-store.d.ts +39 -39
  151. package/lib/src/shared/content-settings/utils.js +0 -1
  152. package/lib/src/shared/font-family-selector/FontFamilySelector.mixin.d.ts +6 -4
  153. package/lib/src/shared/font-family-selector/FontFamilySelector.mixin.js +1 -0
  154. package/lib/src/shared/image-gallery-style-settings/ImageGalleryStyleSettings.mixin.d.ts +4 -2
  155. package/lib/src/shared/image-gallery-style-settings/ImageGalleryStyleSettings.mixin.js +1 -0
  156. package/lib/src/shared/logo-settings/components/EditLogoSettings.mixin.d.ts +29 -21
  157. package/lib/src/shared/logo-settings/components/EditLogoSettings.mixin.js +1 -1
  158. package/lib/src/shared/logo-settings/components/LogoSettings.mixin.d.ts +50 -51
  159. package/lib/src/shared/logo-settings/components/LogoSettingsHeader.mixin.d.ts +6 -4
  160. package/lib/src/shared/logo-settings/components/LogoSettingsHeader.mixin.js +1 -0
  161. package/lib/src/shared/logo-settings/store/editable-logo-store.js +1 -1
  162. package/lib/src/shared/logo-settings/store/logo-settings-store.d.ts +1 -1
  163. package/lib/src/shared/logo-versions/LogoVersions.mixin.d.ts +13 -5
  164. package/lib/src/shared/logo-versions/LogoVersions.mixin.js +1 -0
  165. package/lib/src/shared/models.d.ts +2 -0
  166. package/lib/src/shared/my-designs/MyDesigns.mixin.d.ts +14 -6
  167. package/lib/src/shared/my-designs/MyDesigns.mixin.js +1 -0
  168. package/lib/src/shared/my-uploads/MyMedia.mixin.d.ts +14 -5
  169. package/lib/src/shared/my-uploads/MyMedia.mixin.js +1 -0
  170. package/lib/src/shared/my-uploads/MyUploads.mixin.d.ts +14 -5
  171. package/lib/src/shared/my-uploads/MyUploads.mixin.js +1 -0
  172. package/lib/src/shared/navigation-style-settings/components/navigation-style-settings/NavigationStyleSettings.mixin.d.ts +5 -3
  173. package/lib/src/shared/navigation-style-settings/components/navigation-style-settings/NavigationStyleSettings.mixin.js +1 -0
  174. package/lib/src/shared/navigation-style-settings/store/index.d.ts +2 -2
  175. package/lib/src/shared/page-navigation/store/page-navigation-store.d.ts +2 -2
  176. package/lib/src/shared/page-settings/components/new-page-modal/NewPageModal.mixin.d.ts +27 -28
  177. package/lib/src/shared/page-settings/components/new-page-modal/NewPageModal.mixin.js +0 -2
  178. package/lib/src/shared/page-settings/components/page-settings/PageSettings.mixin.d.ts +188 -177
  179. package/lib/src/shared/page-settings/components/page-settings-section-styles/PageSettingsSectionStyles.mixin.d.ts +181 -175
  180. package/lib/src/shared/page-settings/components/page-settings-section-styles/PageSettingsSectionStyles.mixin.js +1 -1
  181. package/lib/src/shared/page-settings/store/page-settings-store.d.ts +9 -9
  182. package/lib/src/shared/publish-brand-page-with-state/PublishBrandPageModalWithState.mixin.d.ts +39 -39
  183. package/lib/src/shared/publish-brand-page-with-state/PublishBrandPageModalWithState.mixin.js +0 -1
  184. package/lib/src/shared/side-bar/components/SideBar.mixin.d.ts +18 -18
  185. package/lib/src/shared/side-bar/components/SideBarTabButton.mixin.d.ts +6 -6
  186. package/lib/src/shared/style-settings/components/StyleSettings.mixin.d.ts +66 -60
  187. package/lib/src/shared/style-settings/store/style-settings-store.d.ts +1 -1
  188. package/lib/src/shared/style-settings/store/style-settings-store.js +1 -1
  189. package/lib/src/shared/template-settings/components/TemplatesSettings.mixin.d.ts +20 -450
  190. package/lib/src/shared/template-settings/components/TemplatesSettings.mixin.js +2 -2
  191. package/lib/src/shared/template-settings/models.d.ts +1 -0
  192. package/lib/src/shared/template-settings/store/template-settings-store.d.ts +4 -0
  193. package/lib/src/shared/template-settings/store/template-settings-store.js +79 -11
  194. package/lib/src/shared/unsplash-library/UnsplashLibrary.mixin.d.ts +9 -4
  195. package/package.json +61 -57
  196. package/src/brand-page/components/about-section/AboutSection.vue.test.ts +7 -5
  197. package/src/brand-page/components/banner-section/BannerSection.mixin.ts +210 -0
  198. package/src/brand-page/components/brand-page-footer/BrandPageFooter.vue +1 -1
  199. package/src/brand-page/components/image/Image.mixin.ts +1 -1
  200. package/src/brand-page/components/image/Image.test.ts +1 -1
  201. package/src/brand-page/components/images-section/ImagesSection.vue +0 -1
  202. package/src/brand-page/components/logo/LogoRender.vue +188 -188
  203. package/src/brand-page/components/navigation/hamburger/HamburgerNavigation.mixin.ts +1 -0
  204. package/src/brand-page/components/navigation/navigation-side-menu/NavigationSideMenu.mixin.ts +15 -6
  205. package/src/brand-page/components/page-footer/PageFooter.vue +1 -0
  206. package/src/brand-page/components/page-header/HeaderLayout.vue +12 -6
  207. package/src/brand-page/components/page-header/PageHeader.vue +1 -0
  208. package/src/brand-page/components/shapes-section/ShapesSection.vue +1 -1
  209. package/src/brand-page/components/shop/CartModal.vue +1 -3
  210. package/src/brand-page/components/shop/FeaturedDisplay.vue +2 -2
  211. package/src/brand-page/components/shop/PaymentModal.vue +1 -5
  212. package/src/brand-page/components/shop/ProductDetailModal.vue +1 -1
  213. package/src/brand-page/components/shop/Shop.vue +1 -1
  214. package/src/brand-page/components/shop/TextDisplay.vue +1 -1
  215. package/src/brand-page/components/shop/ThumbnailDisplay.vue +2 -2
  216. package/src/brand-page/components/testimonial-section/TestimonialSection.vue +3 -3
  217. package/src/brand-page/components/text-wrapper/TextWrapper.vue +3 -1
  218. package/src/brand-page/constants/sections/footer-display.constants.ts +1 -1
  219. package/src/brand-page/models/index.ts +4 -0
  220. package/src/brand-page/models/payment.model.ts +2 -1
  221. package/src/brand-page/models/shop.model.ts +0 -2
  222. package/src/brand-page/models/user-personalisation.model.ts +1 -2
  223. package/src/brand-page/utils/__snapshots__/migration.util.test.ts.snap +3 -0
  224. package/src/brand-page/utils/__snapshots__/migration2.util.test.ts.snap +1 -0
  225. package/src/brand-page/utils/__snapshots__/model.util.test.ts.snap +2 -0
  226. package/src/brand-page/utils/migration/migration-01_1.ts +1 -1
  227. package/src/brand-page/utils/migration/migration-02.ts +0 -1
  228. package/src/brand-page/utils/migration/migration-03.ts +0 -1
  229. package/src/brand-page/utils/migration/migration-04.ts +0 -1
  230. package/src/brand-page/utils/migration/migration-05.ts +1 -5
  231. package/src/brand-page/utils/migration/migration-05_2.ts +1 -1
  232. package/src/brand-page/utils/migration/migration-08.test.ts +1 -1
  233. package/src/brand-page/utils/personalisation.util.test.ts +35 -0
  234. package/src/brand-page/utils/personalisation.util.ts +119 -23
  235. package/src/brand-page/view-models.ts +38 -56
  236. package/src/brand-page-maker/assessors/banner-section-description-visibility.assessor.ts +6 -6
  237. package/src/brand-page-maker/assessors/color-replacement-icon-visibility.assessor.ts +2 -2
  238. package/src/brand-page-maker/assessors/color-replacement-profile-visibility.assessor.ts +2 -2
  239. package/src/brand-page-maker/assessors/color-replacement-visibility.assessor.ts +2 -2
  240. package/src/brand-page-maker/assessors/contact-form-visibility.assessor.ts +14 -14
  241. package/src/brand-page-maker/components/action-bar/ActionBar.mixin.ts +1 -0
  242. package/src/brand-page-maker/components/ai-text-edit/TextBubble.vue +1 -0
  243. package/src/brand-page-maker/components/brand-page-maker/BrandPageMaker.mixin.ts +5 -1
  244. package/src/brand-page-maker/components/brand-page-maker/BrandPageMaker.stories.ts +1 -0
  245. package/src/brand-page-maker/components/brand-page-maker/BrandPageMakerTemplateSettings.stories.ts +2 -5
  246. package/src/brand-page-maker/components/brand-page-maker/__fixtures__/brand-page-examples.ts +0 -5
  247. package/src/brand-page-maker/components/brand-page-maker/__fixtures__/brand-page-payment.ts +0 -8
  248. package/src/brand-page-maker/components/brand-page-maker/__fixtures__/brand-site-template.examples.ts +0 -2
  249. package/src/brand-page-maker/components/brandpage-maker-page/BrandPageMakerPage.vue +1 -0
  250. package/src/brand-page-maker/components/brandpage-settings/ReplaceImageSettingsForBrandPageSettings.mixin.ts +1 -1
  251. package/src/brand-page-maker/components/color-palette/BpColorPalette.vue +1 -2
  252. package/src/brand-page-maker/components/color-picker/components/ColorModeSelect.mixin.ts +1 -0
  253. package/src/brand-page-maker/components/color-picker/components/GradientColorSlider.mixin.ts +1 -0
  254. package/src/brand-page-maker/components/color-picker/components/GradientColorSliderHandler.mixin.ts +1 -0
  255. package/src/brand-page-maker/components/color-picker/components/GradientTypeSelector.mixin.ts +1 -0
  256. package/src/brand-page-maker/components/device/Device.mixin.ts +1 -0
  257. package/src/brand-page-maker/components/navigation/Navigation.mixin.ts +1 -0
  258. package/src/brand-page-maker/components/rich-text-editor/RichTextEditor.vue +3 -1
  259. package/src/brand-page-maker/components/sensitive-content/SensitiveContent.vue +1 -4
  260. package/src/brand-page-maker/components/seo-settings/DeleteDomainModal.vue +1 -1
  261. package/src/brand-page-maker/components/seo-settings/SeoPageSettings.mixin.ts +1 -0
  262. package/src/brand-page-maker/components/seo-settings/SeoPageSettings.vue +1 -1
  263. package/src/brand-page-maker/components/seo-settings/UrlSettings.mixin.ts +0 -1
  264. package/src/brand-page-maker/components/seo-settings/UrlSettings.vue +0 -1
  265. package/src/brand-page-maker/components/seo-settings/UseExistingDomainModal.vue +1 -5
  266. package/src/brand-page-maker/components/shop/AddOrEditProductContainer.vue +1 -1
  267. package/src/brand-page-maker/components/shop/ReplaceImageSettingsForShop.vue +1 -1
  268. package/src/brand-page-maker/components/social-share/SocialShare.vue +1 -1
  269. package/src/brand-page-maker/components/template-preview/TemplatePreview.mixin.ts +22 -8
  270. package/src/brand-page-maker/components/template-preview/TemplatePreview.vue +5 -10
  271. package/src/brand-page-maker/components/template-preview/TemplatePreviewAiBadge.vue +12 -0
  272. package/src/brand-page-maker/components/video-play/VideoPlayButton.vue +1 -1
  273. package/src/brand-page-maker/composables/ai-chat/useAiWebsiteBuilderChat.ts +1 -1
  274. package/src/brand-page-maker/composables/rich-text-editor/useRichTextEditor.ts +6 -6
  275. package/src/brand-page-maker/constants/config-settings-constant.ts +3 -3
  276. package/src/brand-page-maker/convertors/text-image-display-style.convertor.ts +1 -1
  277. package/src/brand-page-maker/models/button-styles-config.ts +4 -2
  278. package/src/brand-page-maker/models/content-settings-configs.ts +4 -2
  279. package/src/brand-page-maker/models/navigation-style-configs.ts +5 -6
  280. package/src/brand-page-maker/stores/admin-logo-settings/admin-logo-settings-store.ts +0 -1
  281. package/src/brand-page-maker/stores/brandpage-container/brand-page-container-store.ts +8 -5
  282. package/src/brand-page-maker/stores/brandpage-maker/brandpage-maker-store.test.ts +1 -3
  283. package/src/brand-page-maker/stores/brandpage-maker/brandpage-maker-store.ts +12 -4
  284. package/src/brand-page-maker/stores/ui/ui-store.ts +16 -0
  285. package/src/brand-page-maker/utils/content-settings.util.ts +1 -1
  286. package/src/brand-page-maker/utils/rich-text-editor.util.ts +4 -4
  287. package/src/clients/design-template-client.ts +3 -0
  288. package/src/clients/models.ts +2 -0
  289. package/src/lib.ts +1 -0
  290. package/src/metadata-builder/builders/footer-builder.test.ts +137 -0
  291. package/src/metadata-builder/builders/footer-builder.ts +129 -89
  292. package/src/metadata-builder/builders/section-builders/image-gallery-builder.ts +1 -1
  293. package/src/metadata-builder/builders/section-builders/images-section-builder.ts +1 -1
  294. package/src/metadata-builder/builders/section-builders/testimonial-section-builder.ts +1 -1
  295. package/src/metadata-builder/builders/section-builders/text-section-builder.ts +1 -1
  296. package/src/metadata-builder/builders/shape-color-utils.ts +2 -2
  297. package/src/plugins/google-maps-plugin/google-maps-plugin.ts +8 -8
  298. package/src/shared/background-settings/components/BackgroundSettings.vue +1 -1
  299. package/src/shared/background-settings/components/background-color/BackgroundColorSettings.vue +1 -1
  300. package/src/shared/color-picker/components/ColorPicker.mixin.ts +2 -7
  301. package/src/shared/color-picker/components/ColorPickerSwatch.mixin.ts +1 -0
  302. package/src/shared/common/NumberInput.vue +1 -0
  303. package/src/shared/common/SideBarSettingsHeader.vue +2 -2
  304. package/src/shared/confirm-modal/ConfirmModal.mixin.ts +1 -0
  305. package/src/shared/content-settings/components/booking-url-field/BookingUrlField.vue +1 -0
  306. package/src/shared/content-settings/components/button-configuration-field/ButtonConfigurationField.vue +1 -0
  307. package/src/shared/content-settings/components/color-field/ColorField.vue +3 -10
  308. package/src/shared/content-settings/components/content-settings/ContentSettings.mixin.ts +1 -1
  309. package/src/shared/content-settings/components/content-settings/ContentSettingsLockedButton.vue +1 -0
  310. package/src/shared/content-settings/components/content-settings-item/ContentSettingsItem.mixin.ts +5 -0
  311. package/src/shared/content-settings/components/content-settings-item/ContentSettingsItemField.mixin.ts +1 -14
  312. package/src/shared/content-settings/components/focused-content-item-settings/FocusedContentItemSettings.mixin.ts +4 -6
  313. package/src/shared/content-settings/components/icon-library/IconLibrary.mixin.ts +1 -0
  314. package/src/shared/content-settings/components/items-field/ItemsField.mixin.ts +1 -1
  315. package/src/shared/content-settings/components/logo-selection-field/LogoSelectionField.vue +1 -1
  316. package/src/shared/content-settings/components/logo-size-field/LogoSizeSliderField.vue +1 -1
  317. package/src/shared/content-settings/components/page-dropdown-field/PageDropdownField.vue +1 -1
  318. package/src/shared/content-settings/components/personalisation-role-field/PersonalisationRoleField.vue +4 -4
  319. package/src/shared/content-settings/components/text-image-field/TextImageField.vue +2 -8
  320. package/src/shared/content-settings/components/text-items-field/TextItemsField.mixin.ts +1 -1
  321. package/src/shared/content-settings/models.ts +3 -2
  322. package/src/shared/content-settings/utils.ts +0 -1
  323. package/src/shared/dropzone-image-uploader/components/DropzoneImageUploader.vue +1 -0
  324. package/src/shared/ecommerce-settings/store/cart-store.test.ts +1 -1
  325. package/src/shared/font-family-selector/FontFamilySelector.mixin.ts +1 -0
  326. package/src/shared/image-gallery-style-settings/ImageGalleryStyleSettings.mixin.ts +1 -0
  327. package/src/shared/logo-settings/components/EditLogoSettings.mixin.ts +1 -1
  328. package/src/shared/logo-settings/components/LogoSettings.mixin.ts +0 -1
  329. package/src/shared/logo-settings/components/LogoSettingsHeader.mixin.ts +1 -0
  330. package/src/shared/logo-settings/components/LogoStyleSettingsWithState.vue +2 -2
  331. package/src/shared/logo-settings/components/LogoTemplateSearch.vue +1 -1
  332. package/src/shared/logo-settings/store/editable-logo-store.ts +1 -1
  333. package/src/shared/logo-settings/store/logo-settings-store.test.ts +4 -4
  334. package/src/shared/logo-versions/LogoVersions.mixin.ts +1 -0
  335. package/src/shared/models.ts +6 -0
  336. package/src/shared/my-designs/MyDesigns.mixin.ts +1 -0
  337. package/src/shared/my-uploads/MyMedia.mixin.ts +1 -0
  338. package/src/shared/my-uploads/MyMediaSelectionItem.vue +2 -1
  339. package/src/shared/my-uploads/MyUploads.mixin.ts +1 -0
  340. package/src/shared/my-uploads/models.ts +1 -2
  341. package/src/shared/navigation-style-settings/components/navigation-style-settings/NavigationStyleSettings.mixin.ts +1 -0
  342. package/src/shared/navigation-style-settings/components/navigation-style-settings/NavigationStyleSettings.vue +1 -1
  343. package/src/shared/page-settings/components/new-page-modal/NewPageModal.mixin.ts +0 -3
  344. package/src/shared/page-settings/components/page-settings/NestedDraggable.vue +1 -1
  345. package/src/shared/page-settings/components/page-settings/PageSettings.vue +1 -2
  346. package/src/shared/page-settings/components/page-settings-section-styles/HeaderDisplayStyle.vue +1 -1
  347. package/src/shared/page-settings/components/page-settings-section-styles/PageSettingsSectionStyles.mixin.ts +1 -1
  348. package/src/shared/page-settings/store/page-settings-store.test.ts +4 -8
  349. package/src/shared/publish-brand-page-with-state/PublishBrandPageModalWithState.mixin.ts +0 -1
  350. package/src/shared/shape-library/ShapeLibrary.vue +2 -2
  351. package/src/shared/style-settings/store/style-settings-store.ts +1 -1
  352. package/src/shared/template-settings/components/TemplatesSettings.mixin.ts +2 -2
  353. package/src/shared/template-settings/models.ts +1 -0
  354. package/src/shared/template-settings/store/template-settings-store.ts +105 -18
  355. package/src/shared/unsplash-library/UnsplashLibrary.vue +2 -6
  356. package/src/shared/video-library/VideoLibrary.vue +1 -1
@@ -15,12 +15,12 @@ export const contactCardDisplayTypeVisibilityAssessor: VisibilityAssessor<
15
15
  return (
16
16
  Boolean(
17
17
  content?.layoutStyle &&
18
- [
19
- ALIGN_CARD_CENTER_IMAGE,
20
- ALIGN_CARD_CENTER,
21
- ALIGN_LEFT_FULL_IMAGE,
22
- ALIGN_RIGHT_FULL_IMAGE,
23
- ].includes(content?.layoutStyle),
18
+ [
19
+ ALIGN_CARD_CENTER_IMAGE,
20
+ ALIGN_CARD_CENTER,
21
+ ALIGN_LEFT_FULL_IMAGE,
22
+ ALIGN_RIGHT_FULL_IMAGE,
23
+ ].includes(content?.layoutStyle),
24
24
  ) && context!.isBrandSite
25
25
  );
26
26
  };
@@ -37,11 +37,11 @@ export const imageUrlVisibilityAssessor: VisibilityAssessor<
37
37
  return (
38
38
  Boolean(
39
39
  content?.layoutStyle &&
40
- [
41
- ALIGN_CARD_CENTER_IMAGE,
42
- ALIGN_LEFT_FULL_IMAGE,
43
- ALIGN_RIGHT_FULL_IMAGE,
44
- ].includes(content?.layoutStyle),
40
+ [
41
+ ALIGN_CARD_CENTER_IMAGE,
42
+ ALIGN_LEFT_FULL_IMAGE,
43
+ ALIGN_RIGHT_FULL_IMAGE,
44
+ ].includes(content?.layoutStyle),
45
45
  ) && context!.isBrandSite
46
46
  );
47
47
  };
@@ -52,9 +52,9 @@ export const contactBackgroundDisplayTypeVisibilityAssessor: VisibilityAssessor<
52
52
  return (
53
53
  Boolean(
54
54
  content?.layoutStyle &&
55
- [ALIGN_CARD_CENTER, ALIGN_CENTERED, TEXT_ONLY].includes(
56
- content?.layoutStyle,
57
- ),
55
+ [ALIGN_CARD_CENTER, ALIGN_CENTERED, TEXT_ONLY].includes(
56
+ content?.layoutStyle,
57
+ ),
58
58
  ) && context!.isBrandSite
59
59
  );
60
60
  };
@@ -8,6 +8,7 @@ import { UPGRADE_CTA_LOCATIONS } from './../../composables/useEventTracker';
8
8
  import { BRAND_PAGE_TYPES } from '@brand-page/models';
9
9
 
10
10
  export default defineComponent({
11
+ emits: ['create-team-cards'],
11
12
  setup() {
12
13
  const userStore = useBrandPageMakerUserStore();
13
14
  const brandPageMakerStore = useBrandPageMakerStore();
@@ -1,3 +1,4 @@
1
+ <!-- eslint-disable vue/no-v-html -->
1
2
  <template>
2
3
  <div class="tw-mb-4" :class="containerClass">
3
4
  <div class="tw-flex" :class="containerClass">
@@ -47,7 +47,6 @@ import AssetLibraryClient from '../../../clients/asset-library-clients';
47
47
  import { useShopConfigStore } from '@shared/ecommerce-settings/store/shop-settings-store';
48
48
  import type { ShopConfigData } from '@brand-page/models/shop.model';
49
49
  import { useProductConfigStore } from '@brand-page-maker/stores/product-config/product-config-store';
50
- import type { UpdateItemValuePayload } from '@shared/content-settings/models';
51
50
  import { UPGRADE_CTA_LOCATIONS } from '../../composables/useEventTracker';
52
51
  import { commonTr } from '@src/composables/useTranslate';
53
52
  import { useSnapshot } from '../../../composables/useSnapshot';
@@ -70,6 +69,8 @@ export interface BrandPageMakerViewModel {
70
69
  initialCategories: InitialCategories;
71
70
  personalisation?: UserPersonalisationContent[];
72
71
  isPersonalisationEnabled?: boolean;
72
+ userPromptContentKey?: string;
73
+ showAiTemplatesTab?: boolean;
73
74
  brandPageType?: BrandPageType;
74
75
  businessName?: string;
75
76
  industry?: string;
@@ -85,6 +86,7 @@ export default defineComponent({
85
86
  required: true,
86
87
  },
87
88
  },
89
+ emits: ['create-team-cards'],
88
90
  setup() {
89
91
  const brandPageMakerStore = useBrandPageMakerStore();
90
92
  const sideBarStore = useUiSideBarStore();
@@ -227,6 +229,8 @@ export default defineComponent({
227
229
  personalisationData: this.viewModel.personalisation,
228
230
  isPersonalisationEnabled:
229
231
  this.viewModel.isPersonalisationEnabled || false,
232
+ userPromptContentKey: this.viewModel.userPromptContentKey,
233
+ showAiTemplatesTab: this.viewModel.showAiTemplatesTab || false,
230
234
  brandPageType: this.viewModel.brandPageType,
231
235
  businessName: this.viewModel.businessName,
232
236
  industry: this.viewModel.industry,
@@ -270,6 +270,7 @@ const InitialiseMakerStores = (options: {
270
270
  isContextualUpgradeModalVisible: false,
271
271
  gettyVideos: [],
272
272
  templateSearchTerm: undefined,
273
+ aiTemplateKeywords: undefined,
273
274
  });
274
275
 
275
276
  userStore.setUserState({
@@ -5,12 +5,9 @@ import type { Component } from 'vue';
5
5
  import MockAdapter from 'axios-mock-adapter';
6
6
  import { mockDesignTemplateTypeApi } from '@shared/template-settings/components/TemplatesSettings.test-helper';
7
7
  import BrandPageMakerTemplateSettings from './BrandPageMakerTemplateSettings.vue';
8
- import VueRouter, { createMemoryHistory, createRouter } from 'vue-router';
8
+ import { createMemoryHistory, createRouter } from 'vue-router';
9
9
  import { hexToRGB } from '@utils/helpers';
10
- import {
11
- BRAND_PAGE_TEMPLATE_BP_909,
12
- LOGO_IMAGE_URL,
13
- } from '../../../__fixtures__';
10
+ import { BRAND_PAGE_TEMPLATE_BP_909 } from '../../../__fixtures__';
14
11
  import { setupStoryPinia } from './__fixtures__/store-fixture';
15
12
  import { useUiLogoSettingsStore } from '@shared/logo-settings/store';
16
13
  import { useUiStore } from '@brand-page-maker/stores';
@@ -13,13 +13,8 @@ import type {
13
13
  TextContent,
14
14
  UserPersonalisation,
15
15
  ImageContent,
16
- ImageGalleryContent,
17
16
  ProfileContent,
18
- WebsiteContent,
19
- ImagesSectionContent,
20
17
  UserPersonalisationContent,
21
- EmailContent,
22
- PhoneContent,
23
18
  ShapesSectionContent,
24
19
  BannerSectionContent,
25
20
  } from '@brand-page';
@@ -56,14 +56,6 @@ export const brandPagePaymentConfigsResponse: BrandPagePaymentConfig[] = [
56
56
  },
57
57
  ];
58
58
 
59
- const stripePaymentIntent: StripePaymentIntent = {
60
- id: faker.datatype.uuid(),
61
- object: 'payment_intent',
62
- amount: 500,
63
- client_secret: faker.internet.password(),
64
- currency: 'USD',
65
- } as const;
66
-
67
59
  export const brandPageCreateCartResult: CreateCartResult<StripePaymentIntent> =
68
60
  {
69
61
  cartId: faker.datatype.uuid(),
@@ -1,5 +1,3 @@
1
- import type { PageModel } from '@brand-page';
2
-
3
1
  export const BRAND_SITE_TEMPLATE_SAMPLE: any[] = [
4
2
  {
5
3
  title: 'HOME',
@@ -1,3 +1,4 @@
1
+ <!-- eslint-disable vue/no-v-html -->
1
2
  <template>
2
3
  <Page
3
4
  data-component="brand-page-maker-page"
@@ -130,7 +130,7 @@ export default defineComponent({
130
130
  mode: BRANDPAGE_SETTINGS_MODES.edit,
131
131
  });
132
132
  },
133
- onDesignSelected(image: UserMediaItemWithDimensions) {
133
+ onDesignSelected() {
134
134
  this.brandPageMakerStore.setMode({ mode: BRANDPAGE_SETTINGS_MODES.edit });
135
135
  },
136
136
  },
@@ -68,7 +68,7 @@
68
68
  </template>
69
69
 
70
70
  <script setup lang="ts">
71
- import { ref, type PropType } from 'vue';
71
+ import { ref } from 'vue';
72
72
  import type { ColorValue } from 'src/shared/color-picker/models';
73
73
  import ClickOutside from 'click-outside-vue3';
74
74
  import ColorPicker from './BpColorPicker.vue';
@@ -106,7 +106,6 @@ const emit = defineEmits<{
106
106
  const pickerIdRef = ref<HTMLElement>();
107
107
 
108
108
  const popupTop = ref(0);
109
- const popupLeft = ref(0);
110
109
 
111
110
  const vClickOutside = ClickOutside.directive;
112
111
 
@@ -23,6 +23,7 @@ export default defineComponent({
23
23
  default: COLOR_PICKER_MODE.SOLID,
24
24
  },
25
25
  },
26
+ emits: ['update:modelValue'],
26
27
  data() {
27
28
  return {
28
29
  colorPickerModes: COLOR_PICKER_MODE_OPTIONS,
@@ -27,6 +27,7 @@ export default defineComponent({
27
27
  default: 5,
28
28
  },
29
29
  },
30
+ emits: ['update:activeHandlerId'],
30
31
  data() {
31
32
  return {
32
33
  internalActiveHandlerId: 0,
@@ -18,6 +18,7 @@ export default defineComponent({
18
18
  default: false,
19
19
  },
20
20
  },
21
+ emits: ['on-selected', 'on-position-changed'],
21
22
  data() {
22
23
  return {
23
24
  startPosInPixel,
@@ -12,6 +12,7 @@ export default defineComponent({
12
12
  default: GRADIENT_COLOR_TYPE.LINEAR,
13
13
  },
14
14
  },
15
+ emits: ['update:modelValue'],
15
16
  data() {
16
17
  return {
17
18
  isLinear: true,
@@ -18,6 +18,7 @@ export default defineComponent({
18
18
  default: false,
19
19
  },
20
20
  },
21
+ emits: ['toggle-should-play'],
21
22
  data() {
22
23
  return {
23
24
  visible: false,
@@ -40,6 +40,7 @@ export default defineComponent({
40
40
  default: false,
41
41
  },
42
42
  },
43
+ emits: ['create-team-cards'],
43
44
  methods: {
44
45
  saveBrandPage() {
45
46
  this.$emit(EVENTS.Save);
@@ -552,6 +552,7 @@ const availableTextFontFamilyOptions = computed(
552
552
  () => styleSettingsStore.availableTextFontFamilyOptions,
553
553
  );
554
554
 
555
+ // eslint-disable-next-line vue/require-prop-types
555
556
  const model = defineModel();
556
557
  const emit = defineEmits([
557
558
  'focus',
@@ -709,7 +710,8 @@ watch(
709
710
  () =>
710
711
  contentSettingStore.getItem(props.rawId)?.settings?.content?.textItemsStyle
711
712
  ?.color,
712
- (newColor) => {
713
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
714
+ (_newColor) => {
713
715
  if (isAdmin.value) {
714
716
  if (props.textItemIndex !== undefined && selectedGlobalTextStyles) {
715
717
  toggleTextColor.value =
@@ -92,7 +92,7 @@
92
92
  </template>
93
93
  <script setup lang="ts">
94
94
  import { Button } from '@designcrowd/fe-shared-lib';
95
- import { computed, reactive, nextTick, useTemplateRef } from 'vue';
95
+ import { computed, reactive, nextTick } from 'vue';
96
96
  import {
97
97
  SENSITIVE_CONTENT_TYPES,
98
98
  type SensitiveContent,
@@ -109,9 +109,6 @@ const brandPageMakerStore = useBrandPageMakerStore();
109
109
 
110
110
  const props = defineProps<Props>();
111
111
 
112
- const isBrandPage = computed(() => brandPageMakerStore.isBrandPage);
113
- const isBrandContact = computed(() => brandPageMakerStore.isBrandContact);
114
-
115
112
  const data = reactive({
116
113
  sensitiveSettings: [
117
114
  {
@@ -59,7 +59,7 @@ interface Props {
59
59
  isCustomDomainRequestFailed?: boolean;
60
60
  }
61
61
 
62
- const props = defineProps<Props>();
62
+ defineProps<Props>();
63
63
  const emit = defineEmits<{ (e: 'on-confirm'): void; (e: 'on-cancel'): void }>();
64
64
 
65
65
  const emitConfirm = () => emit('on-confirm');
@@ -41,6 +41,7 @@ export default defineComponent({
41
41
  default: undefined,
42
42
  },
43
43
  },
44
+ emits: ['update-settings'],
44
45
  setup() {
45
46
  const brandPageMakerStore = useBrandPageMakerStore();
46
47
  const localisedRouteStore = useLocalisedRouteStore();
@@ -106,7 +106,7 @@
106
106
  <script>
107
107
  import { Button, TextInput, Textarea } from '@designcrowd/fe-shared-lib';
108
108
  import SeoPageSettingsMixin from './SeoPageSettings.mixin.ts';
109
- import { tr, commonTr, seoSettingsTr } from '@src/composables/useTranslate';
109
+ import { commonTr, seoSettingsTr } from '@src/composables/useTranslate';
110
110
 
111
111
  export default {
112
112
  components: {
@@ -9,7 +9,6 @@ import {
9
9
  useBrandPageContainerStore,
10
10
  useBrandPageMakerStore,
11
11
  useLocalisedRouteStore,
12
- useBrandPageMakerUserStore,
13
12
  } from '@brand-page-maker/stores';
14
13
  import { defaultUSDCurrency } from '@brand-page-maker/constants/currency-constants';
15
14
  import { validateCustomDomainName } from '@brand-page-maker/utils';
@@ -393,7 +393,6 @@ import { Button, Loader, TextInput } from '@designcrowd/fe-shared-lib';
393
393
  import { SellDomainNameWidget } from '@designcrowd/fe-shared-lib';
394
394
  import UrlSettingsMixin from './UrlSettings.mixin.ts';
395
395
  import DeleteDomainModal from './DeleteDomainModal.vue';
396
- import ConfirmModal from '@shared/confirm-modal/ConfirmModal.vue';
397
396
  import UseExistingDomainModal from './UseExistingDomainModal.vue';
398
397
  import { commonTr, seoSettingsTr } from '@src/composables/useTranslate';
399
398
 
@@ -178,11 +178,7 @@ import {
178
178
  Loader,
179
179
  } from '@designcrowd/fe-shared-lib';
180
180
  import UseExistingDomainModalMixin from './UseExistingDomainModal.mixin.ts';
181
- import {
182
- tr,
183
- commonTr,
184
- existingDomainModalTr,
185
- } from '@src/composables/useTranslate';
181
+ import { commonTr, existingDomainModalTr } from '@src/composables/useTranslate';
186
182
 
187
183
  export default {
188
184
  components: {
@@ -172,7 +172,7 @@ const enableNotes = computed(() => productSettingStore.productEnableNotes);
172
172
  const hasVariants = computed(() => productSettingStore.productHasVariants);
173
173
  const currencySymbol = computed(() => shopConfigStore.currencySymbol);
174
174
 
175
- const emit = defineEmits(['update:modelValue']);
175
+ defineEmits(['update:modelValue']);
176
176
 
177
177
  const onImageUpload = () => {
178
178
  productSettingStore.setImageUpload(true);
@@ -25,7 +25,7 @@ import {
25
25
  import type { UserMediaItemWithDimensions } from 'src/shared/my-uploads/models';
26
26
  const productSettingStore = useProductConfigStore();
27
27
 
28
- const emit = defineEmits(['on-close', 'on-save']);
28
+ defineEmits(['on-close', 'on-save']);
29
29
 
30
30
  const onBack = () => {
31
31
  productSettingStore.setImageUpload(false);
@@ -55,7 +55,7 @@
55
55
  <!-- End Loader Overlay -->
56
56
  </template>
57
57
  <script>
58
- import { Button, Loader, TextInput } from '@designcrowd/fe-shared-lib';
58
+ import { Loader, TextInput } from '@designcrowd/fe-shared-lib';
59
59
  import SocialShareMixin from './SocialShare.mixin';
60
60
  import ImageField from '@shared/content-settings/components/image-field/ImageField.vue';
61
61
  import { socialShareTr, commonTr } from '@src/composables/useTranslate';
@@ -15,10 +15,7 @@ import {
15
15
  getBrandPageViewModelFromBrandPageModel,
16
16
  } from '@brand-page/utils';
17
17
  import { STYLE_THEME_KEYS } from '@brand-page/constants';
18
- import {
19
- TEMPLATE_TABS,
20
- type TemplateSettingsTemplate,
21
- } from '@shared/template-settings/models';
18
+ import type { TemplateSettingsTemplate } from '@shared/template-settings/models';
22
19
  import type { DebounceHandle } from 'lodash.debounce';
23
20
  import debounce from 'lodash.debounce';
24
21
  import { MOBILE_HEIGHT, MOBILE_WIDTH } from '@brand-page-maker/constants';
@@ -74,7 +71,6 @@ export default defineComponent({
74
71
  isBrandSite: computed(
75
72
  () => brandPageMakerStore.brandPageType === BRAND_PAGE_TYPES.brandSite,
76
73
  ),
77
- selectedTab: computed(() => templateSettingsStore.selectedTab.key),
78
74
  renderAsImage: computed(() => templateSettingsStore.renderAsImage),
79
75
  brandPageMakerUserStore,
80
76
  brandPageContainerStore,
@@ -241,10 +237,28 @@ export default defineComponent({
241
237
  return '';
242
238
  }
243
239
 
244
- if (this.selectedTab === TEMPLATE_TABS.AI && this.template.contentKey) {
245
- if (this.userToken) {
246
- previewImageUrl += `&contentKey=${this.template.contentKey}&userToken=${this.userToken}`;
240
+ const isAlreadyPersonalised =
241
+ previewImageUrl.includes('contentKey=') ||
242
+ previewImageUrl.includes('userPromptContentKey=');
243
+
244
+ if (
245
+ this.isPersonalisable &&
246
+ this.template.contentKey &&
247
+ !isAlreadyPersonalised
248
+ ) {
249
+ if (this.userToken && !this.template.usesUserPromptContentKey) {
250
+ previewImageUrl += `&contentKey=${this.template.contentKey}`;
251
+
252
+ // The backend already bakes userToken into brand-site preview URLs. Only add
253
+ // it when missing - two userToken params parse as an array and the preview
254
+ // renderer rejects it ("userToken must be a string type") (bp-5765).
255
+ if (!previewImageUrl.includes('userToken=')) {
256
+ previewImageUrl += `&userToken=${this.userToken}`;
257
+ }
247
258
  } else {
259
+ // userPromptContentKey resolves from the userPrompt S3 bucket (real AI images).
260
+ // Post-purchase designs with a userPrompt key route here too, NOT through the
261
+ // userToken/regular-bucket branch above which holds placeholders (bp-5454).
248
262
  previewImageUrl += `&userPromptContentKey=${this.template.contentKey}`;
249
263
  }
250
264
  }
@@ -2,7 +2,7 @@
2
2
  <div
3
3
  ref="container"
4
4
  data-component="template-preview"
5
- class="template-preview-container hover:!tw-shadow-[0_0_0_3px] hover:!tw-shadow-info-500 tw-overflow-hidden"
5
+ class="template-preview-container hover:!tw-shadow-[0_0_0_3px] hover:!tw-shadow-info-500 tw-overflow-hidden tw-relative tw-isolate"
6
6
  :style="containerStyle"
7
7
  :class="{
8
8
  '!tw-shadow-[0_0_0_3px] !tw-shadow-info-500':
@@ -55,17 +55,10 @@
55
55
  />
56
56
  </div>
57
57
  <!-- End Preview Image -->
58
- <!-- Start personalisation tag -->
59
- <div
60
- v-if="isPersonalisable"
61
- class="tw-absolute tw-bottom-0 tw-right-0 tw-p-2 tw-z-50 tw-text-white"
62
- style="background: lightgreen"
63
- >
64
- <span>Personalisable</span>
65
- </div>
66
- <!-- End personalisation tag -->
67
58
  </div>
68
59
  </div>
60
+ <!-- AI badge outside scaled container so it renders at natural size -->
61
+ <TemplatePreviewAiBadge v-if="isPersonalisable" />
69
62
  </div>
70
63
  </template>
71
64
  <script>
@@ -73,11 +66,13 @@ import { defineComponent } from 'vue';
73
66
  import TemplatePreviewMixin from './TemplatePreview.mixin.ts';
74
67
  import Page from '@brand-page/components/page/Page.vue';
75
68
  import { Loader } from '@designcrowd/fe-shared-lib';
69
+ import TemplatePreviewAiBadge from './TemplatePreviewAiBadge.vue';
76
70
 
77
71
  export default defineComponent({
78
72
  components: {
79
73
  Page,
80
74
  Loader,
75
+ TemplatePreviewAiBadge,
81
76
  },
82
77
  mixins: [TemplatePreviewMixin],
83
78
  setup(props, context) {
@@ -0,0 +1,12 @@
1
+ <template>
2
+ <div
3
+ data-test-ai-design
4
+ class="tw-flex tw-flex-row tw-absolute tw-top-2.5 tw-left-2.5 tw-rounded-full tw-py-1 tw-px-2 tw-text-white tw-text-xs tw-font-bold tw-z-[25] tw-bg-gradient-to-t tw-from-[#d946ef] tw-to-[#8b5cf6]"
5
+ >
6
+ <Icon name="ai" class="tw-text-white tw-pr-1" size="sm" />
7
+ <span>AI</span>
8
+ </div>
9
+ </template>
10
+ <script setup lang="ts">
11
+ import { Icon } from '@designcrowd/fe-shared-lib';
12
+ </script>
@@ -28,5 +28,5 @@ interface Props {
28
28
  iconColor?: string;
29
29
  }
30
30
 
31
- const props = defineProps<Props>();
31
+ defineProps<Props>();
32
32
  </script>
@@ -1,4 +1,4 @@
1
- import { ref, computed, watch, nextTick, onUnmounted } from 'vue';
1
+ import { ref, computed, watch, nextTick } from 'vue';
2
2
  import type { BrandPageModel } from '../../../brand-page/models';
3
3
  import {
4
4
  getInstance as getAiAssistantClient,
@@ -628,15 +628,15 @@ export const useRichTextEditor = (
628
628
  );
629
629
  fontSettings.selectedTextColor = hasLogoColorVar(globalStyles.color ?? '')
630
630
  ? '#000000'
631
- : globalStyles?.color ?? '#000000';
631
+ : (globalStyles?.color ?? '#000000');
632
632
  fontSettings.selectedBackgroundColor = hasLogoColorVar(
633
633
  globalStyles?.backgroundColor ?? '',
634
634
  )
635
635
  ? 'transparent'
636
- : globalStyles?.backgroundColor ?? 'transparent';
636
+ : (globalStyles?.backgroundColor ?? 'transparent');
637
637
  lineHeight.value = globalStyles?.lineHeight?.includes('em')
638
638
  ? emToPx(globalStyles?.lineHeight ?? '1em')
639
- : globalStyles?.lineHeight ?? '1';
639
+ : (globalStyles?.lineHeight ?? '1');
640
640
  letterSpacing.value = letterSpacingValueConvertor.convert(
641
641
  globalStyles ?? {},
642
642
  );
@@ -658,15 +658,15 @@ export const useRichTextEditor = (
658
658
  props.styles?.color ?? '#000000',
659
659
  )
660
660
  ? '#000000'
661
- : props.styles?.color ?? '#000000';
661
+ : (props.styles?.color ?? '#000000');
662
662
  fontSettings.selectedBackgroundColor = hasLogoColorVar(
663
663
  props.styles?.backgroundColor ?? '',
664
664
  )
665
665
  ? 'transparent'
666
- : props.styles?.backgroundColor ?? 'transparent';
666
+ : (props.styles?.backgroundColor ?? 'transparent');
667
667
  lineHeight.value = props.styles?.lineHeight?.includes('em')
668
668
  ? emToPx(props.styles?.lineHeight ?? '1em')
669
- : props.styles?.lineHeight ?? '1';
669
+ : (props.styles?.lineHeight ?? '1');
670
670
  letterSpacing.value = letterSpacingValueConvertor.convert(
671
671
  props.styles ?? {},
672
672
  );
@@ -446,9 +446,9 @@ const shopReplaceImageSettings =
446
446
  titleReplace: contentSettingsTr(`imageReplaceTitle`),
447
447
  contentMediaFieldName: MediaFieldNames.requestPaymentConfig,
448
448
  setContentMedia: (
449
- content: ShopContent,
450
- value: SetContentMediaPayload,
451
- index?: number,
449
+ _content: ShopContent,
450
+ _value: SetContentMediaPayload,
451
+ _index?: number,
452
452
  ) => '',
453
453
  openByDefault: false,
454
454
  mediaType: null,
@@ -11,7 +11,7 @@ import {
11
11
  import type { ImagesSectionContent, MediaType } from '@brand-page';
12
12
 
13
13
  export const getTextMediaOptionsConverterByMediaType = (
14
- mediaType: MediaType,
14
+ _mediaType: MediaType,
15
15
  ): ValueConvertor<
16
16
  string | null,
17
17
  ButtonGroupConfig,
@@ -15,8 +15,10 @@ export const ButtonStyleConfigOptions = [
15
15
 
16
16
  export type ButtonStyleConfigOption = (typeof ButtonStyleConfigOptions)[number];
17
17
 
18
- export interface ButtonStyleConfig
19
- extends Omit<ButtonStyles, 'style' | 'template' | 'selectedButtonStyleId'> {
18
+ export interface ButtonStyleConfig extends Omit<
19
+ ButtonStyles,
20
+ 'style' | 'template' | 'selectedButtonStyleId'
21
+ > {
20
22
  readonly id: string;
21
23
  readonly hasShadow: boolean;
22
24
  readonly hasSoftShadow?: boolean;
@@ -156,8 +156,10 @@ export interface ContentSettingsField<TContent> {
156
156
  styleName?: string;
157
157
  }
158
158
 
159
- export interface ContentSettingsMultiField<TContent, TField>
160
- extends Omit<ContentSettingsField<TContent>, 'type' | 'role'> {
159
+ export interface ContentSettingsMultiField<TContent, TField> extends Omit<
160
+ ContentSettingsField<TContent>,
161
+ 'type' | 'role'
162
+ > {
161
163
  type: ItemMultiFieldType;
162
164
  role: 'multi';
163
165
  fields?: {
@@ -14,7 +14,7 @@ import type {
14
14
  import type { PageSection } from '@shared/page-settings/models';
15
15
  import { PAGE_SECTIONS } from '@shared/page-settings/models';
16
16
  import type { ButtonGroupOption } from './button-group.model';
17
- import { tr, commonTr, modelsTr } from '@src/composables/useTranslate';
17
+ import { commonTr, modelsTr } from '@src/composables/useTranslate';
18
18
 
19
19
  export const NavigationStyleConfigOptions = {
20
20
  defaultBorderColor: 'defaultBorderColor',
@@ -46,11 +46,10 @@ export const NAVIGATION_STYLE_CONFIG_OPTION_TITLES = (): Record<
46
46
  subNavBackgroundColor: modelsTr('subNavBackgroundColor'),
47
47
  });
48
48
 
49
- export interface NavigationStyleConfig
50
- extends Omit<
51
- NavigationDesktop | NavigationMobile,
52
- 'isLogoVisible' | 'hamburgerMenuStyle' | 'viewport'
53
- > {
49
+ export interface NavigationStyleConfig extends Omit<
50
+ NavigationDesktop | NavigationMobile,
51
+ 'isLogoVisible' | 'hamburgerMenuStyle' | 'viewport'
52
+ > {
54
53
  buttonGroupOption: ButtonGroupOption;
55
54
  options: NavigationStyleConfigOption[];
56
55
  }
@@ -2,7 +2,6 @@ import {
2
2
  EMPTY_LOGO_IMAGE_MODEL,
3
3
  type FabricLogoTheme,
4
4
  type LogoContent,
5
- type LogoImageModel,
6
5
  type LogoTemplateImageModel,
7
6
  type LogoTheme,
8
7
  } from '@brand-page';