@salesforcedevs/docs-components 1.3.105-image-resizing-2 → 1.3.106

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/LICENSE ADDED
@@ -0,0 +1,12 @@
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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@salesforcedevs/docs-components",
3
- "version": "1.3.105-image-resizing-2",
3
+ "version": "1.3.106",
4
4
  "description": "Docs Lightning web components for DSC",
5
5
  "license": "MIT",
6
6
  "main": "index.js",
@@ -24,5 +24,5 @@
24
24
  "@types/lodash.orderby": "^4.6.7",
25
25
  "@types/lodash.uniqby": "^4.7.7"
26
26
  },
27
- "gitHead": "4629fdd9ca18a13480044ad43515b91945d16aad"
27
+ "gitHead": "e505946b6e79055d355ff6073dd59a47049670b8"
28
28
  }
@@ -1,5 +1,3 @@
1
- @import "docHelpers/phaseContentLayout";
2
-
3
1
  .api-documentation {
4
2
  margin-top: 48px;
5
3
  }
@@ -16,9 +16,11 @@
16
16
  toc-options={tocOptions}
17
17
  enable-slot-change="true"
18
18
  >
19
- <div slot="doc-phase" if:true={docPhaseInfo} class="doc-phase-wrapper">
20
- <doc-phase doc-phase-info={docPhaseInfo}></doc-phase>
21
- </div>
19
+ <doc-phase
20
+ slot="doc-phase"
21
+ if:true={docPhaseInfo}
22
+ doc-phase-info={docPhaseInfo}
23
+ ></doc-phase>
22
24
  <div slot="sidebar-header" class="version-picker">
23
25
  <template if:true={isVersionEnabled}>
24
26
  <dx-dropdown
@@ -28,7 +30,9 @@
28
30
  value={selectedVersion.id}
29
31
  width="290px"
30
32
  >
31
- <dx-button variant="inline" class="version-picker-text">{selectedVersion.id}</dx-button>
33
+ <dx-button variant="inline" class="version-picker-text">
34
+ {selectedVersion.id}
35
+ </dx-button>
32
36
  </dx-dropdown>
33
37
  </template>
34
38
  </div>
@@ -1,5 +1,14 @@
1
1
  :host {
2
2
  --dx-c-content-vertical-spacing: var(--dx-g-spacing-lg);
3
+ --dx-c-content-sidebar-sticky-top: calc(
4
+ var(--dx-g-global-header-height) + var(--dx-g-doc-header-height)
5
+ );
6
+ --dx-c-sidebar-height: calc(
7
+ 100vh -
8
+ calc(
9
+ var(--dx-g-global-header-height) + var(--dx-g-doc-header-height)
10
+ )
11
+ );
3
12
 
4
13
  display: block;
5
14
  }
