@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
@@ -0,0 +1,187 @@
1
+ import { LightningElement, api, track } from "lwc";
2
+ import type * as CoveoSDK from "coveo-search-ui";
3
+
4
+ interface CoveoSearch {
5
+ state: typeof CoveoSDK.state;
6
+ get: typeof CoveoSDK.get;
7
+ $$: typeof CoveoSDK.$$;
8
+ InitializationEvents: typeof CoveoSDK.InitializationEvents;
9
+ QueryEvents: typeof CoveoSDK.QueryEvents;
10
+ SearchEndpoint: typeof CoveoSDK.SearchEndpoint;
11
+ TemplateCache: typeof CoveoSDK.TemplateCache;
12
+ UnderscoreTemplate: typeof CoveoSDK.UnderscoreTemplate;
13
+ init: typeof CoveoSDK.init;
14
+ IQuerySuccessEventArgs: CoveoSDK.IQuerySuccessEventArgs;
15
+ }
16
+
17
+ declare const Coveo: CoveoSearch;
18
+
19
+ function getPaginationState(event: CoveoSDK.IQuerySuccessEventArgs): {
20
+ numberOfPages: number;
21
+ currentPage: number;
22
+ } {
23
+ const pageSize = event.query.numberOfResults!;
24
+ const totalResults = event.results.totalCount!;
25
+ const numberOfPages = Math.ceil(totalResults / pageSize);
26
+
27
+ const currentPage = event.query.firstResult! / pageSize + 1;
28
+
29
+ return { numberOfPages, currentPage };
30
+ }
31
+
32
+ const resultsTemplatesInnerHtml = `
33
+ <script
34
+ id="myDocumentResultTemplate"
35
+ class="result-template"
36
+ type="text/html"
37
+ data-field-publicurl=""
38
+ >
39
+ <div class="dx-result">
40
+ <p class="dx-result-title">
41
+ <a
42
+ class="CoveoResultLink"
43
+ data-field="@publicurl"
44
+ ></a>
45
+ </p>
46
+ <p class="dx-result-excerpt CoveoExcerpt"></p>
47
+ </div>
48
+ </script>
49
+ <script
50
+ id="myDefaultResultTemplate"
51
+ class="result-template"
52
+ type="text/html"
53
+ >
54
+ <div class="dx-result">
55
+ <p class="dx-result-title">
56
+ <a class="CoveoResultLink"></a>
57
+ </p>
58
+ <p class="dx-result-excerpt CoveoExcerpt"></p>
59
+ </div>
60
+ </script>
61
+ `;
62
+
63
+ export default class SearchResults extends LightningElement {
64
+ @api coveoOrganizationId!: string;
65
+ @api coveoPublicAccessToken!: string;
66
+ @api coveoSearchPipeline!: string;
67
+
68
+ private root: HTMLElement | null = null;
69
+ private isInitialized = false;
70
+
71
+ @track _query: string = "";
72
+
73
+ @api
74
+ get searchQuery() {
75
+ return this._query;
76
+ }
77
+ set searchQuery(q: string) {
78
+ this._query = q;
79
+ if (this.isInitialized && this._query !== "") {
80
+ this.updateSearchQuery();
81
+ }
82
+ }
83
+
84
+ private totalResults: number | null = null;
85
+
86
+ private get title() {
87
+ return this.totalResults ? this.totalResults.toLocaleString() : "";
88
+ }
89
+
90
+ private query: string = "";
91
+ private hasFilters: boolean = false;
92
+
93
+ private get hasQuery(): boolean {
94
+ return this.query !== "";
95
+ }
96
+
97
+ private updateSearchQuery() {
98
+ Coveo.state(this.root!, "q", this._query);
99
+ }
100
+
101
+ private clearFilters() {
102
+ const BreadcrumbManager = Coveo.get(
103
+ this.root!.querySelector(".CoveoBreadcrumb") as HTMLElement
104
+ ) as any;
105
+ BreadcrumbManager.clearBreadcrumbs();
106
+ }
107
+
108
+ private currentPage: number = 1;
109
+ private totalPages: number = 1;
110
+
111
+ private goToPage(e: CustomEvent) {
112
+ const page = e.detail;
113
+ const Pager = Coveo.get(
114
+ this.root!.querySelector(".CoveoPager") as HTMLElement
115
+ ) as any;
116
+ Pager.setPage(page);
117
+ this.currentPage = page;
118
+ }
119
+
120
+ private dismissFiltersOverlay = () => {
121
+ const overlay = this.root!.querySelector(
122
+ ".coveo-dropdown-background-active"
123
+ ) as HTMLElement | null;
124
+ overlay?.click();
125
+ };
126
+
127
+ private attachListeners(root: HTMLElement) {
128
+ Coveo.$$(root).on(
129
+ Coveo.InitializationEvents.afterInitialization,
130
+ () => {
131
+ if (this._query !== "") {
132
+ Coveo.state(this.root!, "q", this.searchQuery);
133
+ }
134
+ if (Coveo.state(this.root!, "q") === "") {
135
+ Coveo.state(this.root!, "sort", "date descending");
136
+ }
137
+ this.isInitialized = true;
138
+ }
139
+ );
140
+
141
+ Coveo.$$(root).on(Coveo.QueryEvents.querySuccess, (event: any) => {
142
+ const { currentPage, numberOfPages } = getPaginationState(
143
+ event.detail
144
+ );
145
+ this.currentPage = currentPage;
146
+ this.totalPages = numberOfPages;
147
+ this.totalResults = event.detail.results.totalCount;
148
+ this.query = event.detail.query.q ?? "";
149
+ this.hasFilters = event.detail.query.facets.some((f: any) => {
150
+ return f.currentValues.some((cv: any) => {
151
+ return cv.state === "selected";
152
+ });
153
+ });
154
+ });
155
+ }
156
+
157
+ private initializeCoveo() {
158
+ this.root = this.template.querySelector(".CoveoSearchInterface")!;
159
+
160
+ const resultsList = this.template.querySelector(".CoveoResultList");
161
+ if (resultsList) {
162
+ resultsList.innerHTML = resultsTemplatesInnerHtml;
163
+ }
164
+
165
+ Coveo.SearchEndpoint.configureCloudV2Endpoint(
166
+ this.coveoOrganizationId,
167
+ this.coveoPublicAccessToken
168
+ );
169
+
170
+ this.attachListeners(this.root);
171
+
172
+ Coveo.init(this.root);
173
+ }
174
+
175
+ renderedCallback() {
176
+ if (!this.isInitialized) {
177
+ if (Object.prototype.hasOwnProperty.call(window, "Coveo")) {
178
+ this.initializeCoveo();
179
+ } else {
180
+ const script = document.querySelector("script.coveo-script");
181
+ script?.addEventListener("load", () => {
182
+ this.initializeCoveo();
183
+ });
184
+ }
185
+ }
186
+ }
187
+ }
@@ -8,6 +8,7 @@
8
8
  --dx-c-section-padding-right: var(--dx-c-section-padding-horizontal);
