@salesforcedevs/docs-components 1.33.2-llms-txt-3 → 1.34.0-alpha
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/lwc.config.json +1 -0
- package/package.json +2 -3
- package/src/modules/doc/contentActionToolbar/contentActionToolbar.css +25 -17
- package/src/modules/doc/contentActionToolbar/contentActionToolbar.html +51 -14
- package/src/modules/doc/contentActionToolbar/contentActionToolbar.ts +24 -160
- package/src/modules/doc/contentActionToolbar/contentActionToolbarMocks.ts +5 -20
- package/src/modules/doc/redocReference/redocReference.css +2 -2
- package/src/modules/doc/redocReference/redocReference.ts +336 -42
- package/src/modules/doc/sprigSurvey/sprigSurvey.scoped.css +17 -0
- package/src/modules/doc/unifiedContentLayout/unifiedContentLayout.css +19 -0
- package/src/modules/doc/unifiedContentLayout/unifiedContentLayout.html +29 -0
- package/src/modules/doc/unifiedContentLayout/unifiedContentLayout.ts +94 -0
- package/src/modules/doc/versionPicker/versionPicker.css +154 -16
- package/src/modules/doc/versionPicker/versionPicker.html +54 -21
- package/src/modules/doc/versionPicker/versionPicker.ts +86 -0
package/lwc.config.json
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@salesforcedevs/docs-components",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.34.0-alpha",
|
|
4
4
|
"description": "Docs Lightning web components for DSC",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"main": "index.js",
|
|
@@ -25,6 +25,5 @@
|
|
|
25
25
|
"@types/lodash.orderby": "4.6.9",
|
|
26
26
|
"@types/lodash.uniqby": "4.7.9"
|
|
27
27
|
},
|
|
28
|
-
"gitHead": "4629fdd9ca18a13480044ad43515b91945d16aad"
|
|
29
|
-
"stableVersion": "1.33.1"
|
|
28
|
+
"gitHead": "4629fdd9ca18a13480044ad43515b91945d16aad"
|
|
30
29
|
}
|
|
@@ -1,24 +1,32 @@
|
|
|
1
1
|
@import "dxHelpers/reset";
|
|
2
2
|
|
|
3
3
|
:host {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
both option rows and subheaders. These custom properties inherit through
|
|
7
|
-
the composed tree down to each dx-dropdown-option. */
|
|
8
|
-
--dx-c-dropdown-option-label-color: var(--dx-g-gray-10);
|
|
9
|
-
--dx-c-dropdown-option-font-weight: var(--dx-g-font-normal);
|
|
10
|
-
--dx-c-dropdown-option-padding-horizontal: var(--dx-g-spacing-lg);
|
|
4
|
+
display: block;
|
|
5
|
+
}
|
|
11
6
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
7
|
+
.toolbar {
|
|
8
|
+
display: flex;
|
|
9
|
+
align-items: center;
|
|
10
|
+
flex-wrap: wrap;
|
|
11
|
+
gap: var(--dx-g-spacing-smd);
|
|
12
|
+
margin-bottom: var(--dx-g-spacing-lg);
|
|
13
|
+
}
|
|
16
14
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
--dx-c-
|
|
15
|
+
.toolbar-button {
|
|
16
|
+
--dx-c-button-font-weight: var(--dx-g-font-demi);
|
|
17
|
+
--dx-c-button-line-height: var(--dx-g-spacing-mlg);
|
|
18
|
+
--dx-c-button-letter-spacing: 0.005em;
|
|
19
|
+
}
|
|
21
20
|
|
|
22
|
-
|
|
23
|
-
|
|
21
|
+
.divider {
|
|
22
|
+
width: 1px;
|
|
23
|
+
height: var(--dx-g-spacing-md);
|
|
24
|
+
background-color: var(--dx-g-gray-70);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
@media screen and (max-width: 480px) {
|
|
28
|
+
.toolbar-button_copy-url,
|
|
29
|
+
.divider_copy-url {
|
|
30
|
+
display: none;
|
|
31
|
+
}
|
|
24
32
|
}
|
|
@@ -1,16 +1,53 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
2
|
+
<div class="toolbar" lwc:if={markdownUrl}>
|
|
3
|
+
<dx-tooltip placement="top-right" label={copyMarkdownLabel}>
|
|
4
|
+
<dx-button
|
|
5
|
+
class="toolbar-button"
|
|
6
|
+
variant="inline"
|
|
7
|
+
size="small"
|
|
8
|
+
icon-sprite="utility"
|
|
9
|
+
icon-symbol="copy"
|
|
10
|
+
icon-size="medium"
|
|
11
|
+
icon-position="right"
|
|
12
|
+
aria-label={copyMarkdownButtonText}
|
|
13
|
+
onclick={handleCopyMarkdown}
|
|
14
|
+
>
|
|
15
|
+
{copyMarkdownButtonText}
|
|
16
|
+
</dx-button>
|
|
17
|
+
</dx-tooltip>
|
|
18
|
+
|
|
19
|
+
<div class="divider"></div>
|
|
20
|
+
|
|
21
|
+
<dx-button
|
|
22
|
+
class="toolbar-button"
|
|
23
|
+
variant="inline"
|
|
24
|
+
size="small"
|
|
25
|
+
icon-sprite="utility"
|
|
26
|
+
icon-symbol="new_window"
|
|
27
|
+
icon-size="medium"
|
|
28
|
+
icon-position="right"
|
|
29
|
+
aria-label={viewMarkdownButtonText}
|
|
30
|
+
onclick={handleViewMarkdown}
|
|
31
|
+
>
|
|
32
|
+
{viewMarkdownButtonText}
|
|
33
|
+
</dx-button>
|
|
34
|
+
|
|
35
|
+
<div class="divider divider_copy-url"></div>
|
|
36
|
+
|
|
37
|
+
<dx-tooltip placement="top-right" label={copyUrlLabel}>
|
|
38
|
+
<dx-button
|
|
39
|
+
class="toolbar-button toolbar-button_copy-url"
|
|
40
|
+
variant="inline"
|
|
41
|
+
size="small"
|
|
42
|
+
icon-sprite="utility"
|
|
43
|
+
icon-symbol="link"
|
|
44
|
+
icon-size="medium"
|
|
45
|
+
icon-position="right"
|
|
46
|
+
aria-label={copyUrlButtonText}
|
|
47
|
+
onclick={handleCopyUrl}
|
|
48
|
+
>
|
|
49
|
+
{copyUrlButtonText}
|
|
50
|
+
</dx-button>
|
|
51
|
+
</dx-tooltip>
|
|
52
|
+
</div>
|
|
16
53
|
</template>
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { LightningElement, api } from "lwc";
|
|
2
|
-
import { OptionWithNested } from "typings/custom";
|
|
3
2
|
import { track } from "dxUtils/analytics";
|
|
4
3
|
|
|
5
4
|
const DEFAULT_COPY_TOOLTIP_LABEL = "Click to copy";
|
|
@@ -10,22 +9,6 @@ const ANALYTICS_CONTENT_CATEGORY = "content action toolbar";
|
|
|
10
9
|
const COPY_MARKDOWN_LABEL = "Copy as Markdown";
|
|
11
10
|
const VIEW_MARKDOWN_LABEL = "View as Markdown";
|
|
12
11
|
const COPY_URL_LABEL = "Copy URL to Markdown";
|
|
13
|
-
const VIEW_LLMS_LABEL = "View llms.txt";
|
|
14
|
-
const COPY_LLMS_URL_LABEL = "Copy URL to llms.txt";
|
|
15
|
-
|
|
16
|
-
// Option ids for the split-button menu; used to route `select` events.
|
|
17
|
-
const OPTION_COPY_MARKDOWN = "copy-markdown";
|
|
18
|
-
const OPTION_VIEW_MARKDOWN = "view-markdown";
|
|
19
|
-
const OPTION_COPY_MARKDOWN_URL = "copy-markdown-url";
|
|
20
|
-
const OPTION_VIEW_LLMS = "view-llms";
|
|
21
|
-
const OPTION_COPY_LLMS_URL = "copy-llms-url";
|
|
22
|
-
|
|
23
|
-
type ToolbarCtaLabel =
|
|
24
|
-
| typeof COPY_MARKDOWN_LABEL
|
|
25
|
-
| typeof VIEW_MARKDOWN_LABEL
|
|
26
|
-
| typeof COPY_URL_LABEL
|
|
27
|
-
| typeof VIEW_LLMS_LABEL
|
|
28
|
-
| typeof COPY_LLMS_URL_LABEL;
|
|
29
12
|
|
|
30
13
|
export default class ContentActionToolbar extends LightningElement {
|
|
31
14
|
@api
|
|
@@ -40,9 +23,8 @@ export default class ContentActionToolbar extends LightningElement {
|
|
|
40
23
|
}
|
|
41
24
|
private _pageUrl?: string;
|
|
42
25
|
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
private copiedOptionId: string | null = null;
|
|
26
|
+
copyMarkdownLabel: string = DEFAULT_COPY_TOOLTIP_LABEL;
|
|
27
|
+
copyUrlLabel: string = DEFAULT_COPY_TOOLTIP_LABEL;
|
|
46
28
|
|
|
47
29
|
private copyTooltipResetTimeout: number | null = null;
|
|
48
30
|
|
|
@@ -68,107 +50,16 @@ export default class ContentActionToolbar extends LightningElement {
|
|
|
68
50
|
return url.toString();
|
|
69
51
|
}
|
|
70
52
|
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
* `https://example.com/llms.txt`.
|
|
74
|
-
*/
|
|
75
|
-
get llmsTxtUrl(): string {
|
|
76
|
-
return new URL("/docs/llms.txt", window.location.origin).toString();
|
|
53
|
+
get copyMarkdownButtonText(): string {
|
|
54
|
+
return COPY_MARKDOWN_LABEL;
|
|
77
55
|
}
|
|
78
56
|
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
// Copy options carry a tooltip that flashes "Copied!" after a copy.
|
|
82
|
-
get options(): OptionWithNested[] {
|
|
83
|
-
return [
|
|
84
|
-
{ id: "this-page", label: "This Page", subheader: true },
|
|
85
|
-
{
|
|
86
|
-
id: OPTION_COPY_MARKDOWN,
|
|
87
|
-
label: COPY_MARKDOWN_LABEL,
|
|
88
|
-
tooltip: this.copyTooltipFor(OPTION_COPY_MARKDOWN),
|
|
89
|
-
rightIconData: {
|
|
90
|
-
iconSymbol: "copy",
|
|
91
|
-
iconSprite: "utility",
|
|
92
|
-
iconColor: "gray-50"
|
|
93
|
-
}
|
|
94
|
-
},
|
|
95
|
-
{
|
|
96
|
-
id: OPTION_VIEW_MARKDOWN,
|
|
97
|
-
label: VIEW_MARKDOWN_LABEL,
|
|
98
|
-
rightIconData: {
|
|
99
|
-
iconSymbol: "new_window",
|
|
100
|
-
iconSprite: "utility",
|
|
101
|
-
iconColor: "gray-50"
|
|
102
|
-
}
|
|
103
|
-
},
|
|
104
|
-
{
|
|
105
|
-
id: OPTION_COPY_MARKDOWN_URL,
|
|
106
|
-
label: COPY_URL_LABEL,
|
|
107
|
-
tooltip: this.copyTooltipFor(OPTION_COPY_MARKDOWN_URL),
|
|
108
|
-
rightIconData: {
|
|
109
|
-
iconSymbol: "link",
|
|
110
|
-
iconSprite: "utility",
|
|
111
|
-
iconColor: "gray-50"
|
|
112
|
-
}
|
|
113
|
-
},
|
|
114
|
-
{ id: "divider-1", label: "", divider: true },
|
|
115
|
-
{ id: "all-docs", label: "All Documentation", subheader: true },
|
|
116
|
-
{
|
|
117
|
-
id: OPTION_VIEW_LLMS,
|
|
118
|
-
label: VIEW_LLMS_LABEL,
|
|
119
|
-
rightIconData: {
|
|
120
|
-
iconSymbol: "new_window",
|
|
121
|
-
iconSprite: "utility",
|
|
122
|
-
iconColor: "gray-50"
|
|
123
|
-
}
|
|
124
|
-
},
|
|
125
|
-
{
|
|
126
|
-
id: OPTION_COPY_LLMS_URL,
|
|
127
|
-
label: COPY_LLMS_URL_LABEL,
|
|
128
|
-
tooltip: this.copyTooltipFor(OPTION_COPY_LLMS_URL),
|
|
129
|
-
rightIconData: {
|
|
130
|
-
iconSymbol: "link",
|
|
131
|
-
iconSprite: "utility",
|
|
132
|
-
iconColor: "gray-50"
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
];
|
|
57
|
+
get viewMarkdownButtonText(): string {
|
|
58
|
+
return VIEW_MARKDOWN_LABEL;
|
|
136
59
|
}
|
|
137
60
|
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
// copy from either the primary button or the matching menu option.
|
|
141
|
-
get actionTooltip(): string {
|
|
142
|
-
return this.copyTooltipFor(OPTION_COPY_MARKDOWN);
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
// "Copied!" while this option is flashing, otherwise "Click to copy".
|
|
146
|
-
private copyTooltipFor(optionId: string): string {
|
|
147
|
-
return this.copiedOptionId === optionId
|
|
148
|
-
? COPIED_TOOLTIP_LABEL
|
|
149
|
-
: DEFAULT_COPY_TOOLTIP_LABEL;
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
/** Routes a menu selection to the matching action handler. */
|
|
153
|
-
handleMenuSelect(event: CustomEvent) {
|
|
154
|
-
switch (event.detail) {
|
|
155
|
-
case OPTION_COPY_MARKDOWN:
|
|
156
|
-
this.handleCopyMarkdown(event);
|
|
157
|
-
break;
|
|
158
|
-
case OPTION_VIEW_MARKDOWN:
|
|
159
|
-
this.handleViewMarkdown(event);
|
|
160
|
-
break;
|
|
161
|
-
case OPTION_COPY_MARKDOWN_URL:
|
|
162
|
-
this.handleCopyUrl(event);
|
|
163
|
-
break;
|
|
164
|
-
case OPTION_VIEW_LLMS:
|
|
165
|
-
this.handleViewLlms(event);
|
|
166
|
-
break;
|
|
167
|
-
case OPTION_COPY_LLMS_URL:
|
|
168
|
-
this.handleCopyLlmsUrl(event);
|
|
169
|
-
break;
|
|
170
|
-
default:
|
|
171
|
-
}
|
|
61
|
+
get copyUrlButtonText(): string {
|
|
62
|
+
return COPY_URL_LABEL;
|
|
172
63
|
}
|
|
173
64
|
|
|
174
65
|
async handleCopyMarkdown(event: Event) {
|
|
@@ -190,7 +81,7 @@ export default class ContentActionToolbar extends LightningElement {
|
|
|
190
81
|
}
|
|
191
82
|
const markdown = await response.text();
|
|
192
83
|
await navigator.clipboard.writeText(markdown);
|
|
193
|
-
this.flashCopied(
|
|
84
|
+
this.flashCopied("copyMarkdownLabel");
|
|
194
85
|
} catch (error) {
|
|
195
86
|
console.error(error);
|
|
196
87
|
}
|
|
@@ -225,55 +116,16 @@ export default class ContentActionToolbar extends LightningElement {
|
|
|
225
116
|
|
|
226
117
|
try {
|
|
227
118
|
await navigator.clipboard.writeText(this.markdownUrl);
|
|
228
|
-
this.flashCopied(
|
|
229
|
-
} catch (error) {
|
|
230
|
-
console.error(error);
|
|
231
|
-
}
|
|
232
|
-
}
|
|
233
|
-
|
|
234
|
-
handleViewLlms(event: Event) {
|
|
235
|
-
this.trackToolbarEvent(
|
|
236
|
-
event,
|
|
237
|
-
"custEv_linkClick",
|
|
238
|
-
VIEW_LLMS_LABEL,
|
|
239
|
-
this.llmsTxtUrl
|
|
240
|
-
);
|
|
241
|
-
|
|
242
|
-
window.open(this.llmsTxtUrl, "_blank", "noopener,noreferrer");
|
|
243
|
-
}
|
|
244
|
-
|
|
245
|
-
async handleCopyLlmsUrl(event: Event) {
|
|
246
|
-
this.trackToolbarEvent(
|
|
247
|
-
event,
|
|
248
|
-
"custEv_linkClick",
|
|
249
|
-
COPY_LLMS_URL_LABEL,
|
|
250
|
-
this.llmsTxtUrl
|
|
251
|
-
);
|
|
252
|
-
|
|
253
|
-
try {
|
|
254
|
-
await navigator.clipboard.writeText(this.llmsTxtUrl);
|
|
255
|
-
this.flashCopied(OPTION_COPY_LLMS_URL);
|
|
119
|
+
this.flashCopied("copyUrlLabel");
|
|
256
120
|
} catch (error) {
|
|
257
121
|
console.error(error);
|
|
258
122
|
}
|
|
259
123
|
}
|
|
260
124
|
|
|
261
|
-
// Flash the given copy option's tooltip to "Copied!" then revert.
|
|
262
|
-
private flashCopied(optionId: string) {
|
|
263
|
-
if (this.copyTooltipResetTimeout !== null) {
|
|
264
|
-
window.clearTimeout(this.copyTooltipResetTimeout);
|
|
265
|
-
}
|
|
266
|
-
this.copiedOptionId = optionId;
|
|
267
|
-
this.copyTooltipResetTimeout = window.setTimeout(() => {
|
|
268
|
-
this.copiedOptionId = null;
|
|
269
|
-
this.copyTooltipResetTimeout = null;
|
|
270
|
-
}, COPIED_TOOLTIP_RESET_MS);
|
|
271
|
-
}
|
|
272
|
-
|
|
273
125
|
private trackToolbarEvent(
|
|
274
126
|
event: Event,
|
|
275
127
|
eventName: "custEv_linkClick",
|
|
276
|
-
label:
|
|
128
|
+
label: string,
|
|
277
129
|
url: string
|
|
278
130
|
): void {
|
|
279
131
|
track(event.currentTarget!, eventName, {
|
|
@@ -283,9 +135,21 @@ export default class ContentActionToolbar extends LightningElement {
|
|
|
283
135
|
element_title: label,
|
|
284
136
|
content_category: ANALYTICS_CONTENT_CATEGORY,
|
|
285
137
|
// Source page the CTA was clicked from; `click_url` above is the
|
|
286
|
-
// destination. Uses the same `page_path` expression as the
|
|
138
|
+
// `.md` destination. Uses the same `page_path` expression as the
|
|
287
139
|
// amfReference doc_page_view events.
|
|
288
140
|
page_path: window.location.pathname + window.location.search
|
|
289
141
|
});
|
|
290
142
|
}
|
|
143
|
+
|
|
144
|
+
private flashCopied(labelKey: "copyMarkdownLabel" | "copyUrlLabel") {
|
|
145
|
+
if (this.copyTooltipResetTimeout !== null) {
|
|
146
|
+
window.clearTimeout(this.copyTooltipResetTimeout);
|
|
147
|
+
}
|
|
148
|
+
this[labelKey] = COPIED_TOOLTIP_LABEL;
|
|
149
|
+
this.copyTooltipResetTimeout = window.setTimeout(() => {
|
|
150
|
+
this.copyMarkdownLabel = DEFAULT_COPY_TOOLTIP_LABEL;
|
|
151
|
+
this.copyUrlLabel = DEFAULT_COPY_TOOLTIP_LABEL;
|
|
152
|
+
this.copyTooltipResetTimeout = null;
|
|
153
|
+
}, COPIED_TOOLTIP_RESET_MS);
|
|
154
|
+
}
|
|
291
155
|
}
|
|
@@ -10,8 +10,8 @@ export const DUMMY_MARKDOWN_CONTENT = `# Dummy Markdown
|
|
|
10
10
|
|
|
11
11
|
Storybook serves this placeholder content in place of the real markdown
|
|
12
12
|
that the docs backend would return for the current page. It exists so
|
|
13
|
-
the "
|
|
14
|
-
|
|
13
|
+
the "Copied" tooltip, the "View as Markdown" new tab, and the
|
|
14
|
+
"Copy URL to Markdown" clipboard behavior are all exercisable in
|
|
15
15
|
storybook without hitting the live backend.
|
|
16
16
|
|
|
17
17
|
- Item 1
|
|
@@ -19,30 +19,18 @@ storybook without hitting the live backend.
|
|
|
19
19
|
- Item 3
|
|
20
20
|
`;
|
|
21
21
|
|
|
22
|
-
export const DUMMY_LLMS_CONTENT = `# Dummy llms.txt
|
|
23
|
-
|
|
24
|
-
Storybook serves this placeholder in place of the site-root llms.txt so
|
|
25
|
-
the "View llms.txt" new tab and "Copy URL to llms.txt" clipboard behavior
|
|
26
|
-
are exercisable without hitting the live backend.
|
|
27
|
-
`;
|
|
28
|
-
|
|
29
22
|
export const DUMMY_MARKDOWN_DATA_URL = `data:text/markdown;charset=utf-8,${encodeURIComponent(
|
|
30
23
|
DUMMY_MARKDOWN_CONTENT
|
|
31
24
|
)}`;
|
|
32
25
|
|
|
33
|
-
|
|
34
|
-
DUMMY_LLMS_CONTENT
|
|
35
|
-
)}`;
|
|
36
|
-
|
|
37
|
-
/** Intercepts `.md` and `/llms.txt` GET requests and returns dummy content. */
|
|
26
|
+
/** Intercepts any `.md` GET request and returns the dummy markdown. */
|
|
38
27
|
export const contentActionToolbarMswHandlers = [
|
|
39
|
-
http.get(/\.md(\?.*)?$/, () => HttpResponse.text(DUMMY_MARKDOWN_CONTENT))
|
|
40
|
-
http.get(/\/llms\.txt(\?.*)?$/, () => HttpResponse.text(DUMMY_LLMS_CONTENT))
|
|
28
|
+
http.get(/\.md(\?.*)?$/, () => HttpResponse.text(DUMMY_MARKDOWN_CONTENT))
|
|
41
29
|
];
|
|
42
30
|
|
|
43
31
|
let windowOpenIntercepted = false;
|
|
44
32
|
|
|
45
|
-
/** Redirects `window.open` calls for `.md`
|
|
33
|
+
/** Redirects `window.open` calls for `.md` URLs to the dummy markdown data URL (MSW does not cover new tabs). */
|
|
46
34
|
export function interceptWindowOpenForContentActionToolbar() {
|
|
47
35
|
if (windowOpenIntercepted) {
|
|
48
36
|
return;
|
|
@@ -55,9 +43,6 @@ export function interceptWindowOpenForContentActionToolbar() {
|
|
|
55
43
|
if (stringUrl.endsWith(".md")) {
|
|
56
44
|
return originalOpen(DUMMY_MARKDOWN_DATA_URL, target, features);
|
|
57
45
|
}
|
|
58
|
-
if (stringUrl.endsWith("llms.txt")) {
|
|
59
|
-
return originalOpen(DUMMY_LLMS_DATA_URL, target, features);
|
|
60
|
-
}
|
|
61
46
|
return originalOpen(url ?? "", target, features);
|
|
62
47
|
}) as typeof window.open;
|
|
63
48
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
:host {
|
|
2
2
|
--dx-footer-margin-top: 142px;
|
|
3
3
|
--doc-c-redoc-sidebar-top: calc(
|
|
4
|
-
var(--dx-g-global-header-height) + var(--dx-g-doc-header-height)
|
|
5
|
-
var(--dx-g-spacing-xl)
|
|
4
|
+
var(--dx-g-global-header-height) + var(--dx-g-doc-header-height)
|
|
6
5
|
);
|
|
6
|
+
--doc-c-redoc-sidebar-bg: white;
|
|
7
7
|
}
|