@designcrowd/library.brand-page 5.19.1-error-html2canvas-2 → 5.19.1-id-based-items-1

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 (371) hide show
  1. package/lib/src/{CreatedOnBrandCrowd-de-de-DmKe7W8L.js → CreatedOnBrandCrowd-de-de-0PcGqy0N.js} +3 -3
  2. package/lib/src/{CreatedOnBrandCrowd-en-us-D2EeiNep.js → CreatedOnBrandCrowd-en-us-DB8wcFMI.js} +3 -3
  3. package/lib/src/{CreatedOnBrandCrowd-es-es-BqVwNY1D.js → CreatedOnBrandCrowd-es-es-DVWQ243C.js} +3 -3
  4. package/lib/src/{CreatedOnBrandCrowd-fr-fr-C756a27-.js → CreatedOnBrandCrowd-fr-ca-D-M_L0Du.js} +3 -3
  5. package/lib/src/{CreatedOnBrandCrowd-fr-ca-C756a27-.js → CreatedOnBrandCrowd-fr-fr-D-M_L0Du.js} +3 -3
  6. package/lib/src/{CreatedOnBrandCrowd-pt-pt-FNHAnZUw.js → CreatedOnBrandCrowd-pt-br-CNpzknxU.js} +3 -3
  7. package/lib/src/{CreatedOnBrandCrowd-pt-br-FNHAnZUw.js → CreatedOnBrandCrowd-pt-pt-CNpzknxU.js} +3 -3
  8. package/lib/src/{CreatedOnDcom-de-de-8AZZFmDt.js → CreatedOnDcom-de-de-DMJoD5wE.js} +3 -3
  9. package/lib/src/{CreatedOnDcom-en-us-DizTP32i.js → CreatedOnDcom-en-us-B-F3Pmjv.js} +3 -3
  10. package/lib/src/{CreatedOnDcom-es-es-qnp9_n_A.js → CreatedOnDcom-es-es-DmLk-cA2.js} +3 -3
  11. package/lib/src/{CreatedOnDcom-fr-ca-jUs352uK.js → CreatedOnDcom-fr-ca-ntnsCzvA.js} +3 -3
  12. package/lib/src/{CreatedOnDcom-fr-fr-CTxXtHyk.js → CreatedOnDcom-fr-fr-DFcO0gHL.js} +3 -3
  13. package/lib/src/{CreatedOnDcom-pt-br-nQHj8P7d.js → CreatedOnDcom-pt-br-CtuJoVXW.js} +3 -3
  14. package/lib/src/{CreatedOnDcom-pt-pt-DJmVYQuL.js → CreatedOnDcom-pt-pt-B7shZVVn.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-logo-settings/AdminLogoSettings.mixin.d.ts +3 -3
  35. package/lib/src/brand-page-maker/components/brand-page-maker/BrandPageMaker.mixin.d.ts +170 -181
  36. package/lib/src/brand-page-maker/components/brand-page-maker/BrandPageMaker.mixin.js +0 -3
  37. package/lib/src/brand-page-maker/components/brand-page-maker/BrandPageMaker.stories.js +0 -1
  38. package/lib/src/brand-page-maker/components/brand-page-maker/BrandPageMakerTemplateSettings.mixin.d.ts +12 -12
  39. package/lib/src/brand-page-maker/components/brand-page-maker/BrandPageMakerTemplateSettings.stories.js +2 -2
  40. package/lib/src/brand-page-maker/components/brand-page-maker/__fixtures__/brand-page-payment.js +7 -0
  41. package/lib/src/brand-page-maker/components/brandpage-maker-page/BrandPageMakerPage.mixin.d.ts +149 -148
  42. package/lib/src/brand-page-maker/components/brandpage-settings/ReplaceImageSettingsForBrandPageSettings.mixin.d.ts +21 -21
  43. package/lib/src/brand-page-maker/components/brandpage-settings/ReplaceImageSettingsForBrandPageSettings.mixin.js +1 -1
  44. package/lib/src/brand-page-maker/components/color-picker/components/ColorModeSelect.mixin.d.ts +2 -4
  45. package/lib/src/brand-page-maker/components/color-picker/components/ColorModeSelect.mixin.js +0 -1
  46. package/lib/src/brand-page-maker/components/color-picker/components/GradientColorSlider.mixin.d.ts +2 -4
  47. package/lib/src/brand-page-maker/components/color-picker/components/GradientColorSlider.mixin.js +0 -1
  48. package/lib/src/brand-page-maker/components/color-picker/components/GradientColorSliderHandler.mixin.d.ts +2 -5
  49. package/lib/src/brand-page-maker/components/color-picker/components/GradientColorSliderHandler.mixin.js +0 -1
  50. package/lib/src/brand-page-maker/components/color-picker/components/GradientTypeSelector.mixin.d.ts +2 -4
  51. package/lib/src/brand-page-maker/components/color-picker/components/GradientTypeSelector.mixin.js +0 -1
  52. package/lib/src/brand-page-maker/components/device/Device.mixin.d.ts +2 -4
  53. package/lib/src/brand-page-maker/components/device/Device.mixin.js +0 -1
  54. package/lib/src/brand-page-maker/components/navigation/Navigation.mixin.d.ts +2 -4
  55. package/lib/src/brand-page-maker/components/navigation/Navigation.mixin.js +0 -1
  56. package/lib/src/brand-page-maker/components/preview/Preview.mixin.d.ts +3 -3
  57. package/lib/src/brand-page-maker/components/quick-link-bar/QuickLinkBar.mixin.d.ts +11 -11
  58. package/lib/src/brand-page-maker/components/seo-settings/SeoPageSettings.mixin.d.ts +25 -27
  59. package/lib/src/brand-page-maker/components/seo-settings/SeoPageSettings.mixin.js +0 -1
  60. package/lib/src/brand-page-maker/components/seo-settings/UrlSettings.mixin.d.ts +27 -27
  61. package/lib/src/brand-page-maker/components/seo-settings/UrlSettings.mixin.js +1 -1
  62. package/lib/src/brand-page-maker/components/seo-settings/UseExistingDomainModal.mixin.d.ts +12 -17
  63. package/lib/src/brand-page-maker/components/social-share/SocialShare.mixin.d.ts +12 -12
  64. package/lib/src/brand-page-maker/components/template-preview/TemplatePreview.mixin.d.ts +32 -30
  65. package/lib/src/brand-page-maker/components/template-preview/TemplatePreview.mixin.js +5 -16
  66. package/lib/src/brand-page-maker/components/upgrade-to-premium-button/UpgradeToPremiumButton.mixin.d.ts +11 -11
  67. package/lib/src/brand-page-maker/composables/ai-chat/useAiWebsiteBuilderChat.js +1 -1
  68. package/lib/src/brand-page-maker/composables/rich-text-editor/useRichTextEditor.d.ts +1 -1
  69. package/lib/src/brand-page-maker/composables/rich-text-editor/useRichTextEditor.js +6 -6
  70. package/lib/src/brand-page-maker/composables/useEventTracker.d.ts +2 -2
  71. package/lib/src/brand-page-maker/constants/config-settings-constant.d.ts +6 -6
  72. package/lib/src/brand-page-maker/constants/config-settings-constant.js +1 -1
  73. package/lib/src/brand-page-maker/convertors/text-image-display-style.convertor.d.ts +1 -1
  74. package/lib/src/brand-page-maker/convertors/text-image-display-style.convertor.js +1 -1
  75. package/lib/src/brand-page-maker/models/content-settings.d.ts +1 -1
  76. package/lib/src/brand-page-maker/models/navigation-style-configs.js +1 -1
  77. package/lib/src/brand-page-maker/routing/brand-page-maker-router.d.ts +2 -1
  78. package/lib/src/brand-page-maker/stores/ai-checkpoint/ai-checkpoint-store.d.ts +378 -366
  79. package/lib/src/brand-page-maker/stores/brandpage-container/brand-page-container-store.d.ts +4 -5
  80. package/lib/src/brand-page-maker/stores/brandpage-container/brand-page-container-store.js +5 -8
  81. package/lib/src/brand-page-maker/stores/brandpage-maker/brandpage-maker-store.d.ts +1 -3
  82. package/lib/src/brand-page-maker/stores/brandpage-maker/brandpage-maker-store.js +3 -7
  83. package/lib/src/brand-page-maker/stores/history/history-store.d.ts +15 -15
  84. package/lib/src/brand-page-maker/stores/ui/ui-store.d.ts +0 -6
  85. package/lib/src/brand-page-maker/stores/ui/ui-store.js +0 -8
  86. package/lib/src/brand-page-maker/utils/content-settings.util.js +1 -1
  87. package/lib/src/brand-page-maker/utils/rich-text-editor.util.d.ts +1 -1
  88. package/lib/src/brand-page-maker/utils/rich-text-editor.util.js +4 -4
  89. package/lib/src/clients/brand-page-client.d.ts +15 -16
  90. package/lib/src/clients/design-template-client.d.ts +0 -3
  91. package/lib/src/clients/media-client.d.ts +2 -2
  92. package/lib/src/clients/models.d.ts +0 -2
  93. package/lib/src/composables/useSnapshot.js +18 -18
  94. package/lib/src/css/library.brand-page-brandCrowd.min.css +324 -342
  95. package/lib/src/css/library.brand-page-brandPage.min.css +324 -620
  96. package/lib/src/css/library.brand-page-designCom.min.css +324 -342
  97. package/lib/src/css/library.brand-page-preview.min.css +324 -598
  98. package/lib/src/index.d.ts +1 -1
  99. package/lib/src/index.mjs +15 -16
  100. package/lib/src/{lib-DityivZa.js → lib-BQmJBVbS.js} +33238 -36458
  101. package/lib/src/lib.js +1 -1
  102. package/lib/src/metadata-builder/builders/footer-builder.js +56 -91
  103. package/lib/src/metadata-builder/builders/item-id-utils.d.ts +41 -0
  104. package/lib/src/metadata-builder/builders/item-id-utils.js +68 -0
  105. package/lib/src/metadata-builder/builders/section-builders/image-gallery-builder.js +57 -68
  106. package/lib/src/metadata-builder/builders/section-builders/images-section-builder.js +58 -93
  107. package/lib/src/metadata-builder/builders/section-builders/shapes-section-builder.js +66 -99
  108. package/lib/src/metadata-builder/builders/section-builders/social-links-builder.js +57 -17
  109. package/lib/src/metadata-builder/builders/section-builders/testimonial-section-builder.js +51 -85
  110. package/lib/src/metadata-builder/builders/section-builders/text-section-builder.js +49 -74
  111. package/lib/src/metadata-builder/builders/shape-color-utils.js +1 -1
  112. package/lib/src/metadata-builder/parsers/ai-toolcall-parser.d.ts +13 -4
  113. package/lib/src/metadata-builder/parsers/section-tool-arguments.d.ts +66 -48
  114. package/lib/src/plugins/google-maps-plugin/google-maps-plugin.d.ts +1 -1
  115. package/lib/src/plugins/google-maps-plugin/google-maps-plugin.js +8 -8
  116. package/lib/src/shared/background-settings/components/background-shapes/BackgroundShapeSettings.mixin.d.ts +13 -13
  117. package/lib/src/shared/background-settings/store/background-settings-store.d.ts +3 -3
  118. package/lib/src/shared/color-picker/components/ColorPicker.mixin.d.ts +2 -4
  119. package/lib/src/shared/color-picker/components/ColorPicker.mixin.js +2 -2
  120. package/lib/src/shared/color-picker/components/ColorPickerSwatch.mixin.d.ts +2 -4
  121. package/lib/src/shared/color-picker/components/ColorPickerSwatch.mixin.js +0 -1
  122. package/lib/src/shared/confirm-modal/ConfirmModal.mixin.d.ts +2 -5
  123. package/lib/src/shared/confirm-modal/ConfirmModal.mixin.js +0 -1
  124. package/lib/src/shared/content-settings/components/GenericTextInput.mixin.d.ts +1 -0
  125. package/lib/src/shared/content-settings/components/content-settings/ContentSettings.mixin.d.ts +129 -131
  126. package/lib/src/shared/content-settings/components/content-settings/ContentSettings.mixin.js +1 -2
  127. package/lib/src/shared/content-settings/components/content-settings/ReplaceImageSettingsForContent.mixin.d.ts +110 -111
  128. package/lib/src/shared/content-settings/components/content-settings-item/ContentSettingsItem.mixin.d.ts +81 -84
  129. package/lib/src/shared/content-settings/components/content-settings-item/ContentSettingsItem.mixin.js +0 -5
  130. package/lib/src/shared/content-settings/components/content-settings-item/ContentSettingsItemField.mixin.d.ts +109 -117
  131. package/lib/src/shared/content-settings/components/content-settings-item/ContentSettingsItemField.mixin.js +14 -1
  132. package/lib/src/shared/content-settings/components/email-field/EmailField.mixin.d.ts +1 -0
  133. package/lib/src/shared/content-settings/components/focused-content-item-settings/FocusedContentItemSettings.mixin.d.ts +70 -72
  134. package/lib/src/shared/content-settings/components/focused-content-item-settings/FocusedContentItemSettings.mixin.js +3 -4
  135. package/lib/src/shared/content-settings/components/form-fields-field/FormFieldsField.mixin.d.ts +4 -4
  136. package/lib/src/shared/content-settings/components/icon-library/IconLibrary.mixin.d.ts +1 -3
  137. package/lib/src/shared/content-settings/components/icon-library/IconLibrary.mixin.js +0 -1
  138. package/lib/src/shared/content-settings/components/images-field/ImagesField.mixin.d.ts +2 -2
  139. package/lib/src/shared/content-settings/components/items-field/ItemsField.mixin.d.ts +3 -4
  140. package/lib/src/shared/content-settings/components/items-field/ItemsField.mixin.js +1 -1
  141. package/lib/src/shared/content-settings/components/payment-config-field/PaymentConfigField.mixin.d.ts +40 -40
  142. package/lib/src/shared/content-settings/components/payment-config-field/PaymentConfigOptionField.mixin.d.ts +6 -5
  143. package/lib/src/shared/content-settings/components/shape-field/ShapeField.mixin.d.ts +1 -0
  144. package/lib/src/shared/content-settings/components/slider-field/SliderField.mixin.d.ts +2 -2
  145. package/lib/src/shared/content-settings/components/tel-field/TelField.mixin.d.ts +1 -0
  146. package/lib/src/shared/content-settings/components/testimonial-items-field/TestimonialItemsField.mixin.d.ts +2 -1
  147. package/lib/src/shared/content-settings/components/text-field/TextField.mixin.d.ts +1 -0
  148. package/lib/src/shared/content-settings/components/text-items-field/TextItemsField.mixin.d.ts +2 -1
  149. package/lib/src/shared/content-settings/components/text-items-field/TextItemsField.mixin.js +1 -1
  150. package/lib/src/shared/content-settings/components/text-style-field/TextStyleField.mixin.d.ts +28 -28
  151. package/lib/src/shared/content-settings/components/textarea-field/TextareaField.mixin.d.ts +1 -0
  152. package/lib/src/shared/content-settings/components/toggle-field/ToggleField.mixin.d.ts +2 -2
  153. package/lib/src/shared/content-settings/components/url-field/UrlField.mixin.d.ts +1 -0
  154. package/lib/src/shared/content-settings/components/youtube-video-field/YoutubeVideoField.mixin.d.ts +1 -0
  155. package/lib/src/shared/content-settings/store/content-settings-store.d.ts +39 -39
  156. package/lib/src/shared/content-settings/utils.js +1 -0
  157. package/lib/src/shared/font-family-selector/FontFamilySelector.mixin.d.ts +4 -6
  158. package/lib/src/shared/font-family-selector/FontFamilySelector.mixin.js +0 -1
  159. package/lib/src/shared/image-gallery-style-settings/ImageGalleryStyleSettings.mixin.d.ts +2 -4
  160. package/lib/src/shared/image-gallery-style-settings/ImageGalleryStyleSettings.mixin.js +0 -1
  161. package/lib/src/shared/logo-settings/components/EditLogoSettings.mixin.d.ts +21 -29
  162. package/lib/src/shared/logo-settings/components/EditLogoSettings.mixin.js +1 -1
  163. package/lib/src/shared/logo-settings/components/LogoSettings.mixin.d.ts +51 -50
  164. package/lib/src/shared/logo-settings/components/LogoSettingsHeader.mixin.d.ts +4 -6
  165. package/lib/src/shared/logo-settings/components/LogoSettingsHeader.mixin.js +0 -1
  166. package/lib/src/shared/logo-settings/store/editable-logo-store.js +1 -1
  167. package/lib/src/shared/logo-settings/store/logo-settings-store.d.ts +1 -1
  168. package/lib/src/shared/logo-versions/LogoVersions.mixin.d.ts +5 -13
  169. package/lib/src/shared/logo-versions/LogoVersions.mixin.js +0 -1
  170. package/lib/src/shared/models.d.ts +0 -2
  171. package/lib/src/shared/my-designs/MyDesigns.mixin.d.ts +6 -14
  172. package/lib/src/shared/my-designs/MyDesigns.mixin.js +0 -1
  173. package/lib/src/shared/my-uploads/MyMedia.mixin.d.ts +5 -14
  174. package/lib/src/shared/my-uploads/MyMedia.mixin.js +0 -1
  175. package/lib/src/shared/my-uploads/MyUploads.mixin.d.ts +5 -14
  176. package/lib/src/shared/my-uploads/MyUploads.mixin.js +0 -1
  177. package/lib/src/shared/navigation-style-settings/components/navigation-style-settings/NavigationStyleSettings.mixin.d.ts +3 -5
  178. package/lib/src/shared/navigation-style-settings/components/navigation-style-settings/NavigationStyleSettings.mixin.js +0 -1
  179. package/lib/src/shared/navigation-style-settings/store/index.d.ts +2 -2
  180. package/lib/src/shared/page-navigation/store/page-navigation-store.d.ts +2 -2
  181. package/lib/src/shared/page-settings/components/new-page-modal/NewPageModal.mixin.d.ts +28 -27
  182. package/lib/src/shared/page-settings/components/new-page-modal/NewPageModal.mixin.js +2 -0
  183. package/lib/src/shared/page-settings/components/page-settings/PageSettings.mixin.d.ts +179 -188
  184. package/lib/src/shared/page-settings/components/page-settings-section-styles/PageSettingsSectionStyles.mixin.d.ts +177 -181
  185. package/lib/src/shared/page-settings/components/page-settings-section-styles/PageSettingsSectionStyles.mixin.js +1 -1
  186. package/lib/src/shared/page-settings/store/page-settings-store.d.ts +9 -9
  187. package/lib/src/shared/publish-brand-page-with-state/PublishBrandPageModalWithState.mixin.d.ts +39 -39
  188. package/lib/src/shared/publish-brand-page-with-state/PublishBrandPageModalWithState.mixin.js +1 -0
  189. package/lib/src/shared/side-bar/components/SideBar.mixin.d.ts +18 -18
  190. package/lib/src/shared/side-bar/components/SideBarTabButton.mixin.d.ts +6 -6
  191. package/lib/src/shared/style-settings/components/StyleSettings.mixin.d.ts +60 -66
  192. package/lib/src/shared/style-settings/store/style-settings-store.d.ts +1 -1
  193. package/lib/src/shared/style-settings/store/style-settings-store.js +1 -1
  194. package/lib/src/shared/template-settings/components/TemplatesSettings.mixin.d.ts +450 -20
  195. package/lib/src/shared/template-settings/components/TemplatesSettings.mixin.js +2 -2
  196. package/lib/src/shared/template-settings/models.d.ts +0 -1
  197. package/lib/src/shared/template-settings/store/template-settings-store.d.ts +0 -4
  198. package/lib/src/shared/template-settings/store/template-settings-store.js +11 -79
  199. package/lib/src/shared/unsplash-library/UnsplashLibrary.mixin.d.ts +4 -9
  200. package/package.json +57 -61
  201. package/src/brand-page/components/about-section/AboutSection.vue.test.ts +5 -7
  202. package/src/brand-page/components/brand-page-footer/BrandPageFooter.vue +1 -1
  203. package/src/brand-page/components/image/Image.mixin.ts +1 -1
  204. package/src/brand-page/components/image/Image.test.ts +1 -1
  205. package/src/brand-page/components/image-gallery/masonry/MasonryGallery.mixin.ts +2 -1
  206. package/src/brand-page/components/images-section/ImagesSection.vue +1 -0
  207. package/src/brand-page/components/logo/LogoRender.vue +188 -188
  208. package/src/brand-page/components/navigation/hamburger/HamburgerNavigation.mixin.ts +0 -1
  209. package/src/brand-page/components/navigation/navigation-side-menu/NavigationSideMenu.mixin.ts +6 -15
  210. package/src/brand-page/components/page-footer/PageFooter.vue +0 -1
  211. package/src/brand-page/components/page-header/HeaderLayout.vue +6 -12
  212. package/src/brand-page/components/page-header/PageHeader.vue +0 -1
  213. package/src/brand-page/components/shapes-section/ShapesSection.vue +1 -1
  214. package/src/brand-page/components/shop/CartModal.vue +3 -1
  215. package/src/brand-page/components/shop/FeaturedDisplay.vue +2 -2
  216. package/src/brand-page/components/shop/PaymentModal.vue +5 -1
  217. package/src/brand-page/components/shop/ProductDetailModal.vue +1 -1
  218. package/src/brand-page/components/shop/Shop.vue +1 -1
  219. package/src/brand-page/components/shop/TextDisplay.vue +1 -1
  220. package/src/brand-page/components/shop/ThumbnailDisplay.vue +2 -2
  221. package/src/brand-page/components/testimonial-section/TestimonialSection.vue +3 -3
  222. package/src/brand-page/components/text-wrapper/TextWrapper.vue +1 -3
  223. package/src/brand-page/constants/sections/footer-display.constants.ts +1 -1
  224. package/src/brand-page/models/index.ts +12 -4
  225. package/src/brand-page/models/payment.model.ts +1 -2
  226. package/src/brand-page/models/shop.model.ts +2 -0
  227. package/src/brand-page/models/user-personalisation.model.ts +2 -1
  228. package/src/brand-page/utils/__snapshots__/migration.util.test.ts.snap +0 -3
  229. package/src/brand-page/utils/__snapshots__/migration2.util.test.ts.snap +0 -1
  230. package/src/brand-page/utils/__snapshots__/model.util.test.ts.snap +0 -2
  231. package/src/brand-page/utils/migration/migration-01_1.ts +1 -1
  232. package/src/brand-page/utils/migration/migration-02.ts +1 -0
  233. package/src/brand-page/utils/migration/migration-03.ts +1 -0
  234. package/src/brand-page/utils/migration/migration-04.ts +1 -0
  235. package/src/brand-page/utils/migration/migration-05.ts +5 -1
  236. package/src/brand-page/utils/migration/migration-05_2.ts +1 -1
  237. package/src/brand-page/utils/migration/migration-08.test.ts +1 -1
  238. package/src/brand-page/utils/personalisation.util.test.ts +0 -35
  239. package/src/brand-page/utils/personalisation.util.ts +23 -119
  240. package/src/brand-page/view-models.ts +56 -38
  241. package/src/brand-page-maker/assessors/banner-section-description-visibility.assessor.ts +6 -6
  242. package/src/brand-page-maker/assessors/color-replacement-icon-visibility.assessor.ts +2 -2
  243. package/src/brand-page-maker/assessors/color-replacement-profile-visibility.assessor.ts +2 -2
  244. package/src/brand-page-maker/assessors/color-replacement-visibility.assessor.ts +2 -2
  245. package/src/brand-page-maker/assessors/contact-form-visibility.assessor.ts +14 -14
  246. package/src/brand-page-maker/components/action-bar/ActionBar.mixin.ts +0 -1
  247. package/src/brand-page-maker/components/ai-text-edit/TextBubble.vue +0 -1
  248. package/src/brand-page-maker/components/brand-page-maker/BrandPageMaker.mixin.ts +1 -5
  249. package/src/brand-page-maker/components/brand-page-maker/BrandPageMaker.stories.ts +0 -1
  250. package/src/brand-page-maker/components/brand-page-maker/BrandPageMakerTemplateSettings.stories.ts +5 -2
  251. package/src/brand-page-maker/components/brand-page-maker/__fixtures__/brand-page-examples.ts +5 -0
  252. package/src/brand-page-maker/components/brand-page-maker/__fixtures__/brand-page-payment.ts +8 -0
  253. package/src/brand-page-maker/components/brand-page-maker/__fixtures__/brand-site-template.examples.ts +2 -0
  254. package/src/brand-page-maker/components/brandpage-maker-page/BrandPageMakerPage.vue +0 -1
  255. package/src/brand-page-maker/components/brandpage-settings/ReplaceImageSettingsForBrandPageSettings.mixin.ts +1 -1
  256. package/src/brand-page-maker/components/color-palette/BpColorPalette.vue +2 -1
  257. package/src/brand-page-maker/components/color-picker/components/ColorModeSelect.mixin.ts +0 -1
  258. package/src/brand-page-maker/components/color-picker/components/GradientColorSlider.mixin.ts +0 -1
  259. package/src/brand-page-maker/components/color-picker/components/GradientColorSliderHandler.mixin.ts +0 -1
  260. package/src/brand-page-maker/components/color-picker/components/GradientTypeSelector.mixin.ts +0 -1
  261. package/src/brand-page-maker/components/device/Device.mixin.ts +0 -1
  262. package/src/brand-page-maker/components/navigation/Navigation.mixin.ts +0 -1
  263. package/src/brand-page-maker/components/rich-text-editor/RichTextEditor.vue +1 -3
  264. package/src/brand-page-maker/components/sensitive-content/SensitiveContent.vue +4 -1
  265. package/src/brand-page-maker/components/seo-settings/DeleteDomainModal.vue +1 -1
  266. package/src/brand-page-maker/components/seo-settings/SeoPageSettings.mixin.ts +0 -1
  267. package/src/brand-page-maker/components/seo-settings/SeoPageSettings.vue +1 -1
  268. package/src/brand-page-maker/components/seo-settings/UrlSettings.mixin.ts +1 -0
  269. package/src/brand-page-maker/components/seo-settings/UrlSettings.vue +1 -0
  270. package/src/brand-page-maker/components/seo-settings/UseExistingDomainModal.vue +5 -1
  271. package/src/brand-page-maker/components/shop/AddOrEditProductContainer.vue +1 -1
  272. package/src/brand-page-maker/components/shop/ReplaceImageSettingsForShop.vue +1 -1
  273. package/src/brand-page-maker/components/social-share/SocialShare.vue +1 -1
  274. package/src/brand-page-maker/components/template-preview/TemplatePreview.mixin.ts +8 -22
  275. package/src/brand-page-maker/components/template-preview/TemplatePreview.vue +10 -5
  276. package/src/brand-page-maker/components/video-play/VideoPlayButton.vue +1 -1
  277. package/src/brand-page-maker/composables/ai-chat/useAiWebsiteBuilderChat.ts +1 -1
  278. package/src/brand-page-maker/composables/rich-text-editor/useRichTextEditor.ts +6 -6
  279. package/src/brand-page-maker/constants/config-settings-constant.ts +3 -3
  280. package/src/brand-page-maker/convertors/text-image-display-style.convertor.ts +1 -1
  281. package/src/brand-page-maker/models/button-styles-config.ts +2 -4
  282. package/src/brand-page-maker/models/content-settings-configs.ts +2 -4
  283. package/src/brand-page-maker/models/navigation-style-configs.ts +6 -5
  284. package/src/brand-page-maker/stores/admin-logo-settings/admin-logo-settings-store.ts +1 -0
  285. package/src/brand-page-maker/stores/brandpage-container/brand-page-container-store.ts +5 -8
  286. package/src/brand-page-maker/stores/brandpage-maker/brandpage-maker-store.test.ts +3 -1
  287. package/src/brand-page-maker/stores/brandpage-maker/brandpage-maker-store.ts +4 -12
  288. package/src/brand-page-maker/stores/ui/ui-store.ts +0 -16
  289. package/src/brand-page-maker/utils/content-settings.util.ts +1 -1
  290. package/src/brand-page-maker/utils/rich-text-editor.util.ts +4 -4
  291. package/src/clients/design-template-client.ts +0 -3
  292. package/src/clients/models.ts +0 -2
  293. package/src/composables/useSnapshot.ts +22 -19
  294. package/src/lib.ts +0 -1
  295. package/src/metadata-builder/builders/footer-builder.test.ts +245 -84
  296. package/src/metadata-builder/builders/footer-builder.ts +81 -130
  297. package/src/metadata-builder/builders/item-id-utils.test.ts +118 -0
  298. package/src/metadata-builder/builders/item-id-utils.ts +85 -0
  299. package/src/metadata-builder/builders/section-builders/image-gallery-builder.ts +62 -88
  300. package/src/metadata-builder/builders/section-builders/images-section-builder.ts +66 -129
  301. package/src/metadata-builder/builders/section-builders/shapes-section-builder.ts +105 -160
  302. package/src/metadata-builder/builders/section-builders/social-links-builder.ts +65 -20
  303. package/src/metadata-builder/builders/section-builders/testimonial-section-builder.ts +83 -146
  304. package/src/metadata-builder/builders/section-builders/text-section-builder.ts +70 -122
  305. package/src/metadata-builder/builders/shape-color-utils.ts +2 -2
  306. package/src/metadata-builder/parsers/ai-toolcall-parser.ts +13 -4
  307. package/src/metadata-builder/parsers/section-tool-arguments.ts +66 -48
  308. package/src/plugins/google-maps-plugin/google-maps-plugin.ts +8 -8
  309. package/src/shared/background-settings/components/BackgroundSettings.vue +1 -1
  310. package/src/shared/background-settings/components/background-color/BackgroundColorSettings.vue +1 -1
  311. package/src/shared/color-picker/components/ColorPicker.mixin.ts +7 -2
  312. package/src/shared/color-picker/components/ColorPickerSwatch.mixin.ts +0 -1
  313. package/src/shared/common/NumberInput.vue +0 -1
  314. package/src/shared/common/SideBarSettingsHeader.vue +2 -2
  315. package/src/shared/confirm-modal/ConfirmModal.mixin.ts +0 -1
  316. package/src/shared/content-settings/components/booking-url-field/BookingUrlField.vue +0 -1
  317. package/src/shared/content-settings/components/button-configuration-field/ButtonConfigurationField.vue +0 -1
  318. package/src/shared/content-settings/components/color-field/ColorField.vue +10 -3
  319. package/src/shared/content-settings/components/content-settings/ContentSettings.mixin.ts +1 -1
  320. package/src/shared/content-settings/components/content-settings/ContentSettingsLockedButton.vue +0 -1
  321. package/src/shared/content-settings/components/content-settings-item/ContentSettingsItem.mixin.ts +0 -5
  322. package/src/shared/content-settings/components/content-settings-item/ContentSettingsItemField.mixin.ts +14 -1
  323. package/src/shared/content-settings/components/focused-content-item-settings/FocusedContentItemSettings.mixin.ts +6 -4
  324. package/src/shared/content-settings/components/icon-library/IconLibrary.mixin.ts +0 -1
  325. package/src/shared/content-settings/components/items-field/ItemsField.mixin.ts +1 -1
  326. package/src/shared/content-settings/components/logo-selection-field/LogoSelectionField.vue +1 -1
  327. package/src/shared/content-settings/components/logo-size-field/LogoSizeSliderField.vue +1 -1
  328. package/src/shared/content-settings/components/page-dropdown-field/PageDropdownField.vue +1 -1
  329. package/src/shared/content-settings/components/personalisation-role-field/PersonalisationRoleField.vue +4 -4
  330. package/src/shared/content-settings/components/text-image-field/TextImageField.vue +8 -2
  331. package/src/shared/content-settings/components/text-items-field/TextItemsField.mixin.ts +1 -1
  332. package/src/shared/content-settings/models.ts +2 -3
  333. package/src/shared/content-settings/utils.ts +1 -0
  334. package/src/shared/dropzone-image-uploader/components/DropzoneImageUploader.vue +0 -1
  335. package/src/shared/ecommerce-settings/store/cart-store.test.ts +1 -1
  336. package/src/shared/font-family-selector/FontFamilySelector.mixin.ts +0 -1
  337. package/src/shared/image-gallery-style-settings/ImageGalleryStyleSettings.mixin.ts +0 -1
  338. package/src/shared/logo-settings/components/EditLogoSettings.mixin.ts +1 -1
  339. package/src/shared/logo-settings/components/LogoSettings.mixin.ts +1 -0
  340. package/src/shared/logo-settings/components/LogoSettingsHeader.mixin.ts +0 -1
  341. package/src/shared/logo-settings/components/LogoStyleSettingsWithState.vue +2 -2
  342. package/src/shared/logo-settings/components/LogoTemplateSearch.vue +1 -1
  343. package/src/shared/logo-settings/store/editable-logo-store.ts +1 -1
  344. package/src/shared/logo-settings/store/logo-settings-store.test.ts +4 -4
  345. package/src/shared/logo-versions/LogoVersions.mixin.ts +0 -1
  346. package/src/shared/models.ts +0 -6
  347. package/src/shared/my-designs/MyDesigns.mixin.ts +0 -1
  348. package/src/shared/my-uploads/MyMedia.mixin.ts +0 -1
  349. package/src/shared/my-uploads/MyMediaSelectionItem.vue +1 -2
  350. package/src/shared/my-uploads/MyUploads.mixin.ts +0 -1
  351. package/src/shared/my-uploads/models.ts +2 -1
  352. package/src/shared/navigation-style-settings/components/navigation-style-settings/NavigationStyleSettings.mixin.ts +0 -1
  353. package/src/shared/navigation-style-settings/components/navigation-style-settings/NavigationStyleSettings.vue +1 -1
  354. package/src/shared/page-settings/components/new-page-modal/NewPageModal.mixin.ts +3 -0
  355. package/src/shared/page-settings/components/page-settings/NestedDraggable.vue +1 -1
  356. package/src/shared/page-settings/components/page-settings/PageSettings.vue +2 -1
  357. package/src/shared/page-settings/components/page-settings-section-styles/HeaderDisplayStyle.vue +1 -1
  358. package/src/shared/page-settings/components/page-settings-section-styles/PageSettingsSectionStyles.mixin.ts +1 -1
  359. package/src/shared/page-settings/store/page-settings-store.test.ts +8 -4
  360. package/src/shared/publish-brand-page-with-state/PublishBrandPageModalWithState.mixin.ts +1 -0
  361. package/src/shared/shape-library/ShapeLibrary.vue +2 -2
  362. package/src/shared/style-settings/store/style-settings-store.ts +1 -1
  363. package/src/shared/template-settings/components/TemplatesSettings.mixin.ts +2 -2
  364. package/src/shared/template-settings/models.ts +0 -1
  365. package/src/shared/template-settings/store/template-settings-store.ts +18 -105
  366. package/src/shared/unsplash-library/UnsplashLibrary.vue +6 -2
  367. package/src/shared/video-library/VideoLibrary.vue +1 -1
  368. package/lib/src/brand-page/components/banner-section/BannerSection.mixin.d.ts +0 -103
  369. package/lib/src/brand-page/components/banner-section/BannerSection.mixin.js +0 -178
  370. package/src/brand-page/components/banner-section/BannerSection.mixin.ts +0 -210
  371. package/src/brand-page-maker/components/template-preview/TemplatePreviewAiBadge.vue +0 -12
@@ -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,7 +8,6 @@ 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'],
12
11
  setup() {
13
12
  const userStore = useBrandPageMakerUserStore();
14
13
  const brandPageMakerStore = useBrandPageMakerStore();
@@ -1,4 +1,3 @@
1
- <!-- eslint-disable vue/no-v-html -->
2
1
  <template>
3
2
  <div class="tw-mb-4" :class="containerClass">
4
3
  <div class="tw-flex" :class="containerClass">
@@ -47,6 +47,7 @@ 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';
50
51
  import { UPGRADE_CTA_LOCATIONS } from '../../composables/useEventTracker';
51
52
  import { commonTr } from '@src/composables/useTranslate';
52
53
  import { useSnapshot } from '../../../composables/useSnapshot';
@@ -69,8 +70,6 @@ export interface BrandPageMakerViewModel {
69
70
  initialCategories: InitialCategories;
70
71
  personalisation?: UserPersonalisationContent[];
71
72
  isPersonalisationEnabled?: boolean;
72
- userPromptContentKey?: string;
73
- showAiTemplatesTab?: boolean;
74
73
  brandPageType?: BrandPageType;
75
74
  businessName?: string;
76
75
  industry?: string;
@@ -86,7 +85,6 @@ export default defineComponent({
86
85
  required: true,
87
86
  },
88
87
  },
89
- emits: ['create-team-cards'],
90
88
  setup() {
91
89
  const brandPageMakerStore = useBrandPageMakerStore();
92
90
  const sideBarStore = useUiSideBarStore();
@@ -229,8 +227,6 @@ export default defineComponent({
229
227
  personalisationData: this.viewModel.personalisation,
230
228
  isPersonalisationEnabled:
231
229
  this.viewModel.isPersonalisationEnabled || false,
232
- userPromptContentKey: this.viewModel.userPromptContentKey,
233
- showAiTemplatesTab: this.viewModel.showAiTemplatesTab || false,
234
230
  brandPageType: this.viewModel.brandPageType,
235
231
  businessName: this.viewModel.businessName,
236
232
  industry: this.viewModel.industry,
@@ -270,7 +270,6 @@ const InitialiseMakerStores = (options: {
270
270
  isContextualUpgradeModalVisible: false,
271
271
  gettyVideos: [],
272
272
  templateSearchTerm: undefined,
273
- aiTemplateKeywords: undefined,
274
273
  });
275
274
 
276
275
  userStore.setUserState({
@@ -5,9 +5,12 @@ 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 { createMemoryHistory, createRouter } from 'vue-router';
8
+ import VueRouter, { createMemoryHistory, createRouter } from 'vue-router';
9
9
  import { hexToRGB } from '@utils/helpers';
10
- import { BRAND_PAGE_TEMPLATE_BP_909 } from '../../../__fixtures__';
10
+ import {
11
+ BRAND_PAGE_TEMPLATE_BP_909,
12
+ LOGO_IMAGE_URL,
13
+ } from '../../../__fixtures__';
11
14
  import { setupStoryPinia } from './__fixtures__/store-fixture';
12
15
  import { useUiLogoSettingsStore } from '@shared/logo-settings/store';
13
16
  import { useUiStore } from '@brand-page-maker/stores';
@@ -13,8 +13,13 @@ import type {
13
13
  TextContent,
14
14
  UserPersonalisation,
15
15
  ImageContent,
16
+ ImageGalleryContent,
16
17
  ProfileContent,
18
+ WebsiteContent,
19
+ ImagesSectionContent,
17
20
  UserPersonalisationContent,
21
+ EmailContent,
22
+ PhoneContent,
18
23
  ShapesSectionContent,
19
24
  BannerSectionContent,
20
25
  } from '@brand-page';
@@ -56,6 +56,14 @@ 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
+
59
67
  export const brandPageCreateCartResult: CreateCartResult<StripePaymentIntent> =
60
68
  {
61
69
  cartId: faker.datatype.uuid(),
@@ -1,3 +1,5 @@
1
+ import type { PageModel } from '@brand-page';
2
+
1
3
  export const BRAND_SITE_TEMPLATE_SAMPLE: any[] = [
2
4
  {
3
5
  title: 'HOME',
@@ -1,4 +1,3 @@
1
- <!-- eslint-disable vue/no-v-html -->
2
1
  <template>
3
2
  <Page
4
3
  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() {
133
+ onDesignSelected(image: UserMediaItemWithDimensions) {
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 } from 'vue';
71
+ import { ref, type PropType } 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,6 +106,7 @@ const emit = defineEmits<{
106
106
  const pickerIdRef = ref<HTMLElement>();
107
107
 
108
108
  const popupTop = ref(0);
109
+ const popupLeft = ref(0);
109
110
 
110
111
  const vClickOutside = ClickOutside.directive;
111
112
 
@@ -23,7 +23,6 @@ export default defineComponent({
23
23
  default: COLOR_PICKER_MODE.SOLID,
24
24
  },
25
25
  },
26
- emits: ['update:modelValue'],
27
26
  data() {
28
27
  return {
29
28
  colorPickerModes: COLOR_PICKER_MODE_OPTIONS,
@@ -27,7 +27,6 @@ export default defineComponent({
27
27
  default: 5,
28
28
  },
29
29
  },
30
- emits: ['update:activeHandlerId'],
31
30
  data() {
32
31
  return {
33
32
  internalActiveHandlerId: 0,
@@ -18,7 +18,6 @@ export default defineComponent({
18
18
  default: false,
19
19
  },
20
20
  },
21
- emits: ['on-selected', 'on-position-changed'],
22
21
  data() {
23
22
  return {
24
23
  startPosInPixel,
@@ -12,7 +12,6 @@ export default defineComponent({
12
12
  default: GRADIENT_COLOR_TYPE.LINEAR,
13
13
  },
14
14
  },
15
- emits: ['update:modelValue'],
16
15
  data() {
17
16
  return {
18
17
  isLinear: true,
@@ -18,7 +18,6 @@ export default defineComponent({
18
18
  default: false,
19
19
  },
20
20
  },
21
- emits: ['toggle-should-play'],
22
21
  data() {
23
22
  return {
24
23
  visible: false,
@@ -40,7 +40,6 @@ export default defineComponent({
40
40
  default: false,
41
41
  },
42
42
  },
43
- emits: ['create-team-cards'],
44
43
  methods: {
45
44
  saveBrandPage() {
46
45
  this.$emit(EVENTS.Save);
@@ -552,7 +552,6 @@ const availableTextFontFamilyOptions = computed(
552
552
  () => styleSettingsStore.availableTextFontFamilyOptions,
553
553
  );
554
554
 
555
- // eslint-disable-next-line vue/require-prop-types
556
555
  const model = defineModel();
557
556
  const emit = defineEmits([
558
557
  'focus',
@@ -710,8 +709,7 @@ watch(
710
709
  () =>
711
710
  contentSettingStore.getItem(props.rawId)?.settings?.content?.textItemsStyle
712
711
  ?.color,
713
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
714
- (_newColor) => {
712
+ (newColor) => {
715
713
  if (isAdmin.value) {
716
714
  if (props.textItemIndex !== undefined && selectedGlobalTextStyles) {
717
715
  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 } from 'vue';
95
+ import { computed, reactive, nextTick, useTemplateRef } from 'vue';
96
96
  import {
97
97
  SENSITIVE_CONTENT_TYPES,
98
98
  type SensitiveContent,
@@ -109,6 +109,9 @@ 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
+
112
115
  const data = reactive({
113
116
  sensitiveSettings: [
114
117
  {
@@ -59,7 +59,7 @@ interface Props {
59
59
  isCustomDomainRequestFailed?: boolean;
60
60
  }
61
61
 
62
- defineProps<Props>();
62
+ const props = 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,7 +41,6 @@ export default defineComponent({
41
41
  default: undefined,
42
42
  },
43
43
  },
44
- emits: ['update-settings'],
45
44
  setup() {
46
45
  const brandPageMakerStore = useBrandPageMakerStore();
47
46
  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 { commonTr, seoSettingsTr } from '@src/composables/useTranslate';
109
+ import { tr, commonTr, seoSettingsTr } from '@src/composables/useTranslate';
110
110
 
111
111
  export default {
112
112
  components: {
@@ -9,6 +9,7 @@ import {
9
9
  useBrandPageContainerStore,
10
10
  useBrandPageMakerStore,
11
11
  useLocalisedRouteStore,
12
+ useBrandPageMakerUserStore,
12
13
  } from '@brand-page-maker/stores';
13
14
  import { defaultUSDCurrency } from '@brand-page-maker/constants/currency-constants';
14
15
  import { validateCustomDomainName } from '@brand-page-maker/utils';
@@ -393,6 +393,7 @@ 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';
396
397
  import UseExistingDomainModal from './UseExistingDomainModal.vue';
397
398
  import { commonTr, seoSettingsTr } from '@src/composables/useTranslate';
398
399
 
@@ -178,7 +178,11 @@ import {
178
178
  Loader,
179
179
  } from '@designcrowd/fe-shared-lib';
180
180
  import UseExistingDomainModalMixin from './UseExistingDomainModal.mixin.ts';
181
- import { commonTr, existingDomainModalTr } from '@src/composables/useTranslate';
181
+ import {
182
+ tr,
183
+ commonTr,
184
+ existingDomainModalTr,
185
+ } from '@src/composables/useTranslate';
182
186
 
183
187
  export default {
184
188
  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
- defineEmits(['update:modelValue']);
175
+ const emit = 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
- defineEmits(['on-close', 'on-save']);
28
+ const emit = 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 { Loader, TextInput } from '@designcrowd/fe-shared-lib';
58
+ import { Button, 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,7 +15,10 @@ import {
15
15
  getBrandPageViewModelFromBrandPageModel,
16
16
  } from '@brand-page/utils';
17
17
  import { STYLE_THEME_KEYS } from '@brand-page/constants';
18
- import type { TemplateSettingsTemplate } from '@shared/template-settings/models';
18
+ import {
19
+ TEMPLATE_TABS,
20
+ type TemplateSettingsTemplate,
21
+ } from '@shared/template-settings/models';
19
22
  import type { DebounceHandle } from 'lodash.debounce';
20
23
  import debounce from 'lodash.debounce';
21
24
  import { MOBILE_HEIGHT, MOBILE_WIDTH } from '@brand-page-maker/constants';
@@ -71,6 +74,7 @@ export default defineComponent({
71
74
  isBrandSite: computed(
72
75
  () => brandPageMakerStore.brandPageType === BRAND_PAGE_TYPES.brandSite,
73
76
  ),
77
+ selectedTab: computed(() => templateSettingsStore.selectedTab.key),
74
78
  renderAsImage: computed(() => templateSettingsStore.renderAsImage),
75
79
  brandPageMakerUserStore,
76
80
  brandPageContainerStore,
@@ -237,28 +241,10 @@ export default defineComponent({
237
241
  return '';
238
242
  }
239
243
 
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
- }
244
+ if (this.selectedTab === TEMPLATE_TABS.AI && this.template.contentKey) {
245
+ if (this.userToken) {
246
+ previewImageUrl += `&contentKey=${this.template.contentKey}&userToken=${this.userToken}`;
258
247
  } 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).
262
248
  previewImageUrl += `&userPromptContentKey=${this.template.contentKey}`;
263
249
  }
264
250
  }
@@ -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 tw-relative tw-isolate"
5
+ class="template-preview-container hover:!tw-shadow-[0_0_0_3px] hover:!tw-shadow-info-500 tw-overflow-hidden"
6
6
  :style="containerStyle"
7
7
  :class="{
8
8
  '!tw-shadow-[0_0_0_3px] !tw-shadow-info-500':
@@ -55,10 +55,17 @@
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 -->
58
67
  </div>
59
68
  </div>
60
- <!-- AI badge outside scaled container so it renders at natural size -->
61
- <TemplatePreviewAiBadge v-if="isPersonalisable" />
62
69
  </div>
63
70
  </template>
64
71
  <script>
@@ -66,13 +73,11 @@ import { defineComponent } from 'vue';
66
73
  import TemplatePreviewMixin from './TemplatePreview.mixin.ts';
67
74
  import Page from '@brand-page/components/page/Page.vue';
68
75
  import { Loader } from '@designcrowd/fe-shared-lib';
69
- import TemplatePreviewAiBadge from './TemplatePreviewAiBadge.vue';
70
76
 
71
77
  export default defineComponent({
72
78
  components: {
73
79
  Page,
74
80
  Loader,
75
- TemplatePreviewAiBadge,
76
81
  },
77
82
  mixins: [TemplatePreviewMixin],
78
83
  setup(props, context) {
@@ -28,5 +28,5 @@ interface Props {
28
28
  iconColor?: string;
29
29
  }
30
30
 
31
- defineProps<Props>();
31
+ const props = defineProps<Props>();
32
32
  </script>
@@ -1,4 +1,4 @@
1
- import { ref, computed, watch, nextTick } from 'vue';
1
+ import { ref, computed, watch, nextTick, onUnmounted } 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,10 +15,8 @@ export const ButtonStyleConfigOptions = [
15
15
 
16
16
  export type ButtonStyleConfigOption = (typeof ButtonStyleConfigOptions)[number];
17
17
 
18
- export interface ButtonStyleConfig extends Omit<
19
- ButtonStyles,
20
- 'style' | 'template' | 'selectedButtonStyleId'
21
- > {
18
+ export interface ButtonStyleConfig
19
+ extends Omit<ButtonStyles, 'style' | 'template' | 'selectedButtonStyleId'> {
22
20
  readonly id: string;
23
21
  readonly hasShadow: boolean;
24
22
  readonly hasSoftShadow?: boolean;
@@ -156,10 +156,8 @@ export interface ContentSettingsField<TContent> {
156
156
  styleName?: string;
157
157
  }
158
158
 
159
- export interface ContentSettingsMultiField<TContent, TField> extends Omit<
160
- ContentSettingsField<TContent>,
161
- 'type' | 'role'
162
- > {
159
+ export interface ContentSettingsMultiField<TContent, TField>
160
+ extends Omit<ContentSettingsField<TContent>, 'type' | 'role'> {
163
161
  type: ItemMultiFieldType;
164
162
  role: 'multi';
165
163
  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 { commonTr, modelsTr } from '@src/composables/useTranslate';
17
+ import { tr, commonTr, modelsTr } from '@src/composables/useTranslate';
18
18
 
19
19
  export const NavigationStyleConfigOptions = {
20
20
  defaultBorderColor: 'defaultBorderColor',
@@ -46,10 +46,11 @@ export const NAVIGATION_STYLE_CONFIG_OPTION_TITLES = (): Record<
46
46
  subNavBackgroundColor: modelsTr('subNavBackgroundColor'),
47
47
  });
48
48
 
49
- export interface NavigationStyleConfig extends Omit<
50
- NavigationDesktop | NavigationMobile,
51
- 'isLogoVisible' | 'hamburgerMenuStyle' | 'viewport'
52
- > {
49
+ export interface NavigationStyleConfig
50
+ extends Omit<
51
+ NavigationDesktop | NavigationMobile,
52
+ 'isLogoVisible' | 'hamburgerMenuStyle' | 'viewport'
53
+ > {
53
54
  buttonGroupOption: ButtonGroupOption;
54
55
  options: NavigationStyleConfigOption[];
55
56
  }
@@ -2,6 +2,7 @@ import {
2
2
  EMPTY_LOGO_IMAGE_MODEL,
3
3
  type FabricLogoTheme,
4
4
  type LogoContent,
5
+ type LogoImageModel,
5
6
  type LogoTemplateImageModel,
6
7
  type LogoTheme,
7
8
  } from '@brand-page';