9
9
  --dx-c-section-padding-top: var(--dx-c-section-padding-vertical);
10
10
  --dx-c-section-padding-bottom: var(--dx-c-section-padding-vertical);
11
+ --dx-c-section-heading-margin-bottom: var(--dx-g-spacing-2xl);
11
12
  }
12
13
 
13
14
  .section {
@@ -58,10 +59,18 @@
58
59
  max-width: 800px;
59
60
  }
60
61
 
62
+ .dx-text-heading-custom {
63
+ color: var(--dx-c-section-heading-font-color, --dx-g-text-heading-color);
64
+ font-family: var(--dx-c-section-heading-font-family, --dx-g-font-display);
65
+ font-size: var(--dx-c-section-heading-font-size, --dx-g-text-3xl);
66
+ letter-spacing: var(--dx-c-section-heading-letter-spacing, -0.4px);
67
+ line-height: var(--dx-c-section-heading-line-height, 40px);
68
+ }
69
+
61
70
  .text {
62
71
  display: flex;
63
72
  flex-direction: column;
64
- margin-bottom: var(--dx-g-spacing-2xl);
73
+ margin-bottom: var(--dx-c-section-heading-margin-bottom);
65
74
  z-index: 100;
66
75
  }
67
76
 
@@ -5,7 +5,7 @@ import { toDxColor } from "dxUtils/css";
5
5
  export default class Section extends LightningElement {
6
6
  @api backgroundColor: string = "transparent";
7
7
  @api dark: boolean = false;
8
- @api headingLevel: "1" | "2" | "3" | "4" | "5" = "3";
8
+ @api headingLevel: "1" | "2" | "3" | "4" | "5" | "custom" = "3";
9
9
  @api label?: string;
10
10
  @api subtitle?: string;
11
11
  @api textAlign: "center" | "left" = "left";
@@ -6,7 +6,7 @@
6
6
  outline: none;
7
7
  }
