@designcrowd/library.brand-page 6.0.21 → 6.0.23-ast-remove

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 (92) hide show
  1. package/lib/src/{CreatedOnBrandCrowd-de-de-C52IyXZu.js → CreatedOnBrandCrowd-de-de-C2IaS_Mb.js} +1 -1
  2. package/lib/src/{CreatedOnBrandCrowd-en-us-DhTy_dEV.js → CreatedOnBrandCrowd-en-us-AtykytDu.js} +1 -1
  3. package/lib/src/{CreatedOnBrandCrowd-es-es-BJelIAQ4.js → CreatedOnBrandCrowd-es-es-CBzMnp_n.js} +1 -1
  4. package/lib/src/{CreatedOnBrandCrowd-fr-fr-DwJohy0T.js → CreatedOnBrandCrowd-fr-ca-Cz7WzWc3.js} +1 -1
  5. package/lib/src/{CreatedOnBrandCrowd-fr-ca-DwJohy0T.js → CreatedOnBrandCrowd-fr-fr-Cz7WzWc3.js} +1 -1
  6. package/lib/src/{CreatedOnBrandCrowd-pt-pt-CMzKbxdG.js → CreatedOnBrandCrowd-pt-br-DE3vjPyC.js} +1 -1
  7. package/lib/src/{CreatedOnBrandCrowd-pt-br-CMzKbxdG.js → CreatedOnBrandCrowd-pt-pt-DE3vjPyC.js} +1 -1
  8. package/lib/src/{CreatedOnDcom-de-de-DAy1GHrw.js → CreatedOnDcom-de-de-DlcGgBF6.js} +1 -1
  9. package/lib/src/{CreatedOnDcom-en-us-CgBDAkJN.js → CreatedOnDcom-en-us-D5jdeN_E.js} +1 -1
  10. package/lib/src/{CreatedOnDcom-es-es-Ds9d5rem.js → CreatedOnDcom-es-es-BBB7ZE8B.js} +1 -1
  11. package/lib/src/{CreatedOnDcom-fr-ca-CZL0BQ-u.js → CreatedOnDcom-fr-ca-odHmWYoP.js} +1 -1
  12. package/lib/src/{CreatedOnDcom-fr-fr-BVYh5Wvo.js → CreatedOnDcom-fr-fr-DKr11T_P.js} +1 -1
  13. package/lib/src/{CreatedOnDcom-pt-br-1hsWNXfq.js → CreatedOnDcom-pt-br-s8blQRF7.js} +1 -1
  14. package/lib/src/{CreatedOnDcom-pt-pt-DvM0N-3M.js → CreatedOnDcom-pt-pt-Dga4RM96.js} +1 -1
  15. package/lib/src/brand-page/components/collapsible/Collapsible.mixin.d.ts +11 -0
  16. package/lib/src/brand-page/components/collapsible/Collapsible.mixin.js +13 -1
  17. package/lib/src/brand-page/components/contact-form/ContactForm.mixin.d.ts +1 -0
  18. package/lib/src/brand-page/components/contact-form/ContactForm.mixin.js +12 -3
  19. package/lib/src/brand-page/components/mailing-list/MailingList.mixin.js +5 -0
  20. package/lib/src/brand-page/components/payment/Payment.mixin.js +5 -0
  21. package/lib/src/brand-page/models/index.d.ts +1 -1
  22. package/lib/src/brand-page/models/index.js +0 -3
  23. package/lib/src/brand-page/models/payment.model.d.ts +2 -0
  24. package/lib/src/brand-page/utils/button.util.d.ts +5 -0
  25. package/lib/src/brand-page/utils/button.util.js +13 -0
  26. package/lib/src/brand-page/utils/migration/migration-19.d.ts +2 -0
  27. package/lib/src/brand-page/utils/migration/migration-19.js +41 -0
  28. package/lib/src/brand-page/utils/migration.util.js +11 -0
  29. package/lib/src/brand-page/utils/view-model.util.js +1 -0
  30. package/lib/src/brand-page-maker/assessors/contact-form-visibility.assessor.d.ts +1 -0
  31. package/lib/src/brand-page-maker/assessors/contact-form-visibility.assessor.js +16 -7
  32. package/lib/src/brand-page-maker/constants/config-settings-constant.js +40 -3
  33. package/lib/src/brand-page-maker/default-getters/contact-form-card-color.default-getter.d.ts +8 -0
  34. package/lib/src/brand-page-maker/default-getters/contact-form-card-color.default-getter.js +16 -0
  35. package/lib/src/brand-page-maker/default-getters/index.d.ts +1 -0
  36. package/lib/src/brand-page-maker/default-getters/index.js +1 -0
  37. package/lib/src/brand-page-maker/models/button-styles-config.js +15 -3
  38. package/lib/src/brand-page-maker/models/content-settings-configs.d.ts +2 -1
  39. package/lib/src/brand-page-maker/models/content-settings.js +15 -3
  40. package/lib/src/brand-page-maker/stores/ai-checkpoint/ai-checkpoint-store.d.ts +0 -6
  41. package/lib/src/brand-page-maker/stores/brandpage-maker/brandpage-maker-store.js +0 -2
  42. package/lib/src/css/library.brand-page-brandCrowd.min.css +96 -68
  43. package/lib/src/css/library.brand-page-brandPage.min.css +96 -68
  44. package/lib/src/css/library.brand-page-designCom.min.css +96 -68
  45. package/lib/src/css/library.brand-page-preview.min.css +96 -68
  46. package/lib/src/index.mjs +1 -1
  47. package/lib/src/{lib-CK2FPBv5.js → lib-aLiBOhnh.js} +18776 -18430
  48. package/lib/src/shared/content-settings/components/content-settings-item/ContentSettingsItemField.mixin.js +5 -0
  49. package/lib/src/shared/content-settings/models.d.ts +1 -0
  50. package/lib/src/shared/content-settings/store/content-settings-store.js +3 -0
  51. package/lib/src/shared/template-settings/store/template-settings-store.js +4 -4
  52. package/package.json +2 -2
  53. package/src/brand-page/components/button/ButtonStyleWrapper.vue +112 -44
  54. package/src/brand-page/components/button/ButtonStyleWrapper.vue.test.ts +167 -0
  55. package/src/brand-page/components/collapsible/Collapsible.mixin.ts +14 -1
  56. package/src/brand-page/components/contact-form/ContactForm.mixin.test.ts +18 -0
  57. package/src/brand-page/components/contact-form/ContactForm.mixin.ts +15 -3
  58. package/src/brand-page/components/contact-form/ContactForm.vue +97 -36
  59. package/src/brand-page/components/mailing-list/MailingList.mixin.ts +6 -0
  60. package/src/brand-page/components/mailing-list/MailingList.vue +18 -10
  61. package/src/brand-page/components/payment/Payment.mixin.ts +6 -0
  62. package/src/brand-page/components/payment/Payment.vue +43 -24
  63. package/src/brand-page/components/payment/RequestPaymentStripe.vue +26 -22
  64. package/src/brand-page/components/shop/PaymentModal.vue +3 -3
  65. package/src/brand-page/components/shop/Shop.vue +17 -8
  66. package/src/brand-page/components/shop/Shop.vue.test.ts +209 -0
  67. package/src/brand-page/models/index.ts +1 -4
  68. package/src/brand-page/models/payment.model.ts +2 -0
  69. package/src/brand-page/utils/__snapshots__/migration.util.test.ts.snap +3 -6
  70. package/src/brand-page/utils/__snapshots__/migration2.util.test.ts.snap +0 -1
  71. package/src/brand-page/utils/__snapshots__/model.util.test.ts.snap +0 -2
  72. package/src/brand-page/utils/button.util.ts +17 -0
  73. package/src/brand-page/utils/migration/migration-19.test.ts +172 -0
  74. package/src/brand-page/utils/migration/migration-19.ts +65 -0
  75. package/src/brand-page/utils/migration.util.ts +12 -0
  76. package/src/brand-page/utils/view-model.util.ts +1 -0
  77. package/src/brand-page-maker/assessors/contact-form-visibility.assessor.ts +34 -26
  78. package/src/brand-page-maker/constants/config-settings-constant.ts +43 -2
  79. package/src/brand-page-maker/default-getters/contact-form-card-color.default-getter.ts +23 -0
  80. package/src/brand-page-maker/default-getters/index.ts +1 -0
  81. package/src/brand-page-maker/models/button-styles-config.ts +15 -3
  82. package/src/brand-page-maker/models/content-settings-configs.ts +4 -1
  83. package/src/brand-page-maker/models/content-settings.ts +16 -3
  84. package/src/brand-page-maker/stores/brandpage-maker/brandpage-maker-store.ts +0 -2
  85. package/src/shared/content-settings/components/content-settings-item/ContentSettingsItemField.mixin.ts +6 -0
  86. package/src/shared/content-settings/models.ts +3 -0
  87. package/src/shared/content-settings/store/content-settings-store.ts +3 -0
  88. package/src/shared/style-settings/components/StyleSettings.vue +1 -0
  89. package/src/shared/template-settings/store/template-settings-store.ts +6 -4
  90. package/lib/src/metadata-builder/builders/reorder-pages-builder.d.ts +0 -13
  91. package/lib/src/metadata-builder/builders/reorder-pages-builder.js +0 -49
  92. package/src/metadata-builder/builders/reorder-pages-builder.ts +0 -80
