@salesforcedevs/dx-components 0.56.1 → 0.56.2-example

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 (135) hide show
  1. package/lwc.config.json +18 -3
  2. package/package.json +18 -6
  3. package/src/assets/icons/salesforcebrand-sprite/svg/symbols.svg +492 -111
  4. package/src/assets/svg/big-moon.svg +1 -0
  5. package/src/assets/svg/blue-circle.svg +3 -0
  6. package/src/assets/svg/login-widget-bg.png +0 -0
  7. package/src/assets/svg/subscribe-background-left.svg +14 -0
  8. package/src/assets/svg/subscribe-background-right.svg +11 -0
  9. package/src/assets/svg/trial-left.svg +6 -0
  10. package/src/assets/svg/trial-right.svg +26 -0
  11. package/src/modules/dx/banner/banner (1).ts +12 -0
  12. package/src/modules/dx/banner/banner.ts +3 -5
  13. package/src/modules/dx/button/button.css +10 -9
  14. package/src/modules/dx/buttonToggle/buttonToggle.css +50 -0
  15. package/src/modules/dx/buttonToggle/buttonToggle.html +17 -0
  16. package/src/modules/dx/buttonToggle/buttonToggle.ts +75 -0
  17. package/src/modules/dx/cardCallout/cardCallout.ts +8 -4
  18. package/src/modules/dx/cardContent/cardContent.html +4 -1
  19. package/src/modules/dx/cardDocs/cardDocs.html +4 -1
  20. package/src/modules/dx/cardEvent/cardEvent.html +1 -2
  21. package/src/modules/dx/cardEvent/cardEvent.ts +1 -1
  22. package/src/modules/dx/cardExpanded/cardExpanded.html +1 -6
  23. package/src/modules/dx/cardExpanded/cardExpanded.ts +2 -2
  24. package/src/modules/dx/cardMinimal/cardMinimal.html +1 -6
  25. package/src/modules/dx/cardTrial/cardTrial.css +63 -4
  26. package/src/modules/dx/cardTrial/cardTrial.html +96 -12
  27. package/src/modules/dx/cardTrial/cardTrial.ts +70 -2
  28. package/src/modules/dx/cardTrialExpanded/cardTrialExpanded.css +149 -0
  29. package/src/modules/dx/cardTrialExpanded/cardTrialExpanded.html +85 -0
  30. package/src/modules/dx/cardTrialExpanded/cardTrialExpanded.ts +67 -0
  31. package/src/modules/dx/checkbox/checkbox.css +4 -0
  32. package/src/modules/dx/codeBlock/codeBlock.ts +5 -1
  33. package/src/modules/dx/dropdown/dropdown.html +5 -1
  34. package/src/modules/dx/dropdown/dropdown.ts +13 -3
  35. package/src/modules/dx/dropdownOption/dropdownOption.css +119 -1
  36. package/src/modules/dx/dropdownOption/dropdownOption.html +4 -0
  37. package/src/modules/dx/dropdownOption/dropdownOption.ts +20 -7
  38. package/src/modules/dx/feature/feature.ts +3 -3
  39. package/src/modules/dx/featuredContentHeader/featuredContentHeader.css +84 -18
  40. package/src/modules/dx/featuredContentHeader/featuredContentHeader.html +109 -99
  41. package/src/modules/dx/featuredContentHeader/featuredContentHeader.ts +27 -7
  42. package/src/modules/dx/featuresList/featuresList.css +1 -1
  43. package/src/modules/dx/filterMenu/filterMenu.css +26 -8
  44. package/src/modules/dx/filterMenu/filterMenu.html +24 -8
  45. package/src/modules/dx/filterMenu/filterMenu.ts +1 -0
  46. package/src/modules/dx/footer/footer.css +1 -1
  47. package/src/modules/dx/footer/footer.html +25 -20
  48. package/src/modules/dx/footer/footer.ts +19 -15
  49. package/src/modules/dx/footer/links.ts +115 -39
  50. package/src/modules/dx/formattedDateTime/formattedDateTime.ts +8 -3
  51. package/src/modules/dx/header/header.html +10 -3
  52. package/src/modules/dx/header/header.ts +4 -0
  53. package/src/modules/dx/headerMobileNavMenu/headerMobileNavMenu.css +1 -0
  54. package/src/modules/dx/headerSearch/headerSearch.html +0 -1
  55. package/src/modules/dx/hr/hr.css +2 -4
  56. package/src/modules/dx/iconBadge/iconBadge.css +12 -0
  57. package/src/modules/dx/iconBadge/iconBadge.html +2 -7
  58. package/src/modules/dx/iconBadge/iconBadge.ts +15 -5
  59. package/src/modules/dx/imageAndLabel/imageAndLabel.css +0 -1
  60. package/src/modules/dx/input/input.css +17 -1
  61. package/src/modules/dx/input/input.html +5 -1
  62. package/src/modules/dx/input/input.ts +8 -0
  63. package/src/modules/dx/interactiveImage/interactiveImage.css +59 -0
  64. package/src/modules/dx/interactiveImage/interactiveImage.html +32 -0
  65. package/src/modules/dx/interactiveImage/interactiveImage.ts +71 -0
  66. package/src/modules/dx/logo/logo.css +0 -1
  67. package/src/modules/dx/logo/logo.ts +1 -1
  68. package/src/modules/dx/metadataBadge/metadataBadge.css +41 -0
  69. package/src/modules/dx/metadataBadge/metadataBadge.html +5 -0
  70. package/src/modules/dx/metadataBadge/metadataBadge.ts +24 -0
  71. package/src/modules/dx/modal/modal.css +40 -0
  72. package/src/modules/dx/modal/modal.html +10 -0
  73. package/src/modules/dx/modal/modal.ts +50 -0
  74. package/src/modules/dx/modalDrawer/modalDrawer.html +2 -2
  75. package/src/modules/dx/modalDrawer/modalDrawer.ts +7 -1
  76. package/src/modules/dx/pagination/pagination.css +1 -2
  77. package/src/modules/dx/popover/popover.css +28 -3
  78. package/src/modules/dx/popover/popover.html +1 -0
  79. package/src/modules/dx/popover/popover.ts +83 -44
  80. package/src/modules/dx/searchResults/coveo.css +18989 -0
  81. package/src/modules/dx/searchResults/searchResults.css +387 -0
  82. package/src/modules/dx/searchResults/searchResults.html +104 -0
  83. package/src/modules/dx/searchResults/searchResults.ts +187 -0
  84. package/src/modules/dx/section/section.css +10 -1
  85. package/src/modules/dx/section/section.ts +1 -1
  86. package/src/modules/dx/select/select.css +7 -3
  87. package/src/modules/dx/sidebar/sidebar.css +1 -145
  88. package/src/modules/dx/sidebar/sidebar.ts +2 -0
  89. package/src/modules/dx/sidebarOld/sidebarOld.css +1 -145
  90. package/src/modules/dx/sidebarOld/sidebarOld.ts +2 -0
  91. package/src/modules/dx/sidebarSearch/sidebarSearch.ts +23 -3
  92. package/src/modules/dx/sidebarSearchResult/sidebarSearchResult.css +1 -1
  93. package/src/modules/dx/tab/tab.css +0 -4
  94. package/src/modules/dx/tabPanel/tabPanel.css +20 -0
  95. package/src/modules/dx/tabPanel/tabPanel.html +13 -0
  96. package/src/modules/dx/tabPanel/tabPanel.ts +27 -0
  97. package/src/modules/dx/tabPanelItem/tabPanelItem.css +39 -0
  98. package/src/modules/dx/tabPanelItem/tabPanelItem.html +15 -0
  99. package/src/modules/dx/tabPanelItem/tabPanelItem.ts +39 -0
  100. package/src/modules/dx/tabPanelList/tabPanelList.css +35 -0
  101. package/src/modules/dx/tabPanelList/tabPanelList.html +47 -0
  102. package/src/modules/dx/tabPanelList/tabPanelList.ts +164 -0
  103. package/src/modules/dx/tabPanelList/uniqueId.ts +6 -0
  104. package/src/modules/dx/tbidAvatarButton/tbidAvatarButton.css +33 -0
  105. package/src/modules/dx/tbidAvatarButton/tbidAvatarButton.html +53 -0
  106. package/src/modules/dx/tbidAvatarButton/tbidAvatarButton.ts +440 -0
  107. package/src/modules/dx/toc/toc.css +1 -0
  108. package/src/modules/dx/toc/toc.ts +13 -0
  109. package/src/modules/dx/treeItem/treeItem.html +2 -0
  110. package/src/modules/dx/treeItem/treeItem.ts +8 -6
  111. package/src/modules/dx/treeTile/treeTile.css +18 -18
  112. package/src/modules/dx/treeTile/treeTile.html +5 -4
  113. package/src/modules/dx/treeTile/treeTile.ts +17 -3
  114. package/src/modules/dx/typeBadge/typeBadge.css +15 -56
  115. package/src/modules/dx/typeBadge/typeBadge.html +6 -0
  116. package/src/modules/dx/typeBadge/typeBadge.ts +149 -46
  117. package/src/modules/dxBaseElements/archiveCard/archiveCard.ts +2 -6
  118. package/src/modules/dxBaseElements/headerBase/headerBase.ts +11 -1
  119. package/src/modules/dxConstants/brands/brands.ts +14 -0
  120. package/src/modules/dxConstants/colors/colors.ts +14 -0
  121. package/src/modules/dxConstants/contentTypes/contentTypes.ts +10 -0
  122. package/src/modules/dxHelpers/card/card.css +1 -1
  123. package/src/modules/dxHelpers/commonHeader/commonHeader.css +4 -3
  124. package/src/modules/dxHelpers/commonSidebar/commonSidebar.css +145 -0
  125. package/src/modules/dxHelpers/{sidebar/sidebar.css → commonTreeItem/commonTreeItem.css} +0 -0
  126. package/src/modules/dxUtils/async/async.ts +45 -0
  127. package/src/modules/dxUtils/constants/constants.ts +0 -13
  128. package/src/modules/dxUtils/css/css.ts +10 -0
  129. package/src/modules/dxUtils/lwc/lwc.ts +9 -0
  130. package/src/modules/dxUtils/prismjs/prismjs.ts +347 -9
  131. package/src/modules/dxUtils/queryCoordinator/queryCoordinator.ts +37 -11
  132. package/LICENSE +0 -12
  133. package/src/modules/dx/typeBadgeGroup/typeBadgeGroup.css +0 -12
  134. package/src/modules/dx/typeBadgeGroup/typeBadgeGroup.html +0 -11
  135. package/src/modules/dx/typeBadgeGroup/typeBadgeGroup.ts +0 -18
