@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
@@ -13,13 +13,14 @@ import type { TextStyleDeclaration } from '../brand-page/models/styles.model';
13
13
  import { hasRTEContent } from '../brand-page-maker/utils';
14
14
  import { useExternalRichTextEditor } from '../brand-page-maker/composables/rich-text-editor/useRichTextEditor';
15
15
  import type { Editor, JSONContent } from '@tiptap/vue-3';
16
- import {
17
- type AssetEntry,
18
- findAssetKey,
19
- resolveLogoData,
20
- } from './build-asset-manifest';
16
+ import { type AssetEntry, resolveLogoData } from './build-asset-manifest';
21
17
 
22
- type MinifiedFooterSocialLink = { imageUrl: string; url: string };
18
+ type MinifiedFooterSocialLink = {
19
+ position: number;
20
+ id?: string;
21
+ imageUrl: string;
22
+ url: string;
23
+ };
23
24
 
24
25
  type MinifiedFooter = {
25
26
  displayStyle?: string;
@@ -192,6 +193,18 @@ const includeBackgroundStyle = (
192
193
  return { backgroundStyle: { backgroundColor: bg } };
193
194
  };
194
195
 
196
+ /**
197
+ * Look up an asset key from the manifest by matching the data content.
198
+ */
199
+ const findAssetKey = (
200
+ assets: AssetEntry[] | undefined,
201
+ data: string | undefined,
202
+ ): string | undefined => {
203
+ if (!data || !assets) return undefined;
204
+
205
+ return assets.find((a) => a.data === data)?.key;
206
+ };
207
+
195
208
  const minifyContent = (
196
209
  content: Content,
197
210
  editor: Editor,
@@ -284,6 +297,7 @@ const minifyContent = (
284
297
  ...(Array.isArray(c.items) && {
285
298
  items: c.items.map((item: any, index: number) => ({
286
299
  position: index + 1,
300
+ ...(item.id && { id: item.id }),
287
301
  ...st('name', item.name, editor),
288
302
  ...st('jobTitle', item.position, editor),
289
303
  ...st('testimonials', item.testimonials, editor),
@@ -312,6 +326,7 @@ const minifyContent = (
312
326
  ...(Array.isArray(c.items) && {
313
327
  items: c.items.map((item: any, index: number) => ({
314
328
  position: index + 1,
329
+ ...(item.id && { id: item.id }),
315
330
  ...includeImageWithKey(item.imageUrl),
316
331
  ...st('title', item.title, editor),
317
332
  ...st('paragraph', item.paragraph, editor),
@@ -342,6 +357,7 @@ const minifyContent = (
342
357
  ...(Array.isArray(c.textItems) && {
343
358
  textItems: c.textItems.map((item: any, index: number) => ({
344
359
  position: index + 1,
360
+ ...(item.id && { id: item.id }),
345
361
  ...st('text', item.text, editor),
346
362
  ...(includeStyle(item.textStyle) && { textStyle: item.textStyle }),
347
363
  })),
@@ -431,6 +447,7 @@ const minifyContent = (
431
447
  ...(Array.isArray(c.links) && {
432
448
  links: c.links.map((link: any, index: number) => ({
433
449
  position: index + 1,
450
+ ...(link.id && { id: link.id }),
434
451
  ...(includeString(link.url) && { url: link.url }),
435
452
  ...includeImageWithKey(link.imageUrl),
436
453
  })),
@@ -474,6 +491,7 @@ const minifyContent = (
474
491
  ...(Array.isArray(c.images) && {
475
492
  images: c.images.map((img: any, index: number) => ({
476
493
  position: index + 1,
494
+ ...(img.id && { id: img.id }),
477
495
  ...includeImageWithKey(img.imageUrl),
478
496
  ...st('imageTitle', img.imageTitle, editor),
479
497
  })),
@@ -523,7 +541,9 @@ const minifyFooter = (
523
541
  logoImageWidth: footer.logoImageWidth || undefined,
524
542
  ...(logoAssetKey && { logoAssetKey }),
525
543
  socialLinks: footer.socialLinks?.length
526
- ? footer.socialLinks.map((l) => ({
544
+ ? footer.socialLinks.map((l, index) => ({
545
+ position: index + 1,
546
+ ...(l.id && { id: l.id }),
527
547
  imageUrl: l.imageUrl || '',
528
548
  url: l.url || '',
529
549
  }))
@@ -1,103 +0,0 @@
1
- import type { PropType } from 'vue';
2
- import type { BannerSectionViewModel, ButtonViewModel } from '@brand-page/view-models';
3
- import type { BrandPageContext } from '@brand-page/models';
4
- declare const _default: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
5
- viewModel: {
6
- type: PropType<BannerSectionViewModel>;
7
- required: true;
8
- };
9
- context: {
10
- type: PropType<BrandPageContext>;
11
- required: true;
12
- };
13
- containerClientWidth: {
14
- type: PropType<number | undefined>;
15
- required: false;
16
- default: undefined;
17
- };
18
- containerClientHeight: {
19
- type: PropType<number | undefined>;
20
- required: false;
21
- default: undefined;
22
- };
23
- contentIndex: {
24
- type: NumberConstructor;
25
- required: false;
26
- default: undefined;
27
- };
28
- }>, {}, {
29
- shouldStackOnTop: boolean;
30
- }, {
31
- displayAlignClass(): "" | "tw-items-center tw-w-full" | "tw-items-start tw-w-2/3" | "tw-items-end tw-w-2/3" | "tw-items-end";
32
- displayButtonClass(): "" | "tw-justify-start" | "tw-justify-center" | "tw-justify-end";
33
- isLeftImageAligned(): boolean;
34
- isRightImageAligned(): boolean;
35
- isDividedContent(): boolean;
36
- isCardBannerContent(): boolean;
37
- isCardAlignedOnLeft(): boolean;
38
- getbuttonViewModel(): ButtonViewModel;
39
- shouldShowButton(): boolean;
40
- isHorizontalAligned(): boolean;
41
- isBigImageAligned(): boolean;
42
- renderText(): string;
43
- hasDescriptionText(): boolean;
44
- overlayColor(): BrandPageCssStyle;
45
- opacity(): number;
46
- backgroundOverlay(): BrandPageCssStyle;
47
- }, {
48
- onResize(): void;
49
- }, import("vue").DefineComponent<import("vue").ExtractPropTypes<{
50
- isPreview: {
51
- type: BooleanConstructor;
52
- required: false;
53
- default: boolean;
54
- };
55
- isMobileDevice: {
56
- type: BooleanConstructor;
57
- required: false;
58
- default: undefined;
59
- };
60
- }>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
61
- isPreview: {
62
- type: BooleanConstructor;
63
- required: false;
64
- default: boolean;
65
- };
66
- isMobileDevice: {
67
- type: BooleanConstructor;
68
- required: false;
69
- default: undefined;
70
- };
71
- }>> & Readonly<{}>, {
72
- isPreview: boolean;
73
- isMobileDevice: boolean;
74
- }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
75
- viewModel: {
76
- type: PropType<BannerSectionViewModel>;
77
- required: true;
78
- };
79
- context: {
80
- type: PropType<BrandPageContext>;
81
- required: true;
82
- };
83
- containerClientWidth: {
84
- type: PropType<number | undefined>;
85
- required: false;
86
- default: undefined;
87
- };
88
- containerClientHeight: {
89
- type: PropType<number | undefined>;
90
- required: false;
91
- default: undefined;
92
- };
93
- contentIndex: {
94
- type: NumberConstructor;
95
- required: false;
96
- default: undefined;
97
- };
98
- }>> & Readonly<{}>, {
99
- containerClientWidth: number | undefined;
100
- containerClientHeight: number | undefined;
101
- contentIndex: number;
102
- }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
103
- export default _default;
@@ -1,178 +0,0 @@
1
- import { defineComponent } from 'vue';
2
- import ComponentCommonMixin from '../mixins/component-common.mixin';
3
- import { hasValidButton as shouldShowButtonUtil } from '../../../utils/validator.util';
4
- import { ALIGN_CENTERED, ALIGN_LEFT_ALIGNED, ALIGN_RIGHT_ALIGNED, BIG_IMAGE, ALIGN_LEFT_BIG_IMAGE, ALIGN_RIGHT_FULL_IMAGE, ALIGN_LEFT_FULL_IMAGE, ALIGN_CARD_CENTER_IMAGE, ALIGN_CARD_LEFT_IMAGE, } from '../../constants';
5
- import { getRenderText, escapeContentText } from '@brand-page/utils';
6
- import { hasRTEContent } from '@brand-page-maker/utils';
7
- export default defineComponent({
8
- mixins: [ComponentCommonMixin],
9
- props: {
10
- viewModel: {
11
- type: Object,
12
- required: true,
13
- },
14
- context: {
15
- type: Object,
16
- required: true,
17
- },
18
- containerClientWidth: {
19
- type: Number,
20
- required: false,
21
- default: undefined,
22
- },
23
- containerClientHeight: {
24
- type: Number,
25
- required: false,
26
- default: undefined,
27
- },
28
- contentIndex: {
29
- type: Number,
30
- required: false,
31
- default: undefined,
32
- },
33
- },
34
- data() {
35
- return {
36
- shouldStackOnTop: false,
37
- };
38
- },
39
- mounted() {
40
- this.$nextTick(() => {
41
- window.addEventListener('resize', this.onResize);
42
- });
43
- },
44
- unmounted() {
45
- if (typeof window !== undefined) {
46
- window.removeEventListener(`resize`, this.onResize);
47
- }
48
- },
49
- computed: {
50
- displayAlignClass() {
51
- switch (this.viewModel.displayStyle) {
52
- case ALIGN_CENTERED:
53
- return 'tw-items-center tw-w-full';
54
- case BIG_IMAGE:
55
- return 'tw-items-center tw-w-full';
56
- case ALIGN_LEFT_ALIGNED:
57
- return 'tw-items-start tw-w-2/3';
58
- case ALIGN_RIGHT_ALIGNED:
59
- return 'tw-items-end tw-w-2/3';
60
- case ALIGN_LEFT_BIG_IMAGE:
61
- return 'tw-items-start tw-w-2/3';
62
- case ALIGN_CARD_CENTER_IMAGE:
63
- return 'tw-items-center tw-w-full';
64
- case ALIGN_CARD_LEFT_IMAGE:
65
- return 'tw-items-end';
66
- default:
67
- return '';
68
- }
69
- },
70
- displayButtonClass() {
71
- if (this.viewModel.buttonTextStyle) {
72
- switch (this.viewModel.buttonTextStyle.textAlign) {
73
- case 'left':
74
- return 'tw-justify-start';
75
- case 'center':
76
- return 'tw-justify-center';
77
- case 'right':
78
- return 'tw-justify-end';
79
- default:
80
- return '';
81
- }
82
- }
83
- else {
84
- return this.viewModel.displayStyle === ALIGN_CARD_CENTER_IMAGE ||
85
- this.viewModel.displayStyle === ALIGN_CENTERED
86
- ? 'tw-justify-center'
87
- : 'tw-justify-start';
88
- }
89
- },
90
- isLeftImageAligned() {
91
- if (this.viewModel.displayStyle === ALIGN_LEFT_FULL_IMAGE) {
92
- return true;
93
- }
94
- return false;
95
- },
96
- isRightImageAligned() {
97
- if (this.viewModel.displayStyle === ALIGN_RIGHT_FULL_IMAGE) {
98
- return true;
99
- }
100
- return false;
101
- },
102
- isDividedContent() {
103
- if (this.viewModel.displayStyle === ALIGN_RIGHT_FULL_IMAGE ||
104
- this.viewModel.displayStyle === ALIGN_LEFT_FULL_IMAGE) {
105
- return true;
106
- }
107
- return false;
108
- },
109
- isCardBannerContent() {
110
- if (this.viewModel.displayStyle === ALIGN_CARD_CENTER_IMAGE ||
111
- this.viewModel.displayStyle === ALIGN_CARD_LEFT_IMAGE) {
112
- return true;
113
- }
114
- return false;
115
- },
116
- isCardAlignedOnLeft() {
117
- return this.viewModel.displayStyle === ALIGN_CARD_LEFT_IMAGE;
118
- },
119
- getbuttonViewModel() {
120
- const { buttonViewModel, buttonLinkType, pageSlug } = this.viewModel;
121
- buttonViewModel.buttonLinkType = buttonLinkType;
122
- buttonViewModel.pageSlug = pageSlug;
123
- return buttonViewModel;
124
- },
125
- shouldShowButton() {
126
- return shouldShowButtonUtil({
127
- buttonText: this.viewModel.buttonText,
128
- buttonViewModel: this.viewModel.buttonViewModel,
129
- });
130
- },
131
- isHorizontalAligned() {
132
- return (this.viewModel.displayStyle === ALIGN_LEFT_ALIGNED ||
133
- this.viewModel.displayStyle === ALIGN_RIGHT_ALIGNED ||
134
- this.viewModel.displayStyle === ALIGN_LEFT_FULL_IMAGE ||
135
- this.viewModel.displayStyle === ALIGN_RIGHT_FULL_IMAGE);
136
- },
137
- isBigImageAligned() {
138
- return (this.viewModel.displayStyle === ALIGN_LEFT_BIG_IMAGE ||
139
- this.viewModel.displayStyle === ALIGN_CARD_LEFT_IMAGE);
140
- },
141
- renderText() {
142
- if (!this.viewModel.description) {
143
- return '';
144
- }
145
- if (hasRTEContent(this.viewModel.description)) {
146
- return this.viewModel.description;
147
- }
148
- else {
149
- return getRenderText(this.viewModel.description);
150
- }
151
- },
152
- hasDescriptionText() {
153
- if (hasRTEContent(this.viewModel.description)) {
154
- return escapeContentText(this.viewModel.description) !== '';
155
- }
156
- else {
157
- return this.viewModel?.description?.length > 0;
158
- }
159
- },
160
- overlayColor() {
161
- return this.viewModel.overlayColor || 'rgb(0,0,0)';
162
- },
163
- opacity() {
164
- return this.viewModel.overlayOpacity;
165
- },
166
- backgroundOverlay() {
167
- return {
168
- background: this.overlayColor.backgroundColor,
169
- opacity: `${this.opacity}%`,
170
- };
171
- },
172
- },
173
- methods: {
174
- onResize() {
175
- this.shouldStackOnTop = window.innerWidth < 640;
176
- },
177
- },
178
- });
@@ -1,210 +0,0 @@
1
- import { defineComponent } from 'vue';
2
- import type { PropType } from 'vue';
3
- import ComponentCommonMixin from '../mixins/component-common.mixin';
4
- import type {
5
- BannerSectionViewModel,
6
- ButtonViewModel,
7
- } from '@brand-page/view-models';
8
- import { hasValidButton as shouldShowButtonUtil } from '../../../utils/validator.util';
9
- import type { BrandPageContext } from '@brand-page/models';
10
- import {
11
- ALIGN_CENTERED,
12
- ALIGN_LEFT_ALIGNED,
13
- ALIGN_RIGHT_ALIGNED,
14
- BIG_IMAGE,
15
- ALIGN_LEFT_BIG_IMAGE,
16
- ALIGN_RIGHT_FULL_IMAGE,
17
- ALIGN_LEFT_FULL_IMAGE,
18
- ALIGN_CARD_CENTER_IMAGE,
19
- ALIGN_CARD_LEFT_IMAGE,
20
- } from '../../constants';
21
- import { getRenderText, escapeContentText } from '@brand-page/utils';
22
- import { hasRTEContent } from '@brand-page-maker/utils';
23
-
24
- export default defineComponent({
25
- mixins: [ComponentCommonMixin],
26
- props: {
27
- viewModel: {
28
- type: Object as PropType<BannerSectionViewModel>,
29
- required: true,
30
- },
31
- context: {
32
- type: Object as PropType<BrandPageContext>,
33
- required: true,
34
- },
35
- containerClientWidth: {
36
- type: Number as PropType<number | undefined>,
37
- required: false,
38
- default: undefined,
39
- },
40
- containerClientHeight: {
41
- type: Number as PropType<number | undefined>,
42
- required: false,
43
- default: undefined,
44
- },
45
- contentIndex: {
46
- type: Number,
47
- required: false,
48
- default: undefined,
49
- },
50
- },
51
- data() {
52
- return {
53
- shouldStackOnTop: false,
54
- };
55
- },
56
- mounted() {
57
- this.$nextTick(() => {
58
- window.addEventListener('resize', this.onResize);
59
- });
60
- },
61
- unmounted() {
62
- if (typeof window !== undefined) {
63
- window.removeEventListener(`resize`, this.onResize);
64
- }
65
- },
66
- computed: {
67
- displayAlignClass() {
68
- switch (this.viewModel.displayStyle) {
69
- case ALIGN_CENTERED:
70
- return 'tw-items-center tw-w-full';
71
- case BIG_IMAGE:
72
- return 'tw-items-center tw-w-full';
73
- case ALIGN_LEFT_ALIGNED:
74
- return 'tw-items-start tw-w-2/3';
75
- case ALIGN_RIGHT_ALIGNED:
76
- return 'tw-items-end tw-w-2/3';
77
- case ALIGN_LEFT_BIG_IMAGE:
78
- return 'tw-items-start tw-w-2/3';
79
- case ALIGN_CARD_CENTER_IMAGE:
80
- return 'tw-items-center tw-w-full';
81
- case ALIGN_CARD_LEFT_IMAGE:
82
- return 'tw-items-end';
83
- default:
84
- return '';
85
- }
86
- },
87
- displayButtonClass() {
88
- if (this.viewModel.buttonTextStyle) {
89
- switch (this.viewModel.buttonTextStyle.textAlign) {
90
- case 'left':
91
- return 'tw-justify-start';
92
- case 'center':
93
- return 'tw-justify-center';
94
- case 'right':
95
- return 'tw-justify-end';
96
- default:
97
- return '';
98
- }
99
- } else {
100
- return this.viewModel.displayStyle === ALIGN_CARD_CENTER_IMAGE ||
101
- this.viewModel.displayStyle === ALIGN_CENTERED
102
- ? 'tw-justify-center'
103
- : 'tw-justify-start';
104
- }
105
- },
106
- isLeftImageAligned(): boolean {
107
- if (this.viewModel.displayStyle === ALIGN_LEFT_FULL_IMAGE) {
108
- return true;
109
- }
110
-
111
- return false;
112
- },
113
- isRightImageAligned(): boolean {
114
- if (this.viewModel.displayStyle === ALIGN_RIGHT_FULL_IMAGE) {
115
- return true;
116
- }
117
-
118
- return false;
119
- },
120
-
121
- isDividedContent(): boolean {
122
- if (
123
- this.viewModel.displayStyle === ALIGN_RIGHT_FULL_IMAGE ||
124
- this.viewModel.displayStyle === ALIGN_LEFT_FULL_IMAGE
125
- ) {
126
- return true;
127
- }
128
-
129
- return false;
130
- },
131
- isCardBannerContent(): boolean {
132
- if (
133
- this.viewModel.displayStyle === ALIGN_CARD_CENTER_IMAGE ||
134
- this.viewModel.displayStyle === ALIGN_CARD_LEFT_IMAGE
135
- ) {
136
- return true;
137
- }
138
-
139
- return false;
140
- },
141
- isCardAlignedOnLeft() {
142
- return this.viewModel.displayStyle === ALIGN_CARD_LEFT_IMAGE;
143
- },
144
- getbuttonViewModel(): ButtonViewModel {
145
- const { buttonViewModel, buttonLinkType, pageSlug } = this.viewModel;
146
-
147
- buttonViewModel.buttonLinkType = buttonLinkType;
148
- buttonViewModel.pageSlug = pageSlug;
149
-
150
- return buttonViewModel;
151
- },
152
-
153
- shouldShowButton(): boolean {
154
- return shouldShowButtonUtil({
155
- buttonText: this.viewModel.buttonText,
156
- buttonViewModel: this.viewModel.buttonViewModel,
157
- });
158
- },
159
-
160
- isHorizontalAligned(): boolean {
161
- return (
162
- this.viewModel.displayStyle === ALIGN_LEFT_ALIGNED ||
163
- this.viewModel.displayStyle === ALIGN_RIGHT_ALIGNED ||
164
- this.viewModel.displayStyle === ALIGN_LEFT_FULL_IMAGE ||
165
- this.viewModel.displayStyle === ALIGN_RIGHT_FULL_IMAGE
166
- );
167
- },
168
- isBigImageAligned(): boolean {
169
- return (
170
- this.viewModel.displayStyle === ALIGN_LEFT_BIG_IMAGE ||
171
- this.viewModel.displayStyle === ALIGN_CARD_LEFT_IMAGE
172
- );
173
- },
174
- renderText(): string {
175
- if (!this.viewModel.description) {
176
- return '';
177
- }
178
-
179
- if (hasRTEContent(this.viewModel.description)) {
180
- return this.viewModel.description;
181
- } else {
182
- return getRenderText(this.viewModel.description);
183
- }
184
- },
185
- hasDescriptionText(): boolean {
186
- if (hasRTEContent(this.viewModel.description)) {
187
- return escapeContentText(this.viewModel.description) !== '';
188
- } else {
189
- return this.viewModel?.description?.length > 0;
190
- }
191
- },
192
- overlayColor(): BrandPageCssStyle {
193
- return this.viewModel.overlayColor || 'rgb(0,0,0)';
194
- },
195
- opacity(): number {
196
- return this.viewModel.overlayOpacity;
197
- },
198
- backgroundOverlay(): BrandPageCssStyle {
199
- return {
200
- background: this.overlayColor.backgroundColor,
201
- opacity: `${this.opacity}%`,
202
- };
203
- },
204
- },
205
- methods: {
206
- onResize() {
207
- this.shouldStackOnTop = window.innerWidth < 640;
208
- },
209
- },
210
- });
@@ -1,12 +0,0 @@
1
- <template>
2
- <div
3
- data-test-ai-design
4
- class="tw-flex tw-flex-row tw-absolute tw-top-2.5 tw-left-2.5 tw-rounded-full tw-py-1 tw-px-2 tw-text-white tw-text-xs tw-font-bold tw-z-[25] tw-bg-gradient-to-t tw-from-[#d946ef] tw-to-[#8b5cf6]"
5
- >
6
- <Icon name="ai" class="tw-text-white tw-pr-1" size="sm" />
7
- <span>AI</span>
8
- </div>
9
- </template>
10
- <script setup lang="ts">
11
- import { Icon } from '@designcrowd/fe-shared-lib';
12
- </script>