@designcrowd/fe-shared-lib 1.4.7-jj-3 → 1.4.8-promocardv0

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 (164) hide show
  1. package/dist/css/tailwind-brandCrowd.css +80 -6
  2. package/dist/css/tailwind-brandPage.css +76 -6
  3. package/dist/css/tailwind-crazyDomains.css +80 -6
  4. package/dist/css/tailwind-designCom.css +80 -6
  5. package/dist/css/tailwind-designCrowd.css +80 -6
  6. package/index.js +1 -1
  7. package/package.json +2 -1
  8. package/public/css/tailwind-brandCrowd.css +65 -0
  9. package/public/css/tailwind-brandPage.css +65 -0
  10. package/public/css/tailwind-crazyDomains.css +65 -0
  11. package/public/css/tailwind-designCom.css +65 -0
  12. package/public/css/tailwind-designCrowd.css +65 -0
  13. package/src/atoms/components/Carousel/Carousel.fixtures.js +18 -0
  14. package/src/atoms/components/Carousel/carousel.stories.js +448 -179
  15. package/src/atoms/components/PromoCard/PromoCard.stories.ts +265 -0
  16. package/src/atoms/components/PromoCard/PromoCard.vue +89 -0
  17. package/src/experiences/components/PublishBrandPageModal/PublishBrandPageModal.vue +297 -96
  18. package/tailwind.config.js +7 -8
  19. package/.storybook-static/assets/Auth-CV5AmoX8.css +0 -1
  20. package/.storybook-static/assets/Auth.stories-CX3sjxh5.js +0 -490
  21. package/.storybook-static/assets/AuthCrazyDomains.stories-Didj_VFa.js +0 -73
  22. package/.storybook-static/assets/Button-5UzSGUF6.css +0 -1
  23. package/.storybook-static/assets/Button-DtVlr_q3.js +0 -1
  24. package/.storybook-static/assets/ButtonGroup-Dfr7bNL2.css +0 -1
  25. package/.storybook-static/assets/ButtonGroup.stories-4EQk-ktb.js +0 -503
  26. package/.storybook-static/assets/ButtonPrimary-Bu6bXb_c.css +0 -1
  27. package/.storybook-static/assets/ButtonPrimary-DG9wNod9.js +0 -1
  28. package/.storybook-static/assets/Buttons.stories-B_KpeCzt.js +0 -761
  29. package/.storybook-static/assets/ButtonsCrazyDomains.stories-oZtahAmR.js +0 -199
  30. package/.storybook-static/assets/Checkbox.mixin-DkHpdvGa.js +0 -1
  31. package/.storybook-static/assets/Checkbox.stories-C67RL0ut.js +0 -203
  32. package/.storybook-static/assets/Checktile.stories-DN2wfzd6.js +0 -88
  33. package/.storybook-static/assets/CollapsiblePanel.stories-BkzrqfVG.js +0 -39
  34. package/.storybook-static/assets/ColorPicker.stories-85BQwpyF.js +0 -73
  35. package/.storybook-static/assets/CopyToClipboardText.stories-Csh5nVRs.js +0 -32
  36. package/.storybook-static/assets/Dropdown.stories-NNlxNopk.js +0 -159
  37. package/.storybook-static/assets/DropdownItem-CDX_V6Mi.js +0 -1
  38. package/.storybook-static/assets/DropdownItem-CLNmWtKh.css +0 -1
  39. package/.storybook-static/assets/FormControl.mixin-_gXRExB7.js +0 -1
  40. package/.storybook-static/assets/HashRouteModal.stories-Dy1_nLTJ.js +0 -64
  41. package/.storybook-static/assets/HelloBar-z54fob0q.js +0 -1
  42. package/.storybook-static/assets/HelloBar.stories-ClJ9_KRK.js +0 -342
  43. package/.storybook-static/assets/Icon-8mZGP41G.js +0 -144
  44. package/.storybook-static/assets/Icon.stories-BcXMvpuh.js +0 -126
  45. package/.storybook-static/assets/Icon.stories-D6ECVMta.js +0 -751
  46. package/.storybook-static/assets/Loader-D61Ki9P1.js +0 -1
  47. package/.storybook-static/assets/LogoBusinessBrandColours-B1_8hw0H.js +0 -1
  48. package/.storybook-static/assets/LogoBusinessBrandColours-DEFhAyxR.css +0 -1
  49. package/.storybook-static/assets/LogoBusinessBrandColours.stories-CIWe9ndn.js +0 -36
  50. package/.storybook-static/assets/Masonry-C2MNiGg0.css +0 -1
  51. package/.storybook-static/assets/Masonry.stories-CDT8kZCv.js +0 -71
  52. package/.storybook-static/assets/Modal-BQrpXSGA.js +0 -1
  53. package/.storybook-static/assets/Modal-BvVMN71n.css +0 -1
  54. package/.storybook-static/assets/Modal.stories-BycF7YL6.js +0 -345
  55. package/.storybook-static/assets/Notice.stories-BufkrC1b.js +0 -222
  56. package/.storybook-static/assets/NumberStepper-Blffv09R.css +0 -1
  57. package/.storybook-static/assets/NumberStepper.stories-6_y_lEgC.js +0 -64
  58. package/.storybook-static/assets/PaymentConfigList-wI1eTv5x.css +0 -1
  59. package/.storybook-static/assets/PaymentConfigList.stories-BlzzKrzz.js +0 -126
  60. package/.storybook-static/assets/Picture-Cq76CaoK.js +0 -1
  61. package/.storybook-static/assets/Picture.stories-BDqRm9_g.js +0 -119
  62. package/.storybook-static/assets/Pill-BsMeJhV9.js +0 -1
  63. package/.storybook-static/assets/Pill.stories-DUvzbtnS.js +0 -18
  64. package/.storybook-static/assets/PillBar-os4mJV3M.css +0 -1
  65. package/.storybook-static/assets/PillBar.stories-BUMLXBij.js +0 -41
  66. package/.storybook-static/assets/Price-DKOwLeD0.js +0 -1
  67. package/.storybook-static/assets/Price.stories-DlqrNUWI.js +0 -221
  68. package/.storybook-static/assets/PublishBrandPageModal-CLU8-If3.css +0 -1
  69. package/.storybook-static/assets/PublishBrandPageModal.stories-Dqobvq-n.js +0 -273
  70. package/.storybook-static/assets/SearchBar.stories-_wPX3-Rl.js +0 -12
  71. package/.storybook-static/assets/Select-Dw-zvSUg.css +0 -1
  72. package/.storybook-static/assets/Select.stories-BWINGxdY.js +0 -108
  73. package/.storybook-static/assets/SellDomainNameList.fixtures-LC6fjr_b.js +0 -1
  74. package/.storybook-static/assets/SellDomainNameListModal-ByK_ak0A.js +0 -1
  75. package/.storybook-static/assets/SellDomainNameListModal-CdfyEX1a.css +0 -1
  76. package/.storybook-static/assets/SellDomainNameListModal.stories-DrL8w2AY.js +0 -71
  77. package/.storybook-static/assets/SellDomainNameListSearchResult-1WuAKfzI.css +0 -1
  78. package/.storybook-static/assets/SellDomainNameListSearchResult-By0IpIM_.js +0 -1
  79. package/.storybook-static/assets/SellDomainNameSearchWithResults-BttjI4PH.js +0 -1
  80. package/.storybook-static/assets/SellDomainNameSearchWithResults.stories-Dm1Q8Cza.js +0 -37
  81. package/.storybook-static/assets/SellDomainNameWidget.stories-CKoz3WnZ.js +0 -36
  82. package/.storybook-static/assets/SignIn-DNYeJu86.css +0 -1
  83. package/.storybook-static/assets/SignIn-Dt8OJr0J.js +0 -1
  84. package/.storybook-static/assets/Slider-Cog2FFdj.css +0 -1
  85. package/.storybook-static/assets/Slider.stories-08DN2SFB.js +0 -141
  86. package/.storybook-static/assets/StarRating-BtKh7pzm.css +0 -1
  87. package/.storybook-static/assets/StarRating.stories-BEIj9ufA.js +0 -45
  88. package/.storybook-static/assets/TabMenu.stories-D9f0pyZI.js +0 -47
  89. package/.storybook-static/assets/TextCopyField-B04vTGbG.js +0 -1
  90. package/.storybook-static/assets/TextCopyField.stories-KD0WUWzA.js +0 -47
  91. package/.storybook-static/assets/TextInput-JK1M0hv6.js +0 -1
  92. package/.storybook-static/assets/TextInput.stories-BO0eQqBY.js +0 -233
  93. package/.storybook-static/assets/Textarea.stories-Bcn4sCkV.js +0 -207
  94. package/.storybook-static/assets/Toggle.stories-CuTFLoNh.js +0 -161
  95. package/.storybook-static/assets/Tooltip-DcSbUh5f.js +0 -1
  96. package/.storybook-static/assets/Tooltip-DyXIgFQH.css +0 -1
  97. package/.storybook-static/assets/Tooltip.stories-B0I_PBGG.js +0 -953
  98. package/.storybook-static/assets/UploadYourLogoApplication-EyTEQx-x.css +0 -9
  99. package/.storybook-static/assets/UploadYourLogoApplication.stories-Dixp1ynI.js +0 -194
  100. package/.storybook-static/assets/UploadYourLogoDropzone-DQqACf-e.css +0 -1
  101. package/.storybook-static/assets/UploadYourLogoDropzone-DouZtNvi.js +0 -24
  102. package/.storybook-static/assets/UploadYourLogoDropzone.stories-BHYeu4gz.js +0 -55
  103. package/.storybook-static/assets/UploadedLogoSearchResultCard.stories-D1KR63O4.js +0 -79
  104. package/.storybook-static/assets/_commonjsHelpers-D6-XlEtG.js +0 -1
  105. package/.storybook-static/assets/_plugin-vue_export-helper-DlAUqK2U.js +0 -1
  106. package/.storybook-static/assets/api-lSJGRrF2.js +0 -1
  107. package/.storybook-static/assets/axe-nGVJxRof.js +0 -30
  108. package/.storybook-static/assets/brand-crowd-api.client-DiPM1Wo-.js +0 -1
  109. package/.storybook-static/assets/bundled-translations-BZ57czTo.js +0 -1
  110. package/.storybook-static/assets/bundled-translations.de-DE-DXggTXB2.js +0 -1
  111. package/.storybook-static/assets/bundled-translations.es-ES-DtMmvicd.js +0 -1
  112. package/.storybook-static/assets/bundled-translations.fr-FR-BrQqbieG.js +0 -1
  113. package/.storybook-static/assets/bundled-translations.pt-PT-CpiWEAtr.js +0 -1
  114. package/.storybook-static/assets/carousel-CMMZ5MZ-.css +0 -1
  115. package/.storybook-static/assets/carousel.stories-o3eu2Qyc.js +0 -374
  116. package/.storybook-static/assets/event-constants-CMO9VQVu.js +0 -1
  117. package/.storybook-static/assets/iframe-C86bI_2U.js +0 -1126
  118. package/.storybook-static/assets/index-Bw-gCGc_.js +0 -6
  119. package/.storybook-static/assets/index-DhkYCT1V.js +0 -29
  120. package/.storybook-static/assets/matchers-7Z3WT2CE-T3xScrR7.js +0 -14
  121. package/.storybook-static/assets/tracking-ATsLLehC.js +0 -1
  122. package/.storybook-static/css/tailwind-brandCrowd.css +0 -2404
  123. package/.storybook-static/css/tailwind-brandPage.css +0 -2088
  124. package/.storybook-static/css/tailwind-crazyDomains.css +0 -2404
  125. package/.storybook-static/css/tailwind-designCom.css +0 -2404
  126. package/.storybook-static/css/tailwind-designCrowd.css +0 -2404
  127. package/.storybook-static/favicon.svg +0 -1
  128. package/.storybook-static/iframe.html +0 -694
  129. package/.storybook-static/index.html +0 -156
  130. package/.storybook-static/index.json +0 -1
  131. package/.storybook-static/nunito-sans-bold-italic.woff2 +0 -0
  132. package/.storybook-static/nunito-sans-bold.woff2 +0 -0
  133. package/.storybook-static/nunito-sans-italic.woff2 +0 -0
  134. package/.storybook-static/nunito-sans-regular.woff2 +0 -0
  135. package/.storybook-static/project.json +0 -1
  136. package/.storybook-static/sb-addons/a11y-1/manager-bundle.js +0 -5
  137. package/.storybook-static/sb-addons/links-2/manager-bundle.js +0 -3
  138. package/.storybook-static/sb-addons/storybook-core-server-presets-0/common-manager-bundle.js +0 -188
  139. package/.storybook-static/sb-addons/themes-3/manager-bundle.js +0 -3
  140. package/.storybook-static/sb-common-assets/favicon.svg +0 -1
  141. package/.storybook-static/sb-common-assets/nunito-sans-bold-italic.woff2 +0 -0
  142. package/.storybook-static/sb-common-assets/nunito-sans-bold.woff2 +0 -0
  143. package/.storybook-static/sb-common-assets/nunito-sans-italic.woff2 +0 -0
  144. package/.storybook-static/sb-common-assets/nunito-sans-regular.woff2 +0 -0
  145. package/.storybook-static/sb-manager/globals-module-info.js +0 -797
  146. package/.storybook-static/sb-manager/globals-runtime.js +0 -72062
  147. package/.storybook-static/sb-manager/globals.js +0 -34
  148. package/.storybook-static/sb-manager/runtime.js +0 -13002
  149. package/src/atoms/components/SparkleIcon/SparkleIcon.stories.js +0 -182
  150. package/src/atoms/components/SparkleIcon/SparkleIcon.vue +0 -105
  151. package/src/atoms/components/SparkleIcon/assets/animations/state-01.svg +0 -5
  152. package/src/atoms/components/SparkleIcon/assets/animations/state-02.svg +0 -5
  153. package/src/atoms/components/SparkleIcon/assets/animations/state-03.svg +0 -5
  154. package/src/atoms/components/SparkleIcon/assets/animations/state-04.svg +0 -5
  155. package/src/atoms/components/SparkleIcon/assets/animations/state-05.svg +0 -5
  156. package/src/atoms/components/SparkleIcon/assets/animations/state-06.svg +0 -5
  157. package/src/atoms/components/SparkleIcon/assets/animations/state-07.svg +0 -5
  158. package/src/atoms/components/SparkleIcon/assets/animations/state-08.svg +0 -5
  159. package/src/atoms/components/SparkleIcon/assets/sparkle.svg +0 -3
  160. package/src/atoms/components/SparkleIcon/index.ts +0 -3
  161. package/src/experiences/components/PublishBrandPageModal/views/PublishWhenHasDomainsView.vue +0 -271
  162. package/src/experiences/components/PublishBrandPageModal/views/PublishWhenNoDomainsView.vue +0 -168
  163. package/src/experiences/components/PublishBrandPageModal/views/PublishedView.vue +0 -149
  164. package/src/experiences/components/PublishBrandPageModal/views/SetUrlView.vue +0 -155
