@salesforcedevs/dx-components 1.2.18-lightdom2 → 1.2.19-lightdom

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 (44) hide show
  1. package/package.json +1 -1
  2. package/src/modules/dx/banner/banner.css +1 -1
  3. package/src/modules/dx/banner/banner.html +2 -5
  4. package/src/modules/dx/banner/banner.ts +1 -1
  5. package/src/modules/dx/brandThemeProvider/brandThemeProvider.html +1 -1
  6. package/src/modules/dx/brandThemeProvider/brandThemeProvider.ts +3 -3
  7. package/src/modules/dx/cardCallout/cardCallout.css +4 -44
  8. package/src/modules/dx/cardCallout/cardCallout.html +1 -1
  9. package/src/modules/dx/cardCallout/cardCallout.scoped.css +45 -0
  10. package/src/modules/dx/cardCallout/cardCallout.ts +2 -0
  11. package/src/modules/dx/cardPodcastEpisode/cardPodcastEpisode.html +1 -1
  12. package/src/modules/dx/cardPodcastEpisode/cardPodcastEpisode.ts +1 -1
  13. package/src/modules/dx/cardTitle/cardTitle.css +2 -2
  14. package/src/modules/dx/cardTitle/cardTitle.html +8 -4
  15. package/src/modules/dx/cardTitle/cardTitle.ts +1 -1
  16. package/src/modules/dx/checkbox/checkbox.scoped.css +169 -0
  17. package/src/modules/dx/dropdown/dropdown.css +0 -1
  18. package/src/modules/dx/dropdown/dropdown.html +2 -2
  19. package/src/modules/dx/dropdown/dropdown.ts +1 -1
  20. package/src/modules/dx/header/header.css +4 -3
  21. package/src/modules/dx/header/header.html +1 -1
  22. package/src/modules/dx/header/header.ts +2 -2
  23. package/src/modules/dx/headerMobileNavMenu/headerMobileNavMenu.css +1 -1
  24. package/src/modules/dx/headerMobileNavMenu/headerMobileNavMenu.html +13 -6
  25. package/src/modules/dx/headerMobileNavMenu/headerMobileNavMenu.scoped.css +1 -1
  26. package/src/modules/dx/headerMobileNavMenu/headerMobileNavMenu.ts +2 -4
  27. package/src/modules/dx/headerNav/headerNav.html +5 -2
  28. package/src/modules/dx/headerNav/headerNav.scoped.css +1 -1
  29. package/src/modules/dx/headerNav/headerNav.ts +2 -2
  30. package/src/modules/dx/headerSearch/headerSearch.css +1 -1
  31. package/src/modules/dx/headerSearch/headerSearch.html +3 -3
  32. package/src/modules/dx/headerSearch/headerSearch.ts +2 -2
  33. package/src/modules/dx/icon/icon.css +2 -1
  34. package/src/modules/dx/icon/icon.html +1 -1
  35. package/src/modules/dx/icon/icon.ts +2 -2
  36. package/src/modules/dx/logo/logo.html +1 -1
  37. package/src/modules/dx/logo/logo.ts +2 -2
  38. package/src/modules/dx/relativeDateTime/relativeDateTime.html +1 -1
  39. package/src/modules/dx/relativeDateTime/relativeDateTime.scoped.css +1 -1
  40. package/src/modules/dx/relativeDateTime/relativeDateTime.ts +1 -1
  41. package/src/modules/dx/skipNavLink/skipNavLink.html +1 -1
  42. package/src/modules/dx/skipNavLink/skipNavLink.ts +1 -2
  43. package/src/modules/dx/tooltip/microtip.css +105 -101
  44. package/src/modules/dxHelpers/card/card.css +2 -2
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@salesforcedevs/dx-components",
3
- "version": "1.2.18-lightdom2",
3
+ "version": "1.2.19-lightdom",
4
4
  "description": "DX Lightning web components",
5
5
  "license": "MIT",
6
6
  "engines": {
@@ -11,4 +11,4 @@
11
11
  .container dx-icon {
12
12
  margin-right: var(--dx-g-spacing-sm);
13
13
  margin-top: var(--dx-g-spacing-2xs);
14
- }
14
+ }
@@ -1,4 +1,4 @@
1
- <template lwc:render-mode='light'>
1
+ <template lwc:render-mode="light">
2
2
  <div class="container">
3
3
  <div class="container_inner dx-text-body-4">
4
4
  <dx-icon symbol="announcement"></dx-icon>
@@ -7,10 +7,7 @@
7
7
  option instead of slots because the html markup will come as a
8
8
  property to the component from a configuration
9
9
  -->
10
- <div
11
- class="info-container"
12
- lwc:inner-html={content}
13
- ></div>
10
+ <div class="info-container"></div>
14
11
  </div>
15
12
  </div>
16
13
  </template>
@@ -2,7 +2,7 @@ import { LightningElement, api } from "lwc";
2
2
  import { setContainerInnerHtml } from "dxUtils/lwc";
3
3
 
