@designcrowd/library.brand-page 6.2.3 → 6.2.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 (112) hide show
  1. package/lib/src/{CreatedOnBrandCrowd-de-de-Cn0M-eZ1.js → CreatedOnBrandCrowd-de-de-ystrO2LW.js} +1 -1
  2. package/lib/src/{CreatedOnBrandCrowd-en-us-DRLMSDZr.js → CreatedOnBrandCrowd-en-us-BU7hNzTZ.js} +1 -1
  3. package/lib/src/{CreatedOnBrandCrowd-es-es-BglTu73U.js → CreatedOnBrandCrowd-es-es-CbuxneQ3.js} +1 -1
  4. package/lib/src/{CreatedOnBrandCrowd-fr-fr-Bj6YZ_el.js → CreatedOnBrandCrowd-fr-ca-BuNUGOFr.js} +1 -1
  5. package/lib/src/{CreatedOnBrandCrowd-fr-ca-Bj6YZ_el.js → CreatedOnBrandCrowd-fr-fr-BuNUGOFr.js} +1 -1
  6. package/lib/src/{CreatedOnBrandCrowd-pt-pt-DEoOmQ1F.js → CreatedOnBrandCrowd-pt-br-BehL88mc.js} +1 -1
  7. package/lib/src/{CreatedOnBrandCrowd-pt-br-DEoOmQ1F.js → CreatedOnBrandCrowd-pt-pt-BehL88mc.js} +1 -1
  8. package/lib/src/{CreatedOnDcom-de-de-BZ7gTt4Z.js → CreatedOnDcom-de-de-CMxjFZt9.js} +1 -1
  9. package/lib/src/{CreatedOnDcom-en-us-CD6Km5sH.js → CreatedOnDcom-en-us-2Cf6WBvx.js} +1 -1
  10. package/lib/src/{CreatedOnDcom-es-es-CNpZHvEl.js → CreatedOnDcom-es-es-CATNnbTq.js} +1 -1
  11. package/lib/src/{CreatedOnDcom-fr-ca-URS-ydJ1.js → CreatedOnDcom-fr-ca-DQtMfB-a.js} +1 -1
  12. package/lib/src/{CreatedOnDcom-fr-fr-D2AVeA3H.js → CreatedOnDcom-fr-fr-C1_FWOQf.js} +1 -1
  13. package/lib/src/{CreatedOnDcom-pt-br-C32frnFs.js → CreatedOnDcom-pt-br-C0QOCW0L.js} +1 -1
  14. package/lib/src/{CreatedOnDcom-pt-pt-TDYGjRXS.js → CreatedOnDcom-pt-pt-lHD-p6o4.js} +1 -1
  15. package/lib/src/brand-page/models/brand-page-context.model.d.ts +5 -0
  16. package/lib/src/brand-page/models/brand-page-context.model.js +8 -1
  17. package/lib/src/brand-page-maker/components/brand-page-maker/BrandPageMaker.mixin.d.ts +21 -0
  18. package/lib/src/brand-page-maker/components/brandpage-maker-page/BrandPageMakerPage.mixin.d.ts +21 -0
  19. package/lib/src/brand-page-maker/components/preview/Preview.mixin.d.ts +7 -0
  20. package/lib/src/brand-page-maker/components/quick-link-bar/QuickLinkBar.mixin.d.ts +21 -0
  21. package/lib/src/brand-page-maker/components/seo-settings/SeoPageSettings.mixin.d.ts +22 -1
  22. package/lib/src/brand-page-maker/components/seo-settings/UrlSettings.mixin.d.ts +21 -0
  23. package/lib/src/brand-page-maker/components/seo-settings/UseExistingDomainModal.mixin.d.ts +21 -0
  24. package/lib/src/brand-page-maker/components/template-preview/TemplatePreview.mixin.d.ts +21 -0
  25. package/lib/src/brand-page-maker/components/upgrade-to-premium-button/UpgradeToPremiumButton.mixin.d.ts +21 -0
  26. package/lib/src/brand-page-maker/composables/ai-chat/ai-builder-experiment.d.ts +10 -0
  27. package/lib/src/brand-page-maker/composables/ai-chat/ai-builder-experiment.js +11 -0
  28. package/lib/src/brand-page-maker/composables/ai-chat/useAiWebsiteBuilderChat.js +14 -4
  29. package/lib/src/brand-page-maker/stores/ai-thread/ai-website-builder-thread-store.d.ts +9 -2
  30. package/lib/src/brand-page-maker/stores/ai-thread/ai-website-builder-thread-store.js +20 -0
  31. package/lib/src/brand-page-maker/stores/brandpage-container/brand-page-container-store.d.ts +21 -0
  32. package/lib/src/clients/ai-assistant-client.d.ts +1 -0
  33. package/lib/src/clients/ai-assistant-client.js +1 -0
  34. package/lib/src/index.mjs +224 -223
  35. package/lib/src/{lib-Dm9AuOJL.js → lib-CqHUUPUW.js} +21920 -21691
  36. package/lib/src/metadata-builder/builders/global-font-propagation.d.ts +41 -0
  37. package/lib/src/metadata-builder/builders/global-font-propagation.js +146 -0
  38. package/lib/src/metadata-builder/builders/global-styles-builder.js +29 -1
  39. package/lib/src/metadata-builder/builders/header-builder.js +8 -0
  40. package/lib/src/metadata-builder/builders/reorder-pages-builder.d.ts +13 -0
  41. package/lib/src/metadata-builder/builders/reorder-pages-builder.js +49 -0
  42. package/lib/src/metadata-builder/builders/section-builders/index.d.ts +1 -0
  43. package/lib/src/metadata-builder/builders/section-builders/index.js +1 -0
  44. package/lib/src/metadata-builder/builders/section-builders/support-me-builder.d.ts +8 -0
  45. package/lib/src/metadata-builder/builders/section-builders/support-me-builder.js +25 -0
  46. package/lib/src/metadata-builder/builders/section-builders/text-section-builder.js +5 -2
  47. package/lib/src/metadata-builder/builders/section-field-maps.js +15 -0
  48. package/lib/src/metadata-builder/builders/section-field-utils.d.ts +6 -1
  49. package/lib/src/metadata-builder/builders/section-field-utils.js +48 -12
  50. package/lib/src/metadata-builder/builders/section-rules/support-me.rules.d.ts +2 -0
  51. package/lib/src/metadata-builder/builders/section-rules/support-me.rules.js +17 -0
  52. package/lib/src/metadata-builder/helpers/rte.helpers.d.ts +9 -0
  53. package/lib/src/metadata-builder/helpers/rte.helpers.js +60 -1
  54. package/lib/src/metadata-builder/metadata-executor.js +3 -1
  55. package/lib/src/metadata-builder/models.d.ts +2 -0
  56. package/lib/src/metadata-builder/models.js +2 -0
  57. package/lib/src/metadata-builder/parsers/ai-toolcall-parser.d.ts +1 -0
  58. package/lib/src/metadata-builder/parsers/ai-toolcall-parser.js +4 -0
  59. package/lib/src/metadata-builder/parsers/section-tool-arguments.d.ts +14 -2
  60. package/lib/src/shared/content-settings/components/GenericTextInput.mixin.d.ts +1 -1
  61. package/lib/src/shared/content-settings/components/email-field/EmailField.mixin.d.ts +1 -1
  62. package/lib/src/shared/content-settings/components/payment-config-field/PaymentConfigField.mixin.d.ts +21 -0
  63. package/lib/src/shared/content-settings/components/tel-field/TelField.mixin.d.ts +1 -1
  64. package/lib/src/shared/content-settings/components/text-field/TextField.mixin.d.ts +1 -1
  65. package/lib/src/shared/content-settings/components/textarea-field/TextareaField.mixin.d.ts +1 -1
  66. package/lib/src/shared/content-settings/components/url-field/UrlField.mixin.d.ts +1 -1
  67. package/lib/src/shared/content-settings/components/youtube-video-field/YoutubeVideoField.mixin.d.ts +1 -1
  68. package/lib/src/shared/logo-settings/components/LogoSettings.mixin.d.ts +21 -0
  69. package/lib/src/shared/page-settings/components/delete-page-modal/DeletePageModal.mixin.d.ts +1 -1
  70. package/lib/src/shared/page-settings/components/page-settings/PageSettings.mixin.d.ts +21 -0
  71. package/lib/src/shared/page-settings/components/page-settings-section-styles/PageSettingsSectionStyles.mixin.d.ts +21 -0
  72. package/lib/src/shared/publish-brand-page-with-state/PublishBrandPageModalWithState.mixin.d.ts +28 -0
  73. package/lib/src/shared/side-bar/components/SideBar.mixin.d.ts +21 -0
  74. package/lib/src/shared/style-settings/button-style-preset.d.ts +12 -0
  75. package/lib/src/shared/style-settings/button-style-preset.js +39 -0
  76. package/lib/src/shared/style-settings/components/StyleSettings.mixin.d.ts +21 -0
  77. package/lib/src/shared/style-settings/store/style-settings-store.js +6 -32
  78. package/lib/src/utils/minify-brand-page-metadata.d.ts +9 -0
  79. package/lib/src/utils/minify-brand-page-metadata.js +23 -1
  80. package/package.json +1 -12
  81. package/src/brand-page/models/brand-page-context.model.ts +14 -1
  82. package/src/brand-page-maker/components/ai-website-builder/AiWebsiteBuilder.vue +1 -1
  83. package/src/brand-page-maker/composables/ai-chat/ai-builder-experiment.test.ts +82 -0
  84. package/src/brand-page-maker/composables/ai-chat/ai-builder-experiment.ts +19 -0
  85. package/src/brand-page-maker/composables/ai-chat/useAiWebsiteBuilderChat.ts +18 -4
  86. package/src/brand-page-maker/stores/ai-thread/ai-website-builder-thread-store.ts +30 -0
  87. package/src/clients/ai-assistant-client.ts +1 -0
  88. package/src/metadata-builder/builders/global-font-propagation.test.ts +401 -0
  89. package/src/metadata-builder/builders/global-font-propagation.ts +238 -0
  90. package/src/metadata-builder/builders/global-styles-builder.test.ts +107 -0
  91. package/src/metadata-builder/builders/global-styles-builder.ts +38 -1
  92. package/src/metadata-builder/builders/header-builder.test.ts +45 -0
  93. package/src/metadata-builder/builders/header-builder.ts +20 -0
  94. package/src/metadata-builder/builders/reorder-pages-builder.ts +80 -0
  95. package/src/metadata-builder/builders/section-builders/index.ts +1 -0
  96. package/src/metadata-builder/builders/section-builders/support-me-builder.test.ts +177 -0
  97. package/src/metadata-builder/builders/section-builders/support-me-builder.ts +43 -0
  98. package/src/metadata-builder/builders/section-builders/text-section-builder.ts +5 -2
  99. package/src/metadata-builder/builders/section-field-maps.ts +18 -0
  100. package/src/metadata-builder/builders/section-field-utils.test.ts +83 -0
  101. package/src/metadata-builder/builders/section-field-utils.ts +69 -18
  102. package/src/metadata-builder/builders/section-rules/support-me.rules.ts +39 -0
  103. package/src/metadata-builder/helpers/rte.helpers.ts +82 -1
  104. package/src/metadata-builder/metadata-executor.ts +3 -0
  105. package/src/metadata-builder/models.ts +2 -0
  106. package/src/metadata-builder/parsers/ai-toolcall-parser.ts +4 -0
  107. package/src/metadata-builder/parsers/section-tool-arguments.ts +14 -1
  108. package/src/shared/style-settings/button-style-preset.test.ts +67 -0
  109. package/src/shared/style-settings/button-style-preset.ts +56 -0
  110. package/src/shared/style-settings/store/style-settings-store.ts +9 -38
  111. package/src/utils/minify-brand-page-metadata.test.ts +166 -1
  112. package/src/utils/minify-brand-page-metadata.ts +31 -1