@@ -90,7 +90,7 @@ export interface ContentSettingsField<TContent> {
90
90
  variant?: VariantDisplayModes | ((brandPageType: BrandPageType) => VariantDisplayModes);
91
91
  replaceImageSettings?: ContentReplaceImageSettings<TContent>;
92
92
  showToggle?: boolean;
93
- disableTransparent?: boolean;
93
+ disableTransparent?: boolean | ((brandPageType: BrandPageType) => boolean);
94
94
  valueConvertor?: ValueConvertor<any, any>;
95
95
  canReplace?: boolean;
96
96
  placeholderAssessor?: PlaceholderTypeAssessor<TContent>;
@@ -121,6 +121,7 @@ export interface MultiFieldOption {
121
121
  export interface CreateInitialContentOptions {
122
122
  userState: UserState;
123
123
  brandPageType: BrandPageType;
124
+ buttonFillColor?: string;
124
125
  }
125
126
  export type CreateInitialContentFunction<TContent> = (options?: CreateInitialContentOptions) => TContent;
126
127
  export declare const CONTENT_SETTINGS_DISPLAY_MODES: {
@@ -232,6 +232,9 @@ export const createInitialMailingListContent = (options) => {
232
232
  textStyleType: TEXT_STYLE_TYPES.buttons,
233
233
  textAlign: 'center',
234
234
  },
235
+ // Detach the container background from the button fill by copying the current
236
+ // fill as this block's own colour at creation (BP-5800; matches migration-19).
237
+ backgroundStyle: { backgroundColor: options?.buttonFillColor },
235
238
  };
236
239
  };
237
240
  export const createInitialRequestPaymentContent = (options) => {
@@ -274,6 +277,9 @@ export const createInitialRequestPaymentContent = (options) => {
274
277
  textStyleType: TEXT_STYLE_TYPES.buttons,
275
278
  textAlign: 'center',
276
279
  },
280
+ // Detach the container background from the button fill by copying the current
281
+ // fill as this block's own colour at creation (BP-5800; matches migration-19).
282
+ backgroundStyle: { backgroundColor: options?.buttonFillColor },
277
283
  };
278
284
  };
