@designcrowd/library.brand-page 6.0.3 → 6.0.4

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 (383) hide show
  1. package/lib/src/{CreatedOnBrandCrowd-de-de-BctSP4tp.js → CreatedOnBrandCrowd-de-de-Ruu5Az32.js} +3 -3
  2. package/lib/src/{CreatedOnBrandCrowd-en-us-BeNytcxt.js → CreatedOnBrandCrowd-en-us-DGUJtvld.js} +3 -3
  3. package/lib/src/{CreatedOnBrandCrowd-es-es-hY12f5TN.js → CreatedOnBrandCrowd-es-es-Dg-1uOfV.js} +3 -3
  4. package/lib/src/{CreatedOnBrandCrowd-fr-fr-C4SCU39P.js → CreatedOnBrandCrowd-fr-ca-CRKraZl8.js} +3 -3
  5. package/lib/src/{CreatedOnBrandCrowd-fr-ca-C4SCU39P.js → CreatedOnBrandCrowd-fr-fr-CRKraZl8.js} +3 -3
  6. package/lib/src/{CreatedOnBrandCrowd-pt-pt-C5J5kWiD.js → CreatedOnBrandCrowd-pt-br-bZ9VlEAu.js} +3 -3
  7. package/lib/src/{CreatedOnBrandCrowd-pt-br-C5J5kWiD.js → CreatedOnBrandCrowd-pt-pt-bZ9VlEAu.js} +3 -3
  8. package/lib/src/{CreatedOnDcom-de-de-DXCeZZLg.js → CreatedOnDcom-de-de-CJYfwZx8.js} +3 -3
  9. package/lib/src/{CreatedOnDcom-en-us-GeBTaofv.js → CreatedOnDcom-en-us-rzA1lVxH.js} +3 -3
  10. package/lib/src/{CreatedOnDcom-es-es-BiPmv1q-.js → CreatedOnDcom-es-es-CNwGPjik.js} +3 -3
  11. package/lib/src/{CreatedOnDcom-fr-ca-Cns_iX4-.js → CreatedOnDcom-fr-ca-DKw7OGIz.js} +3 -3
  12. package/lib/src/{CreatedOnDcom-fr-fr-CC-f_hUR.js → CreatedOnDcom-fr-fr-WzOEaAZG.js} +3 -3
  13. package/lib/src/{CreatedOnDcom-pt-br-DnhSuPKo.js → CreatedOnDcom-pt-br-DkualVhm.js} +3 -3
  14. package/lib/src/{CreatedOnDcom-pt-pt-BCgbUsqY.js → CreatedOnDcom-pt-pt-w4Nnsdzq.js} +3 -3
  15. package/lib/src/brand-page/clients/brand-page.client.d.ts +9 -9
  16. package/lib/src/brand-page/components/image-gallery/masonry/MasonryGallery.mixin.d.ts +2 -1
  17. package/lib/src/brand-page/components/navigation/hamburger/HamburgerNavigation.mixin.d.ts +2 -4
  18. package/lib/src/brand-page/components/navigation/hamburger/HamburgerNavigation.mixin.js +0 -1
  19. package/lib/src/brand-page/components/navigation/navigation-side-menu/NavigationSideMenu.mixin.d.ts +2 -4
  20. package/lib/src/brand-page/components/navigation/navigation-side-menu/NavigationSideMenu.mixin.js +4 -5
  21. package/lib/src/brand-page/components/page/Page.mixin.d.ts +1 -1
  22. package/lib/src/brand-page/components/page/PageComponent.mixin.d.ts +1 -1
  23. package/lib/src/brand-page/components/payment/Payment.mixin.d.ts +3 -3
  24. package/lib/src/brand-page/components/payment/__fixtures__/request-payment.d.ts +13 -13
  25. package/lib/src/brand-page/components/payment/__fixtures__/support-me.d.ts +13 -13
  26. package/lib/src/brand-page/constants/sections/footer-display.constants.js +1 -1
  27. package/lib/src/brand-page/models/index.d.ts +13 -2
  28. package/lib/src/brand-page/models/index.js +0 -3
  29. package/lib/src/brand-page/models/payment.model.d.ts +1 -1
  30. package/lib/src/brand-page/utils/personalisation.util.js +14 -72
  31. package/lib/src/brand-page-maker/components/action-bar/ActionBar.mixin.d.ts +19 -21
  32. package/lib/src/brand-page-maker/components/action-bar/ActionBar.mixin.js +0 -1
  33. package/lib/src/brand-page-maker/components/admin-background-settings/AdminBackgroundSettings.mixin.d.ts +10 -16
  34. package/lib/src/brand-page-maker/components/admin-background-settings/ShapePositionSlider.mixin.d.ts +1 -1
  35. package/lib/src/brand-page-maker/components/admin-logo-settings/AdminLogoSettings.mixin.d.ts +3 -3
  36. package/lib/src/brand-page-maker/components/brand-page-maker/BrandPageMaker.mixin.d.ts +170 -181
  37. package/lib/src/brand-page-maker/components/brand-page-maker/BrandPageMaker.mixin.js +0 -3
  38. package/lib/src/brand-page-maker/components/brand-page-maker/BrandPageMaker.stories.js +0 -1
  39. package/lib/src/brand-page-maker/components/brand-page-maker/BrandPageMakerTemplateSettings.mixin.d.ts +12 -12
  40. package/lib/src/brand-page-maker/components/brand-page-maker/BrandPageMakerTemplateSettings.stories.js +2 -2
  41. package/lib/src/brand-page-maker/components/brand-page-maker/__fixtures__/brand-page-payment.js +7 -0
  42. package/lib/src/brand-page-maker/components/brandpage-maker-page/BrandPageMakerPage.mixin.d.ts +149 -148
  43. package/lib/src/brand-page-maker/components/brandpage-settings/ReplaceImageSettingsForBrandPageSettings.mixin.d.ts +21 -21
  44. package/lib/src/brand-page-maker/components/brandpage-settings/ReplaceImageSettingsForBrandPageSettings.mixin.js +1 -1
  45. package/lib/src/brand-page-maker/components/color-picker/components/ColorModeSelect.mixin.d.ts +2 -4
  46. package/lib/src/brand-page-maker/components/color-picker/components/ColorModeSelect.mixin.js +0 -1
  47. package/lib/src/brand-page-maker/components/color-picker/components/GradientColorSlider.mixin.d.ts +2 -4
  48. package/lib/src/brand-page-maker/components/color-picker/components/GradientColorSlider.mixin.js +0 -1
  49. package/lib/src/brand-page-maker/components/color-picker/components/GradientColorSliderHandler.mixin.d.ts +2 -5
  50. package/lib/src/brand-page-maker/components/color-picker/components/GradientColorSliderHandler.mixin.js +0 -1
  51. package/lib/src/brand-page-maker/components/color-picker/components/GradientTypeSelector.mixin.d.ts +2 -4
  52. package/lib/src/brand-page-maker/components/color-picker/components/GradientTypeSelector.mixin.js +0 -1
  53. package/lib/src/brand-page-maker/components/device/Device.mixin.d.ts +2 -4
  54. package/lib/src/brand-page-maker/components/device/Device.mixin.js +0 -1
  55. package/lib/src/brand-page-maker/components/navigation/Navigation.mixin.d.ts +2 -4
  56. package/lib/src/brand-page-maker/components/navigation/Navigation.mixin.js +0 -1
  57. package/lib/src/brand-page-maker/components/preview/Preview.mixin.d.ts +3 -3
  58. package/lib/src/brand-page-maker/components/quick-link-bar/QuickLinkBar.mixin.d.ts +11 -11
  59. package/lib/src/brand-page-maker/components/seo-settings/SeoPageSettings.mixin.d.ts +25 -27
  60. package/lib/src/brand-page-maker/components/seo-settings/SeoPageSettings.mixin.js +0 -1
  61. package/lib/src/brand-page-maker/components/seo-settings/UrlSettings.mixin.d.ts +27 -27
  62. package/lib/src/brand-page-maker/components/seo-settings/UrlSettings.mixin.js +1 -1
  63. package/lib/src/brand-page-maker/components/seo-settings/UseExistingDomainModal.mixin.d.ts +12 -17
  64. package/lib/src/brand-page-maker/components/social-share/SocialShare.mixin.d.ts +12 -12
  65. package/lib/src/brand-page-maker/components/template-preview/TemplatePreview.mixin.d.ts +32 -30
  66. package/lib/src/brand-page-maker/components/template-preview/TemplatePreview.mixin.js +5 -16
  67. package/lib/src/brand-page-maker/components/upgrade-to-premium-button/UpgradeToPremiumButton.mixin.d.ts +11 -11
  68. package/lib/src/brand-page-maker/composables/ai-chat/useAiWebsiteBuilderChat.js +6 -3
  69. package/lib/src/brand-page-maker/composables/rich-text-editor/useRichTextEditor.d.ts +1 -1
  70. package/lib/src/brand-page-maker/composables/rich-text-editor/useRichTextEditor.js +6 -6
  71. package/lib/src/brand-page-maker/composables/useEventTracker.d.ts +2 -2
  72. package/lib/src/brand-page-maker/constants/config-settings-constant.d.ts +6 -6
  73. package/lib/src/brand-page-maker/constants/config-settings-constant.js +3 -3
  74. package/lib/src/brand-page-maker/convertors/text-image-display-style.convertor.d.ts +1 -1
  75. package/lib/src/brand-page-maker/convertors/text-image-display-style.convertor.js +1 -1
  76. package/lib/src/brand-page-maker/models/content-settings.d.ts +1 -1
  77. package/lib/src/brand-page-maker/models/navigation-style-configs.js +1 -1
  78. package/lib/src/brand-page-maker/routing/brand-page-maker-router.d.ts +2 -1
  79. package/lib/src/brand-page-maker/stores/ai-checkpoint/ai-checkpoint-store.d.ts +378 -366
  80. package/lib/src/brand-page-maker/stores/brandpage-container/brand-page-container-store.d.ts +4 -5
  81. package/lib/src/brand-page-maker/stores/brandpage-container/brand-page-container-store.js +5 -8
  82. package/lib/src/brand-page-maker/stores/brandpage-maker/brandpage-maker-store.d.ts +1 -3
  83. package/lib/src/brand-page-maker/stores/brandpage-maker/brandpage-maker-store.js +3 -7
  84. package/lib/src/brand-page-maker/stores/history/history-store.d.ts +15 -15
  85. package/lib/src/brand-page-maker/stores/ui/ui-store.d.ts +0 -6
  86. package/lib/src/brand-page-maker/stores/ui/ui-store.js +0 -8
  87. package/lib/src/brand-page-maker/utils/content-settings.util.js +1 -1
  88. package/lib/src/brand-page-maker/utils/rich-text-editor.util.d.ts +1 -1
  89. package/lib/src/brand-page-maker/utils/rich-text-editor.util.js +4 -4
  90. package/lib/src/clients/ai-assistant-client.d.ts +0 -7
  91. package/lib/src/clients/brand-page-client.d.ts +15 -16
  92. package/lib/src/clients/design-template-client.d.ts +0 -3
  93. package/lib/src/clients/media-client.d.ts +2 -2
  94. package/lib/src/clients/models.d.ts +0 -2
  95. package/lib/src/composables/useSnapshot.js +18 -18
  96. package/lib/src/css/library.brand-page-brandCrowd.min.css +324 -342
  97. package/lib/src/css/library.brand-page-brandPage.min.css +324 -620
  98. package/lib/src/css/library.brand-page-designCom.min.css +324 -342
  99. package/lib/src/css/library.brand-page-preview.min.css +324 -598
  100. package/lib/src/index.d.ts +1 -5
  101. package/lib/src/index.mjs +106 -110
  102. package/lib/src/{lib-Cw6L6CfQ.js → lib-Dy7MYyqz.js} +33240 -36457
  103. package/lib/src/lib.js +1 -11
  104. package/lib/src/metadata-builder/builders/footer-builder.js +62 -105
  105. package/lib/src/metadata-builder/builders/item-id-utils.d.ts +54 -0
  106. package/lib/src/metadata-builder/builders/item-id-utils.js +96 -0
  107. package/lib/src/metadata-builder/builders/section-builders/image-gallery-builder.js +57 -68
  108. package/lib/src/metadata-builder/builders/section-builders/images-section-builder.js +58 -93
  109. package/lib/src/metadata-builder/builders/section-builders/shapes-section-builder.js +66 -99
  110. package/lib/src/metadata-builder/builders/section-builders/social-links-builder.js +57 -17
  111. package/lib/src/metadata-builder/builders/section-builders/testimonial-section-builder.js +51 -85
  112. package/lib/src/metadata-builder/builders/section-builders/text-section-builder.js +49 -74
  113. package/lib/src/metadata-builder/builders/section-field-utils.d.ts +0 -7
  114. package/lib/src/metadata-builder/builders/section-field-utils.js +1 -1
  115. package/lib/src/metadata-builder/builders/shape-color-utils.js +1 -1
  116. package/lib/src/metadata-builder/parsers/ai-toolcall-parser.d.ts +16 -7
  117. package/lib/src/metadata-builder/parsers/section-tool-arguments.d.ts +66 -48
  118. package/lib/src/plugins/google-maps-plugin/google-maps-plugin.d.ts +1 -1
  119. package/lib/src/plugins/google-maps-plugin/google-maps-plugin.js +8 -8
  120. package/lib/src/shared/background-settings/components/background-shapes/BackgroundShapeSettings.mixin.d.ts +13 -13
  121. package/lib/src/shared/background-settings/store/background-settings-store.d.ts +3 -3
  122. package/lib/src/shared/color-picker/components/ColorPicker.mixin.d.ts +2 -4
  123. package/lib/src/shared/color-picker/components/ColorPicker.mixin.js +2 -2
  124. package/lib/src/shared/color-picker/components/ColorPickerSwatch.mixin.d.ts +2 -4
  125. package/lib/src/shared/color-picker/components/ColorPickerSwatch.mixin.js +0 -1
  126. package/lib/src/shared/confirm-modal/ConfirmModal.mixin.d.ts +2 -5
  127. package/lib/src/shared/confirm-modal/ConfirmModal.mixin.js +0 -1
  128. package/lib/src/shared/content-settings/components/GenericTextInput.mixin.d.ts +1 -0
  129. package/lib/src/shared/content-settings/components/content-settings/ContentSettings.mixin.d.ts +129 -131
  130. package/lib/src/shared/content-settings/components/content-settings/ContentSettings.mixin.js +1 -2
  131. package/lib/src/shared/content-settings/components/content-settings/ReplaceImageSettingsForContent.mixin.d.ts +110 -111
  132. package/lib/src/shared/content-settings/components/content-settings-item/ContentSettingsItem.mixin.d.ts +81 -84
  133. package/lib/src/shared/content-settings/components/content-settings-item/ContentSettingsItem.mixin.js +0 -5
  134. package/lib/src/shared/content-settings/components/content-settings-item/ContentSettingsItemField.mixin.d.ts +109 -117
  135. package/lib/src/shared/content-settings/components/content-settings-item/ContentSettingsItemField.mixin.js +14 -1
  136. package/lib/src/shared/content-settings/components/email-field/EmailField.mixin.d.ts +1 -0
  137. package/lib/src/shared/content-settings/components/focused-content-item-settings/FocusedContentItemSettings.mixin.d.ts +70 -72
  138. package/lib/src/shared/content-settings/components/focused-content-item-settings/FocusedContentItemSettings.mixin.js +3 -4
  139. package/lib/src/shared/content-settings/components/form-fields-field/FormFieldsField.mixin.d.ts +4 -4
  140. package/lib/src/shared/content-settings/components/icon-library/IconLibrary.mixin.d.ts +1 -3
  141. package/lib/src/shared/content-settings/components/icon-library/IconLibrary.mixin.js +0 -1
  142. package/lib/src/shared/content-settings/components/images-field/ImagesField.mixin.d.ts +2 -2
  143. package/lib/src/shared/content-settings/components/items-field/ItemsField.mixin.d.ts +3 -4
  144. package/lib/src/shared/content-settings/components/items-field/ItemsField.mixin.js +1 -1
  145. package/lib/src/shared/content-settings/components/payment-config-field/PaymentConfigField.mixin.d.ts +40 -40
  146. package/lib/src/shared/content-settings/components/payment-config-field/PaymentConfigOptionField.mixin.d.ts +6 -5
  147. package/lib/src/shared/content-settings/components/shape-field/ShapeField.mixin.d.ts +1 -0
  148. package/lib/src/shared/content-settings/components/slider-field/SliderField.mixin.d.ts +2 -2
  149. package/lib/src/shared/content-settings/components/tel-field/TelField.mixin.d.ts +1 -0
  150. package/lib/src/shared/content-settings/components/testimonial-items-field/TestimonialItemsField.mixin.d.ts +2 -1
  151. package/lib/src/shared/content-settings/components/text-field/TextField.mixin.d.ts +1 -0
  152. package/lib/src/shared/content-settings/components/text-items-field/TextItemsField.mixin.d.ts +2 -1
  153. package/lib/src/shared/content-settings/components/text-items-field/TextItemsField.mixin.js +1 -1
  154. package/lib/src/shared/content-settings/components/text-style-field/TextStyleField.mixin.d.ts +28 -28
  155. package/lib/src/shared/content-settings/components/textarea-field/TextareaField.mixin.d.ts +1 -0
  156. package/lib/src/shared/content-settings/components/toggle-field/ToggleField.mixin.d.ts +2 -2
  157. package/lib/src/shared/content-settings/components/url-field/UrlField.mixin.d.ts +1 -0
  158. package/lib/src/shared/content-settings/components/youtube-video-field/YoutubeVideoField.mixin.d.ts +1 -0
  159. package/lib/src/shared/content-settings/store/content-settings-store.d.ts +39 -39
  160. package/lib/src/shared/content-settings/utils.js +1 -0
  161. package/lib/src/shared/font-family-selector/FontFamilySelector.mixin.d.ts +4 -6
  162. package/lib/src/shared/font-family-selector/FontFamilySelector.mixin.js +0 -1
  163. package/lib/src/shared/image-gallery-style-settings/ImageGalleryStyleSettings.mixin.d.ts +2 -4
  164. package/lib/src/shared/image-gallery-style-settings/ImageGalleryStyleSettings.mixin.js +0 -1
  165. package/lib/src/shared/logo-settings/components/EditLogoSettings.mixin.d.ts +21 -29
  166. package/lib/src/shared/logo-settings/components/EditLogoSettings.mixin.js +1 -1
  167. package/lib/src/shared/logo-settings/components/LogoSettings.mixin.d.ts +51 -50
  168. package/lib/src/shared/logo-settings/components/LogoSettingsHeader.mixin.d.ts +4 -6
  169. package/lib/src/shared/logo-settings/components/LogoSettingsHeader.mixin.js +0 -1
  170. package/lib/src/shared/logo-settings/store/editable-logo-store.js +1 -1
  171. package/lib/src/shared/logo-settings/store/logo-settings-store.d.ts +1 -1
  172. package/lib/src/shared/logo-versions/LogoVersions.mixin.d.ts +5 -13
  173. package/lib/src/shared/logo-versions/LogoVersions.mixin.js +0 -1
  174. package/lib/src/shared/models.d.ts +0 -2
  175. package/lib/src/shared/my-designs/MyDesigns.mixin.d.ts +6 -14
  176. package/lib/src/shared/my-designs/MyDesigns.mixin.js +0 -1
  177. package/lib/src/shared/my-uploads/MyMedia.mixin.d.ts +5 -14
  178. package/lib/src/shared/my-uploads/MyMedia.mixin.js +0 -1
  179. package/lib/src/shared/my-uploads/MyUploads.mixin.d.ts +5 -14
  180. package/lib/src/shared/my-uploads/MyUploads.mixin.js +0 -1
  181. package/lib/src/shared/navigation-style-settings/components/navigation-style-settings/NavigationStyleSettings.mixin.d.ts +3 -5
  182. package/lib/src/shared/navigation-style-settings/components/navigation-style-settings/NavigationStyleSettings.mixin.js +0 -1
  183. package/lib/src/shared/navigation-style-settings/store/index.d.ts +2 -2
  184. package/lib/src/shared/page-navigation/store/page-navigation-store.d.ts +2 -2
  185. package/lib/src/shared/page-settings/components/new-page-modal/NewPageModal.mixin.d.ts +28 -27
  186. package/lib/src/shared/page-settings/components/new-page-modal/NewPageModal.mixin.js +2 -0
  187. package/lib/src/shared/page-settings/components/page-settings/PageSettings.mixin.d.ts +179 -188
  188. package/lib/src/shared/page-settings/components/page-settings-section-styles/PageSettingsSectionStyles.mixin.d.ts +177 -181
  189. package/lib/src/shared/page-settings/components/page-settings-section-styles/PageSettingsSectionStyles.mixin.js +1 -1
  190. package/lib/src/shared/page-settings/store/page-settings-store.d.ts +9 -9
  191. package/lib/src/shared/publish-brand-page-with-state/PublishBrandPageModalWithState.mixin.d.ts +39 -39
  192. package/lib/src/shared/publish-brand-page-with-state/PublishBrandPageModalWithState.mixin.js +1 -0
  193. package/lib/src/shared/side-bar/components/SideBar.mixin.d.ts +18 -18
  194. package/lib/src/shared/side-bar/components/SideBarTabButton.mixin.d.ts +6 -6
  195. package/lib/src/shared/style-settings/components/StyleSettings.mixin.d.ts +60 -66
  196. package/lib/src/shared/style-settings/store/style-settings-store.d.ts +1 -1
  197. package/lib/src/shared/style-settings/store/style-settings-store.js +1 -1
  198. package/lib/src/shared/template-settings/components/TemplatesSettings.mixin.d.ts +450 -20
  199. package/lib/src/shared/template-settings/components/TemplatesSettings.mixin.js +2 -2
  200. package/lib/src/shared/template-settings/models.d.ts +0 -1
  201. package/lib/src/shared/template-settings/store/template-settings-store.d.ts +0 -4
  202. package/lib/src/shared/template-settings/store/template-settings-store.js +11 -79
  203. package/lib/src/shared/unsplash-library/UnsplashLibrary.mixin.d.ts +4 -9
  204. package/lib/src/utils/build-asset-manifest.d.ts +0 -4
  205. package/lib/src/utils/build-asset-manifest.js +0 -8
  206. package/lib/src/utils/minify-brand-page-metadata.d.ts +2 -0
  207. package/lib/src/utils/minify-brand-page-metadata.js +17 -2
  208. package/package.json +56 -60
  209. package/src/brand-page/components/about-section/AboutSection.vue.test.ts +5 -7
  210. package/src/brand-page/components/brand-page-footer/BrandPageFooter.vue +1 -1
  211. package/src/brand-page/components/image/Image.mixin.ts +1 -1
  212. package/src/brand-page/components/image/Image.test.ts +1 -1
  213. package/src/brand-page/components/image-gallery/masonry/MasonryGallery.mixin.ts +2 -1
  214. package/src/brand-page/components/images-section/ImagesSection.vue +1 -0
  215. package/src/brand-page/components/logo/LogoRender.vue +188 -188
  216. package/src/brand-page/components/navigation/hamburger/HamburgerNavigation.mixin.ts +0 -1
  217. package/src/brand-page/components/navigation/navigation-side-menu/NavigationSideMenu.mixin.ts +6 -15
  218. package/src/brand-page/components/page-footer/PageFooter.vue +0 -1
  219. package/src/brand-page/components/page-header/HeaderLayout.vue +6 -12
  220. package/src/brand-page/components/page-header/PageHeader.vue +0 -1
  221. package/src/brand-page/components/shapes-section/ShapesSection.vue +1 -1
  222. package/src/brand-page/components/shop/CartModal.vue +3 -1
  223. package/src/brand-page/components/shop/FeaturedDisplay.vue +2 -2
  224. package/src/brand-page/components/shop/PaymentModal.vue +5 -1
  225. package/src/brand-page/components/shop/ProductDetailModal.vue +1 -1
  226. package/src/brand-page/components/shop/Shop.vue +1 -1
  227. package/src/brand-page/components/shop/TextDisplay.vue +1 -1
  228. package/src/brand-page/components/shop/ThumbnailDisplay.vue +2 -2
  229. package/src/brand-page/components/testimonial-section/TestimonialSection.vue +3 -3
  230. package/src/brand-page/components/text-wrapper/TextWrapper.vue +1 -3
  231. package/src/brand-page/constants/sections/footer-display.constants.ts +1 -1
  232. package/src/brand-page/models/index.ts +12 -4
  233. package/src/brand-page/models/payment.model.ts +1 -2
  234. package/src/brand-page/models/shop.model.ts +2 -0
  235. package/src/brand-page/models/user-personalisation.model.ts +2 -1
  236. package/src/brand-page/utils/__snapshots__/migration.util.test.ts.snap +0 -3
  237. package/src/brand-page/utils/__snapshots__/migration2.util.test.ts.snap +0 -1
  238. package/src/brand-page/utils/__snapshots__/model.util.test.ts.snap +0 -2
  239. package/src/brand-page/utils/migration/migration-01_1.ts +1 -1
  240. package/src/brand-page/utils/migration/migration-02.ts +1 -0
  241. package/src/brand-page/utils/migration/migration-03.ts +1 -0
  242. package/src/brand-page/utils/migration/migration-04.ts +1 -0
  243. package/src/brand-page/utils/migration/migration-05.ts +5 -1
  244. package/src/brand-page/utils/migration/migration-05_2.ts +1 -1
  245. package/src/brand-page/utils/migration/migration-08.test.ts +1 -1
  246. package/src/brand-page/utils/personalisation.util.test.ts +0 -35
  247. package/src/brand-page/utils/personalisation.util.ts +23 -119
  248. package/src/brand-page/view-models.ts +56 -38
  249. package/src/brand-page-maker/assessors/banner-section-description-visibility.assessor.ts +6 -6
  250. package/src/brand-page-maker/assessors/color-replacement-icon-visibility.assessor.ts +2 -2
  251. package/src/brand-page-maker/assessors/color-replacement-profile-visibility.assessor.ts +2 -2
  252. package/src/brand-page-maker/assessors/color-replacement-visibility.assessor.ts +2 -2
  253. package/src/brand-page-maker/assessors/contact-form-visibility.assessor.ts +14 -14
  254. package/src/brand-page-maker/components/action-bar/ActionBar.mixin.ts +0 -1
  255. package/src/brand-page-maker/components/ai-text-edit/TextBubble.vue +0 -1
  256. package/src/brand-page-maker/components/brand-page-maker/BrandPageMaker.mixin.ts +1 -5
  257. package/src/brand-page-maker/components/brand-page-maker/BrandPageMaker.stories.ts +0 -1
  258. package/src/brand-page-maker/components/brand-page-maker/BrandPageMakerTemplateSettings.stories.ts +5 -2
  259. package/src/brand-page-maker/components/brand-page-maker/__fixtures__/brand-page-examples.ts +5 -0
  260. package/src/brand-page-maker/components/brand-page-maker/__fixtures__/brand-page-payment.ts +8 -0
  261. package/src/brand-page-maker/components/brand-page-maker/__fixtures__/brand-site-template.examples.ts +2 -0
  262. package/src/brand-page-maker/components/brandpage-maker-page/BrandPageMakerPage.vue +0 -1
  263. package/src/brand-page-maker/components/brandpage-settings/ReplaceImageSettingsForBrandPageSettings.mixin.ts +1 -1
  264. package/src/brand-page-maker/components/color-palette/BpColorPalette.vue +2 -1
  265. package/src/brand-page-maker/components/color-picker/components/ColorModeSelect.mixin.ts +0 -1
  266. package/src/brand-page-maker/components/color-picker/components/GradientColorSlider.mixin.ts +0 -1
  267. package/src/brand-page-maker/components/color-picker/components/GradientColorSliderHandler.mixin.ts +0 -1
  268. package/src/brand-page-maker/components/color-picker/components/GradientTypeSelector.mixin.ts +0 -1
  269. package/src/brand-page-maker/components/device/Device.mixin.ts +0 -1
  270. package/src/brand-page-maker/components/navigation/Navigation.mixin.ts +0 -1
  271. package/src/brand-page-maker/components/rich-text-editor/RichTextEditor.vue +1 -3
  272. package/src/brand-page-maker/components/sensitive-content/SensitiveContent.vue +4 -1
  273. package/src/brand-page-maker/components/seo-settings/DeleteDomainModal.vue +1 -1
  274. package/src/brand-page-maker/components/seo-settings/SeoPageSettings.mixin.ts +0 -1
  275. package/src/brand-page-maker/components/seo-settings/SeoPageSettings.vue +1 -1
  276. package/src/brand-page-maker/components/seo-settings/UrlSettings.mixin.ts +1 -0
  277. package/src/brand-page-maker/components/seo-settings/UrlSettings.vue +1 -0
  278. package/src/brand-page-maker/components/seo-settings/UseExistingDomainModal.vue +5 -1
  279. package/src/brand-page-maker/components/shop/AddOrEditProductContainer.vue +1 -1
  280. package/src/brand-page-maker/components/shop/ReplaceImageSettingsForShop.vue +1 -1
  281. package/src/brand-page-maker/components/social-share/SocialShare.vue +1 -1
  282. package/src/brand-page-maker/components/template-preview/TemplatePreview.mixin.ts +8 -22
  283. package/src/brand-page-maker/components/template-preview/TemplatePreview.vue +10 -5
  284. package/src/brand-page-maker/components/video-play/VideoPlayButton.vue +1 -1
  285. package/src/brand-page-maker/composables/ai-chat/useAiWebsiteBuilderChat.ts +7 -3
  286. package/src/brand-page-maker/composables/rich-text-editor/useRichTextEditor.ts +6 -6
  287. package/src/brand-page-maker/constants/config-settings-constant.ts +5 -5
  288. package/src/brand-page-maker/convertors/text-image-display-style.convertor.ts +1 -1
  289. package/src/brand-page-maker/models/button-styles-config.ts +2 -4
  290. package/src/brand-page-maker/models/content-settings-configs.ts +2 -4
  291. package/src/brand-page-maker/models/navigation-style-configs.ts +6 -5
  292. package/src/brand-page-maker/stores/admin-logo-settings/admin-logo-settings-store.ts +1 -0
  293. package/src/brand-page-maker/stores/brandpage-container/brand-page-container-store.ts +5 -8
  294. package/src/brand-page-maker/stores/brandpage-maker/brandpage-maker-store.test.ts +3 -1
  295. package/src/brand-page-maker/stores/brandpage-maker/brandpage-maker-store.ts +4 -12
  296. package/src/brand-page-maker/stores/ui/ui-store.ts +0 -16
  297. package/src/brand-page-maker/utils/content-settings.util.ts +1 -1
  298. package/src/brand-page-maker/utils/rich-text-editor.util.ts +4 -4
  299. package/src/clients/ai-assistant-client.ts +0 -7
  300. package/src/clients/design-template-client.ts +0 -3
  301. package/src/clients/models.ts +0 -2
  302. package/src/composables/useSnapshot.ts +22 -19
  303. package/src/lib.ts +0 -13
  304. package/src/metadata-builder/builders/footer-builder.test.ts +229 -130
  305. package/src/metadata-builder/builders/footer-builder.ts +90 -155
  306. package/src/metadata-builder/builders/item-id-utils.test.ts +184 -0
  307. package/src/metadata-builder/builders/item-id-utils.ts +117 -0
  308. package/src/metadata-builder/builders/section-builders/image-gallery-builder.ts +62 -88
  309. package/src/metadata-builder/builders/section-builders/images-section-builder.ts +66 -129
  310. package/src/metadata-builder/builders/section-builders/shapes-section-builder.ts +105 -160
  311. package/src/metadata-builder/builders/section-builders/social-links-builder.ts +65 -20
  312. package/src/metadata-builder/builders/section-builders/testimonial-section-builder.ts +83 -146
  313. package/src/metadata-builder/builders/section-builders/text-section-builder.ts +70 -122
  314. package/src/metadata-builder/builders/section-field-utils.ts +1 -1
  315. package/src/metadata-builder/builders/shape-color-utils.ts +2 -2
  316. package/src/metadata-builder/parsers/ai-toolcall-parser.ts +16 -7
  317. package/src/metadata-builder/parsers/section-tool-arguments.ts +66 -48
  318. package/src/plugins/google-maps-plugin/google-maps-plugin.ts +8 -8
  319. package/src/shared/background-settings/components/BackgroundSettings.vue +1 -1
  320. package/src/shared/background-settings/components/background-color/BackgroundColorSettings.vue +1 -1
  321. package/src/shared/color-picker/components/ColorPicker.mixin.ts +7 -2
  322. package/src/shared/color-picker/components/ColorPickerSwatch.mixin.ts +0 -1
  323. package/src/shared/common/NumberInput.vue +0 -1
  324. package/src/shared/common/SideBarSettingsHeader.vue +2 -2
  325. package/src/shared/confirm-modal/ConfirmModal.mixin.ts +0 -1
  326. package/src/shared/content-settings/components/booking-url-field/BookingUrlField.vue +0 -1
  327. package/src/shared/content-settings/components/button-configuration-field/ButtonConfigurationField.vue +0 -1
  328. package/src/shared/content-settings/components/color-field/ColorField.vue +10 -3
  329. package/src/shared/content-settings/components/content-settings/ContentSettings.mixin.ts +1 -1
  330. package/src/shared/content-settings/components/content-settings/ContentSettingsLockedButton.vue +0 -1
  331. package/src/shared/content-settings/components/content-settings-item/ContentSettingsItem.mixin.ts +0 -5
  332. package/src/shared/content-settings/components/content-settings-item/ContentSettingsItemField.mixin.ts +14 -1
  333. package/src/shared/content-settings/components/focused-content-item-settings/FocusedContentItemSettings.mixin.ts +6 -4
  334. package/src/shared/content-settings/components/icon-library/IconLibrary.mixin.ts +0 -1
  335. package/src/shared/content-settings/components/items-field/ItemsField.mixin.ts +1 -1
  336. package/src/shared/content-settings/components/logo-selection-field/LogoSelectionField.vue +1 -1
  337. package/src/shared/content-settings/components/logo-size-field/LogoSizeSliderField.vue +1 -1
  338. package/src/shared/content-settings/components/page-dropdown-field/PageDropdownField.vue +1 -1
  339. package/src/shared/content-settings/components/personalisation-role-field/PersonalisationRoleField.vue +4 -4
  340. package/src/shared/content-settings/components/text-image-field/TextImageField.vue +8 -2
  341. package/src/shared/content-settings/components/text-items-field/TextItemsField.mixin.ts +1 -1
  342. package/src/shared/content-settings/models.ts +2 -3
  343. package/src/shared/content-settings/utils.ts +1 -0
  344. package/src/shared/dropzone-image-uploader/components/DropzoneImageUploader.vue +0 -1
  345. package/src/shared/ecommerce-settings/store/cart-store.test.ts +1 -1
  346. package/src/shared/font-family-selector/FontFamilySelector.mixin.ts +0 -1
  347. package/src/shared/image-gallery-style-settings/ImageGalleryStyleSettings.mixin.ts +0 -1
  348. package/src/shared/logo-settings/components/EditLogoSettings.mixin.ts +1 -1
  349. package/src/shared/logo-settings/components/LogoSettings.mixin.ts +1 -0
  350. package/src/shared/logo-settings/components/LogoSettingsHeader.mixin.ts +0 -1
  351. package/src/shared/logo-settings/components/LogoStyleSettingsWithState.vue +2 -2
  352. package/src/shared/logo-settings/components/LogoTemplateSearch.vue +1 -1
  353. package/src/shared/logo-settings/store/editable-logo-store.ts +1 -1
  354. package/src/shared/logo-settings/store/logo-settings-store.test.ts +4 -4
  355. package/src/shared/logo-versions/LogoVersions.mixin.ts +0 -1
  356. package/src/shared/models.ts +0 -6
  357. package/src/shared/my-designs/MyDesigns.mixin.ts +0 -1
  358. package/src/shared/my-uploads/MyMedia.mixin.ts +0 -1
  359. package/src/shared/my-uploads/MyMediaSelectionItem.vue +1 -2
  360. package/src/shared/my-uploads/MyUploads.mixin.ts +0 -1
  361. package/src/shared/my-uploads/models.ts +2 -1
  362. package/src/shared/navigation-style-settings/components/navigation-style-settings/NavigationStyleSettings.mixin.ts +0 -1
  363. package/src/shared/navigation-style-settings/components/navigation-style-settings/NavigationStyleSettings.vue +1 -1
  364. package/src/shared/page-settings/components/new-page-modal/NewPageModal.mixin.ts +3 -0
  365. package/src/shared/page-settings/components/page-settings/NestedDraggable.vue +1 -1
  366. package/src/shared/page-settings/components/page-settings/PageSettings.vue +2 -1
  367. package/src/shared/page-settings/components/page-settings-section-styles/HeaderDisplayStyle.vue +1 -1
  368. package/src/shared/page-settings/components/page-settings-section-styles/PageSettingsSectionStyles.mixin.ts +1 -1
  369. package/src/shared/page-settings/store/page-settings-store.test.ts +8 -4
  370. package/src/shared/publish-brand-page-with-state/PublishBrandPageModalWithState.mixin.ts +1 -0
  371. package/src/shared/shape-library/ShapeLibrary.vue +2 -2
  372. package/src/shared/style-settings/store/style-settings-store.ts +1 -1
  373. package/src/shared/template-settings/components/TemplatesSettings.mixin.ts +2 -2
  374. package/src/shared/template-settings/models.ts +0 -1
  375. package/src/shared/template-settings/store/template-settings-store.ts +18 -105
  376. package/src/shared/unsplash-library/UnsplashLibrary.vue +6 -2
  377. package/src/shared/video-library/VideoLibrary.vue +1 -1
  378. package/src/utils/build-asset-manifest.ts +0 -12
  379. package/src/utils/minify-brand-page-metadata.ts +27 -7
  380. package/lib/src/brand-page/components/banner-section/BannerSection.mixin.d.ts +0 -103
  381. package/lib/src/brand-page/components/banner-section/BannerSection.mixin.js +0 -178
  382. package/src/brand-page/components/banner-section/BannerSection.mixin.ts +0 -210
  383. package/src/brand-page-maker/components/template-preview/TemplatePreviewAiBadge.vue +0 -12