@@ -27,6 +27,7 @@ export declare const BUILDER_TYPES: {
27
27
  readonly CREATE_TWITCH: "create-twitch";
28
28
  readonly CREATE_TIKTOK: "create-tiktok";
29
29
  readonly CREATE_BOOKING_SECTION: "create-booking-section";
30
+ readonly CREATE_SUPPORT_ME: "create-support-me";
30
31
  readonly UPDATE_BANNER_SECTION: "update-banner-section";
31
32
  readonly UPDATE_ABOUT_SECTION: "update-about-section";
32
33
  readonly UPDATE_CONTACT_FORM: "update-contact-form";
@@ -52,6 +53,7 @@ export declare const BUILDER_TYPES: {
52
53
  readonly UPDATE_TWITCH: "update-twitch";
53
54
  readonly UPDATE_TIKTOK: "update-tiktok";
54
55
  readonly UPDATE_BOOKING_SECTION: "update-booking-section";
56
+ readonly UPDATE_SUPPORT_ME: "update-support-me";
55
57
  readonly DELETE_SECTION: "delete-section";
56
58
  readonly MOVE_SECTION: "move-section";
57
59
  readonly ADD_PAGE: "add-page";
@@ -26,6 +26,7 @@ export const BUILDER_TYPES = {
26
26
  CREATE_TWITCH: 'create-twitch',
27
27
  CREATE_TIKTOK: 'create-tiktok',
28
28
  CREATE_BOOKING_SECTION: 'create-booking-section',
29
+ CREATE_SUPPORT_ME: 'create-support-me',
29
30
  // Per-section builder types (update)
30
31
  UPDATE_BANNER_SECTION: 'update-banner-section',
31
32
  UPDATE_ABOUT_SECTION: 'update-about-section',
@@ -52,6 +53,7 @@ export const BUILDER_TYPES = {
52
53
  UPDATE_TWITCH: 'update-twitch',
53
54
  UPDATE_TIKTOK: 'update-tiktok',
54
55
  UPDATE_BOOKING_SECTION: 'update-booking-section',
56
+ UPDATE_SUPPORT_ME: 'update-support-me',
55
57
  // Section-level operations
56
58
  DELETE_SECTION: 'delete-section',
57
59
  MOVE_SECTION: 'move-section',
@@ -28,6 +28,7 @@ export declare const AI_ASSISTANT_TOOL_NAMES: {
28
28
  readonly BUILD_TESTIMONIAL_SECTION: "build_testimonial-section_section";
29
29
  readonly BUILD_DIVIDER_SECTION: "build_divider-section_section";
30
30
  readonly BUILD_BOOKING_SECTION: "build_booking-section_section";
31
+ readonly BUILD_SUPPORT_ME_SECTION: "build_support-me_section";
31
32
  readonly DELETE_SECTION: "delete_section";
32
33
  readonly MOVE_SECTION: "move_section";
33
34
  readonly ADD_PAGE: "add_page";
@@ -30,6 +30,7 @@ export const AI_ASSISTANT_TOOL_NAMES = {
30
30
  BUILD_TESTIMONIAL_SECTION: 'build_testimonial-section_section',
31
31
  BUILD_DIVIDER_SECTION: 'build_divider-section_section',
32
32
  BUILD_BOOKING_SECTION: 'build_booking-section_section',
33
+ BUILD_SUPPORT_ME_SECTION: 'build_support-me_section',
33
34
  // Section-level operation tools
34
35
  DELETE_SECTION: 'delete_section',
35
36
  MOVE_SECTION: 'move_section',
@@ -109,6 +110,9 @@ export const SECTION_TOOL_MAP = {
109
110
  [AI_ASSISTANT_TOOL_NAMES.BUILD_BOOKING_SECTION]: {
110
111
  sectionType: 'booking-section',
111
112
  },
113
+ [AI_ASSISTANT_TOOL_NAMES.BUILD_SUPPORT_ME_SECTION]: {
114
+ sectionType: 'support-me',
115
+ },
112
116
  };
113
117
  export const parseToolCalls = (toolCalls) => {
114
118
  if (!toolCalls || toolCalls.length === 0) {
@@ -6,7 +6,7 @@
6
6
  */
7
7
  import type { ContentType } from '../../brand-page/models';
8
8
  /** Content types not supported by the AI builder. */
9
- type UnsupportedContentType = 'logo' | 'video' | 'map' | 'request-payment' | 'support-me' | 'shop-section';
9
+ type UnsupportedContentType = 'logo' | 'video' | 'map' | 'request-payment' | 'shop-section';
10
10
  export type SectionType = Exclude<ContentType, UnsupportedContentType>;
11
11
  export interface TiptapMark {
12
12
  type: 'bold' | 'italic' | 'underline' | 'strike' | 'link' | 'textStyle' | 'highlight';
@@ -407,13 +407,25 @@ export interface BookingSectionArguments {
407
407
  padding_top?: number;
408
408
  padding_bottom?: number;
409
409
  }
410
+ export interface SupportMeArguments {
411
+ title?: string;
412
+ description?: string;
413
+ success_message?: string;
414
+ /** Matches DISPLAY_STYLE_PREVIEW / DISPLAY_STYLE_COLLAPSED. */
415
+ display_style?: 'preview' | 'collapsed';
416
+ title_style?: TextStyleArguments;
417
+ heading_style?: TextStyleArguments;
418
+ description_style?: TextStyleArguments;
419
+ item_text_style?: TextStyleArguments;
420
+ button_text_style?: ButtonTextStyleArguments;
421
+ }
410
422
  export interface DividerSectionArguments {
411
423
  divider_style?: 'none' | 'thin' | 'thick';
412
424
  divider_color?: string | null;
413
425
  background_color?: string | null;
414
426
  padding?: number;
415
427
  }
416
- export type SectionToolArguments = ProfileSectionArguments | TextSectionArguments | ImageSectionArguments | ImageGallerySectionArguments | GeneralLinkSectionArguments | WebsiteSectionArguments | EmailSectionArguments | PhoneSectionArguments | FacebookSectionArguments | XSectionArguments | InstagramSectionArguments | YoutubeSectionArguments | LinkedinSectionArguments | PinterestSectionArguments | TwitchSectionArguments | TiktokSectionArguments | SocialLinksSectionArguments | MailingListSectionArguments | ContactFormSectionArguments | BannerSectionArguments | AboutSectionArguments | ImagesSectionArguments | TestimonialSectionArguments | ShapesSectionArguments | BookingSectionArguments | DividerSectionArguments;
428
+ export type SectionToolArguments = ProfileSectionArguments | TextSectionArguments | ImageSectionArguments | ImageGallerySectionArguments | GeneralLinkSectionArguments | WebsiteSectionArguments | EmailSectionArguments | PhoneSectionArguments | FacebookSectionArguments | XSectionArguments | InstagramSectionArguments | YoutubeSectionArguments | LinkedinSectionArguments | PinterestSectionArguments | TwitchSectionArguments | TiktokSectionArguments | SocialLinksSectionArguments | MailingListSectionArguments | ContactFormSectionArguments | BannerSectionArguments | AboutSectionArguments | ImagesSectionArguments | TestimonialSectionArguments | ShapesSectionArguments | BookingSectionArguments | SupportMeArguments | DividerSectionArguments;
417
429
  export interface SectionToolCallShape {
418
430
  mode: 'create' | 'update';
419
431
  type: string;
@@ -185,8 +185,8 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
185
185
  }>, {
186
186
  index: number;
187
187
  settings: ContentItemFieldSettings;
188
- value: string | false | undefined;
189
188
  styles: Record<string, any>;
189
+ value: string | false | undefined;
190
190
  role: string;
191
191
  placeholder: string;
192
192
  minLength: number;
@@ -182,8 +182,8 @@ declare const _default: import("vue").DefineComponent<{}, {}, {}, {}, {}, import
182
182
  }>, {
183
183
  index: number;
184
184
  settings: import("../../models").ContentItemFieldSettings;
185
- value: string | false | undefined;
186
185
  styles: Record<string, any>;
186
+ value: string | false | undefined;
187
187
  role: string;
188
188
  placeholder: string;
189
189
  minLength: number;
@@ -91,6 +91,13 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
91
91
  isVariation: boolean;
92
92
  isExcluded: boolean;
93
93
  } | undefined;
94
+ bp_6136_v2_ai_builder?: {
95
+ key: string;
96
+ value: string;
97
+ isControl: boolean;
98
+ isVariation: boolean;
99
+ isExcluded: boolean;
100
+ } | undefined;
94
101
  };
95
102
  isSubsequentPublish: boolean;
96
103
  isContextualUpgradeModalVisible: boolean;
@@ -166,6 +173,13 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
166
173
  isVariation: boolean;
167
174
  isExcluded: boolean;
168
175
  } | undefined;
176
+ bp_6136_v2_ai_builder?: {
177
+ key: string;
178
+ value: string;
179
+ isControl: boolean;
180
+ isVariation: boolean;
181
+ isExcluded: boolean;
182
+ } | undefined;
169
183
  };
170
184
  isSubsequentPublish: boolean;
171
185
  isContextualUpgradeModalVisible: boolean;
@@ -241,6 +255,13 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
241
255
  isVariation: boolean;
242
256
  isExcluded: boolean;
243
257
  } | undefined;
258
+ bp_6136_v2_ai_builder?: {
259
+ key: string;
260
+ value: string;
261
+ isControl: boolean;
262
+ isVariation: boolean;
263
+ isExcluded: boolean;
264
+ } | undefined;
244
265
  };
245
266
  isSubsequentPublish: boolean;
246
267
  isContextualUpgradeModalVisible: boolean;
@@ -182,8 +182,8 @@ declare const _default: import("vue").DefineComponent<{}, {}, {}, {}, {}, import
182
182
  }>, {
183
183
  index: number;
184
184
  settings: import("../../models").ContentItemFieldSettings;
185
- value: string | false | undefined;
186
185
  styles: Record<string, any>;
186
+ value: string | false | undefined;
187
187
  role: string;
188
188
  placeholder: string;
189
189
  minLength: number;
@@ -187,8 +187,8 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
187
187
  }>, {
188
188
  index: number;
189
189
  settings: import("../../models").ContentItemFieldSettings;
190
- value: string | false | undefined;
191
190
  styles: Record<string, any>;
191
+ value: string | false | undefined;
192
192
  role: string;
193
193
  placeholder: string;
194
194
  minLength: number;
@@ -196,8 +196,8 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
196
196
  }>, {
197
197
  index: number;
198
198
  settings: import("../../models").ContentItemFieldSettings;
199
- value: string | false | undefined;
200
199
  styles: Record<string, any>;
200
+ value: string | false | undefined;
201
201
  role: string;
202
202
  placeholder: string;
203
203
  minLength: number;
@@ -189,8 +189,8 @@ declare const _default: import("vue").DefineComponent<{}, {}, Record<string, any
189
189
  }>, {
190
190
  index: number;
191
191
  settings: import("../../models").ContentItemFieldSettings;
192
- value: string | false | undefined;
193
192
  styles: Record<string, any>;
193
+ value: string | false | undefined;
194
194
  role: string;
195
195
  placeholder: string;
196
196
  minLength: number;
@@ -185,8 +185,8 @@ declare const _default: import("vue").DefineComponent<{}, {}, Record<string, any
185
185
  }>, {
186
186
  index: number;
187
187
  settings: import("../../models").ContentItemFieldSettings;
188
- value: string | false | undefined;
189
188
  styles: Record<string, any>;
189
+ value: string | false | undefined;
190
190
  role: string;
191
191
  placeholder: string;
192
192
  minLength: number;
@@ -387,6 +387,13 @@ declare const _default: import("vue").DefineComponent<{}, {
387
387
  isVariation: boolean;
388
388
  isExcluded: boolean;
389
389
  } | undefined;
390
+ bp_6136_v2_ai_builder?: {
391
+ key: string;
392
+ value: string;
393
+ isControl: boolean;
394
+ isVariation: boolean;
395
+ isExcluded: boolean;
396
+ } | undefined;
390
397
  };
391
398
  isSubsequentPublish: boolean;
392
399
  isContextualUpgradeModalVisible: boolean;
@@ -462,6 +469,13 @@ declare const _default: import("vue").DefineComponent<{}, {
462
469
  isVariation: boolean;
463
470
  isExcluded: boolean;
464
471
  } | undefined;
472
+ bp_6136_v2_ai_builder?: {
473
+ key: string;
474
+ value: string;
475
+ isControl: boolean;
476
+ isVariation: boolean;
477
+ isExcluded: boolean;
478
+ } | undefined;
465
479
  };
466
480
  isSubsequentPublish: boolean;
467
481
  isContextualUpgradeModalVisible: boolean;
@@ -537,6 +551,13 @@ declare const _default: import("vue").DefineComponent<{}, {
537
551
  isVariation: boolean;
538
552
  isExcluded: boolean;
539
553
  } | undefined;
554
+ bp_6136_v2_ai_builder?: {
555
+ key: string;
556
+ value: string;
557
+ isControl: boolean;
558
+ isVariation: boolean;
559
+ isExcluded: boolean;
560
+ } | undefined;
540
561
  };
541
562
  isSubsequentPublish: boolean;
542
563
  isContextualUpgradeModalVisible: boolean;
@@ -35,8 +35,8 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
35
35
  onCancel?: ((...args: any[]) => any) | undefined;
36
36
  onConfirm?: ((...args: any[]) => any) | undefined;
37
37
  }>, {
38
- isVisible: boolean;
39
38
  pageId: string;
40
39
  pageTitle: string;
40
+ isVisible: boolean;
41
41
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
42
42
  export default _default;
@@ -4823,6 +4823,13 @@ declare const _default: import("vue").DefineComponent<{}, {
4823
4823
  isVariation: boolean;
4824
4824
  isExcluded: boolean;
4825
4825
  } | undefined;
4826
+ bp_6136_v2_ai_builder?: {
4827
+ key: string;
4828
+ value: string;
4829
+ isControl: boolean;
4830
+ isVariation: boolean;
4831
+ isExcluded: boolean;
4832
+ } | undefined;
4826
4833
  };