4
4
  export default class Banner extends LightningElement {
5
- static renderMode = 'light';
5
+ static renderMode = "light";
6
6
 
7
7
  @api bannerMarkup =
8
8
  'Thank you for visiting the Salesforce Developers website! <span><a href="https://forms.gle/oWYTbH9RvGyt9uxx7" target="blank">We value your feedback</a></span>';
@@ -1,4 +1,4 @@
1
- <template lwc:render-mode='light'>
1
+ <template lwc:render-mode="light">
2
2
  <slot></slot>
3
3
  <div id="extra_brand_styles"></div>
4
4
  </template>
@@ -15,8 +15,8 @@ export const toCss = (brand: Brand | null) => `
15
15
  `;
16
16
 
17
17
  export default class BrandThemeProvider extends LightningElement {
18
- static renderMode = 'light';
19
-
18
+ static renderMode = "light";
19
+
20
20
  @api brand: Brand | null = null;
21
21
 
22
22
  private get css() {
@@ -34,7 +34,7 @@ export default class BrandThemeProvider extends LightningElement {
34
34
  setBrandVars() {
35
35
  let style = this.querySelector("style");
36
36
 
37
- if(!style) {
37
+ if (!style) {
38
38
  style = document.createElement("style");
39
39
  this.querySelector("#extra_brand_styles")?.appendChild(style);
40
40
  }
@@ -1,57 +1,17 @@
1
- @import "dxHelpers/reset";
2
- @import "dxHelpers/text";
3
- @import "dxHelpers/card";
4
-
5
- .card-callout {
6
- position: relative;
7
- display: flex;
8
- flex-direction: column;
9
- }
10
-
11
- /* in the callout card's case it needs to be subservient to the other items in the grid */
12
- .dx-card-base_override-width {
13
- height: 100% !important;
14
- min-height: unset !important;
15
- }
16
-
17
- /* title */
18
-
19
- .dx-text-heading-3 {
20
- color: inherit;
21
- margin-bottom: var(--dx-g-spacing-3xl);
22
- overflow-wrap: hyphenate-word;
23
- hyphens: overflow;
24
- }
25
-
26
- /* label */
27
-
28
- .dx-text-button-light {
29
- color: inherit;
30
- margin-top: auto;
31
- }
32
-
33
- /* callout arrow */
34
-
35
- dx-icon {
1
+ dx-card-callout dx-icon {
36
2
  display: inline;
37
3
  color: inherit;
38
4
  margin-left: var(--dx-g-spacing-sm);
39
5
  }
40
6
 
41
- dx-icon::part(svg) {
7
+ dx-card-callout dx-icon svg {
42
8
  transition: var(--dx-g-transition-transform-2x);
43
9
  }
44
10
 
45
- .card-callout:hover dx-icon::part(svg) {
11
+ .card-callout:hover dx-icon svg {
46
12
  transform: translate(var(--dx-g-spacing-xs));
47
13
  }
48
14
 
49
- .card-callout:active dx-icon::part(svg) {
15
+ .card-callout:active dx-icon svg {
50
16
  transform: translate(var(--dx-g-spacing-2xs));
51
17
  }
52
-
53
- @media screen and (max-width: 1024px) {
54
- .dx-text-heading-3 {
55
- margin-bottom: var(--dx-g-spacing-xl);
56
- }
57
- }
@@ -1,4 +1,4 @@
1
- <template>
1
+ <template lwc:render-mode="light">
2
2
  <a
3
3
  class={className}
4
4
  href={href}
@@ -0,0 +1,45 @@
1
+ :host {
2
+ display: block;
3
+
4
+ --dx-g-card-border: 1px solid var(--dx-g-gray-90);
5
+ --dx-g-card-border-radius: 16px;
6
+ --dx-g-card-item-spacing: 12px;
7
+ --dx-g-card-img-spacing: 20px;
8
+ --dx-c-body-max-lines: 6;
9
+ }
10
+
11
+ .card-callout {
12
+ position: relative;
13
+ display: flex;
14
+ flex-direction: column;
15
+ }
16
+
17
+ /* in the callout card's case it needs to be subservient to the other items in the grid */
18
+ .dx-card-base_override-width {
19
+ height: 100% !important;
20
+ min-height: unset !important;
21
+ }
22
+
23
+ /* title */
24
+
25
+ .dx-text-heading-3 {
26
+ color: inherit;
27
+ margin-bottom: var(--dx-g-spacing-3xl);
28
+ overflow-wrap: hyphenate-word;
29
+ hyphens: overflow;
30
+ }
31
+
32
+ /* label */
33
+
34
+ .dx-text-button-light {
35
+ color: inherit;
36
+ margin-top: auto;
37
+ }
38
+
39
+ /* callout arrow */
40
+
41
+ @media screen and (max-width: 1024px) {
42
+ .dx-text-heading-3 {
43
+ margin-bottom: var(--dx-g-spacing-xl);
44
+ }
45
+ }
@@ -6,6 +6,8 @@ import { track } from "dxUtils/analytics";
6
6
  export const ANALYTICS_EVENT_NAME = "custEv_ctaLinkClick";
7
7
 
8
8
  export default class CardCallout extends LightningElement {
9
+ static renderMode = "light";
10
+
9
11
  @api backgroundColor: string = "indigo-vibrant-40";
10
12
  @api color: string = "white";
11
13
  @api href!: string;
@@ -1,4 +1,4 @@
1
- <template lwc:render-mode='light'>
1
+ <template lwc:render-mode="light">
2
2
  <div class={className}>
3
3
  <div class="dx-card-base_section-horizontal">
4
4
  <a
@@ -2,7 +2,7 @@ import { LightningElement, api } from "lwc";
2
2
  import cx from "classnames";
3
3
 
4
4
  export default class CardPodcastEpisode extends LightningElement {
5
- static renderMode = 'light';
5
+ static renderMode = "light";
6
6
  @api body!: string;
7
7
  @api datetime!: string;
8
8
  @api dateTime?: string | null = null;
@@ -6,7 +6,7 @@ dx-card-title {
6
6
  --dx-c-card-title-icon-size: 22px;
7
7
  }
8
8
 
9
- dx-icon {
9
+ dx-card-title dx-icon {
10
10
  --dx-c-icon-size: var(--dx-c-card-title-icon-size);
11
11
 
12
12
  display: inline-flex;
@@ -18,4 +18,4 @@ dx-icon {
18
18
  dx-icon {
19
19
  --dx-c-card-title-icon-size: 20px;
20
20
  }
21
- }
21
+ }
@@ -1,16 +1,20 @@
1
- <template lwc:render-mode='light'>
1
+ <template lwc:render-mode="light">
2
2
  <h3 class="dx-text-heading-4">
3
3
  <a if:true={href} href={href} target={target}>
4
4
  {titleToWrap}
5
- <template if:true={needsSpace} lwc:render-mode='light'>&#32;</template>
5
+ <template if:true={needsSpace}>
6
+ &#32;
7
+ </template>
6
8
  <span class="nowrap" if:true={isExternal}>
7
9
  {titleNoWrap}&nbsp;
8
10
  <dx-icon symbol="new_window" size="override"></dx-icon>
9
11
  </span>
10
12
  </a>
11
- <template if:false={href} lwc:render-mode='light'>
13
+ <template if:false={href}>
12
14
  {titleToWrap}
13
- <template if:true={needsSpace} lwc:render-mode='light'>&#32;</template>
15
+ <template if:true={needsSpace}>
16
+ &#32;
17
+ </template>
14
18
  <span class="nowrap" if:true={isExternal}>
15
19
  {titleNoWrap}&nbsp;
16
20
  <dx-icon symbol="new_window" size="override"></dx-icon>
@@ -1,7 +1,7 @@
1
1
  import { LightningElement, api } from "lwc";
2
2
 
3
3
  export default class CardTitle extends LightningElement {
4
- static renderMode = 'light';
4
+ static renderMode = "light";
5
5
  @api href!: string;
6
6
  @api target?: string | null = null;
7
7
  @api title!: string;
@@ -0,0 +1,169 @@
1
+ :host {
2
+ display: block;
3
+ }
4
+
5
+ .container {
6
+ --error-color: var(--dx-g-red-vibrant-50);
7
+
8
+ display: flex;
9
+ flex-direction: column;
10
+ align-items: flex-start;
11
+ }
12
+
13
+ .checkbox-label,
14
+ input {
15
+ cursor: pointer;
16
+ }
17
+
18
+ label {
19
+ display: var(--dx-c-checkbox-display, flex);
20
+ align-items: var(--dx-c-checkbox-align-label, flex-start);
21
+ }
22
+
23
+ input {
24
+ flex-shrink: 0;
25
+ margin: 0;
26
+ }
27
+
28
+ .checkbox-label {
29
+ line-height: var(--dx-c-checkbox-text-line-height, 20px);
30
+ font-size: var(--dx-c-checkbox-font-size, --dx-g-text-base);
31
+ transform: translateY(-2px);
32
+ padding-left: 12px;
33
+ }
34
+
35
+ .checkbox-label::first-letter {
36
+ text-transform: uppercase;
37
+ }
38
+
39
+ .checkbox-error {
40
+ opacity: 0;
41
+ margin-top: var(--dx-g-spacing-xs);
42
+ user-select: none;
43
+ }
44
+
45
+ input:disabled {
46
+ cursor: not-allowed;
47
+ opacity: 0.9;
48
+ }
49
+
50
+ input:disabled + .checkbox-label {
51
+ cursor: not-allowed;
52
+ color: var(--sds-g-gray-9);
53
+ }
54
+
55
+ .container.show-error .checkbox-error {
56
+ opacity: 1;
57
+ user-select: auto;
58
+ }
59
+
60
+ /* adapted from https://css-tricks.com/custom-styling-form-inputs-with-modern-css-features/ */
61
+ @supports (-webkit-appearance: none) or (-moz-appearance: none) {
62
+ input {
63
+ --active-color: var(--dx-g-blue-vibrant-50);
64
+ --active-inner-color: #fff;
65
+ --focus-shadow: 1px var(--dx-g-blue-vibrant-80);
66
+ --border-color: var(--sds-g-gray-5);
67
+ --border-color-hover: var(--sds-g-gray-6);
68
+ --background: #fff;
69
+ --disabled-color: var(--sds-g-gray-4);
70
+ --disabled-inner-color: var(--dx-g-gray-60);
71
+ --size: var(--dx-g-spacing-md);
72
+
73
+ -webkit-appearance: none;
74
+ -moz-appearance: none;
75
+ height: var(--size);
76
+ width: var(--size);
77
+ outline: none;
78
+ display: inline-block;
79
+ vertical-align: top;
80
+ position: relative;
81
+ cursor: pointer;
82
+ border: 1px solid var(--border-color-override, var(--border-color));
83
+ background: var(--background-override, var(--background));
84
+ transition: var(--dx-g-transition-box-shadow-1x),
85
+ var(--dx-g-transition-hue-1x);
86
+ }
87
+
88
+ input::after {
89
+ content: "";
90
+ display: block;
91
+ left: 0;
92
+ top: 0;
93
+ position: absolute;
94
+ opacity: var(--opacity, 0);
95
+ transition: transform var(--transition-duration-transform, 0.3s)
96
+ var(--transition-easing-transorm, ease),
97
+ opacity var(--transition-duration-opacity, 0.2s);
98
+ }
99
+
100
+ input[type="checkbox"] {
101
+ border-radius: 2px;
102
+ }
103
+
104
+ input[type="radio"] {
105
+ border-radius: 50%;
106
+ }
107
+
108
+ input:disabled {
109
+ --background-override: var(--disabled-color);
110
+ }
111
+
112
+ input:focus {
113
+ box-shadow: 0 0 0 var(--focus-shadow);
114
+ }
115
+
116
+ input:checked {
117
+ --opacity: 1;
118
+ --transition-duration-opacity: 0.3s;
119
+ --transition-duration-transform: 0.6s;
120
+ --transition-easing-transorm: cubic-bezier(0.2, 0.85, 0.32, 1.2);
121
+ }
122
+
123
+ input:disabled:checked {
124
+ --border-color-override: var(--border-color);
125
+ }
126
+
127
+ input:hover:not(:disabled) {
128
+ --border-color-override: var(--border-color-hover);
129
+ }
130
+
131
+ input[type="checkbox"]::after {
132
+ --checkbox-width: 4px;
133
+ --checkbox-height: 8px;
134
+
135
+ width: var(--checkbox-width);
136
+ height: var(--checkbox-height);
137
+ border: 2px solid var(--active-color);
138
+ border-top: 0;
139
+ border-left: 0;
140
+ left: calc(50% - var(--checkbox-width) / 2);
141
+ top: calc(50% - var(--checkbox-height) / 2);
142
+ transform: rotate(var(--checkbox-rotation, 20deg));
143
+ }
144
+
145
+ input[type="checkbox"]:checked {
146
+ --checkbox-rotation: 43deg;
147
+ }
148
+
149
+ input[type="radio"]::after {
150
+ --opacity: 0;
151
+
152
+ width: 8px;
153
+ height: 8px;
154
+ border-radius: 50%;
155
+ background: var(--active-color);
156
+ margin: 3px;
157
+ transition: var(--dx-g-transition-hue-1x);
158
+ }
159
+
160
+ input:checked[type="radio"]::after {
161
+ --opacity: 1;
162
+ }
163
+
164
+ .container.show-error input {
165
+ --border-color-override: var(--error-color) !important;
166
+
167
+ box-shadow: 0 0 0 1px var(--error-color) !important;
168
+ }
169
+ }
@@ -1,4 +1,3 @@
1
-
2
1
  dx-dropdown dx-button {
3
2
  --dx-c-button-primary-color: var(--button-primary-color);
4
3
  --dx-c-button-primary-color-hover: var(--button-primary-color-hover);
@@ -1,4 +1,4 @@
1
- <template lwc:render-mode='light'>
1
+ <template lwc:render-mode="light">
2
2
  <dx-popover
3
3
  aria-label={ariaLabel}
4
4
  class={className}
@@ -13,7 +13,7 @@
13
13
  width={width}
14
14
  >
15
15
  <div slot="control">
16
- <slot></slot>
16
+ <slot></slot>
17
17
  </div>
18
18
  <div
19
19
  class="menu_list"
@@ -20,7 +20,7 @@ interface DropdownOption extends OptionWithNested {
20
20
  }
21
21
 
22
22
  export default class Dropdown extends LightningElement {
23
- static renderMode = 'light';
23
+ static renderMode = "light";
24
24
 
25
25
  @api value: string | null = null; // "active option" id
26
26
  @api valuePath: string = "id"; // path to match for the active value (useful for url matching)
@@ -3,9 +3,10 @@
3
3
  @import "dxHelpers/reset";
4
4
  @import "dxHelpers/card";
5
5
 
6
- dx-header { /* TODO: these variables definitely aren't getting picked up correctly */
6
+ dx-header {
7
+ /* TODO: these variables definitely aren't getting picked up correctly */
7
8
  z-index: var(--dx-g-z-index-500);
8
-
9
+
9
10
  --dx-c-header-search-width: 316px;
10
11
  --dx-g-text-xs: 14px;
11
- }
12
+ }
@@ -1,4 +1,4 @@
1
- <template lwc:render-mode='light'>
1
+ <template lwc:render-mode="light">
2
2
  <dx-brand-theme-provider brand={brand}>
3
3
  <header class={className}>
4
4
  <dx-skip-nav-link></dx-skip-nav-link>
@@ -1,8 +1,8 @@
1
1
  import { HeaderBase } from "dxBaseElements/headerBase";
2
2
 
3
3
  export default class Header extends HeaderBase {
4
- static renderMode = 'light';
5
-
4
+ static renderMode = "light";
5
+
6
6
  private get showSignup(): boolean {
7
7
  return this.signupLink
8
8
  ? (this.mobile && !this.isSearchOpen) || !this.mobile
@@ -13,4 +13,4 @@ header-mobile-nav-menu {
13
13
  --dx-g-brand-default-button-color-background-inactive-hover
14
14
  );
15
15
  --dx-c-color-border-2: var(--dx-g-brand-default-color-border-2);
16
- }
16
+ }
@@ -1,4 +1,4 @@
1
- <template lwc:render-mode='light'>
1
+ <template lwc:render-mode="light">
2
2
  <nav
3
3
  aria-label="Navigation Menu"
4
4
  class={className}
@@ -6,7 +6,10 @@
6
6
  onscroll={onScroll}
7
7
  >
8
8
  <ul>
9
- <template for:each={navItems} for:item="navItem" lwc:render-mode='light'>
9
+ <template
10
+ for:each={navItems}
11
+ for:item="navItem"
12
+ >
10
13
  <li
11
14
  class={navItem.liClassName}
12
15
  key={navItem.id}
@@ -38,17 +41,21 @@
38
41
  size="medium"
39
42
  ></dx-icon>
40
43
  </button>
41
- <template if:true={navItem.options} lwc:render-mode='light'>
42
- <template for:each={navItem.options} for:item="options" lwc:render-mode='light'>
44
+ <template if:true={navItem.options}>
45
+ <template
46
+ for:each={navItem.options}
47
+ for:item="options"
48
+ >
43
49
  <div
44
50
  class="nav-menu_item_cta-options"
45
51
  key={options.id}
46
52
  >
47
- <template if:true={options.options} lwc:render-mode='light'>
53
+ <template
54
+ if:true={options.options}
55
+ >
48
56
  <template
49
57
  for:each={options.options}
50
58
  for:item="navSubItem"
51
- lwc:render-mode='light'
52
59
  >
53
60
  <dx-header-mobile-nav-menu-option
54
61
  key={navSubItem.id}
@@ -139,4 +139,4 @@
139
139
  visibility: hidden;
140
140
  transform: translateY(-16px);
141
141
  pointer-events: none;
142
- }
142
+ }
@@ -4,7 +4,7 @@ import { OptionWithNested } from "typings/custom";
4
4
  import { deepmapOptions } from "dxUtils/options";
5
5
 
6
6
  export default class HeaderMobileNavMenu extends LightningElement {
7
- static renderMode = 'light';
7
+ static renderMode = "light";
8
8
 
9
9
  @api open: boolean = false;
10
10
  @api value: string | null = null;
@@ -75,9 +75,7 @@ export default class HeaderMobileNavMenu extends LightningElement {
75
75
  }
76
76
 
77
77
  private scrollToAccordianSection() {
78
- const element = this.querySelector(
79
- `li[data-id="${this.value}"]`
80
- );
78
+ const element = this.querySelector(`li[data-id="${this.value}"]`);
81
79
  const container = this.querySelector(".nav-menu");
82
80
  if (element && container) {
83
81
  container.scrollTop = element.offsetTop - 8;
@@ -1,7 +1,10 @@
1
- <template lwc:render-mode='light'>
1
+ <template lwc:render-mode="light">
2
2
  <nav role="navigation" aria-label={ariaLabel}>
3
3
  <ul class="nav-list">
4
- <template for:each={navItems} for:item="navItem" lwc:render-mode='light'>
4
+ <template
5
+ for:each={navItems}
6
+ for:item="navItem"
7
+ >
5
8
  <li key={navItem.id}>
6
9
  <dx-tab
7
10
  if:false={navItem.options}
@@ -22,7 +22,7 @@ nav {
22
22
  .nav-list-item-nav-menu {
23
23
  display: flex;
24
24
  }
25
-
25
+
26
26
  dx-dropdown {
27
27
  display: none;
28
28
  }
@@ -1,8 +1,8 @@
1
1
  import { LightningElement, api } from "lwc";
2
2
  import { TabVariant, OptionWithNested } from "typings/custom";
3
3
  export default class HeaderNav extends LightningElement {
4
- static renderMode = 'light';
5
-
4
+ static renderMode = "light";
5
+
6
6
  @api pathname: string | null = null;
7
7
  @api variant: TabVariant = "default";
8
8
  @api ariaLabel: string = "Primary Navigation";
@@ -1,3 +1,3 @@
1
1
  dx-header-search {
2
2
  --toggle-width: var(--dx-g-spacing-5xl);
3
- }
3
+ }
@@ -1,7 +1,7 @@
1
- <template lwc:render-mode='light'>
1
+ <template lwc:render-mode="light">
2
2
  <div class={className} role="search" aria-label="Records Search">
3
3
  <!-- MOBILE -->
4
- <template if:true={mobile} lwc:render-mode='light'>
4
+ <template if:true={mobile}>
5
5
  <dx-dropdown
6
6
  aria-label="Record Type"
7
7
  class="mobile_search-dropdown"
@@ -37,7 +37,7 @@
37
37
  </template>
38
38
 
39
39
  <!-- DESKTOP -->
40
- <template if:false={mobile} lwc:render-mode='light'>
40
+ <template if:false={mobile}>
41
41
  <dx-dropdown
42
42
  options={suggestions}
43
43
  open={isDropdownOpen}
@@ -12,8 +12,8 @@ import {
12
12
  const baseSearchHref = `/search`;
13
13
 
14
14
  export default class HeaderSearch extends LightningElement {
15
- static renderMode = 'light';
16
-
15
+ static renderMode = "light";
16
+
17
17
  @api mobile!: boolean;
18
18
  @api coveoOrganizationId!: string;
19
19
  @api coveoPublicAccessToken!: string;
@@ -1,9 +1,10 @@
1
1
  dx-icon {
2
2
  display: block;
3
+
3
4
  --dx-c-icon-color: currentColor;
4
5
  }
5
6
 
6
- svg {
7
+ dx-icon svg {
7
8
  display: inherit;
8
9
  fill: var(--dx-c-icon-color);
9
10
  height: var(--dx-c-icon-size);
@@ -1,4 +1,4 @@
1
- <template lwc:render-mode='light'>
1
+ <template lwc:render-mode="light">
2
2
  <svg
3
3
  aria-hidden="true"
4
4
  style={style}
@@ -14,8 +14,8 @@ const sizeMap = {
14
14
  };
15
15
 
16
16
  export default class Icon extends LightningElement {
17
- static renderMode = 'light';
18
-
17
+ static renderMode = "light";
18
+
19
19
  @api sprite: IconSprite = "utility";
20
20
  @api size: IconSize = "small";
21
21
  @api symbol!: IconSymbol;
@@ -1,4 +1,4 @@
1
- <template lwc:render-mode='light'>
1
+ <template lwc:render-mode="light">
2
2
  <a href={href} class="logo-link">
3
3
  <img src={imgSrc} alt={imgAlt} />
4
4
  <span class="dx-text-heading-7">{label}</span>
@@ -1,8 +1,8 @@
1
1
  import { LightningElement, api } from "lwc";
2
2
 
3
3
  export default class Logo extends LightningElement {
4
- static renderMode = 'light';
5
-
4
+ static renderMode = "light";
5
+
6
6
  @api href: string = "/";
7
7
  @api imgSrc: string = "/assets/svg/salesforce-cloud.svg";
8
8
  @api imgAlt: string = "Salesforce log";
@@ -1,3 +1,3 @@
1
- <template lwc:render-mode='light'>
1
+ <template lwc:render-mode="light">
2
2
  <time title={original}>{value}</time>
3
3
  </template>
@@ -1,3 +1,3 @@
1
1
  time {
2
2
  font-family: var(--dx-g-font-display);
3
- }
3
+ }
@@ -1,7 +1,7 @@
1
1
  import { LightningElement, api } from "lwc";
2
2
 
3
3
  export default class RelativeDateTime extends LightningElement {
4
- static renderMode = 'light';
4
+ static renderMode = "light";
5
5
  @api messageWhenHoursPast: String = "";
6
6
  @api messageWhenDaysPast: String = "";
7
7
  @api messageWhenWeeksPast: String = "";
@@ -1,3 +1,3 @@
1
- <template lwc:render-mode='light'>
1
+ <template lwc:render-mode="light">
2
2
  <a class="dx-text-button-light" href="#maincontent">Skip Navigation</a>
3
3
  </template>
@@ -1,6 +1,5 @@
1
1
  import { LightningElement } from "lwc";
2
2
 
3
3
  export default class SkipNavLink extends LightningElement {
4
- static renderMode = 'light';
5
-
4
+ static renderMode = "light";
6
5
  }
@@ -1,5 +1,6 @@
1
1
  /* Code generated by scripts/postinstall.js DO NOT EDIT*/
2
2
 
3
+
3
4
  /* -------------------------------------------------------------------
4
5
  Microtip
5
6
 
@@ -15,251 +16,254 @@
15
16
  3. Position Modifiers
16
17
  --------------------------------------------------------------------*/
17
18
 
19
+
18
20
  /* ------------------------------------------------
19
21
  [1] Base Styles
20
22
  -------------------------------------------------*/
21
23
 
22
24
  [aria-label][role~="tooltip"] {
23
- position: relative;
25
+ position: relative;
24
26
  }
25
27
 
26
28
  [aria-label][role~="tooltip"]::before,
27
29
  [aria-label][role~="tooltip"]::after {
28
- transform: translate3d(0, 0, 0);
29
- -webkit-backface-visibility: hidden;
30
- backface-visibility: hidden;
31
- will-change: transform;
32
- opacity: 0;
33
- pointer-events: none;
34
- transition: all var(--microtip-transition-duration, 0.18s)
35
- var(--microtip-transition-easing, ease-in-out)
36
- var(--microtip-transition-delay, 0s);
37
- position: absolute;
38
- box-sizing: border-box;
39
- z-index: 10;
40
- transform-origin: top;
30
+ transform: translate3d(0, 0, 0);
31
+ -webkit-backface-visibility: hidden;
32
+ backface-visibility: hidden;
33
+ will-change: transform;
34
+ opacity: 0;
35
+ pointer-events: none;
36
+ transition: all var(--microtip-transition-duration, .18s) var(--microtip-transition-easing, ease-in-out) var(--microtip-transition-delay, 0s);
37
+ position: absolute;
38
+ box-sizing: border-box;
39
+ z-index: 10;
40
+ transform-origin: top;
41
41
  }
42
42
 
43
43
  [aria-label][role~="tooltip"]::before {
44
- background-size: 100% auto !important;
45
- content: "";
44
+ background-size: 100% auto !important;
45
+ content: "";
46
46
  }
47
47
 
48
48
  [aria-label][role~="tooltip"]::after {
49
- background: rgba(17, 17, 17, 0.9);
50
- border-radius: 4px;
51
- color: #ffffff;
52
- content: attr(aria-label);
53
- font-size: var(--microtip-font-size, 13px);
54
- font-weight: var(--microtip-font-weight, normal);
55
- text-transform: var(--microtip-text-transform, none);
56
- padding: 0.5em 1em;
57
- white-space: nowrap;
58
- box-sizing: content-box;
49
+ background: rgba(17, 17, 17, .9);
50
+ border-radius: 4px;
51
+ color: #ffffff;
52
+ content: attr(aria-label);
53
+ font-size: var(--microtip-font-size, 13px);
54
+ font-weight: var(--microtip-font-weight, normal);
55
+ text-transform: var(--microtip-text-transform, none);
56
+ padding: .5em 1em;
57
+ white-space: nowrap;
58
+ box-sizing: content-box;
59
59
  }
60
60
 
61
61
  [aria-label][role~="tooltip"]:hover::before,
62
62
  [aria-label][role~="tooltip"]:hover::after,
63
63
  [aria-label][role~="tooltip"]:focus::before,
64
64
  [aria-label][role~="tooltip"]:focus::after {
65
- opacity: 1;
66
- pointer-events: auto;
65
+ opacity: 1;
66
+ pointer-events: auto;
67
67
  }
68
68
 
69
+
70
+
69
71
  /* ------------------------------------------------
70
72
  [2] Position Modifiers
71
73
  -------------------------------------------------*/
72
74
 
73
75
  [role~="tooltip"][data-microtip-position|="top"]::before {
74
- background: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2236px%22%20height%3D%2212px%22%3E%3Cpath%20fill%3D%22rgba%2817,%2017,%2017,%200.9%29%22%20transform%3D%22rotate%280%29%22%20d%3D%22M2.658,0.000%20C-13.615,0.000%2050.938,0.000%2034.662,0.000%20C28.662,0.000%2023.035,12.002%2018.660,12.002%20C14.285,12.002%208.594,0.000%202.658,0.000%20Z%22/%3E%3C/svg%3E")
75
- no-repeat;
76
- height: 6px;
77
- width: 18px;
78
- margin-bottom: 5px;
76
+ background: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2236px%22%20height%3D%2212px%22%3E%3Cpath%20fill%3D%22rgba%2817,%2017,%2017,%200.9%29%22%20transform%3D%22rotate%280%29%22%20d%3D%22M2.658,0.000%20C-13.615,0.000%2050.938,0.000%2034.662,0.000%20C28.662,0.000%2023.035,12.002%2018.660,12.002%20C14.285,12.002%208.594,0.000%202.658,0.000%20Z%22/%3E%3C/svg%3E") no-repeat;
77
+ height: 6px;
78
+ width: 18px;
79
+ margin-bottom: 5px;
79
80
  }
80
81
 
81
82
  [role~="tooltip"][data-microtip-position|="top"]::after {
82
- margin-bottom: 11px;
83
+ margin-bottom: 11px;
83
84
  }
84
85
 
85
86
  [role~="tooltip"][data-microtip-position|="top"]::before {
86
- transform: translate3d(-50%, 0, 0);
87
- bottom: 100%;
88
- left: 50%;
87
+ transform: translate3d(-50%, 0, 0);
88
+ bottom: 100%;
89
+ left: 50%;
89
90
  }
90
91
 
91
92
  [role~="tooltip"][data-microtip-position|="top"]:hover::before {
92
- transform: translate3d(-50%, -5px, 0);
93
+ transform: translate3d(-50%, -5px, 0);
93
94
  }
94
95
 
95
96
  [role~="tooltip"][data-microtip-position|="top"]::after {
96
- transform: translate3d(-50%, 0, 0);
97
- bottom: 100%;
98
- left: 50%;
97
+ transform: translate3d(-50%, 0, 0);
98
+ bottom: 100%;
99
+ left: 50%;
99
100
  }
100
101
 
101
102
  [role~="tooltip"][data-microtip-position="top"]:hover::after {
102
- transform: translate3d(-50%, -5px, 0);
103
+ transform: translate3d(-50%, -5px, 0);
103
104
  }
104
105
 
105
106
  /* ------------------------------------------------
106
107
  [2.1] Top Left
107
108
  -------------------------------------------------*/
108
109
  [role~="tooltip"][data-microtip-position="top-left"]::after {
109
- transform: translate3d(calc(-100% + 16px), 0, 0);
110
- bottom: 100%;
110
+ transform: translate3d(calc(-100% + 16px), 0, 0);
111
+ bottom: 100%;
111
112
  }
112
113
 
113
114
  [role~="tooltip"][data-microtip-position="top-left"]:hover::after {
114
- transform: translate3d(calc(-100% + 16px), -5px, 0);
115
+ transform: translate3d(calc(-100% + 16px), -5px, 0);
115
116
  }
116
117
 
118
+
117
119
  /* ------------------------------------------------
118
120
  [2.2] Top Right
119
121
  -------------------------------------------------*/
120
122
  [role~="tooltip"][data-microtip-position="top-right"]::after {
121
- transform: translate3d(calc(0% + -16px), 0, 0);
122
- bottom: 100%;
123
+ transform: translate3d(calc(0% + -16px), 0, 0);
124
+ bottom: 100%;
123
125
  }
124
126
 
125
127
  [role~="tooltip"][data-microtip-position="top-right"]:hover::after {
126
- transform: translate3d(calc(0% + -16px), -5px, 0);
128
+ transform: translate3d(calc(0% + -16px), -5px, 0);
127
129
  }
128
130
 
131
+
129
132
  /* ------------------------------------------------
130
133
  [2.3] Bottom
131
134
  -------------------------------------------------*/
132
135
  [role~="tooltip"][data-microtip-position|="bottom"]::before {
133
- background: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2236px%22%20height%3D%2212px%22%3E%3Cpath%20fill%3D%22rgba%2817,%2017,%2017,%200.9%29%22%20transform%3D%22rotate%28180%2018%206%29%22%20d%3D%22M2.658,0.000%20C-13.615,0.000%2050.938,0.000%2034.662,0.000%20C28.662,0.000%2023.035,12.002%2018.660,12.002%20C14.285,12.002%208.594,0.000%202.658,0.000%20Z%22/%3E%3C/svg%3E")
134
- no-repeat;
135
- height: 6px;
136
- width: 18px;
137
- margin-top: 5px;
138
- margin-bottom: 0;
136
+ background: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2236px%22%20height%3D%2212px%22%3E%3Cpath%20fill%3D%22rgba%2817,%2017,%2017,%200.9%29%22%20transform%3D%22rotate%28180%2018%206%29%22%20d%3D%22M2.658,0.000%20C-13.615,0.000%2050.938,0.000%2034.662,0.000%20C28.662,0.000%2023.035,12.002%2018.660,12.002%20C14.285,12.002%208.594,0.000%202.658,0.000%20Z%22/%3E%3C/svg%3E") no-repeat;
137
+ height: 6px;
138
+ width: 18px;
139
+ margin-top: 5px;
140
+ margin-bottom: 0;
139
141
  }
140
142
 
141
143
  [role~="tooltip"][data-microtip-position|="bottom"]::after {
142
- margin-top: 11px;
144
+ margin-top: 11px;
143
145
  }
144
146
 
145
147
  [role~="tooltip"][data-microtip-position|="bottom"]::before {
146
- transform: translate3d(-50%, -10px, 0);
147
- bottom: auto;
148
- left: 50%;
149
- top: 100%;
148
+ transform: translate3d(-50%, -10px, 0);
149
+ bottom: auto;
150
+ left: 50%;
151
+ top: 100%;
150
152
  }
151
153
 
152
154
  [role~="tooltip"][data-microtip-position|="bottom"]:hover::before {
153
- transform: translate3d(-50%, 0, 0);
155
+ transform: translate3d(-50%, 0, 0);
154
156
  }
155
157
 
156
158
  [role~="tooltip"][data-microtip-position|="bottom"]::after {
157
- transform: translate3d(-50%, -10px, 0);
158
- top: 100%;
159
- left: 50%;
159
+ transform: translate3d(-50%, -10px, 0);
160
+ top: 100%;
161
+ left: 50%;
160
162
  }
161
163
 
162
164
  [role~="tooltip"][data-microtip-position="bottom"]:hover::after {
163
- transform: translate3d(-50%, 0, 0);
165
+ transform: translate3d(-50%, 0, 0);
164
166
  }
165
167
 
168
+
166
169
  /* ------------------------------------------------
167
170
  [2.4] Bottom Left
168
171
  -------------------------------------------------*/
169
172
  [role~="tooltip"][data-microtip-position="bottom-left"]::after {
170
- transform: translate3d(calc(-100% + 16px), -10px, 0);
171
- top: 100%;
173
+ transform: translate3d(calc(-100% + 16px), -10px, 0);
174
+ top: 100%;
172
175
  }
173
176
 
174
177
  [role~="tooltip"][data-microtip-position="bottom-left"]:hover::after {
175
- transform: translate3d(calc(-100% + 16px), 0, 0);
178
+ transform: translate3d(calc(-100% + 16px), 0, 0);
176
179
  }
177
180
 
181
+
178
182
  /* ------------------------------------------------
179
183
  [2.5] Bottom Right
180
184
  -------------------------------------------------*/
181
185
  [role~="tooltip"][data-microtip-position="bottom-right"]::after {
182
- transform: translate3d(calc(0% + -16px), -10px, 0);
183
- top: 100%;
186
+ transform: translate3d(calc(0% + -16px), -10px, 0);
187
+ top: 100%;
184
188
  }
185
189
 
186
190
  [role~="tooltip"][data-microtip-position="bottom-right"]:hover::after {
187
- transform: translate3d(calc(0% + -16px), 0, 0);
191
+ transform: translate3d(calc(0% + -16px), 0, 0);
188
192
  }
189
193
 
194
+
190
195
  /* ------------------------------------------------
191
196
  [2.6] Left
192
197
  -------------------------------------------------*/
193
198
  [role~="tooltip"][data-microtip-position="left"]::before,
194
199
  [role~="tooltip"][data-microtip-position="left"]::after {
195
- bottom: auto;
196
- left: auto;
197
- right: 100%;
198
- top: 50%;
199
- transform: translate3d(10px, -50%, 0);
200
+ bottom: auto;
201
+ left: auto;
202
+ right: 100%;
203
+ top: 50%;
204
+ transform: translate3d(10px, -50%, 0);
200
205
  }
201
206
 
202
207
  [role~="tooltip"][data-microtip-position="left"]::before {
203
- background: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2212px%22%20height%3D%2236px%22%3E%3Cpath%20fill%3D%22rgba%2817,%2017,%2017,%200.9%29%22%20transform%3D%22rotate%28-90%2018%2018%29%22%20d%3D%22M2.658,0.000%20C-13.615,0.000%2050.938,0.000%2034.662,0.000%20C28.662,0.000%2023.035,12.002%2018.660,12.002%20C14.285,12.002%208.594,0.000%202.658,0.000%20Z%22/%3E%3C/svg%3E")
204
- no-repeat;
205
- height: 18px;
206
- width: 6px;
207
- margin-right: 5px;
208
- margin-bottom: 0;
208
+ background: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2212px%22%20height%3D%2236px%22%3E%3Cpath%20fill%3D%22rgba%2817,%2017,%2017,%200.9%29%22%20transform%3D%22rotate%28-90%2018%2018%29%22%20d%3D%22M2.658,0.000%20C-13.615,0.000%2050.938,0.000%2034.662,0.000%20C28.662,0.000%2023.035,12.002%2018.660,12.002%20C14.285,12.002%208.594,0.000%202.658,0.000%20Z%22/%3E%3C/svg%3E") no-repeat;
209
+ height: 18px;
210
+ width: 6px;
211
+ margin-right: 5px;
212
+ margin-bottom: 0;
209
213
  }
210
214
 
211
215
  [role~="tooltip"][data-microtip-position="left"]::after {
212
- margin-right: 11px;
216
+ margin-right: 11px;
213
217
  }
214
218
 
215
219
  [role~="tooltip"][data-microtip-position="left"]:hover::before,
216
220
  [role~="tooltip"][data-microtip-position="left"]:hover::after {
217
- transform: translate3d(0, -50%, 0);
221
+ transform: translate3d(0, -50%, 0);
218
222
  }
219
223
 
224
+
220
225
  /* ------------------------------------------------
221
226
  [2.7] Right
222
227
  -------------------------------------------------*/
223
228
  [role~="tooltip"][data-microtip-position="right"]::before,
224
229
  [role~="tooltip"][data-microtip-position="right"]::after {
225
- bottom: auto;
226
- left: 100%;
227
- top: 50%;
228
- transform: translate3d(-10px, -50%, 0);
230
+ bottom: auto;
231
+ left: 100%;
232
+ top: 50%;
233
+ transform: translate3d(-10px, -50%, 0);
229
234
  }
230
235
 
231
236
  [role~="tooltip"][data-microtip-position="right"]::before {
232
- background: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2212px%22%20height%3D%2236px%22%3E%3Cpath%20fill%3D%22rgba%2817,%2017,%2017,%200.9%29%22%20transform%3D%22rotate%2890%206%206%29%22%20d%3D%22M2.658,0.000%20C-13.615,0.000%2050.938,0.000%2034.662,0.000%20C28.662,0.000%2023.035,12.002%2018.660,12.002%20C14.285,12.002%208.594,0.000%202.658,0.000%20Z%22/%3E%3C/svg%3E")
233
- no-repeat;
234
- height: 18px;
235
- width: 6px;
236
- margin-bottom: 0;
237
- margin-left: 5px;
237
+ background: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2212px%22%20height%3D%2236px%22%3E%3Cpath%20fill%3D%22rgba%2817,%2017,%2017,%200.9%29%22%20transform%3D%22rotate%2890%206%206%29%22%20d%3D%22M2.658,0.000%20C-13.615,0.000%2050.938,0.000%2034.662,0.000%20C28.662,0.000%2023.035,12.002%2018.660,12.002%20C14.285,12.002%208.594,0.000%202.658,0.000%20Z%22/%3E%3C/svg%3E") no-repeat;
238
+ height: 18px;
239
+ width: 6px;
240
+ margin-bottom: 0;
241
+ margin-left: 5px;
238
242
  }
239
243
 
240
244
  [role~="tooltip"][data-microtip-position="right"]::after {
241
- margin-left: 11px;
245
+ margin-left: 11px;
242
246
  }
243
247
 
244
248
  [role~="tooltip"][data-microtip-position="right"]:hover::before,
245
249
  [role~="tooltip"][data-microtip-position="right"]:hover::after {
246
- transform: translate3d(0, -50%, 0);
250
+ transform: translate3d(0, -50%, 0);
247
251
  }
248
252
 
249
253
  /* ------------------------------------------------
250
254
  [3] Size
251
255
  -------------------------------------------------*/
252
256
  [role~="tooltip"][data-microtip-size="small"]::after {
253
- white-space: initial;
254
- width: 80px;
257
+ white-space: initial;
258
+ width: 80px;
255
259
  }
256
260
 
257
261
  [role~="tooltip"][data-microtip-size="medium"]::after {
258
- white-space: initial;
259
- width: 150px;
262
+ white-space: initial;
263
+ width: 150px;
260
264
  }
261
265
 
262
266
  [role~="tooltip"][data-microtip-size="large"]::after {
263
- white-space: initial;
264
- width: 260px;
267
+ white-space: initial;
268
+ width: 260px;
265
269
  }
@@ -2,7 +2,7 @@
2
2
 
3
3
  /* main card base */
4
4
 
5
- :host { /* TODO: remove this after it has been completely supplanted by .base-card */
5
+ :host {
6
6
  display: block;
7
7
 
8
8
  --dx-g-card-border: 1px solid var(--dx-g-gray-90);
@@ -12,7 +12,7 @@
12
12
  --dx-c-body-max-lines: 6;
13
13
  }
14
14
 
15
- .base-card {
15
+ .base-card {
16
16
  display: block;
17
17
 
18
18
  --dx-g-card-border: 1px solid var(--dx-g-gray-90);