@designcrowd/library.brand-page 5.17.6 → 5.17.7

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 (172) hide show
  1. package/lib/src/{CreatedOnBrandCrowd-de-de-BI2KuOEF.js → CreatedOnBrandCrowd-de-de-BUQFMhZb.js} +1 -1
  2. package/lib/src/{CreatedOnBrandCrowd-en-us-BYLJCjLJ.js → CreatedOnBrandCrowd-en-us-QS-5r4XI.js} +1 -1
  3. package/lib/src/{CreatedOnBrandCrowd-es-es-Y_D6cuGE.js → CreatedOnBrandCrowd-es-es-CP2iH-n0.js} +1 -1
  4. package/lib/src/{CreatedOnBrandCrowd-fr-fr-CqCBRjYh.js → CreatedOnBrandCrowd-fr-ca-qfD4NmQZ.js} +1 -1
  5. package/lib/src/{CreatedOnBrandCrowd-fr-ca-CqCBRjYh.js → CreatedOnBrandCrowd-fr-fr-qfD4NmQZ.js} +1 -1
  6. package/lib/src/{CreatedOnBrandCrowd-pt-pt-Bt0YF6DA.js → CreatedOnBrandCrowd-pt-br-CfmaB7zE.js} +1 -1
  7. package/lib/src/{CreatedOnBrandCrowd-pt-br-Bt0YF6DA.js → CreatedOnBrandCrowd-pt-pt-CfmaB7zE.js} +1 -1
  8. package/lib/src/{CreatedOnDcom-de-de-CEk8FBEG.js → CreatedOnDcom-de-de-BxSUWfGN.js} +1 -1
  9. package/lib/src/{CreatedOnDcom-en-us-DWw4Tm2L.js → CreatedOnDcom-en-us-CSeUdR6v.js} +1 -1
  10. package/lib/src/{CreatedOnDcom-es-es-DpG-8o98.js → CreatedOnDcom-es-es-g7rCfAtP.js} +1 -1
  11. package/lib/src/{CreatedOnDcom-fr-ca-CEla7RmR.js → CreatedOnDcom-fr-ca-Bh_BTb-O.js} +1 -1
  12. package/lib/src/{CreatedOnDcom-fr-fr-DRXeVTlV.js → CreatedOnDcom-fr-fr-Clgd_Ujm.js} +1 -1
  13. package/lib/src/{CreatedOnDcom-pt-br-Bzu_phZc.js → CreatedOnDcom-pt-br-Dlgk0myX.js} +1 -1
  14. package/lib/src/{CreatedOnDcom-pt-pt-DWax8Er7.js → CreatedOnDcom-pt-pt-B14APfrn.js} +1 -1
  15. package/lib/src/brand-page/models/brand-page-context.model.d.ts +2 -1
  16. package/lib/src/brand-page/models/brand-page-context.model.js +5 -0
  17. package/lib/src/brand-page/models/index.d.ts +1 -0
  18. package/lib/src/brand-page-maker/components/brand-page-maker/BrandPageMaker.mixin.d.ts +62 -2
  19. package/lib/src/brand-page-maker/components/brand-page-maker/BrandPageMaker.mixin.js +1 -0
  20. package/lib/src/brand-page-maker/components/brandpage-maker-page/BrandPageMakerPage.mixin.d.ts +60 -2
  21. package/lib/src/brand-page-maker/components/preview/Preview.mixin.d.ts +30 -1
  22. package/lib/src/brand-page-maker/components/quick-link-bar/QuickLinkBar.mixin.d.ts +60 -2
  23. package/lib/src/brand-page-maker/components/seo-settings/SeoPageSettings.mixin.d.ts +60 -2
  24. package/lib/src/brand-page-maker/components/seo-settings/UrlSettings.mixin.d.ts +60 -2
  25. package/lib/src/brand-page-maker/components/seo-settings/UseExistingDomainModal.mixin.d.ts +60 -2
  26. package/lib/src/brand-page-maker/components/template-preview/TemplatePreview.mixin.d.ts +60 -2
  27. package/lib/src/brand-page-maker/components/upgrade-to-premium-button/UpgradeToPremiumButton.mixin.d.ts +60 -2
  28. package/lib/src/brand-page-maker/composables/ai-chat/useAiChat.js +3 -1
  29. package/lib/src/brand-page-maker/composables/ai-chat/useAiMetadataBuilder.d.ts +1 -1
  30. package/lib/src/brand-page-maker/composables/ai-chat/useAiMetadataBuilder.js +6 -6
  31. package/lib/src/brand-page-maker/composables/ai-chat/useAiWebsiteBuilderChat.d.ts +2 -0
  32. package/lib/src/brand-page-maker/composables/ai-chat/useAiWebsiteBuilderChat.js +258 -0
  33. package/lib/src/brand-page-maker/constants/sidebar-constant.d.ts +1 -0
  34. package/lib/src/brand-page-maker/constants/sidebar-constant.js +8 -0
  35. package/lib/src/brand-page-maker/stores/ai-thread/ai-website-builder-thread-store.d.ts +16 -0
  36. package/lib/src/brand-page-maker/stores/ai-thread/ai-website-builder-thread-store.js +14 -0
  37. package/lib/src/brand-page-maker/stores/brandpage-container/brand-page-container-store.d.ts +62 -3
  38. package/lib/src/brand-page-maker/stores/brandpage-maker/brandpage-maker-store.js +2 -0
  39. package/lib/src/brand-page-maker/stores/index.d.ts +1 -0
  40. package/lib/src/brand-page-maker/stores/index.js +1 -0
  41. package/lib/src/brand-page-maker/stores/snapshot/snapshot-store.d.ts +2 -0
  42. package/lib/src/brand-page-maker/stores/snapshot/snapshot-store.js +9 -0
  43. package/lib/src/clients/ai-assistant-client.d.ts +8 -0
  44. package/lib/src/clients/ai-assistant-client.js +11 -1
  45. package/lib/src/composables/useSnapshot.js +33 -0
  46. package/lib/src/css/library.brand-page-brandCrowd.min.css +19 -6
  47. package/lib/src/css/library.brand-page-brandPage.min.css +19 -6
  48. package/lib/src/css/library.brand-page-designCom.min.css +19 -6
  49. package/lib/src/css/library.brand-page-preview.min.css +19 -6
  50. package/lib/src/index.d.ts +1 -0
  51. package/lib/src/index.mjs +42 -41
  52. package/lib/src/{lib-DODSa6QK.js → lib-pOkCQP0J.js} +28820 -26841
  53. package/lib/src/lib.js +1 -0
  54. package/lib/src/metadata-builder/ai-metadata-executor.d.ts +1 -1
  55. package/lib/src/metadata-builder/ai-metadata-executor.js +68 -7
  56. package/lib/src/metadata-builder/builders/add-page-builder.d.ts +14 -0
  57. package/lib/src/metadata-builder/builders/add-page-builder.js +66 -0
  58. package/lib/src/metadata-builder/builders/remove-page-builder.d.ts +13 -0
  59. package/lib/src/metadata-builder/builders/remove-page-builder.js +50 -0
  60. package/lib/src/metadata-builder/builders/section-builders/about-section-builder.d.ts +6 -0
  61. package/lib/src/metadata-builder/builders/section-builders/about-section-builder.js +17 -0
  62. package/lib/src/metadata-builder/builders/section-builders/banner-section-builder.d.ts +6 -0
  63. package/lib/src/metadata-builder/builders/section-builders/banner-section-builder.js +25 -0
  64. package/lib/src/metadata-builder/builders/section-builders/base-section-builder.d.ts +40 -0
  65. package/lib/src/metadata-builder/builders/section-builders/base-section-builder.js +108 -0
  66. package/lib/src/metadata-builder/builders/section-builders/button-section-builder.d.ts +6 -0
  67. package/lib/src/metadata-builder/builders/section-builders/button-section-builder.js +16 -0
  68. package/lib/src/metadata-builder/builders/section-builders/contact-form-builder.d.ts +6 -0
  69. package/lib/src/metadata-builder/builders/section-builders/contact-form-builder.js +27 -0
  70. package/lib/src/metadata-builder/builders/section-builders/delete-section-builder.d.ts +13 -0
  71. package/lib/src/metadata-builder/builders/section-builders/delete-section-builder.js +37 -0
  72. package/lib/src/metadata-builder/builders/section-builders/divider-section-builder.d.ts +6 -0
  73. package/lib/src/metadata-builder/builders/section-builders/divider-section-builder.js +16 -0
  74. package/lib/src/metadata-builder/builders/section-builders/image-gallery-builder.d.ts +6 -0
  75. package/lib/src/metadata-builder/builders/section-builders/image-gallery-builder.js +76 -0
  76. package/lib/src/metadata-builder/builders/section-builders/image-section-builder.d.ts +6 -0
  77. package/lib/src/metadata-builder/builders/section-builders/image-section-builder.js +16 -0
  78. package/lib/src/metadata-builder/builders/section-builders/images-section-builder.d.ts +6 -0
  79. package/lib/src/metadata-builder/builders/section-builders/images-section-builder.js +158 -0
  80. package/lib/src/metadata-builder/builders/section-builders/index.d.ts +17 -0
  81. package/lib/src/metadata-builder/builders/section-builders/index.js +17 -0
  82. package/lib/src/metadata-builder/builders/section-builders/mailing-list-builder.d.ts +6 -0
  83. package/lib/src/metadata-builder/builders/section-builders/mailing-list-builder.js +17 -0
  84. package/lib/src/metadata-builder/builders/section-builders/mailing-list-section-builder.d.ts +6 -0
  85. package/lib/src/metadata-builder/builders/section-builders/mailing-list-section-builder.js +16 -0
  86. package/lib/src/metadata-builder/builders/section-builders/move-section-builder.d.ts +15 -0
  87. package/lib/src/metadata-builder/builders/section-builders/move-section-builder.js +62 -0
  88. package/lib/src/metadata-builder/builders/section-builders/profile-section-builder.d.ts +6 -0
  89. package/lib/src/metadata-builder/builders/section-builders/profile-section-builder.js +16 -0
  90. package/lib/src/metadata-builder/builders/section-builders/shapes-section-builder.d.ts +6 -0
  91. package/lib/src/metadata-builder/builders/section-builders/shapes-section-builder.js +162 -0
  92. package/lib/src/metadata-builder/builders/section-builders/social-links-builder.d.ts +6 -0
  93. package/lib/src/metadata-builder/builders/section-builders/social-links-builder.js +50 -0
  94. package/lib/src/metadata-builder/builders/section-builders/testimonial-section-builder.d.ts +6 -0
  95. package/lib/src/metadata-builder/builders/section-builders/testimonial-section-builder.js +133 -0
  96. package/lib/src/metadata-builder/builders/section-builders/text-section-builder.d.ts +6 -0
  97. package/lib/src/metadata-builder/builders/section-builders/text-section-builder.js +154 -0
  98. package/lib/src/metadata-builder/builders/section-content-factory.d.ts +3 -0
  99. package/lib/src/metadata-builder/builders/section-content-factory.js +13 -0
  100. package/lib/src/metadata-builder/builders/section-field-maps.d.ts +12 -0
  101. package/lib/src/metadata-builder/builders/section-field-maps.js +180 -0
  102. package/lib/src/metadata-builder/builders/section-field-utils.d.ts +11 -0
  103. package/lib/src/metadata-builder/builders/section-field-utils.js +109 -0
  104. package/lib/src/metadata-builder/helpers/rte.helpers.d.ts +6 -0
  105. package/lib/src/metadata-builder/helpers/rte.helpers.js +16 -1
  106. package/lib/src/metadata-builder/metadata-executor.js +71 -1
  107. package/lib/src/metadata-builder/models.d.ts +54 -0
  108. package/lib/src/metadata-builder/models.js +58 -0
  109. package/lib/src/metadata-builder/parsers/ai-toolcall-parser.d.ts +51 -3
  110. package/lib/src/metadata-builder/parsers/ai-toolcall-parser.js +110 -13
  111. package/lib/src/metadata-builder/parsers/section-tool-arguments.d.ts +285 -0
  112. package/lib/src/metadata-builder/parsers/section-tool-arguments.js +7 -0
  113. package/lib/src/shared/content-settings/components/payment-config-field/PaymentConfigField.mixin.d.ts +60 -2
  114. package/lib/src/shared/logo-settings/components/LogoSettings.mixin.d.ts +60 -2
  115. package/lib/src/shared/page-settings/components/page-settings/PageSettings.mixin.d.ts +60 -2
  116. package/lib/src/shared/page-settings/components/page-settings-section-styles/PageSettingsSectionStyles.mixin.d.ts +60 -2
  117. package/lib/src/shared/publish-brand-page-with-state/PublishBrandPageModalWithState.mixin.d.ts +90 -3
  118. package/lib/src/shared/side-bar/components/SideBar.mixin.d.ts +61 -2
  119. package/lib/src/shared/side-bar/components/SideBar.mixin.js +6 -0
  120. package/lib/src/shared/style-settings/components/StyleSettings.mixin.d.ts +60 -2
  121. package/lib/src/utils/minify-brand-page-metadata.d.ts +22 -0
  122. package/lib/src/utils/minify-brand-page-metadata.js +344 -0
  123. package/package.json +1 -1
  124. package/src/brand-page/models/brand-page-context.model.ts +12 -3
  125. package/src/brand-page/models/index.ts +1 -0
  126. package/src/brand-page-maker/components/ai-website-builder/AiWebsiteBuilder.vue +80 -0
  127. package/src/brand-page-maker/components/brand-page-maker/BrandPageMaker.mixin.ts +4 -0
  128. package/src/brand-page-maker/components/brand-page-maker/BrandPageMaker.vue +9 -2
  129. package/src/brand-page-maker/composables/ai-chat/useAiChat.ts +4 -1
  130. package/src/brand-page-maker/composables/ai-chat/useAiMetadataBuilder.ts +6 -6
  131. package/src/brand-page-maker/composables/ai-chat/useAiWebsiteBuilderChat.ts +363 -0
  132. package/src/brand-page-maker/constants/sidebar-constant.ts +8 -0
  133. package/src/brand-page-maker/stores/ai-thread/ai-website-builder-thread-store.ts +19 -0
  134. package/src/brand-page-maker/stores/brandpage-container/brand-page-container-store.ts +3 -1
  135. package/src/brand-page-maker/stores/brandpage-maker/brandpage-maker-store.ts +4 -0
  136. package/src/brand-page-maker/stores/index.ts +1 -0
  137. package/src/brand-page-maker/stores/snapshot/snapshot-store.ts +12 -0
  138. package/src/clients/ai-assistant-client.ts +17 -1
  139. package/src/composables/useSnapshot.ts +47 -0
  140. package/src/lib.ts +4 -0
  141. package/src/metadata-builder/ai-metadata-executor.ts +116 -26
  142. package/src/metadata-builder/builders/add-page-builder.ts +98 -0
  143. package/src/metadata-builder/builders/remove-page-builder.ts +83 -0
  144. package/src/metadata-builder/builders/section-builders/about-section-builder.ts +28 -0
  145. package/src/metadata-builder/builders/section-builders/banner-section-builder.ts +45 -0
  146. package/src/metadata-builder/builders/section-builders/base-section-builder.ts +160 -0
  147. package/src/metadata-builder/builders/section-builders/button-section-builder.ts +24 -0
  148. package/src/metadata-builder/builders/section-builders/contact-form-builder.ts +43 -0
  149. package/src/metadata-builder/builders/section-builders/delete-section-builder.ts +63 -0
  150. package/src/metadata-builder/builders/section-builders/divider-section-builder.ts +27 -0
  151. package/src/metadata-builder/builders/section-builders/image-gallery-builder.ts +111 -0
  152. package/src/metadata-builder/builders/section-builders/image-section-builder.ts +24 -0
  153. package/src/metadata-builder/builders/section-builders/images-section-builder.ts +223 -0
  154. package/src/metadata-builder/builders/section-builders/index.ts +21 -0
  155. package/src/metadata-builder/builders/section-builders/mailing-list-builder.ts +29 -0
  156. package/src/metadata-builder/builders/section-builders/mailing-list-section-builder.ts +27 -0
  157. package/src/metadata-builder/builders/section-builders/move-section-builder.ts +100 -0
  158. package/src/metadata-builder/builders/section-builders/profile-section-builder.ts +27 -0
  159. package/src/metadata-builder/builders/section-builders/shapes-section-builder.ts +231 -0
  160. package/src/metadata-builder/builders/section-builders/social-links-builder.ts +79 -0
  161. package/src/metadata-builder/builders/section-builders/testimonial-section-builder.ts +194 -0
  162. package/src/metadata-builder/builders/section-builders/text-section-builder.ts +234 -0
  163. package/src/metadata-builder/builders/section-content-factory.ts +20 -0
  164. package/src/metadata-builder/builders/section-field-maps.ts +235 -0
  165. package/src/metadata-builder/builders/section-field-utils.ts +157 -0
  166. package/src/metadata-builder/helpers/rte.helpers.ts +23 -1
  167. package/src/metadata-builder/metadata-executor.ts +96 -4
  168. package/src/metadata-builder/models.ts +62 -0
  169. package/src/metadata-builder/parsers/ai-toolcall-parser.ts +141 -17
  170. package/src/metadata-builder/parsers/section-tool-arguments.ts +417 -0
  171. package/src/shared/side-bar/components/SideBar.mixin.ts +10 -0
  172. package/src/utils/minify-brand-page-metadata.ts +407 -0