4827
4834
  isSubsequentPublish: boolean;
4828
4835
  isContextualUpgradeModalVisible: boolean;
@@ -4898,6 +4905,13 @@ declare const _default: import("vue").DefineComponent<{}, {
4898
4905
  isVariation: boolean;
4899
4906
  isExcluded: boolean;
4900
4907
  } | undefined;
4908
+ bp_6136_v2_ai_builder?: {
4909
+ key: string;
4910
+ value: string;
4911
+ isControl: boolean;
4912
+ isVariation: boolean;
4913
+ isExcluded: boolean;
4914
+ } | undefined;
4901
4915
  };
4902
4916
  isSubsequentPublish: boolean;
4903
4917
  isContextualUpgradeModalVisible: boolean;
@@ -4973,6 +4987,13 @@ declare const _default: import("vue").DefineComponent<{}, {
4973
4987
  isVariation: boolean;
4974
4988
  isExcluded: boolean;
4975
4989
  } | undefined;
4990
+ bp_6136_v2_ai_builder?: {
4991
+ key: string;
4992
+ value: string;
4993
+ isControl: boolean;
4994
+ isVariation: boolean;
4995
+ isExcluded: boolean;
4996
+ } | undefined;
4976
4997
  };
4977
4998
  isSubsequentPublish: boolean;