@@ -142,10 +142,15 @@ export interface ProfileSectionArguments {
142
142
  }
143
143
 
144
144
  export interface TextSectionItem {
145
- /** 0-based index of existing item to update in-place */
146
- item_index?: number;
147
- /** 0-based position to insert a new item at */
148
- insert_at?: number;
145
+ /** Stable id of the existing item to update or move. Omit to ADD a new item. */
146
+ item_id?: string;
147
+ /**
148
+ * Id of an existing item to position this item before (insert for new items,
149
+ * move for existing ones). Use "__end__" for the end of the list. Omit to
150
+ * leave an existing item in place / append a new item. Mirrors the
151
+ * section-level move_before_content_id.
152
+ */
153
+ move_before_item_id?: string;
149
154
  text?: RichTextField;
150
155
  text_style?: TextStyleArguments;
151
156
  }
@@ -159,10 +164,8 @@ export interface TextSectionArguments {
159
164
  /** Multiple text items (BrandSite) */
160
165
  items?: TextSectionItem[];
161
166
  _replace_items?: boolean;
162
- /** 0-based indices of items to remove */
163
- _remove_item_indices?: number[];
164
- /** New order as array of current 0-based indices */
165
- _reorder_items?: number[];
167
+ /** Stable ids of items to remove. Order-independent (no index shifting). */
168
+ _remove_item_ids?: string[];
166
169
  background_color?: string | null;
167
170
  }