279
285
  export const createInitialShopContent = (options) => {
@@ -365,6 +371,9 @@ export const createInitialSupportMeContent = (options) => {
365
371
  textStyleType: TEXT_STYLE_TYPES.buttons,
366
372
  textAlign: 'center',
367
373
  },
374
+ // Detach the container background from the button fill by copying the current
375
+ // fill as this block's own colour at creation (BP-5800; matches migration-19).
376
+ backgroundStyle: { backgroundColor: options?.buttonFillColor },
368
377
  };
369
378
  };
370
379
  export const createInitialContactFormContent = (options) => {
@@ -447,9 +456,12 @@ export const createInitialContactFormContent = (options) => {
447
456
  successMessage: contentSettingsTr(`formSuccessMessage`),
448
457
  responseEmail: options?.userState.emailAddress || '',
449
458
  type: 'contact-form',
450
- cardStyle: {
451
- backgroundColor: DEFAULT_LOGO_BACKGROUND_COLOR_RGB,
452
- },
459
+ // brand-site: card layouts default to the logo bg. brand-page/brand-contact:
460
+ // copy the current button fill as the container's own colour so it renders
461
+ // like the button fill but is detached from it (BP-5800; matches migration-19).
462
+ cardStyle: options?.brandPageType === BRAND_PAGE_TYPES.brandSite
463
+ ? { backgroundColor: DEFAULT_LOGO_BACKGROUND_COLOR_RGB }
464
+ : { backgroundColor: options?.buttonFillColor },
453
465
  backgroundStyle: {},
454
466
  titleStyle: {
455
467
  applyAutoScale: options?.brandPageType === BRAND_PAGE_TYPES.brandSite,
@@ -8,7 +8,6 @@ export declare const useAiCheckpointStore: import("pinia").StoreDefinition<"aiCh
8
8
  userMessageId: string;
9
9
  model: {
10
10
  v: number;
11
- userPromptContentKey?: string | undefined;
12
11
  styles: {
13
12
  backgroundStyles: {
14
13
  style: {
@@ -5120,7 +5119,6 @@ export declare const useAiCheckpointStore: import("pinia").StoreDefinition<"aiCh
5120
5119
  userMessageId: string;
5121
5120
  model: {
5122
5121
  v: number;
5123
- userPromptContentKey?: string | undefined;
5124
5122
  styles: {
5125
5123
  backgroundStyles: {
5126
5124
  style: {
@@ -10238,7 +10236,6 @@ export declare const useAiCheckpointStore: import("pinia").StoreDefinition<"aiCh
10238
10236
  userMessageId: string;
10239
10237
  model: {
10240
10238
  v: number;
10241
- userPromptContentKey?: string | undefined;
10242
10239
  styles: {
10243
10240
  backgroundStyles: {
10244
10241
  style: {
@@ -15350,7 +15347,6 @@ export declare const useAiCheckpointStore: import("pinia").StoreDefinition<"aiCh
15350
15347
  userMessageId: string;
15351
15348
  model: {
15352
15349
  v: number;
15353
- userPromptContentKey?: string | undefined;
15354
15350
  styles: {
15355
15351
  backgroundStyles: {
15356
15352
  style: {
@@ -20468,7 +20464,6 @@ export declare const useAiCheckpointStore: import("pinia").StoreDefinition<"aiCh
20468
20464
  userMessageId: string;
20469
20465
  model: {
20470
20466
  v: number;
20471
- userPromptContentKey?: string | undefined;
20472
20467
  styles: {
20473
20468
  backgroundStyles: {
20474
20469
  style: {
@@ -25580,7 +25575,6 @@ export declare const useAiCheckpointStore: import("pinia").StoreDefinition<"aiCh
25580
25575
  userMessageId: string;
25581
25576
  model: {
25582
25577
  v: number;
25583
- userPromptContentKey?: string | undefined;
25584
25578
  styles: {
25585
25579
  backgroundStyles: {
25586
25580
  style: {
@@ -1252,7 +1252,6 @@ export const useBrandPageMakerStore = defineStore('brandPageMaker', {
1252
1252
  const navigationStyleSettingsStore = useUiNavigationStyleSettingsStore();
1253
1253
  const shopStore = useShopConfigStore();
1254
1254
  const pageNavigationStore = usePageNavigationStore();
1255
- const uiStore = useUiStore();
1256
1255
  const pages = pageSettingsStore.pages.map((p) => ({
1257
1256
  ...p,
1258
1257
  contents: p.contents.map((c) => c.settings.content),
@@ -1266,7 +1265,6 @@ export const useBrandPageMakerStore = defineStore('brandPageMaker', {
1266
1265
  const pageNavStructure = pageNavigationStore.nav;
1267
1266
  return {
1268
1267
  v: GetLatestModelVersion(),
1269
- userPromptContentKey: uiStore.userPromptContentKey,
1270
1268
  pages,
1271
1269
  styles: {
1272
1270
  logoStyles,
@@ -1100,9 +1100,15 @@ a.maker-anchor {
1100
1100
  .tw-min-w-8 {
1101
1101
  min-width: 2rem
1102
1102
  }
1103
+ .tw-min-w-\[120px\] {
1104
+ min-width: 120px
1105
+ }
1103
1106
  .tw-min-w-\[310px\] {
1104
1107
  min-width: 310px
1105
1108
  }
1109
+ .tw-min-w-full {
1110
+ min-width: 100%
1111
+ }
1106
1112
  .tw-max-w-0 {
1107
1113
  max-width: 0px
1108
1114
  }
@@ -1442,16 +1448,6 @@ a.maker-anchor {
1442
1448
  -webkit-transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
1443
1449
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))
1444
1450
  }
1445
- .tw-translate-y-\[-10\%\] {
1446
- --tw-translate-y: -10%;
1447
- -webkit-transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
1448
- transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))
1449
- }
1450
- .tw-translate-y-\[-4\%\] {
1451
- --tw-translate-y: -4%;
1452
- -webkit-transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
1453
- transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))
1454
- }
1455
1451
  .tw-translate-y-px {
1456
1452
  --tw-translate-y: 1px;
1457
1453
  -webkit-transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
@@ -3025,9 +3021,6 @@ a.maker-anchor {
3025
3021
  .tw-leading-tight {
3026
3022
  line-height: 1.25
3027
3023
  }
3028
- .tw-text-\[var\(--icon-color\)\] {
3029
- color: var(--icon-color)
3030
- }
3031
3024
  .tw-text-black {
3032
3025
  --tw-text-opacity: 1;
3033
3026
  color: rgb(0 0 0 / var(--tw-text-opacity))
@@ -5662,39 +5655,72 @@ input[data-v-4cd691db]::-webkit-inner-spin-button {
5662
5655
  max-height: 45vh;
5663
5656
  }
5664
5657
 
5665
- .bp-button-paper-top[data-v-604db8c6] {
5666
- --tw-translate-y: -10%;
5667
- -webkit-transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
5668
- transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
5669
- color: var(--icon-color);
5658
+ /* Decorative styles on submit buttons render flush at the bottom. Zero the host
5659
+ button's own margins: its decoration is positioned relative to the WRAPPER, so a
5660
+ margin on the button itself shifts it out of alignment with the decoration. The
5661
+ top gap is instead applied to the wrapper (tw-mt-4 above) so the whole decorated
5662
+ unit moves together and stays flush at the container's bottom edge (BP-5800). */
5663
+ .bp-style-wrapper--no-margin[data-v-255edfd5] button {
5664
+ margin-top: 0;
5665
+ margin-bottom: 0;
5670
5666
  }
5671
- .bp-button-paper-bottom[data-v-604db8c6] {
5672
- --tw-translate-y: -4%;
5673
- -webkit-transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
5674
- transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
5675
- color: var(--icon-color);
5676
- }
5677
- .bp-button-paper-top[data-v-604db8c6] svg,
5678
- .bp-button-paper-bottom[data-v-604db8c6] svg {
5679
- width: 100%;
5680
- height: auto;
5667
+
5668
+ /* Brushstroke: flanking brush-end icons are transformed over the button's
5669
+ left/right edges, so they must not capture clicks (BP-5882). */
5670
+ .bp-icon-brush-left[data-v-255edfd5],
5671
+ .bp-icon-brush-right[data-v-255edfd5] {
5672
+ pointer-events: none;
5681
5673
  }
5682
- .bp-icon-brush-left[data-v-604db8c6] svg {
5674
+ .bp-icon-brush-left[data-v-255edfd5] svg {
5683
5675
  -webkit-transform: translateX(-99%);
5684
5676
  transform: translateX(-99%);
5685
5677
  width: auto;
5686
5678
  }
5687
- .bp-icon-brush-right[data-v-604db8c6] svg {
5679
+ .bp-icon-brush-right[data-v-255edfd5] svg {
5688
5680
  width: auto;
5689
5681
  }
5690
- .bp-button-arrow[data-v-604db8c6],
5691
- .device-wrapper--mobile .bp-button-arrow[data-v-604db8c6] {
5692
- clip-path: polygon(5% 100%, 0% 50%, 5% 0%, 95% 0%, 100% 50%, 95% 100%);
5682
+
5683
+ /* Torn-paper: the button-paper icon sits BEHIND the button as its shape. The
5684
+ wrapper is the positioning context; the icon is an inert inset layer that fills
5685
+ the button box exactly (inset:0 + preserveAspectRatio none) without inflating
5686
+ its size or capturing clicks (BP-5882/BP-5883). The button's own fill is made
5687
+ transparent so the icon's colour shows through. */
5688
+ .bp-button-shape[data-v-255edfd5] {
5689
+ position: relative;
5693
5690
  }
5694
- @media (min-width: 767px) {
5695
- .bp-button-arrow[data-v-604db8c6] {
5696
- clip-path: polygon(3% 100%, 0% 50%, 3% 0%, 97% 0%, 100% 50%, 97% 100%);
5691
+ .bp-icon-shape[data-v-255edfd5] {
5692
+ position: absolute;
5693
+ inset: 0;
5694
+ width: 100%;
5695
+ height: 100%;
5696
+ pointer-events: none;
5697
+ }
5698
+ .bp-button-shape[data-v-255edfd5] button,
5699
+ .bp-button-shape[data-v-255edfd5] a {
5700
+ position: relative; /* sit above the inert background */
5701
+ /* !important to override the host button's inline background-color. */
5702
+ background-color: transparent !important;
5697
5703
  }
5704
+ /* button-paper ships hardcoded fill="black"; recolour to the button's fill. CSS
5705
+ fill overrides the presentation attribute; clip-path rects are geometric so
5706
+ recolouring them is harmless. */
5707
+ .bp-icon-shape[data-v-255edfd5] path,
5708
+ .bp-icon-shape[data-v-255edfd5] rect {
5709
+ fill: currentColor;
5710
+ }
5711
+ .bp-button-arrow[data-v-255edfd5],
5712
+ .device-wrapper--mobile .bp-button-arrow[data-v-255edfd5] {
5713
+ /* Fixed-px arrowhead (not %) so the chevron is equally sharp at any button
5714
+ width — a %-based point collapses on narrow buttons (e.g. the 120px contact
5715
+ form submit) and only reads as an arrow on wide ones. */
5716
+ clip-path: polygon(
5717
+ 12px 100%,
5718
+ 0 50%,
5719
+ 12px 0,
5720
+ calc(100% - 12px) 0,
5721
+ 100% 50%,
5722
+ calc(100% - 12px) 100%
5723
+ );
5698
5724
  }
5699
5725
 
5700
5726
  .empty-para[data-v-2520851c] p:empty::after {
@@ -5808,7 +5834,7 @@ input[data-v-4cd691db]::-webkit-inner-spin-button {
5808
5834
  text-decoration: underline;
5809
5835
  }
5810
5836
 
5811
- .form-error[data-v-ddbacf5a] {
5837
+ .form-error[data-v-b7e55081] {
5812
5838
  font-size: 0.875rem;
5813
5839
  line-height: 1.25rem;
5814
5840
  color: #f21b3f
@@ -6063,14 +6089,10 @@ select[data-v-14e7c7c7] {
6063
6089
  background-position: right 12px center;
6064
6090
  }
6065
6091
 
6066
- .form-error[data-v-7731d899] {
6092
+ .form-error[data-v-0cc4cbbd] {
6067
6093
  font-size: 0.75rem;
6068
6094
  line-height: 1rem;
6069
- color: #f21b3f;
6070
- }
6071
- .pay-button-disabled[data-v-7731d899] {
6072
- opacity: 0.5 !important;
6073
- pointer-events: none;
6095
+ color: #f21b3f
6074
6096
  }
6075
6097
 
6076
6098
  /* TODO: review CSS setup, scoped CSS will not work in slot */
@@ -6166,53 +6188,59 @@ select[data-v-14e7c7c7] {
6166
6188
  width: 100%;
6167
6189
  }
6168
6190
 
6169
- .form-error[data-v-799d8060] {
6191
+ .form-error[data-v-109ad6ae] {
6170
6192
  font-size: 0.875rem;
6171
6193
  line-height: 1.25rem;
6172
6194
  color: #f21b3f;
6173
6195
  }
6174
- .contact-container[data-v-799d8060] {
6196
+ .contact-container[data-v-109ad6ae] {
6175
6197
  max-width: var(--brandsite-max-width);
6176
6198
  margin: 0 auto;
6177
6199
  }
6178
- .c-text-padding[data-v-799d8060] {
6200
+ .c-text-padding[data-v-109ad6ae] {
6179
6201
  padding-left: 1rem;
6180
6202
  padding-right: 1rem;
6181
6203
  }
6182
- .device-wrapper--mobile .c-divided-container[data-v-799d8060] {
6204
+ .device-wrapper--mobile .c-divided-container[data-v-109ad6ae] {
6183
6205
  -webkit-box-orient: vertical;
6184
6206
  -webkit-box-direction: normal;
6185
6207
  -ms-flex-direction: column;
6186
6208
  flex-direction: column;
6187
6209
  }
6188
- .device-wrapper--mobile .c-divided-container-reverse[data-v-799d8060] {
6210
+ .device-wrapper--mobile .c-divided-container-reverse[data-v-109ad6ae] {
6189
6211
  -webkit-box-orient: vertical;
6190
6212
  -webkit-box-direction: reverse;
6191
6213
  -ms-flex-direction: column-reverse;
6192
6214
  flex-direction: column-reverse;
6193
6215
  }
6194
6216
  @media (max-width: 767px) {
6195
- .c-button-full[data-v-799d8060] {
6217
+ .c-button-full[data-v-109ad6ae] {
6218
+ width: 100%;
6219
+ }
6220
+ /* Match the button's full-width on published mobile. The maker uses the
6221
+ isMobileDevice prop for this; the renderer has no such state, so the
6222
+ decorative-button wrapper is widened here via the real viewport instead. */
6223
+ [data-v-109ad6ae] .bp-style-wrapper {
6196
6224
  width: 100%;
6197
6225
  }
6198
- .c-col-span-2[data-v-799d8060] {
6226
+ .c-col-span-2[data-v-109ad6ae] {
6199
6227
  grid-column: span 2 / span 2;
6200
6228
  }
6201
- .c-mobile-padding[data-v-799d8060] {
6229
+ .c-mobile-padding[data-v-109ad6ae] {
6202
6230
  padding: 1rem;
6203
6231
  }
6204
- .c-text-padding[data-v-799d8060] {
6232
+ .c-text-padding[data-v-109ad6ae] {
6205
6233
  grid-column: span 2 / span 2;
6206
6234
  padding-left: 0px;
6207
6235
  padding-right: 0px;
6208
6236
  }
6209
- .c-divided-container[data-v-799d8060] {
6237
+ .c-divided-container[data-v-109ad6ae] {
6210
6238
  -webkit-box-orient: vertical;
6211
6239
  -webkit-box-direction: normal;
6212
6240
  -ms-flex-direction: column;
6213
6241
  flex-direction: column;
6214
6242
  }
6215
- .c-divided-container-reverse[data-v-799d8060] {
6243
+ .c-divided-container-reverse[data-v-109ad6ae] {
6216
6244
  -webkit-box-orient: vertical;
6217
6245
  -webkit-box-direction: reverse;
6218
6246
  -ms-flex-direction: column-reverse;
@@ -6220,16 +6248,16 @@ select[data-v-14e7c7c7] {
6220
6248
  }
6221
6249
  }
6222
6250
  @media (min-width: 767px) {
6223
- .c-aspect-square[data-v-799d8060] {
6251
+ .c-aspect-square[data-v-109ad6ae] {
6224
6252
  aspect-ratio: 1 / 1;
6225
6253
  }
6226
- .c-divided-container[data-v-799d8060] {
6254
+ .c-divided-container[data-v-109ad6ae] {
6227
6255
  -webkit-box-orient: horizontal;
6228
6256
  -webkit-box-direction: normal;
6229
6257
  -ms-flex-direction: row;
6230
6258
  flex-direction: row;
6231
6259
  }
6232
- .c-divided-container-reverse[data-v-799d8060] {
6260
+ .c-divided-container-reverse[data-v-109ad6ae] {
6233
6261
  -webkit-box-orient: horizontal;
6234
6262
  -webkit-box-direction: reverse;
6235
6263
  -ms-flex-direction: row-reverse;
@@ -6861,44 +6889,44 @@ select[data-v-14e7c7c7] {
6861
6889
  color: #f21b3f;
6862
6890
  }
6863
6891
 
6864
- .inner-container[data-v-24954146] {
6892
+ .inner-container[data-v-ca446a07] {
6865
6893
  max-width: var(--brandsite-max-width);
6866
6894
  margin: 0 auto;
6867
6895
  }
6868
- .outer-container[data-v-24954146] {
6896
+ .outer-container[data-v-ca446a07] {
6869
6897
  padding-left: var(--page-padding);
6870
6898
  padding-right: var(--page-padding);
6871
6899
  }
6872
- .modal-cart[data-v-24954146] .cart-image {
6900
+ .modal-cart[data-v-ca446a07] .cart-image {
6873
6901
  width: 3rem;
6874
6902
  }
6875
- .modal-cart[data-v-24954146] .cart-option {
6903
+ .modal-cart[data-v-ca446a07] .cart-option {
6876
6904
  width: 100%;
6877
6905
  }
6878
- .success-bar-container[data-v-24954146] .tw-bg-success-500 {
6906
+ .success-bar-container[data-v-ca446a07] .tw-bg-success-500 {
6879
6907
  --tw-bg-opacity: 1;
6880
6908
  background-color: rgb(36 168 16 / var(--tw-bg-opacity));
6881
6909
  }
6882
6910
  @media (min-width: 640px) {
6883
- .modal-product-detail[data-v-24954146] .modal {
6911
+ .modal-product-detail[data-v-ca446a07] .modal {
6884
6912
  min-width: 100vh;
6885
6913
  }
6886
- .modal-cart[data-v-24954146] .modal {
6914
+ .modal-cart[data-v-ca446a07] .modal {
6887
6915
  min-width: 90vh;
6888
6916
  max-height: 90vh;
6889
6917
  }
6890
- .modal-cart[data-v-24954146] .cart-image {
6918
+ .modal-cart[data-v-ca446a07] .cart-image {
6891
6919
  width: 8rem;
6892
6920
  }
6893
- .modal-cart[data-v-24954146] .cart-option {
6921
+ .modal-cart[data-v-ca446a07] .cart-option {
6894
6922
  width: 75%;
6895
6923
  }
6896
- .success-bar[data-v-24954146] {
6924
+ .success-bar[data-v-ca446a07] {
6897
6925
  width: 50%;
6898
6926
  }
6899
6927
  }
6900
6928
  @media (max-width: 640px) {
6901
- .success-bar[data-v-24954146] {
6929
+ .success-bar[data-v-ca446a07] {
6902
6930
  width: 91.666667%;
6903
6931
  }
6904
6932
  }