4978
4999
  isContextualUpgradeModalVisible: boolean;
@@ -4174,6 +4174,13 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
4174
4174
  isVariation: boolean;
4175
4175
  isExcluded: boolean;
4176
4176
  } | undefined;
4177
+ bp_6136_v2_ai_builder?: {
4178
+ key: string;
4179
+ value: string;
4180
+ isControl: boolean;
4181
+ isVariation: boolean;
4182
+ isExcluded: boolean;
4183
+ } | undefined;
4177
4184
  };
4178
4185
  isSubsequentPublish: boolean;
4179
4186
  isContextualUpgradeModalVisible: boolean;
@@ -4249,6 +4256,13 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
4249
4256
  isVariation: boolean;
4250
4257
  isExcluded: boolean;
4251
4258
  } | undefined;
4259
+ bp_6136_v2_ai_builder?: {
4260
+ key: string;
4261
+ value: string;
4262
+ isControl: boolean;
4263
+ isVariation: boolean;
4264
+ isExcluded: boolean;
4265
+ } | undefined;
4252
4266
  };
4253
4267
  isSubsequentPublish: boolean;
4254
4268
  isContextualUpgradeModalVisible: boolean;
@@ -4324,6 +4338,13 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
4324
4338
  isVariation: boolean;
4325
4339
  isExcluded: boolean;
