@salesforcedevs/dx-components 1.3.242 → 1.3.243-newdocux-alpha6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (33) hide show
  1. package/lwc.config.json +1 -0
  2. package/package.json +2 -3
  3. package/src/modules/dx/button/button.html +2 -2
  4. package/src/modules/dx/button/button.ts +1 -1
  5. package/src/modules/dx/coveoRecommendations/coveoRecommendations.html +20 -22
  6. package/src/modules/dx/coveoRecommendations/coveoRecommendations.ts +38 -3
  7. package/src/modules/dx/dropdownOption/dropdownOption.css +5 -3
  8. package/src/modules/dx/headerNav/headerNav.css +9 -0
  9. package/src/modules/dx/mainContentHeader/mainContentHeader.css +74 -2
  10. package/src/modules/dx/mainContentHeader/mainContentHeader.html +48 -23
  11. package/src/modules/dx/mainContentHeader/mainContentHeader.ts +20 -5
  12. package/src/modules/dx/popover/popover.css +2 -2
  13. package/src/modules/dx/sidebar/sidebar.css +9 -5
  14. package/src/modules/dx/sidebar/sidebar.html +32 -16
  15. package/src/modules/dx/sidebar/sidebar.ts +2 -42
  16. package/src/modules/dx/sidebarFooterNav/sidebarFooterNav.css +49 -0
  17. package/src/modules/dx/sidebarFooterNav/sidebarFooterNav.html +55 -0
  18. package/src/modules/dx/sidebarFooterNav/sidebarFooterNav.ts +106 -0
  19. package/src/modules/dx/sidebarOld/sidebarOld.css +1 -0
  20. package/src/modules/dx/sidebarOld/sidebarOld.html +31 -14
  21. package/src/modules/dx/sidebarOld/sidebarOld.ts +4 -38
  22. package/src/modules/dx/sidebarSearchResult/sidebarSearchResult.css +35 -4
  23. package/src/modules/dx/sidebarSearchResult/sidebarSearchResult.html +16 -10
  24. package/src/modules/dx/tab/tab.css +48 -19
  25. package/src/modules/dx/treeItem/treeItem.css +2 -2
  26. package/src/modules/dx/treeTile/treeTile.css +39 -28
  27. package/src/modules/dx/treeTile/treeTile.html +6 -6
  28. package/src/modules/dx/treeTile/treeTile.ts +2 -1
  29. package/src/modules/dxBaseElements/sidebarBase/sidebarBase.ts +100 -1
  30. package/src/modules/dxHelpers/commonHeader/commonHeader.css +4 -2
  31. package/src/modules/dxHelpers/commonSidebar/commonSidebar.css +38 -16
  32. package/src/modules/dxHelpers/commonTreeItem/commonTreeItem.css +26 -3
  33. package/LICENSE +0 -12
@@ -23,21 +23,25 @@
23
23
  --tile-height: 20px;
24
24
 
25
25
  font-family: var(--dx-g-font-sans);
26
- font-size: 13px;
26
+ font-size: 14px;
27
27
  line-height: var(--tile-height);
28
+ font-weight: var(--dx-g-font-normal);
28
29
  }
29
30
 
30
31
  .tile-root {
31
- font-family: var(--dx-g-font-display);
32
+ font-family: var(--dx-g-font-sans);
32
33
  font-size: var(--dx-g-text-sm);
33
- font-weight: var(--dx-g-font-demi);
34
- color: var(--dx-g-blue-vibrant-30);
34
+ font-weight: var(--dx-g-font-bold);
35
+ color: var(--dx-g-blue-vibrant-20);
35
36
  display: block;
36
37
  }
37
38
 
38
39
  .tile-icon {
39
40
  align-items: center;
40
41
  height: var(--tile-height);
42
+ padding: calc(var(--dx-g-spacing-sm) + var(--dx-g-spacing-2xs))
43
+ calc(var(--dx-g-spacing-xs) + 2px)
44
+ calc(var(--dx-g-spacing-sm) + var(--dx-g-spacing-2xs)) 0;
41
45
  }
