@salesforcedevs/mrkt-components 0.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 (50) hide show
  1. package/LICENSE +12 -0
  2. package/lwc.config.json +21 -0
  3. package/package.json +19 -0
  4. package/src/assets/svg/mrkt-cta-section-img-left.svg +28 -0
  5. package/src/assets/svg/mrkt-cta-section-img-right.svg +18 -0
  6. package/src/assets/svg/mrkt-no-code-section-graphic.svg +23 -0
  7. package/src/assets/svg/mrkt-section-header-graphic.svg +110 -0
  8. package/src/assets/svg/mrkt-two-col-panel-section-graphic-1.svg +9 -0
  9. package/src/assets/svg/mrkt-two-col-panel-section-graphic-2.svg +16 -0
  10. package/src/assets/svg/mrkt-two-col-panel-section-graphic-3.svg +3 -0
  11. package/src/assets/svg/mrkt-two-col-panel-section-swoop.svg +3 -0
  12. package/src/modules/mrkt/ctaSection/ctaSection.css +99 -0
  13. package/src/modules/mrkt/ctaSection/ctaSection.html +17 -0
  14. package/src/modules/mrkt/ctaSection/ctaSection.ts +44 -0
  15. package/src/modules/mrkt/fullImgSection/fullImgSection.css +54 -0
  16. package/src/modules/mrkt/fullImgSection/fullImgSection.html +11 -0
  17. package/src/modules/mrkt/fullImgSection/fullImgSection.ts +17 -0
  18. package/src/modules/mrkt/noCodeSection/noCodeSection.css +82 -0
  19. package/src/modules/mrkt/noCodeSection/noCodeSection.html +14 -0
  20. package/src/modules/mrkt/noCodeSection/noCodeSection.ts +8 -0
  21. package/src/modules/mrkt/rectangularHeading/rectangularHeading.css +97 -0
  22. package/src/modules/mrkt/rectangularHeading/rectangularHeading.html +10 -0
  23. package/src/modules/mrkt/rectangularHeading/rectangularHeading.ts +14 -0
  24. package/src/modules/mrkt/sectionHeader/sectionHeader.css +165 -0
  25. package/src/modules/mrkt/sectionHeader/sectionHeader.html +24 -0
  26. package/src/modules/mrkt/sectionHeader/sectionHeader.ts +35 -0
  27. package/src/modules/mrkt/socials/socials.css +65 -0
  28. package/src/modules/mrkt/socials/socials.html +16 -0
  29. package/src/modules/mrkt/socials/socials.ts +17 -0
  30. package/src/modules/mrkt/subNavBar/subNavBar.css +141 -0
  31. package/src/modules/mrkt/subNavBar/subNavBar.html +37 -0
  32. package/src/modules/mrkt/subNavBar/subNavBar.ts +130 -0
  33. package/src/modules/mrkt/tdxSection/tdxSection.css +115 -0
  34. package/src/modules/mrkt/tdxSection/tdxSection.html +14 -0
  35. package/src/modules/mrkt/tdxSection/tdxSection.ts +12 -0
  36. package/src/modules/mrkt/threeColListSection/threeColListSection.css +102 -0
  37. package/src/modules/mrkt/threeColListSection/threeColListSection.html +27 -0
  38. package/src/modules/mrkt/threeColListSection/threeColListSection.ts +24 -0
  39. package/src/modules/mrkt/twoColListSection/twoColListSection.css +65 -0
  40. package/src/modules/mrkt/twoColListSection/twoColListSection.html +19 -0
  41. package/src/modules/mrkt/twoColListSection/twoColListSection.ts +29 -0
  42. package/src/modules/mrkt/twoColPanelSection/twoColPanelSection.css +136 -0
  43. package/src/modules/mrkt/twoColPanelSection/twoColPanelSection.html +33 -0
  44. package/src/modules/mrkt/twoColPanelSection/twoColPanelSection.ts +9 -0
  45. package/src/modules/mrkt/twoColSection/twoColSection.css +67 -0
  46. package/src/modules/mrkt/twoColSection/twoColSection.html +9 -0
  47. package/src/modules/mrkt/twoColSection/twoColSection.ts +14 -0
  48. package/src/modules/mrkt/videoPlayerSection/videoPlayerSection.css +76 -0
  49. package/src/modules/mrkt/videoPlayerSection/videoPlayerSection.html +22 -0
  50. package/src/modules/mrkt/videoPlayerSection/videoPlayerSection.ts +6 -0
