@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
@@ -628,15 +628,15 @@ export const useRichTextEditor = (
628
628
  );
629
629
  fontSettings.selectedTextColor = hasLogoColorVar(globalStyles.color ?? '')
630
630
  ? '#000000'
631
- : globalStyles?.color ?? '#000000';
631
+ : (globalStyles?.color ?? '#000000');
632
632
  fontSettings.selectedBackgroundColor = hasLogoColorVar(
633
633
  globalStyles?.backgroundColor ?? '',
634
634
  )
635
635
  ? 'transparent'
636
- : globalStyles?.backgroundColor ?? 'transparent';
636
+ : (globalStyles?.backgroundColor ?? 'transparent');
637
637
  lineHeight.value = globalStyles?.lineHeight?.includes('em')
638
638
  ? emToPx(globalStyles?.lineHeight ?? '1em')
639
- : globalStyles?.lineHeight ?? '1';
639
+ : (globalStyles?.lineHeight ?? '1');
640
640
  letterSpacing.value = letterSpacingValueConvertor.convert(
641
641
  globalStyles ?? {},
642
642
  );
@@ -658,15 +658,15 @@ export const useRichTextEditor = (
658
658
  props.styles?.color ?? '#000000',
659
659
  )
660
660
  ? '#000000'
661
- : props.styles?.color ?? '#000000';
661
+ : (props.styles?.color ?? '#000000');
662
662
  fontSettings.selectedBackgroundColor = hasLogoColorVar(
663
663
  props.styles?.backgroundColor ?? '',
664
664
  )
665
665
  ? 'transparent'
666
- : props.styles?.backgroundColor ?? 'transparent';
666
+ : (props.styles?.backgroundColor ?? 'transparent');
667
667
  lineHeight.value = props.styles?.lineHeight?.includes('em')
668
668
  ? emToPx(props.styles?.lineHeight ?? '1em')
669
- : props.styles?.lineHeight ?? '1';
669
+ : (props.styles?.lineHeight ?? '1');
670
670
  letterSpacing.value = letterSpacingValueConvertor.convert(
671
671
  props.styles ?? {},
672
672
  );
@@ -103,6 +103,7 @@ export const UPGRADE_CTA_LOCATIONS = {
103
103
 
104
104
  export const AI_CTA_LOCATIONS = {
105
105
  AI_BUILDER_TAB: 'ai_builder_tab',
106
+ AI_BUILDER_CHAT_UPSELL: 'ai_builder_chat_upsell',
106
107
  };
107
108
 
108
109
  export const TRIGGER_TYPE = {
@@ -217,14 +217,14 @@ const PADDING_CONTROL_FIELDS = (
217
217
  type: 'slider',
218
218
  title: contentSettingsTr(`topPaddingTitle`),
219
219
  minLength: 0,
220
- maxLength: 100,
220
+ maxLength: 200,
221
221
  groupId,
222
222
  },
223
223
  bottomPadding: {
224
224
  type: 'slider',
225
225
  title: contentSettingsTr(`bottomPaddingTitle`),
226
226
  minLength: 0,
227
- maxLength: 100,
227
+ maxLength: 200,
228
228
  groupId,
229
229
  },
230
230
  });
@@ -446,9 +446,9 @@ const shopReplaceImageSettings =
446
446
  titleReplace: contentSettingsTr(`imageReplaceTitle`),
447
447
  contentMediaFieldName: MediaFieldNames.requestPaymentConfig,
448
448
  setContentMedia: (
449
- content: ShopContent,
450
- value: SetContentMediaPayload,
451
- index?: number,
449
+ _content: ShopContent,
450
+ _value: SetContentMediaPayload,
451
+ _index?: number,
452
452
  ) => '',
453
453
  openByDefault: false,
454
454
  mediaType: null,