@@ -1,5 +1,26 @@
1
1
  @import "dxHelpers/reset";
2
2
 
3
+ .indented-shape {
4
+ --background: rgb(170, 203, 255);
5
+ --wide: 2px;
6
+
7
+ background-color: var(--background);
8
+ height: var(--wide);
9
+ margin-bottom: var(--dx-g-spacing-xs);
10
+ margin-right: var(--dx-g-spacing-sm);
11
+ position: relative;
12
+ width: var(--shape-width);
13
+ }
14
+
15
+ .indented-shape::after {
16
+ background-color: var(--background);
17
+ bottom: 0;
18
+ content: "";
19
+ height: 15px;
20
+ position: absolute;
21
+ width: var(--wide);
22
+ }
23
+
3
24
  .option {
4
25
  display: flex;
5
26
  font-family: var(--dx-g-font-sans);
@@ -37,14 +58,27 @@
37
58
  text-align: left;
38
59
  }
39
60
 
61
+ .option-indented .option_details {
62
+ align-items: center;
63
+ flex-direction: row;
64
+ }
65
+
40
66
  .option_label {
41
- color: var(--dx-g-blue-vibrant-50);
67
+ color: var(--dx-c-dropdown-option-label-color, var(--dx-g-blue-vibrant-50));
42
68
  display: flex;
43
69
  align-items: center;
44
70
  font-weight: var(--dx-g-font-bold);
45
71
  font-size: var(--dx-c-dropdown-option-font-size, var(--dx-g-text-base));
46
72
  }