@@ -30,73 +30,211 @@
30
30
  </div>
31
31
  </template>
32
32
  <template #default>
33
- <PublishWhenNoDomainsView
34
- v-if="isNotPublished && !hasPurchasedDomains"
35
- :brand-page-base-url="brandPageBaseUrl"
36
- :brand-page-slug="brandPageSlug"
37
- :slug-validation-error="slugValidationError"
38
- :error-message="errorMessage"
39
- :publish-error-message="publishErrorMessage"
40
- :is-publishing="isPublishing"
41
- :is-design-com="isDesignCom"
42
- :brand-page-type="brandPageType"
43
- @on-slug-changed="onSlugChanged"
44
- @internal-publish-brand-page="onInternalPublishBrandPage"
45
- >
46
- <template #recommended>
47
- <slot name="recommended" />
48
- </template>
49
- </PublishWhenNoDomainsView>
50
- <PublishWhenHasDomainsView
51
- v-if="isNotPublished && showRadioButtons && hasPurchasedDomains"
52
- :radio-value="radioValue"
53
- :domains="domains"
54
- :brand-page-base-url="brandPageBaseUrl"
55
- :brand-page-slug="brandPageSlug"
56
- :custom-domain="customDomain"
57
- :slug-validation-error="slugValidationError"
58
- :error-message="errorMessage"
59
- :publish-error-message="publishErrorMessage"
60
- :is-publishing="isPublishing"
61
- :is-design-com="isDesignCom"
62
- :brand-page-type="brandPageType"
63
- @close-modal="onCloseModal"
64
- @on-slug-changed="onSlugChanged"
65
- @radio-button-changed="onRadioButtonChanged"
66
- @on-select-domain="onSelectDomain"
67
- @internal-publish-brand-page="onInternalPublishBrandPage"
68
- />
69
- <SetUrlView
70
- v-if="isSlugEditMode"
71
- :brand-page-base-url="brandPageBaseUrl"
72
- :brand-page-slug="brandPageSlug"
73
- :slug-validation-error="slugValidationError"
74
- :error-message="errorMessage"
75
- :publish-error-message="publishErrorMessage"
76
- :is-publishing="isPublishing"
77
- :is-design-com="isDesignCom"
78
- :brand-page-type="brandPageType"
79
- @close-modal="onCloseModal"
80
- @on-slug-changed="onSlugChanged"
81
- @internal-publish-brand-page="onInternalPublishBrandPage"
82
- />
83
- <PublishedView
84
- v-if="!isNotPublished && !isSlugEditMode"
85
- :brand-page-url="brandPageUrl"
86
- :is-design-com="isDesignCom"
87
- :show-upsell-rotation="showUpsellRotation"
88
- :is-subsequent-publish="isSubsequentPublish"
89
- :search-text="searchText"
90
- :brand-page-display-name="brandPageDisplayName"
91
- :has-purchased-domain="hasPurchasedDomains"
92
- :show-upsell-rotation-container="showUpsellRotationContainer"
93
- :user-currency="userCurrency"
94
- @copy-url-clicked="onCopyUrlClick"
95
- @on-brand-page-url-click="onBrandPageUrlClick"
96
- @on-view-more-domains="onViewMore"
97
- @on-buy-now-clicked="onBuyNowClick"
98
- @on-search-text-changed="onSearchTextChanged"
99
- />
33
+ <div v-if="isNotPublished || isSlugEditMode" :class="{ 'tw-mb-8': !hasPurchasedDomains }">
34
+ <div
35
+ v-if="!isSlugEditMode"
36
+ class="tw-flex tw-items-center tw-mr-2 tw-mb-1"
37
+ @click="onDomainTypeRadioButtonClick(DOMAIN_TYPES.slug)"
38
+ >
39
+ <input
40
+ v-if="showRadioButtons"
41
+ type="radio"
42
+ class="tw-w-6 tw-h-8 tw-cursor-pointer tw-mb-0"
43
+ :style="{ 'accent-color': 'rgb(242 27 63)' }"
44
+ name="domainTypeValue"
45
+ :checked="domainTypeValue === DOMAIN_TYPES.slug"
46
+ :value="domainTypeValue === DOMAIN_TYPES.slug"
47
+ />
48
+ <label
49
+ v-if="!isPublished && hasPurchasedDomains"
50
+ for="domain-type"
51
+ class="tw-font-sans tw-w-full tw-text-grayscale-600 tw-text-sm tw-cursor-pointer tw-ml-2"
52
+ >
53
+ <span class="tw-inline-block tw-rounded-full">{{ freeDomainLabel }}</span>
54
+ </label>
55
+ </div>
56
+ <div v-if="isNotPublished || isSlugEditMode" class="tw-mt-4">
57
+ <PublishBrandPageCard
58
+ v-if="!hasPurchasedDomains"
59
+ :img-url="iconUrl"
60
+ :title="freePublishCardTitleLabel"
61
+ :description="freePublishCardDescriptionLabel"
62
+ :is-design-com="isDesignCom"
63
+ :has-search-button="false"
64
+ >
65
+ <template #slug>
66
+ <div class="tw-flex tw-flex-col md:tw-flex-row tw-justify-between">
67
+ <div class="tw-grow md:tw-mr-2">
68
+ <TextInput
69
+ v-model="internalSlug"
70
+ element-classes="tw-mb-0 !tw-rounded-l-none tw-text-md"
71
+ :prefix-text="`${brandPageBaseUrlWithoutHttps}/`"
72
+ :error="!!slugValidationError"
73
+ :disabled="isInputEnabled"
74
+ :placeholder="getPlaceHolder"
75
+ data-test-brand-page-slug-input
76
+ :attrs="{ 'data-test-set-url-text-field': '' }"
77
+ @input="onSlugChanged"
78
+ />
79
+ <div
80
+ v-if="slugErrorMessage"
81
+ class="tw-mt-2 tw-text-sm tw-text-left tw-text-error-500 tw-font-normal"
82
+ >
83
+ {{ slugErrorMessage }}
84
+ </div>
85
+ </div>
86
+ <Button
87
+ :label="publishLabel"
88
+ :disabled="isPublishingDisabled"
89
+ class="tw-flex tw-items-center tw-justify-center tw-mt-2 md:tw-mt-0 tw-font-bold tw-transition-colors tw-duration-300"
90
+ data-test-brand-page-publish-button
91
+ variant="primary"
92
+ size="small-medium"
93
+ :full-width="isMobile"
94
+ :class="{
95
+ 'tw-uppercase': !isDesignCom,
96
+ }"
97
+ @on-click="onPublish"
98
+ />
99
+ </div>
100
+ </template>
101
+ </PublishBrandPageCard>
102
+ <div v-else>
103
+ <TextInput
104
+ v-model="internalSlug"
105
+ element-classes="tw-mb-0 !tw-rounded-l-none tw-text-lg"
106
+ :prefix-text="`${brandPageBaseUrlWithoutHttps}/`"
107
+ :error="!!slugValidationError"
108
+ :disabled="isInputEnabled"
109
+ :placeholder="getPlaceHolder"
110
+ data-test-brand-page-slug-input
111
+ :attrs="{ 'data-test-set-url-text-field': '' }"
112
+ @input="onSlugChanged"
113
+ />
114
+ <div v-if="slugErrorMessage" class="tw-mt-2 tw-text-sm tw-text-left tw-text-error-500 tw-font-normal">
115
+ {{ slugErrorMessage }}
116
+ </div>
117
+ </div>
118
+ </div>
119
+ <div v-if="isNotPublished || !isSlugEditMode" class="tw-mt-4">
120
+ <div v-if="showRadioButtons">
121
+ <div
122
+ class="tw-flex tw-items-center tw-mr-2 tw-mb-1"
123
+ @click="onDomainTypeRadioButtonClick(DOMAIN_TYPES.purchased)"
124
+ >
125
+ <input
126
+ type="radio"
127
+ class="tw-w-6 tw-h-8 tw-cursor-pointer tw-mb-0"
128
+ :style="{ 'accent-color': 'rgb(242 27 63)' }"
129
+ name="domainTypeValue"
130
+ :checked="domainTypeValue === DOMAIN_TYPES.purchased"
131
+ :value="domainTypeValue === DOMAIN_TYPES.purchased"
132
+ />
133
+ <label
134
+ for="domain-type"
135
+ class="tw-font-sans tw-w-full tw-text-grayscale-600 tw-text-sm tw-cursor-pointer tw-ml-2"
136
+ >
137
+ <span class="tw-inline-block tw-rounded-full">{{ purchasedDomainLabel }}</span>
138
+ </label>
139
+ </div>
140
+ <div class="tw-mt-4 domain-dropdown">
141
+ <Dropdown
142
+ v-if="domains"
143
+ ref="dropdown"
144
+ :element-classes="{
145
+ 'tw-h-12': true,
146
+ }"
147
+ menu-element-classes="tw-w-full"
148
+ :disabled="domainTypeValue === DOMAIN_TYPES.slug"
149
+ :class="{
150
+ 'tw-text-grayscale-600 tw-font-normal': !selectedCustomDomain,
151
+ }"
152
+ :title="(selectedCustomDomain && selectedCustomDomain.domainName) || selectDomainDropdownPlaceholder"
153
+ >
154
+ <DropdownItem
155
+ v-for="purchasedDomain of domains"
156
+ :key="purchasedDomain.domainName"
157
+ class="tw-font-bold tw-break-all tw-flex tw-gap-2 tw-text-black"
158
+ @click="onSelectPurchasedDomain(purchasedDomain)"
159
+ >
160
+ {{ purchasedDomain.domainName }}
161
+ </DropdownItem>
162
+ </Dropdown>
163
+ </div>
164
+ <div v-if="errorMessage" class="tw-mt-2 tw-text-sm tw-text-left tw-text-error-500 tw-font-normal">
165
+ {{ errorMessage }}
166
+ </div>
167
+ </div>
168
+ <slot v-if="!hasPurchasedDomains" name="recommended" />
169
+ </div>
170
+ <div
171
+ v-if="hasPurchasedDomains"
172
+ class="tw-font-sans tw-text-center"
173
+ :style="isMobile ? 'padding-left: 1.5rem; padding-right: 1.5rem;' : ''"
174
+ >
175
+ <Button
176
+ :label="isSlugEditMode ? setUrlLabel : publishLabel"
177
+ :variant="isDesignCom ? 'primary' : 'primary-with-icon'"
178
+ icon="chevron-right-wide"
179
+ :disabled="isPublishingDisabled"
180
+ class="tw-my-4"
181
+ :full-width="isMobile"
182
+ data-test-brand-page-publish-button
183
+ @on-click="onPublish"
184
+ />
185
+ <Button
186
+ :label="hasAlreadyPurchasedDomainCloseButtonLabel"
187
+ variant="no-border"
188
+ size="large"
189
+ class="tw-my-4"
190
+ :full-width="isMobile"
191
+ @on-click="onCloseModal"
192
+ />
193
+ </div>
194
+ </div>
195
+ <div v-else class="tw-font-sans">
196
+ <div v-if="!showUpsellRotationContainer" class="tw-mb-6 tw-text-left">
197
+ <div class="tw-mb-6">
198
+ <SellDomainNameSearchWithResults
199
+ :is-design-com="isDesignCom"
200
+ :initial-search-term="searchText"
201
+ :currency="userCurrency"
202
+ :display-result-limit="4"
203
+ :domain-search-location="sitePublishedModal"
204
+ show-view-more-button
205
+ @on-change-search="onSearchTextChanged"
206
+ @on-buy-now-click="onBuyNowClick"
207
+ @on-view-more="onViewMore"
208
+ />
209
+ </div>
210
+ </div>
211
+ <div class="tw-px-4 tw-text-center" :class="{ 'lg:tw-px-20': hasPurchasedDomains }">
212
+ <TextCopyField
213
+ button-variant="secondary"
214
+ :text="brandPageUrl"
215
+ :default-copy-button-text="copyLabel"
216
+ :copied-button-text="copySuccessLabel"
217
+ data-test-brand-page-copy-input
218
+ @on-click="onCopyUrlClick"
219
+ />
220
+ <Button
221
+ :label="viewMyWebsiteLabel"
222
+ :variant="isDesignCom ? 'primary' : 'primary-with-icon'"
223
+ icon="chevron-right-wide"
224
+ size="medium"
225
+ icon-view-box="0 0 24 24"
226
+ class="tw-my-4"
227
+ target="_blank"
228
+ rel="noopener noreferrer"
229
+ :url="brandPageUrl"
230
+ :full-width="isMobile"
231
+ @on-click="onBrandPageUrlClick"
232
+ />
233
+ </div>
234
+ <div v-if="showUpsellRotationContainer" class="tw-border-t tw-border-solid tw-border-grayscale-500 tw-p-5">
235
+ <slot name="upsellContainer" />
236
+ </div>
237
+ </div>
100
238
  </template>