@@ -0,0 +1,417 @@
1
+ /**
2
+ * Typed interfaces for website builder section tool arguments.
3
+ *
4
+ * Canonical reference: service.ai-pipelines/src/agents/website/section_schemas.py
5
+ * Every field defined there has a corresponding TS field here.
6
+ */
7
+
8
+ import type { ContentType } from '../../brand-page/models';
9
+
10
+ // ---------------------------------------------------------------------------
11
+ // Section type — the subset of ContentType the AI builder supports
12
+ // ---------------------------------------------------------------------------
13
+
14
+ /** Content types not supported by the AI builder. */
15
+ type UnsupportedContentType =
16
+ | 'logo'
17
+ | 'video'
18
+ | 'map'
19
+ | 'request-payment'
20
+ | 'support-me'
21
+ | 'shop-section'
22
+ | 'booking-section';
23
+
24
+ export type SectionType = Exclude<ContentType, UnsupportedContentType>;
25
+
26
+ // ---------------------------------------------------------------------------
27
+ // Shared style type (matches TEXT_STYLE_SCHEMA in section_schemas.py)
28
+ // ---------------------------------------------------------------------------
29
+
30
+ export interface TextStyleArguments {
31
+ fontSize?: string | null;
32
+ color?: string | null;
33
+ fontWeight?: string | null;
34
+ fontStyle?: string | null;
35
+ textAlign?: string | null;
36
+ textDecoration?: string | null;
37
+ backgroundColor?: string | null;
38
+ letterSpacing?: number | null;
39
+ lineHeight?: number | null;
40
+ fontFamily?: string | null;
41
+ }
42
+
43
+ export interface BackgroundStyleArguments {
44
+ backgroundColor?: string | null;
45
+ }
46
+
47
+ export interface CardStyleArguments {
48
+ backgroundColor?: string | null;
49
+ borderRadius?: string | null;
50
+ borderColor?: string | null;
51
+ }
52
+
53
+ // ---------------------------------------------------------------------------
54
+ // Per-section argument interfaces
55
+ // ---------------------------------------------------------------------------
56
+
57
+ export interface ProfileSectionArguments {
58
+ name?: string;
59
+ title?: string;
60
+ description?: string;
61
+ avatar_image_url?: string;
62
+ }
63
+
64
+ export interface TextSectionItem {
65
+ /** 0-based index of existing item to update in-place */
66
+ item_index?: number;
67
+ /** 0-based position to insert a new item at */
68
+ insert_at?: number;
69
+ text?: string;
70
+ text_style?: TextStyleArguments;
71
+ }
72
+
73
+ export interface TextSectionArguments {
74
+ /** Single text field (BrandPage/BrandContact or shorthand for first item) */
75
+ text?: string;
76
+ text_style?: TextStyleArguments;
77
+ /** Multiple text items (BrandSite) */
78
+ items?: TextSectionItem[];
79
+ _replace_items?: boolean;
80
+ /** 0-based indices of items to remove */
81
+ _remove_item_indices?: number[];
82
+ /** New order as array of current 0-based indices */
83
+ _reorder_items?: number[];
84
+ }
85
+
86
+ export interface ImageSectionArguments {
87
+ image_url?: string;
88
+ image_title?: string;
89
+ }
90
+
91
+ export interface ImageGalleryItem {
92
+ /** 0-based index of existing item to update in-place */
93
+ item_index?: number;
94
+ /** 0-based position to insert a new item at */
95
+ insert_at?: number;
96
+ image_url?: string;
97
+ caption?: string;
98
+ }
99
+
100
+ export interface ImageGallerySectionArguments {
101
+ images?: ImageGalleryItem[];
102
+ gallery_type?: 'grid' | 'carousel' | 'masonry';
103
+ _replace_items?: boolean;
104
+ /** 0-based indices of items to remove */
105
+ _remove_item_indices?: number[];
106
+ /** New order as array of current 0-based indices */
107
+ _reorder_items?: number[];
108
+ }
109
+
110
+ export interface GeneralLinkSectionArguments {
111
+ title?: string;
112
+ url?: string;
113
+ icon_image_url?: string;
114
+ }
115
+
116
+ export interface WebsiteSectionArguments {
117
+ title?: string;
118
+ url?: string;
119
+ icon_image_url?: string;
120
+ }
121
+
122
+ export interface EmailSectionArguments {
123
+ title?: string;
124
+ email?: string;
125
+ icon_image_url?: string;
126
+ }
127
+
128
+ export interface PhoneSectionArguments {
129
+ title?: string;
130
+ phone_number?: string;
131
+ icon_image_url?: string;
132
+ }
133
+
134
+ export interface FacebookSectionArguments {
135
+ title?: string;
136
+ url?: string;
137
+ }
138
+
139
+ export interface XSectionArguments {
140
+ title?: string;
141
+ url?: string;
142
+ }
143
+
144
+ export interface InstagramSectionArguments {
145
+ title?: string;
146
+ url?: string;
147
+ }
148
+
149
+ export interface YoutubeSectionArguments {
150
+ title?: string;
151
+ url?: string;
152
+ }
153
+
154
+ export interface LinkedinSectionArguments {
155
+ title?: string;
156
+ url?: string;
157
+ }
158
+
159
+ export interface PinterestSectionArguments {
160
+ title?: string;
161
+ url?: string;
162
+ }
163
+
164
+ export interface TwitchSectionArguments {
165
+ title?: string;
166
+ url?: string;
167
+ }
168
+
169
+ export interface TiktokSectionArguments {
170
+ title?: string;
171
+ url?: string;
172
+ }
173
+
174
+ export interface SocialLink {
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;
179
+ platform?:
180
+ | 'facebook'
181
+ | 'x'
182
+ | 'instagram'
183
+ | 'youtube'
184
+ | 'linkedin'
185
+ | 'pinterest'
186
+ | 'twitch'
187
+ | 'tiktok';
188
+ url?: string;
189
+ }
190
+
191
+ export interface SocialLinksSectionArguments {
192
+ links?: SocialLink[];
193
+ icon_style?: 'none' | 'square' | 'circle';
194
+ _replace_items?: boolean;
195
+ /** 0-based indices of items to remove */
196
+ _remove_item_indices?: number[];
197
+ /** New order as array of current 0-based indices */
198
+ _reorder_items?: number[];
199
+ }
200
+
201
+ export interface MailingListSectionArguments {
202
+ title?: string;
203
+ button_text?: string;
204
+ }
205
+
206
+ export interface ContactFormFieldToggle {
207
+ /** Field ID matching FORM_FIELD_IDS (e.g., 'firstName', 'lastName', 'phoneNumber', 'message') */
208
+ field_id: string;
209
+ /** Whether the field is shown on the form */
210
+ enabled: boolean;
211
+ }
212
+
213
+ export interface ContactFormSectionArguments {
214
+ title?: string;
215
+ description?: string;
216
+ button_text?: string;
217
+ success_message?: string;
218
+ response_email?: string;
219
+ header_image_url?: string;
220
+ display_style?: 'preview' | 'collapsed';
221
+ layout_style?:
222
+ | 'center-card-aligned'
223
+ | 'centered'
224
+ | 'text-only'
225
+ | 'center-card-aligned-image'
226
+ | 'left-aligned-full-image'
227
+ | 'right-aligned-full-image';
228
+ title_style?: TextStyleArguments;
229
+ description_style?: TextStyleArguments;
230
+ button_text_style?: TextStyleArguments;
231
+ /** Toggle visibility of form fields */
232
+ fields?: ContactFormFieldToggle[];
233
+ }
234
+
235
+ export interface BannerSectionArguments {
236
+ title?: string;
237
+ description?: string;
238
+ button_text?: string;
239
+ button_url?: string;
240
+ background_image_url?: string;
241
+ display_style?:
242
+ | 'left-aligned'
243
+ | 'right-aligned'
244
+ | 'centered'
245
+ | 'big-image'
246
+ | 'left-aligned-big-image'
247
+ | 'right-aligned-full-image'
248
+ | 'left-aligned-full-image'
249
+ | 'center-card-aligned-image'
250
+ | 'left-card-aligned-image';
251
+ title_style?: TextStyleArguments;
252
+ description_style?: TextStyleArguments;
253
+ button_text_style?: TextStyleArguments;
254
+ }
255
+
256
+ export interface AboutSectionArguments {
257
+ title?: string;
258
+ paragraph?: string;
259
+ about_image_url?: string;
260
+ display_style?:
261
+ | 'left-aligned'
262
+ | 'right-aligned'
263
+ | 'centered'
264
+ | 'text-only'
265
+ | 'left-aligned-full-image'
266
+ | 'right-aligned-full-image';
267
+ title_style?: TextStyleArguments;
268
+ paragraph_style?: TextStyleArguments;
269
+ }
270
+
271
+ export interface ImagesSectionItem {
272
+ /** 0-based index of existing item to update in-place */
273
+ item_index?: number;
274
+ /** 0-based position to insert a new item at */
275
+ insert_at?: number;
276
+ image_url?: string;
277
+ heading?: string;
278
+ text?: string;
279
+ }
280
+
281
+ export interface ImagesSectionArguments {
282
+ title?: string;
283
+ description?: string;
284
+ items?: ImagesSectionItem[];
285
+ display_style?:
286
+ | 'left-aligned'
287
+ | 'right-aligned'
288
+ | 'centered'
289
+ | 'media-only'
290
+ | 'center-card-aligned-image'
291
+ | 'alternate-image';
292
+ _replace_items?: boolean;
293
+ /** 0-based indices of items to remove */
294
+ _remove_item_indices?: number[];
295
+ /** New order as array of current 0-based indices */
296
+ _reorder_items?: number[];
297
+ title_style?: TextStyleArguments;
298
+ description_style?: TextStyleArguments;
299
+ heading_style?: TextStyleArguments;
300
+ paragraph_style?: TextStyleArguments;
301
+ aspect_ratio?: string;
302
+ are_images_full_width?: boolean;
303
+ background_style?: BackgroundStyleArguments;
304
+ card_style?: CardStyleArguments;
305
+ }
306
+
307
+ export interface TestimonialItem {
308
+ /** 0-based index of existing item to update in-place */
309
+ item_index?: number;
310
+ /** 0-based position to insert a new item at */
311
+ insert_at?: number;
312
+ testimonial?: string;
313
+ name?: string;
314
+ position?: string;
315
+ avatar_image_url?: string;
316
+ }
317
+
318
+ export interface TestimonialSectionArguments {
319
+ title?: string;
320
+ items?: TestimonialItem[];
321
+ display_style?: 'centered' | 'big-image' | 'columns';
322
+ _replace_items?: boolean;
323
+ /** 0-based indices of items to remove */
324
+ _remove_item_indices?: number[];
325
+ /** New order as array of current 0-based indices */
326
+ _reorder_items?: number[];
327
+ title_style?: TextStyleArguments;
328
+ testimonial_style?: TextStyleArguments;
329
+ name_style?: TextStyleArguments;
330
+ position_style?: TextStyleArguments;
331
+ background_style?: BackgroundStyleArguments;
332
+ card_style?: CardStyleArguments;
333
+ }
334
+
335
+ export interface ShapesSectionItem {
336
+ /** 0-based index of existing item to update in-place */
337
+ item_index?: number;
338
+ /** 0-based position to insert a new item at */
339
+ insert_at?: number;
340
+ icon_image_url?: string;
341
+ shape_url?: string;
342
+ keep_color?: boolean;
343
+ heading?: string;
344
+ text?: string;
345
+ }
346
+
347
+ export interface ShapesSectionArguments {
348
+ title?: string;
349
+ description?: string;
350
+ items?: ShapesSectionItem[];
351
+ display_style?:
352
+ | 'left-aligned'
353
+ | 'right-aligned'
354
+ | 'centered'
355
+ | 'media-only'
356
+ | 'center-card-aligned-image'
357
+ | 'alternate-image';
358
+ _replace_items?: boolean;
359
+ /** 0-based indices of items to remove */
360
+ _remove_item_indices?: number[];
361
+ /** New order as array of current 0-based indices */
362
+ _reorder_items?: number[];
363
+ title_style?: TextStyleArguments;
364
+ description_style?: TextStyleArguments;
365
+ heading_style?: TextStyleArguments;
366
+ paragraph_style?: TextStyleArguments;
367
+ size?: string;
368
+ background_style?: BackgroundStyleArguments;
369
+ card_style?: CardStyleArguments;
370
+ }
371
+
372
+ export interface DividerSectionArguments {
373
+ divider_style?: 'none' | 'thin' | 'thick';
374
+ }
375
+
376
+ // ---------------------------------------------------------------------------
377
+ // Discriminated union of all per-section argument types (content fields only)
378
+ // ---------------------------------------------------------------------------
379
+
380
+ export type SectionToolArguments =
381
+ | ProfileSectionArguments
382
+ | TextSectionArguments
383
+ | ImageSectionArguments
384
+ | ImageGallerySectionArguments
385
+ | GeneralLinkSectionArguments
386
+ | WebsiteSectionArguments
387
+ | EmailSectionArguments
388
+ | PhoneSectionArguments
389
+ | FacebookSectionArguments
390
+ | XSectionArguments
391
+ | InstagramSectionArguments
392
+ | YoutubeSectionArguments
393
+ | LinkedinSectionArguments
394
+ | PinterestSectionArguments
395
+ | TwitchSectionArguments
396
+ | TiktokSectionArguments
397
+ | SocialLinksSectionArguments
398
+ | MailingListSectionArguments
399
+ | ContactFormSectionArguments
400
+ | BannerSectionArguments
401
+ | AboutSectionArguments
402
+ | ImagesSectionArguments
403
+ | TestimonialSectionArguments
404
+ | ShapesSectionArguments
405
+ | DividerSectionArguments;
406
+
407
+ // ---------------------------------------------------------------------------
408
+ // Outer tool call shape — common routing fields + nested section arguments
409
+ // ---------------------------------------------------------------------------
410
+
411
+ export interface SectionToolCallShape {
412
+ mode: 'create' | 'update';
413
+ type: string;
414
+ content_id?: string;
415
+ page_id?: string;
416
+ arguments: SectionToolArguments;
417
+ }
@@ -9,6 +9,7 @@ import {
9
9
  } from '@brand-page-maker/stores';