4326
4340
  } | undefined;
4341
+ bp_6136_v2_ai_builder?: {
4342
+ key: string;
4343
+ value: string;
4344
+ isControl: boolean;
4345
+ isVariation: boolean;
4346
+ isExcluded: boolean;
4347
+ } | undefined;
4327
4348
  };
4328
4349
  isSubsequentPublish: boolean;
4329
4350
  isContextualUpgradeModalVisible: boolean;
@@ -70,6 +70,13 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
70
70
  isVariation: boolean;
71
71
  isExcluded: boolean;
72
72
  } | undefined;
73
+ bp_6136_v2_ai_builder?: {
74
+ key: string;
75
+ value: string;
76
+ isControl: boolean;
77
+ isVariation: boolean;
78
+ isExcluded: boolean;
79
+ } | undefined;
73
80
  }>;
74
81
  brandPageType: import("vue").ComputedRef<"default" | "brandSite" | "brandContact">;
75
82
  isSubsequentPublish: import("vue").ComputedRef<boolean>;
@@ -287,6 +294,13 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
287
294
  isVariation: boolean;
288
295
  isExcluded: boolean;
289
296
  } | undefined;
297
+ bp_6136_v2_ai_builder?: {
298
+ key: string;
299
+ value: string;
300
+ isControl: boolean;
301
+ isVariation: boolean;
302
+ isExcluded: boolean;
303
+ } | undefined;
290
304
  };
