@designcrowd/library.brand-page 6.0.5 → 6.0.6-ast-bugs

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 (395) hide show
  1. package/lib/src/{CreatedOnBrandCrowd-de-de-DhzvKlTS.js → CreatedOnBrandCrowd-de-de-SHCspMwS.js} +3 -3
  2. package/lib/src/{CreatedOnBrandCrowd-en-us-DKH4lmNV.js → CreatedOnBrandCrowd-en-us-C6lITAAT.js} +3 -3
  3. package/lib/src/{CreatedOnBrandCrowd-es-es-RloPCLuV.js → CreatedOnBrandCrowd-es-es-Uh69c4vZ.js} +3 -3
  4. package/lib/src/{CreatedOnBrandCrowd-fr-fr-Cu9e2H0K.js → CreatedOnBrandCrowd-fr-ca-Bb0rp7BV.js} +3 -3
  5. package/lib/src/{CreatedOnBrandCrowd-fr-ca-Cu9e2H0K.js → CreatedOnBrandCrowd-fr-fr-Bb0rp7BV.js} +3 -3
  6. package/lib/src/{CreatedOnBrandCrowd-pt-pt-CiCnjxBZ.js → CreatedOnBrandCrowd-pt-br-DsrQHcjs.js} +3 -3
  7. package/lib/src/{CreatedOnBrandCrowd-pt-br-CiCnjxBZ.js → CreatedOnBrandCrowd-pt-pt-DsrQHcjs.js} +3 -3
  8. package/lib/src/{CreatedOnDcom-de-de-CwlnedFV.js → CreatedOnDcom-de-de-BshZYzSp.js} +3 -3
  9. package/lib/src/{CreatedOnDcom-en-us-DFHex61v.js → CreatedOnDcom-en-us-CLu8mKUW.js} +3 -3
  10. package/lib/src/{CreatedOnDcom-es-es-BTxH6I4V.js → CreatedOnDcom-es-es-BZYhkONd.js} +3 -3
  11. package/lib/src/{CreatedOnDcom-fr-ca-BVw0KYxu.js → CreatedOnDcom-fr-ca-CIaBEp_9.js} +3 -3
  12. package/lib/src/{CreatedOnDcom-fr-fr-DaqNz1Er.js → CreatedOnDcom-fr-fr-dyF7hioJ.js} +3 -3
  13. package/lib/src/{CreatedOnDcom-pt-br-B4KsMI8W.js → CreatedOnDcom-pt-br-CUHjk2du.js} +3 -3
  14. package/lib/src/{CreatedOnDcom-pt-pt-CWoHEtOZ.js → CreatedOnDcom-pt-pt-CWDvQidv.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 +1 -2
  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 +11 -5
  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 -13
  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-background-settings/ShapePositionSlider.mixin.d.ts +1 -1
  37. package/lib/src/brand-page-maker/components/admin-logo-settings/AdminLogoSettings.mixin.d.ts +3 -3
  38. package/lib/src/brand-page-maker/components/brand-page-maker/BrandPageMaker.mixin.d.ts +181 -170
  39. package/lib/src/brand-page-maker/components/brand-page-maker/BrandPageMaker.mixin.js +3 -0
  40. package/lib/src/brand-page-maker/components/brand-page-maker/BrandPageMaker.stories.js +1 -0
  41. package/lib/src/brand-page-maker/components/brand-page-maker/BrandPageMakerTemplateSettings.mixin.d.ts +12 -12
  42. package/lib/src/brand-page-maker/components/brand-page-maker/BrandPageMakerTemplateSettings.stories.js +2 -2
  43. package/lib/src/brand-page-maker/components/brand-page-maker/__fixtures__/brand-page-payment.js +0 -7
  44. package/lib/src/brand-page-maker/components/brandpage-maker-page/BrandPageMakerPage.mixin.d.ts +148 -149
  45. package/lib/src/brand-page-maker/components/brandpage-settings/ReplaceImageSettingsForBrandPageSettings.mixin.d.ts +21 -21
  46. package/lib/src/brand-page-maker/components/brandpage-settings/ReplaceImageSettingsForBrandPageSettings.mixin.js +1 -1
  47. package/lib/src/brand-page-maker/components/color-picker/components/ColorModeSelect.mixin.d.ts +4 -2
  48. package/lib/src/brand-page-maker/components/color-picker/components/ColorModeSelect.mixin.js +1 -0
  49. package/lib/src/brand-page-maker/components/color-picker/components/GradientColorSlider.mixin.d.ts +4 -2
  50. package/lib/src/brand-page-maker/components/color-picker/components/GradientColorSlider.mixin.js +1 -0
  51. package/lib/src/brand-page-maker/components/color-picker/components/GradientColorSliderHandler.mixin.d.ts +5 -2
  52. package/lib/src/brand-page-maker/components/color-picker/components/GradientColorSliderHandler.mixin.js +1 -0
  53. package/lib/src/brand-page-maker/components/color-picker/components/GradientTypeSelector.mixin.d.ts +4 -2
  54. package/lib/src/brand-page-maker/components/color-picker/components/GradientTypeSelector.mixin.js +1 -0
  55. package/lib/src/brand-page-maker/components/device/Device.mixin.d.ts +4 -2
  56. package/lib/src/brand-page-maker/components/device/Device.mixin.js +1 -0
  57. package/lib/src/brand-page-maker/components/navigation/Navigation.mixin.d.ts +4 -2
  58. package/lib/src/brand-page-maker/components/navigation/Navigation.mixin.js +1 -0
  59. package/lib/src/brand-page-maker/components/preview/Preview.mixin.d.ts +3 -3
  60. package/lib/src/brand-page-maker/components/quick-link-bar/QuickLinkBar.mixin.d.ts +11 -11
  61. package/lib/src/brand-page-maker/components/seo-settings/SeoPageSettings.mixin.d.ts +27 -25
  62. package/lib/src/brand-page-maker/components/seo-settings/SeoPageSettings.mixin.js +1 -0
  63. package/lib/src/brand-page-maker/components/seo-settings/UrlSettings.mixin.d.ts +27 -27
  64. package/lib/src/brand-page-maker/components/seo-settings/UrlSettings.mixin.js +1 -1
  65. package/lib/src/brand-page-maker/components/seo-settings/UseExistingDomainModal.mixin.d.ts +17 -12
  66. package/lib/src/brand-page-maker/components/social-share/SocialShare.mixin.d.ts +12 -12
  67. package/lib/src/brand-page-maker/components/template-preview/TemplatePreview.mixin.d.ts +30 -32
  68. package/lib/src/brand-page-maker/components/template-preview/TemplatePreview.mixin.js +16 -5
  69. package/lib/src/brand-page-maker/components/upgrade-to-premium-button/UpgradeToPremiumButton.mixin.d.ts +11 -11
  70. package/lib/src/brand-page-maker/composables/ai-chat/types.d.ts +3 -0
  71. package/lib/src/brand-page-maker/composables/ai-chat/ui-actions.d.ts +29 -0
  72. package/lib/src/brand-page-maker/composables/ai-chat/ui-actions.js +32 -0
  73. package/lib/src/brand-page-maker/composables/ai-chat/useAiWebsiteBuilderChat.js +204 -177
  74. package/lib/src/brand-page-maker/composables/rich-text-editor/useRichTextEditor.d.ts +1 -1
  75. package/lib/src/brand-page-maker/composables/rich-text-editor/useRichTextEditor.js +6 -6
  76. package/lib/src/brand-page-maker/composables/useEventTracker.d.ts +3 -2
  77. package/lib/src/brand-page-maker/composables/useEventTracker.js +1 -0
  78. package/lib/src/brand-page-maker/constants/config-settings-constant.d.ts +6 -6
  79. package/lib/src/brand-page-maker/constants/config-settings-constant.js +3 -3
  80. package/lib/src/brand-page-maker/convertors/text-image-display-style.convertor.d.ts +1 -1
  81. package/lib/src/brand-page-maker/convertors/text-image-display-style.convertor.js +1 -1
  82. package/lib/src/brand-page-maker/models/content-settings.d.ts +1 -1
  83. package/lib/src/brand-page-maker/models/navigation-style-configs.js +1 -1
  84. package/lib/src/brand-page-maker/routing/brand-page-maker-router.d.ts +1 -2
  85. package/lib/src/brand-page-maker/stores/ai-checkpoint/ai-checkpoint-store.d.ts +366 -378
  86. package/lib/src/brand-page-maker/stores/brandpage-container/brand-page-container-store.d.ts +5 -4
  87. package/lib/src/brand-page-maker/stores/brandpage-container/brand-page-container-store.js +8 -5
  88. package/lib/src/brand-page-maker/stores/brandpage-maker/brandpage-maker-store.d.ts +3 -1
  89. package/lib/src/brand-page-maker/stores/brandpage-maker/brandpage-maker-store.js +7 -3
  90. package/lib/src/brand-page-maker/stores/history/history-store.d.ts +15 -15
  91. package/lib/src/brand-page-maker/stores/ui/ui-store.d.ts +6 -0
  92. package/lib/src/brand-page-maker/stores/ui/ui-store.js +8 -0
  93. package/lib/src/brand-page-maker/utils/content-settings.util.js +1 -1
  94. package/lib/src/brand-page-maker/utils/rich-text-editor.util.d.ts +1 -1
  95. package/lib/src/brand-page-maker/utils/rich-text-editor.util.js +4 -4
  96. package/lib/src/clients/ai-assistant-client.d.ts +7 -0
  97. package/lib/src/clients/brand-page-client.d.ts +16 -15
  98. package/lib/src/clients/design-template-client.d.ts +3 -0
  99. package/lib/src/clients/media-client.d.ts +2 -2
  100. package/lib/src/clients/models.d.ts +2 -0
  101. package/lib/src/composables/useSnapshot.js +18 -18
  102. package/lib/src/css/library.brand-page-brandCrowd.min.css +371 -344
  103. package/lib/src/css/library.brand-page-brandPage.min.css +649 -344
  104. package/lib/src/css/library.brand-page-designCom.min.css +371 -344
  105. package/lib/src/css/library.brand-page-preview.min.css +627 -344
  106. package/lib/src/index.d.ts +4 -0
  107. package/lib/src/index.mjs +107 -104
  108. package/lib/src/{lib-BPI8E2Ui.js → lib-COw-Rz05.js} +37005 -33761
  109. package/lib/src/lib.js +10 -0
  110. package/lib/src/metadata-builder/builders/footer-builder.js +105 -62
  111. package/lib/src/metadata-builder/builders/section-builders/image-gallery-builder.js +68 -57
  112. package/lib/src/metadata-builder/builders/section-builders/images-section-builder.js +93 -58
  113. package/lib/src/metadata-builder/builders/section-builders/shapes-section-builder.js +99 -66
  114. package/lib/src/metadata-builder/builders/section-builders/social-links-builder.js +17 -57
  115. package/lib/src/metadata-builder/builders/section-builders/testimonial-section-builder.js +85 -51
  116. package/lib/src/metadata-builder/builders/section-builders/text-section-builder.js +74 -49
  117. package/lib/src/metadata-builder/builders/section-field-utils.d.ts +7 -0
  118. package/lib/src/metadata-builder/builders/section-field-utils.js +1 -1
  119. package/lib/src/metadata-builder/builders/shape-color-utils.js +1 -1
  120. package/lib/src/metadata-builder/parsers/ai-toolcall-parser.d.ts +7 -16
  121. package/lib/src/metadata-builder/parsers/section-tool-arguments.d.ts +48 -66
  122. package/lib/src/plugins/google-maps-plugin/google-maps-plugin.d.ts +1 -1
  123. package/lib/src/plugins/google-maps-plugin/google-maps-plugin.js +8 -8
  124. package/lib/src/shared/background-settings/components/background-shapes/BackgroundShapeSettings.mixin.d.ts +13 -13
  125. package/lib/src/shared/background-settings/store/background-settings-store.d.ts +3 -3
  126. package/lib/src/shared/color-picker/components/ColorPicker.mixin.d.ts +4 -2
  127. package/lib/src/shared/color-picker/components/ColorPicker.mixin.js +2 -2
  128. package/lib/src/shared/color-picker/components/ColorPickerSwatch.mixin.d.ts +4 -2
  129. package/lib/src/shared/color-picker/components/ColorPickerSwatch.mixin.js +1 -0
  130. package/lib/src/shared/confirm-modal/ConfirmModal.mixin.d.ts +5 -2
  131. package/lib/src/shared/confirm-modal/ConfirmModal.mixin.js +1 -0
  132. package/lib/src/shared/content-settings/components/GenericTextInput.mixin.d.ts +0 -1
  133. package/lib/src/shared/content-settings/components/content-settings/ContentSettings.mixin.d.ts +131 -129
  134. package/lib/src/shared/content-settings/components/content-settings/ContentSettings.mixin.js +2 -1
  135. package/lib/src/shared/content-settings/components/content-settings/ReplaceImageSettingsForContent.mixin.d.ts +111 -110
  136. package/lib/src/shared/content-settings/components/content-settings-item/ContentSettingsItem.mixin.d.ts +84 -81
  137. package/lib/src/shared/content-settings/components/content-settings-item/ContentSettingsItem.mixin.js +5 -0
  138. package/lib/src/shared/content-settings/components/content-settings-item/ContentSettingsItemField.mixin.d.ts +117 -109
  139. package/lib/src/shared/content-settings/components/content-settings-item/ContentSettingsItemField.mixin.js +1 -14
  140. package/lib/src/shared/content-settings/components/email-field/EmailField.mixin.d.ts +0 -1
  141. package/lib/src/shared/content-settings/components/focused-content-item-settings/FocusedContentItemSettings.mixin.d.ts +72 -70
  142. package/lib/src/shared/content-settings/components/focused-content-item-settings/FocusedContentItemSettings.mixin.js +4 -3
  143. package/lib/src/shared/content-settings/components/form-fields-field/FormFieldsField.mixin.d.ts +4 -4
  144. package/lib/src/shared/content-settings/components/icon-library/IconLibrary.mixin.d.ts +3 -1
  145. package/lib/src/shared/content-settings/components/icon-library/IconLibrary.mixin.js +1 -0
  146. package/lib/src/shared/content-settings/components/images-field/ImagesField.mixin.d.ts +2 -2
  147. package/lib/src/shared/content-settings/components/items-field/ItemsField.mixin.d.ts +4 -3
  148. package/lib/src/shared/content-settings/components/items-field/ItemsField.mixin.js +1 -1
  149. package/lib/src/shared/content-settings/components/payment-config-field/PaymentConfigField.mixin.d.ts +40 -40
  150. package/lib/src/shared/content-settings/components/payment-config-field/PaymentConfigOptionField.mixin.d.ts +5 -6
  151. package/lib/src/shared/content-settings/components/shape-field/ShapeField.mixin.d.ts +0 -1
  152. package/lib/src/shared/content-settings/components/slider-field/SliderField.mixin.d.ts +2 -2
  153. package/lib/src/shared/content-settings/components/tel-field/TelField.mixin.d.ts +0 -1
  154. package/lib/src/shared/content-settings/components/testimonial-items-field/TestimonialItemsField.mixin.d.ts +1 -2
  155. package/lib/src/shared/content-settings/components/text-field/TextField.mixin.d.ts +0 -1
  156. package/lib/src/shared/content-settings/components/text-items-field/TextItemsField.mixin.d.ts +1 -2
  157. package/lib/src/shared/content-settings/components/text-items-field/TextItemsField.mixin.js +1 -1
  158. package/lib/src/shared/content-settings/components/text-style-field/TextStyleField.mixin.d.ts +28 -28
  159. package/lib/src/shared/content-settings/components/textarea-field/TextareaField.mixin.d.ts +0 -1
  160. package/lib/src/shared/content-settings/components/toggle-field/ToggleField.mixin.d.ts +2 -2
  161. package/lib/src/shared/content-settings/components/url-field/UrlField.mixin.d.ts +0 -1
  162. package/lib/src/shared/content-settings/components/youtube-video-field/YoutubeVideoField.mixin.d.ts +0 -1
  163. package/lib/src/shared/content-settings/store/content-settings-store.d.ts +39 -39
  164. package/lib/src/shared/content-settings/utils.js +0 -1
  165. package/lib/src/shared/font-family-selector/FontFamilySelector.mixin.d.ts +6 -4
  166. package/lib/src/shared/font-family-selector/FontFamilySelector.mixin.js +1 -0
  167. package/lib/src/shared/image-gallery-style-settings/ImageGalleryStyleSettings.mixin.d.ts +4 -2
  168. package/lib/src/shared/image-gallery-style-settings/ImageGalleryStyleSettings.mixin.js +1 -0
  169. package/lib/src/shared/logo-settings/components/EditLogoSettings.mixin.d.ts +29 -21
  170. package/lib/src/shared/logo-settings/components/EditLogoSettings.mixin.js +1 -1
  171. package/lib/src/shared/logo-settings/components/LogoSettings.mixin.d.ts +50 -51
  172. package/lib/src/shared/logo-settings/components/LogoSettingsHeader.mixin.d.ts +6 -4
  173. package/lib/src/shared/logo-settings/components/LogoSettingsHeader.mixin.js +1 -0
  174. package/lib/src/shared/logo-settings/store/editable-logo-store.js +1 -1
  175. package/lib/src/shared/logo-settings/store/logo-settings-store.d.ts +1 -1
  176. package/lib/src/shared/logo-versions/LogoVersions.mixin.d.ts +13 -5
  177. package/lib/src/shared/logo-versions/LogoVersions.mixin.js +1 -0
  178. package/lib/src/shared/models.d.ts +2 -0
  179. package/lib/src/shared/my-designs/MyDesigns.mixin.d.ts +14 -6
  180. package/lib/src/shared/my-designs/MyDesigns.mixin.js +1 -0
  181. package/lib/src/shared/my-uploads/MyMedia.mixin.d.ts +14 -5
  182. package/lib/src/shared/my-uploads/MyMedia.mixin.js +1 -0
  183. package/lib/src/shared/my-uploads/MyUploads.mixin.d.ts +14 -5
  184. package/lib/src/shared/my-uploads/MyUploads.mixin.js +1 -0
  185. package/lib/src/shared/navigation-style-settings/components/navigation-style-settings/NavigationStyleSettings.mixin.d.ts +5 -3
  186. package/lib/src/shared/navigation-style-settings/components/navigation-style-settings/NavigationStyleSettings.mixin.js +1 -0
  187. package/lib/src/shared/navigation-style-settings/store/index.d.ts +2 -2
  188. package/lib/src/shared/page-navigation/store/page-navigation-store.d.ts +2 -2
  189. package/lib/src/shared/page-settings/components/new-page-modal/NewPageModal.mixin.d.ts +27 -28
  190. package/lib/src/shared/page-settings/components/new-page-modal/NewPageModal.mixin.js +0 -2
  191. package/lib/src/shared/page-settings/components/page-settings/PageSettings.mixin.d.ts +188 -179
  192. package/lib/src/shared/page-settings/components/page-settings-section-styles/PageSettingsSectionStyles.mixin.d.ts +181 -177
  193. package/lib/src/shared/page-settings/components/page-settings-section-styles/PageSettingsSectionStyles.mixin.js +1 -1
  194. package/lib/src/shared/page-settings/store/page-settings-store.d.ts +9 -9
  195. package/lib/src/shared/publish-brand-page-with-state/PublishBrandPageModalWithState.mixin.d.ts +39 -39
  196. package/lib/src/shared/publish-brand-page-with-state/PublishBrandPageModalWithState.mixin.js +0 -1
  197. package/lib/src/shared/side-bar/components/SideBar.mixin.d.ts +18 -18
  198. package/lib/src/shared/side-bar/components/SideBarTabButton.mixin.d.ts +6 -6
  199. package/lib/src/shared/style-settings/components/StyleSettings.mixin.d.ts +66 -60
  200. package/lib/src/shared/style-settings/store/style-settings-store.d.ts +1 -1
  201. package/lib/src/shared/style-settings/store/style-settings-store.js +1 -1
  202. package/lib/src/shared/template-settings/components/TemplatesSettings.mixin.d.ts +20 -450
  203. package/lib/src/shared/template-settings/components/TemplatesSettings.mixin.js +2 -2
  204. package/lib/src/shared/template-settings/models.d.ts +1 -0
  205. package/lib/src/shared/template-settings/store/template-settings-store.d.ts +4 -0
  206. package/lib/src/shared/template-settings/store/template-settings-store.js +79 -11
  207. package/lib/src/shared/unsplash-library/UnsplashLibrary.mixin.d.ts +9 -4
  208. package/lib/src/utils/build-asset-manifest.d.ts +4 -0
  209. package/lib/src/utils/build-asset-manifest.js +8 -0
  210. package/lib/src/utils/minify-brand-page-metadata.d.ts +0 -2
  211. package/lib/src/utils/minify-brand-page-metadata.js +2 -17
  212. package/package.json +60 -56
  213. package/src/brand-page/components/about-section/AboutSection.vue.test.ts +7 -5
  214. package/src/brand-page/components/banner-section/BannerSection.mixin.ts +210 -0
  215. package/src/brand-page/components/banner-section/BannerSection.vue +5 -1
  216. package/src/brand-page/components/brand-page-footer/BrandPageFooter.vue +1 -1
  217. package/src/brand-page/components/image/Image.mixin.ts +1 -1
  218. package/src/brand-page/components/image/Image.test.ts +1 -1
  219. package/src/brand-page/components/image-gallery/masonry/MasonryGallery.mixin.ts +1 -2
  220. package/src/brand-page/components/images-section/ImagesSection.vue +0 -1
  221. package/src/brand-page/components/logo/LogoRender.vue +188 -188
  222. package/src/brand-page/components/navigation/hamburger/HamburgerNavigation.mixin.ts +1 -0
  223. package/src/brand-page/components/navigation/navigation-side-menu/NavigationSideMenu.mixin.ts +25 -8
  224. package/src/brand-page/components/page-footer/PageFooter.vue +1 -0
  225. package/src/brand-page/components/page-header/HeaderLayout.vue +12 -6
  226. package/src/brand-page/components/page-header/PageHeader.vue +1 -0
  227. package/src/brand-page/components/shapes-section/ShapesSection.vue +1 -1
  228. package/src/brand-page/components/shop/CartModal.vue +1 -3
  229. package/src/brand-page/components/shop/FeaturedDisplay.vue +2 -2
  230. package/src/brand-page/components/shop/PaymentModal.vue +1 -5
  231. package/src/brand-page/components/shop/ProductDetailModal.vue +1 -1
  232. package/src/brand-page/components/shop/Shop.vue +1 -5
  233. package/src/brand-page/components/shop/TextDisplay.vue +1 -1
  234. package/src/brand-page/components/shop/ThumbnailDisplay.vue +2 -2
  235. package/src/brand-page/components/testimonial-section/TestimonialSection.vue +3 -3
  236. package/src/brand-page/components/text-wrapper/TextWrapper.vue +3 -1
  237. package/src/brand-page/constants/sections/footer-display.constants.ts +1 -1
  238. package/src/brand-page/models/index.ts +4 -12
  239. package/src/brand-page/models/payment.model.ts +2 -1
  240. package/src/brand-page/models/shop.model.ts +0 -2
  241. package/src/brand-page/models/user-personalisation.model.ts +1 -2
  242. package/src/brand-page/utils/__snapshots__/migration.util.test.ts.snap +3 -0
  243. package/src/brand-page/utils/__snapshots__/migration2.util.test.ts.snap +1 -0
  244. package/src/brand-page/utils/__snapshots__/model.util.test.ts.snap +2 -0
  245. package/src/brand-page/utils/migration/migration-01_1.ts +1 -1
  246. package/src/brand-page/utils/migration/migration-02.ts +0 -1
  247. package/src/brand-page/utils/migration/migration-03.ts +0 -1
  248. package/src/brand-page/utils/migration/migration-04.ts +0 -1
  249. package/src/brand-page/utils/migration/migration-05.ts +1 -5
  250. package/src/brand-page/utils/migration/migration-05_2.ts +1 -1
  251. package/src/brand-page/utils/migration/migration-08.test.ts +1 -1
  252. package/src/brand-page/utils/personalisation.util.test.ts +35 -0
  253. package/src/brand-page/utils/personalisation.util.ts +119 -23
  254. package/src/brand-page/view-models.ts +38 -56
  255. package/src/brand-page-maker/assessors/banner-section-description-visibility.assessor.ts +6 -6
  256. package/src/brand-page-maker/assessors/color-replacement-icon-visibility.assessor.ts +2 -2
  257. package/src/brand-page-maker/assessors/color-replacement-profile-visibility.assessor.ts +2 -2
  258. package/src/brand-page-maker/assessors/color-replacement-visibility.assessor.ts +2 -2
  259. package/src/brand-page-maker/assessors/contact-form-visibility.assessor.ts +14 -14
  260. package/src/brand-page-maker/components/action-bar/ActionBar.mixin.ts +1 -0
  261. package/src/brand-page-maker/components/ai-text-edit/AiActionButtons.vue +27 -12
  262. package/src/brand-page-maker/components/ai-text-edit/AiChatbox.vue +3 -2
  263. package/src/brand-page-maker/components/ai-text-edit/TextBubble.vue +8 -7
  264. package/src/brand-page-maker/components/ai-website-builder/AiWebsiteBuilder.vue +21 -1
  265. package/src/brand-page-maker/components/brand-page-maker/BrandPageMaker.mixin.ts +5 -1
  266. package/src/brand-page-maker/components/brand-page-maker/BrandPageMaker.stories.ts +1 -0
  267. package/src/brand-page-maker/components/brand-page-maker/BrandPageMakerTemplateSettings.stories.ts +2 -5
  268. package/src/brand-page-maker/components/brand-page-maker/__fixtures__/brand-page-examples.ts +0 -5
  269. package/src/brand-page-maker/components/brand-page-maker/__fixtures__/brand-page-payment.ts +0 -8
  270. package/src/brand-page-maker/components/brand-page-maker/__fixtures__/brand-site-template.examples.ts +0 -2
  271. package/src/brand-page-maker/components/brandpage-maker-page/BrandPageMakerPage.vue +1 -0
  272. package/src/brand-page-maker/components/brandpage-settings/ReplaceImageSettingsForBrandPageSettings.mixin.ts +1 -1
  273. package/src/brand-page-maker/components/color-palette/BpColorPalette.vue +1 -2
  274. package/src/brand-page-maker/components/color-picker/components/ColorModeSelect.mixin.ts +1 -0
  275. package/src/brand-page-maker/components/color-picker/components/GradientColorSlider.mixin.ts +1 -0
  276. package/src/brand-page-maker/components/color-picker/components/GradientColorSliderHandler.mixin.ts +1 -0
  277. package/src/brand-page-maker/components/color-picker/components/GradientTypeSelector.mixin.ts +1 -0
  278. package/src/brand-page-maker/components/device/Device.mixin.ts +1 -0
  279. package/src/brand-page-maker/components/navigation/Navigation.mixin.ts +1 -0
  280. package/src/brand-page-maker/components/rich-text-editor/RichTextEditor.vue +3 -1
  281. package/src/brand-page-maker/components/sensitive-content/SensitiveContent.vue +1 -4
  282. package/src/brand-page-maker/components/seo-settings/DeleteDomainModal.vue +1 -1
  283. package/src/brand-page-maker/components/seo-settings/SeoPageSettings.mixin.ts +1 -0
  284. package/src/brand-page-maker/components/seo-settings/SeoPageSettings.vue +1 -1
  285. package/src/brand-page-maker/components/seo-settings/UrlSettings.mixin.ts +0 -1
  286. package/src/brand-page-maker/components/seo-settings/UrlSettings.vue +0 -1
  287. package/src/brand-page-maker/components/seo-settings/UseExistingDomainModal.vue +1 -5
  288. package/src/brand-page-maker/components/shop/AddOrEditProductContainer.vue +1 -1
  289. package/src/brand-page-maker/components/shop/ReplaceImageSettingsForShop.vue +1 -1
  290. package/src/brand-page-maker/components/social-share/SocialShare.vue +1 -1
  291. package/src/brand-page-maker/components/template-preview/TemplatePreview.mixin.ts +22 -8
  292. package/src/brand-page-maker/components/template-preview/TemplatePreview.vue +5 -10
  293. package/src/brand-page-maker/components/template-preview/TemplatePreviewAiBadge.vue +12 -0
  294. package/src/brand-page-maker/components/video-play/VideoPlayButton.vue +1 -1
  295. package/src/brand-page-maker/composables/ai-chat/types.ts +6 -0
  296. package/src/brand-page-maker/composables/ai-chat/ui-actions.test.ts +80 -0
  297. package/src/brand-page-maker/composables/ai-chat/ui-actions.ts +58 -0
  298. package/src/brand-page-maker/composables/ai-chat/useAiWebsiteBuilderChat.ts +308 -262
  299. package/src/brand-page-maker/composables/rich-text-editor/useRichTextEditor.ts +6 -6
  300. package/src/brand-page-maker/composables/useEventTracker.ts +1 -0
  301. package/src/brand-page-maker/constants/config-settings-constant.ts +5 -5
  302. package/src/brand-page-maker/convertors/text-image-display-style.convertor.ts +1 -1
  303. package/src/brand-page-maker/models/button-styles-config.ts +4 -2
  304. package/src/brand-page-maker/models/content-settings-configs.ts +4 -2
  305. package/src/brand-page-maker/models/navigation-style-configs.ts +5 -6
  306. package/src/brand-page-maker/stores/admin-logo-settings/admin-logo-settings-store.ts +0 -1
  307. package/src/brand-page-maker/stores/brandpage-container/brand-page-container-store.ts +8 -5
  308. package/src/brand-page-maker/stores/brandpage-maker/brandpage-maker-store.test.ts +1 -3
  309. package/src/brand-page-maker/stores/brandpage-maker/brandpage-maker-store.ts +12 -4
  310. package/src/brand-page-maker/stores/ui/ui-store.ts +16 -0
  311. package/src/brand-page-maker/utils/content-settings.util.ts +1 -1
  312. package/src/brand-page-maker/utils/rich-text-editor.util.ts +4 -4
  313. package/src/clients/ai-assistant-client.ts +7 -0
  314. package/src/clients/design-template-client.ts +3 -0
  315. package/src/clients/models.ts +2 -0
  316. package/src/composables/useSnapshot.ts +19 -22
  317. package/src/lib.ts +12 -0
  318. package/src/metadata-builder/builders/footer-builder.test.ts +130 -229
  319. package/src/metadata-builder/builders/footer-builder.ts +155 -90
  320. package/src/metadata-builder/builders/section-builders/image-gallery-builder.ts +88 -62
  321. package/src/metadata-builder/builders/section-builders/images-section-builder.ts +129 -66
  322. package/src/metadata-builder/builders/section-builders/shapes-section-builder.ts +160 -105
  323. package/src/metadata-builder/builders/section-builders/social-links-builder.ts +20 -65
  324. package/src/metadata-builder/builders/section-builders/testimonial-section-builder.ts +146 -83
  325. package/src/metadata-builder/builders/section-builders/text-section-builder.ts +122 -70
  326. package/src/metadata-builder/builders/section-field-utils.ts +1 -1
  327. package/src/metadata-builder/builders/shape-color-utils.ts +2 -2
  328. package/src/metadata-builder/parsers/ai-toolcall-parser.ts +7 -16
  329. package/src/metadata-builder/parsers/section-tool-arguments.ts +48 -66
  330. package/src/plugins/google-maps-plugin/google-maps-plugin.ts +8 -8
  331. package/src/shared/background-settings/components/BackgroundSettings.vue +1 -1
  332. package/src/shared/background-settings/components/background-color/BackgroundColorSettings.vue +1 -1
  333. package/src/shared/color-picker/components/ColorPicker.mixin.ts +2 -7
  334. package/src/shared/color-picker/components/ColorPickerSwatch.mixin.ts +1 -0
  335. package/src/shared/common/NumberInput.vue +1 -0
  336. package/src/shared/common/SideBarSettingsHeader.vue +2 -2
  337. package/src/shared/confirm-modal/ConfirmModal.mixin.ts +1 -0
  338. package/src/shared/content-settings/components/booking-url-field/BookingUrlField.vue +1 -0
  339. package/src/shared/content-settings/components/button-configuration-field/ButtonConfigurationField.vue +1 -0
  340. package/src/shared/content-settings/components/color-field/ColorField.vue +3 -10
  341. package/src/shared/content-settings/components/content-settings/ContentSettings.mixin.ts +1 -1
  342. package/src/shared/content-settings/components/content-settings/ContentSettingsLockedButton.vue +1 -0
  343. package/src/shared/content-settings/components/content-settings-item/ContentSettingsItem.mixin.ts +5 -0
  344. package/src/shared/content-settings/components/content-settings-item/ContentSettingsItemField.mixin.ts +1 -14
  345. package/src/shared/content-settings/components/focused-content-item-settings/FocusedContentItemSettings.mixin.ts +4 -6
  346. package/src/shared/content-settings/components/icon-library/IconLibrary.mixin.ts +1 -0
  347. package/src/shared/content-settings/components/items-field/ItemsField.mixin.ts +1 -1
  348. package/src/shared/content-settings/components/logo-selection-field/LogoSelectionField.vue +1 -1
  349. package/src/shared/content-settings/components/logo-size-field/LogoSizeSliderField.vue +1 -1
  350. package/src/shared/content-settings/components/page-dropdown-field/PageDropdownField.vue +1 -1
  351. package/src/shared/content-settings/components/personalisation-role-field/PersonalisationRoleField.vue +4 -4
  352. package/src/shared/content-settings/components/text-image-field/TextImageField.vue +2 -8
  353. package/src/shared/content-settings/components/text-items-field/TextItemsField.mixin.ts +1 -1
  354. package/src/shared/content-settings/models.ts +3 -2
  355. package/src/shared/content-settings/utils.ts +0 -1
  356. package/src/shared/dropzone-image-uploader/components/DropzoneImageUploader.vue +1 -0
  357. package/src/shared/ecommerce-settings/store/cart-store.test.ts +1 -1
  358. package/src/shared/font-family-selector/FontFamilySelector.mixin.ts +1 -0
  359. package/src/shared/image-gallery-style-settings/ImageGalleryStyleSettings.mixin.ts +1 -0
  360. package/src/shared/logo-settings/components/EditLogoSettings.mixin.ts +1 -1
  361. package/src/shared/logo-settings/components/LogoSettings.mixin.ts +0 -1
  362. package/src/shared/logo-settings/components/LogoSettingsHeader.mixin.ts +1 -0
  363. package/src/shared/logo-settings/components/LogoStyleSettingsWithState.vue +2 -2
  364. package/src/shared/logo-settings/components/LogoTemplateSearch.vue +1 -1
  365. package/src/shared/logo-settings/store/editable-logo-store.ts +1 -1
  366. package/src/shared/logo-settings/store/logo-settings-store.test.ts +4 -4
  367. package/src/shared/logo-versions/LogoVersions.mixin.ts +1 -0
  368. package/src/shared/models.ts +6 -0
  369. package/src/shared/my-designs/MyDesigns.mixin.ts +1 -0
  370. package/src/shared/my-uploads/MyMedia.mixin.ts +1 -0
  371. package/src/shared/my-uploads/MyMediaSelectionItem.vue +2 -1
  372. package/src/shared/my-uploads/MyUploads.mixin.ts +1 -0
  373. package/src/shared/my-uploads/models.ts +1 -2
  374. package/src/shared/navigation-style-settings/components/navigation-style-settings/NavigationStyleSettings.mixin.ts +1 -0
  375. package/src/shared/navigation-style-settings/components/navigation-style-settings/NavigationStyleSettings.vue +1 -1
  376. package/src/shared/page-settings/components/new-page-modal/NewPageModal.mixin.ts +0 -3
  377. package/src/shared/page-settings/components/page-settings/NestedDraggable.vue +1 -1
  378. package/src/shared/page-settings/components/page-settings/PageSettings.vue +1 -2
  379. package/src/shared/page-settings/components/page-settings-section-styles/HeaderDisplayStyle.vue +1 -1
  380. package/src/shared/page-settings/components/page-settings-section-styles/PageSettingsSectionStyles.mixin.ts +1 -1
  381. package/src/shared/page-settings/store/page-settings-store.test.ts +4 -8
  382. package/src/shared/publish-brand-page-with-state/PublishBrandPageModalWithState.mixin.ts +0 -1
  383. package/src/shared/shape-library/ShapeLibrary.vue +2 -2
  384. package/src/shared/style-settings/store/style-settings-store.ts +1 -1
  385. package/src/shared/template-settings/components/TemplatesSettings.mixin.ts +2 -2
  386. package/src/shared/template-settings/models.ts +1 -0
  387. package/src/shared/template-settings/store/template-settings-store.ts +105 -18
  388. package/src/shared/unsplash-library/UnsplashLibrary.vue +2 -6
  389. package/src/shared/video-library/VideoLibrary.vue +1 -1
  390. package/src/utils/build-asset-manifest.ts +12 -0
  391. package/src/utils/minify-brand-page-metadata.ts +7 -27
  392. package/lib/src/metadata-builder/builders/item-id-utils.d.ts +0 -54
  393. package/lib/src/metadata-builder/builders/item-id-utils.js +0 -96
  394. package/src/metadata-builder/builders/item-id-utils.test.ts +0 -184
  395. package/src/metadata-builder/builders/item-id-utils.ts +0 -117
@@ -5,6 +5,7 @@ import type {
5
5
  NavigationDesktop,
6
6
  NavigationMobile,
7
7
  } from '../../../models';
8
+ import { isUnsetOrTransparentColor } from '../../../models';
8
9
  import type { NavItemViewModel } from '../../../view-models';
9
10
 
10
11
  export default defineComponent({
@@ -26,6 +27,7 @@ export default defineComponent({
26
27
  required: true,
27
28
  },
28
29
  },
30
+ emits: ['close-side-menu'],
29
31
  data() {
30
32
  return {
31
33
  expandedItems: {} as Record<string, boolean>, // Keep track of which navs are expanded
@@ -53,19 +55,27 @@ export default defineComponent({
53
55
  },
54
56
  // Prevents us from doubling down on em sizing of font
55
57
  defaultWrapperStyle(): BrandPageCssStyle {
56
- const { fontSize, lineHeight, letterSpacing, ...rest } =
57
- this.defaultButtonStyle;
58
+ const {
59
+ fontSize: _fontSize,
60
+ lineHeight: _lineHeight,
61
+ letterSpacing: _letterSpacing,
62
+ ...rest
63
+ } = this.defaultButtonStyle;
58
64
 
59
65
  return rest;
60
66
  },
61
67
  selectedWrapperStyle(): BrandPageCssStyle {
62
- const { fontSize, lineHeight, letterSpacing, ...rest } =
63
- this.selectedButtonStyle;
68
+ const {
69
+ fontSize: _fontSize,
70
+ lineHeight: _lineHeight,
71
+ letterSpacing: _letterSpacing,
72
+ ...rest
73
+ } = this.selectedButtonStyle;
64
74
 
65
75
  return rest;
66
76
  },
67
77
  routes(): any[] {
68
- return this.visibleNavItems.map((navItem, i) => {
78
+ return this.visibleNavItems.map((navItem, _i) => {
69
79
  return {
70
80
  routeName: navItem.routeName,
71
81
  routeParams: navItem.routeParams,
@@ -91,12 +101,19 @@ export default defineComponent({
91
101
  ? this.selectedButtonStyle
92
102
  : this.defaultButtonStyle;
93
103
 
104
+ const subNavBackgroundColor =
105
+ this.styles.hamburgerMenuStyle.subNavBackgroundColor ?? '#ffffff';
106
+
107
+ // An active sub-page uses the selected button colour, but when that colour
108
+ // is transparent/unset it must keep the sub-nav background colour rather
109
+ // than rendering transparent (BP-5751).
94
110
  return {
95
111
  ...baseStyle,
96
112
  paddingLeft: '32px',
97
- backgroundColor: isActive
98
- ? baseStyle.backgroundColor
99
- : this.styles.hamburgerMenuStyle.subNavBackgroundColor ?? '#ffffff',
113
+ backgroundColor:
114
+ isActive && !isUnsetOrTransparentColor(baseStyle.backgroundColor)
115
+ ? baseStyle.backgroundColor
116
+ : subNavBackgroundColor,
100
117
  };
101
118
  },
102
119
  closeSideMenu(): void {
@@ -1,3 +1,4 @@
1
+ <!-- eslint-disable vue/no-v-html -->
1
2
  <template>
2
3
  <div
3
4
  data-component="page-footer"
@@ -106,7 +106,9 @@ withDefaults(
106
106
  .desktop-tab-horizontal-stack-centered-logo-right-menu {
107
107
  @apply tw-grid;
108
108
  @apply tw-gap-x-4;
109
- grid-template-columns: [col-start] 1fr [logo-start] var(--logo-max-width) [logo-end nav-start] 1fr [nav-end];
109
+ grid-template-columns:
110
+ [col-start] 1fr [logo-start] var(--logo-max-width)
111
+ [logo-end nav-start] 1fr [nav-end];
110
112
  }
111
113
  .desktop-tab-horizontal-stack-centered-logo-right-menu .logo-container {
112
114
  grid-column: logo-start / logo-end;
@@ -184,7 +186,9 @@ withDefaults(
184
186
  /* DESKTOP_TAB_6 */
185
187
  .desktop-tab-vertical-stack-centered-menu-centered-logo.show-nav {
186
188
  @apply tw-grid;
187
- grid-template-rows: [row1-start] var(--tab-nav-height) [row1-end row2-start] 1fr [row2-end];
189
+ grid-template-rows:
190
+ [row1-start] var(--tab-nav-height)
191
+ [row1-end row2-start] 1fr [row2-end];
188
192
  @apply tw-gap-y-4;
189
193
  justify-content: center;
190
194
  justify-items: center;
@@ -209,7 +213,9 @@ withDefaults(
209
213
  }
210
214
  .mobile-tab-vertical-stack-centered-menu-centered-logo.show-nav {
211
215
  @apply tw-grid;
212
- grid-template-rows: [row1-start] var(--tab-nav-height) [row1-end row2-start] 1fr [row2-end];
216
+ grid-template-rows:
217
+ [row1-start] var(--tab-nav-height)
218
+ [row1-end row2-start] 1fr [row2-end];
213
219
  @apply tw-gap-y-4;
214
220
  margin-top: 1rem;
215
221
  }
@@ -282,9 +288,9 @@ withDefaults(
282
288
  .desktop-hamburger-horizontal-stack-centered-logo-right-menu,
283
289
  .mobile-hamburger-horizontal-stack-centered-logo-right-menu {
284
290
  @apply tw-grid;
285
- grid-template-columns: [start] var(--hamburger-nav-width) [logo-start] auto [nav-start] var(
286
- --hamburger-nav-width
287
- );
291
+ grid-template-columns:
292
+ [start] var(--hamburger-nav-width)
293
+ [logo-start] auto [nav-start] var(--hamburger-nav-width);
288
294
  align-items: start;
289
295
  }
290
296
  .desktop-hamburger-horizontal-stack-centered-logo-right-menu .logo-container,
@@ -46,6 +46,7 @@ export default {
46
46
  HeaderLayout,
47
47
  },
48
48
  mixins: [PageHeaderMixin],
49
+ emits: ['open-side-menu'],
49
50
  };
50
51
  </script>
51
52
  <style scoped>
@@ -28,7 +28,7 @@ import Media from '../media/Media.vue';
28
28
  import type { TextImageSectionViewModel } from '@brand-page/view-models';
29
29
  import type { BrandPageContext } from '@brand-page/models';
30
30
 
31
- const props = defineProps({
31
+ defineProps({
32
32
  viewModel: {
33
33
  type: Object as PropType<TextImageSectionViewModel>,
34
34
  required: true,
@@ -231,8 +231,6 @@
231
231
  import {
232
232
  Modal,
233
233
  Button,
234
- Dropdown,
235
- DropdownItem,
236
234
  NumberStepper,
237
235
  Textarea,
238
236
  Icon,
@@ -318,7 +316,7 @@ const onQtyChange = (skuKey: string, qty: number) => {
318
316
  cartSettingsStore.updateQuantity(skuKey, qty);
319
317
  };
320
318
 
321
- const onUpdateVariantOption = (
319
+ const _onUpdateVariantOption = (
322
320
  index: number,
323
321
  skuKey: string,
324
322
  variant: string,
@@ -60,7 +60,7 @@
60
60
  </ul>
61
61
  </template>
62
62
  <script setup lang="ts">
63
- import type { BrandPageContext, ShopContent } from '@brand-page/models';
63
+ import type { BrandPageContext } from '@brand-page/models';
64
64
  import FallbackImage from '../fallback-image/FallbackImage.vue';
65
65
  import TextWrapper from '../text-wrapper/TextWrapper.vue';
66
66
  import { type PropType } from 'vue';
@@ -71,7 +71,7 @@ import { computed } from 'vue';
71
71
 
72
72
  const shopSettingStore = useShopConfigStore();
73
73
 
74
- const props = defineProps({
74
+ defineProps({
75
75
  context: {
76
76
  type: Object as PropType<BrandPageContext>,
77
77
  required: true,
@@ -115,8 +115,7 @@
115
115
  <script setup lang="ts">
116
116
  import { Modal, Button, Loader } from '@designcrowd/fe-shared-lib';
117
117
  import { useCartStore } from '@shared/ecommerce-settings/store/cart-settings-store';
118
- import { computed, reactive, ref, onMounted } from 'vue';
119
- import IconStripe from '../icon/IconStripe.vue';
118
+ import { computed, reactive, onMounted } from 'vue';
120
119
  import RequestPaymentStripe from '../payment/RequestPaymentStripe.vue';
121
120
  import TextWrapper from '../text-wrapper/TextWrapper.vue';
122
121
  import brandPageClient from '../../clients/brand-page.client';
@@ -128,7 +127,6 @@ import type {
128
127
  BrandPagePaymentConfig,
129
128
  TextStyleDeclaration,
130
129
  StripePaymentIntent,
131
- StripeShippingDetails,
132
130
  } from '@brand-page/models';
133
131
  import { paymentProviders } from '@brand-page/constants';
134
132
  import raygunUtil from '@brand-page/utils/raygun.util';
@@ -173,8 +171,6 @@ const data = reactive({
173
171
  state: 'creating-cart' as State,
174
172
  });
175
173
 
176
- const customerEmail = ref('');
177
-
178
174
  const emit = defineEmits(['on-close', 'on-back']);
179
175
 
180
176
  const onClose = () => {
@@ -293,7 +293,7 @@ const onClose = () => {
293
293
  emit('on-close');
294
294
  };
295
295
 
296
- const showFullDesc = () => {
296
+ const _showFullDesc = () => {
297
297
  data.isShowFullDescription = true;
298
298
  };
299
299
 
@@ -3,10 +3,6 @@
3
3
  <div
4
4
  v-if="shouldShowContainer"
5
5
  class="tw-relative outer-container"
6
- :class="{
7
- 'tw-my-8': context.isBrandSite,
8
- 'tw-mb-4': context.isBrandPageOrIsBrandContact,
9
- }"
10
6
  :style="[backgroundStyle, contentPaddingStyle]"
11
7
  >
12
8
  <div class="tw-p-4 inner-container">
@@ -125,7 +121,7 @@ import ThumbnailDisplay from './ThumbnailDisplay.vue';
125
121
  import FeaturedDisplay from './FeaturedDisplay.vue';
126
122
  import ProductDetailModal from './ProductDetailModal.vue';
127
123
  import CartModal from './CartModal.vue';
128
- import { computed, onMounted, reactive, type PropType } from 'vue';
124
+ import { computed, onMounted, reactive } from 'vue';
129
125
  import {
130
126
  PAYMENT_OPTION_DISPLAY_TYPES,
131
127
  PAYMENT_OPTION_IMAGE_TYPES,
@@ -39,7 +39,7 @@ import { computed } from 'vue';
39
39
 
40
40
  const shopSettingStore = useShopConfigStore();
41
41
 
42
- const props = defineProps({
42
+ defineProps({
43
43
  context: {
44
44
  type: Object as PropType<BrandPageContext>,
45
45
  required: true,
@@ -45,7 +45,7 @@
45
45
  </ul>
46
46
  </template>
47
47
  <script setup lang="ts">
48
- import type { BrandPageContext, ShopContent } from '@brand-page/models';
48
+ import type { BrandPageContext } from '@brand-page/models';
49
49
  import FallbackImage from '../fallback-image/FallbackImage.vue';
50
50
  import TextWrapper from '../text-wrapper/TextWrapper.vue';
51
51
  import type { PropType } from 'vue';
@@ -56,7 +56,7 @@ import { computed } from 'vue';
56
56
 
57
57
  const shopSettingStore = useShopConfigStore();
58
58
 
59
- const props = defineProps({
59
+ defineProps({
60
60
  context: {
61
61
  type: Object as PropType<BrandPageContext>,
62
62
  required: true,
@@ -265,9 +265,9 @@ const renderText = (val: string): string => (val ? getRenderText(val) : '');
265
265
  const forceCarouselUpdate = (): boolean => {
266
266
  const shouldUpdateCarousel = Boolean(
267
267
  props.isPreview &&
268
- (props.viewModel.items.length > 1 ||
269
- props.viewModel.displayStyle === 'big-image') &&
270
- carouselRef.value,
268
+ (props.viewModel.items.length > 1 ||
269
+ props.viewModel.displayStyle === 'big-image') &&
270
+ carouselRef.value,
271
271
  );
272
272
 
273
273
  if (shouldUpdateCarousel) {
@@ -1,3 +1,4 @@
1
+ <!-- eslint-disable vue/no-v-html -->
1
2
  <template>
2
3
  <div v-if="sanitizeText" class="tw-w-full" :style="data.wrapperStyle">
3
4
  <div
@@ -39,6 +40,7 @@ interface Props {
39
40
  const props = withDefaults(defineProps<Props>(), {
40
41
  element: 'p',
41
42
  textStyle: {} as any,
43
+ slug: undefined,
42
44
  });
43
45
 
44
46
  const data = reactive<{
@@ -60,7 +62,7 @@ const textStyles = computed(() => {
60
62
  });
61
63
 
62
64
  const style = computed<any>(() => {
63
- const { backgroundColor, ...textStyle } = props.textStyle;
65
+ const { backgroundColor: _backgroundColor, ...textStyle } = props.textStyle;
64
66
 
65
67
  return textStyle;
66
68
  });
@@ -1,6 +1,6 @@
1
1
  import { ALIGN_CENTERED, ALIGN_JUSTIFIED } from '../misc.constants';
2
2
  import type { ButtonGroupOption } from '@brand-page-maker/models/button-group.model';
3
- import { tr, commonTr } from '@src/composables/useTranslate';
3
+ import { commonTr } from '@src/composables/useTranslate';
4
4
 
5
5
  export const FOOTER_DISPLAY = {
6
6
  /** @deprecated */
@@ -234,13 +234,6 @@ export interface ImageContent extends Content {
234
234
  }
235
235
 
236
236
  export interface ImageItem {
237
- /**
238
- * Stable per-item identifier. Mirrors the section-level `Content.id` one
239
- * level deeper so AI tool calls can reference items by id rather than by
240
- * positional index. Optional for backward compatibility with persisted data
241
- * that predates item ids — backfilled on load (see ensureItemIds).
242
- */
243
- id?: string;
244
237
  imageUrl: string;
245
238
  imageTitle: string;
246
239
  width: number;
@@ -473,8 +466,6 @@ export interface ShapeItem extends ImageItem {
473
466
  }
474
467
 
475
468
  export interface TestimonialItems {
476
- /** Stable per-item identifier. See ImageItem.id. */
477
- id?: string;
478
469
  imageUrl: string;
479
470
  name: string;
480
471
  position: string;
@@ -492,8 +483,6 @@ export interface TestimonialItems {
492
483
  }
493
484
 
494
485
  export interface TextItem {
495
- /** Stable per-item identifier. See ImageItem.id. */
496
- id?: string;
497
486
  text: string;
498
487
  textStyle: TextStyleDeclaration;
499
488
 
@@ -563,7 +552,6 @@ export interface AboutSectionContent extends Content {
563
552
  }
564
553
 
565
554
  export interface LinksItem {
566
- id?: string;
567
555
  imageUrl: string;
568
556
  url: string;
569
557
  size?: string;
@@ -941,6 +929,10 @@ export class BrandPageModel {
941
929
  // Model version
942
930
  v: number;
943
931
 
932
+ // AI personalisation key persisted with the draft so previews survive login/checkout-back/
933
+ // refresh - content is retrieved by this token (user-agnostic), not regenerated (bp-5742).
934
+ userPromptContentKey?: string;
935
+
944
936
  styles: PageStyles;
945
937
 
946
938
  /** @deprecated */
@@ -44,7 +44,8 @@ export const isStripePaymentIntent = (
44
44
  );
45
45
  };
46
46
 
47
- export interface CreateCartResult<T> {
47
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
48
+ export interface CreateCartResult<T = unknown> {
48
49
  cartId: string;
49
50
  paymentProviderName: string;
50
51
  paymentProviderExternalId: string;
@@ -1,5 +1,3 @@
1
- import type { PaymentConfig } from './payment.model';
2
-
3
1
  export interface VariantOptionModel {
4
2
  id: string;
5
3
  name: string;
@@ -84,8 +84,7 @@ export type ContentPersonalisationMapping<T extends Content> = {
84
84
  | keyof UserPersonalisationSection
85
85
  | keyof UserPersonalisationItem]?: (keyof T)[];
86
86
  };
87
- export interface UserPersonalisationSectionWithIndices
88
- extends UserPersonalisationSection {
87
+ export interface UserPersonalisationSectionWithIndices extends UserPersonalisationSection {
89
88
  imageIndex: number;
90
89
  shapeIndex: number;
91
90
  itemTitleIndex: number;
@@ -456,6 +456,7 @@ exports[`migration.util > Banner Contents - text Align and Font Family should no
456
456
  },
457
457
  },
458
458
  },
459
+ "userPromptContentKey": undefined,
459
460
  "v": 17,
460
461
  },
461
462
  "useOldLogoRenderSize": true,
@@ -901,6 +902,7 @@ exports[`migration.util > migrateBrandPageModel should return brand page model w
901
902
  },
902
903
  },
903
904
  },
905
+ "userPromptContentKey": undefined,
904
906
  "v": 17,
905
907
  },
906
908
  "useOldLogoRenderSize": true,
@@ -1353,6 +1355,7 @@ exports[`migration.util > migrateBrandPageModel should return brand page model w
1353
1355
  },
1354
1356
  },
1355
1357
  },
1358
+ "userPromptContentKey": undefined,
1356
1359
  "v": 17,
1357
1360
  },
1358
1361
  "useOldLogoRenderSize": true,
@@ -472,6 +472,7 @@ exports[`migration02.ts > migration02 should return converted letterspacing 1`]
472
472
  },
473
473
  },
474
474
  },
475
+ "userPromptContentKey": undefined,
475
476
  "v": 0,
476
477
  },
477
478
  "useOldLogoRenderSize": false,
@@ -446,6 +446,7 @@ BrandPageModel {
446
446
  },
447
447
  },
448
448
  },
449
+ "userPromptContentKey": undefined,
449
450
  "v": 0,
450
451
  }
451
452
  `;
@@ -911,6 +912,7 @@ BrandPageModel {
911
912
  },
912
913
  },
913
914
  },
915
+ "userPromptContentKey": undefined,
914
916
  "v": 0,
915
917
  }
916
918
  `;
@@ -1,4 +1,4 @@
1
- import type { BrandPageModel, LogoImageModel } from '../..';
1
+ import type { LogoImageModel } from '../..';
2
2
  import type { MigrationData } from '../migration.util';
3
3
 
4
4
  import { migrateLogoImage } from './logo/logo.migration.util';
@@ -3,7 +3,6 @@ import {
3
3
  FONT_SIZE_HEADINGS,
4
4
  type AboutSectionContent,
5
5
  type BannerSectionContent,
6
- type BrandPageModel,
7
6
  type ButtonContent,
8
7
  type ContactFormContent,
9
8
  type GlobalTextStyleDeclaration,
@@ -2,7 +2,6 @@ import {
2
2
  BRAND_PAGE_TYPES,
3
3
  type AboutSectionContent,
4
4
  type BannerSectionContent,
5
- type BrandPageModel,
6
5
  type BrandPageType,
7
6
  type ButtonContent,
8
7
  type ContactFormContent,
@@ -1,7 +1,6 @@
1
1
  import {
2
2
  type AboutSectionContent,
3
3
  type BannerSectionContent,
4
- type BrandPageModel,
5
4
  type ButtonContent,
6
5
  type ContactFormContent,
7
6
  type Content,
@@ -1,8 +1,4 @@
1
- import {
2
- type BrandPageModel,
3
- type TextContent,
4
- type LogoImageModel,
5
- } from '../..';
1
+ import { type TextContent, type LogoImageModel } from '../..';
6
2
  import type { MigrationData } from '../migration.util';
7
3
  import { isTextContent } from '../model.util';
8
4
 
@@ -1,4 +1,4 @@
1
- import { type BrandPageModel, type ButtonContent } from '../..';
1
+ import { type ButtonContent } from '../..';
2
2
  import type { MigrationData } from '../migration.util';
3
3
 
4
4
  export const migration05_2 = (
@@ -341,7 +341,7 @@ describe('migration08', () => {
341
341
  data: 'test-template-svg-data',
342
342
  });
343
343
 
344
- const result = await migration08(migrationData, {
344
+ const _result = await migration08(migrationData, {
345
345
  isServerRender: false,
346
346
  isUserDraft: false,
347
347
  });
@@ -701,6 +701,41 @@ describe('personalisation.util', async () => {
701
701
  ).toBe(title);
702
702
  });
703
703
 
704
+ test('applyUserPersonalisationToBrandPageModelAsync should fall back to a populated section when the block section was not generated', async () => {
705
+ // Arrange - simulate userPrompt AI content that only generated the core sections
706
+ // (profile/about/information/media); email/website/phone are never generated.
707
+ const personalisation = {
708
+ ...PERSONALISATION,
709
+ websiteSection: undefined,
710
+ emailSection: undefined,
711
+ phoneSection: undefined,
712
+ } as unknown as typeof PERSONALISATION;
713
+
714
+ // A block whose role points at the ungenerated website section - without the fallback
715
+ // this renders the designer's placeholder instead of personalised content.
716
+ const model = new BrandPageModel({
717
+ brandPageType: BRAND_PAGE_TYPES.brandSite,
718
+ styles: {
719
+ backgroundStyles: {
720
+ backgroundImageUrl: faker.internet.url(),
721
+ personalisationRole: 'website',
722
+ },
723
+ },
724
+ });
725
+
726
+ // Act
727
+ const result = await applyUserPersonalisationToBrandPageModelAsync(
728
+ personalisation,
729
+ model,
730
+ );
731
+
732
+ // Assert - it borrowed the first populated fallback section (profile).
733
+ expect(result.isModified).toBe(true);
734
+ expect(result.model.styles.backgroundStyles.backgroundImageUrl).toBe(
735
+ PERSONALISATION.profileSection.imageUrls?.[0].imageUrl,
736
+ );
737
+ });
738
+
704
739
  test('applyUserPersonalisationToBrandPageModelAsync should return modified text items when input has text with multiple items', async () => {
705
740
  // Arrange
706
741
  const textContent = {