@salesforcedevs/mrkt-components 0.79.1 → 1.0.0

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 (33) hide show
  1. package/lwc.config.json +0 -1
  2. package/package.json +5 -5
  3. package/src/assets/svg/mrkt-two-col-panel-section-graphic-1-light.svg +9 -0
  4. package/src/assets/svg/mrkt-two-col-panel-section-graphic-2-light.svg +16 -0
  5. package/src/assets/svg/mrkt-two-col-panel-section-graphic-3-light.svg +3 -0
  6. package/src/modules/mrkt/ctaSection/ctaSection.css +3 -3
  7. package/src/modules/mrkt/ctaSection/ctaSection.html +8 -3
  8. package/src/modules/mrkt/ctaSection/ctaSection.ts +11 -17
  9. package/src/modules/mrkt/rectangularHeading/rectangularHeading.css +1 -1
  10. package/src/modules/mrkt/sectionHeader/sectionHeader.css +3 -3
  11. package/src/modules/mrkt/sectionHeader/sectionHeader.html +1 -1
  12. package/src/modules/mrkt/sectionHeader/sectionHeader.ts +2 -2
  13. package/src/modules/mrkt/socials/socials.html +1 -1
  14. package/src/modules/mrkt/socials/socials.ts +1 -1
  15. package/src/modules/mrkt/subNavBar/subNavBar.css +1 -2
  16. package/src/modules/mrkt/subNavBar/subNavBar.ts +2 -2
  17. package/src/modules/mrkt/tdxSection/tdxSection.html +3 -3
  18. package/src/modules/mrkt/tdxSection/tdxSection.ts +1 -1
  19. package/src/modules/mrkt/threeColListSection/threeColListSection.html +1 -1
  20. package/src/modules/mrkt/twoColListSection/twoColListSection.css +3 -5
  21. package/src/modules/mrkt/twoColListSection/twoColListSection.html +1 -1
  22. package/src/modules/mrkt/twoColPanelSection/twoColPanelSection.css +50 -12
  23. package/src/modules/mrkt/twoColPanelSection/twoColPanelSection.html +67 -3
  24. package/src/modules/mrkt/twoColPanelSection/twoColPanelSection.ts +49 -1
  25. package/src/modules/mrkt/twoColSection/twoColSection.css +1 -1
  26. package/src/modules/mrkt/twoColSection/twoColSection.html +1 -1
  27. package/src/modules/mrkt/twoColSection/twoColSection.ts +1 -1
  28. package/src/modules/mrkt/videoPlayerSection/videoPlayerSection.html +1 -1
  29. package/src/modules/mrkt/videoPlayerSection/videoPlayerSection.ts +1 -1
  30. package/src/assets/svg/mrkt-no-code-section-graphic.svg +0 -23
  31. package/src/modules/mrkt/noCodeSection/noCodeSection.css +0 -82
  32. package/src/modules/mrkt/noCodeSection/noCodeSection.html +0 -14
  33. package/src/modules/mrkt/noCodeSection/noCodeSection.ts +0 -8