@@ -11,7 +11,7 @@ import {
11
11
  import type { ImagesSectionContent, MediaType } from '@brand-page';
12
12
 
13
13
  export const getTextMediaOptionsConverterByMediaType = (
14
- mediaType: MediaType,
14
+ _mediaType: MediaType,
15
15
  ): ValueConvertor<
16
16
  string | null,
17
17
  ButtonGroupConfig,
@@ -15,8 +15,10 @@ export const ButtonStyleConfigOptions = [
15
15
 
16
16
  export type ButtonStyleConfigOption = (typeof ButtonStyleConfigOptions)[number];
17
17
 
18
- export interface ButtonStyleConfig
19
- extends Omit<ButtonStyles, 'style' | 'template' | 'selectedButtonStyleId'> {
18
+ export interface ButtonStyleConfig extends Omit<
19
+ ButtonStyles,
20
+ 'style' | 'template' | 'selectedButtonStyleId'
21
+ > {
20
22
  readonly id: string;
21
23
  readonly hasShadow: boolean;
22
24
  readonly hasSoftShadow?: boolean;
@@ -156,8 +156,10 @@ export interface ContentSettingsField<TContent> {
156
156
  styleName?: string;
157
157
  }
158
158
 
159
- export interface ContentSettingsMultiField<TContent, TField>
160
- extends Omit<ContentSettingsField<TContent>, 'type' | 'role'> {
159
+ export interface ContentSettingsMultiField<TContent, TField> extends Omit<
160
+ ContentSettingsField<TContent>,
161
+ 'type' | 'role'
162
+ > {
161
163
  type: ItemMultiFieldType;
162
164
  role: 'multi';
163
165
  fields?: {
@@ -14,7 +14,7 @@ import type {
14
14
  import type { PageSection } from '@shared/page-settings/models';
15
15
  import { PAGE_SECTIONS } from '@shared/page-settings/models';
16
16
  import type { ButtonGroupOption } from './button-group.model';
17
- import { tr, commonTr, modelsTr } from '@src/composables/useTranslate';
17
+ import { commonTr, modelsTr } from '@src/composables/useTranslate';
18
18
 
19
19
  export const NavigationStyleConfigOptions = {
20
20
  defaultBorderColor: 'defaultBorderColor',
@@ -46,11 +46,10 @@ export const NAVIGATION_STYLE_CONFIG_OPTION_TITLES = (): Record<
46
46
  subNavBackgroundColor: modelsTr('subNavBackgroundColor'),
47
47
  });
48
48
 
49
- export interface NavigationStyleConfig
50
- extends Omit<
51
- NavigationDesktop | NavigationMobile,
52
- 'isLogoVisible' | 'hamburgerMenuStyle' | 'viewport'
53
- > {
49
+ export interface NavigationStyleConfig extends Omit<
50
+ NavigationDesktop | NavigationMobile,
51
+ 'isLogoVisible' | 'hamburgerMenuStyle' | 'viewport'
52
+ > {
54
53
  buttonGroupOption: ButtonGroupOption;
55
54
  options: NavigationStyleConfigOption[];
56
55
  }
@@ -2,7 +2,6 @@ import {
2
2
  EMPTY_LOGO_IMAGE_MODEL,
3
3
  type FabricLogoTheme,
4
4
  type LogoContent,
5
- type LogoImageModel,
6
5
  type LogoTemplateImageModel,
7
6
  type LogoTheme,
8
7
  } from '@brand-page';
@@ -21,7 +21,6 @@ import {
21
21
  BRAND_PAGE_TYPES,
22
22
  SENSITIVE_CONTENT_TYPES,
23
23
  getAbTestResults,
24
- getValueType,
25
24
  type AbTest,
26
25
  type LogoContent,
27
26
  } from '@brand-page';
@@ -34,7 +33,6 @@ import {
34
33
  TRIGGER_TYPE,
35
34
  UPGRADE_CTA_LOCATIONS,
36
35
  useEventTracker,
37
- EVENTS,
38
36
  } from '@brand-page-maker/composables/useEventTracker';
39
37
  import { navigationTr } from '@src/composables/useTranslate';
40
38
  import type { WebsiteSlugCheckResponse } from '@brand-page-maker/models/api.model';
@@ -123,6 +121,7 @@ export type InitialisePayload = Omit<
123
121
  logoDraftAssets: LogoDraftAsset[];
124
122
  gettyVideos: GettyVideoEditorViewModelResponse[];
125
123
  templateSearchTerm: string | undefined;
124
+ aiTemplateKeywords: string | undefined;
126
125
  onSearchTermChanged?: OnSearchTermChangedCallback;
127
126
  };
128
127
 
@@ -266,6 +265,10 @@ export const useBrandPageContainerStore = defineStore('brandPageContainer', {
266
265
  onSearchTermChanged: payload.onSearchTermChanged,
267
266
  });
268
267
 
268
+ templateSettingsStore.setAiTemplateKeywords({
269
+ aiTemplateKeywords: payload.aiTemplateKeywords ?? '',
270
+ });
271
+
269
272
  brandPageMakerStore.setSelectedTemplateId({
270
273
  templateId: this.designTemplateToken,
271
274
  });
@@ -446,7 +449,7 @@ export const useBrandPageContainerStore = defineStore('brandPageContainer', {
446
449
 
447
450
  async publishBrandPage({ shouldPublish, slug }) {
448
451
  const brandPageMakerStore = useBrandPageMakerStore();
449
- const eventTracker = useEventTracker();
452
+ const _eventTracker = useEventTracker();
450
453
 
451
454
  if (!this.designDraftToken) {
452
455
  throw new Error(
@@ -553,7 +556,7 @@ export const useBrandPageContainerStore = defineStore('brandPageContainer', {
553
556
  isPurchasedDomain,
554
557
  }) {
555
558
  const brandPageMakerStore = useBrandPageMakerStore();
556
- const eventTracker = useEventTracker();
559
+ const _eventTracker = useEventTracker();
557
560
 
558
561
  if (!this.designDraftToken) {
559
562
  throw new Error(
@@ -887,7 +890,7 @@ export const useBrandPageContainerStore = defineStore('brandPageContainer', {
887
890
  ) {
888
891
  const userStore = useBrandPageMakerUserStore();
889
892
  const brandPageMakerStore = useBrandPageMakerStore();
890
- const eventTracker = useEventTracker();
893
+ const _eventTracker = useEventTracker();
891
894
 
892
895
  if (userStore.isAdmin) {
893
896
  throw new Error('save brand page is not allowed in admin mode');
@@ -2,7 +2,6 @@ import { vi } from 'vitest';
2
2
  import {
3
3
  BRAND_PAGE,
4
4
  INITIALISE_PAYLOAD,
5
- USER_FEATURES,
6
5
  userFeatures,
7
6
  } from '../../components/brand-page-maker/__fixtures__';
8
7
  import {
@@ -44,6 +43,7 @@ import { useUiBackgroundSettingsStore } from '@shared/background-settings/store'
44
43
  import { useBrandPageMakerUserStore } from '../user';
45
44
  import { useBrandPageContainerStore } from '../brandpage-container';
46
45
  import { useUiTemplateSettingsStore } from '@shared/template-settings/store';
46
+ import { usePageNavigationStore } from '@shared/page-navigation/store/page-navigation-store';
47
47
  import {
48
48
  CONTENT_SETTINGS_MODES,
49
49
  useUiContentSettingsStore,
@@ -54,8 +54,6 @@ import { SIDE_BAR_TAB_NAMES } from '@brand-page-maker/constants';
54
54
  import { PAGE_SECTIONS } from '@shared/page-settings/models';
55
55
  import { FabricRenderClient } from '../../../clients/fabric-render-client';
56
56
  import { setLocaleAsync } from '@src/composables/useTranslate';
57
- import { usePageNavigationStore } from '@shared/page-navigation/store/page-navigation-store';
58
- import type { NavModel } from '@brand-page/models';
59
57
 
60
58
  const createInitialisePayload = () => {
61
59
  const initialisePayload = {
@@ -23,14 +23,12 @@ import {
23
23
  CONTENT_TYPES,
24
24
  NavigationDesktop,
25
25
  NavigationMobile,
26
- NavModel,
27
26
  } from '@brand-page';
28
27
  import type {
29
28
  DesignTemplateType,
30
29
  InitialCategories,
31
30
  TemplateCategory,
32
31
  } from '@shared/template-settings/models';
33
- import type { UserFeatures } from '../user';
34
32
  import { useBrandPageMakerUserStore } from '../user';
35
33
  import { defineStore } from 'pinia';
36
34
  import { toRaw } from 'vue';
@@ -125,6 +123,8 @@ export interface InitialisePayload {
125
123
  templateCategories: TemplateCategory[];
126
124
  personalisationData?: UserPersonalisationContent[];
127
125
  isPersonalisationEnabled: boolean;
126
+ userPromptContentKey?: string;
127
+ showAiTemplatesTab?: boolean;
128
128
  businessName: string | undefined;
129
129
  industry: string | undefined;
130
130
  layout?: string;
@@ -1230,11 +1230,13 @@ export const useBrandPageMakerStore = defineStore('brandPageMaker', {
1230
1230
  templateCategories,
1231
1231
  personalisationData,
1232
1232
  isPersonalisationEnabled,
1233
+ userPromptContentKey,
1234
+ showAiTemplatesTab = false,
1233
1235
  businessName,
1234
1236
  industry,
1235
1237
  layout,
1236
1238
  logoVariationImageUrls,
1237
- shopConfigData,
1239
+ shopConfigData: _shopConfigData,
1238
1240
  isServerRenderOverride = false,
1239
1241
  }: InitialisePayload) {
1240
1242
  const brandPageContainerStore = useBrandPageContainerStore();
@@ -1246,7 +1248,7 @@ export const useBrandPageMakerStore = defineStore('brandPageMaker', {
1246
1248
  const backgroundSettingsStore = useUiBackgroundSettingsStore();
1247
1249
  const styleSettingsStore = useUiStyleSettingsStore();
1248
1250
  const navigationStyleSettingsStore = useUiNavigationStyleSettingsStore();
1249
- const sideBarStore = useUiSideBarStore();
1251
+ const _sideBarStore = useUiSideBarStore();
1250
1252
 
1251
1253
  navigationStyleSettingsStore.initialise({ reset: false });
1252
1254
 
@@ -1353,6 +1355,10 @@ export const useBrandPageMakerStore = defineStore('brandPageMaker', {
1353
1355
  });
1354
1356
  }
1355
1357
 
1358
+ uiStore.setUserPromptContentKey({ userPromptContentKey });
1359
+
1360
+ uiStore.setShowAiTemplatesTab({ showAiTemplatesTab });
1361
+
1356
1362
  templateSettingsStore.setTemplateCategories({
1357
1363
  categories: templateCategories,
1358
1364
  });
@@ -1800,6 +1806,7 @@ export const useBrandPageMakerStore = defineStore('brandPageMaker', {
1800
1806
  const navigationStyleSettingsStore = useUiNavigationStyleSettingsStore();
1801
1807
  const shopStore = useShopConfigStore();
1802
1808
  const pageNavigationStore = usePageNavigationStore();
1809
+ const uiStore = useUiStore();
1803
1810
 
1804
1811
  const pages = pageSettingsStore.pages.map((p) => ({
1805
1812
  ...p,
@@ -1817,6 +1824,7 @@ export const useBrandPageMakerStore = defineStore('brandPageMaker', {
1817
1824
 
1818
1825
  return {
1819
1826
  v: GetLatestModelVersion(),
1827
+ userPromptContentKey: uiStore.userPromptContentKey,
1820
1828
  pages,
1821
1829
  styles: {
1822
1830
  logoStyles,
@@ -48,6 +48,8 @@ export const useUiStore = defineStore('ui', {
48
48
  },
49
49
  personalisationData: undefined,
50
50
  isPersonalisationEnabled: false,
51
+ userPromptContentKey: undefined,
52
+ showAiTemplatesTab: false,
51
53
  }),
52
54
  actions: {
53
55
  setLogoTheme(payload: { logoTheme: LogoTheme }) {
@@ -78,6 +80,20 @@ export const useUiStore = defineStore('ui', {
78
80
  }) {
79
81
  this.personalisationData = personalisationData;
80
82
  },
83
+ setUserPromptContentKey({
84
+ userPromptContentKey,
85
+ }: {
86
+ userPromptContentKey: string | undefined;
87
+ }) {
88
+ this.userPromptContentKey = userPromptContentKey;
89
+ },
90
+ setShowAiTemplatesTab({
91
+ showAiTemplatesTab,
92
+ }: {
93
+ showAiTemplatesTab: boolean;
94
+ }) {
95
+ this.showAiTemplatesTab = showAiTemplatesTab;
96
+ },
81
97
  onBackgroundChanged() {
82
98
  const brandPageMakerStore = useBrandPageMakerStore();
83
99
 
@@ -7,7 +7,7 @@ import type {
7
7
  ContentSettingsConfig,
8
8
  CreateInitialContentOptions,
9
9
  } from '../models';
10
- import { SENSITIVE_CONTENT_TYPES, type Content } from '@brand-page';
10
+ import { type Content } from '@brand-page';
11
11
  import { RESERVED_FIELD_NAMES } from '@shared/content-settings/constants';
12
12
  import { CONTENT_SETTINGS_CONFIGS } from '../constants';
13
13
  import type { UIUserFeatures } from '@src/constants/ui';
@@ -431,7 +431,7 @@ const transformRTEField = (
431
431
  if (textStyleType && (textStyleType === type || uiStyleSettingsStore)) {
432
432
  let globalContentStyle = uiStyleSettingsStore
433
433
  ? uiStyleSettingsStore.textStyles.textStyleOptions[textStyleType].style
434
- : newStyle ?? ({} as TextStyleDeclaration);
434
+ : (newStyle ?? ({} as TextStyleDeclaration));
435
435
 
436
436
  globalContentStyle = {
437
437
  ...globalContentStyle,
@@ -549,7 +549,7 @@ export const transformToRTE = (
549
549
  ? uiStyleSettingsStore.textStyles.textStyleOptions[
550
550
  textItemStyleType
551
551
  ].style
552
- : newStyle ?? ({} as TextStyleDeclaration);
552
+ : (newStyle ?? ({} as TextStyleDeclaration));
553
553
 
554
554
  globalContentStyle = {
555
555
  ...globalContentStyle,
@@ -593,7 +593,7 @@ export const transformToRTE = (
593
593
  let globalContentStyle = uiStyleSettingsStore
594
594
  ? uiStyleSettingsStore.textStyles.textStyleOptions[textStyleType]
595
595
  .style
596
- : newStyle ?? ({} as TextStyleDeclaration);
596
+ : (newStyle ?? ({} as TextStyleDeclaration));
597
597
 
598
598
  globalContentStyle = {
599
599
  ...globalContentStyle,
@@ -647,7 +647,7 @@ export const switchAllContentToRTE = (
647
647
 
648
648
  if (textContent.textItems && textContent.textItems.length > 0) {
649
649
  for (const [
650
- itemIndex,
650
+ _itemIndex,
651
651
  textItemContent,
652
652
  ] of textContent.textItems.entries()) {
653
653
  const textItemStyleType = textItemContent.textStyle.textStyleType;
@@ -2,6 +2,7 @@ import axios, { type AxiosError } from 'axios';
2
2
  import { useBrandPageContainerStore } from '../brand-page-maker/stores/brandpage-container/brand-page-container-store';
3
3
  import type { MinifiedBrandPageMetadata } from '../utils/minify-brand-page-metadata';
4
4
  import type { AssetEntry } from '../utils/build-asset-manifest';
5
+ import type { BrandPageModel } from '../brand-page/models';
5
6
 
6
7
  export interface ActiveContext {
7
8
  currentPageId: string;
@@ -14,6 +15,12 @@ export interface LogoContext {
14
15
 
15
16
  export interface WebsiteContext {
16
17
  metadata: MinifiedBrandPageMetadata;
18
+ /**
19
+ * Full structural metadata (logos externalized to `logoAssetKey`, no base64,
20
+ * no field-stripping) — persisted for the preview render only. The LLM uses
21
+ * `metadata` (minified); the preview renderer uses this for full fidelity.
22
+ */
23
+ metadataFull?: BrandPageModel;
17
24
  assets?: AssetEntry[];
18
25
  activeContext?: ActiveContext;
19
26
  businessName?: string;
@@ -11,6 +11,7 @@ interface DesignTemplateClientOptions {}
11
11
  interface GetTemplatesAsyncOptions {
12
12
  categoryName?: string;
13
13
  searchTerm?: string;
14
+ keywords?: string;
14
15
  side?: string;
15
16
  logoDraftToken?: string;
16
17
  logoVariation?: number;
@@ -22,6 +23,8 @@ interface GetTemplatesAsyncOptions {
22
23
  locale?: string;
23
24
  logoS3Token?: string;
24
25
  logoTemplateToken?: string;
26
+ pageSection?: string;
27
+ pageName?: string;
25
28
  }
26
29
 
27
30
  export const getTemplatesEndpoint = (templateTypeName: string) =>
@@ -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
 
9
10
  export interface DesignTemplate {
@@ -14,6 +15,7 @@ export interface DesignTemplate {
14
15
 
15
16
  export interface PaginatedDesignTemplateItem {
16
17
  designTemplateToken: string;
18
+ isPersonalisable?: boolean;
17
19
  previewImageUrl?: string;
18
20
  }
19
21
 
@@ -180,15 +180,19 @@ export function useSnapshot() {
180
180
  const captureWidth = target.clientWidth || target.offsetWidth || 1;
181
181
  const scale = Math.min(1, SNAPSHOT_TARGET_WIDTH / captureWidth);
182
182
 
183
- // Pre-fetch blob-backed SVGs from content shape <object> elements so they
184
- // can be rendered as <img> in the clone (html2canvas can't reach into the
185
- // isolated DOM inside <object>). Background-shape blob <img>s are NOT
186
- // converted: html2canvas renders them no differently with or without the
187
- // conversion, so it'd just be wasted fetches.
183
+ // Inline every shape's blob-backed SVG as a data: URI up front. Shapes
184
+ // (content + background) render their coloured SVG via an <img> whose src
185
+ // is a `blob:` URL from URL.createObjectURL. The owning component revokes
186
+ // that blob on re-render (colour/size/imageUrl change) and on unmount —
187
+ // exactly what an AI "change all my contents" run triggers right before we
188
+ // capture. html2canvas fetches each <img> src ASYNCHRONOUSLY while
189
+ // rendering, so a concurrent revoke leaves it fetching a dead blob URL →
190
+ // the shape 404s and snapshots blank. A data: URI can't be revoked, so
191
+ // swapping the blob for one in the clone removes the race.
188
192
  const blobSvgUris = new Map<string, string>();
189
193
  const blobSources = Array.from(
190
- element.querySelectorAll<HTMLObjectElement>('.c-shape-object object'),
191
- ).map((o) => o.getAttribute('data'));
194
+ element.querySelectorAll<HTMLImageElement>('.c-shape-object img'),
195
+ ).map((img) => img.getAttribute('src'));
192
196
 
193
197
  for (const src of blobSources) {
194
198
  if (src && src.startsWith('blob:') && !blobSvgUris.has(src)) {
@@ -340,23 +344,16 @@ export function useSnapshot() {
340
344
  overflow: 'visible',
341
345
  });
342
346
 
343
- // Swap content shape <object>s for <img> using the pre-fetched data
344
- // URIs (html2canvas can't render <object> SVGs directly).
347
+ // Repoint each shape <img> from its (revocable) blob: src to the
348
+ // pre-fetched data: URI so html2canvas never fetches a blob that may
349
+ // have been revoked mid-capture.
345
350
  _doc
346
- .querySelectorAll<HTMLObjectElement>('.c-shape-object object')
347
- .forEach((obj) => {
348
- const dataUrl = obj.getAttribute('data');
351
+ .querySelectorAll<HTMLImageElement>('.c-shape-object img')
352
+ .forEach((img) => {
353
+ const src = img.getAttribute('src');
349
354
 
350
- if (dataUrl && blobSvgUris.has(dataUrl)) {
351
- const img = _doc.createElement('img');
352
-
353
- img.src = blobSvgUris.get(dataUrl)!;
354
-
355
- const style = obj.getAttribute('style');
356
-
357
- if (style) img.setAttribute('style', style);
358
-
359
- obj.parentNode?.replaceChild(img, obj);
355
+ if (src && blobSvgUris.has(src)) {
356
+ img.src = blobSvgUris.get(src)!;
360
357
  }
361
358
  });
362
359
 
package/src/lib.ts CHANGED
@@ -87,6 +87,18 @@ export {
87
87
  export { sanitizeRTEHtml } from './brand-page-maker/utils';
88
88
  export { getPageSlugFromPageTitle } from './brand-page-maker/utils/slug.util';
89
89
 
90
+ // AI-pipeline preview (longclaw per-turn snapshots): web-renderer's
91
+ // /preview/ai-pipeline render page + manifest server route apply the agent's
92
+ // tool calls to a brand-page metadata snapshot server-side and resolve the
93
+ // target page by slug. These three symbols are otherwise internal to the
94
+ // metadata-builder / route utils.
95
+ export { executeToolCallsAsync } from './metadata-builder/ai-metadata-executor';
96
+ export type { ParsedToolCall } from './metadata-builder/parsers/ai-toolcall-parser';
97
+ export { findNavItemByPageSlug } from './brand-page/utils/route.util';
98
+ // Tiptap-JSON RTE -> HTML (same converter the metadata builders use). Lets the
99
+ // preview render the agent's raw Tiptap fields, which the renderer expects as HTML.
100
+ export { tiptapJsonToHtml } from './metadata-builder/helpers/rte.helpers';
101
+
90
102
  // stores
91
103
  export {
92
104
  useBrandPageMakerStore,