8
8
 
9
- .select_container::before {
9
+ .select_container::after {
10
10
  --icon-size: 0.5em;
11
11
 
12
12
  border-style: solid;
@@ -128,16 +128,17 @@ select {
128
128
  width: 100%;
129
129
  border: 1px solid #dddbda;
130
130
  border-radius: 0.25rem;
131
- background-color: white;
131
+ background-color: transparent;
132
132
  -webkit-transition: border 0.1s linear, background-color 0.1s linear;
133
133
  transition: border 0.1s linear, background-color 0.1s linear;
134
+ z-index: 1;
134
135
  }
135
136
 
136
137
  .select-element:focus,
137
138
  .select-element:active {
138
139
  outline: 0;
139
140
  border-color: #1b96ff;
140
- background-color:white;
141
+ background-color: transparent;
141
142
  -webkit-box-shadow: 0 0 3px #0176d3;
142
143
  box-shadow: 0 0 3px #0176d3;
143
144
  }
@@ -153,6 +154,7 @@ select {
153
154
  -ms-user-select: none;
154
155
  user-select: none;
155
156
  opacity: 1;
157
+ z-index: 0;
156
158
  }
157
159
 
158
160
  .select-element[disabled]:focus,
@@ -180,7 +182,9 @@ select {
180
182
  }
181
183
 
182
184
  .select_container {
185
+ display: grid;
183
186
  position: relative;
187
+ background-color: white;
184
188
  }
185
189
 
186
190
  .select_container .select-element {
@@ -1,17 +1,4 @@
1
- @import "dxHelpers/reset";
2
- @import "dxHelpers/text";
3
-
4
- :host {
5
- --dx-c-sidebar-width: 275px;
6
- --dx-c-sidebar-button-color: var(--dx-g-blue-vibrant-50);
7
- --dx-c-sidebar-button-background: white;
8
- --dx-c-sidebar-button-border: white;
9
- --dx-c-sidebar-button-color-hover: white;
10
- --dx-c-sidebar-button-background-hover: var(--dx-g-blue-vibrant-50);
11
- --dx-c-sidebar-button-border-hover: var(--dx-g-blue-vibrant-50);
12
- --dx-c-sidebar-left-padding: var(--dx-g-page-padding-horizontal);
13
- --dx-c-sidebar-vertical-padding: var(--dx-g-spacing-md);
14
- }
1
+ @import "dxHelpers/commonSidebar";
15
2
 
16
3
  dx-empty-state {
17
4
  --dx-c-empty-state-background: var(--sds-g-gray-2);
@@ -20,102 +7,11 @@ dx-empty-state {
20
7
  display: none;
21
8
  }
22
9
 
23
- dx-tree:not(:last-child) {
24
- margin-bottom: var(--dx-g-spacing-sm);
25
- }
26
-
27
- .header {
28
- box-sizing: content-box;
29
- display: flex;
30
- line-height: var(--dx-g-spacing-xl);
31
- margin-bottom: 12px;
32
- }
33
-
34
- .padding-horizontal {
35
- padding-left: var(--dx-g-spacing-md);
36
- padding-right: var(--dx-g-spacing-md);
37
- }
38
-
39
- .header-title {
40
- line-height: inherit;
41
- }
42
-
43
- .header-toggle-button {
44
- position: absolute;
45
- right: calc((-1 * (var(--dx-g-spacing-xl) / 2)) - 1px);
46
-
47
- --dx-c-button-opacity: 0;
48
- --dx-c-button-custom-color: var(--dx-c-sidebar-button-color);
49
- --dx-c-button-custom-background: var(--dx-c-sidebar-button-background);
50
- --dx-c-button-custom-border: var(--dx-c-sidebar-button-border);
51
- --dx-c-button-custom-color-hover: var(--dx-c-sidebar-button-color-hover);
52
- --dx-c-button-custom-background-hover: var(
53
- --dx-c-sidebar-button-background-hover
54
- );
55
- --dx-c-button-custom-border-hover: var(--dx-c-sidebar-button-border-hover);
56
- }
57
-
58
- .header-toggle-icon {
59
- margin: auto 0 auto auto;
60
- color: var(--dx-g-blue-vibrant-30);
61
- }
62
-
63
- .header-toggle-icon dx-icon {
64
- transition: var(--dx-g-transition-transform-2x);
65
- }
66
-
67
- .container {
68
- background-color: var(--dx-g-gray-95);
69
- display: flex;
70
- flex-direction: column;
71
- height: var(--dx-c-sidebar-height);
72
- width: calc(var(--dx-c-sidebar-width) + var(--left-spacing));
73
- }
74
-
75
- .container:not(.container-mobile) {
76
- --border-color: transparent;
77
- --left-spacing: calc(
78
- var(--dx-c-sidebar-left-padding) - var(--dx-g-spacing-md)
79
- );
80
-
81
- box-shadow: 2px 0 0 0 var(--border-color);
82
- min-height: var(--dx-c-sidebar-min-height);
83
- padding: var(--dx-c-sidebar-vertical-padding) 0
84
- var(--dx-c-sidebar-vertical-padding) var(--left-spacing);
85
- position: relative;
86
- }
87
-
88
- .collapsed.container:not(.container-mobile) {
89
- background-color: transparent;
90
- }
91
-
92
- .collapsed.container:not(.container-border-active) {
93
- --border-color: transparent;
94
- }
95
-
96
- .container.container-border-active {
97
- --border-color: var(--dx-c-sidebar-button-color);
98
- }
99
-
100
10
  .sidebar-content {
101
11
  overflow-y: auto;
102
12
  padding-bottom: var(--dx-g-spacing-md);
103
13
  }
104
14
 
105
- .search {
106
- padding-bottom: var(--dx-g-spacing-md);
107
- }
108
-
109
- .search-box {
110
- --dx-c-input-width: 100%;
111
- }
112
-
113
- .truncate {
114
- overflow: hidden;
115
- text-overflow: ellipsis;
116
- white-space: nowrap;
117
- }
118
-
119
15
  .loading-skeleton {
120
16
  margin-top: var(--dx-g-spacing-md);
121
17
  }
@@ -132,10 +28,6 @@ dx-tree:not(:last-child) {
132
28
  display: none;
133
29
  }
134
30
 
135
- .container.collapsed {
136
- width: var(--dx-g-spacing-xl);
137
- }
138
-
139
31
  .container.collapsed .header-toggle-button {
140
32
  transform: rotate(180deg);
141
33
  }
@@ -145,42 +37,6 @@ dx-tree:not(:last-child) {
145
37
  display: none;
146
38
  }
147
39
 
148
- .container:hover .header-toggle-button {
149
- --dx-c-button-opacity: 1;
150
- }
151
-
152
- .container.container-mobile {
153
- width: 100%;
154
- }
155
-
156
- .container.container-mobile .header {
157
- cursor: pointer;
158
- line-height: var(--dx-g-spacing-2xl);
159
- }
160
-
161
- .container.container-mobile:not(.collapsed) .header {
162
- background-color: #dddbda;
163
- }
164
-
165
- .container.container-mobile .header-title {
166
- color: var(--dx-g-gray-10);
167
- font-family: var(--dx-g-font-sans);
168
- font-size: var(--dx-g-text-sm);
169
- }
170
-
171
- .container.container-mobile.collapsed {
172
- height: unset;
173
- padding-bottom: 0;
174
- }
175
-
176
- .container.container-mobile.collapsed .header {
177
- margin-bottom: 0;
178
- }
179
-
180
- .container.container-mobile.collapsed .header-toggle-icon dx-icon {
181
- transform: rotateZ(-90deg);
182
- }
183
-
184
40
  @media (max-width: 768px) {
185
41
  :host {
186
42
  width: 100%;
@@ -169,6 +169,8 @@ export default class Sidebar extends SidebarBase {
169
169
 
170
170
  private onSelect(event: CustomEvent) {
171
171
  this._value = event.detail.name;
172
+
173
+ this.dispatchEvent(new CustomEvent("sidebarclick"));
172
174
  }
173
175
 
174
176
  private onToggleClick(event: Event) {
@@ -1,157 +1,13 @@
1
- @import "dxHelpers/reset";
2
- @import "dxHelpers/text";
3
-
4
- :host {
5
- --dx-c-sidebar-width: 275px;
6
- --dx-c-sidebar-button-color: var(--dx-g-blue-vibrant-50);
7
- --dx-c-sidebar-button-background: white;
8
- --dx-c-sidebar-button-border: white;
9
- --dx-c-sidebar-button-color-hover: white;
10
- --dx-c-sidebar-button-background-hover: var(--dx-g-blue-vibrant-50);
11
- --dx-c-sidebar-button-border-hover: var(--dx-g-blue-vibrant-50);
12
- --dx-c-sidebar-left-padding: var(--dx-g-page-padding-horizontal);
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);
18
- }
19
-
20
- .header {
21
- box-sizing: content-box;
22
- display: flex;
23
- line-height: var(--dx-g-spacing-xl);
24
- margin-bottom: 12px;
25
- }
26
-
27
- .padding-horizontal {
28
- padding-left: var(--dx-g-spacing-md);
29
- padding-right: var(--dx-g-spacing-md);
30
- }
31
-
32
- .header-title {
33
- line-height: inherit;
34
- }
35
-
36
- .header-toggle-button {
37
- position: absolute;
38
- right: calc((-1 * (var(--dx-g-spacing-xl) / 2)) - 1px);
39
-
40
- --dx-c-button-opacity: 0;
41
- --dx-c-button-custom-color: var(--dx-c-sidebar-button-color);
42
- --dx-c-button-custom-background: var(--dx-c-sidebar-button-background);
43
- --dx-c-button-custom-border: var(--dx-c-sidebar-button-border);
44
- --dx-c-button-custom-color-hover: var(--dx-c-sidebar-button-color-hover);
45
- --dx-c-button-custom-background-hover: var(
46
- --dx-c-sidebar-button-background-hover
47
- );
48
- --dx-c-button-custom-border-hover: var(--dx-c-sidebar-button-border-hover);
49
- }
50
-
51
- .header-toggle-icon {
52
- margin: auto 0 auto auto;
53
- color: var(--dx-g-blue-vibrant-30);
54
- }
55
-
56
- .header-toggle-icon dx-icon {
57
- transition: var(--dx-g-transition-transform-2x);
58
- }
59
-
60
- .container.collapsed {
61
- width: var(--dx-g-spacing-xl);
62
- }
1
+ @import "dxHelpers/commonSidebar";
63
2
 
64
3
  .collapsed .header-toggle-button {
65
4
  transform: rotate(180deg);
66
5
  }
67
6
 
68
- .container {
69
- background-color: var(--dx-g-gray-95);
70
- display: flex;
71
- flex-direction: column;
72
- height: var(--dx-c-sidebar-height);
73
- width: calc(var(--dx-c-sidebar-width) + var(--left-spacing));
74
- }
75
-
76
- .container:not(.container-mobile) {
77
- --border-color: var(--dx-g-gray-95);
78
- --left-spacing: calc(
79
- var(--dx-c-sidebar-left-padding) - var(--dx-g-spacing-md)
80
- );
81
-
82
- border-right: 2px solid var(--border-color);
83
- min-height: var(--dx-c-sidebar-min-height);
84
- padding: var(--dx-c-sidebar-vertical-padding) 0
85
- var(--dx-c-sidebar-vertical-padding) var(--left-spacing);
86
- position: relative;
87
- }
88
-
89
- .collapsed.container:not(.container-mobile) {
90
- background-color: transparent;
91
- }
92
-
93
- .collapsed.container:not(.container-border-active) {
94
- --border-color: transparent;
95
- }
96
-
97
- .container:hover .header-toggle-button {
98
- --dx-c-button-opacity: 1;
99
- }
100
-
101
- .container.container-border-active {
102
- --border-color: var(--dx-c-sidebar-button-color);
103
- }
104
-
105
- .container.container-mobile {
106
- width: 100%;
107
- }
108
-
109
- .container.container-mobile .header {
110
- cursor: pointer;
111
- line-height: var(--dx-g-spacing-2xl);
112
- }
113
-
114
- .container.container-mobile:not(.collapsed) .header {
115
- background-color: #dddbda;
116
- }
117
-
118
- .container.container-mobile .header-title {
119
- color: var(--dx-g-gray-10);
120
- font-family: var(--dx-g-font-sans);
121
- font-size: var(--dx-g-text-sm);
122
- }
123
-
124
- .container.container-mobile.collapsed {
125
- height: unset;
126
- padding-bottom: 0;
127
- }
128
-
129
- .container.container-mobile.collapsed .header {
130
- margin-bottom: 0;
131
- }
132
-
133
- .container.container-mobile.collapsed .header-toggle-icon dx-icon {
134
- transform: rotateZ(-90deg);
135
- }
136
-
137
7
  .sidebar-content {
138
8
  overflow-y: auto;
139
9
  }
140
10
 
141
- .search {
142
- padding-bottom: var(--dx-g-spacing-md);
143
- }
144
-
145
- .search-box {
146
- --dx-c-input-width: 100%;
147
- }
148
-
149
- .truncate {
150
- overflow: hidden;
151
- text-overflow: ellipsis;
152
- white-space: nowrap;
153
- }
154
-
155
11
  dx-empty-state {
156
12
  --dx-c-empty-state-background: var(--sds-g-gray-2);
157
13
  --dx-c-empty-state-image-width: 400px;
@@ -95,6 +95,8 @@ export default class Sidebar extends SidebarBase {
95
95
 
96
96
  private onSelect(event: CustomEvent) {
97
97
  this._value = event.detail.name;
98
+
99
+ this.dispatchEvent(new CustomEvent("sidebarclick"));
98
100
  }
99
101
 
100
102
  private onToggleClick(event: Event) {
@@ -307,10 +307,30 @@ export default class SidebarSearch extends LightningElement {
307
307
  }
308
308
 
309
309
  let href;
310
- if (queryParam) {
311
- href = `${pathname}${queryParam}&q=${this.value}`;
310
+ let isSelected = false;
311
+ const isReferenceUrl = clickUri.includes("/references/");
312
+ if (isReferenceUrl) {
313
+ if (queryParam) {
314
+ href = `${pathname}${queryParam}&q=${this.value}`;
315
+ } else {
316
+ href = `${pathname}?q=${this.value}`;
317
+ }
318
+
319
+ //NOTE: This is specific to references related comparison
320
+ const resultHrefWithMetaQuery = `${pathname}${queryParam}`;
321
+
322
+ const urlParams = new URLSearchParams(window.location.search);
323
+ const metaQueryParam = urlParams.get("meta");
324
+
325
+ let currentUrlPathWithQuery = window.location.pathname;
326
+ if (metaQueryParam) {
327
+ currentUrlPathWithQuery = `${currentUrlPathWithQuery}?meta=${metaQueryParam}`;
328
+ }
329
+
330
+ isSelected = resultHrefWithMetaQuery === currentUrlPathWithQuery;
312
331
  } else {
313
332
  href = `${pathname}?q=${this.value}`;
333
+ isSelected = pathname === window.location.pathname;
314
334
  }
315
335
 
316
336
  return {
@@ -320,7 +340,7 @@ export default class SidebarSearch extends LightningElement {
320
340
  excerptHighlights,
321
341
  uniqueId,
322
342
  href,
323
- selected: pathname === window.location.pathname
343
+ selected: isSelected
324
344
  };
325
345
  };
326
346
 
@@ -1,6 +1,6 @@
1
1
  @import "dxHelpers/reset";
2
2
  @import "dxHelpers/text";
3
- @import "dxHelpers/sidebar";
3
+ @import "dxHelpers/commonTreeItem";
4
4
 
5
5
  a {
6
6
  display: flex;
@@ -38,10 +38,6 @@ a {
38
38
  margin: 0 var(--horizontal-spacing);
39
39
  }
40
40
 
41
- .nav-list-item > span {
42
- margin-top: var(--dx-g-spacing-xs);
43
- }
44
-
45
41
  button.nav-list-item_default > dx-icon {
46
42
  margin-left: var(--dx-g-spacing-sm);
47
43
  }
@@ -0,0 +1,20 @@
1
+ @import "dxHelpers/reset";
2
+
3
+ :host {
4
+ --dx-c-tab-panel-margin-top: var(--dx-g-spacing-3xl);
5
+ --dx-c-tab-panel-gap: var(--dx-g-spacing-md);
6
+ }
7
+
8
+ .tabpanel {
9
+ display: none;
10
+ }
11
+
12
+ .tabpanel-active {
13
+ display: block;
14
+ }
15
+
16
+ @media screen and (max-width: 640px) {
17
+ .tabpanel-active {
18
+ --dx-c-tab-panel-margin-top: 36px;
19
+ }
20
+ }