package/lwc.config.json CHANGED
@@ -6,7 +6,6 @@
6
6
  "expose": [
7
7
  "mrkt/ctaSection",
8
8
  "mrkt/fullImgSection",
9
- "mrkt/noCodeSection",
10
9
  "mrkt/rectangularHeading",
11
10
  "mrkt/sectionHeader",
12
11
  "mrkt/socials",
package/package.json CHANGED
@@ -1,19 +1,19 @@
1
1
  {
2
2
  "name": "@salesforcedevs/mrkt-components",
3
- "version": "0.79.1",
3
+ "version": "1.0.0",
4
4
  "description": "Marketing Lightning web components for DSC",
5
5
  "license": "MIT",
6
6
  "engines": {
7
- "node": ">= 14.x"
7
+ "node": "18.x"
8
8
  },
9
9
  "publishConfig": {
10
10
  "access": "public"
11
11
  },
12
12
  "dependencies": {
13
- "classnames": "^2.2.6"
13
+ "classnames": "2.5.1"
14
14
  },
15
15
  "devDependencies": {
16
- "@types/classnames": "^2.2.10"
16
+ "@types/classnames": "2.3.1"
17
17
  },
18
- "gitHead": "31fa5005b9be9a1e38f71f6ee6a8cd45f75eb40a"
18
+ "gitHead": "da61b1a4ea73c7d621be4b0be39c01afe8de7541"
19
19
  }
@@ -0,0 +1,9 @@
1
+ <svg width="314" height="306" viewBox="0 0 314 306" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <circle cx="161" cy="153" r="153" fill="#CFE9FE"/>
3
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M65.9508 60.1695L64.4328 64.2705C64.3248 64.5645 64.0938 64.7945 63.8008 64.9025L59.6998 66.4205C58.7667 66.7665 58.7667 68.0845 59.6998 68.4295L63.8008 69.9465C64.0938 70.0555 64.3248 70.2865 64.4328 70.5795L65.9508 74.6815C66.2958 75.6125 67.6147 75.6125 67.9597 74.6815L69.4768 70.5795C69.5858 70.2865 69.8167 70.0555 70.1097 69.9465L74.2107 68.4295C75.1427 68.0845 75.1427 66.7665 74.2107 66.4205L70.1097 64.9025C69.8167 64.7945 69.5858 64.5645 69.4768 64.2705L67.9597 60.1695C67.6147 59.2365 66.2958 59.2365 65.9508 60.1695Z" stroke="#3A49DA" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
4
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M30.1539 38.096C30.1539 40.359 28.3209 42.192 26.0579 42.192C23.7959 42.192 21.9629 40.359 21.9629 38.096C21.9629 35.834 23.7959 34 26.0579 34C28.3209 34 30.1539 35.834 30.1539 38.096Z" fill="#3A49DA"/>
5
+ <path d="M70.002 188.437V170.47" stroke="#3A49DA" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
6
+ <path d="M78.983 179.457H61" stroke="#3A49DA" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
7
+ <path d="M13.25 85.9697H32" stroke="#3A49DA" stroke-width="2" stroke-linecap="round"/>
8
+ <path d="M1 85.9697H6" stroke="#3A49DA" stroke-width="2" stroke-linecap="round"/>
9
+ </svg>
@@ -0,0 +1,16 @@
1
+ <svg width="174" height="112" viewBox="0 0 174 112" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M81.7071 11.0029H73.3301C67.8071 11.0029 63.3301 15.4809 63.3301 21.0029C63.3301 26.5259 67.8071 31.0029 73.3301 31.0029H79.3951" stroke="#3A49DA" stroke-width="2" stroke-linecap="round"/>
3
+ <path d="M124.975 31.0029H126.699C132.222 31.0029 136.699 26.5259 136.699 21.0029C136.699 15.4809 132.222 11.0029 126.699 11.0029H112.59" stroke="#3A49DA" stroke-width="2" stroke-linecap="round"/>
4
+ <path d="M116.393 36.1767C118.097 33.0967 121.379 31.0117 125.148 31.0117" stroke="#3A49DA" stroke-width="2" stroke-linecap="round"/>
5
+ <path d="M68.9173 86.5827C67.3363 88.9307 64.7843 90.5697 61.8363 90.9297H56.3203C50.7973 90.9297 46.3203 95.4067 46.3203 100.93C46.3203 106.453 50.7973 110.93 56.3203 110.93H109.568C115.09 110.93 119.568 106.453 119.568 100.93C119.568 95.4067 115.09 90.9297 109.568 90.9297H99.2813C94.3363 90.3257 90.5033 86.1207 90.5033 81.0117C90.5033 75.4907 94.9783 71.0147 100.499 71.0127H162.366C167.889 71.0127 172.366 66.5347 172.366 61.0127C172.366 55.4897 167.889 51.0127 162.366 51.0127H125.14C121.265 51.0097 117.905 48.8037 116.247 45.5797C115.543 44.2097 115.146 42.6577 115.146 41.0127" stroke="#3A49DA" stroke-width="2" stroke-linecap="round"/>
6
+ <path d="M85.083 31.0117C90.606 31.0117 95.083 35.4887 95.083 41.0117C95.083 46.5327 90.609 51.0087 85.089 51.0117H11C5.478 51.0117 1 55.4887 1 61.0117C1 66.5337 5.478 71.0117 11 71.0117H60.62C66.141 71.0137 70.615 75.4907 70.615 81.0117" stroke="#3A49DA" stroke-width="2" stroke-linecap="round"/>
7
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M142.809 78.6591L141.664 81.7521C141.582 81.9731 141.408 82.1481 141.187 82.2301L138.094 83.3741C137.391 83.6351 137.391 84.6291 138.094 84.8891L141.187 86.0341C141.408 86.1161 141.582 86.2901 141.664 86.5111L142.809 89.6041C143.069 90.3071 144.064 90.3071 144.324 89.6041L145.469 86.5111C145.55 86.2901 145.725 86.1161 145.946 86.0341L149.039 84.8891C149.742 84.6291 149.742 83.6351 149.039 83.3741L145.946 82.2301C145.725 82.1481 145.55 81.9731 145.469 81.7521L144.324 78.6591C144.064 77.9561 143.069 77.9561 142.809 78.6591Z" stroke="#3A49DA" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
8
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M107.844 11C107.844 16.522 103.367 21 97.8438 21C92.3208 21 87.8438 16.522 87.8438 11C87.8438 5.477 92.3208 1 97.8438 1C103.367 1 107.844 5.477 107.844 11Z" stroke="#3A49DA" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
9
+ <path d="M125.193 40.751H110.551" stroke="#3A49DA" stroke-width="2" stroke-linecap="round"/>
10
+ <path d="M134.662 40.751H132.445" stroke="#3A49DA" stroke-width="2" stroke-linecap="round"/>
11
+ <path d="M59.5781 81.1006H75.2751" stroke="#3A49DA" stroke-width="2" stroke-linecap="round"/>
12
+ <path d="M80.7773 81.1006C80.7773 81.3764 80.5532 81.6006 80.2773 81.6006C80.0015 81.6006 79.7773 81.3764 79.7773 81.1006C79.7773 80.8247 80.0015 80.6006 80.2773 80.6006C80.5532 80.6006 80.7773 80.8247 80.7773 81.1006Z" stroke="#3A49DA"/>
13
+ <path d="M31.3359 100.834C31.3359 101.938 30.4398 102.834 29.3359 102.834C28.2312 102.834 27.3359 101.938 27.3359 100.834C27.3359 99.7291 28.2311 98.834 29.3359 98.834C30.4399 98.834 31.3359 99.7293 31.3359 100.834Z" stroke="#3A49DA"/>
14
+ <path d="M54.2441 44.767V36.791" stroke="#3A49DA" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
15
+ <path d="M58.2311 40.7803L50.248 40.7808" stroke="#3A49DA" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
16
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg width="142" height="142" viewBox="0 0 142 142" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <circle cx="71" cy="71" r="71" fill="#CFE9FE"/>
3
+ </svg>
@@ -39,12 +39,12 @@
39
39
  padding: 0 var(--dx-g-page-padding-horizontal);
40
40
  }
41
41
 