47
73
 
74
+ .option-indented .option_label {
75
+ display: -webkit-box;
76
+ max-width: 300px;
77
+ overflow: hidden;
78
+ -webkit-line-clamp: 1;
79
+ -webkit-box-orient: vertical;
80
+ }
81
+
48
82
  .option_label > *:last-child {
49
83
  margin-left: var(--dx-g-spacing-sm);
50
84
  }
@@ -59,3 +93,87 @@
59
93
  margin-right: var(--dx-g-spacing-md);
60
94
  flex-shrink: 0;
61
95
  }
96
+
97
+ .option-indented {
98
+ padding-top: var(--dx-g-spacing-xs);
99
+ padding-bottom: var(--dx-g-spacing-xs);
100
+ }
101
+
102
+ .option-indented:not([data-index="0"]) {
103
+ --base-indentation: calc(var(--dx-g-spacing-md) + var(--shape-width));
104
+ --shape-width: 8px;
105
+
106
+ padding-left: calc(var(--indentation, 0px) + var(--dx-g-spacing-md));
107
+ }
108
+
109
+ [data-index="2"] {
110
+ --indentation: var(--base-indentation);
111
+ }
112
+
113
+ [data-index="3"] {
114
+ --indentation: calc(2 * var(--base-indentation));
115
+ }
116
+
117
+ [data-index="4"] {
118
+ --indentation: calc(3 * var(--base-indentation));
119
+ }
120
+
121
+ [data-index="5"] {
122
+ --indentation: calc(4 * var(--base-indentation));
123
+ }
124
+
125
+ [data-index="6"] {
126
+ --indentation: calc(5 * var(--base-indentation));
127
+ }
128
+
129
+ [data-index="7"] {
130
+ --indentation: calc(6 * var(--base-indentation));
131
+ }
132
+
133
+ [data-index="8"] {
134
+ --indentation: calc(7 * var(--base-indentation));
135
+ }
136
+
137
+ [data-index="9"] {
138
+ --indentation: calc(8 * var(--base-indentation));
139
+ }
140
+
141
+ [data-index="10"] {
142
+ --indentation: calc(9 * var(--base-indentation));
143
+ }
144
+
145
+ [data-index="11"] {
146
+ --indentation: calc(10 * var(--base-indentation));
147
+ }
148
+
149
+ [data-index="12"] {
150
+ --indentation: calc(11 * var(--base-indentation));
151
+ }
152
+
153
+ [data-index="13"] {
154
+ --indentation: calc(12 * var(--base-indentation));
155
+ }
156
+
157
+ [data-index="14"] {
158
+ --indentation: calc(13 * var(--base-indentation));
159
+ }
160
+
161
+ [data-index="15"] {
162
+ --indentation: calc(14 * var(--base-indentation));
163
+ }
164
+
165
+ [data-index="16"] {
166
+ --indentation: calc(15 * var(--base-indentation));
167
+ }
168
+
169
+ [data-index="17"] {
170
+ --indentation: calc(16 * var(--base-indentation));
171
+ }
172
+
173
+ [data-index="18"] {
174
+ --indentation: calc(17 * var(--base-indentation));
175
+ }
176
+
177
+ [data-index="19"] {
178
+ --indentation: calc(18 * var(--base-indentation));
179
+ }
@@ -7,6 +7,7 @@
7
7
  key={option.id}