101
239
  </Modal>
102
240
  <SellDomainNameListModal
@@ -115,32 +253,41 @@
115
253
  </template>
116
254
  <script>
117
255
  import Modal from '../../../atoms/components/Modal/Modal.vue';
256
+ import PublishBrandPageCard from './PublishBrandPageCard.vue';
257
+ import TextInput from '../../../atoms/components/TextInput/TextInput.vue';
258
+ import Dropdown from '../../../atoms/components/Dropdown/Dropdown.vue';
259
+ import DropdownItem from '../../../atoms/components/Dropdown/DropdownItem.vue';
260
+ import Button from '../../../atoms/components/Button/Button.vue';
261
+ import TextCopyField from '../../../atoms/components/TextCopyField/TextCopyField.vue';
262
+
263
+ import SellDomainNameSearchWithResults from '../SellDomainNameSearchWithResults/SellDomainNameSearchWithResults.vue';
118
264
  import SellDomainNameListModal from '../SellDomainNameListModal/SellDomainNameListModal.vue';
119
265
  import brandCrowdApiClient from '../../clients/brand-crowd-api.client';
120
266
  import Events, { sitePublishedModal } from '../../constants/event-constants';
121
267
  import mediaQueryMixin from '../../mixins/mediaQueryMixin';
122
268
  import { publishBrandPageModalTr } from '../../../useSharedLibTranslate';