291
305
  isSubsequentPublish: boolean;
292
306
  isContextualUpgradeModalVisible: boolean;
@@ -362,6 +376,13 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
362
376
  isVariation: boolean;
363
377
  isExcluded: boolean;
364
378
  } | undefined;
379
+ bp_6136_v2_ai_builder?: {
380
+ key: string;
381
+ value: string;
382
+ isControl: boolean;
383
+ isVariation: boolean;
384
+ isExcluded: boolean;
385
+ } | undefined;
365
386
  };
366
387
  isSubsequentPublish: boolean;
367
388
  isContextualUpgradeModalVisible: boolean;
@@ -437,6 +458,13 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
437
458
  isVariation: boolean;
438
459
  isExcluded: boolean;
439
460
  } | undefined;
461
+ bp_6136_v2_ai_builder?: {
462
+ key: string;
463
+ value: string;
464
+ isControl: boolean;
465
+ isVariation: boolean;
466
+ isExcluded: boolean;
467
+ } | undefined;
440
468
  };
441
469
  isSubsequentPublish: boolean;
442
470
  isContextualUpgradeModalVisible: boolean;
@@ -84,6 +84,13 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
84
84
  isVariation: boolean;
85
85
  isExcluded: boolean;
86
86
  } | undefined;
87
+ bp_6136_v2_ai_builder?: {
88
+ key: string;
89
+ value: string;
90
+ isControl: boolean;
91
+ isVariation: boolean;
92
+ isExcluded: boolean;
93
+ } | undefined;
87
94
  };
