@designcrowd/library.brand-page 5.18.0 → 5.18.1-ast-display-styles-1

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 (40) hide show
  1. package/lib/src/{CreatedOnBrandCrowd-de-de-xmkupPus.js → CreatedOnBrandCrowd-de-de-DB2oJ5vl.js} +1 -1
  2. package/lib/src/{CreatedOnBrandCrowd-en-us-Ck7EdTtb.js → CreatedOnBrandCrowd-en-us-fbk0Gf2G.js} +1 -1
  3. package/lib/src/{CreatedOnBrandCrowd-es-es-BC8sJuDH.js → CreatedOnBrandCrowd-es-es-Ch4Q9__I.js} +1 -1
  4. package/lib/src/{CreatedOnBrandCrowd-fr-fr-CN-UBe1q.js → CreatedOnBrandCrowd-fr-ca-DaHJ6OMH.js} +1 -1
  5. package/lib/src/{CreatedOnBrandCrowd-fr-ca-CN-UBe1q.js → CreatedOnBrandCrowd-fr-fr-DaHJ6OMH.js} +1 -1
  6. package/lib/src/{CreatedOnBrandCrowd-pt-pt-CajQyNkx.js → CreatedOnBrandCrowd-pt-br-BgF8UCqy.js} +1 -1
  7. package/lib/src/{CreatedOnBrandCrowd-pt-br-CajQyNkx.js → CreatedOnBrandCrowd-pt-pt-BgF8UCqy.js} +1 -1
  8. package/lib/src/{CreatedOnDcom-de-de-BRCNMmDq.js → CreatedOnDcom-de-de-j3rcGaGp.js} +1 -1
  9. package/lib/src/{CreatedOnDcom-en-us-BzQDtZhc.js → CreatedOnDcom-en-us-Cx4eQPRU.js} +1 -1
  10. package/lib/src/{CreatedOnDcom-es-es-D-qAM4Cd.js → CreatedOnDcom-es-es-D-1APCL9.js} +1 -1
  11. package/lib/src/{CreatedOnDcom-fr-ca-CZ1irFOc.js → CreatedOnDcom-fr-ca-DAHdBw0D.js} +1 -1
  12. package/lib/src/{CreatedOnDcom-fr-fr-Gb5BCF0N.js → CreatedOnDcom-fr-fr-BYAw2kXr.js} +1 -1
  13. package/lib/src/{CreatedOnDcom-pt-br-CAQV0q6o.js → CreatedOnDcom-pt-br-CdSknjZg.js} +1 -1
  14. package/lib/src/{CreatedOnDcom-pt-pt-D6tQdQFh.js → CreatedOnDcom-pt-pt-DzyZ2j80.js} +1 -1
  15. package/lib/src/brand-page/components/page/Page.mixin.d.ts +1 -1
  16. package/lib/src/brand-page/components/page/PageComponent.mixin.d.ts +1 -1
  17. package/lib/src/brand-page/constants/misc.constants.d.ts +6 -0
  18. package/lib/src/brand-page/constants/misc.constants.js +6 -0
  19. package/lib/src/brand-page-maker/components/brandpage-maker-page/BrandPageMakerPage.mixin.d.ts +1 -1
  20. package/lib/src/brand-page-maker/convertors/banner-align-display-style.convertor.js +56 -2
  21. package/lib/src/css/library.brand-page-brandCrowd.min.css +106 -90
  22. package/lib/src/css/library.brand-page-brandPage.min.css +107 -90
  23. package/lib/src/css/library.brand-page-designCom.min.css +106 -90
  24. package/lib/src/css/library.brand-page-preview.min.css +106 -90
  25. package/lib/src/index.mjs +1 -1
  26. package/lib/src/{lib-CSRUPpSo.js → lib-mcvVokSM.js} +16468 -16005
  27. package/lib/src/metadata-builder/builders/section-builders/banner-section-builder.js +0 -13
  28. package/lib/src/shared/page-settings/components/page-settings-section-styles/PageSettingsSectionStyles.mixin.js +0 -1
  29. package/package.json +2 -2
  30. package/src/brand-page/components/banner-section/BannerSection.vue +360 -12
  31. package/src/brand-page/components/banner-section/BannerSection.vue.test.ts +201 -0
  32. package/src/brand-page/components/placeholder/Placeholder.vue +39 -100
  33. package/src/brand-page/constants/misc.constants.ts +6 -0
  34. package/src/brand-page-maker/convertors/banner-align-display-style.convertor.ts +61 -1
  35. package/src/metadata-builder/builders/section-builders/banner-section-builder.ts +0 -17
  36. package/src/shared/page-settings/components/page-settings-section-styles/PageSettingsSectionStyles.mixin.ts +0 -6
  37. package/src/shared/page-settings/components/page-settings-section-styles/PageSettingsSectionStyles.vue +1 -1
  38. package/lib/src/brand-page/components/banner-section/BannerSection.mixin.d.ts +0 -103
  39. package/lib/src/brand-page/components/banner-section/BannerSection.mixin.js +0 -178
  40. package/src/brand-page/components/banner-section/BannerSection.mixin.ts +0 -213
