@salesforcedevs/docs-components 1.3.228-version-picker2 → 1.3.242-dc-alpha1

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@salesforcedevs/docs-components",
3
- "version": "1.3.228-version-picker2",
3
+ "version": "1.3.242-dc-alpha1",
4
4
  "description": "Docs Lightning web components for DSC",
5
5
  "license": "MIT",
6
6
  "main": "index.js",
@@ -1,6 +1,6 @@
1
1
  <template>
2
2
  <doc-content-layout
3
- if:true={isVersionFetched}
3
+ lwc:if={isVersionFetched}
4
4
  use-old-sidebar={useOldSidebar}
5
5
  class="content-type content-type-reference"
6
6
  coveo-organization-id={coveoOrganizationId}
@@ -22,18 +22,18 @@
22
22
  >
23
23
  <doc-phase
24
24
  slot="doc-phase"
25
- if:true={docPhaseInfo}
25
+ lwc:if={docPhaseInfo}
26
26
  doc-phase-info={docPhaseInfo}
27
27
  ></doc-phase>
28
28
  <doc-phase
29
29
  slot="version-banner"
30
- if:true={showVersionBanner}
30
+ lwc:if={showVersionBanner}
31
31
  doc-phase-info={oldVersionInfo}
32
32
  icon-name="warning"
33
33
  dismissible="true"
34
34
  ondismissphase={handleDismissVersionBanner}
35
35
  ></doc-phase>
36
- <div if:true={isVersionEnabled} slot="sidebar-header">
36
+ <div lwc:if={isVersionEnabled} slot="sidebar-header">
37
37
  <doc-version-picker
38
38
  onchange={handleVersionChange}
39
39
  data-type="version"
@@ -42,18 +42,18 @@
42
42
  latest-version={latestVersion}
43
43
  ></doc-version-picker>
44
44
  </div>
45
- <template if:false={showSpecBasedReference}>
46
- <slot></slot>
47
- </template>
48
- <template if:true={showSpecBasedReference}>
45
+ <template lwc:if={showSpecBasedReference}>
49
46
  <div class="container">
50
47
  <div class="api-documentation">
51
48
  <doc-amf-topic
52
- if:true={topicModel}
49
+ lwc:if={topicModel}
53
50
  model={topicModel}
54
51
  ></doc-amf-topic>
55
52
  </div>
56
53
  </div>
57
54
  </template>
55
+ <template lwc:else>
56
+ <slot></slot>
57
+ </template>
58
58
  </doc-content-layout>
59
59
  </template>
