@salesforcedevs/dx-components 1.2.18-canary.2 → 1.2.18-lightdom-4

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 (28) hide show
  1. package/lwc.config.json +1 -6
  2. package/package.json +3 -11
  3. package/src/modules/dx/brandThemeProvider/brandThemeProvider.html +2 -1
  4. package/src/modules/dx/brandThemeProvider/brandThemeProvider.ts +8 -5
  5. package/src/modules/dx/button/button.html +5 -5
  6. package/src/modules/dx/button/{button.css → button.scoped.css} +0 -2
  7. package/src/modules/dx/button/button.ts +11 -9
  8. package/src/modules/dx/dropdown/dropdown.css +6 -5
  9. package/src/modules/dx/dropdown/dropdown.html +5 -2
  10. package/src/modules/dx/dropdown/dropdown.ts +4 -2
  11. package/src/modules/dx/featuredContentHeader/featuredContentHeader.css +8 -8
  12. package/src/modules/dx/header/header.css +0 -98
  13. package/src/modules/dx/header/header.html +1 -8
  14. package/src/modules/dx/header/header.scoped.css +97 -0
  15. package/src/modules/dx/header/header.ts +1 -3
  16. package/src/modules/dx/icon/icon.scoped.css +5 -0
  17. package/src/modules/dx/logo/logo.ts +1 -1
  18. package/src/modules/dx/popover/popover.html +2 -3
  19. package/src/modules/dx/popover/{popover.css → popover.scoped.css} +0 -24
  20. package/src/modules/dx/popover/popover.ts +50 -82
  21. package/src/modules/dxHelpers/commonHeader/commonHeader.css +2 -4
  22. package/src/modules/dxHelpers/reset/reset.css +0 -1
  23. package/src/assets/svg/login-widget-bg.png +0 -0
  24. package/src/modules/dx/tbidAvatarButton/tbidAvatarButton.css +0 -33
  25. package/src/modules/dx/tbidAvatarButton/tbidAvatarButton.html +0 -53
  26. package/src/modules/dx/tbidAvatarButton/tbidAvatarButton.ts +0 -441
  27. package/src/modules/dxUtils/async/async.ts +0 -45
  28. package/yarn-error.log +0 -18466
