@designcrowd/library.brand-page 5.18.9-ast-padding-2 → 5.18.9

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 (138) hide show
  1. package/lib/src/{CreatedOnBrandCrowd-de-de-BmLOUBDj.js → CreatedOnBrandCrowd-de-de-CDdi84ti.js} +1 -1
  2. package/lib/src/{CreatedOnBrandCrowd-en-us-DGCwedd5.js → CreatedOnBrandCrowd-en-us-BvRiqC8_.js} +1 -1
  3. package/lib/src/{CreatedOnBrandCrowd-es-es-qfWIO62h.js → CreatedOnBrandCrowd-es-es-BGjpqIbV.js} +1 -1
  4. package/lib/src/{CreatedOnBrandCrowd-fr-fr-Bh6tQfv-.js → CreatedOnBrandCrowd-fr-ca-BSLrflaD.js} +1 -1
  5. package/lib/src/{CreatedOnBrandCrowd-fr-ca-Bh6tQfv-.js → CreatedOnBrandCrowd-fr-fr-BSLrflaD.js} +1 -1
  6. package/lib/src/{CreatedOnBrandCrowd-pt-pt-DBF_gR3z.js → CreatedOnBrandCrowd-pt-br-CYdUgcJs.js} +1 -1
  7. package/lib/src/{CreatedOnBrandCrowd-pt-br-DBF_gR3z.js → CreatedOnBrandCrowd-pt-pt-CYdUgcJs.js} +1 -1
  8. package/lib/src/{CreatedOnDcom-de-de-B1ZibTqN.js → CreatedOnDcom-de-de-D3gzpYgh.js} +1 -1
  9. package/lib/src/{CreatedOnDcom-en-us-4qS61Om_.js → CreatedOnDcom-en-us-V6QwvLNX.js} +1 -1
  10. package/lib/src/{CreatedOnDcom-es-es-yX1FaMrI.js → CreatedOnDcom-es-es-BmgxqURo.js} +1 -1
  11. package/lib/src/{CreatedOnDcom-fr-ca-h5RbgiUo.js → CreatedOnDcom-fr-ca-DEAawXEa.js} +1 -1
  12. package/lib/src/{CreatedOnDcom-fr-fr-4cJbiAWr.js → CreatedOnDcom-fr-fr-Da7MhYpI.js} +1 -1
  13. package/lib/src/{CreatedOnDcom-pt-br-C0FUKVjn.js → CreatedOnDcom-pt-br-D6WUdxFK.js} +1 -1
  14. package/lib/src/{CreatedOnDcom-pt-pt-CFstpuvQ.js → CreatedOnDcom-pt-pt-CS5m0sQX.js} +1 -1
  15. package/lib/src/brand-page/components/contact-form/ContactForm.mixin.d.ts +0 -4
  16. package/lib/src/brand-page/components/contact-form/ContactForm.mixin.js +4 -8
  17. package/lib/src/brand-page/components/image-gallery/ImageGallery.mixin.d.ts +0 -4
  18. package/lib/src/brand-page/components/image-gallery/ImageGallery.mixin.js +0 -4
  19. package/lib/src/brand-page/components/mailing-list/MailingList.mixin.d.ts +0 -4
  20. package/lib/src/brand-page/components/mailing-list/MailingList.mixin.js +1 -4
  21. package/lib/src/brand-page/components/payment/request-payment/RequestPayment.mixin.d.ts +0 -4
  22. package/lib/src/brand-page/components/payment/request-payment/RequestPayment.mixin.js +0 -4
  23. package/lib/src/brand-page/components/payment/support-me/SupportMe.mixin.d.ts +0 -4
  24. package/lib/src/brand-page/components/payment/support-me/SupportMe.mixin.js +1 -4
  25. package/lib/src/brand-page/components/testimonial-section/TestimonialSection.mixin.d.ts +97 -0
  26. package/lib/src/brand-page/components/testimonial-section/TestimonialSection.mixin.js +112 -0
  27. package/lib/src/brand-page/components/video/Video.mixin.d.ts +0 -4
  28. package/lib/src/brand-page/components/video/Video.mixin.js +0 -4
  29. package/lib/src/brand-page/constants/font.constants.d.ts +4 -4
  30. package/lib/src/brand-page/constants/font.constants.js +4 -4
  31. package/lib/src/brand-page/constants/misc.constants.d.ts +0 -35
  32. package/lib/src/brand-page/constants/misc.constants.js +0 -51
  33. package/lib/src/brand-page/models/content.model.d.ts +0 -2
  34. package/lib/src/brand-page/utils/index.d.ts +0 -1
  35. package/lib/src/brand-page/utils/index.js +0 -1
  36. package/lib/src/brand-page/utils/migration.util.js +0 -10
  37. package/lib/src/brand-page-maker/components/admin-logo-settings/AdminLogoSettings.mixin.d.ts +0 -2
  38. package/lib/src/brand-page-maker/components/brand-page-maker/BrandPageMaker.mixin.d.ts +0 -12
  39. package/lib/src/brand-page-maker/components/brandpage-maker-page/BrandPageMakerPage.mixin.d.ts +0 -14
  40. package/lib/src/brand-page-maker/constants/config-settings-constant.js +0 -39
  41. package/lib/src/brand-page-maker/convertors/about-display-style.convertor.js +1 -9
  42. package/lib/src/brand-page-maker/convertors/banner-align-display-style.convertor.js +1 -7
  43. package/lib/src/brand-page-maker/convertors/contact-layout-style.convertor.js +1 -6
  44. package/lib/src/brand-page-maker/models/content-settings.js +2 -39
  45. package/lib/src/brand-page-maker/stores/ai-checkpoint/ai-checkpoint-store.d.ts +0 -12
  46. package/lib/src/{bundled-translations-BUyt4scr.js → bundled-translations-D1q3rSEz.js} +9 -9
  47. package/lib/src/{bundled-translations.de-DE-DEw_OVai.js → bundled-translations.de-DE-BxqLLwbh.js} +1 -1
  48. package/lib/src/{bundled-translations.es-ES-CFKWmkgY.js → bundled-translations.es-ES-uh249NlJ.js} +17 -17
  49. package/lib/src/{bundled-translations.fr-CA-DCl5LJS4.js → bundled-translations.fr-CA-BEQmv2fX.js} +1 -1
  50. package/lib/src/{bundled-translations.fr-FR-B5BjgllA.js → bundled-translations.fr-FR-BnNuCojH.js} +1 -1
  51. package/lib/src/{bundled-translations.pt-BR-5PWpMPuM.js → bundled-translations.pt-BR-CJUOxVlq.js} +1 -1
  52. package/lib/src/{bundled-translations.pt-PT-B9_wN0HR.js → bundled-translations.pt-PT-Ds9cMEqK.js} +9 -9
  53. package/lib/src/bundles/bundled-translations.de-DE.json +0 -2
  54. package/lib/src/bundles/bundled-translations.es-ES.json +0 -2
  55. package/lib/src/bundles/bundled-translations.fr-CA.json +0 -2
  56. package/lib/src/bundles/bundled-translations.fr-FR.json +0 -2
  57. package/lib/src/bundles/bundled-translations.json +0 -2
  58. package/lib/src/bundles/bundled-translations.pt-BR.json +0 -2
  59. package/lib/src/bundles/bundled-translations.pt-PT.json +0 -2
  60. package/lib/src/css/library.brand-page-brandCrowd.min.css +155 -141
  61. package/lib/src/css/library.brand-page-brandPage.min.css +155 -141
  62. package/lib/src/css/library.brand-page-designCom.min.css +155 -141
  63. package/lib/src/css/library.brand-page-preview.min.css +155 -141
  64. package/lib/src/index.mjs +1 -1
  65. package/lib/src/{lib-B3NH7cmE.js → lib--1xJXw4j.js} +21010 -21158
  66. package/lib/src/shared/content-settings/components/content-settings/ContentSettings.mixin.d.ts +0 -14
  67. package/lib/src/shared/content-settings/components/content-settings/ReplaceImageSettingsForContent.mixin.d.ts +0 -14
  68. package/lib/src/shared/content-settings/components/content-settings-item/ContentSettingsItem.mixin.d.ts +0 -12
  69. package/lib/src/shared/content-settings/components/content-settings-item/ContentSettingsItemField.mixin.d.ts +0 -12
  70. package/lib/src/shared/content-settings/components/focused-content-item-settings/FocusedContentItemSettings.mixin.d.ts +0 -12
  71. package/lib/src/shared/content-settings/components/slider-field/SliderField.mixin.js +0 -9
  72. package/lib/src/shared/content-settings/store/content-settings-store.d.ts +0 -12
  73. package/lib/src/shared/page-settings/components/page-settings/PageSettings.mixin.d.ts +0 -16
  74. package/lib/src/shared/page-settings/components/page-settings-section-styles/PageSettingsSectionStyles.mixin.d.ts +0 -14
  75. package/lib/src/utils/minify-brand-page-metadata.js +1 -11
  76. package/package.json +1 -1
  77. package/src/brand-page/components/about-section/AboutSection.vue +4 -10
  78. package/src/brand-page/components/banner-section/BannerSection.vue +4 -11
  79. package/src/brand-page/components/booking-section/BookingSection.vue +3 -11
  80. package/src/brand-page/components/contact-form/ContactForm.mixin.ts +6 -12
  81. package/src/brand-page/components/contact-form/ContactForm.vue +104 -105
  82. package/src/brand-page/components/image-gallery/ImageGallery.mixin.ts +0 -5
  83. package/src/brand-page/components/image-gallery/ImageGallery.vue +1 -1
  84. package/src/brand-page/components/mailing-list/MailingList.mixin.ts +1 -8
  85. package/src/brand-page/components/mailing-list/MailingList.vue +1 -1
  86. package/src/brand-page/components/map/Map.vue +1 -5
  87. package/src/brand-page/components/payment/request-payment/RequestPayment.mixin.ts +0 -5
  88. package/src/brand-page/components/payment/request-payment/RequestPayment.vue +0 -1
  89. package/src/brand-page/components/payment/support-me/SupportMe.mixin.ts +1 -8
  90. package/src/brand-page/components/payment/support-me/SupportMe.vue +0 -1
  91. package/src/brand-page/components/shop/Shop.vue +2 -7
  92. package/src/brand-page/components/social-links/SocialLinks.vue +3 -7
  93. package/src/brand-page/components/testimonial-section/TestimonialSection.mixin.ts +132 -0
  94. package/src/brand-page/components/testimonial-section/TestimonialSection.vue +11 -120
  95. package/src/brand-page/components/text/Text.vue +5 -12
  96. package/src/brand-page/components/text-media-section/TextMediaSection.vue +3 -11
  97. package/src/brand-page/components/video/Video.mixin.ts +0 -5
  98. package/src/brand-page/components/video/Video.vue +1 -1
  99. package/src/brand-page/constants/font.constants.ts +4 -4
  100. package/src/brand-page/constants/misc.constants.ts +0 -58
  101. package/src/brand-page/models/content.model.ts +0 -2
  102. package/src/brand-page/utils/__snapshots__/migration.util.test.ts.snap +3 -9
  103. package/src/brand-page/utils/__snapshots__/migration2.util.test.ts.snap +6 -6
  104. package/src/brand-page/utils/__snapshots__/model.util.test.ts.snap +12 -12
  105. package/src/brand-page/utils/index.ts +0 -1
  106. package/src/brand-page/utils/migration.util.test.ts +0 -290
  107. package/src/brand-page/utils/migration.util.ts +0 -11
  108. package/src/brand-page-maker/constants/config-settings-constant.ts +0 -45
  109. package/src/brand-page-maker/convertors/about-display-style.convertor.ts +0 -10
  110. package/src/brand-page-maker/convertors/banner-align-display-style.convertor.ts +0 -8
  111. package/src/brand-page-maker/convertors/contact-layout-style.convertor.ts +0 -8
  112. package/src/brand-page-maker/models/content-settings.ts +2 -43
  113. package/src/bundles/bundled-translations.de-DE.json +0 -2
  114. package/src/bundles/bundled-translations.es-ES.json +0 -2
  115. package/src/bundles/bundled-translations.fr-CA.json +0 -2
  116. package/src/bundles/bundled-translations.fr-FR.json +0 -2
  117. package/src/bundles/bundled-translations.json +0 -2
  118. package/src/bundles/bundled-translations.pt-BR.json +0 -2
  119. package/src/bundles/bundled-translations.pt-PT.json +0 -2
  120. package/src/shared/content-settings/components/content-settings/i18n/content-settings.de-DE.json +0 -2
  121. package/src/shared/content-settings/components/content-settings/i18n/content-settings.es-ES.json +0 -2
  122. package/src/shared/content-settings/components/content-settings/i18n/content-settings.fr-CA.json +0 -2
  123. package/src/shared/content-settings/components/content-settings/i18n/content-settings.fr-FR.json +0 -2
  124. package/src/shared/content-settings/components/content-settings/i18n/content-settings.json +0 -2
  125. package/src/shared/content-settings/components/content-settings/i18n/content-settings.pt-BR.json +0 -2
  126. package/src/shared/content-settings/components/content-settings/i18n/content-settings.pt-PT.json +0 -2
  127. package/src/shared/content-settings/components/content-settings-item/ContentSettingsItem.vue +1 -1
  128. package/src/shared/content-settings/components/focused-content-item-settings/FocusedContentItemSettings.vue +2 -2
  129. package/src/shared/content-settings/components/slider-field/SliderField.mixin.ts +0 -9
  130. package/src/utils/minify-brand-page-metadata.ts +1 -11
  131. package/lib/src/brand-page/utils/content-padding.util.d.ts +0 -13
  132. package/lib/src/brand-page/utils/content-padding.util.js +0 -10
  133. package/lib/src/brand-page/utils/migration/migration-17.d.ts +0 -2
  134. package/lib/src/brand-page/utils/migration/migration-17.js +0 -60
  135. package/src/brand-page/utils/content-padding.util.test.ts +0 -29
  136. package/src/brand-page/utils/content-padding.util.ts +0 -13
  137. package/src/brand-page/utils/migration/migration-17.ts +0 -77
  138. package/src/brand-page-maker/convertors/contact-layout-style.convertor.test.ts +0 -50