123
- import PublishedView from './views/PublishedView.vue';
124
- import SetUrlView from './views/SetUrlView.vue';
125
- import PublishWhenNoDomainsView from './views/PublishWhenNoDomainsView.vue';
126
- import PublishWhenHasDomainsView from './views/PublishWhenHasDomainsView.vue';
127
269
 
128
270
  const DOMAIN_TYPES = {
129
271
  slug: 'slug',
130
272
  purchased: 'purchased',
131
273
  };
132
274
 
275
+ const DCOM_IMG_FREE = 'https://brandcrowd-cdn.s3.amazonaws.com/public/assets/images/icons/publish/dcom-free-url.svg';
276
+ const BC_IMG_FREE = 'https://brandcrowd-cdn.s3.amazonaws.com/public/assets/images/icons/publish/bc-free-url.svg';
133
277
  const WEBSITE_FRIENDLY_NAME = 'Website';
134
278
  export const DIGITAL_BUSINESS_CARD = 'Digital Business Card';
135
279
 
136
280
  export default {
137
281
  components: {
138
282
  Modal,
283
+ TextInput,
284
+ Dropdown,
285
+ DropdownItem,
286
+ Button,
287
+ TextCopyField,
288
+ SellDomainNameSearchWithResults,
139
289
  SellDomainNameListModal,
140
- PublishedView,
141
- SetUrlView,
142
- PublishWhenNoDomainsView,
143
- PublishWhenHasDomainsView,
290
+ PublishBrandPageCard,
144
291
  },
145
292
  mixins: [mediaQueryMixin],
146
293
  props: {
@@ -276,19 +423,31 @@ export default {
276
423
  emits: [
277
424
  'close-modal',
278
425
  'radio-button-changed',
279
- 'copy-url-clicked',
426
+ 'copy-url-click',
280
427
  'internal-publish-brand-page',
281
428
  'on-select-domain',
282
429
  'on-brand-page-url-click',
283
430
  'on-view-more-domains',
284
431
  'on-slug-changed',
285
- 'on-show-domain-modal',
286
432
  ],
287
433
  setup() {
288
434
  return {
289
435
  publishBrandPageModalTr,
290
436
  sitePublishedLabel: publishBrandPageModalTr('sitePublishedLabel'),
437
+ freePublishCardTitleLabel: publishBrandPageModalTr('freePublishCardTitleLabel'),
438
+ freePublishCardDescriptionLabel: publishBrandPageModalTr('freePublishCardDescriptionLabel'),
439
+ slugInputPlaceholderYourNameLabel: publishBrandPageModalTr('slugInputPlaceholderYourNameLabel'),
440
+ slugInputPlaceholderYourBusinessNameLabel: publishBrandPageModalTr('slugInputPlaceholderYourBusinessNameLabel'),
441
+ freeDomainLabel: publishBrandPageModalTr('freeDomainLabel'),
442
+ purchasedDomainLabel: publishBrandPageModalTr('purchasedDomainLabel'),
443
+ setUrlLabel: publishBrandPageModalTr('setUrlLabel'),
444
+ publishLabel: publishBrandPageModalTr('publishLabel'),
445
+ viewMoreDomainLabel: publishBrandPageModalTr('viewMoreDomainLabel'),
446
+ copyLabel: publishBrandPageModalTr('copyLabel'),
447
+ copySuccessLabel: publishBrandPageModalTr('copySuccessLabel'),
448
+ hasAlreadyPurchasedDomainCloseButtonLabel: publishBrandPageModalTr('hasAlreadyPurchasedDomainCloseButtonLabel'),
291
449
  publishedSuccessDescriptionLabel: publishBrandPageModalTr('publishedSuccessDescriptionLabel'),
450
+ selectDomainDropdownPlaceholder: publishBrandPageModalTr('selectDomainDropdownPlaceholder'),
292
451
  };
293
452
  },
294
453
  data() {
@@ -307,6 +466,9 @@ export default {
307
466
  };
308
467
  },
309
468
  computed: {
469
+ brandPageBaseUrlWithoutHttps() {
470
+ return this.brandPageBaseUrl.replace('https://', '');
471
+ },
310
472
  firstTimePublishHeaderLabel() {
311
473
  const translatedBrandPageName = this.getLanguageAwareBrandPageDisplayName(this.brandPageDisplayName);
312
474
  return this.publishBrandPageModalTr('firstTimePublishHeaderLabel', {
@@ -318,15 +480,43 @@ export default {
318
480
  brandPageDisplayName: this.brandPageDisplayName,
319
481
  });
320
482
  },
483
+ viewMyWebsiteLabel() {
484
+ return this.publishBrandPageModalTr('viewMyWebsiteLabel', {
485
+ brandPageDisplayName: this.brandPageDisplayName,
486
+ });
487
+ },
488
+ allowPublish() {
489
+ if (this.domainTypeValue === DOMAIN_TYPES.slug) {
490
+ return this.internalSlug && !this.slugValidationError;
491
+ }
492
+ return this.selectedCustomDomain;
493
+ },
321
494
  hasPurchasedDomains() {
322
495
  return this.domains && this.domains.length > 0;
323
496
  },
497
+ slugErrorMessage() {
498
+ return this.slugValidationError ? this.slugValidationError : this.publishErrorMessage;
499
+ },
324
500
  isNotPublished() {
325
501
  return !this.isPublished || !this.shouldPublish;
326
502
  },
327
503
  isSlugEditMode() {
328
504
  return this.isPublished && this.shouldPublish && this.isBrandPageSlugEditMode;
329
505
  },
506
+ iconUrl() {
507
+ return this.isDesignCom ? DCOM_IMG_FREE : BC_IMG_FREE;
508
+ },
509
+ isInputEnabled() {
510
+ return this.isPublishing || this.domainTypeValue === DOMAIN_TYPES.purchased;
511
+ },
512
+ isPublishingDisabled() {
513
+ return !this.allowPublish || this.isPublishing;
514
+ },
515
+ getPlaceHolder() {
516
+ return this.brandPageType === 'brandContact'
517
+ ? this.slugInputPlaceholderYourNameLabel
518
+ : this.slugInputPlaceholderYourBusinessNameLabel;
519
+ },
330
520
  showUpsellRotationContainer() {
331
521
  if (!this.isSubsequentPublish) {
332
522
  return false;
@@ -363,10 +553,28 @@ export default {
363
553
  return brandPageName;
364
554
  }
365
555
  },
556
+ onDomainTypeRadioButtonClick(domain) {
557
+ this.domainTypeValue = domain;
558
+ this.closePurchasedDomainDropdown();
559
+ this.$emit('radio-button-changed', domain);
560
+ },
366
561
  onCloseModal() {
367
562
  this.$emit('close-modal');
368
563
  this.$emit('on-hide-domain-modal');
369
564
  },
565
+ onCopyUrlClick() {
566
+ this.$emit('copy-url-clicked');
567
+ },
568
+ onSlugChanged(e) {
569
+ this.searchText = e;
570
+ this.$emit('on-slug-changed', e);
571
+ },
572
+ onPublish() {
573
+ this.$emit('internal-publish-brand-page', this.internalSlug, this.selectedCustomDomain);
574
+ },
575
+ onBrandPageUrlClick() {
576
+ this.$emit('on-brand-page-url-click');
577
+ },
370
578
  onViewMore() {
371
579
  this.$emit('on-show-domain-modal');
372
580
  if (this.searchText) {
@@ -377,29 +585,22 @@ export default {
377
585
  this.searchText = val;
378
586
  this.$emit('on-change-search', val);
379
587
  },
380
- onSellDomainNameListCloseModal() {
381
- this.$emit('on-hide-domain-modal');
382
- },
383
- onSlugChanged(e) {
384
- this.$emit('on-slug-changed', e);
385
- },
386
- onInternalPublishBrandPage(slug, customdomain) {
387
- this.$emit('internal-publish-brand-page', slug, customdomain);
388
- },
389
- onRadioButtonChanged(domain) {
390
- this.$emit('radio-button-changed', domain);
391
- },
392
- onSelectDomain(newVal) {
588
+ onSelectPurchasedDomain(newVal) {
589
+ this.selectedCustomDomain = newVal;
393
590
  this.$emit('on-select-domain', newVal);
591
+ this.closePurchasedDomainDropdown();
394
592
  },
395
- onCopyUrlClick(newVal) {
396
- this.$emit('copy-url-clicked', newVal);
593
+
594
+ closePurchasedDomainDropdown() {
595
+ if (this.$refs.dropdown?.hideMenu) {
596
+ this.$refs.dropdown.hideMenu();
597
+ }
397
598
  },
398
- onBrandPageUrlClick(newVal) {
399
- this.$emit('on-brand-page-url-click', newVal);
599
+ onSellDomainNameListCloseModal() {
600
+ this.$emit('on-hide-domain-modal');
400
601
  },
401
- onBuyNow(newVal) {
402
- this.$emit('on-buy-now-clicked', newVal);
602
+ onBuyNowClick() {
603
+ this.$emit('on-buy-now-clicked');
403
604
  },
404
605
  async searchDomainName(isUserTriggered) {
405
606
  this.isLoading = true;
@@ -1,9 +1,9 @@
1
- const bcTheme = require("./src/themes/bc");
2
- const bpTheme = require("./src/themes/bp");
3
- const dcTheme = require("./src/themes/dc");
4
- const cdTheme = require("./src/themes/cd");
5
- const dcomTheme = require("./src/themes/dcom");
6
- const viewports = require("./src/viewports");
1
+ const bcTheme = require('./src/themes/bc');
2
+ const bpTheme = require('./src/themes/bp');
3
+ const dcTheme = require('./src/themes/dc');
4
+ const cdTheme = require('./src/themes/cd');
5
+ const dcomTheme = require('./src/themes/dcom');
6
+ const viewports = require('./src/viewports');
7
7
 
8
8
  const designSystemConfig = {
9
9
  themes: {
@@ -20,7 +20,7 @@ const theme = designSystemConfig.themes[process.env.tailwindTheme]; // use the e
20
20
  module.exports = {
21
21
  prefix: 'tw-',
22
22
  content: ['./src/**/components/**/*.vue'],
23
- safelist: [{ pattern: /^!tw-p-/ }, { pattern: /^tw-overflow-y-auto$/ }],
23
+ safelist: [{ pattern: /^!tw-p-/ }, { pattern: /^tw-overflow-y-auto$/ }, { pattern: /^tw-line-clamp-/ }],
24
24
  theme: {
25
25
  ...theme,
26
26
  extend: {
@@ -34,4 +34,3 @@ module.exports = {
34
34
  preflight: true,
35
35
  },
36
36
  };
37
-
@@ -1 +0,0 @@
1
- .email-input[data-v-bb7289b6]{background-image:url(https://dcstatic.com/images/icons/forms/forms-email-58207f9a5c.svg);background-position:top 50% left .5rem}.password-input[data-v-bb7289b6]{background-image:url(https://dcstatic.com/images/icons/forms/forms-password-ff538cd5e4.svg);background-position:top 50% left .5rem}.tw-pl-10-important[data-v-bb7289b6]{padding-left:2.5rem!important}.email-input[data-v-965d0268]{background-image:url(https://dcstatic.com/images/icons/forms/forms-email-58207f9a5c.svg);background-position:top 50% left .5rem}.tw-pl-10-important[data-v-965d0268]{padding-left:2.5rem!important}.password-input[data-v-da12bb42]{background-image:url(https://dcstatic.com/images/icons/forms/forms-password-ff538cd5e4.svg);background-position:top 50% left .5rem}.tw-pl-10-important[data-v-da12bb42]{padding-left:2.5rem!important}