@@ -0,0 +1,102 @@
1
+ @import "dxHelpers/reset";
2
+ @import "dxHelpers/text";
3
+
4
+ :host {
5
+ --padding-vertical: 56px;
6
+ --mrkt-c-three-col-list-section-padding-top: var(--padding-vertical);
7
+ }
8
+
9
+ .three-col-list-section {
10
+ width: 100%;
11
+ padding-top: var(--mrkt-c-three-col-list-section-padding-top);
12
+ }
13
+
14
+ .three-col-list-section.dark {
15
+ background: var(--dx-g-indigo-vibrant-15);
16
+ }
17
+
18
+ .item-grid-padding {
19
+ width: 100%;
20
+ display: flex;
21
+ flex-direction: column;
22
+ align-items: center;
23
+ padding: 0 var(--dx-g-page-padding-horizontal);
24
+ }
25
+
26
+ .item-grid {
27
+ display: grid;
28
+ grid-template-columns: 1fr 1fr 1fr;
29
+ grid-gap: var(--dx-g-spacing-xl) var(--dx-g-spacing-3xl);
30
+ justify-items: center;
31
+ width: 100%;
32
+ max-width: 1024px;
33
+ }
34
+
35
+ .item {
36
+ width: 100%;
37
+ max-width: 450px;
38
+ display: grid;
39
+ grid-template-areas:
40
+ "icon"
41
+ "title"
42
+ "subtitle";
43
+ grid-gap: var(--dx-g-spacing-sm);
44
+ justify-items: center;
45
+ }
46
+
47
+ dx-icon-badge {
48
+ --dx-c-icon-badge-size: 60px;
49
+
50
+ grid-area: icon;
51
+ margin-bottom: var(--dx-g-spacing-md);
52
+ }
53
+
54
+ .title,
55
+ .subtitle {
56
+ text-align: center;
57
+ }
58
+
59
+ .title {
60
+ grid-area: title;
61
+ }
62
+
63
+ .subtitle {
64
+ grid-area: subtitle;
65
+ }
66
+
67
+ .three-col-list-section.dark .title,
68
+ .three-col-list-section.dark .subtitle {
69
+ color: white;
70
+ }
71
+
72
+ .img-container {
73
+ position: relative;
74
+ width: 100%;
75
+ display: flex;
76
+ flex-direction: row;
77
+ justify-content: space-between;
78
+ z-index: 2;
79
+ margin-top: var(--dx-g-spacing-3xl);
80
+ margin-bottom: -35px;
81
+ }
82
+
83
+ img {
84
+ width: 250px;
85
+ aspect-ratio: 25 / 14;
86
+ }
87
+
88
+ @media (max-width: 1024px) {
89
+ .img-container {
90
+ margin-bottom: -28px;
91
+ }
92
+
93
+ img {
94
+ width: 200px;
95
+ }
96
+ }
97
+
98
+ @media (max-width: 768px) {
99
+ .item-grid {
100
+ grid-template-columns: 1fr;
101
+ }
102
+ }
@@ -0,0 +1,27 @@
1
+ <template>
2
+ <div class="three-col-list-section">
3
+ <div class="item-grid-padding">
4
+ <div class="item-grid">
5
+ <template for:each={items} for:item="item">
6
+ <div class="item" key={item.title}>
7
+ <dx-icon-badge
8
+ symbol={item.iconSymbol}
9
+ sprite={item.iconSprite}
10
+ color={item.iconColor}
11
+ background-color={item.iconBackgroundColor}
12
+ background-size="large"
13
+ ></dx-icon-badge>
14
+ <h3 class="title dx-text-heading-4b">{item.title}</h3>
15
+ <span class="subtitle dx-text-body-2">
16
+ {item.subtitle}
17
+ </span>
18
+ </div>
19
+ </template>
20
+ </div>
21
+ </div>
22
+ <div class="img-container">
23
+ <img src="/assets/svg/mrkt-cta-section-img-left.svg" alt="" />
24
+ <img src="/assets/svg/mrkt-cta-section-img-right.svg" alt="" />
25
+ </div>
26
+ </div>
27
+ </template>
@@ -0,0 +1,24 @@
1
+ import { api, LightningElement } from "lwc";
2
+ import { toJson } from "dxUtils/normalizers";
3
+
4
+ type Item = {
5
+ title: string;
6
+ subtitle: string;
7
+ iconSymbol: string;
8
+ iconSprite: string;
9
+ iconColor: string;
10
+ iconBackgroundColor: string;
11
+ };
12
+
13
+ export default class ThreeColListSection extends LightningElement {
14
+ @api dark?: boolean;
15
+ @api
16
+ get items() {
17
+ return this._items;
18
+ }
19
+ set items(value) {
20
+ this._items = toJson(value);
21
+ }
22
+
23
+ private _items!: Item[];
24
+ }
@@ -0,0 +1,65 @@
1
+ @import "dxHelpers/reset";
2
+ @import "dxHelpers/text";
3
+
4
+ :host {
5
+ --padding-vertical: 56px;
6
+ --mrkt-c-two-col-list-section-padding-top: var(--padding-vertical);
7
+ --mrkt-c-two-col-list-section-padding-bottom: var(--padding-vertical);
8
+ }
9
+
10
+ .two-col-list-section {
11
+ padding: var(--mrkt-c-two-col-list-section-padding-top)
12
+ var(--dx-g-page-padding-horizontal)
13
+ var(--mrkt-c-two-col-list-section-padding-bottom)
14
+ var(--dx-g-page-padding-horizontal);
15
+ display: flex;
16
+ }
17
+
18
+ .two-col-list-section.dark {
19
+ background: var(--dx-g-indigo-vibrant-15);
20
+ }
21
+
22
+ .item-grid {
23
+ display: grid;
24
+ grid-template-columns: 1fr 1fr;
25
+ grid-gap: var(--dx-g-spacing-3xl) var(--dx-g-spacing-6xl);
26
+ width: max-content;
27
+ margin: auto;
28
+ }
29
+
30
+ .item {
31
+ width: 100%;
32
+ max-width: 414px;
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;
39
+ grid-gap: var(--dx-g-spacing-xs) var(--dx-g-spacing-mlg);
40
+ }
41
+
42
+ dx-icon-badge {
43
+ --dx-c-icon-badge-size: 60px;
44
+
45
+ grid-area: icon;
46
+ }
47
+
48
+ .title {
49
+ grid-area: title;
50
+ }
51
+
52
+ .subtitle {
53
+ grid-area: subtitle;
54
+ }
55
+
56
+ .two-col-list-section.dark .title,
57
+ .two-col-list-section.dark .subtitle {
58
+ color: white;
59
+ }
60
+
61
+ @media (max-width: 768px) {
62
+ .item-grid {
63
+ grid-template-columns: 1fr;
64
+ }
65
+ }
@@ -0,0 +1,19 @@
1
+ <template>
2
+ <div class={className}>
3
+ <div class="item-grid">
4
+ <template for:each={items} for:item="item">
5
+ <div class="item" key={item.title}>
6
+ <dx-icon-badge
7
+ symbol={item.iconSymbol}
8
+ sprite={item.iconSprite}
9
+ color={item.iconColor}
10
+ background-color={item.iconBackgroundColor}
11
+ background-size="large"
12
+ ></dx-icon-badge>
13
+ <h3 class="title dx-text-heading-4b">{item.title}</h3>
14
+ <span class="subtitle dx-text-body-2">{item.subtitle}</span>
15
+ </div>
16
+ </template>
17
+ </div>
18
+ </div>
19
+ </template>
@@ -0,0 +1,29 @@
1
+ import { api, LightningElement } from "lwc";
2
+ import cx from "classnames";
3
+ import { toJson } from "dxUtils/normalizers";
4
+
5
+ type Item = {
6
+ title: string;
7
+ subtitle: string;
8
+ iconSymbol: string;
9
+ iconSprite: string;
10
+ iconColor: string;
11
+ iconBackgroundColor: string;
12
+ };
13
+
14
+ export default class TwoColListSection extends LightningElement {
15
+ @api dark?: boolean;
16
+ @api
17
+ get items() {
18
+ return this._items;
19
+ }
20
+ set items(value) {
21
+ this._items = toJson(value);
22
+ }
23
+
24
+ private _items!: Item[];
25
+
26
+ private get className(): string {
27
+ return cx("two-col-list-section", this.dark && "dark");
28
+ }
29
+ }
@@ -0,0 +1,136 @@
1
+ @import "dxHelpers/reset";
2
+ @import "dxHelpers/text";
3
+
4
+ :host {
5
+ --padding-vertical: 108px;
6
+ --mrkt-c-two-col-list-section-padding-top: var(--padding-vertical);
7
+ --mrkt-c-two-col-list-section-padding-bottom: var(--padding-vertical);
8
+ }
9
+
10
+ .two-col-panel-section {
11
+ display: flex;
12
+ flex-direction: row;
13
+ justify-content: space-between;
14
+ align-items: center;
15
+ background: var(--dx-g-indigo-vibrant-15);
16
+ width: 100%;
17
+ padding: var(--mrkt-c-two-col-list-section-padding-top)
18
+ var(--dx-g-page-padding-horizontal)
19
+ var(--mrkt-c-two-col-list-section-padding-bottom)
20
+ var(--dx-g-page-padding-horizontal);
21
+ overflow: hidden;
22
+ }
23
+
24
+ .text-container {
25
+ display: flex;
26
+ flex-direction: column;
27
+ padding-right: 80px;
28
+ width: 50%;
29
+ z-index: 1;
30
+ }
31
+
32
+ .text-container > * {
33
+ max-width: 500px;
34
+ }
35
+
36
+ .text-container > *:not(:last-child) {
37
+ margin-bottom: var(--dx-g-spacing-md);
38
+ }
39
+
40
+ dx-button {
41
+ margin-top: var(--dx-g-spacing-sm);
42
+ }
43
+
44
+ .card-container {
45
+ position: relative;
46
+ width: 100%;
47
+ max-width: 400px;
48
+ margin: 0 auto;
49
+ }
50
+
51
+ .subtitle,
52
+ .title,
53
+ .body {
54
+ color: white;
55
+ }
56
+
57
+ img {
58
+ position: absolute;
59
+ }
60
+
61
+ .graphic-1 {
62
+ width: 306px;
63
+ bottom: -32px;
64
+ left: -106px;
65
+ z-index: 0;
66
+ }
67
+
68
+ .graphic-2 {
69
+ width: 170px;
70
+ top: 15px;
71
+ left: calc(100% - 38px);
72
+ z-index: 1;
73
+ }
74
+
75
+ .graphic-3 {
76
+ width: 142px;
77
+ right: -38px;
78
+ bottom: -38px;
79
+ z-index: 0;
80
+ }
81
+
82
+ .graphic-swoop {
83
+ position: relative;
84
+ width: 100%;
85
+ }
86
+
87
+ @media (max-width: 1024px) {
88
+ :host {
89
+ --padding-vertical: var(--dx-g-spacing-3xl);
90
+ }
91
+
92
+ .title {
93
+ font-size: var(--dx-g-text-2xl);
94
+ }
95
+
96
+ .body {
97
+ font-size: var(--dx-g-text-sm);
98
+ line-height: 20px;
99
+ }
100
+
101
+ .text-container {
102
+ max-width: 440px;
103
+ }
104
+
105
+ .graphic-1 {
106
+ width: 220px;
107
+ left: -80px;
108
+ top: 30px;
109
+ z-index: 0;
110
+ }
111
+
112
+ .graphic-2,
113
+ .graphic-3 {
114
+ display: none;
115
+ }
116
+ }
117
+
118
+ @media (max-width: 768px) {
119
+ .two-col-panel-section {
120
+ display: flex;
121
+ flex-direction: column;
122
+ }
123
+
124
+ .text-container {
125
+ width: 100%;
126
+ text-align: center;
127
+ justify-content: center;
128
+ align-items: center;
129
+ padding-right: unset;
130
+ padding-bottom: 72px;
131
+ }
132
+
133
+ .graphic-1 {
134
+ display: none;
135
+ }
136
+ }
@@ -0,0 +1,33 @@
1
+ <template>
2
+ <div class="two-col-panel-section">
3
+ <div class="text-container">
4
+ <span class="subtitle dx-text-label-4">{subtitle}</span>
5
+ <h2 class="title dx-text-heading-3">{title}</h2>
6
+ <p class="body dx-text-body-2">{body}</p>
7
+ <dx-button href={buttonHref}>{buttonText}</dx-button>
8
+ </div>
9
+ <div class="card-container">
10
+ <img
11
+ class="graphic-1"
12
+ src="/assets/svg/mrkt-two-col-panel-section-graphic-1.svg"
13
+ alt=""
14
+ />
15
+ <img
16
+ class="graphic-2"
17
+ src="/assets/svg/mrkt-two-col-panel-section-graphic-2.svg"
18
+ alt=""
19
+ />
20
+ <img
21
+ class="graphic-3"
22
+ src="/assets/svg/mrkt-two-col-panel-section-graphic-3.svg"
23
+ alt=""
24
+ />
25
+ <slot></slot>
26
+ </div>
27
+ </div>
28
+ <img
29
+ class="graphic-swoop"
30
+ src="/assets/svg/mrkt-two-col-panel-section-swoop.svg"
31
+ alt=""
32
+ />
33
+ </template>
@@ -0,0 +1,9 @@
1
+ import { api, LightningElement } from "lwc";
2
+
3
+ export default class TwoColPanelSection extends LightningElement {
4
+ @api body!: string;
5
+ @api buttonHref!: string;
6
+ @api buttonText!: string;
7
+ @api subtitle!: string;
8
+ @api title!: string;
9
+ }
@@ -0,0 +1,67 @@
1
+ @import "dxHelpers/reset";
2
+ @import "dxHelpers/text";
3
+
4
+ :host {
5
+ --padding-vertical: 56px;
6
+ --mrkt-c-two-col-section-padding-top: var(--padding-vertical);
7
+ --mrkt-c-two-col-section-padding-bottom: var(--padding-vertical);
8
+ }
9
+
10
+ .two-col-section {
11
+ background: var(--dx-g-cloud-blue-vibrant-95);
12
+ padding: var(--mrkt-c-two-col-section-padding-top)
13
+ var(--dx-g-page-padding-horizontal)
14
+ var(--mrkt-c-two-col-section-padding-bottom)
15
+ var(--dx-g-page-padding-horizontal);
16
+ width: 100%;
17
+ display: flex;
18
+ flex-direction: row;
19
+ justify-content: stretch;
20
+ align-items: center;
21
+ }
22
+
23
+ .two-col-section.dark {
24
+ background: var(--dx-g-indigo-vibrant-15);
25
+ }
26
+
27
+ img {
28
+ width: 50%;
29
+ max-width: 400px;
30
+ flex-grow: 1;
31
+ margin-right: 60px;
32
+ }
33
+
34
+ .text-container {
35
+ flex-grow: 1;
36
+ }
37
+
38
+ h2 {
39
+ padding-bottom: var(--dx-g-spacing-smd);
40
+ }
41
+
42
+ .two-col-section.dark h2,
43
+ .two-col-section.dark span {
44
+ color: white;
45
+ }
46
+
47
+ @media (max-width: 1024px) {
48
+ img {
49
+ margin-right: var(--dx-g-spacing-2xl);
50
+ }
51
+ }
52
+
53
+ @media (max-width: 768px) {
54
+ .two-col-section {
55
+ flex-direction: column;
56
+ }
57
+
58
+ .text-container {
59
+ width: 100%;
60
+ text-align: center;
61
+ }
62
+
63
+ img {
64
+ width: 100%;
65
+ margin: 0 auto 56px auto;
66
+ }
67
+ }
@@ -0,0 +1,9 @@
1
+ <template>
2
+ <div class={className}>
3
+ <img src={imgSrc} alt={imgAlt} />
4
+ <div class="text-container">
5
+ <h2 class="dx-text-heading-4">{title}</h2>
6
+ <span class="dx-text-body-2">{subtitle}</span>
7
+ </div>
8
+ </div>
9
+ </template>
@@ -0,0 +1,14 @@
1
+ import { api, LightningElement } from "lwc";
2
+ import cx from "classnames";
3
+
4
+ export default class TwoColSection extends LightningElement {
5
+ @api dark?: boolean;
6
+ @api subtitle!: string;
7
+ @api imgAlt!: string;
8
+ @api imgSrc!: string;
9
+ @api title!: string;
10
+
11
+ private get className(): string {
12
+ return cx("two-col-section", this.dark && "dark");
13
+ }
14
+ }
@@ -0,0 +1,76 @@
1
+ @import "dxHelpers/reset";
2
+
3
+ .container {
4
+ display: flex;
5
+ flex-direction: column;
6
+ align-items: center;
7
+ position: relative;
8
+ overflow: hidden;
9
+ padding: 0 var(--dx-g-page-padding-horizontal) 20px
10
+ var(--dx-g-page-padding-horizontal);
11
+ }
12
+
13
+ .swoop-container {
14
+ width: 100%;
15
+ height: 100%;
16
+ position: absolute;
17
+ bottom: 50%;
18
+ }
19
+
20
+ .swoop-background {
21
+ background-color: var(--dx-g-cloud-blue-vibrant-95);
22
+ width: 100%;
23
+ height: 100%;
24
+ }
25
+
26
+ .swoop {
27
+ width: 100%;
28
+ }
29
+
30
+ .section-title {
31
+ margin-top: var(--dx-g-spacing-xl);
32
+ margin-bottom: var(--dx-g-spacing-xl);
33
+ color: var(--dx-g-text-heading-color);
34
+ font-family: var(--dx-g-font-display);
35
+ font-size: var(--dx-g-text-4xl);
36
+ letter-spacing: -0.6px;
37
+ line-height: 56px;
38
+ }
39
+
40
+ .video {
41
+ box-shadow: var(--dx-g-box-shadow-md);
42
+ width: 74%;
43
+ border-radius: 16px;
44
+ overflow: hidden;
45
+ }
46
+
47
+ .section-title,
48
+ .video {
49
+ z-index: 1;
50
+ }
51
+
52
+ @media screen and (max-width: 768px) {
53
+ .section-title {
54
+ margin-top: var(--dx-g-spacing-mlg);
55
+ margin-bottom: var(--dx-g-spacing-mlg);
56
+ font-size: var(--dx-g-text-3xl);
57
+ }
58
+
59
+ .video {
60
+ width: 90%;
61
+ }
62
+ }
63
+
64
+ @media screen and (max-width: 360px) {
65
+ .section-title {
66
+ font-size: 32px;
67
+ }
68
+
69
+ .swoop-container {
70
+ bottom: 0;
71
+ }
72
+
73
+ .swoop-background {
74
+ height: 120%;
75
+ }
76
+ }
@@ -0,0 +1,22 @@
1
+ <template>
2
+ <div class="container">
3
+ <div class="swoop-container">
4
+ <div class="swoop-background"></div>
5
+ <svg
6
+ class="swoop"
7
+ xmlns="http://www.w3.org/2000/svg"
8
+ viewBox="0 0 1368 94"
9
+ fill="none"
10
+ >
11
+ <path
12
+ d="M1368 0C1110 130 278 118 0 0H1368Z"
13
+ fill="#EAF5FE"
14
+ ></path>
15
+ </svg>
16
+ </div>
17
+ <h2 class="section-title">{title}</h2>
18
+ <div class="video">
19
+ <dx-vimeo-player video-id={videoId}></dx-vimeo-player>
20
+ </div>
21
+ </div>
22
+ </template>
@@ -0,0 +1,6 @@
1
+ import { LightningElement, api } from "lwc";
2
+
3
+ export default class VideoPlayerSection extends LightningElement {
4
+ @api title!: string;
5
+ @api videoId!: number;
6
+ }