@@ -1,5 +1,5 @@
1
1
  import { openBlock as e, createElementBlock as l, createStaticVNode as a } from "vue";
2
- import { _ as t } from "./lib-CSRUPpSo.js";
2
+ import { _ as t } from "./lib-mcvVokSM.js";
3
3
  const i = {}, h = {
4
4
  width: "275",
5
5
  height: "36",
@@ -1,5 +1,5 @@
1
1
  import { openBlock as e, createElementBlock as l, createStaticVNode as a } from "vue";
2
- import { _ as t } from "./lib-CSRUPpSo.js";
2
+ import { _ as t } from "./lib-mcvVokSM.js";
3
3
  const i = {}, h = {
4
4
  width: "251",
5
5
  height: "36",
@@ -1,5 +1,5 @@
1
1
  import { openBlock as e, createElementBlock as l, createStaticVNode as a } from "vue";
2
- import { _ as t } from "./lib-CSRUPpSo.js";
2
+ import { _ as t } from "./lib-mcvVokSM.js";
3
3
  const i = {}, h = {
4
4
  width: "250",
5
5
  height: "36",
@@ -1,5 +1,5 @@
1
1
  import { openBlock as e, createElementBlock as l, createStaticVNode as a } from "vue";
2
- import { _ as t } from "./lib-CSRUPpSo.js";
2
+ import { _ as t } from "./lib-mcvVokSM.js";
3
3
  const i = {}, h = {
4
4
  width: "237",
5
5
  height: "36",
@@ -1,5 +1,5 @@
1
1
  import { openBlock as e, createElementBlock as l, createStaticVNode as a } from "vue";
2
- import { _ as t } from "./lib-CSRUPpSo.js";
2
+ import { _ as t } from "./lib-mcvVokSM.js";
3
3
  const i = {}, h = {
4
4
  width: "237",
5
5
  height: "36",
@@ -1,5 +1,5 @@
1
1
  import { openBlock as e, createElementBlock as l, createStaticVNode as a } from "vue";
2
- import { _ as t } from "./lib-CSRUPpSo.js";
2
+ import { _ as t } from "./lib-mcvVokSM.js";
3
3
  const i = {}, h = {
4
4
  width: "263",
5
5
  height: "36",
@@ -1,5 +1,5 @@
1
1
  import { openBlock as e, createElementBlock as l, createStaticVNode as a } from "vue";
2
- import { _ as t } from "./lib-CSRUPpSo.js";
2
+ import { _ as t } from "./lib-mcvVokSM.js";
3
3
  const i = {}, h = {
4
4
  width: "263",
5
5
  height: "36",
@@ -1,5 +1,5 @@
1
1
  import { openBlock as H, createElementBlock as V, createStaticVNode as t } from "vue";
2
- import { _ as e } from "./lib-CSRUPpSo.js";
2
+ import { _ as e } from "./lib-mcvVokSM.js";
3
3
  const M = {}, Z = {
4
4
  width: "242",
5
5
  height: "36",
@@ -1,5 +1,5 @@
1
1
  import { openBlock as H, createElementBlock as V, createStaticVNode as t } from "vue";
2
- import { _ as e } from "./lib-CSRUPpSo.js";
2
+ import { _ as e } from "./lib-mcvVokSM.js";
3
3
  const i = {}, M = {
4
4
  width: "231",
5
5
  height: "36",
@@ -1,5 +1,5 @@
1
1
  import { openBlock as H, createElementBlock as V, createStaticVNode as t } from "vue";
2
- import { _ as e } from "./lib-CSRUPpSo.js";
2
+ import { _ as e } from "./lib-mcvVokSM.js";
3
3
  const M = {}, Z = {
4
4
  width: "230",
5
5
  height: "36",
@@ -1,5 +1,5 @@
1
1
  import { openBlock as H, createElementBlock as V, createStaticVNode as t } from "vue";
2
- import { _ as e } from "./lib-CSRUPpSo.js";
2
+ import { _ as e } from "./lib-mcvVokSM.js";
3
3
  const i = {}, l = {
4
4
  width: "216",
5
5
  height: "36",
@@ -1,5 +1,5 @@
1
1
  import { openBlock as H, createElementBlock as V, createStaticVNode as t } from "vue";
2
- import { _ as e } from "./lib-CSRUPpSo.js";
2
+ import { _ as e } from "./lib-mcvVokSM.js";
3
3
  const i = {}, l = {
4
4
  width: "216",
5
5
  height: "36",
@@ -1,5 +1,5 @@
1
1
  import { openBlock as H, createElementBlock as V, createStaticVNode as t } from "vue";
2
- import { _ as M } from "./lib-CSRUPpSo.js";
2
+ import { _ as M } from "./lib-mcvVokSM.js";
3
3
  const Z = {}, e = {
4
4
  width: "232",
5
5
  height: "36",
@@ -1,5 +1,5 @@
1
1
  import { openBlock as H, createElementBlock as V, createStaticVNode as t } from "vue";
2
- import { _ as M } from "./lib-CSRUPpSo.js";
2
+ import { _ as M } from "./lib-mcvVokSM.js";
3
3
  const Z = {}, e = {
4
4
  width: "232",
5
5
  height: "36",
@@ -145,8 +145,8 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
145
145
  }>, {
146
146
  viewport: ViewportsType;
147
147
  isMobileDevice: boolean;
148
- containerClientWidth: number | undefined;
149
148
  containerClientHeight: number | undefined;
149
+ containerClientWidth: number | undefined;
150
150
  isContentSelected: boolean;
151
151
  isHeaderSelected: boolean;
152
152
  isFooterSelected: boolean;
@@ -78,7 +78,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
78
78
  }>> & Readonly<{}>, {
79
79
  brandPageToken: string;
80
80
  isMobileDevice: boolean;
81
- containerClientWidth: number;
82
81
  containerClientHeight: number;
82
+ containerClientWidth: number;
83
83
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
84
84
  export default _default;
@@ -12,6 +12,12 @@ export declare const ALIGN_LEFT_BIG_IMAGE = "left-aligned-big-image";
12
12
  export declare const ALIGN_CARD_CENTER_IMAGE = "center-card-aligned-image";
13
13
  export declare const ALIGN_CARD_CENTER = "center-card-aligned";
14
14
  export declare const ALIGN_CARD_LEFT_IMAGE = "left-card-aligned-image";
15
+ export declare const ALIGN_TOP_CARD_IMAGE = "top-card-aligned-image";
16
+ export declare const ALIGN_BOTTOM_CARD_IMAGE = "bottom-card-aligned-image";
17
+ export declare const ALIGN_MIDDLE_CARD_IMAGE = "middle-card-aligned-image";
18
+ export declare const ALIGN_TOP_FULL_IMAGE = "top-aligned-full-image";
19
+ export declare const ALIGN_BOTTOM_FULL_IMAGE = "bottom-aligned-full-image";
20
+ export declare const ALIGN_MIDDLE_FULL_IMAGE = "middle-aligned-full-image";
15
21
  export declare const MAX_IMAGES_SECTION_ALIGNMENT_ITEMS_LENGTH = 3;
16
22
  export declare const TEXT_COLUMNS: {
17
23
  readonly 1: "1";
@@ -13,6 +13,12 @@ export const ALIGN_LEFT_BIG_IMAGE = 'left-aligned-big-image';
13
13
  export const ALIGN_CARD_CENTER_IMAGE = 'center-card-aligned-image';
14
14
  export const ALIGN_CARD_CENTER = 'center-card-aligned';
15
15
  export const ALIGN_CARD_LEFT_IMAGE = 'left-card-aligned-image';
16
+ export const ALIGN_TOP_CARD_IMAGE = 'top-card-aligned-image';
17
+ export const ALIGN_BOTTOM_CARD_IMAGE = 'bottom-card-aligned-image';
18
+ export const ALIGN_MIDDLE_CARD_IMAGE = 'middle-card-aligned-image';
19
+ export const ALIGN_TOP_FULL_IMAGE = 'top-aligned-full-image';
20
+ export const ALIGN_BOTTOM_FULL_IMAGE = 'bottom-aligned-full-image';
21
+ export const ALIGN_MIDDLE_FULL_IMAGE = 'middle-aligned-full-image';
16
22
  export const MAX_IMAGES_SECTION_ALIGNMENT_ITEMS_LENGTH = 3;
17
23
  export const TEXT_COLUMNS = {
18
24
  1: '1',
@@ -1312,8 +1312,8 @@ declare const _default: import("vue").DefineComponent<{}, {
1312
1312
  }>, {
1313
1313
  viewport: import("@brand-page").ViewportsType;
1314
1314
  isMobileDevice: boolean;
1315
- containerClientWidth: number | undefined;
1316
1315
  containerClientHeight: number | undefined;
1316
+ containerClientWidth: number | undefined;
1317
1317
  isContentSelected: boolean;
1318
1318
  isHeaderSelected: boolean;
1319
1319
  isFooterSelected: boolean;
@@ -1,4 +1,4 @@
1
- import { ALIGN_CENTERED, ALIGN_LEFT_ALIGNED, ALIGN_RIGHT_ALIGNED, BIG_IMAGE, ALIGN_LEFT_FULL_IMAGE, ALIGN_RIGHT_FULL_IMAGE, ALIGN_LEFT_BIG_IMAGE, ALIGN_CARD_CENTER_IMAGE, ALIGN_CARD_LEFT_IMAGE, } from '@brand-page/constants';
1
+ import { ALIGN_CENTERED, ALIGN_LEFT_ALIGNED, ALIGN_RIGHT_ALIGNED, BIG_IMAGE, ALIGN_LEFT_FULL_IMAGE, ALIGN_RIGHT_FULL_IMAGE, ALIGN_LEFT_BIG_IMAGE, ALIGN_CARD_CENTER_IMAGE, ALIGN_CARD_LEFT_IMAGE, ALIGN_TOP_CARD_IMAGE, ALIGN_BOTTOM_CARD_IMAGE, ALIGN_MIDDLE_CARD_IMAGE, ALIGN_TOP_FULL_IMAGE, ALIGN_BOTTOM_FULL_IMAGE, ALIGN_MIDDLE_FULL_IMAGE, } from '@brand-page/constants';
2
2
  export const bannerAlignDisplayStyleConvertor = {
3
3
  convertBackToMultipleValues: true,
4
4
  convert(value) {
@@ -28,6 +28,54 @@ export const bannerAlignDisplayStyleConvertor = {
28
28
  iconViewBox: '0 0 110 64',
29
29
  dataAttribute: 'data-test-btn-text-only',
30
30
  },
31
+ {
32
+ title: '',
33
+ value: ALIGN_TOP_CARD_IMAGE,
34
+ isSelected: value === ALIGN_TOP_CARD_IMAGE,
35
+ iconName: 'display-style-banner-10',
36
+ iconViewBox: '0 0 110 64',
37
+ dataAttribute: 'data-test-btn-top-card-image',
38
+ },
39
+ {
40
+ title: '',
41
+ value: ALIGN_BOTTOM_CARD_IMAGE,
42
+ isSelected: value === ALIGN_BOTTOM_CARD_IMAGE,
43
+ iconName: 'display-style-banner-11',
44
+ iconViewBox: '0 0 110 64',
45
+ dataAttribute: 'data-test-btn-bottom-card-image',
46
+ },
47
+ {
48
+ title: '',
49
+ value: ALIGN_MIDDLE_CARD_IMAGE,
50
+ isSelected: value === ALIGN_MIDDLE_CARD_IMAGE,
51
+ iconName: 'display-style-banner-12',
52
+ iconViewBox: '0 0 110 64',
53
+ dataAttribute: 'data-test-btn-middle-card-image',
54
+ },
55
+ {
56
+ title: '',
57
+ value: ALIGN_TOP_FULL_IMAGE,
58
+ isSelected: value === ALIGN_TOP_FULL_IMAGE,
59
+ iconName: 'display-style-banner-13',
60
+ iconViewBox: '0 0 110 64',
61
+ dataAttribute: 'data-test-btn-top-full-image',
62
+ },
63
+ {
64
+ title: '',
65
+ value: ALIGN_BOTTOM_FULL_IMAGE,
66
+ isSelected: value === ALIGN_BOTTOM_FULL_IMAGE,
67
+ iconName: 'display-style-banner-14',
68
+ iconViewBox: '0 0 110 64',
69
+ dataAttribute: 'data-test-btn-bottom-full-image',
70
+ },
71
+ {
72
+ title: '',
73
+ value: ALIGN_MIDDLE_FULL_IMAGE,
74
+ isSelected: value === ALIGN_MIDDLE_FULL_IMAGE,
75
+ iconName: 'display-style-banner-15',
76
+ iconViewBox: '0 0 110 64',
77
+ dataAttribute: 'data-test-btn-middle-full-image',
78
+ },
31
79
  {
32
80
  title: '',
33
81
  value: BIG_IMAGE,
@@ -86,7 +134,13 @@ export const bannerAlignDisplayStyleConvertor = {
86
134
  if (!selectedOption ||
87
135
  selectedOption.value === ALIGN_CENTERED ||
88
136
  selectedOption.value === BIG_IMAGE ||
89
- selectedOption.value === ALIGN_CARD_CENTER_IMAGE) {
137
+ selectedOption.value === ALIGN_CARD_CENTER_IMAGE ||
138
+ selectedOption.value === ALIGN_TOP_CARD_IMAGE ||
139
+ selectedOption.value === ALIGN_BOTTOM_CARD_IMAGE ||
140
+ selectedOption.value === ALIGN_MIDDLE_CARD_IMAGE ||
141
+ selectedOption.value === ALIGN_TOP_FULL_IMAGE ||
142
+ selectedOption.value === ALIGN_BOTTOM_FULL_IMAGE ||
143
+ selectedOption.value === ALIGN_MIDDLE_FULL_IMAGE) {
90
144
  textAlign = 'center';
91
145
  }
92
146
  return {
@@ -530,6 +530,12 @@ a.maker-anchor {
530
530
  .tw-ml-auto {
531
531
  margin-left: auto
532
532
  }
533
+ .tw-mr-0 {
534
+ margin-right: 0px
535
+ }
536
+ .tw-mr-0\.5 {
537
+ margin-right: 0.125rem
538
+ }
533
539
  .tw-mr-1 {
534
540
  margin-right: 0.25rem
535
541
  }
@@ -620,6 +626,9 @@ a.maker-anchor {
620
626
  .tw-hidden {
621
627
  display: none
622
628
  }
629
+ .tw-aspect-\[3\/1\] {
630
+ aspect-ratio: 3/1
631
+ }
623
632
  .tw-aspect-auto {
624
633
  aspect-ratio: auto
625
634
  }
@@ -3028,6 +3037,14 @@ a.maker-anchor {
3028
3037
  --tw-text-opacity: 1;
3029
3038
  color: rgb(145 16 38 / var(--tw-text-opacity))
3030
3039
  }
3040
+ .tw-text-grayscale-300 {
3041
+ --tw-text-opacity: 1;
3042
+ color: rgb(239 239 239 / var(--tw-text-opacity))
3043
+ }
3044
+ .tw-text-grayscale-400 {
3045
+ --tw-text-opacity: 1;
3046
+ color: rgb(230 230 230 / var(--tw-text-opacity))
3047
+ }
3031
3048
  .tw-text-grayscale-500 {
3032
3049
  --tw-text-opacity: 1;
3033
3050
  color: rgb(208 208 208 / var(--tw-text-opacity))
@@ -3340,6 +3357,10 @@ a.maker-anchor {
3340
3357
  --tw-bg-opacity: 1;
3341
3358
  background-color: rgb(208 208 208 / var(--tw-bg-opacity))
3342
3359
  }
3360
+ .hover\:tw-bg-grayscale-700:hover {
3361
+ --tw-bg-opacity: 1;
3362
+ background-color: rgb(43 43 43 / var(--tw-bg-opacity))
3363
+ }
3343
3364
  .hover\:tw-bg-info-100:hover {
3344
3365
  --tw-bg-opacity: 1;
3345
3366
  background-color: rgb(204 234 247 / var(--tw-bg-opacity))
@@ -3486,6 +3507,19 @@ a.maker-anchor {
3486
3507
  outline: 2px solid transparent;
3487
3508
  outline-offset: 2px
3488
3509
  }
3510
+ .focus-visible\:tw-ring-2:focus-visible {
3511
+ --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
3512
+ --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
3513
+ -webkit-box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
3514
+ box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000)
3515
+ }
3516
+ .focus-visible\:tw-ring-primary-500:focus-visible {
3517
+ --tw-ring-opacity: 1;
3518
+ --tw-ring-color: rgb(242 27 63 / var(--tw-ring-opacity))
3519
+ }
3520
+ .focus-visible\:tw-ring-offset-2:focus-visible {
3521
+ --tw-ring-offset-width: 2px
3522
+ }
3489
3523
  @media (hover: hover) and (pointer: fine) {
3490
3524
  .tw-group:hover .group-hover\:tw-visible {
3491
3525
  visibility: visible
@@ -4111,10 +4145,10 @@ a.maker-anchor {
4111
4145
  line-height: 1.25rem;
4112
4146
  }
4113
4147
 
4114
- .arc[data-v-75f7d315] {
4115
- animation: ai-loader-circle-75f7d315 2000ms infinite linear;
4148
+ .arc[data-v-dd807356] {
4149
+ animation: ai-loader-circle-dd807356 2000ms infinite linear;
4116
4150
  }
4117
- @keyframes ai-loader-circle-75f7d315 {
4151
+ @keyframes ai-loader-circle-dd807356 {
4118
4152
  0% {
4119
4153
  transform: rotateZ(0deg);
4120
4154
  }
@@ -4122,10 +4156,10 @@ a.maker-anchor {
4122
4156
  transform: rotateZ(360deg);
4123
4157
  }
4124
4158
  }
4125
- #primary[data-v-75f7d315] {
4126
- animation: ai-loader-primary-75f7d315 2000ms infinite ease-in-out;
4159
+ .primary[data-v-dd807356] {
4160
+ animation: ai-loader-primary-dd807356 2000ms infinite ease-in-out;
4127
4161
  }
4128
- @keyframes ai-loader-primary-75f7d315 {
4162
+ @keyframes ai-loader-primary-dd807356 {
4129
4163
  0% {
4130
4164
  transform: scale(1);
4131
4165
  }
@@ -4136,13 +4170,13 @@ a.maker-anchor {
4136
4170
  transform: scale(1);
4137
4171
  }
4138
4172
  }
4139
- #top-star[data-v-75f7d315] {
4140
- animation: ai-loader-secondary-top-75f7d315 2000ms infinite ease-in-out;
4173
+ .top-star[data-v-dd807356] {
4174
+ animation: ai-loader-secondary-top-dd807356 2000ms infinite ease-in-out;
4141
4175
  }
4142
- #bottom-star[data-v-75f7d315] {
4143
- animation: ai-loader-secondary-bottom-75f7d315 2000ms infinite ease-in-out;
4176
+ .bottom-star[data-v-dd807356] {
4177
+ animation: ai-loader-secondary-bottom-dd807356 2000ms infinite ease-in-out;
4144
4178
  }
4145
- @keyframes ai-loader-secondary-bottom-75f7d315 {
4179
+ @keyframes ai-loader-secondary-bottom-dd807356 {
4146
4180
  0% {
4147
4181
  transform: scale(1);
4148
4182
  }
@@ -4153,7 +4187,7 @@ a.maker-anchor {
4153
4187
  transform: scale(1);
4154
4188
  }
4155
4189
  }
4156
- @keyframes ai-loader-secondary-top-75f7d315 {
4190
+ @keyframes ai-loader-secondary-top-dd807356 {
4157
4191
  0% {
4158
4192
  transform: scale(1);
4159
4193
  }
@@ -5541,76 +5575,45 @@ input[data-v-4cd691db]::-webkit-inner-spin-button {
5541
5575
  fill: currentColor;
5542
5576
  }
5543
5577
 
5544
- .c-placeholder[data-v-51d8de03] {
5578
+ .c-placeholder[data-v-6ed918ee] {
5545
5579
  background-color: #fff;
5546
5580
  display: block;
5547
5581
  }
5548
- .c-placeholder__content[data-v-51d8de03] {
5582
+
5583
+ /*
5584
+ * Provide a positioning context for the absolute SVG icon — but only when the
5585
+ * caller hasn't already positioned the placeholder itself. Some callers pass
5586
+ * `tw-absolute` (e.g. the big-image banner uses it to fill the banner as a
5587
+ * background); a blanket `position: relative` here would out-specify that
5588
+ * utility and break the layout. An already-positioned placeholder is its own
5589
+ * containing block, so the SVG fills it either way.
5590
+ */
5591
+ .c-placeholder[data-v-6ed918ee]:not(.tw-absolute):not(.tw-fixed) {
5549
5592
  position: relative;
5550
- display: block;
5551
5593
  }
5552
- .c-placeholder__content[data-v-51d8de03]::after {
5553
- --size: 1px;
5554
- --n-size: -1px;
5555
- --border: calc(var(--n-size) * 2 + var(--height) / 2);
5556
- --border-left: calc(var(--n-size) * 2 + var(--width) / 2);
5557
- --tw-border-opacity: 0.5;
5558
- position: absolute;
5559
- top: calc(var(--size) * 2);
5560
- left: var(--size);
5561
- content: ' ';
5562
- border-top: var(--border) solid transparent;
5563
- border-bottom: var(--border) solid transparent;
5564
- border-left: var(--border-left) solid
5565
- rgb(208 208 208 / var(--tw-border-opacity));
5566
- }
5567
- .c-placeholder__content[data-v-51d8de03]::before {
5568
- --size: 1px;
5569
- --n-size: -1px;
5570
- --border: calc(var(--n-size) * 2 + var(--height) / 2);
5571
- --border-right: calc(var(--n-size) * 2 + var(--width) / 2);
5572
- --tw-border-opacity: 0.5;
5573
- position: absolute;
5574
- top: calc(var(--size) * 2);
5575
- right: var(--size);
5576
- content: ' ';
5577
- border-top: var(--border) solid transparent;
5578
- border-bottom: var(--border) solid transparent;
5579
- border-right: var(--border-right) solid
5580
- rgb(208 208 208 / var(--tw-border-opacity));
5581
- }
5582
- .c-placeholder[data-v-51d8de03]::after {
5583
- --size: 1px;
5584
- --n-size: -1px;
5585
- --border: calc(var(--n-size) * 2 + var(--width) / 2);
5586
- --border-right: calc(var(--n-size) * 2 + var(--height) / 2);
5587
- --tw-border-opacity: 0.5;
5588
- position: absolute;
5589
- left: calc(var(--size) * 2);
5590
- top: var(--size);
5591
- content: ' ';
5592
- border-left: var(--border) solid transparent;
5593
- border-right: var(--border) solid transparent;
5594
- border-top: var(--border-right) solid
5595
- rgb(208 208 208 / var(--tw-border-opacity));
5596
- }
5597
- .c-placeholder[data-v-51d8de03]::before {
5598
- --size: 1px;
5599
- --n-size: -1px;
5600
- --border: calc(var(--n-size) * 2 + var(--width) / 2);
5601
- --border-bottom: calc(var(--n-size) * 2 + var(--height) / 2);
5602
- --tw-border-opacity: 0.5;
5594
+
5595
+ /*
5596
+ * The X icon is drawn as an SVG with preserveAspectRatio="none" so the
5597
+ * diagonals always run corner-to-corner regardless of the box aspect ratio
5598
+ * (square thumbnails through full-width 2/1 banners). vector-effect keeps the
5599
+ * stroke an even width while the viewBox is stretched non-uniformly. The SVG
5600
+ * is absolutely positioned so it fills the box sized by min-height / the
5601
+ * caller's aspect-ratio class rather than driving the height itself.
5602
+ */
5603
+ .c-placeholder__icon[data-v-6ed918ee] {
5603
5604
  position: absolute;
5604
- left: calc(var(--size) * 2);
5605
- bottom: var(--size);
5606
- content: ' ';
5607
- border-left: var(--border) solid transparent;
5608
- border-right: var(--border) solid transparent;
5609
- border-bottom: var(--border-bottom) solid
5610
- rgb(208 208 208 / var(--tw-border-opacity));
5605
+ inset: 0;
5606
+ display: block;
5607
+ width: 100%;
5608
+ height: 100%;
5611
5609
  }
5612
- .c-placeholder__content[data-v-51d8de03] > [data-v-51d8de03] {
5613
- padding-bottom: 0.5rem;
5610
+ .c-placeholder__fill[data-v-6ed918ee] {
5611
+ fill: rgb(208 208 208 / 0.5);
5612
+ }
5613
+ .c-placeholder__icon line[data-v-6ed918ee] {
5614
+ stroke: #fff;
5615
+ stroke-width: 2;
5616
+ vector-effect: non-scaling-stroke;
5614
5617
  }
5615
5618
 
5616
5619
  .c-image {
@@ -6226,10 +6229,10 @@ select[data-v-14e7c7c7] {
6226
6229
  text-align: center
6227
6230
  }
6228
6231
 
6229
- .c_banner--with-image-overlay[data-v-c9625b02] {
6232
+ .c_banner--with-image-overlay[data-v-3875c37b] {
6230
6233
  min-height: 24rem;
6231
6234
  }
6232
- .c_banner--divided-container[data-v-c9625b02] {
6235
+ .c_banner--divided-container[data-v-3875c37b] {
6233
6236
  min-height: 30rem;
6234
6237
  -webkit-box-orient: horizontal;
6235
6238
  -webkit-box-direction: normal;
@@ -6237,67 +6240,80 @@ select[data-v-14e7c7c7] {
6237
6240
  flex-direction: row;
6238
6241
  gap: 1rem;
6239
6242
  }
6240
- .device-wrapper--mobile .c_banner--divided-container[data-v-c9625b02] {
6243
+ .device-wrapper--mobile .c_banner--divided-container[data-v-3875c37b] {
6241
6244
  -webkit-box-orient: vertical;
6242
6245
  -webkit-box-direction: reverse;
6243
6246
  -ms-flex-direction: column-reverse;
6244
6247
  flex-direction: column-reverse;
6245
6248
  }
6246
- .c_banner-container[data-v-c9625b02] {
6249
+ .c_banner-container[data-v-3875c37b] {
6247
6250
  max-width: var(--brandsite-max-width);
6248
6251
  margin: 0 auto;
6249
6252
  }
6250
- .c_banner--with-image-flip[data-v-c9625b02] {
6253
+
6254
+ /*
6255
+ * Full-bleed stacked image. The wrapper lives inside .c_banner-container
6256
+ * (capped at --brandsite-max-width and centered) and inside the outer
6257
+ * tw-px-6 padding, so a plain width:100%/-mx-6 stops at the max-width edge.
6258
+ * Using the outer container-query width (100cqw = content-box inline size),
6259
+ * widen to the full banner and shift left so the image spans edge to edge
6260
+ * (1.5rem = tw-px-6). Text blocks stay constrained to the max-width.
6261
+ */
6262
+ .c_banner-stacked-image--full[data-v-3875c37b] {
6263
+ width: calc(100cqw + 3rem);
6264
+ margin-inline: calc(50% - 50cqw - 1.5rem);
6265
+ }
6266
+ .c_banner--with-image-flip[data-v-3875c37b] {
6251
6267
  -webkit-box-orient: horizontal;
6252
6268
  -webkit-box-direction: reverse;
6253
6269
  -ms-flex-direction: row-reverse;
6254
6270
  flex-direction: row-reverse;
6255
6271
  }
6256
- .c_banner--divided-container[data-v-c9625b02] .full-square-image {
6272
+ .c_banner--divided-container[data-v-3875c37b] .full-square-image {
6257
6273
  width: 100%;
6258
6274
  aspect-ratio: 1/1;
6259
6275
  -o-object-fit: cover;
6260
6276
  object-fit: cover;
6261
6277
  }
6262
6278
  @container (min-width: 640px) {
6263
- .c_banner-container--left-aligned-stacking[data-v-c9625b02] {
6279
+ .c_banner-container--left-aligned-stacking[data-v-3875c37b] {
6264
6280
  -webkit-box-orient: horizontal;
6265
6281
  -webkit-box-direction: normal;
6266
6282
  -ms-flex-direction: row;
6267
6283
  flex-direction: row;
6268
6284
  }
6269
- .c_banner-container--right-aligned-stacking[data-v-c9625b02] {
6285
+ .c_banner-container--right-aligned-stacking[data-v-3875c37b] {
6270
6286
  -webkit-box-orient: horizontal;
6271
6287
  -webkit-box-direction: reverse;
6272
6288
  -ms-flex-direction: row-reverse;
6273
6289
  flex-direction: row-reverse;
6274
6290
  }
6275
- .c_banner-button--stacking[data-v-c9625b02] {
6291
+ .c_banner-button--stacking[data-v-3875c37b] {
6276
6292
  width: -webkit-fit-content;
6277
6293
  width: -moz-fit-content;
6278
6294
  width: fit-content;
6279
6295
  }
6280
6296
  }
6281
6297
  @container (max-width: 640px) {
6282
- .c_banner-container--left-aligned-stacking[data-v-c9625b02] {
6298
+ .c_banner-container--left-aligned-stacking[data-v-3875c37b] {
6283
6299
  -webkit-box-orient: vertical;
6284
6300
  -webkit-box-direction: normal;
6285
6301
  -ms-flex-direction: column;
6286
6302
  flex-direction: column;
6287
6303
  }
6288
- .c_banner-container--right-aligned-stacking[data-v-c9625b02] {
6304
+ .c_banner-container--right-aligned-stacking[data-v-3875c37b] {
6289
6305
  -webkit-box-orient: vertical;
6290
6306
  -webkit-box-direction: normal;
6291
6307
  -ms-flex-direction: column;
6292
6308
  flex-direction: column;
6293
6309
  }
6294
- .c_banner-item--stacking[data-v-c9625b02] {
6310
+ .c_banner-item--stacking[data-v-3875c37b] {
6295
6311
  width: 100%;
6296
6312
  }
6297
- .c_banner-button--stacking[data-v-c9625b02] {
6313
+ .c_banner-button--stacking[data-v-3875c37b] {
6298
6314
  width: 100%;
6299
6315
  }
6300
- .c_banner--divided-container[data-v-c9625b02] {
6316
+ .c_banner--divided-container[data-v-3875c37b] {
6301
6317
  -webkit-box-orient: vertical;
6302
6318
  -webkit-box-direction: reverse;
6303
6319
  -ms-flex-direction: column-reverse;
@@ -8991,7 +9007,7 @@ input[type='number'][data-v-b7154ee1] {
8991
9007
  color: #686e7d;
8992
9008
  }
8993
9009
 
8994
- .page-settings-section-style_option-title[data-v-e6909f88] {
9010
+ .page-settings-section-style_option-title[data-v-c93e7fd0] {
8995
9011
  font-family: Lato, Helvetica, sans-serif;
8996
9012
  font-size: 0.875rem;
8997
9013
  line-height: 1.25rem;