10
10
  import { SIDE_BAR_CONTENT_ID } from '../../content-settings/constants';
11
11
  import { useUiContentSettingsStore } from '../../content-settings/store';
12
+ import { SIDE_BAR_TAB_NAMES } from '@src/brand-page-maker/constants/sidebar-constant';
12
13
 
13
14
  export default defineComponent({
14
15
  props: {
@@ -47,6 +48,11 @@ export default defineComponent({
47
48
  'side-bar-content': ref(null),
48
49
  isPrepurchase: computed(() => brandPageContainerStore.isPrePurchase),
49
50
  isBrandPageLoaded: computed(() => brandPageMakerStore.isBrandPageLoaded),
51
+ isAiWebsiteAssistantVisible: computed(
52
+ () =>
53
+ brandPageContainerStore.abTests.bp_5245_ai_website_assistant
54
+ ?.isVariation,
55
+ ),
50
56
  };
51
57
  },
52
58
  data: () => ({ SIDE_BAR_CONTENT_ID, sideBarContentRef: 'side-bar-content' }),
@@ -101,6 +107,10 @@ export default defineComponent({
101
107
  return false;
102
108
  }
103
109
 
110
+ if (tab.name === SIDE_BAR_TAB_NAMES.AI_WEBSITE_BUILDER) {
111
+ return this.isAiWebsiteAssistantVisible;
112
+ }
113
+
104
114
  return tab.isVisible;
105
115
  },
106
116
  contentScrollToTop() {