@designcrowd/fe-shared-lib 1.2.13 → 1.2.14-ast-upsell-2

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.
package/index.js CHANGED
@@ -54,3 +54,7 @@ export { default as HashRouteModal } from './src/atoms/components/Modal/HashRout
54
54
  export { default as Select } from './src/atoms/components/Select/Select.vue';
55
55
  export { default as NumberStepper } from './src/atoms/components/NumberStepper/NumberStepper.vue';
56
56
  export { default as CopyToClipboardText } from './src/atoms/components/CopyToClipboardText/CopyToClipboardText.vue';
57
+ export { default as WebsiteUpsell } from './src/atoms/components/Upsell/Website.vue';
58
+ export { default as DigitalBusinessCardUpsell } from './src/atoms/components/Upsell/DigitalBusinessCard.vue';
59
+ export { default as LinkInBioUpsell } from './src/atoms/components/Upsell/LinkInBio.vue';
60
+ export { default as UpgradeWebsiteUpsell } from './src/atoms/components/Upsell/UpgradeWebsite.vue';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@designcrowd/fe-shared-lib",
3
- "version": "1.2.13",
3
+ "version": "1.2.14-ast-upsell-2",
4
4
  "scripts": {
5
5
  "start": "run-p storybook watch:translation",
6
6
  "build": "npm run build:css --production",
@@ -699,6 +699,9 @@ video {
699
699
  .theme-brandCrowd .tw-mb-4 {
700
700
  margin-bottom: 1rem;
701
701
  }
702
+ .theme-brandCrowd .tw-mb-5 {
703
+ margin-bottom: 1.25rem;
704
+ }
702
705
  .theme-brandCrowd .tw-mb-6 {
703
706
  margin-bottom: 1.5rem;
704
707
  }
@@ -756,6 +759,9 @@ video {
756
759
  .theme-brandCrowd .tw-mt-4 {
757
760
  margin-top: 1rem;
758
761
  }
762
+ .theme-brandCrowd .tw-mt-5 {
763
+ margin-top: 1.25rem;
764
+ }
759
765
  .theme-brandCrowd .tw-mt-8 {
760
766
  margin-top: 2rem;
761
767
  }
@@ -923,6 +929,9 @@ video {
923
929
  .theme-brandCrowd .tw-max-w-xl {
924
930
  max-width: 36rem;
925
931
  }
932
+ .theme-brandCrowd .tw-flex-1 {
933
+ flex: 1 1 0%;
934
+ }
926
935
  .theme-brandCrowd .tw-flex-auto {
927
936
  flex: 1 1 auto;
928
937
  }
@@ -1966,6 +1975,11 @@ video {
1966
1975
  --tw-drop-shadow: drop-shadow(0 1px 1px rgb(0 0 0 / 0.05));
1967
1976
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
1968
1977
  }
1978
+ .theme-brandCrowd .tw-transition-all {
1979
+ transition-property: all;
1980
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
1981
+ transition-duration: 150ms;
1982
+ }
1969
1983
  .theme-brandCrowd .tw-transition-colors {
1970
1984
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
1971
1985
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
@@ -2141,10 +2155,20 @@ video {
2141
2155
  outline: 2px solid transparent;
2142
2156
  outline-offset: 2px;
2143
2157
  }
2158
+ .theme-brandCrowd .tw-group:hover .group-hover\:tw-scale-105 {
2159
+ --tw-scale-x: 1.05;
2160
+ --tw-scale-y: 1.05;
2161
+ 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));
2162
+ }
2144
2163
  .theme-brandCrowd .tw-group:hover .group-hover\:tw-text-info-500 {
2145
2164
  --tw-text-opacity: 1;
2146
2165
  color: rgb(0 151 215 / var(--tw-text-opacity));
2147
2166
  }
2167
+ .theme-brandCrowd .tw-group:hover .group-hover\:tw-shadow {
2168
+ --tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);
2169
+ --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);
2170
+ box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
2171
+ }
2148
2172
  @media (min-width: 640px) {
2149
2173
  .theme-brandCrowd .sm\:tw-absolute {
2150
2174
  position: absolute;
@@ -699,6 +699,9 @@ video {
699
699
  .theme-brandPage .tw-mb-4 {
700
700
  margin-bottom: 1rem;
701
701
  }
702
+ .theme-brandPage .tw-mb-5 {
703
+ margin-bottom: 1.25rem;
704
+ }
702
705
  .theme-brandPage .tw-mb-6 {
703
706
  margin-bottom: 1.5rem;
704
707
  }
@@ -756,6 +759,9 @@ video {
756
759
  .theme-brandPage .tw-mt-4 {
757
760
  margin-top: 1rem;
758
761
  }
762
+ .theme-brandPage .tw-mt-5 {
763
+ margin-top: 1.25rem;
764
+ }
759
765
  .theme-brandPage .tw-mt-8 {
760
766
  margin-top: 2rem;
761
767
  }
@@ -923,6 +929,9 @@ video {
923
929
  .theme-brandPage .tw-max-w-xl {
924
930
  max-width: 36rem;
925
931
  }
932
+ .theme-brandPage .tw-flex-1 {
933
+ flex: 1 1 0%;
934
+ }
926
935
  .theme-brandPage .tw-flex-auto {
927
936
  flex: 1 1 auto;
928
937
  }
@@ -1754,6 +1763,11 @@ video {
1754
1763
  --tw-drop-shadow: drop-shadow(0 1px 1px rgb(0 0 0 / 0.05));
1755
1764
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
1756
1765
  }
1766
+ .theme-brandPage .tw-transition-all {
1767
+ transition-property: all;
1768
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
1769
+ transition-duration: 150ms;
1770
+ }
1757
1771
  .theme-brandPage .tw-transition-colors {
1758
1772
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
1759
1773
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
@@ -1829,6 +1843,16 @@ video {
1829
1843
  outline: 2px solid transparent;
1830
1844
  outline-offset: 2px;
1831
1845
  }
1846
+ .theme-brandPage .tw-group:hover .group-hover\:tw-scale-105 {
1847
+ --tw-scale-x: 1.05;
1848
+ --tw-scale-y: 1.05;
1849
+ 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));
1850
+ }
1851
+ .theme-brandPage .tw-group:hover .group-hover\:tw-shadow {
1852
+ --tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);
1853
+ --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);
1854
+ box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
1855
+ }
1832
1856
  @media (min-width: 640px) {
1833
1857
  .theme-brandPage .sm\:tw-absolute {
1834
1858
  position: absolute;
@@ -699,6 +699,9 @@ video {
699
699
  .theme-crazyDomains .tw-mb-4 {
700
700
  margin-bottom: 1rem;
701
701
  }
702
+ .theme-crazyDomains .tw-mb-5 {
703
+ margin-bottom: 1.25rem;
704
+ }
702
705
  .theme-crazyDomains .tw-mb-6 {
703
706
  margin-bottom: 1.5rem;
704
707
  }
@@ -756,6 +759,9 @@ video {
756
759
  .theme-crazyDomains .tw-mt-4 {
757
760
  margin-top: 1rem;
758
761
  }
762
+ .theme-crazyDomains .tw-mt-5 {
763
+ margin-top: 1.25rem;
764
+ }
759
765
  .theme-crazyDomains .tw-mt-8 {
760
766
  margin-top: 2rem;
761
767
  }
@@ -923,6 +929,9 @@ video {
923
929
  .theme-crazyDomains .tw-max-w-xl {
924
930
  max-width: 36rem;
925
931
  }
932
+ .theme-crazyDomains .tw-flex-1 {
933
+ flex: 1 1 0%;
934
+ }
926
935
  .theme-crazyDomains .tw-flex-auto {
927
936
  flex: 1 1 auto;
928
937
  }
@@ -1966,6 +1975,11 @@ video {
1966
1975
  --tw-drop-shadow: drop-shadow(0 1px 1px rgb(0 0 0 / 0.05));
1967
1976
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
1968
1977
  }
1978
+ .theme-crazyDomains .tw-transition-all {
1979
+ transition-property: all;
1980
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
1981
+ transition-duration: 150ms;
1982
+ }
1969
1983
  .theme-crazyDomains .tw-transition-colors {
1970
1984
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
1971
1985
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
@@ -2141,10 +2155,20 @@ video {
2141
2155
  outline: 2px solid transparent;
2142
2156
  outline-offset: 2px;
2143
2157
  }
2158
+ .theme-crazyDomains .tw-group:hover .group-hover\:tw-scale-105 {
2159
+ --tw-scale-x: 1.05;
2160
+ --tw-scale-y: 1.05;
2161
+ 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));
2162
+ }
2144
2163
  .theme-crazyDomains .tw-group:hover .group-hover\:tw-text-info-500 {
2145
2164
  --tw-text-opacity: 1;
2146
2165
  color: rgb(0 161 239 / var(--tw-text-opacity));
2147
2166
  }
2167
+ .theme-crazyDomains .tw-group:hover .group-hover\:tw-shadow {
2168
+ --tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);
2169
+ --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);
2170
+ box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
2171
+ }
2148
2172
  @media (min-width: 640px) {
2149
2173
  .theme-crazyDomains .sm\:tw-absolute {
2150
2174
  position: absolute;
@@ -699,6 +699,9 @@ video {
699
699
  .theme-designCom .tw-mb-4 {
700
700
  margin-bottom: 1rem;
701
701
  }
702
+ .theme-designCom .tw-mb-5 {
703
+ margin-bottom: 1.25rem;
704
+ }
702
705
  .theme-designCom .tw-mb-6 {
703
706
  margin-bottom: 1.5rem;
704
707
  }
@@ -756,6 +759,9 @@ video {
756
759
  .theme-designCom .tw-mt-4 {
757
760
  margin-top: 1rem;
758
761
  }
762
+ .theme-designCom .tw-mt-5 {
763
+ margin-top: 1.25rem;
764
+ }
759
765
  .theme-designCom .tw-mt-8 {
760
766
  margin-top: 2rem;
761
767
  }
@@ -923,6 +929,9 @@ video {
923
929
  .theme-designCom .tw-max-w-xl {
924
930
  max-width: 36rem;
925
931
  }
932
+ .theme-designCom .tw-flex-1 {
933
+ flex: 1 1 0%;
934
+ }
926
935
  .theme-designCom .tw-flex-auto {
927
936
  flex: 1 1 auto;
928
937
  }
@@ -1966,6 +1975,11 @@ video {
1966
1975
  --tw-drop-shadow: drop-shadow(0 1px 1px rgb(0 0 0 / 0.05));
1967
1976
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
1968
1977
  }
1978
+ .theme-designCom .tw-transition-all {
1979
+ transition-property: all;
1980
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
1981
+ transition-duration: 150ms;
1982
+ }
1969
1983
  .theme-designCom .tw-transition-colors {
1970
1984
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
1971
1985
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
@@ -2141,10 +2155,20 @@ video {
2141
2155
  outline: 2px solid transparent;
2142
2156
  outline-offset: 2px;
2143
2157
  }
2158
+ .theme-designCom .tw-group:hover .group-hover\:tw-scale-105 {
2159
+ --tw-scale-x: 1.05;
2160
+ --tw-scale-y: 1.05;
2161
+ 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));
2162
+ }
2144
2163
  .theme-designCom .tw-group:hover .group-hover\:tw-text-info-500 {
2145
2164
  --tw-text-opacity: 1;
2146
2165
  color: rgb(63 89 246 / var(--tw-text-opacity));
2147
2166
  }
2167
+ .theme-designCom .tw-group:hover .group-hover\:tw-shadow {
2168
+ --tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);
2169
+ --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);
2170
+ box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
2171
+ }
2148
2172
  @media (min-width: 640px) {
2149
2173
  .theme-designCom .sm\:tw-absolute {
2150
2174
  position: absolute;
@@ -699,6 +699,9 @@ video {
699
699
  .theme-designCrowd .tw-mb-4 {
700
700
  margin-bottom: 1rem;
701
701
  }
702
+ .theme-designCrowd .tw-mb-5 {
703
+ margin-bottom: 1.25rem;
704
+ }
702
705
  .theme-designCrowd .tw-mb-6 {
703
706
  margin-bottom: 1.5rem;
704
707
  }
@@ -756,6 +759,9 @@ video {
756
759
  .theme-designCrowd .tw-mt-4 {
757
760
  margin-top: 1rem;
758
761
  }
762
+ .theme-designCrowd .tw-mt-5 {
763
+ margin-top: 1.25rem;
764
+ }
759
765
  .theme-designCrowd .tw-mt-8 {
760
766
  margin-top: 2rem;
761
767
  }
@@ -923,6 +929,9 @@ video {
923
929
  .theme-designCrowd .tw-max-w-xl {
924
930
  max-width: 36rem;
925
931
  }
932
+ .theme-designCrowd .tw-flex-1 {
933
+ flex: 1 1 0%;
934
+ }
926
935
  .theme-designCrowd .tw-flex-auto {
927
936
  flex: 1 1 auto;
928
937
  }
@@ -1966,6 +1975,11 @@ video {
1966
1975
  --tw-drop-shadow: drop-shadow(0 1px 1px rgb(0 0 0 / 0.05));
1967
1976
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
1968
1977
  }
1978
+ .theme-designCrowd .tw-transition-all {
1979
+ transition-property: all;
1980
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
1981
+ transition-duration: 150ms;
1982
+ }
1969
1983
  .theme-designCrowd .tw-transition-colors {
1970
1984
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
1971
1985
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
@@ -2141,10 +2155,20 @@ video {
2141
2155
  outline: 2px solid transparent;
2142
2156
  outline-offset: 2px;
2143
2157
  }
2158
+ .theme-designCrowd .tw-group:hover .group-hover\:tw-scale-105 {
2159
+ --tw-scale-x: 1.05;
2160
+ --tw-scale-y: 1.05;
2161
+ 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));
2162
+ }
2144
2163
  .theme-designCrowd .tw-group:hover .group-hover\:tw-text-info-500 {
2145
2164
  --tw-text-opacity: 1;
2146
2165
  color: rgb(17 151 235 / var(--tw-text-opacity));
2147
2166
  }
2167
+ .theme-designCrowd .tw-group:hover .group-hover\:tw-shadow {
2168
+ --tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);
2169
+ --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);
2170
+ box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
2171
+ }
2148
2172
  @media (min-width: 640px) {
2149
2173
  .theme-designCrowd .sm\:tw-absolute {
2150
2174
  position: absolute;
@@ -15,7 +15,7 @@
15
15
  :class="[
16
16
  {
17
17
  'tw-w-full': !isImageMode,
18
- 'tw-p-4': !simple,
18
+ 'tw-p-4': !removeHorizontalPadding && !simple,
19
19
  'tw-max-w-md': size === 'md',
20
20
  'tw-max-w-xl': size === 'xl',
21
21
  'tw-max-w-2xl': !size && !isImageMode,
@@ -91,6 +91,11 @@ export default {
91
91
  required: false,
92
92
  default: false,
93
93
  },
94
+ removeHorizontalPadding: {
95
+ type: Boolean,
96
+ required: false,
97
+ default: false,
98
+ },
94
99
  visible: {
95
100
  type: Boolean,
96
101
  required: false,
@@ -52,8 +52,8 @@ export default {
52
52
  },
53
53
  data() {
54
54
  return {
55
- domainCreditUsed: priceTr('domainCreditUsed'),
56
- free: priceTr('free'),
55
+ domainCreditUsed: priceTr('domainCreditUsed') ?? 'Domain credit used',
56
+ free: priceTr('free') ?? 'Free',
57
57
  };
58
58
  },
59
59
  computed: {
@@ -0,0 +1,61 @@
1
+ <template>
2
+ <div class="tw-m-5">
3
+ <h3 class="tw-text-center tw-text-2xl tw-font-bold tw-mb-2">
4
+ {{ upsellProps.title }}
5
+ </h3>
6
+ <div class="tw-flex tw-justify-center tw-items-center">
7
+ <figure
8
+ class="tw-relative tw-block tw-overflow-hidden tw-max-h-full group-hover:tw-scale-105 tw-transition-all tw-h-full group-hover:tw-shadow tw-w-72"
9
+ >
10
+ <img :src="upsellProps.imageUrl" alt="" loading="lazy" class="tw-w-full tw-rounded-md tw-h-full" />
11
+ </figure>
12
+ </div>
13
+ <div class="tw-text-center tw-mb-5 tw-text-grayscale-600 tw-mt-2">
14
+ {{ upsellProps.subtitle }}
15
+ </div>
16
+ <div v-if="upsellProps.checkoutUrl" class="tw-flex tw-gap-4 tw-mt-5">
17
+ <Button
18
+ :full-width="true"
19
+ variant="primary"
20
+ :label="upgradeNowLabel"
21
+ classes="tw-flex-1"
22
+ :url="upsellProps.checkoutUrl"
23
+ />
24
+ </div>
25
+ <div v-else class="tw-flex tw-justify-center tw-items-center tw-mt-5">
26
+ <Button
27
+ :full-width="true"
28
+ variant="success"
29
+ :label="getStartedLabel"
30
+ classes="tw-w-full"
31
+ :url="upsellProps.url"
32
+ />
33
+ </div>
34
+ </div>
35
+ </template>
36
+ <script>
37
+ import Button from '../../../atoms/components/Button/Button.vue';
38
+ import { publishBrandPageModalTr } from '../../../useSharedLibTranslate';
39
+
40
+ export default {
41
+ components: {
42
+ Button,
43
+ },
44
+ props: {
45
+ upsellProps: {
46
+ type: Object,
47
+ required: true,
48
+ },
49
+ },
50
+ data() {
51
+ return {
52
+ upgradeNowLabel: publishBrandPageModalTr('upgradeNowLabel')
53
+ ? publishBrandPageModalTr('upgradeNowLabel')
54
+ : 'Upgrade Now',
55
+ getStartedLabel: publishBrandPageModalTr('getStartedLabel')
56
+ ? publishBrandPageModalTr('getStartedLabel')
57
+ : 'Get Started',
58
+ };
59
+ },
60
+ };
61
+ </script>
@@ -0,0 +1,61 @@
1
+ <template>
2
+ <div class="tw-m-5">
3
+ <h3 class="tw-text-center tw-text-2xl tw-font-bold tw-mb-2">
4
+ {{ upsellProps.title }}
5
+ </h3>
6
+ <div class="tw-flex tw-justify-center tw-items-center">
7
+ <figure
8
+ class="tw-relative tw-block tw-overflow-hidden tw-max-h-full group-hover:tw-scale-105 tw-transition-all tw-h-full group-hover:tw-shadow tw-w-72"
9
+ >
10
+ <img :src="upsellProps.imageUrl" alt="" loading="lazy" class="tw-w-full tw-rounded-md tw-h-full" />
11
+ </figure>
12
+ </div>
13
+ <div class="tw-text-center tw-mb-5 tw-text-grayscale-600 tw-mt-2">
14
+ {{ upsellProps.subtitle }}
15
+ </div>
16
+ <div v-if="upsellProps.checkoutUrl" class="tw-flex tw-gap-4 tw-mt-5">
17
+ <Button
18
+ :full-width="true"
19
+ variant="primary"
20
+ :label="upgradeNowLabel"
21
+ classes="tw-flex-1"
22
+ :url="upsellProps.checkoutUrl"
23
+ />
24
+ </div>
25
+ <div v-else class="tw-flex tw-justify-center tw-items-center tw-mt-5">
26
+ <Button
27
+ :full-width="true"
28
+ variant="success"
29
+ :label="getStartedLabel"
30
+ classes="tw-w-full"
31
+ :url="upsellProps.url"
32
+ />
33
+ </div>
34
+ </div>
35
+ </template>
36
+ <script>
37
+ import Button from '../../../atoms/components/Button/Button.vue';
38
+ import { publishBrandPageModalTr } from '../../../useSharedLibTranslate';
39
+
40
+ export default {
41
+ components: {
42
+ Button,
43
+ },
44
+ props: {
45
+ upsellProps: {
46
+ type: Object,
47
+ required: true,
48
+ },
49
+ },
50
+ data() {
51
+ return {
52
+ upgradeNowLabel: publishBrandPageModalTr('upgradeNowLabel')
53
+ ? publishBrandPageModalTr('upgradeNowLabel')
54
+ : 'Upgrade Now',
55
+ getStartedLabel: publishBrandPageModalTr('getStartedLabel')
56
+ ? publishBrandPageModalTr('getStartedLabel')
57
+ : 'Get Started',
58
+ };
59
+ },
60
+ };
61
+ </script>
@@ -0,0 +1,61 @@
1
+ <template>
2
+ <div class="tw-m-5">
3
+ <h3 class="tw-text-center tw-text-2xl tw-font-bold tw-mb-2">
4
+ {{ upsellProps.title }}
5
+ </h3>
6
+ <div class="tw-flex tw-justify-center tw-items-center">
7
+ <figure
8
+ class="tw-relative tw-block tw-overflow-hidden tw-max-h-full group-hover:tw-scale-105 tw-transition-all tw-h-full group-hover:tw-shadow tw-w-72"
9
+ >
10
+ <img :src="upsellProps.imageUrl" alt="" loading="lazy" class="tw-w-full tw-rounded-md tw-h-full" />
11
+ </figure>
12
+ </div>
13
+ <div class="tw-text-center tw-mb-5 tw-text-grayscale-600 tw-mt-2">
14
+ {{ upsellProps.subtitle }}
15
+ </div>
16
+ <div v-if="upsellProps.checkoutUrl" class="tw-flex tw-gap-4 tw-mt-5">
17
+ <Button
18
+ :full-width="true"
19
+ variant="primary"
20
+ :label="upgradeNowLabel"
21
+ classes="tw-flex-1"
22
+ :url="upsellProps.checkoutUrl"
23
+ />
24
+ </div>
25
+ <div v-else class="tw-flex tw-justify-center tw-items-center tw-mt-5">
26
+ <Button
27
+ :full-width="true"
28
+ variant="success"
29
+ :label="getStartedLabel"
30
+ classes="tw-w-full"
31
+ :url="upsellProps.url"
32
+ />
33
+ </div>
34
+ </div>
35
+ </template>
36
+ <script>
37
+ import Button from '../../../atoms/components/Button/Button.vue';
38
+ import { publishBrandPageModalTr } from '../../../useSharedLibTranslate';
39
+
40
+ export default {
41
+ components: {
42
+ Button,
43
+ },
44
+ props: {
45
+ upsellProps: {
46
+ type: Object,
47
+ required: true,
48
+ },
49
+ },
50
+ data() {
51
+ return {
52
+ upgradeNowLabel: publishBrandPageModalTr('upgradeNowLabel')
53
+ ? publishBrandPageModalTr('upgradeNowLabel')
54
+ : 'Upgrade Now',
55
+ getStartedLabel: publishBrandPageModalTr('getStartedLabel')
56
+ ? publishBrandPageModalTr('getStartedLabel')
57
+ : 'Get Started',
58
+ };
59
+ },
60
+ };
61
+ </script>
@@ -0,0 +1,61 @@
1
+ <template>
2
+ <div class="tw-m-5">
3
+ <h3 class="tw-text-center tw-text-2xl tw-font-bold tw-mb-2">
4
+ {{ upsellProps.title }}
5
+ </h3>
6
+ <div class="tw-flex tw-justify-center tw-items-center">
7
+ <figure
8
+ class="tw-relative tw-block tw-overflow-hidden tw-max-h-full group-hover:tw-scale-105 tw-transition-all tw-h-full group-hover:tw-shadow tw-w-72"
9
+ >
10
+ <img :src="upsellProps.imageUrl" alt="" loading="lazy" class="tw-w-full tw-rounded-md tw-h-full" />
11
+ </figure>
12
+ </div>
13
+ <div class="tw-text-center tw-mb-5 tw-text-grayscale-600 tw-mt-2">
14
+ {{ upsellProps.subtitle }}
15
+ </div>
16
+ <div v-if="upsellProps.checkoutUrl" class="tw-flex tw-gap-4 tw-mt-5">
17
+ <Button
18
+ :full-width="true"
19
+ variant="primary"
20
+ :label="upgradeNowLabel"
21
+ classes="tw-flex-1"
22
+ :url="upsellProps.checkoutUrl"
23
+ />
24
+ </div>
25
+ <div v-else class="tw-flex tw-justify-center tw-items-center tw-mt-5">
26
+ <Button
27
+ :full-width="true"
28
+ variant="success"
29
+ :label="getStartedLabel"
30
+ classes="tw-w-full"
31
+ :url="upsellProps.url"
32
+ />
33
+ </div>
34
+ </div>
35
+ </template>
36
+ <script>
37
+ import Button from '../../../atoms/components/Button/Button.vue';
38
+ import { publishBrandPageModalTr } from '../../../useSharedLibTranslate';
39
+
40
+ export default {
41
+ components: {
42
+ Button,
43
+ },
44
+ props: {
45
+ upsellProps: {
46
+ type: Object,
47
+ required: true,
48
+ },
49
+ },
50
+ data() {
51
+ return {
52
+ upgradeNowLabel: publishBrandPageModalTr('upgradeNowLabel')
53
+ ? publishBrandPageModalTr('upgradeNowLabel')
54
+ : 'Upgrade Now',
55
+ getStartedLabel: publishBrandPageModalTr('getStartedLabel')
56
+ ? publishBrandPageModalTr('getStartedLabel')
57
+ : 'Get Started',
58
+ };
59
+ },
60
+ };
61
+ </script>
@@ -29,7 +29,9 @@
29
29
  "copySuccessLabel": "Copied!",
30
30
  "publishedSuccessDescriptionLabel": "Buy matching domain name for your brand",
31
31
  "hasAlreadyPurchasedDomainCloseButtonLabel": "No thanks, maybe later",
32
- "selectDomainDropdownPlaceholder": "Select domain name"
32
+ "selectDomainDropdownPlaceholder": "Select domain name",
33
+ "upgradeNowLabel": "Upgrade Now",
34
+ "getStartedLabel": "Get Started"
33
35
  },
34
36
  "sellDomainNameList": {
35
37
  "freeDomainButtonLabel": "Free Domain",
@@ -1,5 +1,9 @@
1
1
  import Card from './PublishBrandPageCard.vue';
2
2
  import PublishBrandPageModal from './PublishBrandPageModal.vue';
3
+ import UpgradeWebsite from '../../../atoms/components/Upsell/UpgradeWebsite.vue';
4
+ import Website from '../../../atoms/components/Upsell/Website.vue';
5
+ import DigitalBusinessCard from '../../../atoms/components/Upsell/DigitalBusinessCard.vue';
6
+ import LinkInBio from '../../../atoms/components/Upsell/LinkInBio.vue';
3
7
  import { domains } from './__fixtures__/data';
4
8
  import { setSharedLibLocaleAsync } from '../../../useSharedLibTranslate';
5
9
 
@@ -224,3 +228,43 @@ export const Free = () => {
224
228
  };
225
229
 
226
230
  Free.loaders = [loadTranslationAsync];
231
+
232
+ export const PublishedNoDomainsABtestUpgrade = () => {
233
+ return {
234
+ components: {
235
+ PublishBrandPageModal,
236
+ UpgradeWebsite
237
+ },
238
+ data() {
239
+ return {
240
+ domains: [],
241
+ upgradeProps: {
242
+ title: 'Upgrade to premium website',
243
+ subtitle: 'Unlock all advanced features for more flexibility',
244
+ imageUrl: 'https://bcassetcdn.com/assets/images/modal/onboarding-upsell-website@2x.en-us.png',
245
+ },
246
+ };
247
+ },
248
+ template: `
249
+ <PublishBrandPageModal
250
+ visible
251
+ :is-design-com="false"
252
+ is-published
253
+ should-publish
254
+ :domains="domains"
255
+ brand-page-display-name='Website'
256
+ brand-page-slug='test-slug'
257
+ brand-page-base-url="https://brand.site"
258
+ radio-value="slug"
259
+ show-upsell-rotation
260
+ brand-page-url="https://brand.site/test-slug">
261
+ <template #upsellContainer>
262
+ <UpgradeWebsite
263
+ :upsell-props="upgradeProps"
264
+ />
265
+ </PublishBrandPageModal>
266
+ `,
267
+ };
268
+ };
269
+
270
+ PublishedNoDomainsABtestUpgrade.loaders = [loadTranslationAsync];