@@ -7,10 +7,9 @@
7
7
  <div
8
8
  :class="{
9
9
  'about-container': context.isBrandSite,
10
- 'about-container--padding': !isFullImage,
10
+ 'about-container--padding tw-py-10': !isFullImage,
11
11
  'mobile-about-container--padding': isFullImage,
12
12
  }"
13
- :style="contentPaddingStyle"
14
13
  >
15
14
  <Media
16
15
  v-if="
@@ -104,10 +103,7 @@
104
103
  import { computed } from 'vue';
105
104
  import type { AboutSectionViewModel } from '@brand-page/view-models';
106
105
  import type { BrandPageContext } from '@brand-page/models';
107
- import {
108
- getRenderText,
109
- contentPaddingStyle as toContentPaddingStyle,
110
- } from '@brand-page/utils';
106
+ import { getRenderText } from '@brand-page/utils';
111
107
  import { hasRTEContent } from '@brand-page-maker/utils';
112
108
  import Media from '../media/Media.vue';
113
109
  import TextWrapper from '../text-wrapper/TextWrapper.vue';
@@ -127,10 +123,6 @@ const props = withDefaults(
127
123
  },
128
124
  );
129
125
 
130
- const contentPaddingStyle = computed(() =>
131
- toContentPaddingStyle(props.viewModel),
132
- );
133
-
134
126
  const isFullImage = computed(
135
127
  () =>
136
128
  props.viewModel.displayStyle === 'right-aligned-full-image' ||
@@ -209,6 +201,7 @@ const renderText = computed((): string => {
209
201
  .device-wrapper--mobile .mobile-about-container--padding {
210
202
  padding-left: var(--page-padding);
211
203
  padding-right: var(--page-padding);
204
+ @apply tw-py-10;
212
205
  }
213
206
  .device-wrapper--mobile .text-grid-column {
214
207
  @apply container-grid-columns;
@@ -282,6 +275,7 @@ const renderText = computed((): string => {
282
275
  .mobile-about-container--padding {
283
276
  padding-left: var(--page-padding);
284
277
  padding-right: var(--page-padding);
278
+ @apply tw-py-10;
285
279
  }
286
280
  .about-container :deep(.container-image) {
287
281
  aspect-ratio: 1/1;
@@ -7,8 +7,9 @@
7
7
  viewModel.isBigImageType,
8
8
  'c_banner--with-image-overlay tw-flex tw-flex-col': isDividedContent,
9
9
  'tw-px-6': !isDividedContent,
10
+ 'tw-py-8': !isDividedContent && !isStackedFullWidth,
10
11
  }"
11
- :style="[viewModel.backgroundStyle, contentPaddingStyle]"
12
+ :style="viewModel.backgroundStyle"
12
13
  style="container-type: inline-size"
13
14
  >
14
15
  <Media
@@ -200,7 +201,7 @@
200
201
  <div
201
202
  class="!tw-text-center tw-flex tw-flex-col tw-gap-5"
202
203
  :class="{
203
- 'tw-px-6': isDividedContent,
204
+ 'tw-px-6 tw-py-8': isDividedContent,
204
205
  }"
205
206
  >
206
207
  <TextWrapper
@@ -331,11 +332,7 @@ import type {
331
332
  } from '@brand-page/view-models';
332
333
  import type { BrandPageContext } from '@brand-page/models';
333
334
  import { hasValidButton } from '../../../utils/validator.util';
334
- import {
335
- getRenderText,
336
- escapeContentText,
337
- contentPaddingStyle as toContentPaddingStyle,
338
- } from '@brand-page/utils';
335
+ import { getRenderText, escapeContentText } from '@brand-page/utils';
339
336
  import { hasRTEContent } from '@brand-page-maker/utils';
340
337
  import {
341
338
  ALIGN_CENTERED,
@@ -493,10 +490,6 @@ const layout = computed<BannerLayoutConfig>(
493
490
  () => BANNER_LAYOUTS[props.viewModel.displayStyle] ?? DEFAULT_LAYOUT,
494
491
  );
495
492
 
496
- const contentPaddingStyle = computed(() =>
497
- toContentPaddingStyle(props.viewModel),
498
- );
499
-
500
493
  const displayAlignClass = computed(() => layout.value.alignClass);
501
494
  const isHorizontalAligned = computed(() => !!layout.value.hasSideImage);
502
495
  const isDividedContent = computed(() => layout.value.layout === 'divided');
@@ -1,8 +1,8 @@
1
1
  <template>
2
2
  <section data-component="booking-section">
3
3
  <div
4
- class="tw-relative tw-px-6"
5
- :style="[viewModel.backgroundStyle, contentPaddingStyle]"
4
+ class="tw-relative tw-px-6 tw-py-8"
5
+ :style="viewModel.backgroundStyle"
6
6
  style="container-type: inline-size"
7
7
  >
8
8
  <div
@@ -45,11 +45,7 @@ import type {
45
45
  ButtonViewModel,
46
46
  } from '@brand-page/view-models';
47
47
  import type { BrandPageContext } from '@brand-page/models';
48
- import {
49
- getRenderText,
50
- escapeContentText,
51
- contentPaddingStyle as toContentPaddingStyle,
52
- } from '@brand-page/utils';
48
+ import { getRenderText, escapeContentText } from '@brand-page/utils';
53
49
  import { hasRTEContent } from '@brand-page-maker/utils';
54
50
  import { hasValidButton as shouldShowButtonUtil } from '../../../utils/validator.util';
55
51
  import Button from '../button/Button.vue';
@@ -75,10 +71,6 @@ const props = defineProps({
75
71
  },
76
72
  });
77
73
 
78
- const contentPaddingStyle = computed(() =>
79
- toContentPaddingStyle(props.viewModel),
80
- );
81
-
82
74
  const renderText = computed((): string => {
83
75
  if (!props.viewModel.description) {
84
76
  return '';
@@ -25,10 +25,7 @@ import {
25
25
  RECAPTCHA_ACTION_CONTACT_FORM,
26
26
  TEXT_ONLY,
27
27
  } from '../../constants';
28
- import {
29
- getRenderText,
30
- contentPaddingStyle as toContentPaddingStyle,
31
- } from '@brand-page/utils';
28
+ import { getRenderText } from '@brand-page/utils';
32
29
  import { hasRTEContent } from '@brand-page-maker/utils';
33
30
  import { useReCaptcha } from '../../composables/recaptcha.composable';
34
31
 
@@ -100,10 +97,6 @@ export default defineComponent({
100
97
  return buttonTextStyle;
101
98
  },
102
99
 
103
- contentPaddingStyle(): { paddingTop: string; paddingBottom: string } {
104
- return toContentPaddingStyle(this.viewModel);
105
- },
106
-
107
100
  hasCard(): boolean {
108
101
  return (
109
102
  this.viewModel.layoutStyle === ALIGN_CARD_CENTER ||
@@ -116,10 +109,11 @@ export default defineComponent({
116
109
  },
117
110
 
118
111
  hasBgColor(): boolean {
119
- // Every brandSite layout applies the background colour on the section
120
- // root (banner-style) so the padding control reveals it; for the image
121
- // layouts it only shows in the padding bands around the image block.
122
- return Boolean(this.viewModel.layoutStyle);
112
+ return (
113
+ this.viewModel.layoutStyle === ALIGN_CARD_CENTER ||
114
+ this.viewModel.layoutStyle === TEXT_ONLY ||
115
+ this.viewModel.layoutStyle === ALIGN_CENTERED
116
+ );
123
117
  },
124
118
 
125
119
  isCenteredLayout(): boolean {
@@ -2,13 +2,11 @@
2
2
  <section data-component="contact-form">
3
3
  <div
4
4
  :class="{
5
+ 'tw-flex': isCenteredLayout && !hasBgImage,
5
6
  'tw-block': !viewModel.layoutStyle,
6
- 'tw-relative tw-overflow-hidden': hasBgImage,
7
+ 'tw-relative': hasBgImage,
7
8
  }"
8
- :style="[
9
- hasBgColor ? viewModel.backgroundStyle : {},
10
- contentPaddingStyle,
11
- ]"
9
+ :style="hasBgColor ? viewModel.backgroundStyle : {}"
12
10
  >
13
11
  <Media
14
12
  v-if="hasBgImage && isCenteredLayout"
@@ -110,115 +108,110 @@
110
108
  </Collapsible>
111
109
  <div
112
110
  v-else-if="isCenteredLayout"
113
- :class="{ 'tw-relative': hasBgImage, 'tw-flex': !hasBgImage }"
111
+ class="contact-container tw-py-4"
112
+ :class="{
113
+ 'tw-px-6 tw-py-8': hasCard,
114
+ 'tw-py-6': !hasCard,
115
+ 'tw-w-full': !hasBgImage,
116
+ }"
114
117
  >
115
118
  <div
116
- class="contact-container"
117
- :class="{
118
- 'tw-px-6': hasCard,
119
- 'tw-py-8': hasBgImage,
120
- 'tw-w-full': !hasBgImage,
121
- }"
119
+ :style="hasCard ? viewModel.cardStyle : {}"
120
+ class="tw-relative tw-block tw-px-6 tw-py-8 tw-rounded-2xl"
122
121
  >
123
- <div
124
- :style="hasCard ? viewModel.cardStyle : {}"
125
- class="tw-relative tw-block tw-px-6 tw-rounded-2xl"
126
- :class="{ 'tw-py-8': hasCard }"
127
- >
128
- <form v-if="!hasSubmitted" @submit.prevent="submitContactForm">
129
- <TextWrapper
130
- v-if="viewModel.title"
131
- :text-style="viewModel.titleStyle"
132
- :text="viewModel.title"
133
- element="h1"
134
- class="tw-mb-4 tw-text-base"
135
- />
136
- <TextWrapper
137
- v-if="renderText"
138
- :text-style="viewModel.descriptionStyle"
139
- :text="renderText"
140
- element="div"
141
- class="tw-mb-4 tw-text-base"
142
- />
143
- <div v-if="!isSubmitting" class="tw-grid tw-grid-cols-2 tw-gap-4">
144
- <div
145
- v-for="(value, index) in values"
146
- :key="index"
147
- class="tw-text-secondary-500 c-col-span-2"
148
- :class="{
149
- 'tw-col-span-2':
150
- value.field.type === 'text-area' || isMobileDevice,
151
- }"
122
+ <form v-if="!hasSubmitted" @submit.prevent="submitContactForm">
123
+ <TextWrapper
124
+ v-if="viewModel.title"
125
+ :text-style="viewModel.titleStyle"
126
+ :text="viewModel.title"
127
+ element="h1"
128
+ class="tw-mb-4 tw-text-base"
129
+ />
130
+ <TextWrapper
131
+ v-if="renderText"
132
+ :text-style="viewModel.descriptionStyle"
133
+ :text="renderText"
134
+ element="div"
135
+ class="tw-mb-4 tw-text-base"
136
+ />
137
+ <div v-if="!isSubmitting" class="tw-grid tw-grid-cols-2 tw-gap-4">
138
+ <div
139
+ v-for="(value, index) in values"
140
+ :key="index"
141
+ class="tw-text-secondary-500 c-col-span-2"
142
+ :class="{
143
+ 'tw-col-span-2':
144
+ value.field.type === 'text-area' || isMobileDevice,
145
+ }"
146
+ >
147
+ <TextInput
148
+ v-if="value.field.type !== 'text-area'"
149
+ v-model="value.value"
150
+ :placeholder="`${value.field.name}${
151
+ value.field.required ? '*' : ''
152
+ }`"
153
+ :label="`${value.field.name}${value.field.required ? '*' : ''}`"
154
+ :show-label-screen-reader-only="true"
155
+ size="sm"
156
+ :error="!!value.error"
157
+ :type="getTextInputTypeByFieldType(value.field.type)"
158
+ class="tw-w-full"
159
+ @input="onValueChange(index)"
160
+ />
161
+ <Textarea
162
+ v-if="value.field.type === 'text-area'"
163
+ v-model="value.value"
164
+ :placeholder="`${value.field.name}${
165
+ value.field.required ? '*' : ''
166
+ }`"
167
+ :label="`${value.field.name}${value.field.required ? '*' : ''}`"
168
+ :show-label-screen-reader-only="true"
169
+ size="sm"
170
+ :error="!!value.error"
171
+ :resize="false"
172
+ class="tw-w-full"
173
+ @input="onValueChange(index)"
174
+ />
175
+ <p v-if="!!value.error" class="form-error">
176
+ {{ value.error }}
177
+ </p>
178
+ </div>
179
+ <div class="tw-flex tw-w-full tw-justify-center tw-col-span-2">
180
+ <button
181
+ v-if="isSubmitButtonVisible"
182
+ class="tw-block tw-border-0 tw-py-2 tw-select-none tw-text-base tw-text-center tw-w-fit hover:tw-cursor-pointer tw-px-8 tw-py-3 c-button-full"
183
+ :style="submitButtonStyle"
184
+ :class="{ 'tw-w-full': isMobileDevice }"
152
185
  >
153
- <TextInput
154
- v-if="value.field.type !== 'text-area'"
155
- v-model="value.value"
156
- :placeholder="`${value.field.name}${
157
- value.field.required ? '*' : ''
158
- }`"
159
- :label="`${value.field.name}${value.field.required ? '*' : ''}`"
160
- :show-label-screen-reader-only="true"
161
- size="sm"
162
- :error="!!value.error"
163
- :type="getTextInputTypeByFieldType(value.field.type)"
164
- class="tw-w-full"
165
- @input="onValueChange(index)"
166
- />
167
- <Textarea
168
- v-if="value.field.type === 'text-area'"
169
- v-model="value.value"
170
- :placeholder="`${value.field.name}${
171
- value.field.required ? '*' : ''
172
- }`"
173
- :label="`${value.field.name}${value.field.required ? '*' : ''}`"
174
- :show-label-screen-reader-only="true"
175
- size="sm"
176
- :error="!!value.error"
177
- :resize="false"
178
- class="tw-w-full"
179
- @input="onValueChange(index)"
186
+ <TextWrapper
187
+ :text-style="submitButtonTextStyle"
188
+ :text="viewModel.buttonText"
189
+ class="tw-text-center tw-text-base"
180
190
  />
181
- <p v-if="!!value.error" class="form-error">
182
- {{ value.error }}
183
- </p>
184
- </div>
185
- <div class="tw-flex tw-w-full tw-justify-center tw-col-span-2">
186
- <button
187
- v-if="isSubmitButtonVisible"
188
- class="tw-block tw-border-0 tw-py-2 tw-select-none tw-text-base tw-text-center tw-w-fit hover:tw-cursor-pointer tw-px-8 tw-py-3 c-button-full"
189
- :style="submitButtonStyle"
190
- :class="{ 'tw-w-full': isMobileDevice }"
191
- >
192
- <TextWrapper
193
- :text-style="submitButtonTextStyle"
194
- :text="viewModel.buttonText"
195
- class="tw-text-center tw-text-base"
196
- />
197
- </button>
198
- </div>
199
- </div>
200
- <div v-else class="tw-w-full tw-flex tw-justify-center">
201
- <Loader />
191
+ </button>
202
192
  </div>
203
- <p
204
- v-if="hasSubmitError"
205
- class="tw-text-center tw-mt-2 form-error"
206
- >
207
- {{ submitError }}
208
- </p>
209
- </form>
210
- <div v-else :style="successMessageColorStyle">
211
- <TextWrapper
212
- v-if="viewModel.successMessage"
213
- :text="renderSuccessText"
214
- element="p"
215
- :class="'tw-my-0.5'"
216
- />
217
193
  </div>
194
+ <div v-else class="tw-w-full tw-flex tw-justify-center">
195
+ <Loader />
196
+ </div>
197
+ <p v-if="hasSubmitError" class="tw-text-center tw-mt-2 form-error">
198
+ {{ submitError }}
199
+ </p>
200
+ </form>
201
+ <div v-else :style="successMessageColorStyle">
202
+ <TextWrapper
203
+ v-if="viewModel.successMessage"
204
+ :text="renderSuccessText"
205
+ element="p"
206
+ :class="'tw-my-0.5'"
207
+ />
218
208
  </div>
219
209
  </div>
220
210
  </div>
221
- <div v-else-if="isTextOnly" class="tw-px-6 tw-gap-2 contact-container">
211
+ <div
212
+ v-else-if="isTextOnly"
213
+ class="tw-px-6 tw-py-8 tw-gap-2 contact-container"
214
+ >
222
215
  <span v-if="!hasSubmitted" class="tw-grid tw-grid-cols-2">
223
216
  <div
224
217
  v-if="!isSubmitting"
@@ -357,7 +350,10 @@
357
350
  }"
358
351
  >
359
352
  <div
360
- class="tw-flex tw-flex-col tw-gap-2 tw-px-8 tw-py-6 tw-w-full tw-justify-center"
353
+ class="tw-flex tw-flex-col tw-gap-2 tw-px-8 tw-w-full tw-justify-center c-py-6"
354
+ :class="{
355
+ 'tw-py-6': isMobileDevice,
356
+ }"
361
357
  >
362
358
  <span v-if="!hasSubmitted">
363
359
  <TextWrapper
@@ -520,6 +516,9 @@ export default {
520
516
  .c-text-padding {
521
517
  @apply tw-px-0 tw-col-span-2;
522
518
  }
519
+ .c-py-6 {
520
+ @apply tw-py-6;
521
+ }
523
522
  .c-divided-container {
524
523
  @apply tw-flex-col;
525
524
  }
@@ -1,7 +1,6 @@
1
1
  import { defineComponent } from 'vue';
2
2
  import type { PropType } from 'vue';
3
3
  import type { ImageGalleryViewModel } from '@brand-page/view-models';
4
- import { contentPaddingStyle as toContentPaddingStyle } from '@brand-page/utils';
5
4
  import ComponentCommonMixin from '../mixins/component-common.mixin';
6
5
  import ImageModalMixin from '../mixins/image-modal.mixin';
7
6
  import type { ImageGalleryImageClickPayload } from './models';
@@ -35,10 +34,6 @@ export default defineComponent({
35
34
  };
36
35
  },
37
36
  computed: {
38
- contentPaddingStyle(): { paddingTop: string; paddingBottom: string } {
39
- return toContentPaddingStyle(this.viewModel);
40
- },
41
-
42
37
  getContainerStyle(): BrandPageCssStyle {
43
38
  if (this.galleryType === 'carousel') {
44
39
  const maxWidth = this.containerClientWidth
@@ -10,7 +10,7 @@
10
10
  'c-carousel-full-width':
11
11
  viewModel.isFullWidth && isPreview && galleryType === 'carousel',
12
12
  }"
13
- :style="[getContainerStyle, contentPaddingStyle]"
13
+ :style="getContainerStyle"
14
14
  >
15
15
  <component
16
16
  :is="galleryType"
@@ -2,10 +2,7 @@ import { defineComponent } from 'vue';
2
2
  import type { PropType } from 'vue';
3
3
  import type { MailingListViewModel } from '@brand-page/view-models';
4
4
  import brandPageClient from '../../clients/brand-page.client';
5
- import {
6
- getEmailValidationError,
7
- contentPaddingStyle as toContentPaddingStyle,
8
- } from '@brand-page/utils';
5
+ import { getEmailValidationError } from '@brand-page/utils';
9
6
  import type { BrandPageContext } from '@brand-page/models';
10
7
  import {
11
8
  contentSettingsTr,
@@ -64,10 +61,6 @@ export default defineComponent({
64
61
  }
65
62
  },
66
63
  computed: {
67
- contentPaddingStyle(): { paddingTop: string; paddingBottom: string } {
68
- return toContentPaddingStyle(this.viewModel);
69
- },
70
-
71
64
  hasNameError(): boolean {
72
65
  return !!this.nameError;
73
66
  },
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <section :style="contentPaddingStyle">
2
+ <section>
3
3
  <div
4
4
  v-if="show"
5
5
  class="tw-p-4"
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <div data-component="map" :style="contentPaddingStyle">
2
+ <div data-component="map">
3
3
  <div
4
4
  class="c-map"
5
5
  :class="{
@@ -22,7 +22,6 @@ import Placeholder from '../placeholder/Placeholder.vue';
22
22
  import type { MapViewModel } from '@brand-page/view-models';
23
23
  import type { BrandPageContext } from '@brand-page/models';
24
24
  import { mapTr } from '@src/composables/useTranslate';
25
- import { contentPaddingStyle as toContentPaddingStyle } from '@brand-page/utils';
26
25
  import { computed } from 'vue';
27
26
 
28
27
  interface Props {
@@ -38,9 +37,6 @@ const props = withDefaults(defineProps<Props>(), {
38
37
  });
39
38
 
40
39
  const placeId = computed(() => props.viewModel?.address?.placeId);
41
- const contentPaddingStyle = computed(() =>
42
- toContentPaddingStyle(props.viewModel),
43
- );
44
40
  </script>
45
41
  <style scoped>
46
42
  .c-map {
@@ -14,7 +14,6 @@ import type { RequestPaymentViewModel } from '../../../view-models';
14
14
  import type { PaymentRequestDetails } from '../Payment.mixin';
15
15
  import { DEFAULT_CURRENCY_SYMBOL } from '../../../constants';
16
16
  import { addOpacityToHex } from '../../../utils/color.util';
17
- import { contentPaddingStyle as toContentPaddingStyle } from '../../../utils';
18
17
  import { RGBAtoHex } from '@utils/helpers';
19
18
 
20
19
  const MAX_CUSTOM_REQUEST_CHARS = 500;
@@ -43,10 +42,6 @@ export default defineComponent({
43
42
  };
44
43
  },
45
44
  computed: {
46
- contentPaddingStyle(): { paddingTop: string; paddingBottom: string } {
47
- return toContentPaddingStyle(this.viewModel);
48
- },
49
-
50
45
  isCustomerRequestDetailsValid(): boolean {
51
46
  return (
52
47
  !this.viewModel.requestPaymentConfig.isCustomerRequestDetailsEnabled ||
@@ -1,7 +1,6 @@
1
1
  <template>
2
2
  <div
3
3
  data-component="request-payment"
4
- :style="contentPaddingStyle"
5
4
  :class="{
6
5
  'tw-my-8': context.isBrandSite,
7
6
  'tw-mb-4': context.isBrandPageOrIsBrandContact,
@@ -4,10 +4,7 @@ import { SUPPORT_ME_CUSTOM_PRODUCT_NAME } from '../../../constants';
4
4
  import type { BrandPageContext, PaymentOption } from '../../../models';
5
5
  import type { SupportMeViewModel } from '../../../view-models';
6
6
  import type { PaymentRequestDetails } from '../Payment.mixin';
7
- import {
8
- isPaymentAmountValid,
9
- contentPaddingStyle as toContentPaddingStyle,
10
- } from '../../../utils';
7
+ import { isPaymentAmountValid } from '../../../utils';
11
8
  import {
12
9
  DEFAULT_CURRENCY_SYMBOL,
13
10
  DEFAULT_CURRENCY_CODE,
@@ -36,10 +33,6 @@ export default defineComponent({
36
33
  };
37
34
  },
38
35
  computed: {
39
- contentPaddingStyle(): { paddingTop: string; paddingBottom: string } {
40
- return toContentPaddingStyle(this.viewModel);
41
- },
42
-
43
36
  isCustomAmountFieldVisible(): boolean {
44
37
  return this.viewModel.supportMeConfig.paymentOptions.some(
45
38
  (o) => o.name === SUPPORT_ME_CUSTOM_PRODUCT_NAME,
@@ -1,7 +1,6 @@
1
1
  <template>
2
2
  <div
3
3
  data-component="support-me"
4
- :style="contentPaddingStyle"
5
4
  :class="{
6
5
  'tw-my-8': context.isBrandSite,
7
6
  'tw-mb-4': context.isBrandPageOrIsBrandContact,
@@ -2,12 +2,12 @@
2
2
  <section>
3
3
  <div
4
4
  v-if="shouldShowContainer"
5
- class="tw-relative outer-container"
5
+ class="tw-relative outer-container tw-py-4"
6
6
  :class="{
7
7
  'tw-my-8': context.isBrandSite,
8
8
  'tw-mb-4': context.isBrandPageOrIsBrandContact,
9
9
  }"
10
- :style="[backgroundStyle, contentPaddingStyle]"
10
+ :style="backgroundStyle"
11
11
  >
12
12
  <div class="tw-p-4 inner-container">
13
13
  <div class="tw-flex tw-flex-col tw-gap-2">
@@ -140,7 +140,6 @@ import brandPageClient from '../../clients/brand-page.client';
140
140
  import raygunUtil from '@brand-page/utils/raygun.util';
141
141
  import { shopTr } from '@src/composables/useTranslate';
142
142
  import { useShopConfigStore } from '@shared/ecommerce-settings/store/shop-settings-store';
143
- import { contentPaddingStyle as toContentPaddingStyle } from '@brand-page/utils';
144
143
 
145
144
  const props = withDefaults(
146
145
  defineProps<{
@@ -261,10 +260,6 @@ const itemStyle = computed((): BrandPageCssStyle => {
261
260
  };
262
261
  });
263
262
 
264
- const contentPaddingStyle = computed(() =>
265
- toContentPaddingStyle(props.viewModel),
266
- );
267
-
268
263
  const backgroundStyle = computed((): any => {
269
264
  return props.viewModel.backgroundStyle;
270
265
  });
@@ -1,10 +1,11 @@
1
1
  <template>
2
2
  <div data-component="social-links">
3
3
  <div
4
+ class="tw-pb-8"
4
5
  :class="{
5
6
  'tw-mb-4': context.isBrandPageOrIsBrandContact,
6
7
  }"
7
- :style="[containerStyles, contentPaddingStyle]"
8
+ :style="containerStyles"
8
9
  style="container-type: inline-size"
9
10
  >
10
11
  <TextWrapper
@@ -13,7 +14,7 @@
13
14
  :text="title"
14
15
  element="h1"
15
16
  :class="textAlignClass"
16
- class="tw-pb-8"
17
+ class="tw-py-8"
17
18
  />
18
19
  <SocialLinksItems
19
20
  :id="id"
@@ -33,7 +34,6 @@ import TextWrapper from '../text-wrapper/TextWrapper.vue';
33
34
  import type { SocialLinksViewModel } from 'src/brand-page/view-models';
34
35
  import { SOCIAL_LINKS_ICON_DISPLAY_STYLES } from '@brand-page/models';
35
36
  import type { BrandPageContext, LinksItem } from '@brand-page/models';
36
- import { contentPaddingStyle as toContentPaddingStyle } from '@brand-page/utils';
37
37
  import { computed } from 'vue';
38
38
 
39
39
  const props = withDefaults(
@@ -51,10 +51,6 @@ const containerStyles = computed((): BrandPageCssStyle => {
51
51
  return props.viewModel.backgroundStyles || {};
52
52
  });
53
53
 
54
- const contentPaddingStyle = computed(() =>
55
- toContentPaddingStyle(props.viewModel),
56
- );
57
-
58
54
  const iconStyle = computed((): BrandPageCssStyle => {
59
55
  return props.viewModel.iconFillStyles || {};
60
56
  });