@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
@@ -75,6 +75,7 @@ export type InitialisePayload = Omit<BrandPageContainerState, 'customDomain' | '
75
75
  logoDraftAssets: LogoDraftAsset[];
76
76
  gettyVideos: GettyVideoEditorViewModelResponse[];
77
77
  templateSearchTerm: string | undefined;
78
+ aiTemplateKeywords: string | undefined;
78
79
  onSearchTermChanged?: OnSearchTermChangedCallback;
79
80
  };
80
81
  export declare const BRANDPAGE_STATUS: Readonly<{
@@ -102,8 +103,8 @@ export declare const useBrandPageContainerStore: import("pinia").StoreDefinition
102
103
  updated: Date;
103
104
  brandPageToken: string;
104
105
  domainName: string;
105
- status: "active" | "pending" | "failed" | "renewFailed" | "deleted";
106
- dnsConfigurationStatus: "request_expired" | "missing_expected_dns_records" | "invalid_multiple_dns_records_exist" | "unexpected_aaaa_record" | "completed";
106
+ status: import("@brand-page-maker/constants").CustomDomainStatus;
107
+ dnsConfigurationStatus: import("@brand-page-maker/constants").DnsConfigurationStatus;
107
108
  triggerOrigin?: string | undefined;
108
109
  } | null;
109
110
  createCustomDomainErrorMessage: string | null;
@@ -180,8 +181,8 @@ export declare const useBrandPageContainerStore: import("pinia").StoreDefinition
180
181
  updated: Date;
181
182
  brandPageToken: string;
182
183
  domainName: string;
183
- status: "active" | "pending" | "failed" | "renewFailed" | "deleted";
184
- dnsConfigurationStatus: "request_expired" | "missing_expected_dns_records" | "invalid_multiple_dns_records_exist" | "unexpected_aaaa_record" | "completed";
184
+ status: import("@brand-page-maker/constants").CustomDomainStatus;
185
+ dnsConfigurationStatus: import("@brand-page-maker/constants").DnsConfigurationStatus;
185
186
  triggerOrigin?: string | undefined;
186
187
  } | null;
187
188
  createCustomDomainErrorMessage: string | null;
@@ -2,13 +2,13 @@ import { defineStore } from 'pinia';
2
2
  import brandPageClient, {} from '../../../clients/brand-page-client';
3
3
  import { useBrandPageMakerStore, useBrandPageMakerUserStore, useLocalisedRouteStore, useLogoStore, useUiStore, useVideoStore, } from '@brand-page-maker/stores';
4
4
  import { SIDE_BAR_TAB_NAMES } from '@brand-page-maker/constants';
5
- import { BRAND_PAGE_TYPES, SENSITIVE_CONTENT_TYPES, getAbTestResults, getValueType, } from '@brand-page';
5
+ import { BRAND_PAGE_TYPES, SENSITIVE_CONTENT_TYPES, getAbTestResults, } from '@brand-page';
6
6
  import { isLogoContent } from '@brand-page/utils';
7
7
  import { useUiEditableLogoStore } from '@shared/logo-settings/store';
8
8
  import uniq from 'lodash.uniq';
9
9
  import cloneDeep from 'lodash.clonedeep';
10
10
  import { useShopConfigStore } from '@shared/ecommerce-settings/store/shop-settings-store';
11
- import { TRIGGER_TYPE, UPGRADE_CTA_LOCATIONS, useEventTracker, EVENTS, } from '@brand-page-maker/composables/useEventTracker';
11
+ import { TRIGGER_TYPE, UPGRADE_CTA_LOCATIONS, useEventTracker, } from '@brand-page-maker/composables/useEventTracker';
12
12
  import { navigationTr } from '@src/composables/useTranslate';
13
13
  import { errorTr, constantsTr } from '@src/composables/useTranslate';
14
14
  import { findValuesByKey } from '../../../helpers/ts.helper';
@@ -137,6 +137,9 @@ export const useBrandPageContainerStore = defineStore('brandPageContainer', {
137
137
  initialSearchTerm: payload.templateSearchTerm ?? '',
138
138
  onSearchTermChanged: payload.onSearchTermChanged,
139
139
  });