88
95
  isSubsequentPublish: boolean;
89
96
  isContextualUpgradeModalVisible: boolean;
@@ -159,6 +166,13 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
159
166
  isVariation: boolean;
160
167
  isExcluded: boolean;
161
168
  } | undefined;
169
+ bp_6136_v2_ai_builder?: {
170
+ key: string;
171
+ value: string;
172
+ isControl: boolean;
173
+ isVariation: boolean;
174
+ isExcluded: boolean;
175
+ } | undefined;
162
176
  };
163
177
  isSubsequentPublish: boolean;
164
178
  isContextualUpgradeModalVisible: boolean;
@@ -234,6 +248,13 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
234
248
  isVariation: boolean;
235
249
  isExcluded: boolean;
236
250
  } | undefined;
251
+ bp_6136_v2_ai_builder?: {
252
+ key: string;
253
+ value: string;
254
+ isControl: boolean;
255
+ isVariation: boolean;
256
+ isExcluded: boolean;
257
+ } | undefined;
237
258
  };
238
259
  isSubsequentPublish: boolean;
239
260
  isContextualUpgradeModalVisible: boolean;
@@ -0,0 +1,12 @@
1
+ import { type ButtonStyleConfig } from '../../brand-page-maker/models/button-styles-config';
2
+ /**
3
+ * The button CSS a preset contributes when it is selected: its shape (border radius,
4
+ * style, width) and its shadow rule. One rule shared by the editor's picker and the AI
5
+ * `update_global_styles` path — the site renders buttons from `buttonStyles.style`, so
6
+ * storing the preset id alone changes nothing on the page (BP-6082).
7
+ *
8
+ * Shadow: a shadow preset keeps the current shadow colour when one is set (default
9
+ * colour otherwise); a preset without a shadow clears it. `undefined` for an id that is
10
+ * not in `configs`.
11
+ */
12
+ export declare const buttonStylePresetCss: (presetId: string, currentStyle: BrandPageCssStyle, configs?: readonly ButtonStyleConfig[]) => BrandPageCssStyle | undefined;
@@ -0,0 +1,39 @@
1
+ import { availableButtonStyleConfigs, } from '../../brand-page-maker/models/button-styles-config';
2
+ import { ButtonBoxShadowSize, ButtonSoftBoxShadowSize, } from '../../brand-page/constants/misc.constants';
3
+ import { DEFAULT_BUTTON_SHADOW_COLOR } from '../../constants/ui';
4
+ import { CssShadowRE } from '../../utils/helpers';
5
+ /**
6
+ * The button CSS a preset contributes when it is selected: its shape (border radius,
7
+ * style, width) and its shadow rule. One rule shared by the editor's picker and the AI
8
+ * `update_global_styles` path — the site renders buttons from `buttonStyles.style`, so
9
+ * storing the preset id alone changes nothing on the page (BP-6082).
10
+ *
11
+ * Shadow: a shadow preset keeps the current shadow colour when one is set (default
12
+ * colour otherwise); a preset without a shadow clears it. `undefined` for an id that is
13
+ * not in `configs`.
14
+ */
15
+ export const buttonStylePresetCss = (presetId, currentStyle, configs = availableButtonStyleConfigs) => {
16
+ const config = configs.find((c) => c.id === presetId);
17
+ if (!config) {
18
+ return undefined;
19
+ }
20
+ const shadowFor = (size) => {
21
+ const current = currentStyle.boxShadow;
22
+ if (!current) {
23
+ return `${size} ${DEFAULT_BUTTON_SHADOW_COLOR}`;
24
+ }
25
+ const match = CssShadowRE.exec(current);
26
+ return match ? `${size} ${match[1]}` : current;
27
+ };
28
+ const style = { ...config.style };
29
+ if (config.hasShadow) {
30
+ style.boxShadow = shadowFor(ButtonBoxShadowSize);
31
+ }
32
+ else if (config.hasSoftShadow) {
33
+ style.boxShadow = shadowFor(ButtonSoftBoxShadowSize);
34
+ }
35
+ else {
36
+ style.boxShadow = '';
37
+ }
38
+ return style;
39
+ };
@@ -592,6 +592,13 @@ declare const _default: import("vue").DefineComponent<{}, {
592
592
  isVariation: boolean;
593
593
  isExcluded: boolean;
594
594
  } | undefined;
595
+ bp_6136_v2_ai_builder?: {
596
+ key: string;
597
+ value: string;
598
+ isControl: boolean;
599
+ isVariation: boolean;
600
+ isExcluded: boolean;
601
+ } | undefined;
595
602
  };
596
603
  isSubsequentPublish: boolean;
597
604
  isContextualUpgradeModalVisible: boolean;
@@ -667,6 +674,13 @@ declare const _default: import("vue").DefineComponent<{}, {
667
674
  isVariation: boolean;
668
675
  isExcluded: boolean;
669
676
  } | undefined;
677
+ bp_6136_v2_ai_builder?: {
678
+ key: string;
679
+ value: string;
680
+ isControl: boolean;
681
+ isVariation: boolean;
682
+ isExcluded: boolean;
683
+ } | undefined;
670
684
  };