42
46
 
43
47
  .tile-label {
@@ -54,95 +58,102 @@
54
58
 
55
59
  .tile-with-children .tile-expand-icon {
56
60
  order: 1;
57
- padding-right: var(--dx-g-spacing-xs);
58
61
  }
59
62
 
60
63
  .indentation {
61
- padding-left: var(--indentation);
64
+ padding-left: calc(var(--indentation) + var(--dx-g-spacing-2xs));
62
65
  }
63
66
 
64
67
  .tile-with-children .indentation {
65
68
  padding-left: calc(var(--indentation) - var(--base-indentation));
66
69
  }
67
70
 
71
+ .tile-root-with-child .indentation {
72
+ padding-left: 0;
73
+ }
74
+
75
+ [aria-level="2"] {
76
+ --indentation: var(--dx-g-spacing-md);
77
+ }
78
+
68
79
  [aria-level="3"] {
69
- --indentation: var(--base-indentation);
80
+ --indentation: calc(2 * var(--base-indentation));
70
81
  }
71
82
 
72
83
  [aria-level="4"] {
73
- --indentation: calc(2 * var(--base-indentation));
84
+ --indentation: calc(3 * var(--base-indentation));
74
85
  }
75
86
 
76
87
  [aria-level="5"] {
77
- --indentation: calc(3 * var(--base-indentation));
88
+ --indentation: calc(4 * var(--base-indentation));
78
89
  }
79
90
 
80
91
  [aria-level="6"] {
81
- --indentation: calc(4 * var(--base-indentation));
92
+ --indentation: calc(5 * var(--base-indentation));
82
93
  }
83
94
 
84
95
  [aria-level="7"] {
85
- --indentation: calc(5 * var(--base-indentation));
96
+ --indentation: calc(6 * var(--base-indentation));
86
97
  }
87
98
 
88
99
  [aria-level="8"] {
89
- --indentation: calc(6 * var(--base-indentation));
100
+ --indentation: calc(7 * var(--base-indentation));
90
101
  }
91
102
 
92
103
  [aria-level="9"] {
93
- --indentation: calc(7 * var(--base-indentation));
104
+ --indentation: calc(8 * var(--base-indentation));
94
105
  }
95
106
 
96
107
  [aria-level="10"] {
97
- --indentation: calc(8 * var(--base-indentation));
108
+ --indentation: calc(9 * var(--base-indentation));
98
109
  }
99
110
 
100
111
  [aria-level="11"] {
101
- --indentation: calc(9 * var(--base-indentation));
112
+ --indentation: calc(10 * var(--base-indentation));
102
113
  }
103
114
 
104
115
  [aria-level="12"] {
105
- --indentation: calc(10 * var(--base-indentation));
116
+ --indentation: calc(11 * var(--base-indentation));
106
117
  }
107
118
 
108
119
  [aria-level="13"] {
109
- --indentation: calc(11 * var(--base-indentation));
120
+ --indentation: calc(12 * var(--base-indentation));
110
121
  }
111
122
 
112
123
  [aria-level="14"] {
113
- --indentation: calc(12 * var(--base-indentation));
124
+ --indentation: calc(13 * var(--base-indentation));
114
125
  }
115
126
 
116
127
  [aria-level="15"] {
117
- --indentation: calc(13 * var(--base-indentation));
128
+ --indentation: calc(14 * var(--base-indentation));
118
129
  }
119
130
 
120
131
  [aria-level="16"] {
121
- --indentation: calc(14 * var(--base-indentation));
132
+ --indentation: calc(15 * var(--base-indentation));
122
133
  }
123
134
 
124
135
  [aria-level="17"] {
125
- --indentation: calc(15 * var(--base-indentation));
136
+ --indentation: calc(16 * var(--base-indentation));
126
137
  }
127
138
 
128
139
  [aria-level="18"] {
129
- --indentation: calc(16 * var(--base-indentation));
140
+ --indentation: calc(17 * var(--base-indentation));
130
141
  }
131
142
 
132
143
  [aria-level="19"] {
133
- --indentation: calc(17 * var(--base-indentation));
144
+ --indentation: calc(18 * var(--base-indentation));
134
145
  }
135
146
 
136
147
  [aria-level="20"] {
137
- --indentation: calc(18 * var(--base-indentation));
148
+ --indentation: calc(19 * var(--base-indentation));
138
149
  }
139
150
 
140
151
  [aria-level="21"] {
141
- --indentation: calc(19 * var(--base-indentation));
152
+ --indentation: calc(20 * var(--base-indentation));
142
153
  }
143
154
 
144
155
  [aria-level="22"] {
145
- --indentation: calc(20 * var(--base-indentation));
156
+ --indentation: calc(21 * var(--base-indentation));
146
157
  }
147
158
 
148
159
  dx-metadata-badge {
@@ -181,10 +192,10 @@ a {
181
192
 
182
193
  a:link,
183
194
  a:visited {
184
- color: var(--dx-g-gray-10);
195
+ color: var(--dx-g-blue-vibrant-20);
185
196
  }
186
197
 
187
198
  a:visited.tile-root,
188
199
  a:link.tile-root {
189
- color: var(--dx-g-blue-vibrant-30);
200
+ color: var(--dx-g-blue-vibrant-20);
190
201
  }
@@ -1,12 +1,6 @@
1
1
  <template>
2
2
  <a href={href} class={tileClass} target={target}>
3
3
  <div class="flex indentation" role="heading" aria-level={tileAriaLevel}>
4
- <span
5
- class="tile-label sidebar-item-truncate-text"
6
- title={treeNode.label}
7
- >
8
- {treeNode.label}
9
- </span>
10
4
  <div class="flex tile-expand-icon tile-icon" if:true={showArrow}>
11
5
  <dx-icon
12
6
  aria-expanded={isExpanded}
@@ -16,6 +10,12 @@
16
10
  onclick={onClickIcon}
17
11
  ></dx-icon>
18
12
  </div>
13
+ <span
14
+ class="tile-label sidebar-item-truncate-text"
15
+ title={treeNode.label}
16
+ >
17
+ {treeNode.label}
18
+ </span>
19
19
  <dx-metadata-badge
20
20
  if:true={showMethod}
21
21
  class="flex tile-icon"
@@ -37,7 +37,7 @@ export default class TreeTile extends LightningElement {
37
37
  }
38
38
 
39
39
  private get iconSize() {
40
- return this.isRoot ? "small" : "xsmall";
40
+ return "xsmall";
41
41
  }
42
42
 
43
43
  private get metadataBadgeColor(): string | undefined {
@@ -62,6 +62,7 @@ export default class TreeTile extends LightningElement {
62
62
  return cx("tile", "sidebar-item", {
63
63
  "tile-root": this.isRoot,
64
64
  "tile-with-children": !this.isRoot && this.hasChildren,
65
+ "tile-root-with-child": this.isRoot && this.showArrow,
65
66
  "sidebar-item-selected": this.isSelected
66
67
  });
67
68
  }
@@ -1,4 +1,6 @@
1
- import { LightningElement } from "lwc";
1
+ import { LightningElement, api } from "lwc";
2
+ import type { OptionWithLink } from "typings/custom";
3
+ import { toJson } from "dxUtils/normalizers";
2
4
 
3
5
  export const HEIGHT_OF_SIDEBAR_ITEM = 32;
4
6
  export const WAIT_TIME_BEFORE_SCROLL_IN_MS = 500;
@@ -8,6 +10,35 @@ export class SidebarBase extends LightningElement {
8
10
 
9
11
  selectedElement: HTMLElement | null = null;
10
12
  timerId: ReturnType<typeof setTimeout> | null = null;
13
+ _languages!: OptionWithLink[];
14
+ mobile: boolean = true;
15
+ expanded: boolean = true;
16
+ _value?: string = undefined;
17
+ showBoxShadow: boolean = false;
18
+ private scrolling: boolean = false;
19
+
20
+ @api langValuePath: string = "id";
21
+ @api language!: string;
22
+ @api bailHref!: string;
23
+ @api bailLabel!: string;
24
+
25
+ @api
26
+ get languages() {
27
+ return this._languages;
28
+ }
29
+
30
+ set languages(value) {
31
+ this._languages = toJson(value);
32
+ }
33
+
34
+ @api
35
+ get value() {
36
+ return this._value;
37
+ }
38
+
39
+ set value(value) {
40
+ this._value = value;
41
+ }
11
42
 
12
43
  get sidebarContent() {
13
44
  if (!this._sidebarContent) {
@@ -18,6 +49,29 @@ export class SidebarBase extends LightningElement {
18
49
  return this._sidebarContent;
19
50
  }
20
51
 
52
+ /**
53
+ * This method is to handle the scroll event for LNB and show box shadow
54
+ * @param scrollEvent
55
+ */
56
+ handleScroll(scrollEvent: any) {
57
+ const lnb = scrollEvent.target;
58
+
59
+ if (!this.scrolling) {
60
+ this.scrolling = true;
61
+ // Set a timeout to handle scroll event after a delay
62
+ setTimeout(() => {
63
+ // Check if lnb is scrolled
64
+ if (lnb.scrollTop > 0 && lnb.scrollHeight > lnb.clientHeight) {
65
+ this.showBoxShadow = true;
66
+ } else {
67
+ this.showBoxShadow = false;
68
+ }
69
+ // Reset scrolling back to false after handling the scroll
70
+ this.scrolling = false;
71
+ }, 200);
72
+ }
73
+ }
74
+
21
75
  renderedCallback(): void {
22
76
  /**
23
77
  * Implementing debouncing kind of logic here to scroll to selected element once tree rendering is done
@@ -62,4 +116,49 @@ export class SidebarBase extends LightningElement {
62
116
  this.selectedElement = null;
63
117
  }
64
118
  }
119
+
120
+ onMediaChange = (event: MediaQueryListEvent | MediaQueryList) => {
121
+ this.mobile = event.matches;
122
+ this.expanded = !this.mobile;
123
+ };
124
+
125
+ onSelect(event: CustomEvent) {
126
+ this._value = event.detail.name;
127
+
128
+ if (this.mobile) {
129
+ this.onToggleClick();
130
+ }
131
+ }
132
+
133
+ onToggleClick() {
134
+ this.expanded = !this.expanded;
135
+ this.dispatchEvent(
136
+ new CustomEvent("togglesidebar", {
137
+ detail: {
138
+ open: this.expanded,
139
+ bubbles: true,
140
+ composed: true
141
+ }
142
+ })
143
+ );
144
+ }
145
+
146
+ private get hasMobileSidebarFooter(): boolean {
147
+ return this.mobile && this.languages?.length > 1 && this.expanded;
148
+ }
149
+
150
+ private get hasSidebarFooter(): boolean {
151
+ return this.languages?.length > 1 || Boolean(this.bailHref);
152
+ }
153
+
154
+ private get sidebarContentClass(): string {
155
+ const sidebarConterCss = "sidebar-content sidebar-content-tree";
156
+ return this.hasSidebarFooter || this.hasMobileSidebarFooter
157
+ ? sidebarConterCss + " sidebar-content-hasfooter"
158
+ : sidebarConterCss;
159
+ }
160
+
161
+ private get isDesktop(): boolean {
162
+ return !this.mobile;
163
+ }
65
164
  }
@@ -58,8 +58,9 @@ header.state-show-mobile-nav .header_l2_group-nav_overflow {
58
58
  /* Second row */
59
59
 
60
60
  .header_l2 {
61
- background: var(--dx-g-brand-current-color-background);
62
- padding: var(--dx-g-spacing-lg) var(--dx-g-global-header-padding-horizontal);
61
+ background: white;
62
+ padding: var(--dx-g-spacing-smd) var(--dx-g-spacing-lg)
63
+ var(--dx-g-spacing-smd) var(--dx-g-global-header-padding-horizontal);
63
64
  }
64
65
 
65
66
  .header_l2_group {
@@ -70,6 +71,7 @@ header.state-show-mobile-nav .header_l2_group-nav_overflow {
70
71
 
71
72
  .header_l2_group-title {
72
73
  flex-shrink: 0;
74
+ padding: var(--dx-g-spacing-smd) 0 calc(var(--dx-g-spacing-smd) - 1px) 0;
73
75
  }
74
76
 
75
77
  .header_l2_group-title
@@ -2,7 +2,7 @@
2
2
  @import "dxHelpers/text";
3
3
 
4
4
  :host {
5
- --dx-c-sidebar-width: 275px;
5
+ --dx-c-sidebar-width: 337px;
6
6
  --dx-c-sidebar-button-color: var(--dx-g-blue-vibrant-50);
7
7
  --dx-c-sidebar-button-background: white;
8
8
  --dx-c-sidebar-button-border: white;
@@ -11,10 +11,7 @@
11
11
  --dx-c-sidebar-button-border-hover: var(--dx-g-blue-vibrant-50);
12
12
  --dx-c-sidebar-left-padding: var(--dx-g-global-header-padding-horizontal);
13
13
  --dx-c-sidebar-vertical-padding: var(--dx-g-spacing-md);
14
- }
15
-
16
- dx-tree:not(:last-child) {
17
- margin-bottom: var(--dx-g-spacing-sm);
14
+ --doc-version-picker-width: 296px;
18
15
  }
19
16
 
20
17
  .header {
@@ -31,12 +28,18 @@ dx-tree:not(:last-child) {
31
28
  }
32
29
 
33
30
  .padding-horizontal {
34
- padding-left: var(--dx-g-spacing-md);
35
- padding-right: var(--dx-g-spacing-md);
31
+ padding: 0 var(--dx-g-spacing-lg) 0 var(--dx-c-sidebar-left-padding);
32
+ }
33
+
34
+ .sidebar-header[show-shadow="true"] {
35
+ box-shadow: 0 4px 4px -2px var(--dx-g-gray-90);
36
36
  }
37
37
 
38
38
  .header-title {
39
- line-height: inherit;
39
+ line-height: 28px;
40
+ letter-spacing: -0.08px;
41
+ font-size: var(--dx-g-text-lg);
42
+ font-weight: var(--dx-g-font-demi);
40
43
  }
41
44
 
42
45
  .header-toggle-icon {
@@ -53,7 +56,7 @@ dx-tree:not(:last-child) {
53
56
  }
54
57
 
55
58
  .container {
56
- background-color: var(--dx-g-gray-95);
59
+ background-color: white;
57
60
  display: flex;
58
61
  flex-direction: column;
59
62
  height: var(--dx-c-sidebar-height);
@@ -68,8 +71,7 @@ dx-tree:not(:last-child) {
68
71
 
69
72
  box-shadow: 2px 0 0 0 var(--border-color);
70
73
  min-height: var(--dx-c-sidebar-min-height);
71
- padding: var(--dx-c-sidebar-vertical-padding) 0
72
- var(--dx-c-sidebar-vertical-padding) var(--left-spacing);
74
+ padding: var(--dx-c-sidebar-vertical-padding) 0 var(--dx-g-spacing-2xs) 0;
73
75
  position: relative;
74
76
  }
75
77
 
@@ -102,7 +104,7 @@ dx-tree:not(:last-child) {
102
104
 
103
105
  .container.container-mobile.collapsed {
104
106
  height: unset;
105
- padding-bottom: 0;
107
+ padding: 4px 0;
106
108
  }
107
109
 
108
110
  .container.container-mobile.collapsed .header {
@@ -127,9 +129,29 @@ dx-tree:not(:last-child) {
127
129
  white-space: nowrap;
128
130
  }
129
131
 
130
- @media screen and (max-width: 768px) {
131
- .padding-horizontal {
132
- padding-left: var(--dx-g-spacing-lg);
133
- padding-right: var(--dx-g-spacing-md);
132
+ .footer-nav {
133
+ display: flex;
134
+ padding: var(--dx-g-spacing-xs) var(--dx-g-spacing-sm)
135
+ var(--dx-g-spacing-xs) var(--dx-g-global-header-padding-horizontal);
136
+ position: fixed;
137
+ bottom: 0;
138
+ left: 0;
139
+ width: inherit;
140
+ background: white;
141
+ border-top: 1px solid var(--dx-g-gray-90);
142
+ border-right: 1px solid var(--dx-g-gray-90);
143
+ height: var(--dx-g-spacing-2xl);
144
+ align-items: center;
145
+ }
146
+
147
+ .sidebar-content-hasfooter {
148
+ margin-bottom: var(--dx-g-spacing-2xl);
149
+ }
150
+
151
+ @media screen and (max-width: 767px) {
152
+ :host {
153
+ --doc-version-picker-width: calc(
154
+ 100vw - var(--dx-c-sidebar-left-padding) - var(--dx-g-spacing-lg)
155
+ );
134
156
  }
135
157
  }
@@ -8,14 +8,37 @@
8
8
 
9
9
  .sidebar-item-selected {
10
10
  background: var(--dx-g-cloud-blue-vibrant-95);
11
- box-shadow: inset var(--dx-g-spacing-xs) 0 0 0 var(--dx-g-blue-vibrant-60);
11
+ box-shadow: inset var(--dx-g-spacing-xs) 0 0 0 var(--dx-g-blue-vibrant-40);
12
12
  border-radius: 0;
13
+ color: var(--dx-g-blue-vibrant-40) !important;
13
14
  }
14
15
 
15
16
  .sidebar-item {
16
- padding: 6px var(--dx-g-spacing-md);
17
+ padding: 6px var(--dx-g-spacing-lg) 6px
18
+ var(--dx-g-global-header-padding-horizontal);
19
+ }
20
+
21
+ .sidebar-item:not(.sidebar-item-selected):focus-visible {
22
+ padding: calc(var(--dx-g-spacing-sm) - var(--dx-g-spacing-2xs)) 0;
23
+ margin: 0 var(--dx-g-spacing-lg) 0
24
+ var(--dx-g-global-header-padding-horizontal);
25
+ outline: var(--dx-g-spacing-2xs) solid var(--dx-g-blue-vibrant-40);
26
+ border-radius: var(--dx-g-spacing-2xs);
27
+ }
28
+
29
+ .sidebar-item-selected:focus-visible {
30
+ padding-top: 0;
31
+ padding-bottom: 0;
32
+ outline: none;
33
+
34
+ .indentation {
35
+ outline: var(--dx-g-spacing-2xs) solid var(--dx-g-blue-vibrant-40);
36
+ border-radius: var(--dx-g-spacing-2xs);
37
+ padding-top: calc(var(--dx-g-spacing-sm) - var(--dx-g-spacing-2xs));
38
+ padding-bottom: calc(var(--dx-g-spacing-sm) - var(--dx-g-spacing-2xs));
39
+ }
17
40
  }
18
41
 
19
42
  .sidebar-item:not(.sidebar-item-selected):hover {
20
- background-color: var(--dx-g-gray-90);
43
+ color: var(--dx-g-blue-vibrant-50);
21
44
  }
package/LICENSE DELETED
@@ -1,12 +0,0 @@
1
- Copyright (c) 2020, Salesforce.com, Inc.
2
- All rights reserved.
3
-
4
- Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
5
-
6
- * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
7
-
8
- * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
9
-
10
- * Neither the name of Salesforce.com nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
11
-
12
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.