@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
@@ -1,7 +1,7 @@
1
1
  import { TEMPLATE_TABS } from '../models';
2
2
  import * as DesignTemplateClient from '../../../clients/design-template-client';
3
3
  import {} from '../../../clients/models';
4
- import { BP_DEFAULT_TEMPLATE_TYPE_NAME, SIDE_BAR_TAB_NAMES, } from '@brand-page-maker/constants';
4
+ import { BP_DEFAULT_TEMPLATE_TYPE_NAME, BP_BRAND_SITE_TEMPLATE_TYPE_NAME, SIDE_BAR_TAB_NAMES, } from '@brand-page-maker/constants';
5
5
  import { defineStore, storeToRefs } from 'pinia';
6
6
  import { useBrandPageContainerStore, useBrandPageMakerStore, useBrandPageMakerUserStore, useLogoStore, useUiStore, } from '@brand-page-maker/stores';
7
7
  import { useUiSideBarStore } from '../../side-bar/store';
@@ -9,9 +9,19 @@ import { BrandPageModel } from '@brand-page/models';
9
9
  import { migrateBrandPageModel } from '@brand-page/utils';
10
10
  import { getAiContentIndexByTemplateTokenAndNumberOfVariations } from '@brand-page-maker/utils/ai-content-selection.util';
11
11
  import { useUiEditableLogoStore, useUiLogoSettingsStore, } from '../../logo-settings/store';
12
+ import { useEventTracker } from '@brand-page-maker/composables/useEventTracker';
12
13
  import { templateSettingsTr, getCurrentLocale, } from '@src/composables/useTranslate';
13
14
  import { watch } from 'vue';
14
15
  export const DEFAULT_PAGE_SIZE = 6;
16
+ const POST_PURCHASE_PAGE_SECTION_BY_TAB = {
17
+ [TEMPLATE_TABS.all]: 'MakerPostPurchaseSidebarTemplatesAllTab',
18
+ [TEMPLATE_TABS.AI]: 'MakerPostPurchaseSidebarTemplatesAiTab',
19
+ [TEMPLATE_TABS.categories]: 'MakerPostPurchaseSidebarTemplatesCategoryTab',
20
+ };
21
+ const PRE_PURCHASE_PAGE_SECTION_BY_TAB = {
22
+ [TEMPLATE_TABS.all]: 'MakerPrePurchaseSidebarTemplatesAllTab',
23
+ [TEMPLATE_TABS.categories]: 'MakerPrePurchaseSidebarTemplatesCategoryTab',
24
+ };
15
25
  const LOAD_PAGE_RETRY_DELAY = 250;