8
8
  role="menuitem"
9
9
  tabindex="-1"
10
+ data-index={indexPosition}
10
11
  onclick={onClick}
11
12
  >
12
13
  <dx-icon
@@ -17,6 +18,7 @@
17
18
  size="large"
18
19
  ></dx-icon>
19
20
  <div class="option_details">
21
+ <div if:true={renderIndentedShape} class="indented-shape"></div>
20
22
  <div class="option_label">
21
23
  {option.label}
22
24
  <dx-icon
@@ -34,6 +36,7 @@
34
36
  class={className}
35
37
  role="menuitem"
36
38
  tabindex="-1"
39
+ data-index={indexPosition}
37
40
  onclick={onClick}
38
41
  >
39
42
  <dx-icon
@@ -44,6 +47,7 @@
44
47
  size="large"
45
48
  ></dx-icon>
46
49
  <div class="option_details">
50
+ <div if:true={renderIndentedShape} class="indented-shape"></div>
47
51
  <div class="option_label">{option.label}</div>
48
52
  <div if:true={option.description} class="option_description">
49
53
  {option.description}
@@ -1,6 +1,10 @@
1
1
  import { LightningElement, api } from "lwc";
2
2
  import cx from "classnames";
3
- import { OptionWithNested } from "typings/custom";
3
+ import {
4
+ OptionWithNested,
5
+ AnalyticsPayload,
6
+ DropdownVariant
7
+ } from "typings/custom";
4
8
  import { track } from "dxUtils/analytics";
5
9
 