168
171
 
@@ -172,10 +175,15 @@ export interface ImageSectionArguments {
172
175
  }
173
176
 
174
177
  export interface ImageGalleryItem {
175
- /** 0-based index of existing item to update in-place */
176
- item_index?: number;
177
- /** 0-based position to insert a new item at */
178
- insert_at?: number;
178
+ /** Stable id of the existing item to update or move. Omit to ADD a new item. */
179
+ item_id?: string;
180
+ /**
181
+ * Id of an existing item to position this item before (insert for new items,
182
+ * move for existing ones). Use "__end__" for the end of the list. Omit to
183
+ * leave an existing item in place / append a new item. Mirrors the
184
+ * section-level move_before_content_id.
185
+ */
186
+ move_before_item_id?: string;
179
187
  image_url?: string;
180
188
  caption?: string;
181
189
  }
@@ -185,10 +193,8 @@ export interface ImageGallerySectionArguments {
185
193
  gallery_type?: 'grid' | 'carousel' | 'masonry';
186
194
  is_full_width?: boolean;
187
195
  _replace_items?: boolean;
188
- /** 0-based indices of items to remove */
189
- _remove_item_indices?: number[];
190
- /** New order as array of current 0-based indices */
191
- _reorder_items?: number[];
196
+ /** Stable ids of items to remove. Order-independent (no index shifting). */
197
+ _remove_item_ids?: string[];
192
198
  }
