@designcrowd/fe-shared-lib 1.5.2 → 1.5.3-MP-4628-add-missing-icons

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 (151) hide show
  1. package/dist/css/tailwind-brandCrowd.css +144 -6
  2. package/dist/css/tailwind-brandPage.css +140 -6
  3. package/dist/css/tailwind-crazyDomains.css +144 -6
  4. package/dist/css/tailwind-designCom.css +144 -6
  5. package/dist/css/tailwind-designCrowd.css +144 -6
  6. package/index.js +1 -0
  7. package/package.json +1 -1
  8. package/public/css/tailwind-brandCrowd.css +58 -3
  9. package/public/css/tailwind-brandPage.css +58 -3
  10. package/public/css/tailwind-crazyDomains.css +58 -3
  11. package/public/css/tailwind-designCom.css +58 -3
  12. package/public/css/tailwind-designCrowd.css +58 -3
  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/Icon/Icon.stories.js +2 -0
  16. package/src/atoms/components/Icon/Icon.vue +4 -0
  17. package/src/atoms/components/Icon/icons/media.vue +3 -0
  18. package/src/atoms/components/Icon/icons/resize.vue +6 -0
  19. package/src/atoms/components/PromoCard/PromoCard.stories.ts +263 -0
  20. package/src/atoms/components/PromoCard/PromoCard.vue +83 -0
  21. package/tailwind.config.js +7 -8
  22. package/.storybook-static/assets/Auth-CV5AmoX8.css +0 -1
  23. package/.storybook-static/assets/Auth.stories-CX3sjxh5.js +0 -490
  24. package/.storybook-static/assets/AuthCrazyDomains.stories-Didj_VFa.js +0 -73
  25. package/.storybook-static/assets/Button-5UzSGUF6.css +0 -1
  26. package/.storybook-static/assets/Button-DtVlr_q3.js +0 -1
  27. package/.storybook-static/assets/ButtonGroup-Dfr7bNL2.css +0 -1
  28. package/.storybook-static/assets/ButtonGroup.stories-4EQk-ktb.js +0 -503
  29. package/.storybook-static/assets/ButtonPrimary-Bu6bXb_c.css +0 -1
  30. package/.storybook-static/assets/ButtonPrimary-DG9wNod9.js +0 -1
  31. package/.storybook-static/assets/Buttons.stories-B_KpeCzt.js +0 -761
  32. package/.storybook-static/assets/ButtonsCrazyDomains.stories-oZtahAmR.js +0 -199
  33. package/.storybook-static/assets/Checkbox.mixin-DkHpdvGa.js +0 -1
  34. package/.storybook-static/assets/Checkbox.stories-C67RL0ut.js +0 -203
  35. package/.storybook-static/assets/Checktile.stories-DN2wfzd6.js +0 -88
  36. package/.storybook-static/assets/CollapsiblePanel.stories-BkzrqfVG.js +0 -39
  37. package/.storybook-static/assets/ColorPicker.stories-85BQwpyF.js +0 -73
  38. package/.storybook-static/assets/CopyToClipboardText.stories-Csh5nVRs.js +0 -32
  39. package/.storybook-static/assets/Dropdown.stories-NNlxNopk.js +0 -159
  40. package/.storybook-static/assets/DropdownItem-CDX_V6Mi.js +0 -1
  41. package/.storybook-static/assets/DropdownItem-CLNmWtKh.css +0 -1
  42. package/.storybook-static/assets/FormControl.mixin-_gXRExB7.js +0 -1
  43. package/.storybook-static/assets/HashRouteModal.stories-Dy1_nLTJ.js +0 -64
  44. package/.storybook-static/assets/HelloBar-z54fob0q.js +0 -1
  45. package/.storybook-static/assets/HelloBar.stories-ClJ9_KRK.js +0 -342
  46. package/.storybook-static/assets/Icon-8mZGP41G.js +0 -144
  47. package/.storybook-static/assets/Icon.stories-BcXMvpuh.js +0 -126
  48. package/.storybook-static/assets/Icon.stories-D6ECVMta.js +0 -751
  49. package/.storybook-static/assets/Loader-D61Ki9P1.js +0 -1
  50. package/.storybook-static/assets/LogoBusinessBrandColours-B1_8hw0H.js +0 -1
  51. package/.storybook-static/assets/LogoBusinessBrandColours-DEFhAyxR.css +0 -1
  52. package/.storybook-static/assets/LogoBusinessBrandColours.stories-CIWe9ndn.js +0 -36
  53. package/.storybook-static/assets/Masonry-C2MNiGg0.css +0 -1
  54. package/.storybook-static/assets/Masonry.stories-CDT8kZCv.js +0 -71
  55. package/.storybook-static/assets/Modal-BQrpXSGA.js +0 -1
  56. package/.storybook-static/assets/Modal-BvVMN71n.css +0 -1
  57. package/.storybook-static/assets/Modal.stories-BycF7YL6.js +0 -345
  58. package/.storybook-static/assets/Notice.stories-BufkrC1b.js +0 -222
  59. package/.storybook-static/assets/NumberStepper-Blffv09R.css +0 -1
  60. package/.storybook-static/assets/NumberStepper.stories-6_y_lEgC.js +0 -64
  61. package/.storybook-static/assets/PaymentConfigList-wI1eTv5x.css +0 -1
  62. package/.storybook-static/assets/PaymentConfigList.stories-BlzzKrzz.js +0 -126
  63. package/.storybook-static/assets/Picture-Cq76CaoK.js +0 -1
  64. package/.storybook-static/assets/Picture.stories-BDqRm9_g.js +0 -119
  65. package/.storybook-static/assets/Pill-BsMeJhV9.js +0 -1
  66. package/.storybook-static/assets/Pill.stories-DUvzbtnS.js +0 -18
  67. package/.storybook-static/assets/PillBar-os4mJV3M.css +0 -1
  68. package/.storybook-static/assets/PillBar.stories-BUMLXBij.js +0 -41
  69. package/.storybook-static/assets/Price-DKOwLeD0.js +0 -1
  70. package/.storybook-static/assets/Price.stories-DlqrNUWI.js +0 -221
  71. package/.storybook-static/assets/PublishBrandPageModal-CLU8-If3.css +0 -1
  72. package/.storybook-static/assets/PublishBrandPageModal.stories-Dqobvq-n.js +0 -273
  73. package/.storybook-static/assets/SearchBar.stories-_wPX3-Rl.js +0 -12
  74. package/.storybook-static/assets/Select-Dw-zvSUg.css +0 -1
  75. package/.storybook-static/assets/Select.stories-BWINGxdY.js +0 -108
  76. package/.storybook-static/assets/SellDomainNameList.fixtures-LC6fjr_b.js +0 -1
  77. package/.storybook-static/assets/SellDomainNameListModal-ByK_ak0A.js +0 -1
  78. package/.storybook-static/assets/SellDomainNameListModal-CdfyEX1a.css +0 -1
  79. package/.storybook-static/assets/SellDomainNameListModal.stories-DrL8w2AY.js +0 -71
  80. package/.storybook-static/assets/SellDomainNameListSearchResult-1WuAKfzI.css +0 -1
  81. package/.storybook-static/assets/SellDomainNameListSearchResult-By0IpIM_.js +0 -1
  82. package/.storybook-static/assets/SellDomainNameSearchWithResults-BttjI4PH.js +0 -1
  83. package/.storybook-static/assets/SellDomainNameSearchWithResults.stories-Dm1Q8Cza.js +0 -37
  84. package/.storybook-static/assets/SellDomainNameWidget.stories-CKoz3WnZ.js +0 -36
  85. package/.storybook-static/assets/SignIn-DNYeJu86.css +0 -1
  86. package/.storybook-static/assets/SignIn-Dt8OJr0J.js +0 -1
  87. package/.storybook-static/assets/Slider-Cog2FFdj.css +0 -1
  88. package/.storybook-static/assets/Slider.stories-08DN2SFB.js +0 -141
  89. package/.storybook-static/assets/StarRating-BtKh7pzm.css +0 -1
  90. package/.storybook-static/assets/StarRating.stories-BEIj9ufA.js +0 -45
  91. package/.storybook-static/assets/TabMenu.stories-D9f0pyZI.js +0 -47
  92. package/.storybook-static/assets/TextCopyField-B04vTGbG.js +0 -1
  93. package/.storybook-static/assets/TextCopyField.stories-KD0WUWzA.js +0 -47
  94. package/.storybook-static/assets/TextInput-JK1M0hv6.js +0 -1
  95. package/.storybook-static/assets/TextInput.stories-BO0eQqBY.js +0 -233
  96. package/.storybook-static/assets/Textarea.stories-Bcn4sCkV.js +0 -207
  97. package/.storybook-static/assets/Toggle.stories-CuTFLoNh.js +0 -161
  98. package/.storybook-static/assets/Tooltip-DcSbUh5f.js +0 -1
  99. package/.storybook-static/assets/Tooltip-DyXIgFQH.css +0 -1
  100. package/.storybook-static/assets/Tooltip.stories-B0I_PBGG.js +0 -953
  101. package/.storybook-static/assets/UploadYourLogoApplication-EyTEQx-x.css +0 -9
  102. package/.storybook-static/assets/UploadYourLogoApplication.stories-Dixp1ynI.js +0 -194
  103. package/.storybook-static/assets/UploadYourLogoDropzone-DQqACf-e.css +0 -1
  104. package/.storybook-static/assets/UploadYourLogoDropzone-DouZtNvi.js +0 -24
  105. package/.storybook-static/assets/UploadYourLogoDropzone.stories-BHYeu4gz.js +0 -55
  106. package/.storybook-static/assets/UploadedLogoSearchResultCard.stories-D1KR63O4.js +0 -79
  107. package/.storybook-static/assets/_commonjsHelpers-D6-XlEtG.js +0 -1
  108. package/.storybook-static/assets/_plugin-vue_export-helper-DlAUqK2U.js +0 -1
  109. package/.storybook-static/assets/api-lSJGRrF2.js +0 -1
  110. package/.storybook-static/assets/axe-nGVJxRof.js +0 -30
  111. package/.storybook-static/assets/brand-crowd-api.client-DiPM1Wo-.js +0 -1
  112. package/.storybook-static/assets/bundled-translations-BZ57czTo.js +0 -1
  113. package/.storybook-static/assets/bundled-translations.de-DE-DXggTXB2.js +0 -1
  114. package/.storybook-static/assets/bundled-translations.es-ES-DtMmvicd.js +0 -1
  115. package/.storybook-static/assets/bundled-translations.fr-FR-BrQqbieG.js +0 -1
  116. package/.storybook-static/assets/bundled-translations.pt-PT-CpiWEAtr.js +0 -1
  117. package/.storybook-static/assets/carousel-CMMZ5MZ-.css +0 -1
  118. package/.storybook-static/assets/carousel.stories-o3eu2Qyc.js +0 -374
  119. package/.storybook-static/assets/event-constants-CMO9VQVu.js +0 -1
  120. package/.storybook-static/assets/iframe-C86bI_2U.js +0 -1126
  121. package/.storybook-static/assets/index-Bw-gCGc_.js +0 -6
  122. package/.storybook-static/assets/index-DhkYCT1V.js +0 -29
  123. package/.storybook-static/assets/matchers-7Z3WT2CE-T3xScrR7.js +0 -14
  124. package/.storybook-static/assets/tracking-ATsLLehC.js +0 -1
  125. package/.storybook-static/css/tailwind-brandCrowd.css +0 -2404
  126. package/.storybook-static/css/tailwind-brandPage.css +0 -2088
  127. package/.storybook-static/css/tailwind-crazyDomains.css +0 -2404
  128. package/.storybook-static/css/tailwind-designCom.css +0 -2404
  129. package/.storybook-static/css/tailwind-designCrowd.css +0 -2404
  130. package/.storybook-static/favicon.svg +0 -1
  131. package/.storybook-static/iframe.html +0 -694
  132. package/.storybook-static/index.html +0 -156
  133. package/.storybook-static/index.json +0 -1
  134. package/.storybook-static/nunito-sans-bold-italic.woff2 +0 -0
  135. package/.storybook-static/nunito-sans-bold.woff2 +0 -0
  136. package/.storybook-static/nunito-sans-italic.woff2 +0 -0
  137. package/.storybook-static/nunito-sans-regular.woff2 +0 -0
  138. package/.storybook-static/project.json +0 -1
  139. package/.storybook-static/sb-addons/a11y-1/manager-bundle.js +0 -5
  140. package/.storybook-static/sb-addons/links-2/manager-bundle.js +0 -3
  141. package/.storybook-static/sb-addons/storybook-core-server-presets-0/common-manager-bundle.js +0 -188
  142. package/.storybook-static/sb-addons/themes-3/manager-bundle.js +0 -3
  143. package/.storybook-static/sb-common-assets/favicon.svg +0 -1
  144. package/.storybook-static/sb-common-assets/nunito-sans-bold-italic.woff2 +0 -0
  145. package/.storybook-static/sb-common-assets/nunito-sans-bold.woff2 +0 -0
  146. package/.storybook-static/sb-common-assets/nunito-sans-italic.woff2 +0 -0
  147. package/.storybook-static/sb-common-assets/nunito-sans-regular.woff2 +0 -0
  148. package/.storybook-static/sb-manager/globals-module-info.js +0 -797
  149. package/.storybook-static/sb-manager/globals-runtime.js +0 -72062
  150. package/.storybook-static/sb-manager/globals.js +0 -34
  151. package/.storybook-static/sb-manager/runtime.js +0 -13002