16
26
  export const useUiTemplateSettingsStore = defineStore('uiTemplateSettings', {
17
27
  state: () => {
@@ -47,6 +57,7 @@ export const useUiTemplateSettingsStore = defineStore('uiTemplateSettings', {
47
57
  cachedTemplates: {},
48
58
  logoChangeWatcherInitialized: false,
49
59
  initialSearchTerm: undefined,
60
+ aiTemplateKeywords: undefined,
50
61
  onSearchTermChanged: undefined,
51
62
  };
52
63
  },
@@ -187,27 +198,65 @@ export const useUiTemplateSettingsStore = defineStore('uiTemplateSettings', {
187
198
  }
188
199
  }
189
200
  const editableLogoVariation = editableLogoStore.editableLogoVariations[logoVariation];
190
- const result = await designTemplateClient.getTemplateItemsByTemplateType(this.templateType, {
201
+ const isPrePurchase = brandPageContainerStore.isPrePurchase;
202
+ const isBrandSite = this.templateType === BP_BRAND_SITE_TEMPLATE_TYPE_NAME;
203
+ // Pre-purchase has no logo draft for logo-based recommendation, so fall back to the seeded
204
+ // search term (the keyword from the URL/cookie - never the business name) so the All tab
205
+ // stays relevant instead of generic (bp-5454).
206
+ const effectiveSearchTerm = !this.searchTerm &&
207
+ !this.selectedCategory &&
208
+ isPrePurchase &&
209
+ isBrandSite &&
210
+ this.selectedTab.key === TEMPLATE_TABS.all
211
+ ? this.initialSearchTerm
212
+ : this.searchTerm;
213
+ const pageSection = isBrandSite
214
+ ? (isPrePurchase
215
+ ? PRE_PURCHASE_PAGE_SECTION_BY_TAB
216
+ : POST_PURCHASE_PAGE_SECTION_BY_TAB)[this.selectedTab.key]
217
+ : undefined;
218
+ const pageName = isBrandSite
219
+ ? isPrePurchase
220
+ ? 'maker-pre-purchase'
221
+ : 'maker'
222
+ : undefined;
223
+ const baseParams = {
191
224
  page: pageNo,
192
- pageSize: DEFAULT_PAGE_SIZE,
193
225
  categoryName: this.selectedCategory,
194
- searchTerm: this.searchTerm,
226
+ searchTerm: effectiveSearchTerm,
227
+ keywords: this.aiTemplateKeywords,
195
228
  logoDraftToken: logoSettingsStore.selectedLogoImage.logoDraftToken,
196
229
  logoVariation: logoSettingsStore.selectedLogoImage.logoVariation,
197
- personalisable: this.selectedTab.key === TEMPLATE_TABS.AI,
198
230
  selectedTemplateToken: designTemplateToken,
199
231
  locale: currentLocale,
200
232
  logoS3Token: !isByo ? editableLogoVariation.s3Token : undefined,
201
233
  logoTemplateToken: isByo ? logoTemplateToken : undefined,
234
+ useLogoForRecommendedTemplates: isBrandSite && this.selectedTab.key === TEMPLATE_TABS.all,
235
+ pageSection,
236
+ pageName,
237
+ };
238
+ // AI templates are interleaved server-side for the Brand Site All tab
239
+ // (bp-5306); the frontend just renders the returned order.
240
+ const result = await designTemplateClient.getTemplateItemsByTemplateType(this.templateType, {
241
+ ...baseParams,
242
+ pageSize: DEFAULT_PAGE_SIZE,
243
+ personalisable: this.selectedTab.key === TEMPLATE_TABS.AI,
202
244
  });
203
245
  if (!result) {
204
246
  return;
205
247
  }
206
248
  this._setPageCount({ pageCount: result.pageCount });
249
+ if (pageNo === 1 &&
250
+ result.abTestValuesToBePushed &&
251
+ Object.keys(result.abTestValuesToBePushed).length > 0) {
252
+ const eventTracker = useEventTracker();
253
+ for (const [experimentName, experimentValue] of Object.entries(result.abTestValuesToBePushed)) {
254
+ eventTracker.sendExperimentStartedEvent(experimentName, experimentValue);
255
+ }
256
+ }
207
257
  const templates = await Promise.all(result.paginatedItems.map(async (item) => {
208
258
  try {
209
259
  if (brandPageMakerUserStore.isAdmin) {
210
- // Pre-purchase: full template with brandPageModel for live rendering
211
260
  const template = await designTemplateClient.getTemplateByTemplateToken(item.designTemplateToken);
212
261
  return this.safeMapToTemplateSettingsTemplate(template);
213
262
  }
@@ -217,14 +266,24 @@ export const useUiTemplateSettingsStore = defineStore('uiTemplateSettings', {
217
266
  if (uiStore.personalisationData?.length) {
218
267
  personalisationContentIndex =
219
268
  await getAiContentIndexByTemplateTokenAndNumberOfVariations(item.designTemplateToken, uiStore.personalisationData.length);
220
- // Get the contentKey from the selected personalisation variation
221
- // This is needed for the backend preview URL to show the correct variation
222
- const selectedPersonalisation = uiStore.personalisationData[personalisationContentIndex];
223
- contentKey = selectedPersonalisation.contentKey;
269
+ contentKey =
270
+ uiStore.personalisationData[personalisationContentIndex]
271
+ .contentKey;
272
+ }
273
+ else if (item.isPersonalisable) {
274
+ // Pre-purchase has no personalisationData; personalise AI
275
+ // template previews with the prompt content key (bp-5742).
276
+ contentKey = uiStore.userPromptContentKey;
224
277
  }
225
278
  return {
226
279
  id: item.designTemplateToken,
280
+ isPersonalisable: item.isPersonalisable,
227
281
  contentKey,
282
+ // A userPromptContentKey signals this design's real AI images live
283
+ // in the userPrompt bucket (post- or pre-purchase). The preview must
284
+ // then resolve via userPromptContentKey, not the regular bucket which
285
+ // holds placeholders post-purchase (bp-5454).
286
+ usesUserPromptContentKey: !!uiStore.userPromptContentKey,
228
287
  previewImageUrl: item.previewImageUrl,
229
288
  };
230
289
  }
@@ -235,7 +294,13 @@ export const useUiTemplateSettingsStore = defineStore('uiTemplateSettings', {
235
294
  }));
236
295
  // Filter out null templates before adding
237
296
  const validTemplates = templates.filter((t) => t !== null);
238
- this._addTemplates({ templates: validTemplates });
297
+ // The Categories tab must never surface AI templates or the AI badge
298
+ // (bp-5454 scenario 5). The badge is driven purely by isPersonalisable,
299
+ // so clear it for category results regardless of the template's catalog flag.
300
+ const displayTemplates = this.selectedTab.key === TEMPLATE_TABS.categories
301
+ ? validTemplates.map((t) => ({ ...t, isPersonalisable: false }))
302
+ : validTemplates;
303
+ this._addTemplates({ templates: displayTemplates });
239
304
  this._setPageNoLoaded({ pageNoLoaded: pageNo });
240
305
  }
241
306
  finally {
@@ -339,6 +404,9 @@ export const useUiTemplateSettingsStore = defineStore('uiTemplateSettings', {
339
404
  this.initialSearchTerm = payload.initialSearchTerm;
340
405
  this.onSearchTermChanged = payload.onSearchTermChanged;
341
406
  },
407
+ setAiTemplateKeywords(payload) {
408
+ this.aiTemplateKeywords = payload.aiTemplateKeywords;
409
+ },
342
410
  notifySearchTermChanged(searchTerm) {
343
411
  this.onSearchTermChanged?.(searchTerm);
344
412
  },
@@ -1,4 +1,3 @@
1
- /// <reference types="types/lodash-shims" />
2
1
  import UnsplashClient from '../../clients/unsplash-client';
3
2
  import { type DebounceHandle } from 'lodash.debounce';
4
3
  interface PreviewUrls {
@@ -30,14 +29,20 @@ declare const _default: import("vue").DefineComponent<{}, {
30
29
  thirdPartySettings: import("../models").UIRootStateThirdPartySettings;
31
30
  }): void;
32
31
  setDeviceMode({ mode }: {
33
- mode: "desktop" | "mobile";
32
+ mode: import("../models").UiDeviceMode;
34
33
  }): void;
35
34
  setScreenSizeMode({ mode }: {
36
- mode: "desktop" | "mobile";
35
+ mode: import("../models").UiScreenSizeMode;
37
36
  }): void;
38
37
  setUserPersonalisationData({ personalisationData, }: {
39
38
  personalisationData: import("../../brand-page").UserPersonalisationContent[];
40
39
  }): void;
40
+ setUserPromptContentKey({ userPromptContentKey, }: {
41
+ userPromptContentKey: string | undefined;
42
+ }): void;
43
+ setShowAiTemplatesTab({ showAiTemplatesTab, }: {
44
+ showAiTemplatesTab: boolean;
45
+ }): void;
41
46
  onBackgroundChanged(): void;
42
47
  onContentChanged(): void;
43
48
  onStyleChanged(): void;
@@ -50,7 +55,7 @@ declare const _default: import("vue").DefineComponent<{}, {
50
55
  type: string;
51
56
  }): Promise<void>;
52
57
  onTemplateSelected(payload: import("@brand-page-maker/stores").OnTemplateSelectedPayload): Promise<void>;
53
- showUpgradeModalAndSaveAsync(contextualUpgradeType?: string | number | symbol | undefined): Promise<void>;
58
+ showUpgradeModalAndSaveAsync(contextualUpgradeType?: import("@brand-page-maker/stores").WebsiteContextUpgradeType): Promise<void>;
54
59
  setIsPersonalisationEnabled({ isPersonalisationEnabled, }: {
55
60
  isPersonalisationEnabled: boolean;
56
61
  }): void;
@@ -14,6 +14,10 @@ export interface AssetEntry {
14
14
  * 2. Fall back to logoImageBase64Url if logoImage is unavailable.
15
15
  */
16
16
  export declare function resolveLogoData(logoImage: LogoImageModel | undefined, logoImageBase64Url: string | undefined): string | undefined;
17
+ /**
18
+ * Look up an asset key from the manifest by matching the data content.
19
+ */
20
+ export declare function findAssetKey(assets: AssetEntry[] | undefined, data: string | undefined): string | undefined;
17
21
  /**
18
22
  * Build an asset manifest from the brand page model.
19
23
  *
@@ -23,6 +23,14 @@ export function resolveLogoData(logoImage, logoImageBase64Url) {
23
23
  // Fallback to base64 if available
24
24
  return logoImageBase64Url || undefined;
25
25
  }
26
+ /**
27
+ * Look up an asset key from the manifest by matching the data content.
28
+ */
29
+ export function findAssetKey(assets, data) {
30
+ if (!data || !assets)
31
+ return undefined;
32
+ return assets.find((a) => a.data === data)?.key;
33
+ }
26
34
  /**
27
35
  * Hash a string using SHA-256 and return the first 16 hex characters.
28
36
  * Uses the Web Crypto API (available in browsers and modern runtimes).
@@ -2,8 +2,6 @@ import { type BrandPageModel, type BrandPageType, type NavModel, type PageStyles
2
2
  import type { ContentType } from '../brand-page/models/content.model';
3
3
  import { type AssetEntry } from './build-asset-manifest';
4
4
  type MinifiedFooterSocialLink = {
5
- position: number;
6
- id?: string;
7
5
  imageUrl: string;
8
6
  url: string;
9
7
  };
@@ -1,7 +1,7 @@
1
1
  import { BRAND_PAGE_TYPES, } from '../brand-page/models';
2
2
  import { hasRTEContent } from '../brand-page-maker/utils';
3
3
  import { useExternalRichTextEditor } from '../brand-page-maker/composables/rich-text-editor/useRichTextEditor';
4
- import { resolveLogoData } from './build-asset-manifest';
4
+ import { findAssetKey, resolveLogoData, } from './build-asset-manifest';
5
5
  const BUTTON_TYPES = [
6
6
  'general-link',
7
7
  'website',
@@ -78,14 +78,6 @@ const includeBackgroundStyle = (value) => {
78
78
  return null;
79
79
  return { backgroundStyle: { backgroundColor: bg } };
80
80
  };
81
- /**
82
- * Look up an asset key from the manifest by matching the data content.
83
- */
84
- const findAssetKey = (assets, data) => {
85
- if (!data || !assets)
86
- return undefined;
87
- return assets.find((a) => a.data === data)?.key;
88
- };
89
81
  const minifyContent = (content, editor, assets) => {
90
82
  const base = {
91
83
  id: content.id,
@@ -164,7 +156,6 @@ const minifyContent = (content, editor, assets) => {
164
156
  ...(Array.isArray(c.items) && {
165
157
  items: c.items.map((item, index) => ({
166
158
  position: index + 1,
167
- ...(item.id && { id: item.id }),
168
159
  ...st('name', item.name, editor),
169
160
  ...st('jobTitle', item.position, editor),
170
161
  ...st('testimonials', item.testimonials, editor),
@@ -192,7 +183,6 @@ const minifyContent = (content, editor, assets) => {
192
183
  ...(Array.isArray(c.items) && {
193
184
  items: c.items.map((item, index) => ({
194
185
  position: index + 1,
195
- ...(item.id && { id: item.id }),
196
186
  ...includeImageWithKey(item.imageUrl),
197
187
  ...st('title', item.title, editor),
198
188
  ...st('paragraph', item.paragraph, editor),
@@ -222,7 +212,6 @@ const minifyContent = (content, editor, assets) => {
222
212
  ...(Array.isArray(c.textItems) && {
223
213
  textItems: c.textItems.map((item, index) => ({
224
214
  position: index + 1,
225
- ...(item.id && { id: item.id }),
226
215
  ...st('text', item.text, editor),
227
216
  ...(includeStyle(item.textStyle) && { textStyle: item.textStyle }),
228
217
  })),
@@ -303,7 +292,6 @@ const minifyContent = (content, editor, assets) => {
303
292
  ...(Array.isArray(c.links) && {
304
293
  links: c.links.map((link, index) => ({
305
294
  position: index + 1,
306
- ...(link.id && { id: link.id }),
307
295
  ...(includeString(link.url) && { url: link.url }),
308
296
  ...includeImageWithKey(link.imageUrl),
309
297
  })),
@@ -343,7 +331,6 @@ const minifyContent = (content, editor, assets) => {
343
331
  ...(Array.isArray(c.images) && {
344
332
  images: c.images.map((img, index) => ({
345
333
  position: index + 1,
346
- ...(img.id && { id: img.id }),
347
334
  ...includeImageWithKey(img.imageUrl),
348
335
  ...st('imageTitle', img.imageTitle, editor),
349
336
  })),
@@ -384,9 +371,7 @@ const minifyFooter = (footer, logoAssetKey) => {
384
371
  logoImageWidth: footer.logoImageWidth || undefined,
385
372
  ...(logoAssetKey && { logoAssetKey }),
386
373
  socialLinks: footer.socialLinks?.length
387
- ? footer.socialLinks.map((l, index) => ({
388
- position: index + 1,
389
- ...(l.id && { id: l.id }),
374
+ ? footer.socialLinks.map((l) => ({
390
375
  imageUrl: l.imageUrl || '',
391
376
  url: l.url || '',
392
377
  }))
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@designcrowd/library.brand-page",
3
3
  "description": "A collection of Maker/Designer applications",
4
- "version": "6.0.5",
4
+ "version": "6.0.6-ast-bugs",
5
5
  "author": "Design.com Eng",
6
6
  "license": "UNLICENSED",
7
7
  "type": "module",
@@ -55,9 +55,9 @@
55
55
  "pre-push": "npm run test"
56
56
  },
57
57
  "dependencies": {
58
- "@ckpack/vue-color": "1.4.1",
59
- "@designcrowd/fe-shared-lib": "1.8.14",
60
- "@pinia/nuxt": "0.11.0",
58
+ "@ckpack/vue-color": "1.6.0",
59
+ "@designcrowd/fe-shared-lib": "2.0.0",
60
+ "@pinia/nuxt": "0.11.3",
61
61
  "@storybook/react": "9.0.4",
62
62
  "@tiptap/extension-bubble-menu": "^2.14.0",
63
63
  "@tiptap/extension-character-count": "2.11.7",
@@ -72,41 +72,42 @@
72
72
  "@tiptap/extension-underline": "2.11.5",
73
73
  "@tiptap/starter-kit": "2.11.5",
74
74
  "@tiptap/vue-3": "2.11.5",
75
- "axios": "1.6.7",
75
+ "axios": "1.13.5",
76
76
  "chroma-js": "2.4.2",
77
77
  "click-outside-vue3": "4.0.1",
78
- "color": "5.0.0",
78
+ "color": "5.0.3",
79
79
  "config": "3.3.10",
80
- "core-js": "3.35.1",
80
+ "core-js": "3.48.0",
81
81
  "css-color-names": "1.0.1",
82
82
  "date-utils": "1.2.21",
83
83
  "deepmerge": "4.3.1",
84
- "dompurify": "3.2.6",
84
+ "dompurify": "3.3.1",
85
85
  "dropzone-vue3": "1.0.2",
86
86
  "express": "4.18.2",
87
- "fs-extra": "11.2.0",
88
- "http-errors": "2.0.0",
87
+ "fs-extra": "11.3.3",
88
+ "http-errors": "2.0.1",
89
89
  "http-proxy-middleware": "2.0.6",
90
- "i18next": "25.2.1",
90
+ "i18next": "25.8.5",
91
91
  "jquery": "3.7.1",
92
92
  "lodash.clonedeep": "4.5.0",
93
93
  "lodash.debounce": "4.0.8",
94
94
  "lodash.throttle": "4.1.1",
95
95
  "lodash.uniq": "4.5.0",
96
- "nuxt": "3.17.4",
97
- "pinia": "3.0.2",
96
+ "nuxt": "4.4.5",
97
+ "pinia": "3.0.4",
98
98
  "portal-vue": "3.0.0",
99
99
  "raygun": "0.13.2",
100
- "raygun4js": "3.0.0",
100
+ "raygun4js": "3.1.4",
101
101
  "regenerator-runtime": "0.14.1",
102
102
  "slugify": "1.6.6",
103
103
  "svg-parser": "2.0.4",
104
104
  "uuid": "9.0.1",
105
- "validator": "13.11.0",
106
- "vue": "3.5.15",
105
+ "validator": "13.15.26",
106
+ "vue": "3.5.35",
107
107
  "vue-cropperjs": "5.0.0",
108
- "vue-router": "4.5.0",
108
+ "vue-router": "5.1.0",
109
109
  "vue-select": "4.0.0-beta.6",
110
+ "unstorage": "^1.17.5",
110
111
  "vue3-lazy-hydration": "1.2.1",
111
112
  "vue3-shortkey": "4.0.0",
112
113
  "vuedraggable": "4.1.0",
@@ -123,49 +124,49 @@
123
124
  "optionalDependencies": {
124
125
  "@esbuild/darwin-arm64": "0.27.1",
125
126
  "@esbuild/linux-x64": "0.27.1",
126
- "@rollup/rollup-linux-arm64-gnu": "4.12.0",
127
- "@rollup/rollup-linux-x64-gnu": "4.12.0"
127
+ "@rollup/rollup-linux-arm64-gnu": "4.43.0",
128
+ "@rollup/rollup-linux-x64-gnu": "4.43.0"
128
129
  },
129
130
  "devDependencies": {
130
131
  "@faker-js/faker": "8.4.0",
131
132
  "@frsource/cypress-plugin-visual-regression-diff": "3.3.10",
132
- "@nuxt/test-utils": "3.19.1",
133
- "@nuxt/types": "2.17.3",
133
+ "@nuxt/test-utils": "4.0.0",
134
+ "@nuxt/types": "2.18.1",
134
135
  "@nuxt/typescript-build": "3.0.2",
135
136
  "@storybook/addon-themes": "9.0.4",
136
137
  "@storybook/vue3": "9.0.4",
137
138
  "@storybook/vue3-vite": "9.0.4",
138
139
  "@stylistic/eslint-plugin": "1.5.4",
139
140
  "@types/axios-mock-adapter": "1.10.0",
140
- "@types/braces": "3.0.4",
141
+ "@types/braces": "3.0.5",
141
142
  "@types/dompurify": "3.2.0",
142
143
  "@types/express": "4.17.21",
143
144
  "@types/faker": "6.6.8",
144
145
  "@types/google.maps": "3.65.1",
145
146
  "@types/istanbul-lib-report": "3.0.3",
146
- "@types/jquery": "3.5.30",
147
+ "@types/jquery": "3.5.33",
147
148
  "@types/lodash.clonedeep": "4.5.9",
148
- "@types/mssql": "9.1.4",
149
+ "@types/mssql": "9.1.9",
149
150
  "@types/multer": "1.4.11",
150
151
  "@types/raygun4js": "3.0.0",
151
152
  "@types/react": "18.2.48",
152
153
  "@types/resize-observer-browser": "0.1.11",
153
- "@types/stripe-v3": "3.1.32",
154
+ "@types/stripe-v3": "3.1.33",
154
155
  "@types/svg-parser": "2.0.6",
155
- "@types/uglify-js": "3.17.4",
156
- "@types/unist": "3.0.2",
156
+ "@types/uglify-js": "3.17.5",
157
+ "@types/unist": "3.0.3",
157
158
  "@types/uuid": "9.0.8",
158
- "@types/validator": "13.11.8",
159
+ "@types/validator": "13.15.10",
159
160
  "@types/yargs-parser": "21.0.3",
160
161
  "@typescript-eslint/eslint-plugin": "6.20.0",
161
162
  "@typescript-eslint/parser": "6.20.0",
162
- "@vitejs/plugin-vue": "5.2.4",
163
+ "@vitejs/plugin-vue": "6.0.7",
163
164
  "@vue/eslint-config-typescript": "12.0.0",
164
- "@vue/test-utils": "2.4.4",
165
- "autoprefixer": "10.4.17",
165
+ "@vue/test-utils": "2.4.6",
166
+ "autoprefixer": "10.4.24",
166
167
  "axios-mock-adapter": "1.22.0",
167
168
  "copyfiles": "2.4.1",
168
- "cors": "2.8.5",
169
+ "cors": "2.8.6",
169
170
  "cross-env": "7.0.3",
170
171
  "css-loader": "6.9.1",
171
172
  "cypress": "13.6.3",
@@ -173,50 +174,50 @@
173
174
  "eslint-config-prettier": "9.1.0",
174
175
  "eslint-friendly-formatter": "4.0.1",
175
176
  "eslint-plugin-cypress": "2.15.1",
176
- "eslint-plugin-prettier": "5.1.3",
177
+ "eslint-plugin-prettier": "5.5.5",
177
178
  "eslint-plugin-vue": "9.21.1",
178
179
  "file-loader": "6.2.0",
179
- "happy-dom": "14.12.3",
180
- "html-loader": "5.0.0",
181
- "husky": "9.0.7",
180
+ "happy-dom": "20.6.1",
181
+ "html-loader": "5.1.0",
182
+ "husky": "9.1.7",
182
183
  "imports-loader": "5.0.0",
183
- "jest-image-snapshot": "6.4.0",
184
- "js-base64": "3.7.6",
185
- "jsdom": "24.0.0",
184
+ "jest-image-snapshot": "6.5.1",
185
+ "js-base64": "3.7.8",
186
+ "jsdom": "27.4.0",
186
187
  "jsdom-global": "3.0.2",
187
188
  "lint-staged": "15.2.0",
188
- "mini-css-extract-plugin": "2.7.7",
189
- "msw": "2.3.1",
190
- "msw-storybook-addon": "2.0.3",
189
+ "mini-css-extract-plugin": "2.10.0",
190
+ "msw": "2.12.10",
191
+ "msw-storybook-addon": "2.0.6",
191
192
  "multer": "1.4.3",
192
- "nodemon": "3.0.3",
193
+ "nodemon": "3.1.11",
193
194
  "npm-run-all": "4.1.5",
194
195
  "nyc": "15.1.0",
195
196
  "performance-now": "2.1.0",
196
- "picocolors": "1.0.0",
197
- "playwright-core": "1.47.0",
198
- "postcss": "8.4.38",
199
- "postcss-cli": "11.0.0",
200
- "postcss-loader": "8.0.0",
197
+ "picocolors": "1.1.1",
198
+ "playwright-core": "1.58.2",
199
+ "postcss": "8.5.6",
200
+ "postcss-cli": "11.0.1",
201
+ "postcss-loader": "8.2.0",
201
202
  "postcss-nested": "6.0.1",
202
203
  "postcss-prefix-selector": "1.16.0",
203
- "prettier": "3.2.4",
204
+ "prettier": "3.8.1",
204
205
  "request": "2.88.2",
205
206
  "rimraf": "5.0.5",
206
- "rollup-plugin-visualizer": "5.12.0",
207
+ "rollup-plugin-visualizer": "6.0.11",
207
208
  "run-func": "3.0.0",
208
209
  "shx": "0.3.4",
209
210
  "storybook": "9.0.4",
210
211
  "style-loader": "3.3.4",
211
212
  "tailwindcss": "3.4.1",
212
213
  "timsort": "0.3.0",
213
- "ts-loader": "9.5.1",
214
+ "ts-loader": "9.5.4",
214
215
  "ts-node": "10.9.2",
215
- "typescript": "5.3.3",
216
- "vite": "6.3.5",
216
+ "typescript": "5.9.3",
217
+ "vite": "7.3.5",
217
218
  "vite-plugin-commonjs": "0.10.4",
218
- "vite-plugin-node-polyfills": "0.23.0",
219
- "vitest": "3.1.4",
219
+ "vite-plugin-node-polyfills": "0.25.0",
220
+ "vitest": "4.0.18",
220
221
  "vue-eslint-parser": "9.4.2",
221
222
  "vue-loader": "17.4.2",
222
223
  "vue-style-loader": "4.1.3",
@@ -225,7 +226,10 @@
225
226
  "overrides": {
226
227
  "@achrinza/node-ipc": "10.1.10",
227
228
  "@parcel/watcher": "2.1.0",
228
- "rollup-plugin-visualizer": "5.12.0",
229
+ "@storybook/vue3-vite": {
230
+ "vite": "$vite"
231
+ },
232
+ "rollup-plugin-visualizer": "6.0.11",
229
233
  "vite": {
230
234
  "rollup": "npm:@rollup/wasm-node"
231
235
  }
@@ -10,11 +10,13 @@ import {
10
10
  } from '@brand-page/models';
11
11
  import type { AboutSectionViewModel } from '@brand-page/view-models';
12
12
 
13
- global.ResizeObserver = vi.fn().mockImplementation(() => ({
14
- observe: vi.fn(),
15
- unobserve: vi.fn(),
16
- disconnect: vi.fn(),
17
- }));
13
+ global.ResizeObserver = vi.fn(function () {
14
+ return {
15
+ observe: vi.fn(),
16
+ unobserve: vi.fn(),
17
+ disconnect: vi.fn(),
18
+ } as unknown as ResizeObserver;
19
+ });
18
20
 
19
21
  const createTestBrandPageContext = (): BrandPageContext => ({
20
22
  brandPageSlug: faker.person.firstName(),