193
199
 
194
200
  export interface GeneralLinkSectionArguments {
@@ -256,10 +262,15 @@ export interface TiktokSectionArguments {
256
262
  }
257
263
 
258
264
  export interface SocialLink {
259
- /** 0-based index of existing item to update in-place */
260
- item_index?: number;
261
- /** 0-based position to insert a new item at */
262
- insert_at?: number;
265
+ /** Stable id of the existing item to update or move. Omit to ADD a new item. */
266
+ item_id?: string;
267
+ /**
268
+ * Id of an existing item to position this item before (insert for new items,
269
+ * move for existing ones). Use "__end__" for the end of the list. Omit to
270
+ * leave an existing item in place / append a new item. Mirrors the
271
+ * section-level move_before_content_id.
272
+ */
273
+ move_before_item_id?: string;
263
274
  platform?:
264
275
  | 'facebook'
265
276
  | 'x'
@@ -280,10 +291,8 @@ export interface SocialLinksSectionArguments {
280
291
  /** Style for the icon container background (used when icon_style is 'square' or 'circle'). */
281
292
  icon_background_style?: TextStyleArguments;
282
293
  _replace_items?: boolean;
283
- /** 0-based indices of items to remove */
284
- _remove_item_indices?: number[];
285
- /** New order as array of current 0-based indices */
286
- _reorder_items?: number[];
294
+ /** Stable ids of items to remove. Order-independent (no index shifting). */
295
+ _remove_item_ids?: string[];
287
296
  }
288
297
 
289
298
  export interface MailingListSectionArguments {
@@ -371,10 +380,15 @@ export interface AboutSectionArguments {
371
380
  }
372
381
 
373
382
  export interface ImagesSectionItem {
374
- /** 0-based index of existing item to update in-place */
375
- item_index?: number;
376
- /** 0-based position to insert a new item at */
377
- insert_at?: number;
383
+ /** Stable id of the existing item to update or move. Omit to ADD a new item. */
384
+ item_id?: string;
385
+ /**
386
+ * Id of an existing item to position this item before (insert for new items,
387
+ * move for existing ones). Use "__end__" for the end of the list. Omit to
388
+ * leave an existing item in place / append a new item. Mirrors the
389
+ * section-level move_before_content_id.
390
+ */
391
+ move_before_item_id?: string;
378
392
  image_url?: string;
379
393
  heading?: string;
380
394
  text?: string;
@@ -393,10 +407,8 @@ export interface ImagesSectionArguments {
393
407
  | 'center-card-aligned-image'
394
408
  | 'alternate-image';
395
409
  _replace_items?: boolean;
396
- /** 0-based indices of items to remove */
397
- _remove_item_indices?: number[];
398
- /** New order as array of current 0-based indices */
399
- _reorder_items?: number[];
410
+ /** Stable ids of items to remove. Order-independent (no index shifting). */
411
+ _remove_item_ids?: string[];
400
412
  title_style?: TextStyleArguments;
401
413
  description_style?: TextStyleArguments;
402
414
  heading_style?: TextStyleArguments;
@@ -409,10 +421,15 @@ export interface ImagesSectionArguments {
409
421
  }
410
422
 
411
423
  export interface TestimonialItem {
412
- /** 0-based index of existing item to update in-place */
413
- item_index?: number;
414
- /** 0-based position to insert a new item at */
415
- insert_at?: number;
424
+ /** Stable id of the existing item to update or move. Omit to ADD a new item. */
425
+ item_id?: string;
426
+ /**
427
+ * Id of an existing item to position this item before (insert for new items,
428
+ * move for existing ones). Use "__end__" for the end of the list. Omit to
429
+ * leave an existing item in place / append a new item. Mirrors the
430
+ * section-level move_before_content_id.
431
+ */
432
+ move_before_item_id?: string;
416
433
  testimonial?: string;
417
434
  name?: string;
418
435
  position?: string;
@@ -426,10 +443,8 @@ export interface TestimonialSectionArguments {
426
443
  items?: TestimonialItem[];
427
444
  display_style?: 'centered' | 'big-image' | 'columns';
428
445
  _replace_items?: boolean;
429
- /** 0-based indices of items to remove */
430
- _remove_item_indices?: number[];
431
- /** New order as array of current 0-based indices */
432
- _reorder_items?: number[];
446
+ /** Stable ids of items to remove. Order-independent (no index shifting). */
447
+ _remove_item_ids?: string[];
433
448
  title_style?: TextStyleArguments;
434
449
  testimonial_style?: TextStyleArguments;
435
450
  name_style?: TextStyleArguments;
@@ -439,10 +454,15 @@ export interface TestimonialSectionArguments {
439
454
  }
440
455
 
441
456
  export interface ShapesSectionItem {
442
- /** 0-based index of existing item to update in-place */
443
- item_index?: number;
444
- /** 0-based position to insert a new item at */
445
- insert_at?: number;
457
+ /** Stable id of the existing item to update or move. Omit to ADD a new item. */
458
+ item_id?: string;
459
+ /**
460
+ * Id of an existing item to position this item before (insert for new items,
461
+ * move for existing ones). Use "__end__" for the end of the list. Omit to
462
+ * leave an existing item in place / append a new item. Mirrors the
463
+ * section-level move_before_content_id.
464
+ */
465
+ move_before_item_id?: string;
446
466
  icon_image_url?: string;
447
467
  shape_url?: string;
448
468
  color_theme?: string;
@@ -462,10 +482,8 @@ export interface ShapesSectionArguments {
462
482
  | 'center-card-aligned-image'
463
483
  | 'alternate-image';
464
484
  _replace_items?: boolean;
465
- /** 0-based indices of items to remove */
466
- _remove_item_indices?: number[];
467
- /** New order as array of current 0-based indices */
468
- _reorder_items?: number[];
485
+ /** Stable ids of items to remove. Order-independent (no index shifting). */
486
+ _remove_item_ids?: string[];
469
487
  title_style?: TextStyleArguments;
470
488
  description_style?: TextStyleArguments;
471
489
  heading_style?: TextStyleArguments;
@@ -31,10 +31,10 @@ export interface AddressDetails {
31
31
  export class GoogleMapsPlugin {
32
32
  private initialised = false;
33
33
  private initialising = false;
34
- private readonly options: GoogleMapsPluginOptions;
34
+ private readonly _options: GoogleMapsPluginOptions;
35
35
 
36
36
  constructor(options: GoogleMapsPluginOptions) {
37
- this.options = options;
37
+ this._options = options;
38
38
  }
39
39
 
40
40
  private async initialise(): Promise<void> {
@@ -111,7 +111,7 @@ export class GoogleMapsPlugin {
111
111
  const { PlaceAutocompleteElement } = await this.getPlacesLibrary();
112
112
 
113
113
  return new PlaceAutocompleteElement({
114
- requestedLanguage: this.options.locale,
114
+ requestedLanguage: this._options.locale,
115
115
  ...options,
116
116
  });
117
117
  }
@@ -149,17 +149,17 @@ export class GoogleMapsPlugin {
149
149
  }
150
150
 
151
151
  private getGoogleScriptUrl(): string {
152
- const baseUrl = `https://maps.googleapis.com/maps/api/js?key=${this.options.apiKey}&libraries=places&loading=async`;
152
+ const baseUrl = `https://maps.googleapis.com/maps/api/js?key=${this._options.apiKey}&libraries=places&loading=async`;
153
153
 
154
- return this.options.locale
155
- ? `${baseUrl}&language=${this.options.locale}`
154
+ return this._options.locale
155
+ ? `${baseUrl}&language=${this._options.locale}`
156
156
  : baseUrl;
157
157
  }
158
158
 
159
159
  getEmbedGoogleMapsSrc(options: GetEmbedGoogleMapsOptions): string {
160
160
  const mapMode = options.mapMode || MAP_MODE_PLACE;
161
- const locale = options.locale || this.options.locale;
162
- const baseUrl = `https://www.google.com/maps/embed/v1/${mapMode}?key=${this.options.apiKey}&q=${options.query}`;
161
+ const locale = options.locale || this._options.locale;
162
+ const baseUrl = `https://www.google.com/maps/embed/v1/${mapMode}?key=${this._options.apiKey}&q=${options.query}`;
163
163
 
164
164
  return locale ? `${baseUrl}&language=${locale}` : baseUrl;
165
165
  }
@@ -174,7 +174,7 @@ const isPersonalisationEnabled = computed(
174
174
  );
175
175
  const isDesignCom = computed(() => containerStore.isDesignCom);
176
176
 
177
- defineEmits(['on-intent-image-replace']);
177
+ const emit = defineEmits(['on-intent-image-replace']);
178
178
 
179
179
  const shapeTabs = [
180
180
  backgroundSettingsTr(`background`),
@@ -22,7 +22,7 @@
22
22
  </div>
23
23
  </template>
24
24
  <script setup lang="ts">
25
- import { computed } from 'vue';
25
+ import { computed, type PropType } from 'vue';
26
26
  import { HelloBar } from '@designcrowd/fe-shared-lib';
27
27
  import { useUiBackgroundSettingsStore } from '../../store';
28
28
  import ColorField from '../../../content-settings/components/color-field/ColorField.vue';
@@ -3,9 +3,15 @@ import { Icon } from '@designcrowd/fe-shared-lib';
3
3
  import ColorPickerSwatch from './ColorPickerSwatch.vue';
4
4
  import type { ColorValue, ColorGroupItem, ColorGroup } from '../models';
5
5
  import { DEFAULT_COLORS, DEFAULT_GRADIENT_COLORS } from '../constants';
6
- import { RGBAtoHex, arrayToLinearGradient, isRgbColor } from '@utils/helpers';
6
+ import {
7
+ RGBAtoHex,
8
+ hexToRGB,
9
+ arrayToLinearGradient,
10
+ isRgbColor,
11
+ } from '@utils/helpers';
7
12
  import { normalizeColorToHex, colorsMatch } from '@brand-page/utils/style.util';
8
13
  import { colorPickerTr } from '@src/composables/useTranslate';
14
+ import { useUiStyleSettingsStore } from '../../style-settings/store';
9
15
 
10
16
  // Simple session storage for newColors (persists during browser session, clears on refresh)
11
17
  let sessionNewColors: ColorGroupItem[] = [];
@@ -47,7 +53,6 @@ export default defineComponent({
47
53
  default: () => false,
48
54
  },
49
55
  },
50
- emits: ['on-color-select'],
51
56
  data() {
52
57
  const groups: ColorGroup[] = [];
53
58
  const newColors: ColorGroupItem[] = [];
@@ -7,7 +7,6 @@ export default defineComponent({
7
7
  required: true,
8
8
  },
9
9
  },
10
- emits: ['click'],
11
10
  data() {
12
11
  const styles: BrandPageCssStyle = this.color.styles;
13
12
 
@@ -53,7 +53,6 @@ export default {
53
53
  default: 1,
54
54
  },
55
55
  },
56
- emits: ['update:model-value'],
57
56
  data() {
58
57
  return {
59
58
  priceValue: this.modelValue,
@@ -33,9 +33,9 @@
33
33
  </template>
34
34
  <script setup lang="ts">
35
35
  import { Button } from '@designcrowd/fe-shared-lib';
36
- import { commonTr } from '@src/composables/useTranslate';
36
+ import { tr, commonTr } from '@src/composables/useTranslate';
37
37
 
38
- defineProps({
38
+ const props = defineProps({
39
39
  showBackButton: {
40
40
  type: Boolean,
41
41
  required: false,
@@ -14,7 +14,6 @@ export default defineComponent({
14
14
  required: false,
15
15
  },
16
16
  },
17
- emits: ['confirm', 'cancel'],
18
17
  setup() {
19
18
  const containerStore = useBrandPageContainerStore();
20
19
 
@@ -1,4 +1,3 @@
1
- <!-- eslint-disable vue/no-v-html -->
2
1
  <template>
3
2
  <div data-component="booking-url-field">
4
3
  <div
@@ -137,7 +137,6 @@ const props = withDefaults(defineProps<Props>(), {
137
137
  titleLength: MAX_TITLE_LENGTH,
138
138
  descriptionLength: MAX_DESCRIPTION_LENGTH,
139
139
  isAdmin: false,
140
- pages: undefined,
141
140
  });
142
141
 
143
142
  const pageSettingsStore = useUiPageSettingsStore();
@@ -70,7 +70,14 @@
70
70
  </template>
71
71
 
72
72
  <script setup lang="ts">
73
- import { ref, computed, watch, onMounted, onBeforeMount } from 'vue';
73
+ import {
74
+ ref,
75
+ computed,
76
+ watch,
77
+ onMounted,
78
+ onBeforeMount,
79
+ type PropType,
80
+ } from 'vue';
74
81
  import { Toggle } from '@designcrowd/fe-shared-lib';
75
82
  import {
76
83
  addTransparentAlphaChannelToHex,
@@ -313,8 +320,8 @@ onBeforeMount(() => {
313
320
  onMounted(() => {
314
321
  const toggleState = Boolean(
315
322
  color.value &&
316
- typeof color.value === 'string' &&
317
- !isHexTransparent(color.value),
323
+ typeof color.value === 'string' &&
324
+ !isHexTransparent(color.value),
318
325
  );
319
326
 
320
327
  emit('on-toggle-state-change', toggleState);
@@ -17,6 +17,7 @@ import {
17
17
  import { SIDE_BAR_CONTENT_ID } from '../../constants';
18
18
  import type { ComponentPublicInstance } from '@vue/runtime-core';
19
19
  import {
20
+ EVENTS,
20
21
  SELECT_LOCATIONS,
21
22
  useEventTracker,
22
23
  } from '@brand-page-maker/composables/useEventTracker';
@@ -36,7 +37,6 @@ interface CategoryTab {
36
37
  }
37
38
 
38
39
  export default defineComponent({
39
- emits: ['capture-preview-snapshot'],
40
40
  setup() {
41
41
  const brandPageMakerStore = useBrandPageMakerStore();
42
42
  const contentSettingsStore = useUiContentSettingsStore();
@@ -41,7 +41,6 @@ export default {
41
41
  required: true,
42
42
  },
43
43
  },
44
- emits: ['on-click'],
45
44
  methods: {
46
45
  onClick(ev) {
47
46
  this.$emit('on-click', ev);
@@ -49,11 +49,6 @@ export default defineComponent({
49
49
  required: true,
50
50
  },
51
51
  },
52
- emits: [
53
- 'on-delete',
54
- 'capture-snapshot-before-modal',
55
- 'capture-preview-snapshot',
56
- ],
57
52
  setup() {
58
53
  const contentSettingsStore = useUiContentSettingsStore();
59
54
  const sideBarStore = useUiSideBarStore();
@@ -16,6 +16,7 @@ import { SIDE_BAR_TAB_NAMES } from '@brand-page-maker/constants';
16
16
  import { ITEM_FIELD_TYPES, type ItemFieldType } from '@brand-page-maker/models';
17
17
  import { useUiPageSettingsStore } from '../../../page-settings/store';
18
18
  import { PAGE_SECTIONS } from '../../../page-settings/models';
19
+ import { commonTr } from '@src/composables/useTranslate';
19
20
  import {
20
21
  getPlainTextFromRTE,
21
22
  replaceTextInRTE,
@@ -25,6 +26,19 @@ import {
25
26
  import { isDefaultContentText } from '@shared/content-settings/utils';
26
27
  import { useUiLogoSettingsStore } from '../../../logo-settings/store';
27
28
 
29
+ const RTE_DISALLOWED_STYLE_FIELD_NAMES = [
30
+ 'descriptionStyle',
31
+ 'titleStyle',
32
+ 'textStyle',
33
+ 'paragraphStyle',
34
+ ];
35
+ const AI_ALLOWED_SECTION_TYPES = [
36
+ 'banner-section',
37
+ 'text',
38
+ 'about-section',
39
+ 'testimonials-section',
40
+ ];
41
+ const AI_ALLOWED_FIELD_NAMES = ['description', 'title', 'text', 'paragraph'];
28
42
  const RTE_DISALLOWED_FIELD_NAMES = ['buttonText'];
29
43
 
30
44
  export default defineComponent({
@@ -48,7 +62,6 @@ export default defineComponent({
48
62
  default: undefined,
49
63
  },
50
64
  },
51
- emits: ['capture-preview-snapshot'],
52
65
  setup() {
53
66
  const contentSettingsStore = useUiContentSettingsStore();
54
67
  const brandPageMakerStore = useBrandPageMakerStore();
@@ -25,18 +25,20 @@ import {
25
25
  type PersonalisationRole,
26
26
  } from '@brand-page';
27
27
  import { buildRelativePathFromParams } from '@brand-page/utils/route.util';
28
- import { isRTEManagedStyleField } from '@brand-page-maker/utils';
28
+ import {
29
+ switchAllContentToRTE,
30
+ isRTEManagedStyleField,
31
+ } from '@brand-page-maker/utils';
29
32
  import { useUiPageSettingsStore } from '@shared/page-settings/store';
30
33
  import { useExternalRichTextEditor } from '@brand-page-maker/composables/rich-text-editor/useRichTextEditor';
31
34
  import { useUiStyleSettingsStore } from '@shared/style-settings/store';
32
35
 
33
36
  export default defineComponent({
34
- emits: ['capture-preview-snapshot'],
35
37
  setup() {
36
38
  const contentSettingsStore = useUiContentSettingsStore();
37
39
  const brandPageMakerStore = useBrandPageMakerStore();
38
- const _pageSettingsStore = useUiPageSettingsStore();
39
- const _styleSettingsStore = useUiStyleSettingsStore();
40
+ const pageSettingsStore = useUiPageSettingsStore();
41
+ const styleSettingsStore = useUiStyleSettingsStore();
40
42
 
41
43
  const userStore = useBrandPageMakerUserStore();
42
44
  const uiStore = useUiStore();
@@ -6,7 +6,6 @@ export default defineComponent({
6
6
  components: {
7
7
  Icon,
8
8
  },
9
- emits: ['on-select-image'],
10
9
  data() {
11
10
  return {
12
11
  orderedIcons: BRAND_PAGE_ICONS,
@@ -30,7 +30,7 @@ export default defineComponent({
30
30
  default: false,
31
31
  },
32
32
  },
33
- emits: ['items-change', 'items-delete', 'itemsEdit'],
33
+ emits: ['items-change', 'items-delete'],
34
34
  data: () => ({
35
35
  itemStates: {} as Record<number, ItemFieldState>,
36
36
  }),
@@ -133,7 +133,7 @@ const onLogoVersionSelected = async (
133
133
  const logoDraftAsset = logoStore.getLogoDraftAssetByToken(
134
134
  selectedLogoVersion.token,
135
135
  );
136
- const _brandPageMakerStore = useBrandPageMakerStore();
136
+ const brandPageMakerStore = useBrandPageMakerStore();
137
137
  const uiStore = useUiStore();
138
138
  const pageSettingsStore = useUiPageSettingsStore();
139
139
 
@@ -27,7 +27,7 @@ const props = defineProps<Props>();
27
27
 
28
28
  const emit = defineEmits(['update:model-value']);
29
29
 
30
- const _data = reactive<Data>({
30
+ const data = reactive<Data>({
31
31
  suffix: null,
32
32
  });
33
33
 
@@ -71,7 +71,7 @@ const addPageButtonVariant = computed((): string => {
71
71
  return canAddPages.value ? 'outline' : 'primary';
72
72
  });
73
73
 
74
- const _selectedPageName = computed((): string => {
74
+ const selectedPageName = computed((): string => {
75
75
  return selectedPage.value;
76
76
  });
77
77
 
@@ -23,12 +23,12 @@
23
23
  None
24
24
  </DropdownItem>
25
25
  <DropdownItem
26
- v-for="dValue of data.dropdownValues"
27
- :key="dValue"
26
+ v-for="value of data.dropdownValues"
27
+ :key="value"
28
28
  class="tw-text-black tw-break-all tw-capitalize"
29
- @click="onSelectPersonalisationRole(dValue as PersonalisationRole)"
29
+ @click="onSelectPersonalisationRole(value as PersonalisationRole)"
30
30
  >
31
- {{ dValue }}
31
+ {{ value }}
32
32
  </DropdownItem>
33
33
  </Dropdown>
34
34
  </div>
@@ -278,8 +278,14 @@
278
278
  </div>
279
279
  </template>
280
280
  <script setup lang="ts">
281
- import { ref, computed, watch, onMounted } from 'vue';
282
- import { Button, TextInput, Icon, Toggle } from '@designcrowd/fe-shared-lib';
281
+ import { ref, computed, watch, onMounted, type PropType } from 'vue';
282
+ import {
283
+ Button,
284
+ TextInput,
285
+ Icon,
286
+ ButtonGroup,
287
+ Toggle,
288
+ } from '@designcrowd/fe-shared-lib';
283
289
  import ImageField from '../image-field/ImageField.vue';
284
290
  import ItemsField from '../items-field/ItemsField.vue';
285
291
  import ColorReplacementsField from '../color-replacements-field/ColorReplacementsField.vue';
@@ -19,7 +19,7 @@ import type { UpdateItemValuePayload } from '../../models';
19
19
  import cloneDeep from 'lodash.clonedeep';
20
20
  import { decodeHtmlEntities, escapeContentText } from '@brand-page/utils';
21
21
  import { useSnapshotStore } from '@brand-page-maker/stores';
22
- import { getPlainTextFromRTE } from '@brand-page-maker/utils';
22
+ import { getPlainTextFromRTE, replaceTextInRTE } from '@brand-page-maker/utils';
23
23
  import { isDefaultContentText } from '../../utils';
24
24
 
25
25
  const DEBOUNCE_IN_MS = 250;
@@ -43,9 +43,8 @@ export interface Tab {
43
43
  active: boolean;
44
44
  }
45
45
 
46
- export interface ContentReplaceImageSettings<
47
- TContent,
48
- > extends ReplaceImageSettingsBase {
46
+ export interface ContentReplaceImageSettings<TContent>
47
+ extends ReplaceImageSettingsBase {
49
48
  setContentMedia: (
50
49
  content: TContent,
51
50
  value: SetContentMediaPayload,
@@ -1,4 +1,5 @@
1
1
  import type { Field, UpdateItemValuePayload } from './models';
2
+ import { ESCAPED_NEWLINE_CHARACTER } from '../../constants/ui';
2
3
  import type {
3
4
  ContentSettingsConfig,
4
5
  ContentSettingsMultiField,
@@ -114,7 +114,6 @@ const props = defineProps({
114
114
  type: Function as PropType<() => Promise<DropzoneOptions>>,
115
115
  required: true,
116
116
  },
117
- // eslint-disable-next-line vue/require-default-prop
118
117
  accept: {
119
118
  type: Function as PropType<
120
119
  (file: DropzoneFile, done: (error?: string | Error) => void) => void
@@ -1,5 +1,5 @@
1
1
  import { setActivePinia, createPinia } from 'pinia';
2
- import { describe, beforeEach, it, expect } from 'vitest';
2
+ import { describe, beforeEach, it, expect, vi } from 'vitest';
3
3
  import { useCartStore } from './cart-settings-store';
4
4
  import { useShopConfigStore } from './shop-settings-store';
5
5
 
@@ -15,7 +15,6 @@ export default defineComponent({
15
15
  required: true,
16
16
  },
17
17
  },
18
- emits: ['on-select'],
19
18
  data() {
20
19
  return {
21
20
  fontFamilyCategories: Object.values(FONT_FAMILY_CATEGORIES()),
@@ -14,7 +14,6 @@ export default defineComponent({
14
14
  default: undefined,
15
15
  },
16
16
  },
17
- emits: ['gallery-type-selected'],
18
17
  methods: {
19
18
  onGalleryTypeClick(galleryType: GalleryType) {
20
19
  this.$emit('gallery-type-selected', galleryType);
@@ -190,7 +190,7 @@ export default defineComponent({
190
190
  y1: 0,
191
191
  y2: 1,
192
192
  },
193
- colorStops: newColor.colors.map((c, _i) => {
193
+ colorStops: newColor.colors.map((c, i) => {
194
194
  return {
195
195
  color: c.color,
196
196
  offset: c.pos / 100,
@@ -6,6 +6,7 @@ import {
6
6
  useLogoStore,
7
7
  } from '@brand-page-maker/stores';
8
8
  import { useUiPageSettingsStore } from '@shared/page-settings/store';
9
+ import type { ContentItem } from '@shared/content-settings/models';
9
10
  import type { CreateWebsiteByoUploadResult } from '@shared/website-byo-upload/WebsiteByoUploadModels';
10
11
 
11
12
  export interface Tab {
@@ -2,7 +2,6 @@ import { defineComponent } from 'vue';
2
2
  import { useUiLogoSettingsStore } from '../store';
3
3
 
4
4
  export default defineComponent({
5
- emits: ['on-back'],
6
5
  setup() {
7
6
  const logoSettingsStore = useUiLogoSettingsStore();
8
7