6
10
  export default class DropdownOption extends LightningElement {
@@ -10,6 +14,9 @@ export default class DropdownOption extends LightningElement {
10
14
  @api active: boolean = false;
11
15
  @api navItemLabel: String | null = null;
12
16
  @api analyticsEvent: string | null = null;
17
+ @api analyticsBasePayload!: AnalyticsPayload;
18
+ @api indexPosition: number = 0;
19
+ @api variant: DropdownVariant = "base";
13
20
 
14
21
  @api focus() {
15
22
  const option = this.template.querySelector(".option");
@@ -20,7 +27,15 @@ export default class DropdownOption extends LightningElement {
20
27
  }
21
28
 
22
29
  private get className(): string {
23
- return cx("option", this.active && "option-active");
30
+ return cx(
31
+ "option",
32
+ this.active && "option-active",
33
+ this.variant && `option-${this.variant}`
34
+ );
35
+ }
36
+
37
+ private get renderIndentedShape() {
38
+ return this.variant === "indented" && this.indexPosition >= 1;
24
39
  }
25
40
 
26
41
  private onClick(e: PointerEvent) {
@@ -29,13 +44,10 @@ export default class DropdownOption extends LightningElement {
29
44
  );
30
45
 
31
46
  const payload: any = {
47
+ ...this.analyticsBasePayload,
32
48
  clickText: this.keyValue || undefined,
33
- pageLocation: window.location.pathname || undefined,
34
- elementType: "dropdown",
35
- destinationType: "internal",
36
- ctaClick: true,
37
49
  itemTitle: this.option.label || undefined,
38
- clickUrl: e.target?.href || undefined
50
+ clickUrl: this.option.link?.href || undefined
39
51
  };
40
52
 
41
53
  const navHeading = this.navItemLabel || this.option.label || undefined;
@@ -45,6 +57,7 @@ export default class DropdownOption extends LightningElement {
45
57
  if (!this.suppressGtmNavHeadings) {
46
58
  payload.navHeading = navHeading;
47
59
  payload.navSubHeading = navSubHeading;
60
+ payload.pageLocation = window.location.pathname;
48
61
  }
49
62
 
50
63
  if (this.analyticsEvent && e.currentTarget) {
@@ -25,10 +25,10 @@ export default class Feature extends LightningElement {
25
25
  }
26
26
 
27
27
  get target(): string {
28
- return this.isExternalLink ? '_blank' : '_self';
28
+ return this.isExternalLink ? "_blank" : "_self";
29
29
  }
30
30
 
31
31
  get iconSymbol(): string {
32
- return this.isExternalLink ? 'new_window' : '';
32
+ return this.isExternalLink ? "new_window" : "";
33
33
  }
34
- }
34
+ }
@@ -6,13 +6,12 @@
6
6
  :host {
7
7
  width: 100%;
8
8
 
9
- --dx-c-featured-content-header-background-color: var(
10
- --dx-g-indigo-vibrant-90
11
- );
9
+ /* --dx-c-featured-content-header-background-color */
12
10
  --dx-c-tree-graphic-color: var(--dx-g-indigo-vibrant-40);
13
11
  --dx-c-featured-content-header-padding-horizontal: var(
14
12
  --dx-g-page-padding-horizontal
15
13
  );
14
+ --dx-c-featured-content-header-padding-vertical: var(--dx-g-spacing-6xl);
16
15
  --dx-c-featured-content-main-content-max-width: 840px;
17
16
  --dx-c-bottom-image-width: calc(
18
17
  100vw - var(--dx-g-page-padding-horizontal-lg) * 2
@@ -21,6 +20,8 @@
21
20
  --dx-c-moon-graphic-color: var(--dx-g-indigo-vibrant-40);
22
21
  --dx-c-featured-content-header-image-container-transform: scale(0.7)
23
22
  translateY(14px);
23
+ --dx-c-featured-content-header-swoop-display: block;
24
+ --dx-c-featured-content-header-swoop-height: 30%;
24
25
  }
25
26
 
26
27
  .container {
@@ -32,26 +33,37 @@
32
33
  /* actual spacing between bottom of graphic and rest of page content */
33
34
  --bottom-spacing: var(--dx-g-spacing-4xl);
34
35
  --item-spacing: var(--dx-g-spacing-xl);
35
- --swoop-height: 30%;
36
+ --swoop-height: var(--dx-c-featured-content-header-swoop-height);
36
37
  --swoop-inset: calc(2.5 * var(--vertical-padding));
37
38
  --swoop-z-index: 11;
39
+ --label-color: var(--dx-g-indigo-vibrant-40);
38
40
 
39
41
  position: relative;
40
- padding: var(--vertical-padding)
42
+ background: var(
43
+ --dx-c-featured-content-header-background-color,
44
+ var(--dx-g-indigo-vibrant-90)
45
+ );
46
+ }
47
+
48
+ .container-layout {
49
+ padding: var(--dx-c-featured-content-header-padding-vertical)
41
50
  var(--dx-c-featured-content-header-padding-horizontal);
42
- background-color: var(--dx-c-featured-content-header-background-color);
51
+ background-image: var(--background-image);
52
+ background-repeat: no-repeat;
53
+ background-position: top right;
54
+ background-size: contain;
43
55
  }
44
56
 
45
57
  /* LAYOUTS */
46
58
 
47
- .img-placement_inline {
59
+ .img-placement_inline .container-layout {
48
60
  display: grid;
49
61
  grid-template-areas: "label label" "main image";
50
62
  grid-template-columns: 50% auto;
51
63
  grid-gap: 0 80px;
52
64
  }
53
65
 
54
- .img-placement_below {
66
+ .img-placement_below .container-layout {
55
67
  --swoop-inset: calc(80px + 38vw);
56
68
 
57
69
  margin-bottom: calc(var(--dx-c-bottom-image-height) / 2);
@@ -64,6 +76,7 @@
64
76
  /* SWOOP SILHOUETTE */
65
77
 
66
78
  .swoop-silhouette {
79
+ display: var(--dx-c-featured-content-header-swoop-display);
67
80
  position: absolute;
68
81
  bottom: -2px;
69
82
  left: -1px;
@@ -228,6 +241,61 @@
228
241
  }
229
242
  }
230
243
 
244
+ .custom-bg-trial::after {
245
+ content: "";
246
+ background-image: url(/assets/svg/trial-left.svg),
247
+ url(/assets/svg/trial-right.svg);
248
+ background-position: var(--dx-g-page-padding-horizontal) 50px,
249
+ right 15px top;
250
+ background-repeat: no-repeat;
251
+ position: absolute;
252
+ left: 0;
253
+ top: 0;
254
+ width: 100%;
255
+ height: 100%;
256
+ }
257
+
258
+ @media screen and (max-width: 1024px) {
259
+ .custom-bg-trial::after {
260
+ background-image: url(/assets/svg/trial-left.svg);
261
+ background-position: 48px 30px;
262
+ background-size: contain;
263
+ }
264
+ }
265
+
266
+ .custom-bg-big-moon::after {
267
+ content: "";
268
+ background-image: url(/assets/svg/big-moon.svg);
269
+ background-position: top right;
270
+ background-repeat: no-repeat;
271
+ position: absolute;
272
+ right: 0;
273
+ top: 0;
274
+ width: 100%;
275
+ height: 100%;
276
+ }
277
+
278
+ .blue-circle {
279
+ display: flex;
280
+ justify-content: center;
281
+ align-items: center;
282
+ position: absolute;
283
+ background-image: url(/assets/svg/blue-circle.svg);
284
+ top: 110px;
285
+ right: 230px;
286
+ left: unset;
287
+ width: 126px;
288
+ height: 126px;
289
+ z-index: 1;
290
+ }
291
+
292
+ @media screen and (max-width: 1230px) {
293
+ .custom-bg-big-moon::after,
294
+ .blue-circle {
295
+ display: none;
296
+ }
297
+ }
298
+
231
299
  /* Z INDEX STUFF */
232
300
 
233
301
  .label,
@@ -297,7 +365,7 @@ a.image-container > img {
297
365
 
298
366
  .label {
299
367
  grid-area: label;
300
- color: var(--dx-g-indigo-vibrant-40);
368
+ color: var(--dx-c-featured-content-label-color, var(--label-color));
301
369
  padding-bottom: var(--dx-g-spacing-lg);
302
370
  }
303
371
 
@@ -321,11 +389,13 @@ dx-image-and-label {
321
389
  }
322
390
 
323
391
  /* DARK VARIANT */
392
+
324
393
  .variant_dark {
325
- background: linear-gradient(
326
- -180deg,
327
- rgb(40, 23, 153) 0%,
328
- rgb(46, 43, 182) 100%
394
+ --label-color: rgb(190, 199, 246);
395
+
396
+ background: var(
397
+ --dx-c-featured-content-header-background-color,
398
+ linear-gradient(-180deg, rgb(40, 23, 153) 0%, rgb(46, 43, 182) 100%)
329
399
  );
330
400
  }
331
401
 
@@ -333,10 +403,6 @@ dx-image-and-label {
333
403
  --dx-c-image-and-label-text-color: white;
334
404
  }
335
405
 
336
- .variant_dark .label {
337
- color: rgb(190, 199, 246);
338
- }
339
-
340
406
  .variant_dark .title,
341
407
  .variant_dark .body {
342
408
  color: white;
@@ -399,7 +465,7 @@ dx-image-and-label {
399
465
  --swoop-inset: 64px;
400
466
  }
401
467
 
402
- .img-placement_inline {
468
+ .img-placement_inline .container-layout {
403
469
  display: grid;
404
470
  grid-template-areas: "label" "image" "main";
405
471
  grid-template-columns: 100%;
@@ -1,109 +1,119 @@
1
1
  <template>
2
- <div class={classname} part="container">
3
- <template if:true={labelAsPrimaryHeading}>
4
- <h1 if:true={label} class="label dx-text-heading-4">{label}</h1>
5
- </template>
6
- <template if:false={labelAsPrimaryHeading}>
7
- <p if:true={label} class="label dx-text-heading-4">{label}</p>
8
- </template>
9
- <div class="featured-content-main-content">
10
- <template if:false={labelAsPrimaryHeading}>
11
- <h1 class="title dx-text-heading-2">
12
- <a
13
- class="title-link"
14
- if:true={href}
15
- href={href}
16
- target={target}
17
- onmouseenter={setLinkHovered}
18
- onmouseleave={setLinkInactive}
19
- >
20
- {title}
21
- </a>
22
- <template if:false={href}>{title}</template>
23
- </h1>
24
- </template>
2
+ <div class={classname} part="container" style={style}>
3
+ <div class="container-layout">
25
4
  <template if:true={labelAsPrimaryHeading}>
26
- <h2 class="title dx-text-heading-2">
27
- <a
28
- class="title-link"
29
- if:true={href}
30
- href={href}
31
- target={target}
32
- onmouseenter={setLinkHovered}
33
- onmouseleave={setLinkInactive}
34
- >
35
- {title}
36
- </a>
37
- <template if:false={href}>{title}</template>
38
- </h2>
5
+ <h1 if:true={label} class="label dx-text-heading-4">{label}</h1>
39
6
  </template>
40
- <div class="authors" if:true={authors}>
41
- <template for:each={authors} for:item="author">
42
- <dx-image-and-label
43
- key={author.key}
44
- img-src={author.imgSrc}
45
- img-size={author.imgSize}
46
- label={author.name}
47
- href={author.href}
48
- ></dx-image-and-label>
7
+ <template if:false={labelAsPrimaryHeading}>
8
+ <p if:true={label} class="label dx-text-heading-4">{label}</p>
9
+ </template>
10
+ <div class="featured-content-main-content">
11
+ <template if:false={labelAsPrimaryHeading}>
12
+ <h1 class="title dx-text-heading-2">
13
+ <a
14
+ class="title-link"
15
+ if:true={href}
16
+ href={href}
17
+ target={target}
18
+ onmouseenter={setLinkHovered}
19
+ onmouseleave={setLinkInactive}
20
+ >
21
+ {title}
22
+ </a>
23
+ <template if:false={href}>{title}</template>
24
+ </h1>
25
+ </template>
26
+ <template if:true={labelAsPrimaryHeading}>
27
+ <h2 class="title dx-text-heading-2">
28
+ <a
29
+ class="title-link"
30
+ if:true={href}
31
+ href={href}
32
+ target={target}
33
+ onmouseenter={setLinkHovered}
34
+ onmouseleave={setLinkInactive}
35
+ >
36
+ {title}
37
+ </a>
38
+ <template if:false={href}>{title}</template>
39
+ </h2>
49
40
  </template>
41
+ <div class="authors" if:true={authors}>
42
+ <template for:each={authors} for:item="author">
43
+ <dx-image-and-label
44
+ key={author.key}
45
+ img-src={author.imgSrc}
46
+ img-size={author.imgSize}
47
+ label={author.name}
48
+ href={author.href}
49
+ ></dx-image-and-label>
50
+ </template>
51
+ </div>
52
+ <span class="body dx-text-body-1">{body}</span>
53
+ <div class="slot-container">
54
+ <slot onslotchange={onSlotChange}></slot>
55
+ </div>
56
+ <div
57
+ class={backgroundImageClass}
58
+ if:true={hasBackgroundImage}
59
+ lwc:dom="manual"
60
+ ></div>
50
61
  </div>
51
- <span class="body dx-text-body-1">{body}</span>
52
- <div class="slot-container">
53
- <slot onslotchange={onSlotChange}></slot>
62
+ <div if:true={hasPlainImage} class="image-container">
63
+ <img src={imgSrc} alt={imgAlt} />
54
64
  </div>
55
- <div
56
- class={backgroundImageClass}
57
- if:true={hasBackgroundImage}
58
- lwc:dom="manual"
59
- ></div>
60
- </div>
61
- <div if:true={hasPlainImage} class="image-container">
62
- <img src={imgSrc} alt={imgAlt} />
63
- </div>
64
- <a
65
- if:true={hasLinkedImage}
66
- href={href}
67
- target={target}
68
- class="image-container"
69
- onmouseenter={setLinkHovered}
70
- onmouseleave={setLinkInactive}
71
- >
72
- <img src={imgSrc} alt={imgAlt} />
73
- </a>
74
- <template if:false={noSwoop}>
75
- <svg
76
- class="swoop-silhouette"
77
- width="1920px"
78
- height="331px"
79
- viewBox="0 0 1920 331"
80
- version="1.1"
81
- xmlns="http://www.w3.org/2000/svg"
82
- preserveAspectRatio="none"
65
+ <a
66
+ if:true={hasLinkedImage}
67
+ href={href}
68
+ target={target}
69
+ class="image-container"
70
+ onmouseenter={setLinkHovered}
71
+ onmouseleave={setLinkInactive}
83
72
  >
84
- <defs>
85
- <path
86
- d="M1920,330 L76.7313881,330.008182 C51.2800917,330.255837 25.7029624,330.372286 0,330.357528 L0,330 L76.7313881,330.008182 C789.975765,323.067922 1404.39864,213.086385 1920,0.0635708029 L1920,0.0635708029 L1920,330 Z"
87
- id="path-1"
88
- ></path>
89
- </defs>
90
- <g
91
- id="Documentation-landing-page"
92
- stroke="none"
93
- stroke-width="1"
94
- fill="none"
95
- fill-rule="evenodd"
73
+ <img src={imgSrc} alt={imgAlt} />
74
+ </a>
75
+ <template if:false={noSwoop}>
76
+ <svg
77
+ class="swoop-silhouette"
78
+ width="1920px"
79
+ height="331px"
80
+ viewBox="0 0 1920 331"
81
+ version="1.1"
82
+ xmlns="http://www.w3.org/2000/svg"
83
+ preserveAspectRatio="none"
96
84
  >
97
- <mask id="mask-2" fill="white">
98
- <use xlink:href="#path-1"></use>
99
- </mask>
100
- <use
101
- id="Combined-Shape"
102
- fill="#FFFFFF"
103
- xlink:href="#path-1"
104
- ></use>
105
- </g>
106
- </svg>
107
- </template>
85
+ <defs>
86
+ <path
87
+ d="M1920,330 L76.7313881,330.008182 C51.2800917,330.255837 25.7029624,330.372286 0,330.357528 L0,330 L76.7313881,330.008182 C789.975765,323.067922 1404.39864,213.086385 1920,0.0635708029 L1920,0.0635708029 L1920,330 Z"
88
+ id="path-1"
89
+ ></path>
90
+ </defs>
91
+ <g
92
+ id="Documentation-landing-page"
93
+ stroke="none"
94
+ stroke-width="1"
95
+ fill="none"
96
+ fill-rule="evenodd"
97
+ >
98
+ <mask id="mask-2" fill="white">
99
+ <use xlink:href="#path-1"></use>
100
+ </mask>
101
+ <use
102
+ id="Combined-Shape"
103
+ fill="#FFFFFF"
104
+ xlink:href="#path-1"
105
+ ></use>
106
+ </g>
107
+ </svg>
108
+ </template>
109
+ </div>
110
+ <div class="blue-circle" if:true={hasIcon}>
111
+ <dx-icon
112
+ class="icon"
113
+ size="2xlarge"
114
+ symbol={icon}
115
+ sprite="salesforcebrand"
116
+ ></dx-icon>
117
+ </div>
108
118
  </div>
109
119
  </template>