42
- h2 {
43
- padding-bottom: var(--dx-g-spacing-sm);
42
+ dx-button {
43
+ margin-top: var(--dx-g-spacing-lg);
44
44
  }
45
45
 
46
46
  span {
47
- padding-bottom: var(--dx-g-spacing-lg);
47
+ padding-top: var(--dx-g-spacing-sm);
48
48
  }
49
49
 
50
50
  h2,
@@ -1,11 +1,16 @@
1
1
  <template>
2
- <div class={className}>
2
+ <div class={className} part="container">
3
3
  <div class="text-container">
4
- <h2 class="dx-text-heading-5">{title}</h2>
4
+ <h2 class="dx-text-display-8">{header}</h2>
5
5
  <span if:true={subtitle} class="subtitle dx-text-body-2">
6
6
  {subtitle}
7
7
  </span>
8
- <dx-button href={buttonHref} onclick={handleCtaClick}>
8
+ <dx-button
9
+ href={buttonHref}
10
+ target={buttonTarget}
11
+ onclick={handleCtaClick}
12
+ size={buttonSize}
13
+ >
9
14
  {buttonText}
10
15
  </dx-button>
11
16
  </div>
@@ -1,23 +1,18 @@
1
1
  import { api, LightningElement } from "lwc";
2
2
  import cx from "classnames";
3
3
  import { track } from "dxUtils/analytics";
4
-
5
- export const ANALYTICS_EVENT_NAME = "custEv_ctaButtonClick";
6
-
7
- export const ANALYTICS_BASE_PAYLOAD = {
8
- elementType: "button",
9
- destinationType: "internal",
10
- ctaClick: true
11
- };
4
+ import { ButtonSize, ButtonTarget } from "typings/custom";
12
5
 
13
6
  export default class CTASection extends LightningElement {
14
7
  @api buttonHref!: string;
8
+ @api buttonTarget: ButtonTarget = null;
15
9
  @api buttonText!: string;
10
+ @api buttonSize: ButtonSize = "small";
16
11
  @api dark?: boolean;
17
12
  @api subtitle?: string;
18
13
  @api imgSrcLeft?: string;
19
14
  @api imgSrcRight?: string;
20
- @api title!: string;
15
+ @api header!: string;
21
16
 
22
17
  private get hasImages(): boolean {
23
18
  return !!this.imgSrcLeft && !!this.imgSrcRight;
@@ -32,13 +27,12 @@ export default class CTASection extends LightningElement {
32
27
  }
33
28
 
34
29
  private handleCtaClick(e: PointerEvent) {
35
- const payload = {
36
- ...ANALYTICS_BASE_PAYLOAD,
37
- itemTitle: this.title,
38
- clickText: this.buttonText,
39
- clickUrl: this.buttonHref
40
- };
41
-
42
- track(e.currentTarget!, ANALYTICS_EVENT_NAME, payload);
30
+ track(e.currentTarget!, "custEv_ctaButtonClick", {
31
+ click_text: this.buttonText,
32
+ click_url: this.buttonHref,
33
+ element_type: "button",
34
+ element_title: this.header,
35
+ content_category: "cta"
36
+ });
43
37
  }
44
38
  }
@@ -4,7 +4,7 @@
4
4
  --mrkt-c-rectangular-heading-background-color: var(
5
5
  --dx-g-indigo-vibrant-15
6
6
  );
7
- --mrkt-c-rectangular-heading-background-color-faded: rgba(31, 9, 116, 0);
7
+ --mrkt-c-rectangular-heading-background-color-faded: rgb(31 9 116 / 0%);
8
8
  }
9
9
 
10
10
  .fade {
@@ -2,7 +2,7 @@
2
2
  @import "dxHelpers/text";
3
3
 
4
4
  :host {
5
- --image-aspect-ratio: 1.43554006969;
5
+ --image-aspect-ratio: 1.4355;
6
6
  --image-width: 350px;
7
7
  --image-height: calc(var(--image-width) / var(--image-aspect-ratio));
8
8
  --image-overlap: 44px;
@@ -34,8 +34,8 @@
34
34
  .section-header.light-gradient {
35
35
  background: linear-gradient(
36
36
  180deg,
37
- rgba(234, 245, 254) 42.08%,
38
- rgba(234, 245, 254, 0) 100%
37
+ rgb(234 245 254) 42.08%,
38
+ rgb(234 245 254 / 0%) 100%
39
39
  );
40
40
  }
41
41
 
@@ -15,7 +15,7 @@
15
15
  sprite={iconSprite}
16
16
  background-size="large"
17
17
  ></dx-icon-badge>
18
- <h2 if:true={title} class="title dx-text-heading-2b">{title}</h2>
18
+ <h2 if:true={header} class="title dx-text-display-3">{header}</h2>
19
19
  <span if:true={subtitle} class="subtitle dx-text-body-1">
20
20
  {subtitle}
21
21
  </span>
@@ -12,14 +12,14 @@ export default class SectionHeader extends LightningElement {
12
12
  @api overlapImages?: boolean = false;
13
13
  @api lightGradient?: boolean;
14
14
  @api subtitle?: string;
15
- @api title?: string;
15
+ @api header!: string;
16
16
 
17
17
  private get hasPageMarginGraphics(): boolean {
18
18
  return !!this.imgSrcLeft && !!this.imgSrcRight;
19
19
  }
20
20
 
21
21
  private get hasIcon(): boolean {
22
- return !!this.title && !!this.iconSymbol;
22
+ return !!this.header && !!this.iconSymbol;
23
23
  }
24
24
 
25
25
  private get className(): string {
@@ -1,6 +1,6 @@
1
1
  <template>
2
2
  <div class="socials">
3
- <dx-hr text={title} spacing="none"></dx-hr>
3
+ <dx-hr text={header} spacing="none"></dx-hr>
4
4
  <div class="socials-container">
5
5
  <template for:each={items} for:item="item">
6
6
  <a key={item.id} href={item.link.href}>
@@ -3,7 +3,7 @@ import { toJson } from "dxUtils/normalizers";
3
3
  import type { OptionWithLink } from "typings/custom";
4
4
 
5
5
  export default class Socials extends LightningElement {
6
- @api title: string = "Our Socials";
6
+ @api header: string = "Our Socials";
7
7
 
8
8
  @api
9
9
  get items() {
@@ -112,8 +112,7 @@ dx-button {
112
112
  }
113
113
 
114
114
  .subnav.is-sticky {
115
- box-shadow: 0 0 2px rgba(24, 24, 24, 0.08),
116
- 0 2px 4px 1px rgba(24, 24, 24, 0.16);
115
+ box-shadow: 0 0 2px rgb(24 24 24 / 8%), 0 2px 4px 1px rgb(24 24 24 / 16%);
117
116
  }
118
117
 
119
118
  .subnav.is-sticky dx-button {
@@ -15,7 +15,7 @@ export default class SubNavBar extends MatchMediaElement {
15
15
 
16
16
  @api
17
17
  get navItems() {
18
- return this._navItems.map(this.normalizeItem);
18
+ return this._navItems.map(this.normalizeItem) as any[];
19
19
  }
20
20
  set navItems(value) {
21
21
  this._navItems = toJson(value);
@@ -80,7 +80,7 @@ export default class SubNavBar extends MatchMediaElement {
80
80
  ...item,
81
81
  className: cx(
82
82
  "nav-item",
83
- "dx-text-heading-6",
83
+ "dx-text-display-8",
84
84
  this.activeHash === item?.link?.href && "active"
85
85
  )
86
86
  });
@@ -1,10 +1,10 @@
1
1
  <template>
2
2
  <div class="container">
3
3
  <div class="content">
4
- <h3 class="content-title dx-text-heading-2b">{title}</h3>
5
- <h4 class="dx-text-heading-4">{subtitle}</h4>
4
+ <h3 class="content-title dx-text-display-3">{header}</h3>
5
+ <h4 class="dx-text-display-6">{subtitle}</h4>
6
6
  <p class="content-body">{body}</p>
7
- <p class="content-info dx-text-heading-6">{info}</p>
7
+ <p class="content-info dx-text-display-8">{info}</p>
8
8
  <dx-button href={buttonHref}>{buttonLabel}</dx-button>
9
9
  </div>
10
10
  <div class="image-container">
@@ -1,7 +1,7 @@
1
1
  import { api, LightningElement } from "lwc";
2
2
 
3
3
  export default class TdxSection extends LightningElement {
4
- @api title!: string;
4
+ @api header!: string;
5
5
  @api subtitle!: string;
6
6
  @api body!: string;
7
7
  @api info!: string;
@@ -11,7 +11,7 @@
11
11
  background-color={item.iconBackgroundColor}
12
12
  background-size="large"
13
13
  ></dx-icon-badge>
14
- <h3 class="title dx-text-heading-4b">{item.title}</h3>
14
+ <h3 class="title dx-text-display-7">{item.title}</h3>
15
15
  <span class="subtitle dx-text-body-2">
16
16
  {item.subtitle}
17
17
  </span>
@@ -31,11 +31,9 @@
31
31
  width: 100%;
32
32
  max-width: 414px;
33
33
  display: grid;
34
- grid-template-areas:
35
- "icon title"
36
- "icon subtitle";
37
- grid-template-columns: min-content auto;
38
- grid-template-rows: min-content;
34
+ grid-template:
35
+ "icon title" min-content
36
+ "icon subtitle" auto / min-content auto;
39
37
  grid-gap: var(--dx-g-spacing-xs) var(--dx-g-spacing-mlg);
40
38
  }
41
39
 
@@ -10,7 +10,7 @@
10
10
  background-color={item.iconBackgroundColor}
11
11
  background-size="large"
12
12
  ></dx-icon-badge>
13
- <h3 class="title dx-text-heading-4b">{item.title}</h3>
13
+ <h3 class="title dx-text-display-7">{item.title}</h3>
14
14
  <span class="subtitle dx-text-body-2">{item.subtitle}</span>
15
15
  </div>
16
16
  </template>
@@ -5,20 +5,19 @@
5
5
  --padding-vertical: 108px;
6
6
  --mrkt-c-two-col-list-section-padding-top: var(--padding-vertical);
7
7
  --mrkt-c-two-col-list-section-padding-bottom: var(--padding-vertical);
8
+ --mrkt-c-two-col-list-section-align-items: center;
8
9
  }
9
10
 
10
11
  .two-col-panel-section {
11
12
  display: flex;
12
13
  flex-direction: row;
13
14
  justify-content: space-between;
14
- align-items: center;
15
- background: var(--dx-g-indigo-vibrant-15);
15
+ align-items: var(--mrkt-c-two-col-list-section-align-items);
16
16
  width: 100%;
17
17
  padding: var(--mrkt-c-two-col-list-section-padding-top)
18
18
  var(--dx-g-page-padding-horizontal)
19
19
  var(--mrkt-c-two-col-list-section-padding-bottom)
20
20
  var(--dx-g-page-padding-horizontal);
21
- overflow: hidden;
22
21
  }
23
22
 
24
23
  .text-container {
@@ -37,20 +36,41 @@
37
36
  margin-bottom: var(--dx-g-spacing-md);
38
37
  }
39
38
 
40
- dx-button {
39
+ .cta-group {
40
+ width: fit-content;
41
+ display: flex;
42
+ flex-direction: column;
43
+ align-items: center;
44
+ gap: var(--dx-g-spacing-md);
45
+ }
46
+
47
+ .main-cta {
48
+ --dx-c-button-font-weight: var(--dx-g-font-bold);
49
+ --dx-c-button-font-size: var(--dx-g-text-base);
50
+ --dx-c-button-horizontal-spacing: var(--dx-g-spacing-xl);
51
+
41
52
  margin-top: var(--dx-g-spacing-sm);
42
53
  }
43
54
 
55
+ .modal-cta {
56
+ --dx-c-button-font-size: var(--dx-g-text-sm);
57
+ }
58
+
44
59
  .card-container {
45
60
  position: relative;
46
61
  width: 100%;
47
62
  max-width: 400px;
48
63
  margin: 0 auto;
64
+ z-index: 12;
49
65
  }
50
66
 
51
- .subtitle,
52
- .title,
53
- .body {
67
+ .subtitle {
68
+ color: var(--dx-g-blue-vibrant-20);
69
+ }
70
+
71
+ .dark .subtitle,
72
+ .dark .title,
73
+ .dark .body {
54
74
  color: white;
55
75
  }
56
76
 
@@ -60,8 +80,8 @@ img {
60
80
 
61
81
  .graphic-1 {
62
82
  width: 306px;
63
- bottom: -32px;
64
- left: -106px;
83
+ bottom: 100px;
84
+ left: -120px;
65
85
  z-index: 0;
66
86
  }
67
87
 
@@ -74,8 +94,8 @@ img {
74
94
 
75
95
  .graphic-3 {
76
96
  width: 142px;
77
- right: -38px;
78
- bottom: -38px;
97
+ right: -58px;
98
+ bottom: -73px;
79
99
  z-index: 0;
80
100
  }
81
101
 
@@ -84,6 +104,10 @@ img {
84
104
  width: 100%;
85
105
  }
86
106
 
107
+ .dark {
108
+ background: var(--dx-g-indigo-vibrant-15);
109
+ }
110
+
87
111
  @media (max-width: 1024px) {
88
112
  :host {
89
113
  --padding-vertical: var(--dx-g-spacing-3xl);
@@ -115,7 +139,12 @@ img {
115
139
  }
116
140
  }
117
141
 
118
- @media (max-width: 768px) {
142
+ @media (max-width: 1024px) {
143
+ .main-cta {
144
+ --dx-c-button-display: inline;
145
+ --dx-c-button-vertical-spacing: var(--dx-g-spacing-xs);
146
+ }
147
+
119
148
  .two-col-panel-section {
120
149
  display: flex;
121
150
  flex-direction: column;
@@ -134,3 +163,12 @@ img {
134
163
  display: none;
135
164
  }
136
165
  }
166
+
167
+ @media (max-width: 600px) {
168
+ dx-button::part(container) {
169
+ white-space: normal;
170
+ display: block;
171
+ height: auto;
172
+ width: 280px;
173
+ }
174
+ }
@@ -1,31 +1,95 @@
1
1
  <template>
2
- <div class="two-col-panel-section">
2
+ <div class={className}>
3
+ <dx-modal
4
+ if:true={modalButtonText}
5
+ open={modalOpen}
6
+ onclosemodal={closeModal}
7
+ >
8
+ <dx-card-trial-expanded
9
+ badge-background-color={modalBadgeBackgroundColor}
10
+ badge-sprite={modalBadgeSprite}
11
+ badge-symbol={modalBadgeSymbol}
12
+ body={modalBody}
13
+ details={modalDetails}
14
+ href={modalHref}
15
+ label={modalLabel}
16
+ terms={modalTerms}
17
+ header={modalTitle}
18
+ col-two-title={modalTwoColTitle}
19
+ col-two-details={modalTwoColDetails}
20
+ button-cta={modalButtonCta}
21
+ button-href={modalButtonHref}
22
+ button-icon={modalButtonIcon}
23
+ button-icon-size={modalButtonIconSize}
24
+ onclickclose={closeModal}
25
+ ></dx-card-trial-expanded>
26
+ </dx-modal>
3
27
  <div class="text-container">
4
28
  <span class="subtitle dx-text-label-4">{subtitle}</span>
5
- <h2 class="title dx-text-heading-3">{title}</h2>
29
+ <h2 class="title dx-text-display-4">{header}</h2>
6
30
  <p class="body dx-text-body-2">{body}</p>
7
- <dx-button href={buttonHref}>{buttonText}</dx-button>
31
+ <div class="cta-group">
32
+ <dx-button
33
+ class="main-cta"
34
+ size="large"
35
+ font="sans"
36
+ href={buttonHref}
37
+ onclick={handleSignUpClick}
38
+ >
39
+ {buttonText}
40
+ </dx-button>
41
+ <dx-button
42
+ if:true={modalButtonText}
43
+ class="modal-cta"
44
+ variant="inline"
45
+ onclick={openModal}
46
+ >
47
+ {modalButtonText}
48
+ </dx-button>
49
+ </div>
8
50
  </div>
9
51
  <div class="card-container">
10
52
  <img
53
+ if:false={light}
11
54
  class="graphic-1"
12
55
  src="/assets/svg/mrkt-two-col-panel-section-graphic-1.svg"
13
56
  alt=""
14
57
  />
15
58
  <img
59
+ if:false={light}
16
60
  class="graphic-2"
17
61
  src="/assets/svg/mrkt-two-col-panel-section-graphic-2.svg"
18
62
  alt=""
19
63
  />
20
64
  <img
65
+ if:false={light}
21
66
  class="graphic-3"
22
67
  src="/assets/svg/mrkt-two-col-panel-section-graphic-3.svg"
23
68
  alt=""
24
69
  />
70
+ <img
71
+ if:true={light}
72
+ class="graphic-1"
73
+ src="/assets/svg/mrkt-two-col-panel-section-graphic-1-light.svg"
74
+ alt=""
75
+ />
76
+ <img
77
+ if:true={light}
78
+ class="graphic-2"
79
+ src="/assets/svg/mrkt-two-col-panel-section-graphic-2-light.svg"
80
+ alt=""
81
+ />
82
+ <img
83
+ if:true={light}
84
+ class="graphic-3"
85
+ src="/assets/svg/mrkt-two-col-panel-section-graphic-3-light.svg"
86
+ alt=""
87
+ />
25
88
  <slot></slot>
26
89
  </div>
27
90
  </div>
28
91
  <img
92
+ if:false={light}
29
93
  class="graphic-swoop"
30
94
  src="/assets/svg/mrkt-two-col-panel-section-swoop.svg"
31
95
  alt=""
@@ -1,9 +1,57 @@
1
1
  import { api, LightningElement } from "lwc";
2
+ import cx from "classnames";
3
+ import { track } from "dxUtils/analytics";
2
4
 
3
5
  export default class TwoColPanelSection extends LightningElement {
4
6
  @api body!: string;
5
7
  @api buttonHref!: string;
6
8
  @api buttonText!: string;
9
+ @api modalButtonText?: string;
7
10
  @api subtitle!: string;
8
- @api title!: string;
11
+ @api header!: string;
12
+ @api light?: boolean = false;
13
+
14
+ @api modalBadgeBackgroundColor?: string;
15
+ @api modalBadgeSprite?: string;
16
+ @api modalBadgeSymbol?: string;
17
+ @api modalTitle?: string;
18
+ @api modalBody?: string;
19
+ @api modalHref?: string;
20
+ @api modalDetails?: string;
21
+ @api modalLabel?: string;
22
+ @api modalTerms?: string;
23
+ @api modalTwoColTitle?: string;
24
+ @api modalTwoColDetails?: string;
25
+ @api modalButtonCta?: string;
26
+ @api modalButtonHref?: string;
27
+ @api modalButtonIcon?: string;
28
+ @api modalButtonIconSize?: string;
29
+
30
+ private modalOpen: boolean = false;
31
+
32
+ private get className(): string {
33
+ return cx("two-col-panel-section", !this.light && "dark");
34
+ }
35
+
36
+ private openModal() {
37
+ this.modalOpen = true;
38
+ }
39
+
40
+ private closeModal() {
41
+ this.modalOpen = false;
42
+ }
43
+
44
+ private handleSignUpClick(e: PointerEvent) {
45
+ if (this.buttonHref.includes("signup")) {
46
+ const payload = {
47
+ click_text: this.buttonText,
48
+ element_title: this.header,
49
+ element_type: "card",
50
+ click_url: `${window.location.origin}${this.buttonHref}`,
51
+ content_category: "cta"
52
+ };
53
+ track(e.currentTarget!, "custEv_signupStart", payload);
54
+ track(e.currentTarget!, "custEv_linkClick", payload);
55
+ }
56
+ }
9
57
  }
@@ -62,6 +62,6 @@ h2 {
62
62
 
63
63
  img {
64
64
  width: 100%;
65
- margin: 0 auto 56px auto;
65
+ margin: 0 auto 56px;
66
66
  }
67
67
  }
@@ -2,7 +2,7 @@
2
2
  <div class={className}>
3
3
  <img src={imgSrc} alt={imgAlt} />
4
4
  <div class="text-container">
5
- <h2 class="dx-text-heading-4">{title}</h2>
5
+ <h2 class="dx-text-display-6">{header}</h2>
6
6
  <span class="dx-text-body-2">{subtitle}</span>
7
7
  </div>
8
8
  </div>
@@ -6,7 +6,7 @@ export default class TwoColSection extends LightningElement {
6
6
  @api subtitle!: string;
7
7
  @api imgAlt!: string;
8
8
  @api imgSrc!: string;
9
- @api title!: string;
9
+ @api header!: string;
10
10
 
11
11
  private get className(): string {
12
12
  return cx("two-col-section", this.dark && "dark");
@@ -14,7 +14,7 @@
14
14
  ></path>
15
15
  </svg>
16
16
  </div>
17
- <h2 class="section-title">{title}</h2>
17
+ <h2 class="section-title">{header}</h2>
18
18
  <div class="video">
19
19
  <dx-vimeo-player video-id={videoId}></dx-vimeo-player>
20
20
  </div>
@@ -1,6 +1,6 @@
1
1
  import { LightningElement, api } from "lwc";
2
2
 
3
3
  export default class VideoPlayerSection extends LightningElement {
4
- @api title!: string;
4
+ @api header!: string;
5
5
  @api videoId!: number;
6
6
  }
@@ -1,23 +0,0 @@
1
- <svg width="241" height="114" viewBox="0 0 241 114" fill="none" xmlns="http://www.w3.org/2000/svg">
2
- <path d="M153.1 24.1641C153.098 20.1387 154.145 16.1822 156.138 12.6851C158.132 9.18802 161.003 6.27116 164.468 4.22242C167.933 2.17369 171.872 1.06388 175.897 1.00252C179.922 0.941168 183.894 1.93039 187.419 3.87256C190.945 5.81473 193.904 8.64271 196.003 12.0774C198.102 15.5121 199.27 19.4349 199.39 23.4585C199.51 27.4821 198.579 31.4675 196.689 35.0214C194.798 38.5754 192.014 41.5749 188.61 43.7241" stroke="#1B96FF" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
3
- <path d="M192.52 7.8239C196.895 12.2007 199.353 18.1356 199.353 24.3239C199.353 30.5122 196.895 36.4471 192.52 40.8239C189.019 44.3242 184.271 46.2905 179.32 46.2905C174.37 46.2905 169.621 44.3242 166.12 40.8239C164.732 39.4381 163.63 37.7921 162.879 35.98C162.127 34.168 161.74 32.2256 161.74 30.2639C161.74 28.3022 162.127 26.3598 162.879 24.5477C163.63 22.7357 164.732 21.0897 166.12 19.7039C167.228 18.5933 168.545 17.7122 169.994 17.1111C171.443 16.5099 172.996 16.2005 174.565 16.2005C176.134 16.2005 177.688 16.5099 179.137 17.1111C180.586 17.7122 181.902 18.5933 183.01 19.7039C184.801 21.498 185.806 23.9292 185.806 26.4639C185.806 28.9986 184.801 31.4297 183.01 33.2239C181.576 34.6559 179.632 35.4602 177.605 35.4602C175.579 35.4602 173.635 34.6559 172.2 33.2239" stroke="#1B96FF" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
4
- <path d="M213.8 34.6548C216.897 33.1407 220.365 32.551 223.788 32.9563C227.212 33.3616 230.446 34.7446 233.104 36.94C235.762 39.1354 237.731 42.0501 238.776 45.3354C239.82 48.6206 239.897 52.1373 238.995 55.4647C238.093 58.792 236.252 61.7891 233.691 64.0972C231.13 66.4054 227.959 67.9269 224.556 68.4797C221.153 69.0326 217.663 68.5933 214.504 67.2144C211.344 65.8355 208.649 63.5755 206.74 60.7048" stroke="#1B96FF" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
5
- <path d="M199.61 23.9042C201.271 23.4055 203.026 23.302 204.734 23.6018C206.443 23.9017 208.057 24.5966 209.449 25.6312C210.841 26.6657 211.972 28.0113 212.752 29.5605C213.532 31.1098 213.939 32.8198 213.94 34.5542" stroke="#1B96FF" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
6
- <path d="M234.12 63.6045C230.791 66.9326 226.277 68.8022 221.57 68.8022C216.863 68.8022 212.349 66.9326 209.02 63.6045C207.7 62.2858 206.653 60.7199 205.939 58.9963C205.225 57.2727 204.857 55.4253 204.857 53.5595C204.857 51.6938 205.225 49.8463 205.939 48.1228C206.653 46.3992 207.7 44.8333 209.02 43.5145C211.15 41.3858 214.039 40.19 217.05 40.19C220.062 40.19 222.95 41.3858 225.08 43.5145C226.784 45.2207 227.741 47.5334 227.741 49.9445C227.741 52.3557 226.784 54.6683 225.08 56.3745C223.717 57.7375 221.868 58.5032 219.94 58.5032C218.012 58.5032 216.163 57.7375 214.8 56.3745" stroke="#1B96FF" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
7
- <path d="M206.43 60.3845C204.383 64.6431 201.24 68.2805 197.323 70.9237C193.406 73.567 188.857 75.1209 184.142 75.4262C179.427 75.7316 174.715 74.7773 170.49 72.6612C166.266 70.5452 162.68 67.3435 160.1 63.3845" stroke="#1B96FF" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
8
- <path d="M159.75 63.3841C157.927 66.5262 155.281 69.1109 152.096 70.8593C148.912 72.6076 145.311 73.4534 141.681 73.3052C138.051 73.157 134.531 72.0205 131.499 70.0183C128.468 68.0162 126.041 65.2244 124.48 61.9441" stroke="#1B96FF" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
9
- <path d="M156.56 67.385C154.695 69.2518 152.479 70.7327 150.041 71.743C147.603 72.7534 144.99 73.2734 142.35 73.2734C139.711 73.2734 137.098 72.7534 134.659 71.743C132.221 70.7327 130.006 69.2518 128.14 67.385C125.128 64.3698 123.436 60.2821 123.436 56.02C123.436 51.7579 125.128 47.6701 128.14 44.655C130.553 42.2447 133.825 40.8909 137.235 40.8909C140.646 40.8909 143.917 42.2447 146.33 44.655C147.287 45.6098 148.045 46.7438 148.563 47.9921C149.081 49.2404 149.347 50.5786 149.347 51.93C149.347 53.2814 149.081 54.6195 148.563 55.8679C148.045 57.1162 147.287 58.2502 146.33 59.205C144.786 60.7463 142.692 61.6119 140.51 61.6119C138.328 61.6119 136.235 60.7463 134.69 59.205" stroke="#1B96FF" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
10
- <path d="M120.49 34.2739C121.777 31.3241 123.681 28.6847 126.075 26.5341C128.469 24.3835 131.297 22.7717 134.368 21.8077C137.438 20.8436 140.679 20.5497 143.873 20.9459C147.067 21.342 150.138 22.4189 152.88 24.1039" stroke="#1B96FF" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
11
- <path d="M76.1702 53.7642L91.1102 53.7642C93.4971 53.7642 95.7863 52.8159 97.4742 51.1281C99.162 49.4403 100.11 47.1511 100.11 44.7642C100.11 42.3772 99.162 40.088 97.4742 38.4002C95.7863 36.7124 93.4971 35.7642 91.1102 35.7642L76.1902 35.7642C73.8032 35.7642 71.514 34.8159 69.8262 33.1281C68.1384 31.4403 67.1902 29.1511 67.1902 26.7642L67.1902 26.3842C67.1902 23.9972 68.1384 21.708 69.8262 20.0202C71.514 18.3324 73.8032 17.3842 76.1902 17.3842L122.19 17.3842" stroke="#1B96FF" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
12
- <path d="M10.2403 53.7642L57.2603 53.7642" stroke="#1B96FF" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
13
- <path d="M48.2601 90.314L64.9601 90.314C67.3824 90.3113 69.7047 89.3472 71.4166 87.6334C73.1285 85.9196 74.0901 83.5963 74.0901 81.174V81.174C74.0901 78.7525 73.1282 76.4303 71.416 74.7181C69.7038 73.0059 67.3815 72.044 64.9601 72.044L48.6101 72.044" stroke="#1B96FF" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
14
- <path d="M75.2202 108.584L118.99 108.584C120.198 108.584 121.394 108.346 122.509 107.884C123.625 107.422 124.639 106.744 125.492 105.889C126.346 105.035 127.022 104.021 127.484 102.904C127.945 101.788 128.182 100.592 128.18 99.3845V99.3845C128.178 96.9479 127.208 94.612 125.486 92.8891C123.763 91.1662 121.427 90.1971 118.99 90.1945L104.34 90.1945C103.223 90.1958 102.117 89.9769 101.084 89.5503C100.052 89.1237 99.1137 88.4978 98.3233 87.7084C97.533 86.919 96.906 85.9815 96.4782 84.9496C96.0504 83.9177 95.8302 82.8115 95.8302 81.6945V81.6945C95.8302 79.4375 96.7268 77.2729 98.3227 75.677C99.9187 74.0811 102.083 73.1845 104.34 73.1845L142.46 73.1845" stroke="#1B96FF" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
15
- <path d="M47.0003 90.3145C45.8 90.3145 44.6115 90.5509 43.5026 91.0102C42.3937 91.4695 41.3861 92.1428 40.5374 92.9915C39.6886 93.8402 39.0154 94.8478 38.556 95.9567C38.0967 97.0657 37.8603 98.2542 37.8603 99.4545C37.863 101.877 38.8271 104.199 40.5409 105.911C42.2547 107.623 44.578 108.584 47.0003 108.584L58.3103 108.584" stroke="#1B96FF" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
16
- <path d="M10.14 53.7644C8.93976 53.7644 7.75124 54.0008 6.64232 54.4602C5.5334 54.9195 4.52582 55.5927 3.67709 56.4415C2.82837 57.2902 2.15511 58.2978 1.69579 59.4067C1.23646 60.5156 1.00005 61.7042 1.00005 62.9044C1.00005 65.3285 1.96301 67.6533 3.67709 69.3674C5.39118 71.0815 7.71597 72.0444 10.14 72.0444L24.55 72.0444" stroke="#1B96FF" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
17
- <path d="M34.7202 69.7639L29.5402 74.7739" stroke="#1B96FF" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
18
- <path d="M42.0002 69.7639L36.8203 74.7739" stroke="#1B96FF" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
19
- <path d="M66.2803 57.7739L66.2803 50.2139" stroke="#1B96FF" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
20
- <path d="M70.0603 53.9951L62.4903 53.9951" stroke="#1B96FF" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
21
- <path d="M66.2803 112.385L66.2803 104.825" stroke="#1B96FF" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
22
- <path d="M70.0603 108.604L62.4903 108.604" stroke="#1B96FF" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
23
- </svg>
@@ -1,82 +0,0 @@
1
- @import "dxHelpers/reset";
2
- @import "dxHelpers/text";
3
-
4
- :host {
5
- --dx-g-text-heading-color: white;
6
- --padding-top: var(--dx-g-spacing-4xl);
7
- --margin-top: 80px;
8
- }
9
-
10
- .container {
11
- position: relative;
12
- background-color: var(--dx-g-indigo-vibrant-20);
13
- display: flex;
14
- justify-content: space-between;
15
- padding-top: var(--padding-top);
16
- padding-left: var(--dx-g-page-padding-horizontal);
17
- margin-top: var(--margin-top);
18
- }
19
-
20
- .content {
21
- align-self: flex-end;
22
- margin: 0 var(--dx-g-spacing-3xl) var(--dx-g-spacing-5xl) 0;
23
- }
24
-
25
- .content-title {
26
- white-space: pre-line;
27
- }
28
-
29
- .content-body {
30
- color: white;
31
- font-family: var(--dx-g-font-sans);
32
- font-size: var(--dx-g-text-base);
33
- margin-top: var(--dx-g-spacing-smd);
34
- }
35
-
36
- .image {
37
- width: 600px;
38
- flex-shrink: 0;
39
- height: fit-content;
40
- align-self: flex-end;
41
- }
42
-
43
- .graphic {
44
- width: 238px;
45
- position: absolute;
46
- left: var(--dx-g-page-padding-horizontal);
47
- top: calc(-1 * var(--margin-top));
48
- }
49
-
50
- @media (min-width: 1600px) {
51
- .container {
52
- padding: var(--padding-top) var(--dx-g-page-padding-horizontal) 0;
53
- }
54
- }
55
-
56
- @media screen and (max-width: 1024px) {
57
- .container {
58
- flex-direction: column;
59
- margin-top: calc(var(--margin-top) + var(--dx-g-spacing-lg));
60
- }
61
-
62
- .content {
63
- margin: 0
64
- calc(var(--dx-g-spacing-6xl) - var(--dx-g-page-padding-horizontal))
65
- var(--dx-g-spacing-3xl) 0;
66
- }
67
-
68
- .image {
69
- width: 100%;
70
- max-width: 790px;
71
- }
72
- }
73
-
74
- @media screen and (max-width: 768px) {
75
- .content-title {
76
- font-size: var(--dx-g-text-2xl);
77
- }
78
-
79
- .content {
80
- margin: 0 var(--dx-g-page-padding-horizontal) var(--dx-g-spacing-3xl) 0;
81
- }
82
- }
@@ -1,14 +0,0 @@
1
- <template>
2
- <div class="container">
3
- <img
4
- class="graphic"
5
- src="/assets/svg/mrkt-no-code-section-graphic.svg"
6
- alt=""
7
- />
8
- <div class="content">
9
- <h3 class="content-title dx-text-heading-3">{title}</h3>
10
- <p class="content-body">{body}</p>
11
- </div>
12
- <img class="image" src={imgSrc} alt={imgAlt} />
13
- </div>
14
- </template>
@@ -1,8 +0,0 @@
1
- import { api, LightningElement } from "lwc";
2
-
3
- export default class NoCodeSection extends LightningElement {
4
- @api title!: string;
5
- @api body!: string;
6
- @api imgSrc!: string;
7
- @api imgAlt!: string;
8
- }