@@ -22,7 +22,7 @@ doc-breadcrumbs {
22
22
 
23
23
  dx-sidebar,
24
24
  dx-sidebar-old {
25
- --dx-c-sidebar-vertical-padding: var(--dx-c-content-vertical-spacing);
25
+ --dx-c-sidebar-vertical-padding: var(--dx-g-spacing-md);
26
26
 
27
27
  z-index: calc(var(--dx-g-z-index-100) + 5);
28
28
  }
@@ -54,6 +54,7 @@ dx-toc {
54
54
 
55
55
  .content-body-doc-phase-container {
56
56
  flex: 1;
57
+ border-left: 1px solid var(--dx-g-gray-90);
57
58
  }
58
59
 
59
60
  .content-body-container {
@@ -70,7 +71,7 @@ dx-toc {
70
71
  }
71
72
 
72
73
  .content-body {
73
- margin: var(--dx-g-spacing-sm) 0 0;
74
+ margin: var(--dx-g-spacing-md) 0 0;
74
75
  max-width: 900px;
75
76
  flex: 1;
76
77
  width: 0;
@@ -96,6 +97,10 @@ dx-toc {
96
97
  .content-body {
97
98
  margin-top: var(--dx-c-content-vertical-spacing);
98
99
  }
100
+
101
+ .content-body-doc-phase-container {
102
+ border-left: 0;
103
+ }
99
104
  }
100
105
 
101
106
  @media screen and (max-width: 768px) {
@@ -115,7 +120,6 @@ dx-toc {
115
120
 
116
121
  .left-nav-bar {
117
122
  height: unset;
118
- z-index: 10;
119
123
  }
120
124
 
121
125
  .content-body {
@@ -1,6 +1,6 @@
1
1
  <template>
2
2
  <div class="content">
3
- <template if:true={useOldSidebar}>
3
+ <template lwc:if={useOldSidebar}>
4
4
  <dx-sidebar-old
5
5
  class="is-sticky left-nav-bar"
6
6
  trees={sidebarContent}
@@ -15,7 +15,7 @@
15
15
  <slot name="sidebar-header" slot="version-picker"></slot>
16
16
  </dx-sidebar-old>
17
17
  </template>
18
- <template if:false={useOldSidebar}>
18
+ <template lwc:else>
19
19
  <dx-sidebar
20
20
  class="is-sticky left-nav-bar"
21
21
  trees={sidebarContent}
@@ -40,15 +40,15 @@
40
40
  <div class="content-body-container">
41
41
  <div class="content-body">
42
42
  <doc-breadcrumbs
43
- if:true={showBreadcrumbs}
43
+ lwc:if={showBreadcrumbs}
44
44
  breadcrumbs={breadcrumbs}
45
45
  ></doc-breadcrumbs>
46
46
  <slot onslotchange={onSlotChange}></slot>
47
47
  <doc-sprig-survey
48
- if:true={shouldDisplayFeedback}
48
+ lwc:if={shouldDisplayFeedback}
49
49
  ></doc-sprig-survey>
50
50
  </div>
51
- <div if:true={showToc} class="right-nav-bar is-sticky">
51
+ <div lwc:if={showToc} class="right-nav-bar is-sticky">
52
52
  <dx-toc
53
53
  title={tocTitle}
54
54
  options={tocOptions}
@@ -4,11 +4,26 @@ dx-logo {
4
4
  min-width: fit-content;
5
5
  }
6
6
 
7
+ .dev-center-link {
8
+ display: inline-block;
9
+ margin-left: var(--dx-g-global-header-padding-horizontal);
10
+ height: 20px;
11
+ }
12
+
13
+ .dev-center-content {
14
+ display: flex; /* This makes the anchor element a flex container */
15
+ align-items: center; /* This centers the content vertically */
16
+ text-decoration: none; /* Remove underline from the anchor element */
17
+ color: inherit;
18
+ }
19
+
20
+ .dev-center-content > * + * {
21
+ margin-left: 8px; /* Adjust this value to your desired spacing */
22
+ }
23
+
7
24
  .header_l2 {
8
25
  justify-content: space-between;
9
26
  height: var(--dx-g-doc-header-main-nav-height);
10
- padding-bottom: var(--dx-g-spacing-xs);
11
- background: white;
12
27
  }
13
28
 
14
29
  .nav_menu-button {
@@ -35,7 +50,6 @@ header:not(.has-brand) > .header_l1 {
35
50
  header:not(.has-brand) > .header_l2 {
36
51
  border-bottom: 1px solid var(--dx-g-gray-90);
37
52
  border-top: 1px solid var(--dx-g-gray-90);
38
- padding-bottom: var(--dx-g-spacing-lg);
39
53
  }
40
54
 
41
55
  .header_l2_group.header_l2_group-right-ctas {
@@ -43,7 +57,13 @@ header:not(.has-brand) > .header_l2 {
43
57
  }
44
58
 
45
59
  .has-brand .header_l2_group-title {
46
- padding-bottom: calc(var(--dx-g-spacing-md) + 2px);
60
+ padding: var(--dx-g-spacing-smd) var(--dx-g-spacing-xl)
61
+ calc(var(--dx-g-spacing-smd) - 1px) 0;
62
+ min-width: 320px;
63
+ }
64
+
65
+ .no-header-content {
66
+ border-top: 1px solid var(--dx-g-gray-90);
47
67
  }
48
68
 
49
69
  @media (max-width: 768px) {
@@ -61,37 +81,41 @@ header:not(.has-brand) > .header_l2 {
61
81
  width: 100%;
62
82
  }
63
83
 
84
+ .header_l2_group-title {
85
+ margin-right: 0;
86
+ padding: var(--dx-g-spacing-sm) 0 2px
87
+ var(--dx-g-global-header-padding-horizontal);
88
+ min-height: var(--dx-g-doc-header-main-nav-height);
89
+ }
90
+
64
91
  .header_l2_group-nav {
65
92
  height: var(--dx-g-spacing-3xl);
66
93
  padding: 0;
67
- padding-left: var(--dx-g-spacing-sm);
94
+ margin-top: calc(var(--dx-g-spacing-2xs) + 1px);
68
95
  }
69
96
 
70
97
  .header_l2_group-nav_overflow {
71
- height: 48px;
98
+ height: var(--dx-g-spacing-3xl);
72
99
  margin-right: var(--dx-g-spacing-sm);
73
100
  }
74
101
 
75
- .has-brand .header_l2_group-title {
76
- padding-bottom: var(--dx-g-spacing-smd);
102
+ .subtitle {
103
+ font-weight: var(--dx-g-font-demi);
104
+ letter-spacing: -0.08px;
77
105
  }
78
106
 
79
- .header_l2_group-title {
107
+ .has-brand .header_l2_group-title {
80
108
  margin-right: 0;
81
- padding: var(--dx-g-spacing-smd)
109
+ padding: var(--dx-g-spacing-sm) 0 var(--dx-g-spacing-2xs)
82
110
  var(--dx-g-global-header-padding-horizontal);
83
- min-height: var(--dx-g-doc-header-main-nav-height);
84
111
  }
85
112
 
86
113
  .has-scoped-nav-items > .header_l2 {
87
114
  height: unset;
88
115
  }
89
116
 
90
- .has-scoped-nav-items .header_l2_group-title {
91
- border-bottom: 1px solid var(--dx-g-gray-90);
92
- }
93
-
94
117
  header:not(.has-brand) > .header_l2 {
95
118
  padding-bottom: 0;
119
+ border: 0;
96
120
  }
97
121
  }
@@ -1,9 +1,22 @@
1
1
  <template>
2
- <template if:true={shouldRender}>
2
+ <template lwc:if={shouldRender}>
3
+ <div lwc:if={devCenter} class="dev-center-link">
4
+ <a href={devCenter.link} class="dev-center-content">
5
+ <dx-icon symbol="back" size="small"></dx-icon>
6
+ <dx-icon
7
+ class="brand-icon"
8
+ lwc:if={devCenter.icon}
9
+ sprite="salesforcebrand"
10
+ symbol={brand}
11
+ size="small"
12
+ ></dx-icon>
13
+ <span>{devCenter.title}</span>
14
+ </a>
15
+ </div>
3
16
  <dx-brand-theme-provider brand={brand}>
4
17
  <header class={className}>
5
18
  <dx-banner
6
- if:true={showBanner}
19
+ lwc:if={showBanner}
7
20
  banner-markup={bannerMarkup}
8
21
  ></dx-banner>
9
22
  <div class="header_l2">
@@ -11,7 +24,7 @@
11
24
  <a href={headerHref} class="home-link">
12
25
  <dx-icon
13
26
  class="brand-icon"
14
- if:true={isValidBrand}
27
+ lwc:if={isValidBrand}
15
28
  sprite="salesforcebrand"
16
29
  symbol={brand}
17
30
  size="large"
@@ -22,7 +35,7 @@
22
35
  </a>
23
36
  </div>
24
37
  <div
25
- if:true={hasScopedNavItems}
38
+ lwc:if={hasScopedNavItems}
26
39
  class="header_l2_group header_l2_group-nav"
27
40
  >
28
41
  <div
@@ -40,4 +53,7 @@
40
53
  </header>
41
54
  </dx-brand-theme-provider>
42
55
  </template>
56
+ <template lwc:if={showDocDivider}>
57
+ <div class="no-header-content"></div>
58
+ </template>
43
59
  </template>
@@ -5,7 +5,7 @@ import { HeaderBase } from "dxBaseElements/headerBase";
5
5
  import { toJson } from "dxUtils/normalizers";
6
6
 
7
7
  const TABLET_MATCH = "980px";
8
- const MOBILE_MATCH = "880px";
8
+ const MOBILE_MATCH = "768px";
9
9
 
10
10
  export default class Header extends HeaderBase {
11
11
  @api langValuePath: string = "id"; // allows to override how language property is interpreted, follows valuePath dropdown api.
@@ -20,10 +20,22 @@ export default class Header extends HeaderBase {
20
20
  this._scopedNavItems = toJson(value);
21
21
  }
22
22
 
23
+ @api
24
+ get devCenter() {
25
+ return this._devCenter;
26
+ }
27
+
28
+ set devCenter(value) {
29
+ this._devCenter = toJson(value);
30
+ console.log(this._devCenter);
31
+ }
32
+
23
33
  private _scopedNavItems!: OptionWithNested[];
24
34
  private tablet = false;
25
35
  private tabletMatchMedia!: MediaQueryList;
26
- private shouldRender = false;
36
+ private shouldRender: boolean = false;
37
+ private showDocDivider: boolean = false;
38
+ private _devCenter: any;
27
39
 
28
40
  protected mobileBreakpoint(): string {
29
41
  return MOBILE_MATCH;
@@ -51,6 +63,13 @@ export default class Header extends HeaderBase {
51
63
  ) {
52
64
  this.shouldRender = true;
53
65
  }
66
+
67
+ if (this.shouldRender && window.location.pathname.includes("/docs/")) {
68
+ if (!this.brand && !this.mobile) {
69
+ this.shouldRender = false;
70
+ this.showDocDivider = true;
71
+ }
72
+ }
54
73
  }
55
74
 
56
75
  disconnectedCallback(): void {
@@ -2,6 +2,8 @@
2
2
 
3
3
  /* NOTE: doc-version-picker-width width variable is used by both dx-button and dx-dropdown to maintain a consistent width. */
4
4
  :host {
5
+ --dx-c-dropdown-option-font-weight: normal;
6
+ --dx-c-dropdown-option-label-color: var(--dx-g-gray-10);
5
7
  --popover-container-open-transform: translateY(4px);
6
8
  }
7
9
 
@@ -12,11 +14,18 @@
12
14
  border-bottom: 1px solid var(--dx-g-gray-90);
13
15
  }
14
16
 
15
- dx-button {
17
+ .version-picker-button {
16
18
  display: flex;
17
19
  width: var(--doc-version-picker-width, 296px);
18
20
  }
19
21
 
22
+ .version-picker-button:hover,
23
+ .version-picker-button:active,
24
+ .version-picker-button:focus {
25
+ --dx-c-button-secondary-color-hover: var(--dx-g-cloud-blue-vibrant-95);
26
+ --dx-c-button-primary-color: var(--dx-g-blue-vibrant-40);
27
+ }
28
+
20
29
  /**
21
30
  * NOTE: This CSS ensures the span inside the button stays within the parent's width, avoiding overflow.
22
31
  * Not keeping this in common component to ensure that existing functionality works as it is.
@@ -1,11 +1,13 @@
1
1
  <template>
2
- <div if:true={showVersionPicker} class="version-picker-container">
2
+ <div lwc:if={showVersionPicker} class="version-picker-container">
3
3
  <dx-dropdown
4
4
  options={versions}
5
5
  value={selectedVersion.id}
6
6
  width="var(--doc-version-picker-width)"
7
+ onchange={onVersionChange}
7
8
  >
8
9
  <dx-button
10
+ class="version-picker-button"
9
11
  variant="tertiary"
10
12
  size="small"
11
13
  icon-symbol="chevrondown"
@@ -15,16 +17,16 @@
15
17
  <p class="selected-version-label">
16
18
  {selectedVersion.label}
17
19
  </p>
18
- <template if:false={hideBadge}>
20
+ <template lwc:if={showLatestTag}>
19
21
  <dx-type-badge
20
22
  class="latest-badge"
21
- if:true={latestVersion}
23
+ lwc:if={latestVersion}
22
24
  value="Latest"
23
25
  size="small"
24
26
  ></dx-type-badge>
25
27
  <dx-type-badge
26
28
  class="not-latest-badge"
27
- if:false={latestVersion}
29
+ lwc:else
28
30
  value="Not Latest"
29
31
  size="small"
30
32
  ></dx-type-badge>
@@ -1,4 +1,4 @@
1
- import { LightningElement, api } from "lwc";
1
+ import { LightningElement, api, track } from "lwc";
2
2
 
3
3
  import { AnalyticsPayload, OptionWithNested } from "typings/custom";
4
4
 
@@ -8,7 +8,7 @@ export default class VersionPicker extends LightningElement {
8
8
  @api analyticsEvent?: string;
9
9
  @api analyticsPayload?: AnalyticsPayload;
10
10
 
11
- private _versions!: OptionWithNested[];
11
+ @track private _versions!: OptionWithNested[];
12
12
  private _selectedVersion?: OptionWithNested;
13
13
  private _latestVersion: boolean = false;
14
14
  private _hideBadge: boolean = false;
@@ -54,4 +54,12 @@ export default class VersionPicker extends LightningElement {
54
54
  private get showVersionPicker() {
55
55
  return this._versions && this._versions.length !== 0;
56
56
  }
57
+
58
+ private get showLatestTag(): boolean {
59
+ return !this.hideBadge;
60
+ }
61
+
62
+ private onVersionChange(e: CustomEvent) {
63
+ this.dispatchEvent(new CustomEvent("change", { detail: e.detail }));
64
+ }
57
65
  }
@@ -4,17 +4,8 @@
4
4
  }
5
5
 
6
6
  doc-content-layout {
7
- --dx-c-content-sidebar-sticky-top: calc(
8
- var(--dx-g-global-header-height) +
9
- var(--dx-g-doc-header-main-nav-height)
10
- );
11
- --dx-c-sidebar-height: calc(
12
- 100vh -
13
- calc(
14
- var(--dx-g-global-header-height) +
15
- var(--dx-g-doc-header-main-nav-height)
16
- )
17
- );
7
+ --dx-c-content-sidebar-sticky-top: var(--dx-g-global-header-height);
8
+ --dx-c-sidebar-height: calc(100vh - var(--dx-g-global-header-height));
18
9
  }
19
10
 
20
11
  doc-breadcrumbs {
@@ -41,7 +32,23 @@ dx-dropdown > dx-button:hover {
41
32
  }
42
33
 
43
34
  doc-phase {
44
- --doc-c-phase-top: calc(
45
- var(--dx-g-global-header-height) + var(--dx-g-doc-header-height)
46
- );
35
+ --doc-c-phase-top: var(--dx-g-global-header-height);
36
+ }
37
+
38
+ @media screen and (max-width: 768px) {
39
+ doc-content-layout {
40
+ --dx-g-doc-header-main-nav-height: 41px;
41
+ --dx-g-doc-header-height: calc(
42
+ var(--dx-g-doc-header-main-nav-height) + 40px
43
+ );
44
+ --dx-c-content-sidebar-sticky-top: calc(
45
+ var(--dx-g-global-header-height) + var(--dx-g-doc-header-height)
46
+ );
47
+ }
48
+
49
+ doc-phase {
50
+ --doc-c-phase-top: calc(
51
+ var(--dx-g-global-header-height) + var(--dx-g-doc-header-height)
52
+ );
53
+ }
47
54
  }
@@ -1,16 +1,18 @@
1
1
  <template>
2
2
  <doc-content-layout
3
- if:true={loaded}
3
+ lwc:if={loaded}
4
+ lwc:ref="docContentLayout"
4
5
  coveo-organization-id={coveoOrganizationId}
5
6
  coveo-public-access-token={coveoPublicAccessToken}
6
7
  coveo-analytics-token={coveoAnalyticsToken}
7
8
  coveo-search-hub={coveoSearchHub}
8
9
  coveo-advanced-query-config={coveoAdvancedQueryConfig}
9
- sidebar-header="Pages"
10
+ sidebar-header={docTitle}
10
11
  sidebar-content={sidebarContent}
11
12
  sidebar-value={sidebarValue}
12
13
  onselect={handleSelect}
13
14
  use-old-sidebar={useOldSidebar}
15
+ onlangchange={handleLanguageChange}
14
16
  languages={sidebarFooterContent.languages}
15
17
  language={sidebarFooterContent.language}
16
18
  bail-href={sidebarFooterContent.bailHref}
@@ -18,13 +20,13 @@
18
20
  >
19
21
  <doc-phase
20
22
  slot="version-banner"
21
- if:true={showVersionBanner}
23
+ lwc:if={showVersionBanner}
22
24
  doc-phase-info={oldVersionInfo}
23
25
  icon-name="warning"
24
26
  dismissible="true"
25
27
  ondismissphase={handleDismissVersionBanner}
26
28
  ></doc-phase>
27
- <div if:false={disableVersion} slot="sidebar-header">
29
+ <div lwc:if={showVersionPicker} slot="sidebar-header">
28
30
  <doc-version-picker
29
31
  data-type="version"
30
32
  analytics-event="custEv_ctaLinkClick"
@@ -36,7 +38,7 @@
36
38
  ></doc-version-picker>
37
39
  </div>
38
40
  <doc-breadcrumbs
39
- if:true={showBreadcrumbs}
41
+ lwc:if={showBreadcrumbs}
40
42
  breadcrumbs={breadcrumbs}
41
43
  pixel-per-character={breadcrumbPixelPerCharacter}
42
44
  ></doc-breadcrumbs>
@@ -66,7 +66,7 @@ export default class DocXmlContent extends LightningElementWithState<{
66
66
  }
67
67
 
68
68
  private availableLanguages: Array<DocLanguage> = [];
69
- private availableVersions: Array<DocVersion> = [];
69
+ @track private availableVersions: Array<DocVersion> = [];
70
70
  private contentProvider?: FetchContent;
71
71
  private docContent = "";
72
72
  private language?: DocLanguage | null = null;
@@ -578,9 +578,7 @@ export default class DocXmlContent extends LightningElementWithState<{
578
578
  }
579
579
 
580
580
  private updateSearchInput(searchParam: string): void {
581
- (
582
- this.template.querySelector("doc-content-layout") as any
583
- )?.setSidebarInputValue(searchParam);
581
+ (this.refs.docContentLayout as any)?.setSidebarInputValue(searchParam);
584
582
  }
585
583
 
586
584
  private pageReferenceToString(reference: PageReference): string {
@@ -770,4 +768,8 @@ export default class DocXmlContent extends LightningElementWithState<{
770
768
  headTag[0].appendChild(robotsMeta);
771
769
  }
772
770
  }
771
+
772
+ private get showVersionPicker(): boolean {
773
+ return !this.disableVersion;
774
+ }
773
775
  }