671
685
  isSubsequentPublish: boolean;
672
686
  isContextualUpgradeModalVisible: boolean;
@@ -742,6 +756,13 @@ declare const _default: import("vue").DefineComponent<{}, {
742
756
  isVariation: boolean;
743
757
  isExcluded: boolean;
744
758
  } | undefined;
759
+ bp_6136_v2_ai_builder?: {
760
+ key: string;
761
+ value: string;
762
+ isControl: boolean;
763
+ isVariation: boolean;
764
+ isExcluded: boolean;
765
+ } | undefined;
745
766
  };
746
767
  isSubsequentPublish: boolean;
747
768
  isContextualUpgradeModalVisible: boolean;
@@ -1,14 +1,14 @@
1
1
  import { defineStore } from 'pinia';
2
- import { getColorFromCSSShadow, hexToRGBA, isHexColor, CssShadowRE, } from '@utils/helpers';
2
+ import { getColorFromCSSShadow, hexToRGBA, isHexColor } from '@utils/helpers';
3
3
  import { ButtonStyles, GalleryStyles, PageStyles, TextStyles, ButtonBoxShadowSize, FONT_FAMILY_CONFIGS, CONTENT_TYPES, ButtonSoftBoxShadowSize, BoxShadowSpread, availableGalleryTypes, } from '@brand-page';
4
4
  import { assertUnreachable } from '../../../helpers/ts.helper';
5
5
  import { isColorVarReference } from '@brand-page/utils';
6
- import { DEFAULT_BUTTON_SHADOW_COLOR } from '../../../constants/ui';
7
6
  import { useBrandPageMakerStore, useBrandPageMakerUserStore, useUiStore, } from '@brand-page-maker/stores';
8
7
  import { useUiContentSettingsStore } from '../../content-settings/store';
9
8
  import { useUiPageSettingsStore } from '../../page-settings/store';
10
9
  import { PAGE_SECTIONS } from '../../page-settings/models';
11
10
  import { availableButtonStyleConfigs } from '@brand-page-maker/models';
11
+ import { buttonStylePresetCss } from '../button-style-preset';
12
12
  import { TRIGGER_TYPE, UPGRADE_CTA_LOCATIONS, useEventTracker, } from '@brand-page-maker/composables/useEventTracker';
13
13
  const onStyleChanged = () => {
14
14
  const uiStore = useUiStore();
@@ -203,38 +203,12 @@ export const useUiStyleSettingsStore = defineStore('uiStyleSettings', {
203
203
  },
204
204
  setSelectedButtonStyle(payload) {
205
205
  this._setSelectedButtonStyle(payload);
206
- const buttonStyleConfig = this.availableButtonStyleConfigs.find((c) => c.id === payload.id);
207
- if (!buttonStyleConfig) {
206
+ // Shape + shadow derivation lives in buttonStylePresetCss so the AI metadata
207
+ // builder applies a preset exactly as this picker does (BP-6082).
208
+ const buttonStyle = buttonStylePresetCss(payload.id, this.buttonStyles.style, this.availableButtonStyleConfigs);
209
+ if (!buttonStyle) {
208
210
  return;
209
211
  }
210
- let buttonStyle = {
211
- ...buttonStyleConfig.style,
212
- };
213
- if (buttonStyleConfig.hasShadow) {
214
- if (!this.buttonStyles.style.boxShadow) {
215
- buttonStyle.boxShadow = `${ButtonBoxShadowSize} ${DEFAULT_BUTTON_SHADOW_COLOR}`;
216
- }
217
- else {
218
- const match = CssShadowRE.exec(this.buttonStyles.style.boxShadow);
219
- buttonStyle.boxShadow = match
220
- ? `${ButtonBoxShadowSize} ${match[1]}`
221
- : this.buttonStyles.style.boxShadow;
222
- }
223
- }
224
- else if (buttonStyleConfig.hasSoftShadow) {
225
- if (!this.buttonStyles.style.boxShadow) {
226
- buttonStyle.boxShadow = `${ButtonSoftBoxShadowSize} ${DEFAULT_BUTTON_SHADOW_COLOR}`;
227
- }
228
- else {
229
- const match = CssShadowRE.exec(this.buttonStyles.style.boxShadow);
230
- buttonStyle.boxShadow = match
231
- ? `${ButtonSoftBoxShadowSize} ${match[1]}`
232
- : this.buttonStyles.style.boxShadow;
233
- }
234
- }
235
- else {
236
- buttonStyle = { ...buttonStyle, boxShadow: '' };
237
- }
238
212
  this._setButtonStyle(buttonStyle);
239
213
  onStyleChanged();
240
214
  },
@@ -15,6 +15,15 @@ type MinifiedFooter = {
15
15
  logoImageWidth?: string;
16
16
  logoAssetKey?: string;
17
17
  socialLinks?: MinifiedFooterSocialLink[];
18
+ backgroundStyle?: {
19
+ backgroundColor?: string;
20
+ };
21
+ copyrightStyle?: {
22
+ color?: string;
23
+ };
24
+ iconStyle?: {
25
+ fill?: string;
26
+ };
18
27
  };
19
28
  type MinifiedHeader = {
20
29
  displayStyle?: string;