@@ -13,7 +22,6 @@ doc-breadcrumbs {
13
22
 
14
23
  dx-sidebar,
15
24
  dx-sidebar-old {
16
- --dx-c-sidebar-height: 100%;
17
25
  --dx-c-sidebar-vertical-padding: var(--dx-c-content-vertical-spacing);
18
26
 
19
27
  z-index: 6;
@@ -34,6 +42,7 @@ dx-toc {
34
42
 
35
43
  .content {
36
44
  display: flex;
45
+ position: relative;
37
46
  }
38
47
 
39
48
  .content-body-doc-phase-container {
@@ -43,24 +52,27 @@ dx-toc {
43
52
  .content-body-container {
44
53
  display: flex;
45
54
  flex-direction: row;
46
- padding-right: var(--dx-g-page-padding-horizontal);
55
+ justify-content: center;
56
+ max-width: var(--dx-g-doc-content-max-width);
57
+ margin: auto;
58
+ padding: 0 var(--dx-g-global-header-padding-horizontal);
47
59
  }
48
60
 
49
61
  .content-body {
50
- margin: var(--dx-g-spacing-sm) var(--dx-c-content-vertical-spacing)
51
- var(--dx-g-spacing-xl);
62
+ margin: var(--dx-g-spacing-sm) 0 var(--dx-g-spacing-xl);
63
+ max-width: 900px;
52
64
  flex: 1;
53
65
  width: 0;
54
66
  }
55
67
 
56
68
  .is-sticky {
57
- height: 100vh;
69
+ align-self: flex-start;
58
70
  position: sticky;
59
- top: 0;
71
+ top: var(--dx-c-content-sidebar-sticky-top);
60
72
  }
61
73
 
62
74
  .right-nav-bar {
63
- max-width: 275px;
75
+ margin-left: var(--dx-c-content-vertical-spacing);
64
76
  }
65
77
 
66
78
  @media screen and (max-width: 1024px) {
@@ -76,6 +88,10 @@ dx-toc {
76
88
  }
77
89
 
78
90
  @media screen and (max-width: 768px) {
91
+ .is-sticky {
92
+ width: 100%;
93
+ }
94
+
79
95
  .content {
80
96
  flex-direction: column;
81
97
  }
@@ -85,8 +101,6 @@ dx-toc {
85
101
  }
86
102
 
87
103
  .left-nav-bar {
88
- --dx-c-sidebar-height: 80vh;
89
-
90
104
  height: unset;
91
105
  z-index: 10;
92
106
  }
@@ -37,9 +37,8 @@
37
37
  if:true={shouldDisplayFeedback}
38
38
  ></doc-sprig-survey>
39
39
  </div>
40
- <div class="right-nav-bar is-sticky">
40
+ <div if:true={showToc} class="right-nav-bar is-sticky">
41
41
  <dx-toc
42
- if:true={showToc}
43
42
  title={tocTitle}
44
43
  options={tocOptions}
45
44
  value={tocValue}
@@ -7,6 +7,7 @@ dx-logo {
7
7
 
8
8
  .header_l2 {
9
9
  justify-content: space-between;
10
+ height: var(--dx-g-doc-header-main-nav-height);
10
11
  }
11
12
 
12
13
  .nav_menu-button {
@@ -56,10 +57,11 @@ header:not(.has-brand) > .header_l2 {
56
57
  --border-color: var(--button-primary-color-hover);
57
58
  }
58
59
 
59
- @media (max-width: 740px) {
60
+ @media (max-width: 768px) {
60
61
  .header_l2 {
61
62
  padding: 0;
62
63
  flex-wrap: wrap;
64
+ height: 100%;
63
65
  }
64
66
 
65
67
  .has-nav-items .header_l2 {
@@ -77,12 +79,15 @@ header:not(.has-brand) > .header_l2 {
77
79
  }
78
80
 
79
81
  .header_l2_group-nav_overflow {
82
+ height: 48px;
80
83
  margin-right: var(--dx-g-spacing-sm);
81
84
  }
82
85
 
83
86
  .header_l2_group-title {
87
+ height: var(--dx-g-doc-header-main-nav-height);
84
88
  margin-right: 0;
85
- padding: var(--dx-g-spacing-smd) var(--dx-g-page-padding-horizontal);
89
+ padding: var(--dx-g-spacing-smd)
90
+ var(--dx-g-global-header-padding-horizontal);
86
91
  }
87
92
 
88
93
  .header_l2_group-title .header_lang-dropdown {
@@ -1,164 +1,94 @@
1
1
  <template>
2
- <dx-brand-theme-provider brand={brand}>
3
- <header class={className}>
4
- <dx-skip-nav-link></dx-skip-nav-link>
5
- <dx-banner
6
- if:true={showBanner}
7
- banner-markup={bannerMarkup}
8
- ></dx-banner>
9
- <div class="header_l1">
10
- <div if:true={showMenuButton} class="nav_menu-ctas">
11
- <dx-button
12
- aria-label="Menu Button"
13
- class="nav_menu-button"
14
- icon-size="large"
15
- icon-symbol={mobileMenuIconSymbol}
16
- variant="tertiary"
17
- onclick={toggleMobileNavMenu}
18
- ></dx-button>
19
- </div>
20
- <dx-logo label={title}></dx-logo>
21
- <dx-header-nav
22
- if:true={showDesktopNavItems}
23
- aria-label="Global Navigation Bar"
24
- nav-items={navItems}
25
- onrequestopennavmenu={onRequestOpenNavMenu}
26
- pathname={pathname}
27
- variant="small"
28
- ></dx-header-nav>
29
- <div class="header-cta-container">
30
- <dx-header-search
31
- if:true={hasSearch}
32
- coveo-organization-id={coveoOrganizationId}
33
- coveo-public-access-token={coveoPublicAccessToken}
34
- coveo-search-pipeline={coveoSearchPipeline}
35
- coveo-search-hub={coveoSearchHub}
36
- mobile={tablet}
37
- onstatechange={handleStateChange}
38
- ></dx-header-search>
39
- </div>
40
- <div
41
- if:true={showTbidLogin}
42
- class="header-tbid-login"
43
- onclick={closeMobileNavMenu}
44
- >
45
- <dw-tbid-login-menu
46
- tbid-api-base-url={tbidApiBaseUrl}
47
- tbid-base-url={tbidBaseUrl}
48
- ></dw-tbid-login-menu>
49
- </div>
50
- <div if:true={showSignup} class="header-login-signup">
51
- <dx-button
52
- aria-label="Browse Trials"
53
- size="small"
54
- href={signupLink}
55
- onclick={handleSignUpClick}
56
- >
57
- Browse Trials
58
- </dx-button>
59
- </div>
60
- <dx-header-mobile-nav-menu
61
- if:true={hasNavItems}
62
- nav-items={navItems}
63
- open={showMobileNavMenu}
64
- pathname={pathname}
65
- value={mobileNavMenuValue}
66
- onchange={onMobileNavMenuChange}
67
- onrequestclose={closeMobileNavMenu}
68
- >
69
- <dx-button
70
- aria-label={bailLabel}
71
- if:true={hasBailLink}
72
- href={bailHref}
73
- variant="tertiary"
74
- icon-symbol="new_window"
75
- >
76
- {bailLabel}
77
- </dx-button>
78
- </dx-header-mobile-nav-menu>
79
- </div>
80
- <div class="header_l2">
81
- <div class="header_l2_group header_l2_group-title">
82
- <a href={headerHref} class="home-link">
83
- <dx-icon
84
- class="brand-icon"
85
- if:true={isValidBrand}
86
- sprite="salesforcebrand"
87
- symbol={brand}
88
- size="xlarge"
89
- ></dx-icon>
90
- <span class="subtitle dx-text-display-6">
91
- {subtitle}
92
- </span>
93
- </a>
94
- <dx-dropdown
95
- if:true={showMobileLanguages}
96
- class="header_lang-dropdown"
97
- options={languages}
98
- small
99
- value={language}
100
- value-path={langValuePath}
101
- onchange={onLangChange}
102
- >
103
- <dx-button
104
- aria-label="Select Language"
105
- variant="inline"
106
- icon-size="large"
107
- icon-symbol="world"
108
- ></dx-button>
109
- </dx-dropdown>
110
- </div>
111
- <div
112
- if:true={hasScopedNavItems}
113
- class="header_l2_group header_l2_group-nav"
114
- >
2
+ <template if:true={shouldRender}>
3
+ <dx-brand-theme-provider brand={brand}>
4
+ <header class={className}>
5
+ <dx-banner
6
+ if:true={showBanner}
7
+ banner-markup={bannerMarkup}
8
+ ></dx-banner>
9
+ <div class="header_l2">
10
+ <div class="header_l2_group header_l2_group-title">
11
+ <a href={headerHref} class="home-link">
12
+ <dx-icon
13
+ class="brand-icon"
14
+ if:true={isValidBrand}
15
+ sprite="salesforcebrand"
16
+ symbol={brand}
17
+ size="xlarge"
18
+ ></dx-icon>
19
+ <span class="subtitle dx-text-display-6">
20
+ {subtitle}
21
+ </span>
22
+ </a>
23
+ <dx-dropdown
24
+ if:true={showMobileLanguages}
25
+ class="header_lang-dropdown"
26
+ options={languages}
27
+ small
28
+ value={language}
29
+ value-path={langValuePath}
30
+ onchange={onLangChange}
31
+ >
32
+ <dx-button
33
+ aria-label="Select Language"
34
+ variant="inline"
35
+ icon-size="large"
36
+ icon-symbol="world"
37
+ ></dx-button>
38
+ </dx-dropdown>
39
+ </div>
115
40
  <div
116
- class="header_l2_group-nav_overflow"
117
- onscroll={onNavScroll}
41
+ if:true={hasScopedNavItems}
42
+ class="header_l2_group header_l2_group-nav"
118
43
  >
119
- <dx-header-nav
120
- aria-label="Scoped Navigation Bar"
121
- nav-items={scopedNavItems}
122
- pathname={pathname}
123
- ></dx-header-nav>
44
+ <div
45
+ class="header_l2_group-nav_overflow"
46
+ onscroll={onNavScroll}
47
+ >
48
+ <dx-header-nav
49
+ aria-label="Scoped Navigation Bar"
50
+ nav-items={scopedNavItems}
51
+ pathname={pathname}
52
+ ></dx-header-nav>
53
+ </div>
124
54
  </div>
125
- </div>
126
- <div
127
- if:false={smallMobile}
128
- class="header_l2_group header_l2_group-right-ctas"
129
- >
130
- <dx-dropdown
131
- if:true={hasLanguages}
132
- class="header_lang-dropdown"
133
- options={languages}
134
- small
135
- value-path={langValuePath}
136
- value={language}
137
- onchange={onLangChange}
55
+ <div
56
+ if:false={smallMobile}
57
+ class="header_l2_group header_l2_group-right-ctas"
138
58
  >
59
+ <dx-dropdown
60
+ if:true={hasLanguages}
61
+ class="header_lang-dropdown"
62
+ options={languages}
63
+ small
64
+ value-path={langValuePath}
65
+ value={language}
66
+ onchange={onLangChange}
67
+ >
68
+ <dx-button
69
+ aria-label="Select Language"
70
+ variant="inline"
71
+ icon-size="small"
72
+ icon-symbol="world"
73
+ >
74
+ {languageLabel}
75
+ </dx-button>
76
+ </dx-dropdown>
139
77
  <dx-button
140
- aria-label="Select Language"
141
- variant="inline"
142
- icon-size="small"
143
- icon-symbol="world"
78
+ if:true={hasBailLink}
79
+ aria-label={bailLabel}
80
+ class="header_bail-link"
81
+ href={bailHref}
82
+ onclick={handleBailClick}
83
+ variant="tertiary"
84
+ icon-symbol="new_window"
85
+ target="_blank"
144
86
  >
145
- {languageLabel}
87
+ {bailLabel}
146
88
  </dx-button>
147
- </dx-dropdown>
148
- <dx-button
149
- if:true={hasBailLink}
150
- aria-label={bailLabel}
151
- class="header_bail-link"
152
- href={bailHref}
153
- onclick={handleBailClick}
154
- variant="tertiary"
155
- icon-symbol="new_window"
156
- target="_blank"
157
- >
158
- {bailLabel}
159
- </dx-button>
89
+ </div>
160
90
  </div>
161
- </div>
162
- </header>
163
- </dx-brand-theme-provider>
91
+ </header>
92
+ </dx-brand-theme-provider>
93
+ </template>
164
94
  </template>
@@ -50,6 +50,7 @@ export default class Header extends HeaderBase {
50
50
  private smallMobileMatchMedia!: MediaQueryList;
51
51
  private tablet = false;
52
52
  private tabletMatchMedia!: MediaQueryList;
53
+ private shouldRender = true;
53
54
 
54
55
  protected mobileBreakpoint(): string {
55
56
  return MOBILE_MATCH;
@@ -59,20 +60,6 @@ export default class Header extends HeaderBase {
59
60
  return this.scopedNavItems && this.scopedNavItems.length > 0;
60
61
  }
61
62
 
62
- private get showDesktopNavItems(): boolean {
63
- return !this.mobile && this.hasNavItems;
64
- }
65
-
66
- private get showTbidLogin(): boolean {
67
- return this.showSignup;
68
- }
69
-
70
- private get showSignup(): boolean {
71
- return this.signupLink
72
- ? (this.tablet && !this.isSearchOpen) || !this.tablet
73
- : false;
74
- }
75
-
76
63
  private get hasLanguages(): boolean {
77
64
  return !!(this.languages && this.languages.length);
78
65
  }
@@ -91,10 +78,6 @@ export default class Header extends HeaderBase {
91
78
  );
92
79
  }
93
80
 
94
- private get showMenuButton(): boolean {
95
- return this.mobile && this.hasNavItems;
96
- }
97
-
98
81
  connectedCallback(): void {
99
82
  super.connectedCallback();
100
83
  this.tabletMatchMedia = window.matchMedia(
@@ -111,6 +94,12 @@ export default class Header extends HeaderBase {
111
94
  "change",
112
95
  this.onSmallMobileChange
113
96
  );
97
+ if (
98
+ !window.location.pathname.includes("/docs/") ||
99
+ window.location.pathname === "/docs/apis"
100
+ ) {
101
+ this.shouldRender = false;
102
+ }
114
103
  }
115
104
 
116
105
  disconnectedCallback(): void {
@@ -2,12 +2,26 @@
2
2
  @import "dxHelpers/text";
3
3
  @import "docHelpers/status";
4
4
 
5
+ :host {
6
+ --doc-c-phase-top: 0;
7
+
8
+ position: sticky;
9
+ top: var(--doc-c-phase-top);
10
+ z-index: 100;
11
+ }
12
+
5
13
  .doc-phase-container {
6
14
  display: flex;
7
15
  flex-direction: column;
8
- padding-left: var(--dx-g-spacing-3xl);
9
- padding-right: var(--dx-g-spacing-3xl);
16
+ align-items: center;
17
+ padding-left: var(--dx-g-global-header-padding-horizontal);
18
+ padding-right: var(--dx-g-global-header-padding-horizontal);
10
19
  width: 100%;
20
+ border: none;
21
+ }
22
+
23
+ .max-width-container {
24
+ max-width: var(--dx-g-doc-content-max-width);
11
25
  }
12
26
 
13
27
  .doc-phase-title-container {
@@ -31,6 +45,7 @@ dx-button {
31
45
  */
32
46
 
33
47
  .doc-phase-body {
48
+ display: block;
34
49
  max-height: 1000px;
35
50
  overflow: hidden;
36
51
  padding-top: var(--dx-g-spacing-smd);
@@ -1,28 +1,30 @@
1
1
  <template>
2
2
  <div class={className} part="container">
3
- <div class="doc-phase-title-container">
4
- <dx-icon
5
- class="doc-status-icon doc-phase-icon"
6
- symbol="recipe"
7
- size="large"
8
- color="status-icon-color"
9
- ></dx-icon>
10
- <p class="doc-status-title doc-phase-title dx-text-body-3">
11
- {docPhaseTitle}
12
- </p>
13
- <dx-button
14
- variant="inline"
15
- onclick={onButtonClick}
16
- aria-label={hideBodyText}
17
- >
18
- {hideBodyText}
19
- </dx-button>
20
- </div>
21
- <!--
3
+ <div class="max-width-container">
4
+ <div class="doc-phase-title-container">
5
+ <dx-icon
6
+ class="doc-status-icon doc-phase-icon"
7
+ symbol="recipe"
8
+ size="large"
9
+ color="status-icon-color"
10
+ ></dx-icon>
11
+ <p class="doc-status-title doc-phase-title dx-text-body-3">
12
+ {docPhaseTitle}
13
+ </p>
14
+ <dx-button
15
+ variant="inline"
16
+ onclick={onButtonClick}
17
+ aria-label={hideBodyText}
18
+ >
19
+ {hideBodyText}
20
+ </dx-button>
21
+ </div>
22
+ <!--
22
23
  NOTE: Here we are rendering mark up using lwc:dom & innerHTML
23
24
  option instead of slots because the html markup will come as a
24
25
  property to the component from a configuration
25
26
  -->
26
- <span lwc:dom="manual" class={bodyClassName}></span>
27
+ <span lwc:dom="manual" class={bodyClassName}></span>
28
+ </div>
27
29
  </div>
28
30
  </template>
@@ -3,6 +3,20 @@
3
3
  --button-primary-color-hover: var(--dx-g-blue-vibrant-40);
4
4
  }
5
5
 
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
+ );
18
+ }
19
+
6
20
  doc-breadcrumbs {
7
21
  --dx-c-popover-z-index: 5;
8
22
 
@@ -464,11 +464,7 @@ export default class DocXmlContent extends LightningElementWithState<{
464
464
  this.addMetatags();
465
465
 
466
466
  if (!this.pageReference.hash) {
467
- document.querySelector("main")?.scrollIntoView({
468
- behavior: "smooth",
469
- block: "start",
470
- inline: "nearest"
471
- });
467
+ document.body.scrollIntoView();
472
468
  }
473
469
  }
474
470
  this.setState({
@@ -1,39 +0,0 @@
1
- doc-phase::part(container) {
2
- margin-bottom: var(--dx-g-spacing-sm);
3
- padding-left: var(--dx-g-spacing-mlg);
4
- padding-right: var(--dx-g-spacing-lg);
5
- width: auto;
6
- }
7
-
8
- .doc-phase-wrapper {
9
- position: sticky;
10
- top: 0;
11
- z-index: 4;
12
- }
13
-
14
- @media screen and (max-width: 800px) {
15
- doc-phase::part(container) {
16
- margin-bottom: 0;
17
- }
18
- }
19
-
20
- @media screen and (min-width: 1024px) and (max-width: 1496px) {
21
- doc-phase::part(container) {
22
- padding-right: var(--dx-g-spacing-3xl);
23
- }
24
- }
25
-
26
- @media screen and (min-width: 1496px) {
27
- doc-phase::part(container) {
28
- margin-right: calc(
29
- var(--dx-g-page-padding-horizontal) - var(--dx-g-spacing-lg)
30
- );
31
- }
32
- }
33
-
34
- @media screen and (max-width: 768px) {
35
- /* We are giving top value because there is one more sticky item(lnb) with height 40px */
36
- .doc-phase-wrapper {
37
- top: 40px;
38
- }
39
- }