@@ -206,6 +206,8 @@ export const IconSample = () => {
206
206
  { name: 'question' },
207
207
  { name: 'reload' },
208
208
  { name: 'reorderable' },
209
+ { name: 'resize' },
210
+ { name: 'media' },
209
211
  { name: 'search' },
210
212
  { name: 'secure' },
211
213
  { name: 'send' },
@@ -253,6 +253,8 @@ import IconQuestion from './icons/question.vue';
253
253
  import IconQuote from './icons/quote.vue';
254
254
  import IconReload from './icons/reload.vue';
255
255
  import IconReorderable from './icons/reorderable.vue';
256
+ import IconResize from './icons/resize.vue';
257
+ import IconMedia from './icons/media.vue';
256
258
  import IconRequestPayment from './icons/request-payment.vue';
257
259
  import IconSearch from './icons/search.vue';
258
260
  import IconSecure from './icons/secure.vue';
@@ -612,6 +614,8 @@ export default {
612
614
  IconQuote,
613
615
  IconReload,
614
616
  IconReorderable,
617
+ IconResize,
618
+ IconMedia,
615
619
  IconRequestPayment,
616
620
  IconShop,
617
621
  IconSearch,
@@ -0,0 +1,3 @@
1
+ <template>
2
+ <path d="M14.3 2C14.4896 2 14.65 2.07292 14.7813 2.21875C14.9271 2.35 15 2.51042 15 2.7V9.7C15 9.88958 14.9271 10.0573 14.7813 10.2031C14.65 10.3344 14.4896 10.4 14.3 10.4H11.5V3.4H7.3V4.8H3.8V2.7C3.8 2.51042 3.86563 2.35 3.99688 2.21875C4.14271 2.07292 4.31042 2 4.5 2H14.3ZM6.075 4.25313V3.59688C6.075 3.46563 6.00938 3.4 5.87813 3.4H5.22188C5.09063 3.4 5.025 3.46563 5.025 3.59688V4.25313C5.025 4.38438 5.09063 4.45 5.22188 4.45H5.87813C6.00938 4.45 6.075 4.38438 6.075 4.25313ZM13.775 8.80313V8.14688C13.775 8.01563 13.7094 7.95 13.5781 7.95H12.9219C12.7906 7.95 12.725 8.01563 12.725 8.14688V8.80313C12.725 8.93438 12.7906 9 12.9219 9H13.5781C13.7094 9 13.775 8.93438 13.775 8.80313ZM13.775 6.52813V5.87188C13.775 5.74063 13.7094 5.675 13.5781 5.675H12.9219C12.7906 5.675 12.725 5.74063 12.725 5.87188V6.52813C12.725 6.65938 12.7906 6.725 12.9219 6.725H13.5781C13.7094 6.725 13.775 6.65938 13.775 6.52813ZM13.775 4.25313V3.59688C13.775 3.46563 13.7094 3.4 13.5781 3.4H12.9219C12.7906 3.4 12.725 3.46563 12.725 3.59688V4.25313C12.725 4.38438 12.7906 4.45 12.9219 4.45H13.5781C13.7094 4.45 13.775 4.38438 13.775 4.25313ZM10.1 5.5C10.2896 5.5 10.45 5.57292 10.5813 5.71875C10.7271 5.85 10.8 6.01042 10.8 6.2V12.5C10.8 12.6896 10.7271 12.85 10.5813 12.9813C10.45 13.1271 10.2896 13.2 10.1 13.2H1.7C1.51042 13.2 1.34271 13.1271 1.19688 12.9813C1.06563 12.85 1 12.6896 1 12.5V6.2C1 6.01042 1.06563 5.85 1.19688 5.71875C1.34271 5.57292 1.51042 5.5 1.7 5.5H10.1ZM3.58125 7.11875C3.45 6.97292 3.28958 6.9 3.1 6.9C2.91042 6.9 2.74271 6.97292 2.59688 7.11875C2.46563 7.25 2.4 7.41042 2.4 7.6C2.4 7.78958 2.46563 7.95729 2.59688 8.10313C2.74271 8.23438 2.91042 8.3 3.1 8.3C3.28958 8.3 3.45 8.23438 3.58125 8.10313C3.72708 7.95729 3.8 7.78958 3.8 7.6C3.8 7.41042 3.72708 7.25 3.58125 7.11875ZM9.4 11.8V9.7L7.3 7.6L4.5 10.4L3.8 9.7L2.4 11.1V11.8H9.4Z" />
3
+ </template>
@@ -0,0 +1,6 @@
1
+ <template>
2
+ <g fill="none">
3
+ <rect x="1.75" y="1.75" width="12.5" height="12.5" rx="1.25" stroke="currentColor" stroke-width="1.5"/>
4
+ <path d="M9 7.75H14.25V13C14.25 13.6904 13.6904 14.25 13 14.25H7.75V9C7.75 8.30964 8.30964 7.75 9 7.75Z" stroke="currentColor" stroke-width="1.5"/>
5
+ </g>
6
+ </template>
@@ -0,0 +1,263 @@
1
+ import PromoCard from './PromoCard.vue';
2
+
3
+ export default {
4
+ title: 'Components/PromoCard',
5
+ component: PromoCard,
6
+ };
7
+
8
+ export const Standard = {
9
+ render: (args) => {
10
+ return {
11
+ components: {
12
+ PromoCard,
13
+ },
14
+ setup() {
15
+ return { args };
16
+ },
17
+ template: `
18
+ <PromoCard
19
+ v-bind="args"
20
+ @button-clicked="handleButtonClick"
21
+ />
22
+ `,
23
+ methods: {
24
+ handleButtonClick() {
25
+ console.log('Button clicked!');
26
+ },
27
+ },
28
+ };
29
+ },
30
+ args: {
31
+ title: 'Special Offer',
32
+ description: 'Get 20% off your next purchase. Limited time offer!',
33
+ imageUrl: 'https://bcassetcdn.com/assets/images/promo/legalzoom-symbol.svg',
34
+ altText: 'Promotional image',
35
+ buttonLabel: 'Learn More',
36
+ horizontalLayout: false,
37
+ shouldShowImageOnTop: false,
38
+ },
39
+ };
40
+
41
+ export const HorizontalLayout = {
42
+ render: (args) => {
43
+ return {
44
+ components: {
45
+ PromoCard,
46
+ },
47
+ setup() {
48
+ return { args };
49
+ },
50
+ template: `
51
+ <PromoCard
52
+ v-bind="args"
53
+ @button-clicked="handleButtonClick"
54
+ />
55
+ `,
56
+ methods: {
57
+ handleButtonClick() {
58
+ console.log('Button clicked!');
59
+ },
60
+ },
61
+ };
62
+ },
63
+ args: {
64
+ title: 'Premium Package',
65
+ description: 'Upgrade to premium and unlock exclusive features today.',
66
+ imageUrl: 'https://bcassetcdn.com/assets/images/promo/brandpage-design-support.png',
67
+ altText: 'Premium package image',
68
+ buttonLabel: 'Upgrade Now',
69
+ horizontalLayout: true,
70
+ scaleImageDown: false,
71
+ imageWidthFull: false,
72
+ shouldShowImageOnTop: false,
73
+ },
74
+ };
75
+
76
+ export const ImageOnTop = {
77
+ render: (args) => {
78
+ return {
79
+ components: {
80
+ PromoCard,
81
+ },
82
+ setup() {
83
+ return { args };
84
+ },
85
+ template: `
86
+ <PromoCard
87
+ v-bind="args"
88
+ @button-clicked="handleButtonClick"
89
+ />
90
+ `,
91
+ methods: {
92
+ handleButtonClick() {
93
+ console.log('Button clicked!');
94
+ },
95
+ },
96
+ };
97
+ },
98
+ args: {
99
+ title: 'Mobile Friendly',
100
+ description: 'This layout works great on mobile devices with the image displayed on top.',
101
+ imageUrl: 'https://bcassetcdn.com/assets/images/promo/brandpage-design-support.png',
102
+ altText: 'Mobile friendly layout',
103
+ buttonLabel: 'Try It',
104
+ horizontalLayout: false,
105
+ scaleImageDown: false,
106
+ imageWidthFull: false,
107
+ shouldShowImageOnTop: true,
108
+ },
109
+ };
110
+
111
+ export const ScaledDownImage = {
112
+ render: (args) => {
113
+ return {
114
+ components: {
115
+ PromoCard,
116
+ },
117
+ setup() {
118
+ return { args };
119
+ },
120
+ template: `
121
+ <PromoCard
122
+ v-bind="args"
123
+ @button-clicked="handleButtonClick"
124
+ />
125
+ `,
126
+ methods: {
127
+ handleButtonClick() {
128
+ console.log('Button clicked!');
129
+ },
130
+ },
131
+ };
132
+ },
133
+ args: {
134
+ title: 'Logo Showcase',
135
+ description: 'Display your logo with proper spacing and scaling.',
136
+ imageUrl: 'https://via.placeholder.com/120x120',
137
+ altText: 'Logo showcase',
138
+ buttonLabel: 'View More',
139
+ horizontalLayout: false,
140
+ scaleImageDown: true,
141
+ imageWidthFull: false,
142
+ shouldShowImageOnTop: false,
143
+ },
144
+ };
145
+
146
+ export const FullWidthImage = {
147
+ render: (args) => {
148
+ return {
149
+ components: {
150
+ PromoCard,
151
+ },
152
+ setup() {
153
+ return { args };
154
+ },
155
+ template: `
156
+ <PromoCard
157
+ v-bind="args"
158
+ @button-clicked="handleButtonClick"
159
+ />
160
+ `,
161
+ methods: {
162
+ handleButtonClick() {
163
+ console.log('Button clicked!');
164
+ },
165
+ },
166
+ };
167
+ },
168
+ args: {
169
+ title: 'Full Width Banner',
170
+ description: 'Images that stretch to fill the available space.',
171
+ imageUrl: 'https://bcassetcdn.com/assets/images/promo/brandpage-design-support.png',
172
+ altText: 'Full width banner',
173
+ buttonLabel: 'Explore',
174
+ horizontalLayout: false,
175
+ scaleImageDown: false,
176
+ imageWidthFull: true,
177
+ shouldShowImageOnTop: false,
178
+ },
179
+ };
180
+
181
+ export const AllOptions = {
182
+ render: (args) => {
183
+ return {
184
+ components: {
185
+ PromoCard,
186
+ },
187
+ setup() {
188
+ return { args };
189
+ },
190
+ template: `
191
+ <div class="tw-space-y-4">
192
+ <div>
193
+ <h3 class="tw-mb-2 tw-font-bold">Standard Layout</h3>
194
+ <PromoCard
195
+ title="Standard Promo"
196
+ description="This is the default vertical layout with image on the left."
197
+ imageUrl="https://bcassetcdn.com/assets/images/promo/brandpage-design-support.png"
198
+ altText="Standard layout"
199
+ buttonLabel="Click Me"
200
+ @button-clicked="handleButtonClick"
201
+ />
202
+ </div>
203
+
204
+ <div>
205
+ <h3 class="tw-mb-2 tw-font-bold">Horizontal Layout</h3>
206
+ <PromoCard
207
+ title="Horizontal Promo"
208
+ description="This layout is better for desktop with content side by side."
209
+ imageUrl="https://bcassetcdn.com/assets/images/promo/brandpage-design-support.png"
210
+ altText="Horizontal layout"
211
+ buttonLabel="Click Me"
212
+ :horizontal-layout="true"
213
+ @button-clicked="handleButtonClick"
214
+ />
215
+ </div>
216
+
217
+ <div>
218
+ <h3 class="tw-mb-2 tw-font-bold">Image On Top</h3>
219
+ <PromoCard
220
+ title="Mobile Optimized"
221
+ description="Perfect for mobile views with image stacked on top."
222
+ imageUrl="https://bcassetcdn.com/assets/images/promo/brandpage-design-support.png"
223
+ altText="Image on top"
224
+ buttonLabel="Click Me"
225
+ :should-show-image-on-top="true"
226
+ @button-clicked="handleButtonClick"
227
+ />
228
+ </div>
229
+ </div>
230
+ `,
231
+ methods: {
232
+ handleButtonClick() {
233
+ console.log('Button clicked!');
234
+ },
235
+ },
236
+ };
237
+ },
238
+ args: {},
239
+ };
240
+
241
+ Standard.story = {
242
+ name: 'PromoCard - Standard',
243
+ };
244
+
245
+ HorizontalLayout.story = {
246
+ name: 'PromoCard - Horizontal Layout',
247
+ };
248
+
249
+ ImageOnTop.story = {
250
+ name: 'PromoCard - Image On Top',
251
+ };
252
+
253
+ ScaledDownImage.story = {
254
+ name: 'PromoCard - Scaled Down Image',
255
+ };
256
+
257
+ FullWidthImage.story = {
258
+ name: 'PromoCard - Full Width Image',
259
+ };
260
+
261
+ AllOptions.story = {
262
+ name: 'PromoCard - All Variants',
263
+ };
@@ -0,0 +1,83 @@
1
+ <template>
2
+ <div class="tw-flex" :class="shouldShowImageOnTop ? 'tw-flex-col' : 'tw-flex-row'">
3
+ <div
4
+ class="tw-flex tw-justify-center tw-items-center tw-bg-grayscale-400 tw-w-60 tw-p-1 dcom-rounded-tl dcom-rounded-bl"
5
+ :class="{
6
+ 'tw-w-full tw-px-8 md:tw-px-12 lg:tw-px-20 tw-py-4': shouldShowImageOnTop,
7
+ 'tw-px-4': !shouldShowImageOnTop,
8
+ }"
9
+ >
10
+ <img class="tw-w-full" :src="imageUrl" :alt="altText" />
11
+ </div>
12
+ <div
13
+ class="tw-flex tw-bg-white tw-w-full tw-p-4 tw-grow dcom-rounded-tr dcom-rounded-br tw-flex-col tw-justify-between"
14
+ :class="{
15
+ 'sm:tw-flex-row sm:tw-items-center': horizontalLayout,
16
+ }"
17
+ >
18
+ <div class="tw-text-left tw-overflow-hidden tw-text-ellipsis tw-text-base" :class="lineClampStyle">
19
+ <div class="tw-font-bold tw-text-black tw-mb-0.5">
20
+ {{ title }}
21
+ </div>
22
+ <p>
23
+ {{ description }}
24
+ </p>
25
+ </div>
26
+ <Button
27
+ variant="primary"
28
+ size="small"
29
+ :full-width="fullwidthButton"
30
+ class="tw-text-left tw-mt-4"
31
+ :class="horizontalLayout ? 'tw-w-full tw-mr-2 sm:tw-mt-0 sm:tw-ml-2 sm:tw-w-auto' : ''"
32
+ :label="buttonLabel"
33
+ @on-click="buttonClicked"
34
+ />
35
+ </div>
36
+ </div>
37
+ </template>
38
+ <script setup lang="ts">
39
+ import { computed, defineEmits } from 'vue';
40
+ import { BREAKPOINTS } from '../../../experiences/mixins/mediaQueryMixin';
41
+ import Button from '../Button/Button.vue';
42
+
43
+ const props = defineProps({
44
+ title: {
45
+ type: String,
46
+ required: true,
47
+ },
48
+ description: {
49
+ type: String,
50
+ required: true,
51
+ },
52
+ imageUrl: { type: String, required: true },
53
+ altText: { type: String, default: '' },
54
+ buttonLabel: {
55
+ type: String,
56
+ required: true,
57
+ },
58
+ horizontalLayout: {
59
+ type: Boolean,
60
+ default: false,
61
+ },
62
+ shouldShowImageOnTop: {
63
+ type: Boolean,
64
+ default: false,
65
+ },
66
+ textLineClamp: {
67
+ type: Number,
68
+ default: 0, // 0 is infinite
69
+ },
70
+ });
71
+
72
+ const emits = defineEmits(['button-clicked']);
73
+ const buttonClicked = () => emits('button-clicked');
74
+
75
+ const lineClampStyle = computed(() => {
76
+ if (props.textLineClamp > 0) {
77
+ return `tw-line-clamp-${props.textLineClamp}`;
78
+ }
79
+ return 'tw-line-clamp-none';
80
+ });
81
+
82
+ const fullwidthButton = computed(() => !(props.horizontalLayout && window.innerWidth >= BREAKPOINTS.SMALL));
83
+ </script>
@@ -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}