140
+ templateSettingsStore.setAiTemplateKeywords({
141
+ aiTemplateKeywords: payload.aiTemplateKeywords ?? '',
142
+ });
140
143
  brandPageMakerStore.setSelectedTemplateId({
141
144
  templateId: this.designTemplateToken,
142
145
  });
@@ -258,7 +261,7 @@ export const useBrandPageContainerStore = defineStore('brandPageContainer', {
258
261
  },
259
262
  async publishBrandPage({ shouldPublish, slug }) {
260
263
  const brandPageMakerStore = useBrandPageMakerStore();
261
- const eventTracker = useEventTracker();
264
+ const _eventTracker = useEventTracker();
262
265
  if (!this.designDraftToken) {
263
266
  throw new Error('unable to publish brand page when designDraftToken is not set');
264
267
  }
@@ -338,7 +341,7 @@ export const useBrandPageContainerStore = defineStore('brandPageContainer', {
338
341
  },
339
342
  async publishBrandPageWithCustomDomainAsync({ shouldPublish, slug, domain, isPurchasedDomain, }) {
340
343
  const brandPageMakerStore = useBrandPageMakerStore();
341
- const eventTracker = useEventTracker();
344
+ const _eventTracker = useEventTracker();
342
345
  if (!this.designDraftToken) {
343
346
  throw new Error('unable to publish brand page when designDraftToken is not set');
344
347
  }
@@ -570,7 +573,7 @@ export const useBrandPageContainerStore = defineStore('brandPageContainer', {
570
573
  async saveBrandPage(payload = {}) {
571
574
  const userStore = useBrandPageMakerUserStore();
572
575
  const brandPageMakerStore = useBrandPageMakerStore();
573
- const eventTracker = useEventTracker();
576
+ const _eventTracker = useEventTracker();
574
577
  if (userStore.isAdmin) {
575
578
  throw new Error('save brand page is not allowed in admin mode');
576
579
  }
@@ -20,6 +20,8 @@ export interface InitialisePayload {
20
20
  templateCategories: TemplateCategory[];
21
21
  personalisationData?: UserPersonalisationContent[];
22
22
  isPersonalisationEnabled: boolean;
23
+ userPromptContentKey?: string;
24
+ showAiTemplatesTab?: boolean;
23
25
  businessName: string | undefined;
24
26
  industry: string | undefined;
25
27
  layout?: string;
@@ -231,7 +233,7 @@ export declare const useBrandPageMakerStore: import("pinia").StoreDefinition<"br
231
233
  brandPageType: BrandPageType;
232
234
  }): void;
233
235
  initialiseStoresByBrandPageModelAsync(brandPageModel: BrandPageModel): Promise<void>;
234
- initialise({ brandPage, brandPageType, logoDraftDesignAttributes, unsplashApplicationName, templateCategories, personalisationData, isPersonalisationEnabled, businessName, industry, layout, logoVariationImageUrls, shopConfigData, isServerRenderOverride, }: InitialisePayload): Promise<void>;
236
+ initialise({ brandPage, brandPageType, logoDraftDesignAttributes, unsplashApplicationName, templateCategories, personalisationData, isPersonalisationEnabled, userPromptContentKey, showAiTemplatesTab, businessName, industry, layout, logoVariationImageUrls, shopConfigData: _shopConfigData, isServerRenderOverride, }: InitialisePayload): Promise<void>;
235
237
  initialisePages({ pages, sections, }: {
236
238
  pages: PageModel[];
237
239
  sections: PageSettingsStateSections;
@@ -1,5 +1,5 @@
1
1
  import { EMPTY_LOGO_IMAGE_MODEL, SENSITIVE_CONTENT_TYPES, TEXT_STYLE_TYPES, VIEWPORTS, } from '@brand-page';
2
- import { BackgroundStyles, BRAND_PAGE_TYPES, BrandPageModel, CONTENT_TYPES, NavigationDesktop, NavigationMobile, NavModel, } from '@brand-page';
2
+ import { BackgroundStyles, BRAND_PAGE_TYPES, BrandPageModel, CONTENT_TYPES, NavigationDesktop, NavigationMobile, } from '@brand-page';
3
3
  import { useBrandPageMakerUserStore } from '../user';
4
4
  import { defineStore } from 'pinia';
5
5
  import { toRaw } from 'vue';
@@ -824,7 +824,7 @@ export const useBrandPageMakerStore = defineStore('brandPageMaker', {
824
824
  transformToRTE(pageSettingsStore, externalEditor, undefined, undefined, TEXT_STYLE_TYPES.paragraphs, textStyles.textStyleOptions.paragraphs.style);
825
825
  externalEditor.destroy();
826
826
  },
827
- async initialise({ brandPage, brandPageType, logoDraftDesignAttributes, unsplashApplicationName, templateCategories, personalisationData, isPersonalisationEnabled, businessName, industry, layout, logoVariationImageUrls, shopConfigData, isServerRenderOverride = false, }) {
827
+ async initialise({ brandPage, brandPageType, logoDraftDesignAttributes, unsplashApplicationName, templateCategories, personalisationData, isPersonalisationEnabled, userPromptContentKey, showAiTemplatesTab = false, businessName, industry, layout, logoVariationImageUrls, shopConfigData: _shopConfigData, isServerRenderOverride = false, }) {
828
828
  const brandPageContainerStore = useBrandPageContainerStore();
829
829
  const userStore = useBrandPageMakerUserStore();
830
830
  const uiStore = useUiStore();
@@ -834,7 +834,7 @@ export const useBrandPageMakerStore = defineStore('brandPageMaker', {
834
834
  const backgroundSettingsStore = useUiBackgroundSettingsStore();
835
835
  const styleSettingsStore = useUiStyleSettingsStore();
836
836
  const navigationStyleSettingsStore = useUiNavigationStyleSettingsStore();
837
- const sideBarStore = useUiSideBarStore();
837
+ const _sideBarStore = useUiSideBarStore();
838
838
  navigationStyleSettingsStore.initialise({ reset: false });
839
839
  this.setIsInitialising({ isInitialising: true });
840
840
  try {
@@ -895,6 +895,8 @@ export const useBrandPageMakerStore = defineStore('brandPageMaker', {
895
895
  personalisationData: personalisationData,
896
896
  });
897
897
  }
898
+ uiStore.setUserPromptContentKey({ userPromptContentKey });
899
+ uiStore.setShowAiTemplatesTab({ showAiTemplatesTab });
898
900
  templateSettingsStore.setTemplateCategories({
899
901
  categories: templateCategories,
900
902
  });
@@ -1227,6 +1229,7 @@ export const useBrandPageMakerStore = defineStore('brandPageMaker', {
1227
1229
  const navigationStyleSettingsStore = useUiNavigationStyleSettingsStore();
1228
1230
  const shopStore = useShopConfigStore();
1229
1231
  const pageNavigationStore = usePageNavigationStore();
1232
+ const uiStore = useUiStore();
1230
1233
  const pages = pageSettingsStore.pages.map((p) => ({
1231
1234
  ...p,
1232
1235
  contents: p.contents.map((c) => c.settings.content),
@@ -1240,6 +1243,7 @@ export const useBrandPageMakerStore = defineStore('brandPageMaker', {
1240
1243
  const pageNavStructure = pageNavigationStore.nav;
1241
1244
  return {
1242
1245
  v: GetLatestModelVersion(),
1246
+ userPromptContentKey: uiStore.userPromptContentKey,
1243
1247
  pages,
1244
1248
  styles: {
1245
1249
  logoStyles,
@@ -27,12 +27,12 @@ export declare const useHistoryStore: import("pinia").StoreDefinition<"history",
27
27
  canRedo: import("vue").ComputedRef<boolean>;
28
28
  captureBaseline: () => void;
29
29
  capture: (args: {
30
- source: HistoryEntry['source'];
31
- actor: HistoryEntry['actor'];
30
+ source: HistoryEntry["source"];
31
+ actor: HistoryEntry["actor"];
32
32
  label?: string;
33
- }) => 'committed' | 'oversized' | 'noop' | 'skipped';
34
- captureTemplateSwitch: (label?: string) => 'committed' | 'oversized' | 'noop' | 'skipped';
35
- captureAiChangeset: (label?: string) => 'committed' | 'oversized' | 'noop' | 'skipped';
33
+ }) => "committed" | "oversized" | "noop" | "skipped";
34
+ captureTemplateSwitch: (label?: string) => "committed" | "oversized" | "noop" | "skipped";
35
+ captureAiChangeset: (label?: string) => "committed" | "oversized" | "noop" | "skipped";
36
36
  mergeNextMutation: () => void;
37
37
  undo: () => Promise<void>;
38
38
  redo: () => Promise<void>;
@@ -49,12 +49,12 @@ export declare const useHistoryStore: import("pinia").StoreDefinition<"history",
49
49
  canRedo: import("vue").ComputedRef<boolean>;
50
50
  captureBaseline: () => void;
51
51
  capture: (args: {
52
- source: HistoryEntry['source'];
53
- actor: HistoryEntry['actor'];
52
+ source: HistoryEntry["source"];
53
+ actor: HistoryEntry["actor"];
54
54
  label?: string;
55
- }) => 'committed' | 'oversized' | 'noop' | 'skipped';
56
- captureTemplateSwitch: (label?: string) => 'committed' | 'oversized' | 'noop' | 'skipped';
57
- captureAiChangeset: (label?: string) => 'committed' | 'oversized' | 'noop' | 'skipped';
55
+ }) => "committed" | "oversized" | "noop" | "skipped";
56
+ captureTemplateSwitch: (label?: string) => "committed" | "oversized" | "noop" | "skipped";
57
+ captureAiChangeset: (label?: string) => "committed" | "oversized" | "noop" | "skipped";
58
58
  mergeNextMutation: () => void;
59
59
  undo: () => Promise<void>;
60
60
  redo: () => Promise<void>;
@@ -71,12 +71,12 @@ export declare const useHistoryStore: import("pinia").StoreDefinition<"history",
71
71
  canRedo: import("vue").ComputedRef<boolean>;
72
72
  captureBaseline: () => void;
73
73
  capture: (args: {
74
- source: HistoryEntry['source'];
75
- actor: HistoryEntry['actor'];
74
+ source: HistoryEntry["source"];
75
+ actor: HistoryEntry["actor"];
76
76
  label?: string;
77
- }) => 'committed' | 'oversized' | 'noop' | 'skipped';
78
- captureTemplateSwitch: (label?: string) => 'committed' | 'oversized' | 'noop' | 'skipped';
79
- captureAiChangeset: (label?: string) => 'committed' | 'oversized' | 'noop' | 'skipped';
77
+ }) => "committed" | "oversized" | "noop" | "skipped";
78
+ captureTemplateSwitch: (label?: string) => "committed" | "oversized" | "noop" | "skipped";
79
+ captureAiChangeset: (label?: string) => "committed" | "oversized" | "noop" | "skipped";
80
80
  mergeNextMutation: () => void;
81
81
  undo: () => Promise<void>;
82
82
  redo: () => Promise<void>;
@@ -23,6 +23,12 @@ export declare const useUiStore: import("pinia").StoreDefinition<"ui", UIRootSta
23
23
  setUserPersonalisationData({ personalisationData, }: {
24
24
  personalisationData: UserPersonalisationContent[];
25
25
  }): void;
26
+ setUserPromptContentKey({ userPromptContentKey, }: {
27
+ userPromptContentKey: string | undefined;
28
+ }): void;
29
+ setShowAiTemplatesTab({ showAiTemplatesTab, }: {
30
+ showAiTemplatesTab: boolean;
31
+ }): void;
26
32
  onBackgroundChanged(): void;
27
33
  onContentChanged(): void;
28
34
  onStyleChanged(): void;
@@ -27,6 +27,8 @@ export const useUiStore = defineStore('ui', {
27
27
  },
28
28
  personalisationData: undefined,
29
29
  isPersonalisationEnabled: false,
30
+ userPromptContentKey: undefined,
31
+ showAiTemplatesTab: false,
30
32
  }),
31
33
  actions: {
32
34
  setLogoTheme(payload) {
@@ -47,6 +49,12 @@ export const useUiStore = defineStore('ui', {
47
49
  setUserPersonalisationData({ personalisationData, }) {
48
50
  this.personalisationData = personalisationData;
49
51
  },
52
+ setUserPromptContentKey({ userPromptContentKey, }) {
53
+ this.userPromptContentKey = userPromptContentKey;
54
+ },
55
+ setShowAiTemplatesTab({ showAiTemplatesTab, }) {
56
+ this.showAiTemplatesTab = showAiTemplatesTab;
57
+ },
50
58
  onBackgroundChanged() {
51
59
  const brandPageMakerStore = useBrandPageMakerStore();
52
60
  brandPageMakerStore.onBackgroundChanged();
@@ -1,4 +1,4 @@
1
- import { SENSITIVE_CONTENT_TYPES } from '@brand-page';
1
+ import {} from '@brand-page';
2
2
  import { RESERVED_FIELD_NAMES } from '@shared/content-settings/constants';
3
3
  import { CONTENT_SETTINGS_CONFIGS } from '../constants';
4
4
  export const mapContentSettingsConfigToAddContentOption = (features) => (config) => {
@@ -31,5 +31,5 @@ export declare const sanitiseClientSideRTE: (html: string) => SanitizationResult
31
31
  */
32
32
  export declare const sanitizeRTEHtml: (html: string, domPurify: DOMPurify) => SanitizationResult;
33
33
  export declare const isLogoColor: (color: string) => boolean;
34
- export declare const getRTEColor: (color: string | null | undefined, colorType?: 'text' | 'background', defaultValue?: string) => string;
34
+ export declare const getRTEColor: (color: string | null | undefined, colorType?: "text" | "background", defaultValue?: string) => string;
35
35
  export declare const hasLogoColorVar: (color: string) => boolean;
@@ -314,7 +314,7 @@ const transformRTEField = (content, pair, externalEditor, uiStyleSettingsStore,
314
314
  if (textStyleType && (textStyleType === type || uiStyleSettingsStore)) {
315
315
  let globalContentStyle = uiStyleSettingsStore
316
316
  ? uiStyleSettingsStore.textStyles.textStyleOptions[textStyleType].style
317
- : newStyle ?? {};
317
+ : (newStyle ?? {});
318
318
  globalContentStyle = {
319
319
  ...globalContentStyle,
320
320
  textAlign: style?.textAlign,
@@ -371,7 +371,7 @@ export const transformToRTE = (uiPageSettingStore, externalEditor, uiStyleSettin
371
371
  (textItemStyleType === type || uiStyleSettingsStore)) {
372
372
  let globalContentStyle = uiStyleSettingsStore
373
373
  ? uiStyleSettingsStore.textStyles.textStyleOptions[textItemStyleType].style
374
- : newStyle ?? {};
374
+ : (newStyle ?? {});
375
375
  globalContentStyle = {
376
376
  ...globalContentStyle,
377
377
  textAlign: textItemContent.textStyle.textAlign,
@@ -396,7 +396,7 @@ export const transformToRTE = (uiPageSettingStore, externalEditor, uiStyleSettin
396
396
  let globalContentStyle = uiStyleSettingsStore
397
397
  ? uiStyleSettingsStore.textStyles.textStyleOptions[textStyleType]
398
398
  .style
399
- : newStyle ?? {};
399
+ : (newStyle ?? {});
400
400
  globalContentStyle = {
401
401
  ...globalContentStyle,
402
402
  textAlign: textContent.textStyle.textAlign,
@@ -428,7 +428,7 @@ export const switchAllContentToRTE = (uiPageSettingStore, externalEditor, uiStyl
428
428
  if (contentItem.type === 'text') {
429
429
  const textContent = contentItem.settings.content;
430
430
  if (textContent.textItems && textContent.textItems.length > 0) {
431
- for (const [itemIndex, textItemContent,] of textContent.textItems.entries()) {
431
+ for (const [_itemIndex, textItemContent,] of textContent.textItems.entries()) {
432
432
  const textItemStyleType = textItemContent.textStyle.textStyleType;
433
433
  if (textItemStyleType && uiStyleSettingsStore) {
434
434
  let globalContentStyle = uiStyleSettingsStore.textStyles
@@ -1,5 +1,6 @@
1
1
  import type { MinifiedBrandPageMetadata } from '../utils/minify-brand-page-metadata';
2
2
  import type { AssetEntry } from '../utils/build-asset-manifest';
3
+ import type { BrandPageModel } from '../brand-page/models';
3
4
  export interface ActiveContext {
4
5
  currentPageId: string;
5
6
  }
@@ -9,6 +10,12 @@ export interface LogoContext {
9
10
  }
10
11
  export interface WebsiteContext {
11
12
  metadata: MinifiedBrandPageMetadata;
13
+ /**
14
+ * Full structural metadata (logos externalized to `logoAssetKey`, no base64,
15
+ * no field-stripping) — persisted for the preview render only. The LLM uses
16
+ * `metadata` (minified); the preview renderer uses this for full fidelity.
17
+ */
18
+ metadataFull?: BrandPageModel;
12
19
  assets?: AssetEntry[];
13
20
  activeContext?: ActiveContext;
14
21
  businessName?: string;
@@ -1,3 +1,4 @@
1
+ import type { BrandPageType } from '@brand-page';
1
2
  import type { WebsiteSlugCheckResponse } from '@brand-page-maker/models/api.model';
2
3
  import type { BrandPageLogoDesignAttributesModel } from './fabric-render-client';
3
4
  export interface SaveBrandPageResponse {
@@ -42,20 +43,20 @@ export interface getWebsiteContextualUpgradeResponse {
42
43
  showContextualUpgrade: boolean;
43
44
  }
44
45
  declare const _default: {
45
- saveBrandPageAsync: (brandPageType: "default" | "brandSite" | "brandContact", request: any, designDraftToken?: string | undefined) => Promise<SaveBrandPageResponse | null>;
46
- setBrandPageSlugAsync: (brandPageType: "default" | "brandSite" | "brandContact", designDraftToken: any, options: any) => Promise<PublishBrandPageResponse | null>;
47
- createDefaultBrandPage: (brandPageType: "default" | "brandSite" | "brandContact", slug: any, logoDraftToken: any) => Promise<any>;
48
- unpublishBrandPageAsync: (brandPageType: "default" | "brandSite" | "brandContact", designDraftToken: any) => Promise<PublishBrandPageResponse | null>;
49
- updateBrandPageMetaAsync: (brandPageType: "default" | "brandSite" | "brandContact", designDraftToken: any, request: any) => Promise<any>;
50
- updateSensitiveContentAsync: (brandPageType: "default" | "brandSite" | "brandContact", designDraftToken: any, request: any) => Promise<any>;
51
- getStripeOnboardingUrl: (brandPageType: "default" | "brandSite" | "brandContact", designDraftToken: any, taxId: any, options?: {}) => Promise<any>;
52
- createBrandPageCustomDomainAsync: (brandPageType: "default" | "brandSite" | "brandContact", designDraftToken: any, domainName: any, isPurchasedDomain: boolean) => Promise<import("axios").AxiosResponse<any, any>>;
53
- deleteBrandPageCustomDomainByCustomDomainIdAsync: (brandPageType: "default" | "brandSite" | "brandContact", designDraftToken: any, customDomainId: any) => Promise<void>;
54
- getBrandPageCustomDomainConfigAsync: (brandPageType: "default" | "brandSite" | "brandContact") => Promise<any>;
55
- updateBrandPageIsCustomDomainEnabledAsync: (brandPageType: "default" | "brandSite" | "brandContact", designDraftToken: any, isCustomDomainEnabled: any) => Promise<any>;
56
- getBrandPageIsCustomDomainEnabledAsync: (brandPageType: "default" | "brandSite" | "brandContact", designDraftToken: any) => Promise<any>;
57
- getBrandPageCustomDomainAsync: (brandPageType: "default" | "brandSite" | "brandContact", designDraftToken: any) => Promise<any>;
58
- checkWebsiteSlugAsync: (brandPageType: "default" | "brandSite" | "brandContact", designDraftToken: string, slug: string) => Promise<WebsiteSlugCheckResponse>;
46
+ saveBrandPageAsync: (brandPageType: BrandPageType, request: any, designDraftToken?: string) => Promise<SaveBrandPageResponse | null>;
47
+ setBrandPageSlugAsync: (brandPageType: BrandPageType, designDraftToken: any, options: any) => Promise<PublishBrandPageResponse | null>;
48
+ createDefaultBrandPage: (brandPageType: BrandPageType, slug: any, logoDraftToken: any) => Promise<any>;
49
+ unpublishBrandPageAsync: (brandPageType: BrandPageType, designDraftToken: any) => Promise<PublishBrandPageResponse | null>;
50
+ updateBrandPageMetaAsync: (brandPageType: BrandPageType, designDraftToken: any, request: any) => Promise<any>;
51
+ updateSensitiveContentAsync: (brandPageType: BrandPageType, designDraftToken: any, request: any) => Promise<any>;
52
+ getStripeOnboardingUrl: (brandPageType: BrandPageType, designDraftToken: any, taxId: any, options?: {}) => Promise<any>;
53
+ createBrandPageCustomDomainAsync: (brandPageType: BrandPageType, designDraftToken: any, domainName: any, isPurchasedDomain: boolean) => Promise<import("axios").AxiosResponse<any, any, {}>>;
54
+ deleteBrandPageCustomDomainByCustomDomainIdAsync: (brandPageType: BrandPageType, designDraftToken: any, customDomainId: any) => Promise<void>;
55
+ getBrandPageCustomDomainConfigAsync: (brandPageType: BrandPageType) => Promise<any>;
56
+ updateBrandPageIsCustomDomainEnabledAsync: (brandPageType: BrandPageType, designDraftToken: any, isCustomDomainEnabled: any) => Promise<any>;
57
+ getBrandPageIsCustomDomainEnabledAsync: (brandPageType: BrandPageType, designDraftToken: any) => Promise<any>;
58
+ getBrandPageCustomDomainAsync: (brandPageType: BrandPageType, designDraftToken: any) => Promise<any>;
59
+ checkWebsiteSlugAsync: (brandPageType: BrandPageType, designDraftToken: string, slug: string) => Promise<WebsiteSlugCheckResponse>;
59
60
  searchLogoTemplatesAsync: (request: {
60
61
  businessName: string;
61
62
  query: string;
@@ -64,6 +65,6 @@ declare const _default: {
64
65
  }) => Promise<SearchLogoTemplatesResponse | undefined>;
65
66
  sendLogoSearchImpressionClickData: (logoToken: string, searchImpressionId: string) => Promise<void>;
66
67
  updatePaymentConfigCurrencyAsync: (brandPageToken: string, paymentConfigId: string, newCurrencyId: string) => Promise<any>;
67
- getWebsiteContextualUpgradeTestBucketAsync: (brandPageType: "default" | "brandSite" | "brandContact") => Promise<getWebsiteContextualUpgradeResponse | undefined>;
68
+ getWebsiteContextualUpgradeTestBucketAsync: (brandPageType: BrandPageType) => Promise<getWebsiteContextualUpgradeResponse | undefined>;
68
69
  };
69
70
  export default _default;
@@ -4,6 +4,7 @@ interface DesignTemplateClientOptions {
4
4
  interface GetTemplatesAsyncOptions {
5
5
  categoryName?: string;
6
6
  searchTerm?: string;
7
+ keywords?: string;
7
8
  side?: string;
8
9
  logoDraftToken?: string;
9
10
  logoVariation?: number;
@@ -15,6 +16,8 @@ interface GetTemplatesAsyncOptions {
15
16
  locale?: string;
16
17
  logoS3Token?: string;
17
18
  logoTemplateToken?: string;
19
+ pageSection?: string;
20
+ pageName?: string;
18
21
  }
19
22
  export declare const getTemplatesEndpoint: (templateTypeName: string) => string;
20
23
  export declare const getTemplateEndpoint: (templateToken: any) => string;
@@ -2,7 +2,7 @@ export default class MediaClient {
2
2
  /**
3
3
  * @param {MediaClientOptions} options
4
4
  */
5
- constructor(options: MakerSettings);
5
+ constructor(options: MediaClientOptions);
6
6
  findPaginatedAdminMediaEndpoint: (skip: any, take: any, videoOnly: any) => string;
7
7
  uploadAdminMediaEndpoint: () => string;
8
8
  userPolicyDataEndpoint: () => string;
@@ -55,7 +55,7 @@ export default class MediaClient {
55
55
  * @returns {Promise<MediaDownloadEntity[]>}
56
56
  */
57
57
  getAllUserAsync(skip: any, take: any, videoOnly: any): Promise<MediaDownloadEntity[]>;
58
- updateUserMediaSourceImageUrlByUserMediaTokenAsync(mediaToken: any, sourceImageUrl: any): Promise<import("axios").AxiosResponse<any, any>>;
58
+ updateUserMediaSourceImageUrlByUserMediaTokenAsync(mediaToken: any, sourceImageUrl: any): Promise<import("axios").AxiosResponse<any, any, {}>>;
59
59
  getUserMediaByTokenAsync(mediaToken: any): Promise<any>;
60
60
  }
61
61
  export type PolicyData = {
@@ -4,6 +4,7 @@ export interface Paginated<T> {
4
4
  pageSize: number;
5
5
  pageCount: number;
6
6
  totalResultCount: number;
7
+ abTestValuesToBePushed?: Record<string, string>;
7
8
  }
8
9
  export interface DesignTemplate {
9
10
  token: string;
@@ -12,6 +13,7 @@ export interface DesignTemplate {
12
13
  }
13
14
  export interface PaginatedDesignTemplateItem {
14
15
  designTemplateToken: string;
16
+ isPersonalisable?: boolean;
15
17
  previewImageUrl?: string;
16
18
  }
17
19
  export interface DisplayLogoDraftAsset {
@@ -131,13 +131,17 @@ export function useSnapshot() {
131
131
  // the width crisp and let MAX_SNAPSHOT_HEIGHT bound the cost.
132
132
  const captureWidth = target.clientWidth || target.offsetWidth || 1;
133
133
  const scale = Math.min(1, SNAPSHOT_TARGET_WIDTH / captureWidth);
134
- // Pre-fetch blob-backed SVGs from content shape <object> elements so they
135
- // can be rendered as <img> in the clone (html2canvas can't reach into the
136
- // isolated DOM inside <object>). Background-shape blob <img>s are NOT
137
- // converted: html2canvas renders them no differently with or without the
138
- // conversion, so it'd just be wasted fetches.
134
+ // Inline every shape's blob-backed SVG as a data: URI up front. Shapes
135
+ // (content + background) render their coloured SVG via an <img> whose src
136
+ // is a `blob:` URL from URL.createObjectURL. The owning component revokes
137
+ // that blob on re-render (colour/size/imageUrl change) and on unmount —
138
+ // exactly what an AI "change all my contents" run triggers right before we
139
+ // capture. html2canvas fetches each <img> src ASYNCHRONOUSLY while
140
+ // rendering, so a concurrent revoke leaves it fetching a dead blob URL →
141
+ // the shape 404s and snapshots blank. A data: URI can't be revoked, so
142
+ // swapping the blob for one in the clone removes the race.
139
143
  const blobSvgUris = new Map();
140
- const blobSources = Array.from(element.querySelectorAll('.c-shape-object object')).map((o) => o.getAttribute('data'));
144
+ const blobSources = Array.from(element.querySelectorAll('.c-shape-object img')).map((img) => img.getAttribute('src'));
141
145
  for (const src of blobSources) {
142
146
  if (src && src.startsWith('blob:') && !blobSvgUris.has(src)) {
143
147
  try {
@@ -245,19 +249,15 @@ export function useSnapshot() {
245
249
  height: 'auto',
246
250
  overflow: 'visible',
247
251
  });
248
- // Swap content shape <object>s for <img> using the pre-fetched data
249
- // URIs (html2canvas can't render <object> SVGs directly).
252
+ // Repoint each shape <img> from its (revocable) blob: src to the
253
+ // pre-fetched data: URI so html2canvas never fetches a blob that may
254
+ // have been revoked mid-capture.
250
255
  _doc
251
- .querySelectorAll('.c-shape-object object')
252
- .forEach((obj) => {
253
- const dataUrl = obj.getAttribute('data');
254
- if (dataUrl && blobSvgUris.has(dataUrl)) {
255
- const img = _doc.createElement('img');
256
- img.src = blobSvgUris.get(dataUrl);
257
- const style = obj.getAttribute('style');
258
- if (style)
259
- img.setAttribute('style', style);
260
- obj.parentNode?.replaceChild(img, obj);
256
+ .querySelectorAll('.c-shape-object img')
257
+ .forEach((img) => {
258
+ const src = img.getAttribute('src');
259
+ if (src && blobSvgUris.has(src)) {
260
+ img.src = blobSvgUris.get(src);
261
261
  }
262
262
  });
263
263
  // Replace object-fit images with a background-size div so they