package/lwc.config.json CHANGED
@@ -1,8 +1,5 @@
1
1
  {
2
- "modules": [
3
- { "dir": "src/modules" },
4
- { "npm": "@salesforcedevs/dw-components" }
5
- ],
2
+ "modules": [{ "dir": "src/modules" }],
6
3
  "expose": [
7
4
  "dx/banner",
8
5
  "dx/brandThemeProvider",
@@ -72,7 +69,6 @@
72
69
  "dx/spinner",
73
70
  "dx/tabPanel",
74
71
  "dx/tabPanelList",
75
- "dx/tbidAvatarButton",
76
72
  "dx/toc",
77
73
  "dx/tooltip",
78
74
  "dx/tree",
@@ -93,7 +89,6 @@
93
89
  "dxHelpers/table",
94
90
  "dxHelpers/text",
95
91
  "dxUtils/analytics",
96
- "dxUtils/async",
97
92
  "dxUtils/constants",
98
93
  "dxUtils/coveo",
99
94
  "dxUtils/dates",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@salesforcedevs/dx-components",
3
- "version": "1.2.18-canary.2",
3
+ "version": "1.2.18-lightdom-4",
4
4
  "description": "DX Lightning web components",
5
5
  "license": "MIT",
6
6
  "engines": {
@@ -17,23 +17,15 @@
17
17
  "classnames": "^2.2.6",
18
18
  "coveo-search-ui": "^2.10082.5",
19
19
  "debounce": "^1.2.0",
20
- "js-cookie": "^3.0.1",
21
- "lodash.defaults": "^4.2.0",
22
20
  "lodash.get": "^4.4.2",
23
21
  "lodash.kebabcase": "^4.1.1",
24
- "microtip": "0.2.2",
25
- "salesforce-oauth2": "^0.2.0",
26
- "uuid": "^9.0.0"
22
+ "microtip": "0.2.2"
27
23
  },
28
24
  "devDependencies": {
29
25
  "@types/classnames": "^2.2.10",
30
26
  "@types/debounce": "^1.2.0",
31
- "@types/js-cookie": "^3.0.2",
32
- "@types/lodash.defaults": "^4.2.7",
33
27
  "@types/lodash.get": "^4.4.6",
34
28
  "@types/lodash.kebabcase": "^4.1.7",
35
- "@types/uuid": "^8.3.4",
36
- "@types/vimeo__player": "^2.16.2",
37
- "eventsourcemock": "^2.0.0"
29
+ "@types/vimeo__player": "^2.16.2"
38
30
  }
39
31
  }
@@ -1,3 +1,4 @@
1
- <template>
1
+ <template lwc:render-mode="light">
2
2
  <slot></slot>
3
+ <div id="extra_brand_styles"></div>
3
4
  </template>
@@ -3,7 +3,7 @@ import brandCssVars from "./brandCssVars";
3
3
  import { Brand } from "typings/custom";
4
4
 
5
5
  export const toCss = (brand: Brand | null) => `
6
- :host {
6
+ body, header, dx-card-small {
7
7
  ${brandCssVars.reduce(
8
8
  (acc, v) => `
9
9
  ${acc}
@@ -15,6 +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
20
  @api brand: Brand | null = null;
19
21
 
20
22
  private get css() {
@@ -30,17 +32,18 @@ export default class BrandThemeProvider extends LightningElement {
30
32
  }
31
33
 
32
34
  setBrandVars() {
33
- let style = this.template.querySelector("style");
35
+ let style = this.querySelector("style");
36
+
34
37
  if (!style) {
35
38
  style = document.createElement("style");
36
- this.template.appendChild(style);
39
+ this.querySelector("#extra_brand_styles")?.appendChild(style);
37
40
  }
38
41
 
39
- if (style.firstChild) {
42
+ if (style?.firstChild) {
40
43
  style.removeChild(style.firstChild);
41
44
  }
42
45
 
43
46
  const css = document.createTextNode(this.css);
44
- style.appendChild(css);
47
+ style?.appendChild(css);
45
48
  }
46
49
  }
@@ -1,4 +1,4 @@
1
- <template>
1
+ <template lwc:render-mode="light">
2
2
  <button
3
3
  if:false={href}
4
4
  class={className}
@@ -7,8 +7,8 @@
7
7
  aria-label={ariaLabel}
8
8
  part="container"
9
9
  >
10
- <span if:false={loading}>
11
- <slot onslotchange={onSlotChange}></slot>
10
+ <span if:false={loading} class="button_content">
11
+ <slot></slot>
12
12
  </span>
13
13
  <dx-icon
14
14
  if:true={showIcon}
@@ -29,8 +29,8 @@
29
29
  aria-label={ariaLabel}
30
30
  part="container"
31
31
  >
32
- <span if:false={loading}>
33
- <slot onslotchange={onSlotChange}></slot>
32
+ <span if:false={loading} class="button-content">
33
+ <slot></slot>
34
34
  </span>
35
35
  <dx-icon
36
36
  if:true={showIcon}
@@ -1,5 +1,3 @@
1
- @import "dxHelpers/reset";
2
-
3
1
  :host {
4
2
  width: min-content;
5
3
  font-size: inherit;
@@ -5,11 +5,12 @@ import {
5
5
  ButtonVariant,
6
6
  IconSprite,
7
7
  IconSize,
8
- IconSymbol,
9
- LightningSlotElement
8
+ IconSymbol
10
9
  } from "typings/custom";
11
10
 
12
11
  export default class Button extends LightningElement {
12
+ static renderMode = "light";
13
+
13
14
  @api ariaLabel: string = "";
14
15
  @api disabled: boolean | null = null;
15
16
  @api iconSize?: IconSize = "small";
@@ -34,14 +35,12 @@ export default class Button extends LightningElement {
34
35
  @api rel: string | null = null;
35
36
 
36
37
  @api focus() {
37
- const button = this.template.querySelector(".button");
38
+ const button = this.querySelector(".button");
38
39
  if (button) {
39
40
  button.focus();
40
41
  }
41
42
  }
42
43
 
43
- private isSlotEmpty: boolean = true;
44
-
45
44
  private get showIcon(): boolean {
46
45
  return !!this.iconSymbol && !this.loading;
47
46
  }
@@ -55,14 +54,17 @@ export default class Button extends LightningElement {
55
54
  this.loading && "state-loading",
56
55
  `size-${this.size}`,
57
56
  !!this.iconSymbol && "style-icon",
58
- this.isSlotEmpty && "slot-empty",
57
+ this.isSlotEmpty() && "slot-empty",
59
58
  `font-${this.font}`,
60
59
  this.iconPosition === "right" ? "icon-right" : "icon-left"
61
60
  );
62
61
  }
63
62
 
64
- private onSlotChange(e: LightningSlotElement) {
65
- const slot = e.target;
66
- this.isSlotEmpty = slot.assignedElements().length !== 0;
63
+ private isSlotEmpty() {
64
+ return (
65
+ this.querySelector('[name="button_content"]')?.childElementCount ===
66
+ 0 &&
67
+ this.querySelector('[name="button_content"]')?.textContent === null
68
+ );
67
69
  }
68
70
  }
@@ -1,6 +1,5 @@
1
- @import "dxHelpers/reset";
2
-
3
- .menu-nested::part(content) {
1
+ .menu-nested::part(content),
2
+ .menu-nested .popover.popover-content {
4
3
  padding-top: var(--dx-g-spacing-sm);
5
4
  width: 354px;
6
5
  }
@@ -11,7 +10,8 @@
11
10
  flex-wrap: nowrap;
12
11
  }
13
12
 
14
- .menu-hidden::part(content) {
13
+ .menu-hidden::part(content),
14
+ .menu-hidden .popover.popover-content {
15
15
  display: none;
16
16
  }
17
17
 
@@ -24,7 +24,8 @@
24
24
  }
25
25
 
26
26
  @media screen and (min-width: 1000px) {
27
- .menu-nested-2-col::part(content) {
27
+ .menu-nested-2-col::part(content),
28
+ .menu-nested-2-col .popover.popover-content {
28
29
  width: 592px;
29
30
  }
30
31
 
@@ -1,4 +1,4 @@
1
- <template>
1
+ <template lwc:render-mode="light">
2
2
  <dx-popover
3
3
  aria-label={ariaLabel}
4
4
  class={className}
@@ -12,7 +12,10 @@
12
12
  small={small}
13
13
  width={width}
14
14
  >
15
- <slot slot="control"></slot>
15
+ <div slot="control">
16
+ <slot></slot>
17
+ </div>
18
+
16
19
  <div
17
20
  class="menu_list"
18
21
  if:false={areOptionsEmpty}
@@ -20,6 +20,8 @@ interface DropdownOption extends OptionWithNested {
20
20
  }
21
21
 
22
22
  export default class Dropdown extends LightningElement {
23
+ static renderMode = "light";
24
+
23
25
  @api value: string | null = null; // "active option" id
24
26
  @api valuePath: string = "id"; // path to match for the active value (useful for url matching)
25
27
  @api stayOpenAfterChange?: boolean = false;
@@ -98,7 +100,7 @@ export default class Dropdown extends LightningElement {
98
100
  }
99
101
 
100
102
  private get optionsElements() {
101
- return this.template.querySelectorAll("dx-dropdown-option");
103
+ return this.querySelectorAll("dx-dropdown-option");
102
104
  }
103
105
 
104
106
  private get areOptionsEmpty() {
@@ -187,7 +189,7 @@ export default class Dropdown extends LightningElement {
187
189
 
188
190
  renderedCallback() {
189
191
  if (!this.popoverEl) {
190
- this.popoverEl = this.template.querySelector("dx-popover");
192
+ this.popoverEl = this.querySelector("dx-popover");
191
193
  }
192
194
  }
193
195
  }
@@ -6,9 +6,7 @@
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
@@ -42,7 +40,10 @@
42
40
  position: relative;
43
41
  padding: var(--dx-c-featured-content-header-padding-vertical)
44
42
  var(--dx-c-featured-content-header-padding-horizontal);
45
- background-color: var(--dx-c-featured-content-header-background-color);
43
+ background-color: var(
44
+ --dx-c-featured-content-header-background-color,
45
+ --dx-g-indigo-vibrant-90
46
+ );
46
47
  }
47
48
 
48
49
  /* LAYOUTS */
@@ -380,10 +381,9 @@ dx-image-and-label {
380
381
 
381
382
  /* DARK VARIANT */
382
383
  .variant_dark {
383
- background: linear-gradient(
384
- -180deg,
385
- rgb(40, 23, 153) 0%,
386
- rgb(46, 43, 182) 100%
384
+ background: var(
385
+ --dx-c-featured-content-header-background-color,
386
+ linear-gradient(-180deg, rgb(40, 23, 153) 0%, rgb(46, 43, 182) 100%)
387
387
  );
388
388
  }
389
389
 
@@ -1,99 +1 @@
1
1
  @import "dxHelpers/commonHeader";
2
-
3
- :host {
4
- --dx-c-header-search-width: 316px;
5
- --dx-g-text-xs: 14px;
6
- }
7
-
8
- dx-header-mobile-nav-menu {
9
- --dx-c-color-background: var(--dx-g-brand-current-color-background);
10
- --dx-c-button-color-background-inactive: var(
11
- --dx-g-brand-current-button-color-background-inactive
12
- );
13
- --dx-c-button-color-background-active: var(
14
- --dx-g-brand-current-button-color-background-active
15
- );
16
- --dx-c-color: var(--dx-g-brand-current-color);
17
- --dx-c-color-border: var(--dx-g-brand-current-color-border);
18
- --dx-c-color-background-2: var(--dx-g-brand-current-color-background-2);
19
- --dx-c-button-color-background-inactive-hover: var(
20
- --dx-g-brand-current-button-color-background-inactive-hover
21
- );
22
- --dx-c-color-border-2: var(--dx-g-brand-current-color-border-2);
23
- }
24
-
25
- .header_l2_group-title {
26
- margin-right: var(--dx-g-spacing-4xl);
27
- }
28
-
29
- .header_l2_group-nav_menu-ctas {
30
- display: none;
31
- position: relative;
32
- justify-content: center;
33
- align-items: center;
34
- padding-right: var(--dx-g-spacing-sm);
35
- height: 100%;
36
- }
37
-
38
- .header_l2_group-nav_menu-ctas::after {
39
- content: "";
40
- position: absolute;
41
- right: 0;
42
- top: var(--dx-g-spacing-sm);
43
- height: calc(100% - var(--dx-g-spacing-md));
44
- width: 1px;
45
- background: transparent;
46
- transition: var(--dx-g-transition-hue-1x);
47
- }
48
-
49
- header.has-navscrollshadow .header_l2_group-nav_menu-ctas::after {
50
- background: var(--dx-g-brand-current-color-border);
51
- }
52
-
53
- .header_l2_group-nav_menu-button {
54
- --dx-c-button-primary-color: var(--dx-g-blue-vibrant-20);
55
- --dx-c-button-secondary-color-hover: var(
56
- --dx-g-brand-current-button-color-background-inactive
57
- );
58
- }
59
-
60
- @media (max-width: 1024px) {
61
- .header_l2 {
62
- flex-wrap: wrap;
63
- height: unset;
64
- padding: 0;
65
- }
66
-
67
- .header_l2_group-title {
68
- margin-right: 0;
69
- padding: 12px var(--dx-g-page-padding-horizontal);
70
- }
71
-
72
- .header_l2_group {
73
- width: 100%;
74
- }
75
-
76
- .header_l2_group-nav {
77
- height: var(--dx-g-spacing-3xl);
78
- padding: 0;
79
- padding-left: var(--dx-g-spacing-sm);
80
- }
81
-
82
- .header_l2_group-nav_overflow {
83
- margin-right: var(--dx-g-spacing-sm);
84
- }
85
-
86
- .header_version-dropdown {
87
- margin-left: auto;
88
- }
89
-
90
- .has-nav-items .header_l2_group-title {
91
- border-bottom: 1px solid var(--dx-g-brand-current-color-border-2);
92
- }
93
- }
94
-
95
- @media (max-width: 768px) {
96
- .header_l2_group-nav > .header_l2_group-nav_menu-ctas {
97
- display: flex;
98
- }
99
- }
@@ -1,4 +1,4 @@
1
- <template>
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>
@@ -19,13 +19,6 @@
19
19
  onstatechange={handleStateChange}
20
20
  ></dx-header-search>
21
21
  </div>
22
- <div
23
- if:true={showTbidLogin}
24
- class="header-tbid-login"
25
- onclick={closeMobileNavMenu}
26
- >
27
- <dw-tbid-login-menu></dw-tbid-login-menu>
28
- </div>
29
22
  <div if:true={showSignup} class="header-login-signup">
30
23
  <dx-button
31
24
  aria-label="Browse Trials"
@@ -0,0 +1,97 @@
1
+ :host {
2
+ --dx-c-header-search-width: 316px;
3
+ --dx-g-text-xs: 14px;
4
+ }
5
+
6
+ dx-header-mobile-nav-menu {
7
+ --dx-c-color-background: var(--dx-g-brand-current-color-background);
8
+ --dx-c-button-color-background-inactive: var(
9
+ --dx-g-brand-current-button-color-background-inactive
10
+ );
11
+ --dx-c-button-color-background-active: var(
12
+ --dx-g-brand-current-button-color-background-active
13
+ );
14
+ --dx-c-color: var(--dx-g-brand-current-color);
15
+ --dx-c-color-border: var(--dx-g-brand-current-color-border);
16
+ --dx-c-color-background-2: var(--dx-g-brand-current-color-background-2);
17
+ --dx-c-button-color-background-inactive-hover: var(
18
+ --dx-g-brand-current-button-color-background-inactive-hover
19
+ );
20
+ --dx-c-color-border-2: var(--dx-g-brand-current-color-border-2);
21
+ }
22
+
23
+ .header_l2_group-title {
24
+ margin-right: var(--dx-g-spacing-4xl);
25
+ }
26
+
27
+ .header_l2_group-nav_menu-ctas {
28
+ display: none;
29
+ position: relative;
30
+ justify-content: center;
31
+ align-items: center;
32
+ padding-right: var(--dx-g-spacing-sm);
33
+ height: 100%;
34
+ }
35
+
36
+ .header_l2_group-nav_menu-ctas::after {
37
+ content: "";
38
+ position: absolute;
39
+ right: 0;
40
+ top: var(--dx-g-spacing-sm);
41
+ height: calc(100% - var(--dx-g-spacing-md));
42
+ width: 1px;
43
+ background: transparent;
44
+ transition: var(--dx-g-transition-hue-1x);
45
+ }
46
+
47
+ header.has-navscrollshadow .header_l2_group-nav_menu-ctas::after {
48
+ background: var(--dx-g-brand-current-color-border);
49
+ }
50
+
51
+ .header_l2_group-nav_menu-button {
52
+ --dx-c-button-primary-color: var(--dx-g-blue-vibrant-20);
53
+ --dx-c-button-secondary-color-hover: var(
54
+ --dx-g-brand-current-button-color-background-inactive
55
+ );
56
+ }
57
+
58
+ @media (max-width: 1024px) {
59
+ .header_l2 {
60
+ flex-wrap: wrap;
61
+ height: unset;
62
+ padding: 0;
63
+ }
64
+
65
+ .header_l2_group-title {
66
+ margin-right: 0;
67
+ padding: 12px var(--dx-g-page-padding-horizontal);
68
+ }
69
+
70
+ .header_l2_group {
71
+ width: 100%;
72
+ }
73
+
74
+ .header_l2_group-nav {
75
+ height: var(--dx-g-spacing-3xl);
76
+ padding: 0;
77
+ padding-left: var(--dx-g-spacing-sm);
78
+ }
79
+
80
+ .header_l2_group-nav_overflow {
81
+ margin-right: var(--dx-g-spacing-sm);
82
+ }
83
+
84
+ .header_version-dropdown {
85
+ margin-left: auto;
86
+ }
87
+
88
+ .has-nav-items .header_l2_group-title {
89
+ border-bottom: 1px solid var(--dx-g-brand-current-color-border-2);
90
+ }
91
+ }
92
+
93
+ @media (max-width: 768px) {
94
+ .header_l2_group-nav > .header_l2_group-nav_menu-ctas {
95
+ display: flex;
96
+ }
97
+ }
@@ -1,9 +1,7 @@
1
1
  import { HeaderBase } from "dxBaseElements/headerBase";
2
2
 
3
3
  export default class Header extends HeaderBase {
4
- private get showTbidLogin(): boolean {
5
- return this.showSignup;
6
- }
4
+ static renderMode = "light";
7
5
 
8
6
  private get showSignup(): boolean {
9
7
  return this.signupLink
@@ -0,0 +1,5 @@
1
+ :host {
2
+ display: block;
3
+
4
+ --dx-c-icon-color: currentColor;
5
+ }
@@ -3,6 +3,6 @@ import { LightningElement, api } from "lwc";
3
3
  export default class Logo extends LightningElement {
4
4
  @api href: string = "/";
5
5
  @api imgSrc: string = "/assets/svg/salesforce-cloud.svg";
6
- @api imgAlt: string = "Salesforce logo";
6
+ @api imgAlt: string = "Salesforce log";
7
7
  @api label!: string;
8
8
  }
@@ -1,7 +1,6 @@
1
- <template>
2
- <slot name="control" onslotchange={onSlotChange}></slot>
1
+ <template lwc:render-mode="light">
2
+ <slot name="control"></slot>
3
3
  <div class={containerClassName}>
4
- <div class="popover-arrow" if:true={showArrow}></div>
5
4
  <div
6
5
  class={className}
7
6
  style={style}
@@ -1,5 +1,3 @@
1
- @import "dxHelpers/reset";
2
-
3
1
  :host {
4
2
  --popover-border-radius: var(
5
3
  --dx-c-popover-border-radius,
@@ -64,25 +62,3 @@
64
62
  .popover-small {
65
63
  width: 136px;
66
64
  }
67
-
68
- .popover-arrow {
69
- position: absolute;
70
-
71
- /* Weird spacing here to satisfy our linter */
72
- background: linear-gradient(
73
- 315deg,
74
- transparent 4px,
75
- white 4px
76
- ); /* make only top half of rotated square visible */
77
-
78
- width: 8px;
79
- height: 8px;
80
- transform: rotate(45deg);
81
- border: var(--popover-border);
82
- border-bottom: transparent;
83
- border-right: transparent;
84
- box-shadow: var(--dx-g-box-shadow-lg);
85
- transition: opacity 0.2s linear, transform 0.2s linear;
86
- transition-delay: 0.02s;
87
- z-index: var(--dx-c-popover-z-index, var(--dx-g-z-index-max));
88
- }